2017-09-05 11 views
0

Stripe APIを使用して得意先レコードからクーポンIDを取得しようとしています。私はそれを間違った方法で参照していると思います。上記の推奨として、あなたは文字通りの文字列に$sub->discount->coupon->id変数の内容を挿入する対になる出力その文字列その周りの単一引用符と変数を出力している、Stripe API:クーポンデータへのアクセス

$cust = \Stripe\Customer::all(array("limit" => 3)); 

    if(!empty($cust)){ 

     foreach ($cust->data as $customer){ 

      foreach ($customer->subscriptions as $sub) 
      { 
       echo $sub->discount->coupon->id; 

      } 

     }  
    }else{ 
     //No Customers 
    } 
+1

はあなたのエコーラインからの単一引用符を削除します。 – Chris

+0

ログファイルに特定のエラーがありますか?ストライプログはどうですか? – Adam

+0

このタイプのものをデバッグするには、クーポンをエコーする直前にhttp://php.net/manual/en/function.var-dump.phpを使って変数 (つまり 'var_dump($ sub); ')。それであなたが期待するものならば、 'var_dump($ sub> discount);'、 'var_dump($ sub> discount-> coupon);'などを使って、あなたが期待していない場所を見ることができます。 – WOUNDEDStevenJones

答えて

2

:私はこれを試してみました。

$cust = \Stripe\Customer::all(array("limit" => 3, "expand" => "data.subscriptions")); 

if(!empty($cust)){ 

    foreach ($cust->data as $customer){ 

     foreach ($customer->subscriptions->data as $sub) 
     { 
      if ($sub->discount && $sub->discount->coupon) { 
       echo $sub->discount->coupon->id . "\n"; 
      } 
     } 

    } 

} else { 
    // No Customers 
} 

:どちらのあなたは空想の文字列補間、サブスクリプション・アレイは、お客様配列と同じ形状をしているようecho "{$sub->discount->coupon->id}";

であなたはまた、$customer->subscriptions->dataをループする必要が持っているものを交換する場合は、単一引用符を削除しますか、 $sub->discountまたは$sub->discount->couponがnullの場合、エラーを回避するためにifステートメントを追加しました。

は、ここでの出力例を見てください: https://stripe.com/docs/api#retrieve_subscription

+0

レスポンスありがとうございますが、私がStripeから顧客データを取得したときに、応答には私がアクセスしたい購読データが含まれています。私はJSONの解析がここでの問題だと思います。 – zzMzz

+0

私の応答を更新しました。あなたは、オブジェクトの展開に関する部分が必要ないというのは間違いありません。さらに問題がある場合は、エラーメッセージを投稿してください – hpar

関連する問題