在 Telegram 机器人中创建 INVOICE 返回错误

nab*_*nas 7 javascript node.js telegram-bot telegraf

我尝试将付款集成到我的 telegram 机器人中。\n我使用 telegraf 库进行工作。\n因此我创建了一张发票

\n\n

\r\n
\r\n
const invoice = {\r\n    provider_token: payment_tocken,\r\n    start_parameter: \'online_conslutation\',\r\n    title: \'\xd0\x9e\xd0\xbd\xd0\xbb\xd0\xb0\xd0\xb9\xd0\xbd \xd0\xba\xd0\xbe\xd0\xbd\xd1\x81\xd1\x83\xd0\xbb\xd1\x8c\xd1\x82\xd0\xb0\xd1\x86\xd0\xb8\xd1\x8f \xd0\x90\xd0\xb9\xd0\xb1\xd0\xbe\xd0\xbb\xd0\xb8\xd1\x82\',\r\n    description: \'\xd0\x9f\xd1\x80\xd0\xbe\xd0\xb2\xd0\xb5\xd0\xb4\xd0\xb5\xd0\xbd\xd0\xb8\xd0\xb5 \xd0\x9e\xd0\xbd\xd0\xbb\xd0\xb0\xd0\xb9\xd0\xbd \xd0\xba\xd0\xbe\xd0\xbd\xd1\x81\xd1\x83\xd0\xbb\xd1\x8c\xd1\x82\xd0\xb0\xd1\x86\xd0\xb8\xd0\xb8 \xd1\x81 \xd0\xb2\xd1\x80\xd0\xb0\xd1\x87\xd0\xb5\xd0\xbc. \xd0\xa1\xd1\x82\xd0\xbe\xd0\xb8\xd0\xbc\xd0\xbe\xd1\x81\xd1\x82\xd1\x8c 1000 \xd1\x80\xd1\x83\xd0\xb1\xd0\xbb\xd0\xb5\xd0\xb9. \xd0\x94\xd0\xbb\xd0\xb8\xd1\x82\xd0\xb5\xd0\xbb\xd1\x8c\xd0\xbd\xd0\xbe\xd1\x81\xd1\x82\xd1\x8c 1\xd1\x87\xd0\xb0\xd1\x81\',\r\n    currency: \'RUB\',\r\n    photo_url: \'https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcThWVMksAXRtRQJn3oHFWyz9FMusRty4pQX5Iobe8OfMEJmRzpD&usqp=CAU\',\r\n    need_shipping_address: false,\r\n    is_flexible: true,\r\n    prices: [\r\n        { label: \'\xd0\x9e\xd0\xbd\xd0\xbb\xd0\xb0\xd0\xb9\xd0\xbd \xd0\xba\xd0\xbe\xd0\xbd\xd1\x81\xd1\x83\xd0\xbb\xd1\x8c\xd1\x82\xd0\xb0\xd1\x86\xd0\xb8\xd1\x8f\', amount: 100 }\r\n    ],\r\n    payload: {}\r\n\r\n};
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n\n

我在这里发送它

\n\n

\r\n
\r\n
    const stepHandlerBuy = new Composer()\r\n    stepHandlerBuy.action(\'buy\', (ctx) => {\r\n        ctx.replyWithInvoice(invoice);\r\n        return ctx.wizard.next();\r\n    })
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n\n

但它总是返回一个错误

\n\n
(node:24476) UnhandledPromiseRejectionWarning: Error: 400: Bad Request: \n\n    CURRENCY_TOTAL_AMOUNT_INVALID\n        at /Users/nabiullinanton/Documents/UnitBean/NodeJSProjects/VetClinicTelegramFront/node_modules/telegraf/core/network/client.js:281:17\n
Run Code Online (Sandbox Code Playgroud)\n\n

据我所知,我的总金额有问题吗?但我该如何解决它呢?

\n

nab*_*nas 7

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

\n\n
{ label: '\xd0\x9e\xd0\xbd\xd0\xbb\xd0\xb0\xd0\xb9\xd0\xbd \xd0\xba\xd0\xbe\xd0\xbd\xd1\x81\xd1\x83\xd0\xbb\xd1\x8c\xd1\x82\xd0\xb0\xd1\x86\xd0\xb8\xd1\x8f', amount: 100*100 }//100 kopoeikas*100 = 100 rubles\n
Run Code Online (Sandbox Code Playgroud)\n