如何在Braintree中获得托管字段的价值

时间:2019-08-31 00:20:01

标签: braintree

在模糊事件中能否获得托管字段的值? 在我的付款页面中,如果客户输入特殊的卡号(例如“ 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

        });
    });

1 个答案:

答案 0 :(得分:1)

完全公开,我在Braintree工作。如果您还有其他问题,请contact Support

托管字段的性质是防止您需要与信用卡号本身进行交互。从成功的令牌化调用返回的tokenizePayload中,您可以找到与信用卡详细信息最接近的信息。即使这样,有效负载也不会指定该卡是否为测试卡。

在沙盒环境中,如果您尝试在API请求中使用非沙盒卡,则会抛出a validation error

  

81717-信用卡号不是可接受的测试号。

在生产环境中,使用测试卡将产生processor decline

所有这些,我建议不要有条件地混合使用生产环境和沙箱环境。最好不要混合使用这些环境,因为要考虑很多实例,并且最好不要意外地将错误的数据发送到错误的环境。