javascript - 如何将 3D 安全条带支付与 nodejs 集成?
问题描述
我正在尝试集成条纹 3D 安全支付。我也成功集成,但是当我尝试进行超过 10,000.00 美元的交易时,它会给出错误,例如'Amount for a export transaction must be less than $10,000.00'。
我的代码如下,
try {
paymentIntent = await stripe.paymentIntents.create({
amount: Math.round(amount * 100),
payment_method_types: ['card'],
currency: "usd",
customer: customer_id,
payment_method: card_id,
off_session: true,
confirm: true,
shipping: {
name: "Jenny Rosen",
address: {
line1: "510 Townsend St",
postal_code: "98140",
city: "San Francisco",
state: "CA",
country: "US"
}
},
description: JSON.stringify(description)
});
return {
succeeded: true,
clientSecret: paymentIntent.client_secret,
}
} catch (err) {
if (err.code === "authentication_required") {
return {
error: "authentication_required",
paymentMethod: err.raw.payment_method.id,
payment_method_types: ['card'],
clientSecret: err.raw.payment_intent.client_secret,
amount: amount * 100,
card: {
brand: err.raw.payment_method.card.brand,
last4: err.raw.payment_method.card.last4
}
}
} else if (err.code) {
return {
error: err.code,
}
} else {
console.log("Unknown error occurred", err);
}
}
在这里,我根据条带文档将我的金额转换为美分,例如,如果我想支付 100 美元,那么我需要将 100*100 传递给条带。
解决方案
您看到的错误实际上与出口交易的性质有关,而不是与 3DS 要求有关。
在印度,“出口”交易是根据交付货物或提供服务的目的地来定义的。要使交易成为“出口交易”,目的地必须在印度境外。这与使用的付款方式或买家的家庭住址无关。
在您的测试代码的情况下,送货地址是美国地址,因此这被视为出口交易,由于印度法规,硬交易限额为 10,000 美元。
要在您的测试代码中解决此问题,只需将送货地址更改为印度地址。
推荐阅读
- python - 如何获取包含子目录的目录中文件的文件路径?
- javascript - 如何在 Typescript 中正确导入 MomentJS 以解决以下错误:“Type 'typeof moment' 没有兼容的调用签名。”
- javascript - Brave 浏览器上的 Dropzonejs - 数据图像预览不起作用
- pytest - 作为用户级配置,如何使 pytest 快速失败?
- delphi - 在 Firemonkey OSX、Windows 和 Linux 上嵌入 Delphi Chromium 替代方案
- assembly - (NASM)汇编程序输出2个数字中较大的问题
- python - 2个不同长度的熊猫列之间的滚动皮尔逊相关性
- c# - 如何使用 asp.net Identity 获取用户的 id
- plot - 使用 scilab 说明特殊功能
- python - Python re.findall() 除了一个变量