在模糊事件中能否获得托管字段的值? 在我的付款页面中,如果客户输入特殊的卡号(例如“ 1122”),则该卡号应与Braintree沙盒信封一起使用,但如果使用真实的信用卡号,则应将其用于生产信封。这是我的要求。我想知道是否可以实施? 我的解决方法是这样的,在号码字段发生模糊事件时,请检查该值,是否测试调用沙箱,否则调用生产。我不知道是否可能。
谢谢
braintree.hostedFields.create({
client: client,
styles: {
input: {
'font-size': '14px',
'font-family': 'monospace'
}
},
fields: {
number: {
selector: '#number',
placeholder: '4000 0000 0000 1091',
prefill: '4111111111111111'
},
cvv: {
selector: '#cvv',
placeholder: '123',
prefill: '123'
},
expirationDate: {
selector: '#date',
placeholder: '01 / 2020',
prefill: '02/2020'
}
}
}, function (err, hostedFieldsInstance) {
components['hostedFields'] = hostedFieldsInstance;
if (components.threeDSecure && components.hostedFields) {
setupForm();
}
hostedFieldsInstance.on('blur', function(event) {
var field = event.fields[event.emittedBy];
$(field.container).addClass('is-valid');
console.log(event);
//if it is special card number, call again to use different environment
});
});
答案 0 :(得分:1)
完全公开,我在Braintree工作。如果您还有其他问题,请contact Support。
托管字段的性质是防止您需要与信用卡号本身进行交互。从成功的令牌化调用返回的tokenizePayload
中,您可以找到与信用卡详细信息最接近的信息。即使这样,有效负载也不会指定该卡是否为测试卡。
在沙盒环境中,如果您尝试在API请求中使用非沙盒卡,则会抛出a validation error:
81717-信用卡号不是可接受的测试号。
在生产环境中,使用测试卡将产生processor decline。
所有这些,我建议不要有条件地混合使用生产环境和沙箱环境。最好不要混合使用这些环境,因为要考虑很多实例,并且最好不要意外地将错误的数据发送到错误的环境。