我正在运行一个ASP网站上的条带测试付款。当用户准备好付款时,他们被转发到他们的网关,以收集卡的详细信息。
一旦他们成功完成付款,他们就会返回到我在URL (即www.example.com/success?session_id{Session_ID}. )旁边使用{SESSION_ID}变量设置的成功网址
然后,我通过首先获取会话来处理付款
StripeConfiguration.ApiKey = "sk_test_123";
var service = new SessionService();
Checkout.Session sess service.Get("cs_test_4561");然后,我使用用户结帐时保存并传递的会话id从我的数据库中查找付款。
我担心的是,通过web嗅探器工具,会话ID可以被提取出来,您可以手动将其传递给successURL。
我可以添加HTTPS到网站,但有没有其他我可以做的事情,使这有点困难,如过期的会话ID后一段时间或有一个值从地带确认付款是成功的?
编辑1:
我后面的代码来设置SessionCreateOptions
var options = new SessionCreateOptions
{
PaymentMethodTypes = new List<string> { "card", },
LineItems = GetItems(),
SuccessUrl = "www.example.com/success?session_id={CHECKOUT_SESSION_ID}",
CancelUrl = "www.example.com/cancel",
PaymentIntentData = new SessionPaymentIntentDataOptions
{
Metadata = new Dictionary<string, string>{
{"orderID","123"}
}
},
Mode="payment",
};
var service = new SessionService();
Session session = service.Create(options);当用户返回到成功页面时,我运行以下代码来获取会话我运行上面的代码来获取会话,但如果我输入sess.PaymentIntent,则payment_intent为null
发布于 2019-12-19 22:55:25
当您通过CheckoutSession的id检索它时,您应该检查它的payment_intent,以验证它是否显示status: succeeded。这表明付款是没有问题的。
有关整个过程的更多详细信息,请单击此处:https://stripe.com/docs/payments/checkout/fulfillment
https://stackoverflow.com/questions/59410438
复制相似问题