首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >电报bot付款-付款成功后显示收据

电报bot付款-付款成功后显示收据
EN

Stack Overflow用户
提问于 2021-08-31 17:42:28
回答 1查看 1.2K关注 0票数 4

我有一个处理付款的电报机器人。付款工作正常,不过,我未能在付款成功后出示收据。

目前的行为是:

  1. 用户单击“付费”按钮,填写卡信息并支付服务费用。
  2. 处理付款,并发送有关成功交易的消息。
  3. 此时,我希望将“支付”按钮更改为“接收”按钮。

当前屏幕截图上的行为:

期望的行为:

想要的行为是从@ShopBot聊天中截取出来的,这是电报文档中提到的测试工具。

关于“收据”是如何处理的,我在电报文档中唯一提到的是https://core.telegram.org/bots/payments的这两句话:

如果发票消息是在与@merchantbot的聊天中发送的,则它将成为用户界面中的收据--用户可以随时打开该收据,并查看事务的所有细节。如果消息被发送到任何其他聊天中,则“支付”按钮将保持不变,并可再次使用。这取决于商户机器人是否实际接受多项付款。

但是,我不明白如何在代码中实现这一点。据我所知,发票信息已经发送到聊天与我的机器人(如在第一句),所以它应该成为一份收据。

机器人是用Node.js编写的,并使用web钩子来处理消息。对此问题很重要的web钩子代码部分:

代码语言:javascript
复制
router.route('/')
    .post(async (req, res) => {
        try {

            // if pre_checkout_query is defined, there was an attempt for payment
            if (req.body.pre_checkout_query) {
                // use answerPreCheckoutQuery Telegram method
                ...
            }

            const message = req.body.message || req.body.edited_message;

            // this means user's payment was successful
            if (message.successful_payment) {
                // success, deliver goods or services
                // send message about successful payment
                ...
            }


        } catch (err) {
            ...
        }
    })

发票使用sendInvoice方法发送,如下所示:

代码语言:javascript
复制
const url = `https://api.telegram.org/bot${process.env.TELEGRAM_BOT_TOKEN}/sendInvoice`;
const response = await axios.get(url, {
   params: {
      chat_id: chatID,
      title: 'SOME TITLE',
      description: 'some decription',
      payload: 'SOME-PAYLOAD',
      provider_token: process.env.STRIPE_API_TOKEN,
      currency: 'EUR',
      prices: JSON.stringify([
         {
            label: 'some label',
            amount: 200,
         },
      ]),
   },
});

API中用于处理支付的两个方法是sendInvoiceanswerPreCheckoutQuery,但它们都不包含任何可能以我想要的方式更改输出的参数。我是不是遗漏了什么?

最后请注意:尽管如此,付款还是有效的。这只是我想要实现的一个表面上的改变。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-01 07:06:11

我也遇到了这个问题,请指定一个参数:start_ this =‘unique-string’。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69003183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档