Braintree沙箱使用测试nonce创建订阅返回支付方式Nonce无效错误
错误根因与修复方案
- 核心问题:
fake-valid-nonce是 Braintree 提供的通用测试支付随机串,不支持直接传入订阅创建接口使用,该类随机串仅可用于先生成支付方法令牌,再通过令牌创建订阅。 - 排查项1:确认网关初始化时的环境配置与凭证匹配,未误将沙箱凭证传入生产环境网关实例,生产环境会直接拒绝所有沙箱测试随机串。
- 排查项2:确认测试随机串拼写完全正确,无多余空格、大小写错误、下划线与横杠混用的问题。
正确实现流程
你需要先调用支付方法创建接口拿到合法的支付方法令牌,再调用订阅创建接口,示例代码如下:
// 第一步:使用测试nonce生成支付方法令牌 gateway.paymentMethod.create({ customerId: '你的沙箱测试客户ID', // 可提前在沙箱后台创建,或调用customer.create接口动态生成 paymentMethodNonce: 'fake-valid-nonce' }, (err, result) => { if (result.success) { const paymentMethodToken = result.paymentMethod.token; // 第二步:使用支付方法令牌创建订阅 gateway.subscription.create({ paymentMethodToken: paymentMethodToken, planId: 'ip19', price: 2.5, options: { startImmediately: true } }, (err, subResult) => { // 处理订阅创建结果 }) } })
如果需要跳过创建支付方法的步骤直接测试订阅,可替换测试nonce为专门的订阅场景测试值 fake-valid-payment-method-nonce,直接传入订阅创建接口的 paymentMethodNonce 参数即可。
内容的提问来源于stack exchange,提问作者user1790300
相关产品推荐
相关产品推荐

