PayPal沙箱环境中用Vault ID测试3DS验证无触发问题咨询
PayPal沙箱令牌化卡片未触发3DS验证的原因及解决方法
可能的原因
- 测试卡选择错误:不是所有PayPal沙箱测试卡都会触发3DS验证,普通测试卡默认不会启动强制验证流程。
- 未明确强制3DS验证:你的订单配置里没有指定必须进行3DS验证,PayPal会按默认风险评估逻辑判断,沙箱环境下可能直接跳过验证。
- 令牌已完成过3DS验证:如果创建该vault_id对应的令牌时已经完成过3DS验证,后续重复使用时PayPal会豁免验证步骤。
- 商家沙箱账户未开启3DS强制设置:商家账户的支付设置里未启用3DS强制验证规则,导致交易未触发验证流程。
解决方法
使用强制触发3DS的沙箱测试卡
采用PayPal官方指定的3DS测试卡创建令牌,示例参数:- 卡号:
4000000000003220 - 过期日期:任意未来日期(如
12/28) - CVV:
123
用这张卡生成令牌后,调用订单时会触发3DS验证。
- 卡号:
修改订单配置,强制要求3DS验证
在订单对象的payment_source.card中添加authentication_requirement参数,明确强制触发3DS验证。修改后的代码如下:const order = { intent: 'CAPTURE', purchase_units: [ { amount: { currency_code: 'USD', value: `10.00`, }, }, ], }; if (vaultId) { order.payment_source = { card: { vault_id: vaultId, authentication_requirement: 'REQUIRED' // 新增强制3DS验证的参数 } }; }该参数会强制PayPal触发3DS验证,不受默认风险评估逻辑影响。
重新生成未验证的令牌
若当前vault_id对应的令牌已完成过3DS验证,需重新生成新的令牌(换用新测试卡或模拟新用户场景),再进行测试。配置商家沙箱账户的3DS设置
登录PayPal沙箱商家账户,进入「支付设置」-「3D Secure」,开启「强制要求3D Secure验证」选项,或设置风险规则(如金额超过1美元触发3DS),确保交易满足验证触发条件。
内容的提问来源于stack exchange,提问作者Yaroslav Kravchenko
相关产品推荐
相关产品推荐

