You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Stripe获取客户关联银行卡/账户的最后四位数字

Stripe 获取目标账户、客户支付方法及卡号后四位实现方案

需求说明

通过Stripe建立连接,完成以下操作:

  • 获取目标账户(destination account)
  • 检索客户对象ID
  • 获取该客户的可用支付方法,并提取关联银行卡/银行账户的最后四位数字

原代码问题修正

原代码存在语法和逻辑错误,以下是修正后的可运行实现:

require_once 'stripe-php-master/init.php';

// 初始化Stripe客户端
$stripe = new \Stripe\StripeClient($STRIPE_API_KEY);

// 1. 检索目标账户(destination account)
$destinationAccount = $stripe->accounts->retrieve($STRIPE_DEST);

// 2. 确定客户ID(需根据业务场景获取,示例假设客户ID已知)
// 若客户归属目标账户而非平台主账户,需切换账户上下文:$stripe->withConfig(['stripe_account' => $STRIPE_DEST])
$customerId = 'cus_xxxxxx'; // 替换为实际客户ID

// 3. 获取客户的卡类型支付方法
$paymentMethods = $stripe->paymentMethods->all([
    'customer' => $customerId,
    'type' => 'card',
]);

// 4. 提取首张卡的最后四位(先判断是否存在支付方法)
$last4 = null;
if (!empty($paymentMethods->data)) {
    $last4 = $paymentMethods->data[0]->card->last4;
}

// 若需获取银行账户(如ACH转账),可修改type参数并提取对应字段
// $paymentMethods = $stripe->paymentMethods->all([
//     'customer' => $customerId,
//     'type' => 'us_bank_account',
// ]);
// $last4 = $paymentMethods->data[0]->us_bank_account->last4;

关键细节说明

  • 目标账户检索:accounts->retrieve方法仅需传入目标账户ID,原代码的空数组参数属于语法错误。
  • 账户上下文切换:如果客户是关联在目标账户下的,必须用withConfig切换到目标账户的上下文才能正确检索客户数据。
  • 支付方法结构:paymentMethods->all()返回的列表在data属性下,而非sources->data;卡的最后四位在card->last4字段,银行账户对应us_bank_account->last4。
  • 空值校验:实际使用时必须先检查paymentMethods->data是否为空,避免数组越界报错。

内容的提问来源于stack exchange,提问作者Justin Crawfish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 15:15:44