私は 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
。この場合、一致する電子メール アドレスを持つ顧客オブジェクトが見つかるまで、すべての顧客オブジェクトをページングして確認する必要があります。顧客を作成しようとするたびにこれを行うと、非常に非効率的であることがわかります。