Laravel Cashier 3D Secure / SCA问题条纹

时间:2019-09-15 19:21:25

标签: php laravel stripe-payments payment-gateway laravel-cashier

在我们的网站上使用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。”

1 个答案:

答案 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模式,供您的客户完成授权。