以下のプロセスを構築したい
- クライアントが予約ボタンを押すと、トランザクションの金額をクレジット カードに保留する必要があります。
保留はカードに請求しないと思います。つまり、お金がカードから離れることはありません。保留は、お金が利用可能であることを確認し、数日間保留するだけです。
この 7 日以内に別の API を呼び出して、請求を完了するか、保留をキャンセルするか、保留を期限切れにするだけです。
クライアントが予約した場合、お金は保留になり、1 日ほどでキャンセルされ、保留は解除されます。Stripe API のドキュメントを確認しましたが、このプロセスを行う方法がわかりません。paymentIntent API を使用する必要があると思います。私がしなければならないプロセスを教えてください。
$stripe = new \Stripe\StripeClient(env('STRIPE_SECRET_KEY')); $getPaymentMethod = $stripe->paymentMethods->all([ 'customer' => $request->customerId, 'type' => 'card', ]); $createIntent = $stripe->paymentIntents->create([ 'amount' => $request->price * 100, 'currency' => 'usd', 'payment_method' => $getPaymentMethod->data[0]->id, 'payment_method_types' => [$request->paymentType], 'customer' => $request->customerId, 'capture_method' => 'manual', 'description' => 'The payment of the appointment', ]); $confirmPaymentIntent = $stripe->paymentIntents->confirm( $createIntent->id, ['payment_method' => $getPaymentMethod->data[0]->id] ); $captureIntent = $stripe->paymentIntents->retrieve($confirmPaymentIntent->id); $results = $captureIntent->capture($confirmPaymentIntent->id); return $results;
このコードを試してみたので、機能しており、支払いがキャプチャされます。しかし、ストライプにはお金が請求されず、残高は 0.00 ドルです。それが正しいかどうか、次のステップを完了する方法がわかりません。私を助けてください。私は何をすべきですか?