首页 > 解决方案 > 自适应卡:付款请求

问题描述

我目前正在开发一个机器人项目,我正在尝试利用 Microsoft 自适应卡尝试向用户发送 PaymentRequest。我创建了一个虚拟的 paymentrequest 对象并将其插入到英雄卡中,如文档所述。

var methodList = new List<PaymentMethodData>();
            var method = new PaymentMethodData()
                {Data = new {supportedNetworks = new[] { "visa", "mastercard", "amex", "discover", "diners", "jcb", "unionpay"} }, SupportedMethods = new[] { "https://bobpay.xyz/pay" } };
            methodList.Add(method);
            var details = new PaymentDetails {};

            var test = new PaymentRequest(null, methodList, details);



            var heroCard = new HeroCard
            {
                Title = "Bob",
                Subtitle = "The Builder",
                Text = "Kunnen wij het maken!",
                Images = new List<CardImage>
                {
                    new CardImage
                    {
                        Url = "https://m.media-amazon.com/images/M/MV5BNjRlYjgwMWMtNDFmMy00OWQ0LWFhMTMtNWE3MTU4ZjQ3MjgyXkEyXkFqcGdeQXVyNzU1NzE3NTg@._V1_CR0,45,480,270_AL_UX477_CR0,0,477,268_AL_.jpg"
                    }
                },
                Buttons = new List<CardAction>
                {
                    new CardAction
                    {
                        Title = "Buy",
                        Type = PaymentRequest.PaymentActionType,
                        Value = test,
                    }

                }
            };

            replyMessage.Attachments.Add(heroCard.ToAttachment());
            await context.PostAsync(replyMessage);

我从 PaymentRequest 构造函数中取出了一堆参数,因为我正在尝试尝试获得某种反馈。有了这个,我什么都没有回来,但这个 url 当我尝试运行它时崩溃了浏览器。

"content": {
        "buttons": [
          {
            "title": "Buy",
            "type": "openUrl",
            "value": "payment://{\"methodData\":[{\"supportedMethods\":[\"https://bobpay.xyz/pay\"],\"data\":{}}],\"details\":{}}"
          }
        ],

我找不到任何关于如何正确执行此操作的文档,但似乎并没有说它在文档中已被弃用。如果有帮助,我正在使用机器人框架 v3。我觉得即使 PaymentRequest 中没有一些参数,当我单击按钮时它仍然应该给我一些东西。

标签: botframeworkadaptive-cardspayment-request-api

解决方案


如本文档所述:bot-builder-dotnet-request-payment为了使用 Bot Builder Payments 库,您必须首先:

如果您还没有 Stripe 帐户,请创建并激活。

使用您的 Microsoft 帐户登录卖家中心。

在卖家中心内,将您的账户与 Stripe 关联。

在卖家中心内,导航到仪表板并复制 MerchantID 的值。

更新您的机器人的 Web.config 文件,将 MerchantId 设置为您从卖家中心仪表板复制的值。

目前,Bot Framework SDK 仅直接支持 Stripe 支付。如果您使用的是其他提供程序,则需要手动添加对它的支持。

另请注意:自 2.25.2019 起,Bot Builder V4 sdk 没有内置支付支持。Bot Builder V3 sdk 有:https ://github.com/Microsoft/BotBuilder-Samples/tree/v3-sdk-samples/ CSharp/sample-payments (另外,Bot Framework Emulator V4 还不支持支付:https ://github.com/Microsoft/BotFramework-Emulator/issues/1324 V3 模拟器可以从这里下载:https://github .com/Microsoft/BotFramework-Emulator/releases/tag/v3.5.37


推荐阅读