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

测试模式下Stripe账户间转账提示无此目标账户问题求助

问题原因

  • 核心错误是stripe.transfers.create接口的destination参数仅支持接收当前平台账户下关联的Connect账户ID,你填入的是完全独立的另一个Stripe账户的ID,Stripe不支持两个无关联的普通Stripe账户通过该接口直接转账,所以会报目标账户不存在的错误。
  • 额外逻辑问题:你当前的代码在PaymentIntent仅创建未完成支付的情况下就发起转账,此时平台账户还未收到对应资金,即使账户ID正确也会触发余额不足的报错。
  • 测试模式完全支持该转账操作,不存在功能限制。

解决步骤

  1. 创建关联的测试Connect账户
    登录你代码中STRIPE_SECRET_KEY对应的Stripe账户后台,进入Connect模块,创建测试状态的自定义/标准关联账户,创建完成后你会拿到acct_xxxx格式的账户ID,这个才是需要填入destination字段的有效值。不要用独立Stripe账户自行调用/v1/account接口返回的ID。

  2. 调整转账逻辑
    Stripe支持两种方式避免余额不足问题:

  • 方式一:先完成PaymentIntent的支付流程,测试模式下可用测试卡4242 4242 4242 4242、任意未来过期日期、任意3位CVC完成支付确认,待资金进入平台可用余额后再发起转账。
  • 方式二:在转账参数中新增source_transaction字段,直接关联支付完成后的Charge ID,无需等待资金到账即可发起转账,示例代码调整如下:
const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY, {
  apiVersion: '2020-03-02',
  maxNetworkRetries: 2,
});

exports.handler = async (event) => {
  try {
    // 1. 创建PaymentIntent
    const paymentIntent = await stripe.paymentIntents.create({
      amount: 100,
      currency: 'eur',
      payment_method_types: ['card'],
      transfer_group: '{ORDER10}',
    });

    // 2. 此处补充PaymentIntent确认逻辑,测试模式下可直接用预制的测试支付方法
    const confirmedIntent = await stripe.paymentIntents.confirm(
      paymentIntent.id,
      { payment_method: 'pm_card_visa' }
    );

    // 3. 创建转账,关联对应Charge ID
    await stripe.transfers.create({
      amount: 70,
      currency: 'eur',
      destination: '你的测试Connect账户ID(acct_开头)',
      transfer_group: '{ORDER10}',
      source_transaction: confirmedIntent.latest_charge,
    });

    return {
      statusCode: 200,
      body: JSON.stringify(confirmedIntent),
    };
  } catch (error) {
    console.log({ error });
    return {
      statusCode: 400,
      body: JSON.stringify(error),
    };
  }
};

内容的提问来源于stack exchange,提问作者My name is jeff

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:15:04