如何保存条纹 PaymentIntent 客户 ID 以备将来收费?

时间:2021-05-27 11:15:37

标签: php laravel stripe-payments

我正在尝试保存和检索条带客户 ID 以备将来收费,我使用付款意图,到目前为止一切正常,我可以向客户收费并附上卡,但我不知道如何检索客户支付意图功能之外的 id。 这是我第一次向用户收费并附上卡的付款意向代码:

   public function checkitout (Request $request, $subscription_id)
    {
        \Stripe\Stripe::setApiKey('sk_test_XXXXXXXXXXXXXX');
        header('Content-Type: application/json');

        try {
            $subscription = Subscription::findByUid($subscription_id);
            // retrieve JSON from POST body
            $json_str = file_get_contents('php://input');
            $json_obj = json_decode($json_str);
            $customer = \Stripe\Customer::create();
            $paymentIntent = \Stripe\PaymentIntent::create([
                'amount' => $subscription->plan->stripePrice(),
                'currency' => 'usd',
                'customer' => $customer->id,
                'setup_future_usage' => 'off_session',
                'description' => "$subscription_id",

            ]);
        

            $output = [
                'clientSecret' => $paymentIntent->client_secret,
            ];

            echo json_encode($output);
        } catch (Error $e) {
            http_response_code(500);
            echo json_encode(['error' => $e->getMessage()]);
        }
    }

我使用 webhooks 来激活会员资格(并且我将订阅 ID 存储在描述中...但在这种情况下这无关紧要):

case 'charge.succeeded':
                $paymentIntent = $event->data->object;
                $getsubscriptionid = $paymentIntent->description;
                $subscription = Subscription::findByUid($getsubscriptionid);
                $subscription->start();
break;

如您所见,客户是在付款意图中创建的,我不知道如何将其存储在数据库中并稍后检索,或者是否有其他方法可以做到这一点? 谢谢

0 个答案:

没有答案
相关问题