安全的条纹付款

时间:2019-12-19 13:08:04

标签: c# asp.net ssl-certificate stripe-payments

我正在ASP Net网站上运行Stripe测试付款。当用户准备付款时,他们将被转发到其网关以收集卡详细信息。

完成付款后,它们会返回到我在{URL_URL}旁边通过{SESSION_ID}变量设置的成功URL,即www.example.com/success?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添加到站点,但是我还能做些其他事情来使此操作变得更困难吗,例如,在一段时间后使Session ID过期或从Strip取值以确认付款成功吗?

编辑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为空

1 个答案:

答案 0 :(得分:1)

当您通过其id检索CheckoutSession时,应检查其payment_intent以验证其显示为status: succeeded。这表明付款没有问题。

此处有关整个过程的更多详细信息: https://stripe.com/docs/payments/checkout/fulfillment