我有一个Express应用程序,我已成功通过支付令牌化测试。由于我在英国并且主要接受英国卡,我相信我需要实施3D安全处理。我真的很难理解官方文档 - 我认为这些例子很少见。来自以下:https://stripe.com/docs/sources/three-d-secure
我使用令牌来源而不是使用令牌付款。这是步骤1.步骤2要求我确定该卡是否支持3D Secure。我一直在做这个客户端,但我不知道如何处理这个 - 我一直在尝试向用户发送卡支付,如果不需要3D Secure。但如果需要,我是否需要创建另一个来源?我是做这个服务器还是客户端?我也无法让return_url字段做任何事情 - 3D安全卡只会失败。
有没有可以帮助我的例子?我发现官方文档只是简单地告诉你如何做什么并没有太多的方式'如何'做事。
我应该添加我使用v3与Elements,而不是Checkout。
感谢您的帮助。
编辑:以下服务器端似乎没有做任何事情:
stripe.sources.create({
amount: 6500,
currency: 'gbp',
type: "three_d_secure",
three_d_secure: {
card: stripeSource,
},
redirect: {
return_url: "http://example.com"
}
})
文档说明"要允许您的客户使用3D Secure验证其身份,请将其重定向到Source对象的redirect [url]属性中提供的URL。"
我的源对象不包含此字段?
编辑:这就是我现在拥有的。重定向有效,但只要我授权付款,卡就会拒绝:
stripe.customers.create({
email: cust_email,
source: stripeSource
}).then(function(customer){
return stripe.charges.create({
amount: fee,
description: "Client Ref: " + clientref,
currency: "gbp",
customer: customer.id,
metadata: {
'allocation:': allocate
},
receipt_email: cust_email,
source: request.query.source,
})
}
).catch(err => {
console.log(err)
})
stripe.sources.create({
amount: fee,
currency: 'gbp',
type: "three_d_secure",
three_d_secure: {
card: stripeSource,
},
redirect: {
return_url: "http://localhost:8000/charge"
}
}).then(function(test) {
response.redirect(test.redirect.url)
})