在我们的网站上使用laravel收银机集成了条带系统后,我使用测试卡进行了测试,成功的卡很少,没有的卡很少。我试图适应3D安全/ SCA。就是这样 4000003800000446、4000002500003155和4000000000003055成功,而 卡中的4000000000003220和4000002760003184发生故障,返回不完整状态。我的系统用于每年订阅一本杂志。我确实弹出窗口,敦促我确认身份验证,如图confirmation popup screenshot所示,现在,它重定向到我的代码以创建订阅,即
$payement_intent = $request->get('intent');
$plan_key = 'plan_*******';
try{
$payement_info = $subscriber->newSubscription('yearly', $plan_key)->create($payement_intent, [
'email'=>$subscriber->email
]);
}catch(IncompletePayment $e){
dd($e);
Session::flash('message', 'Payment is incomplete. Extra verification is needed. You will receive an email with further payment confirmation instructions.');
return redirect()->to(route('acc_success'));
}
由于我已转储了不完整的付款,因此该屏幕截图的例外是enter image description here。我很困惑,因为我已经在弹出窗口中单击了完整的身份验证,不是要验证3D身份验证并成功付款,还是我错过了有关出纳员身份不完整的信息,因为条状文档显示“订阅仅在以下情况下才进入不完整状态尝试进行第一次充电,但失败或需要SCA。”
答案 0 :(得分:0)
您使用的两张卡是3DS2
卡,需要进行身份验证才能进行交易。 incomplete
状态要求您要求客户完成3DS流程以授权交易。您可以按照https://stripe.com/docs/billing/migration/strong-customer-authentication#scenario-1-handling-sca进行操作。
基本上,如果订阅处于incomplete
状态,则需要检查subscription.latest_invoice.payment_intent
状态。
这些卡需要身份验证将在require_action
中,尤其是对于设计用于测试这些方案的这两张测试卡而言。
在这种情况下,您只需要将subscription.latest_invoice.payment_intent.client_secret
传递到前端并调用handleCardPayment
即可显示3DS模式,供您的客户完成授权。