gpt4 book ai didi

jquery - Stripe 在测试模式下不会拒绝任何卡

转载 作者:行者123 更新时间:2023-12-03 22:27:29 25 4
gpt4 key购买 nike

我正在 Laravel 5.1 中使用 Stripe,一切正常,除了当我输入应该被拒绝的测试卡号码时,我没有收到任何错误;也就是说,resonse.errors 永远不会存在,即使它应该存在。

我收到了一个 token ,就好像一切都很顺利(示例: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, textStatus, 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 ,到期日期是 future 的有效日期,并且 CVC 是 3 位数(对于 Amex 为 4 位数)号码。

这样, token tok_XXX已成功创建,您可以将其发送到您的服务器。当您尝试充电时,该卡将被服务器端拒绝。当您创建客户时,它也会被拒绝,因为 Stripe 会在卡上运行 0 美元或 1 美元的授权,以确保其有效并被银行接受。

关于jquery - Stripe 在测试模式下不会拒绝任何卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31910067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com