我遇到了一个问题,我有一个附加了默认来源的客户,我想将最后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月份和年份帐单地址以及更多关于该卡的信息。