【问题标题】:Cartalyst Stripe package implementation to laravelCartalyst Stripe 包实现到 laravel
【发布时间】:2021-10-30 18:37:45
【问题描述】:

我正在我的 laravel 应用中实现 Cartalyst Stripe。

https://cartalyst.com/manual/stripe/2.0#installation

这是我在 index 方法中的控制器代码:

$stripe = new Stripe(env('STRIPE_API_KEY'));

        $customer = $stripe->customers()->create([
            'email' => Auth::user()->email,
            'name' => Auth::user()->name
        ]);

        $token = $stripe->tokens()->create([
            'card' => [
                'number'    => '4242424242424242',
                'exp_month' => 6,
                'exp_year'  => 2022,
                'cvc'       => 314,
            ],
        ]);

        $card = $stripe->cards()->create($customer['id'], $token['id']);

        $charge = $stripe->charges()->create([
            'customer' => $customer['id'],
            'currency' => Session::get('appcurrency'),
            'amount' => Session::get('total_payment'),
            'statement_descriptor' => 'Descriptor.com'
        ]);

我将使用这个引导表单来收集用户信息,所以稍后我将通过 $request 传递所有用户输入(稍后会有月份和年份分开,但现在不重要):

<form action="{{  \LaravelLocalization::localizeURL('/order-final') }}" method="post">
    @csrf
    @method('post')


<div class="section">
    <div class="container mt-5">
    <div class="row">
        <div class="col-lg-3"></div>
<div class="col-lg-6"><label>Card number:</label><input type="text" class="form-control" name="card_number" placeholder="Card number" value=""></div>

    </div>
    <div class="row">        
        <div class="col-sm-3"></div>
        <div class="col-sm-3 mt-5"><label>Expiration:</label><input type="text" class="form-control" name="expiration_date" placeholder="Expiration"></div>
        <div class="col-sm-3 mt-5"><label>CVC:</label><input type="text" class="form-control" name="cvc" placeholder=" CVC"></div>
        <div class="col-sm-2"></div>
    </div>

    <div class="row">
        <div class="col-lg-5"></div>
        <div class="col-lg-4 mt-5"><button type="submit" class="btn btn-primary" id="card-button">Pay</button></div>
        <div class="col-lg-4"></div>
    </div>
</form>

所以,一旦我进行了这个测试,一切都很好,所以实施是成功的。 我只是想弄清楚,如何处理需要 3D Secure 的卡,因为我想让所有付款都需要 3D Secure,尤其是来自 SCA 国家的付款。 我试图用支付意图和设置意图来做到这一点,但我不知道。 我想让客户填写卡片详细信息,然后将其重定向到条带 3D 安全页面,然后重定向回某个 url。 在付款意图是参数return_url,但我不知道如何设置它。 以前没做过条纹。 我现在可以在没有 3D 安全的情况下使用条带,这没关系,但我想使用 3D 安全。 我尝试在 Stripe.js 中使用 Stripe 的表单:

 <div id="card-element">

但它总是会弄乱我的引导程序 5 代码,因此重定向会很好。 我还考虑了条带计费门户选项并将客户直接重定向到条带计费门户。 另外,我想在条纹中使用客户的卡,这也很有效,只是遇到了 3D 安全问题。 所以我只是需要以某种方式触发 Stripe SCA 重定向以进行身份​​验证。 你能帮我吗? 非常感谢

【问题讨论】:

    标签: php laravel stripe-payments


    【解决方案1】:

    您可能需要联系 Cartalyst 以获得更详细的支持,但在较高级别上,它似乎在很大程度上充当了底层 stripe-php 包 (github) 的薄包装。

    您需要阅读 migrating to Payment Intents from Charges 以正确支持 SCA/3D Secure,或接受付款 guide

    虽然您可以return_url 用于manual 3DS redirect handling,但不建议这样做。使用 Stripe.js 客户端帮助程序 confirmCardPayment (guide step) 可能会带来更好的集成体验。

    【讨论】:

    • 是的,我想通了。你只需要使用 $session 进行条带结帐。机器人选项现在对我有用。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 2019-01-25
    • 2020-04-24
    • 2016-10-27
    • 2015-06-29
    • 2018-03-10
    • 2019-05-17
    • 1970-01-01
    • 2022-06-30
    相关资源
    最近更新 更多