2017-05-03 2 views
1

私はWebアプリケーションを作成しています:ストライプで支払いが完了するのはいつですか?

支払いが成功し、カードが請求される(拒否されない)場合、データベースを更新する必要があります。

私のコードはこちらです:私はまず顧客を作成します。

$customer = \Stripe\Customer::create(array(
     'email' => $_POST['stripeEmail'], 
     'source' => $_POST['stripeToken'], 
     'description' => $stripeEmail 
    )); 

はその後、私は顧客のためのサブスクリプションを作成する(ところで、変数が宣言され、すべてが働いている):

$subscription = \Stripe\Subscription::create(array(
     "customer" => $customer->id, 
     "plan" => $planName 
    )); 

私の質問:は、私がどうかを検出するためのウェブフックを作成する必要がありますかお支払いは成功ですか?またはフォームが正常に提出された時点で成功していますか?

+1

ウェブフックが必要です。成功した提出は、インターネットが機能したことを意味します。 –

+0

@JohnCondeドキュメントにあるものはどれですか?あなたが正しい方向に私を指すことができるなら、それがどこにあるのかと言うと、plsは回答を投稿して受け入れることができます。また、 'charge.succeeded'または' invoice.payment_succeeded'ですか?私は定期購読を使用しています。 –

+2

これはStripeよりも高いレベルです。フォーム提出が成功した場合は、インターネットプロトコルとマシンがすべて正常に業務を遂行したことを意味します。取引が承認されたわけではありません。ウェブフックは、Stripeが提出物をどのように処理したか、成功したかどうかを正確に伝えます。 –

答えて

4

普通の状況では、create a subscriptionとすると、Stripeは直ちに顧客に請求します(Stripeの定期購読料は前払いされます)。支払いが失敗した場合、APIはすぐにエラーを返し、サブスクリプションは作成されません。

この場合、ウェブフックを使用する必要はありません。正常なerror handlingを使用し、\Stripe\Subscription::create(...)を呼び出すときに\Stripe\Error\Card例外が発生したかどうかを確認してください。

すぐに請求するものがなければ、定期購読の作成は常に成功することに注意してください。これは、様々な状況で発生します

  • あなたはtrial_endパラメータを提供する場合、あなたがクーポンまたは負を使用した場合の計画は、デフォルトの試用期間

  • を持っている場合は、サブスクリプション

  • を作成するとき最初の請求書の総額を$ 0に減らす請求書明細

  • account_balanceが最初の請求書の費用をカバーできる場合

+0

パーフェクトな答えですが、上記のコードで '\ Stripe \ Error \ Card'を使う方法の例を挙げることができますか?ありがとう –

+0

ここをクリック:http://www.larryullman.com/2013/01/30/handling-stripe-errors/ –

関連する問題