使用客户对象条带API和PHP获取卡的最后4位数

使用客户对象条带API和PHP获取卡的最后4位数,php,stripe-payments,Php,Stripe Payments,我想使用Stripe获取客户卡的最后4位数字。 我已使用以下方式存储客户: // Get the credit card details submitted by the form $token = $_POST['stripeToken']; // Create a Customer $StripeCustomer = \Stripe\Customer::create(array( "description" =&g

我想使用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对象中提取最后4个。Stripe API文档显示了来自客户的last4的属性路径,
customer->sources->data->last4

但是,这似乎没有给出正确的最后4位数字。
$last4=$StripeCustomer->sources->data->last4


我想我误解了如何在条带API中使用属性。有人能给我指出正确的方向吗

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

源->数据是一个数组,因此您必须选择第一张卡


旁注:您使用令牌两次,一次用于创建客户,第二次用于创建费用,这将导致错误,因为令牌只能使用一次。您必须向客户收费,而不是向代币收费。

对于从搜索引擎登陆的任何其他人,这里有一个到Stripe文档的链接,介绍如何将卡的最后4位数字保存给客户。

非常有效!另请注意:你是绝对正确的。使用代币进行收费的第二段代码来自另一个帖子。我的代码实际上是向客户对象收费的。再次感谢!谢谢文档中对这一点太不清楚了,它给出了一些奇怪的方法,我怀疑这是在进行第二次调用,这要好得多!:)谢谢你,马修。也帮了我。那
default\u source
呢?
default\u source
是一个字符串,包含客户默认支付源的
ID。
因此您需要另一个调用来获取源对象并从那里读取
last4