我想实现以下目标:
截至目前,这是我能够实现的目标:
至关重要的是,我可以在充电之前检查客户端是否有足够的余额,因为如果我不得不回到他们并再次询问他们的cc信息,那么用户体验很差,因为我不是能够事先验证他们是否有足够的资金。
因此,我还想在生成令牌之前验证客户是否有足够的资金,例如,如果金额为5k且客户只有3k,那么将不生成任何帐户,并且会出现错误以便客户可以输入正确的信息:
function handleCall(token) {
var $form = $('#payment-form');
if (!appendedStripeToken) {
// Insert the token into the form so it gets submitted to the server
$form.append($('<input type="hidden" id="courseToken" name="stripeToken" />').val(token));
appendedStripeToken = true;
phpCall();
}
}
function onSubmit() {
var $form = $('#payment-form'); // TODO: give your html-form-tag an "id" attribute and type this id in this line. IMPORTANT: Don't replace the '#'!
// Disable the submit button to prevent repeated clicks
// TODO: give your html-submit-input-tag an "id" attribute
Stripe.card.createToken($form, stripeResponseHandler);
}
我如何生成令牌;
$stripChargeValid = true;
try {
$charge = \Stripe\Charge::create(array(
'customer' => $customer->id,
'amount' => $amount,
'currency' => 'cad',
'description'=> $courseTitle
));
} catch(\Stripe\Error\Card $e) {
// The card has been declined
$stripChargeValid = false;
echo "failed";
}
重要的是,如果客户有足够的资金,我只会尝试收费
答案 0 :(得分:0)
Stripe.js没有验证银行卡的有效性。它只是确保字段正确(有效的到期日期,通过Luhn algorithm的卡号等)。
在您的情况下,最好的解决方案是在服务器上创建费用并检查它是否成功。如果失败,您将向您的客户返回错误,因为您现在肯定在做。
遗憾的是,在创建卡片令牌时无法提前知道。即使是Stripe Checkout,也只能通过运行$ 0 / $ 1授权来确保该卡有效,但不会授权全额。