首页 > 解决方案 > 在 Telegram 机器人返回错误中创建 INVOICE

问题描述

我尝试将付款集成到我的电报机器人中。我使用电报库工作。所以我创建了一张发票

const invoice = {
    provider_token: payment_tocken,
    start_parameter: 'online_conslutation',
    title: 'Онлайн консультация Айболит',
    description: 'Проведение Онлайн консультации с врачем. Стоимость 1000 рублей. Длительность 1час',
    currency: 'RUB',
    photo_url: 'https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcThWVMksAXRtRQJn3oHFWyz9FMusRty4pQX5Iobe8OfMEJmRzpD&usqp=CAU',
    need_shipping_address: false,
    is_flexible: true,
    prices: [
        { label: 'Онлайн консультация', amount: 100 }
    ],
    payload: {}

};

我在这里发送它

    const stepHandlerBuy = new Composer()
    stepHandlerBuy.action('buy', (ctx) => {
        ctx.replyWithInvoice(invoice);
        return ctx.wizard.next();
    })

但它总是返回我的错误

(node:24476) UnhandledPromiseRejectionWarning: Error: 400: Bad Request: 

    CURRENCY_TOTAL_AMOUNT_INVALID
        at /Users/nabiullinanton/Documents/UnitBean/NodeJSProjects/VetClinicTelegramFront/node_modules/telegraf/core/network/client.js:281:17

正如我所见,我的总金额有问题?但我该如何解决呢?

标签: javascriptnode.jstelegram-bottelegraf

解决方案


我发现了一个错误。以 kopeika 为单位的 API 使用价格(如以美元为单位的美分)。所以我应该输入

{ label: 'Онлайн консультация', amount: 100*100 }//100 kopoeikas*100 = 100 rubles

推荐阅读