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

Laravel调用Stripe Transfer API出现resource_missing错误如何解决?

解决Stripe Transfer API提示“No such destination”的问题

我来帮你排查这个转账失败的问题,你遇到的「No such destination」错误一般和几个常见原因有关,咱们一步步拆解解决:

1. 先确认目标账户ID的准确性

Stripe的账户ID是严格匹配的,哪怕多一个空格、大小写错了都会触发「resource missing」错误。你可以:

  • 登录Stripe后台找到对应的关联账户(Connected Account),复制它的原始账户ID,和代码里的acct_180W54CRJ51SjjGi逐字符对比,确保完全一致。
  • 别手动输入账户ID,直接从后台复制粘贴,避免拼写失误。

2. 检查API密钥的权限与环境匹配

转账到关联账户必须使用**平台账户(Platform Account)**的API密钥,而不是目标关联账户自己的密钥。另外还要注意:

  • 确认你用的密钥是测试环境还是生产环境,目标账户ID必须和当前环境对应——测试环境的账户ID不能用在生产环境请求里,反之同理。
  • 建议把密钥存在.env文件里,不要硬编码在代码中,比如:
    \Stripe\Stripe::setApiKey(env('STRIPE_PLATFORM_SECRET'));
    

3. 验证目标关联账户的状态

如果目标账户没有成功完成关联流程,或者状态异常,Stripe也会返回资源不存在的错误:

  • 登录Stripe后台,查看这个关联账户的状态,确认它已经完成KYC审核、处于活跃状态,没有被暂停或限制。
  • 如果是刚创建的关联账户,先确保关联流程已经走完(比如用户已经完成了Stripe的身份验证)。

4. 排查SDK版本与测试请求

  • 检查你的Stripe PHP SDK是不是最新版本,旧版本可能存在参数兼容问题,执行更新命令:
    composer update stripe/stripe-php
    
  • 你可以先在Stripe Dashboard的测试工具里手动发起一笔转账请求,用相同的账户ID和金额。如果手动请求成功,说明问题出在代码实现上;如果手动也失败,那大概率是账户本身的配置问题。

优化后的代码示例(带错误捕获)

给代码加上异常捕获,能更直观地看到错误细节,方便调试:

\Stripe\Stripe::setApiKey(env('STRIPE_PLATFORM_SECRET'));

try {
    $transfer = \Stripe\Transfer::create([
        "amount" => 400,
        "currency" => "usd",
        "destination" => "acct_180W54CRJ51SjjGi",
    ]);
    return response()->json($transfer);
} catch (\Stripe\Exception\InvalidRequestException $e) {
    // 打印Stripe返回的具体错误参数和信息
    dd('错误参数:'.$e->getStripeParam(), '错误信息:'.$e->getMessage());
} catch (\Exception $e) {
    dd('系统错误:'.$e->getMessage());
}

内容的提问来源于stack exchange,提问作者Bilal Arshad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:09:10