条带-webhook中的升级/降级计划响应

时间:2018-10-01 14:22:29

标签: php stripe-payments

以下我用来升级用户计划的代码:

$subscription = \Stripe\Subscription::all(array('customer'=>$customerId,'limit'=>10));

        $subscription_id = $subscription->data[0]->id;

        $subscription = \Stripe\Subscription::retrieve($subscription_id);
        $updatePlan = [
            'cancel_at_period_end' => false,
            'items' => [
                [
                    'id' => $subscription->items->data[0]->id,
                    'plan' => planPrefix.$packageId,
                ],
            ],
            'tax_percent' => $package_tax,
        ];

        \Stripe\Subscription::update($subscription_id, $updatePlan);

        //Create invoice now
        $invoice = \Stripe\Invoice::create([
            'customer' => $customerId,
        ]);

        $invoiceId = $invoice->id;
        //Pay invoice now
        $invoice = \Stripe\Invoice::retrieve($invoiceId);
        $invoice->pay();

当条带支付给该新创建的发票时,事件“ invoice.payment_succeeded”被触发到我的webhook,在此我相应地更新了数据库。

问题在于,条带给我先前的计划ID和准确的发票。 例如,如果用户A订阅了计划ID 1,则Stripe将具有新订阅的计划详细信息的对象发送给我,带有准确数据的Webhook,但是当用户A 升级到ID为2的计划时,stripe向我发送数据,发生“ invoice.payment_succeeded”事件,在这里我可以找到与订阅更新有关的所有数据,但问题出在计划ID上。计划ID条带发送给我的是旧的,即1而不是2,并且当用户A升级到计划ID 3时,它在webhook通知中向我发送了计划ID 2。

在这方面的任何帮助将不胜感激。

0 个答案:

没有答案