我目前正在从事一个机器人项目,在那里我试图利用微软的适应性卡尝试发送一个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\":{}}"
}
],我找不到任何关于如何正确地做到这一点的文档,但是它似乎并没有说它被文档否决了。如果这有帮助的话,我正在使用bot框架v3。我觉得即使没有PaymentRequest中的一些参数,当我点击按钮时,它仍然会给我一些东西。
发布于 2019-02-25 23:59:41
如本文档所述:为了使用Builder支付库,必须首先:bot-建造商-dotnet-请求-付款:
创建并激活一个Stripe帐户,如果你还没有。 使用您的Microsoft帐户登录到卖方中心。 在卖方中心,连接您的帐户与Stripe。 在Seller中,导航到仪表板并复制MerchantID的值。 更新bot的Web.config文件,将MerchantId设置为从Seller仪表板复制的值。
此时,只直接支持Stripe支付。如果您正在使用其他提供程序,则需要手动添加对它的支持。
还请注意:截至2.25.2019,Builder V4 sdk没有内置的支付支持。Builder V3 sdk not:https://github.com/Microsoft/BotBuilder-Samples/tree/v3-sdk-samples/CSharp/sample-payments (同时,Bot仿真程序V4还不支持支付:https://github.com/Microsoft/BotFramework-Emulator/issues/1324 V3模拟器可以从这里下载:https://github.com/Microsoft/BotFramework-Emulator/releases/tag/v3.5.37 )
https://stackoverflow.com/questions/54869324
复制相似问题