web-dev-qa-db-ja.com

Customerオブジェクトを使用したカードのLast4桁の取得-Stripe API with PHP

Stripeを使用して顧客カードの下4桁を取得したいのですが。私はすでに以下を使用して顧客を保管しています:

      // Get the credit card details submitted by the form
      $token = $_POST['stripeToken'];

      // Create a Customer
      $StripeCustomer = \Stripe\Customer::create(array(
              "description" => "$username",
              "card" => $token
      ));

次に、カードの最後の4桁にアクセスして保存します。 (コンテキストとして、今後の支払いのためにStripeを使用して保存したカードをユーザーに表示したいと思います。これはサブスクリプションサービスではありません)。

私は解決策を探しましたが、多くの投稿が料金後の最後の4桁を保存しており、次のように料金から情報を取得しています。

$last4 = null;
try {
    $charge = Stripe_Charge::create(array(
    "amount" => $grandTotal, // amount in cents, again
    "currency" => "usd",
    "card" => $token,
    "description" => "Candy Kingdom Order")
);
$last4 = $charge->card->last4;

請求の前に同じことをしたいので、Customer Objectから最後の4つを引き出します。 Stripe APIのドキュメントには、顧客からのlast4の属性パスが示されています。
customer->sources->data->last4

ただし、これでは正しい下4桁が表示されないようです。
$last4 = $StripeCustomer->sources->data->last4;

Stripe APIで属性を使用する方法を誤解していると思います。誰かが私を正しい方向に向けることができますか?

17
jaewo0k

$ last4 = $ StripeCustomer-> sources-> data [0]-> last4;

sources-> dataは配列なので、最初のカードを選択する必要があります。

補足:トークンを2回使用しています。1回目は顧客の作成、2回目は請求の作成です。トークンは1回しか使用できないため、エラーが発生します。トークンの代わりに顧客に請求する必要があります。

33
Matthew Arkin