使用 Stripe checkout Laravel Cashier 处理发票. payment_succeeded 事件

问题描述 投票:0回答:1

我正在迁移 Laravel Cashier 设置以利用 Stripe 结帐功能。我的平台提供两种服务:订阅和一次性收费。这些一次性费用之一是补充用户帐户中的短信积分的能力,最初,我使用的是

invoicePrice
方法并传递一些元数据:

$addonItemPrice = Cashier::stripe()->prices->retrieve($addonItem->stripe_id);
Auth::user()->invoicePrice(
    $addonItem->stripe_id, 1, [
        'metadata' => [
            'is_addon' => true,
            'is_sms_addon' => true,
            'created_at' => Carbon::now(),
            'user_id' => Auth::id(),
            'addon_id' => $addonItem->id,
            'addon_quantity' => $addonItem->quantity,
            'apply_credit_balance' => true,
        ],
    ]
);

然后,我正在侦听一个 Webhook 事件,以确保确定将 SMS 积分添加到他们的帐户中:

invoice.payment_succeeded

但是,我现在正在迁移到使用 Stripe 的结帐,所以现在看起来像:

/** * Handle received Stripe webhooks. */ public function handle(WebhookReceived $event) { match ($event->payload['type']) { 'customer.subscription.created' => $this->handleSubscriptionCreated($event->payload), 'invoice.payment_succeeded' => $this->handleInvoicePaymentSucceeded($event->payload), default => null }; }

但我现在根本没有收到 
$charge = $user->checkout([$addonItemPrice->id => 1], [ 'success_url' => "$frontendURL"."account/billing/checkout/success/", 'cancel_url' => "$frontendURL"."account/billing/add-ons/", 'metadata' => [ 'is_addon' => true, 'is_sms_addon' => true, 'created_at' => Carbon::now(), 'user_id' => Auth::id(), 'addon_id' => $addonItem->id, 'addon_quantity' => $addonItem->quantity, 'apply_credit_balance' => true, ], ]);

事件。看来我的元数据现在与

invoice.payment_succeeded
事件相关联。
我应该迁移到这个新活动,还是这会不可靠?我只想在发票付款成功时触发此类事件

php laravel stripe-payments
1个回答
0
投票
checkout.session.completed

会触发)。

我不熟悉 laravel 库支持的内容,但是看看这个 

invoice.payment_succeeded

函数的参数,它可能与

Stripe 
checkout 函数
是一对一的。
在这种情况下,您可能会通过以下参数得到您想要的:

checkout.sessions.create

https://docs.stripe.com/api/checkout/sessions/create?lang=php#create_checkout_session-invoice_creation-invoice_data-metadata

© www.soinside.com 2019 - 2024. All rights reserved.