我尝试将付款集成到电报机器人中。 我用telegraf库工作。 所以我创建了一张发票
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
我看到我对总额有疑问吗?但是我该如何解决?
答案 0 :(得分:1)
我发现了一个错误。 API使用价格(以Kopeika为单位)(例如美分中的美分)。所以我应该输入
{ label: 'Онлайн консультация', amount: 100*100 }//100 kopoeikas*100 = 100 rubles