我正在尝试从客户默认来源获取卡号的最后4位数字



我遇到了一个问题,我有一个附加了默认来源的客户,我想将最后4位数字回显到前端,这样他们就可以在他们的账户面板中查看文件中的卡。我使用stripe API在php中对其进行编码。无论我在哪里搜索,我似乎都无法真正获得要打印到前端的最后四位数字,一旦我获得了最后四位,我也需要显示到期日期。我不知道该添加哪个代码。这是我的代码:

这是体内

<h2 class="" style="font-family: 'Source Sans Pro', sans-serif !important;">                                     
<?php
require('./stripe-php/init.php');      
StripeStripe::setApiKey("STRIPE API KEY");
$customer = StripeCustomer::retrieve($ss_customer_id);
cardID = $customer->sources->data->last4;
echo $cardID;
?>
</h2>

在的头部

// Perform query
$result = mysqli_query($con, "SELECT * FROM globalusers WHERE username = '" . $_SESSION['username']"'");
$user = mysqli_fetch_array($result);
// Free result set
mysqli_free_result($result);
$ss_customer_id = $user['user_token'];

注释的意思不是"转储数据库",而是打印/记录Customer对象中的所有值,您将能够找到变量所在的位置。

如果你使用的是付款方式,这根本不起作用——你需要列出付款方式,然后你就会在那里找到它。

编辑:

你也许可以试试StripeCustomer::retrieve($ss_customer_id, ["expand" => "default_source"]),然后你应该在我相信$customer->default_source->last4找到最后4个。

您的线路:

cardID = $customer->sources->data->last4;

需要看起来更像的东西:

cardID = $customer->sources->data[0]->card->last4;

其中:

  • data[0]包含您想要的data数组项中的哪一个的引用(您需要确定哪一个是默认的支付方式,并用它的id替换0(;以及
  • card需要插入您的继承权

如果您检查创建支付方法返回的响应对象,您将能够看到JSON响应中的层次结构,然后从那里开始。它也在条带事件日志中。

您也可以从其他调用的响应对象中获取它。例如,从付款意向:

payment_intent->charges->data[0]->payment_method_details->card->last4

我已经能够解决我的问题,这些答案都没有帮助,我不得不自己解决,这就是我得到的。


require './stripe-php/init.php'; 
StripeStripe::setApiKey("SK LIVE KEY");
$stripe = StripeCustomer::retrieveSource(
$ss_customer_id,
$ss_card_id,
array()
);
$stripe2 = $stripe->toJSON();                                                
$JSON = $stripe2;
$jsonIterator = new RecursiveIteratorIterator(
new RecursiveArrayIterator(json_decode($JSON, TRUE)),
RecursiveIteratorIterator::SELF_FIRST);

foreach ($jsonIterator as $key => $val) {
if(!is_array($val)) {                                            
echo "<td>" .$key. "</td> <td>".$val ."</tr>";
}
}

这会导入与客户相关的所有来源。

这正是我所需要的一切,

它包括:LAST4EXPR月份和年份帐单地址以及更多关于该卡的信息。

最新更新