Stripe が同じメールアドレスで複数の顧客を作成する 質問する

Stripe が同じメールアドレスで複数の顧客を作成する 質問する

私は PHP でストライプ チェックアウトを使用しています。顧客を作成し、料金を請求します。同じ顧客が戻ってきて同じメール アドレスで寄付した場合、ストライプは別の顧客を作成せず、既存の顧客に追加の支払いを請求する寄付フォームを作成したいと考えています。これは可能ですか? または、チェックアウトでは常に新しい顧客 ID を持つ新しい顧客が作成されますか?

これが私のcharge.phpです

<?php
    require_once('config.php');

    $token  = $_POST['stripeToken'];

    if($_POST) {
      $error = NULL;

      try{
        if(!isset($_POST['stripeToken']))
          throw new Exception("The Stripe Token was not generated correctly");
            $customer = Stripe_Customer::create(array(
              'card'  => $token,
              'email' =>  $_POST['stripeEmail'],
              'description' => 'Thrive General Donor'
            ));

            $charge = Stripe_Charge::create(array(
              'customer' => $customer->id,
              'amount'   => $_POST['donationAmount'] * 100,
              'currency' => 'usd'
            ));
      }
      catch(Exception $e) {
        $eror = $e->getMessage();
      }


    }

?>

ベストアンサー1

メールアドレスとStripe顧客IDの関係をデータベースに保存する必要があります。私はこれを見てこれを決定しました。顧客に関するStripeのAPI

POSTまず、新しい顧客を作成する場合、すべてのフィールドはオプションです。これにより、を実行するたびに/v1/customers、「新しい顧客オブジェクトが作成される」と考えられます。

また、顧客を取得するときに使用できるフィールドは のみですid。このことから、電子メール アドレスやその他のフィールドに基づいて顧客を取得することはできないと考えられます。


もし、あんたができないこの情報をデータベースに保存すると、 ですべての顧客を常に一覧表示できますGET /v1/customers。この場合、一致する電子メール アドレスを持つ顧客オブジェクトが見つかるまで、すべての顧客オブジェクトをページングして確認する必要があります。顧客を作成しようとするたびにこれを行うと、非常に非効率的であることがわかります。

おすすめ記事