jquery – Stripe在测试模式下没有拒绝任何卡

前端之家收集整理的这篇文章主要介绍了jquery – Stripe在测试模式下没有拒绝任何卡前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Stripe和Laravel 5.1,除了当我输入一个应该被拒绝的测试卡号码时我没有任何错误;即,即使它应该存在,也不会存在共振.

我收到一个令牌,好像一切都很顺利(例如:tok_16Y3wFAMxhd2ngVpHnky8VWX)

无论我使用什么测试卡,stripeResponseHandler()函数都不会在响应中返回错误.这是有问题的代码

var PublishableKey = 'pk_test_Ed0bCarBWsgCXGBtjEnFeBVJ'; // Replace with your API publishable key
Stripe.setPublishableKey(PublishableKey);

/* Create token */
var expiry = $form.find('[name=cardExpiry]').payment('cardExpiryVal');
var ccData = {
    number: $form.find('[name=cardNumber]').val().replace(/\s/g,''),cvc: $form.find('[name=cardCVC]').val(),exp_month: expiry.month,exp_year: expiry.year
};

Stripe.card.createToken(ccData,function stripeResponseHandler(status,response) {
    console.log(status);
    if (response.error) {
        /* Visual Feedback */
        $form.find('[type=submit]').html('Please Try Again');
        /* Show Stripe errors on the form */
        $form.find('.payment-errors').text(response.error.message);
        $form.find('.payment-errors').closest('.row').show();
    } else {
        /* Visual Feedback */
        $form.find('[type=submit]').html('Processing <i class="fa fa-spinner fa-pulse"></i>');
        /* Hide Stripe errors on the form */
        $form.find('.payment-errors').closest('.row').hide();
        $form.find('.payment-errors').text("");
        // response contains id and card,which contains additional card details
        console.log(response.id);
        console.log(response.card);
        var token = response.id;
        var email = $form.find('[name=email]').val();
        var formToken = $form.find('[name=_token]').val();
        console.log(email);
        // AJAX - you would send 'token' to your server here.
        console.log(token);
        $.post('/testing',{
            _token: formToken,token: token,email: email
        },function (data) {
            console.log(data);
        })
            // Assign handlers immediately after making the request,.done(function (data,textStatus,jqXHR) {
                //console.log(data);
                $form.find('[type=submit]').html('Subscription Successful <i class="fa fa-check"></i>').prop('disabled',true);
            })
            .fail(function (jqXHR,errorThrown) {
                $form.find('[type=submit]').html('There was a problem').removeClass('success').addClass('error');
                /* Show Stripe errors on the form */
                $form.find('.payment-errors').text('Try refreshing the page and trying again.');
                $form.find('.payment-errors').closest('.row').show();
            });
    }
});

if(response.error)永远不会触发,即使该卡应该被拒绝.我无法理解我在这里做错了导致这个问题.

我已经尝试了所有应该从Stripe文档中删除的测试卡号,但是没有一个返回有错误的响应.

请帮帮我.感谢您的时间.

解决方法

当您使用 Stripe.js时,Stripe将仅验证卡详细信息是否正确,并且此时他们不会联系银行.这意味着它们确保卡号通过 Luhn Check,到期日期是将来的有效日期,并且CVC是3位数(或4位数的美国运通卡)号码.

就是这种情况,令牌tok_XXX已成功创建,您可以将其发送到您的服务器.当您添加尝试为其充电时,该卡将在服务器端被拒绝.当您创建客户时,它也会被拒绝,因为Stripe将在卡上运行$0或$1授权以确保其有效并被银行接受.

原文链接:https://www.f2er.com/jquery/178339.html

猜你在找的jQuery相关文章