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

React Native CLI集成Stripe Connect:客户端如何传递关联账户ID?

解决React Native CLI中Stripe Connect关联账户Payment Intent查找失败问题

问题原因

你在关联账户上创建的Payment Intent,客户端默认会去主账户中查找,因此出现「no such payment intent」错误,但该Intent实际存在于关联账户的Stripe控制台中——核心是客户端未指定关联账户ID。

解决方案:在客户端传递关联账户ID

针对React Native的Stripe SDK(@stripe/stripe-react-native),有两种方式指定关联账户ID:

1. 全局初始化时指定(适合全流程针对同一关联账户)

在StripeProvider中添加stripeAccount参数,全局生效:

import { StripeProvider } from '@stripe/stripe-react-native';

function App() {
  return (
    <StripeProvider
      publishableKey="你的发布密钥"
      stripeAccount="acct_xxxxxx" // 替换为你的关联账户ID
    >
      {/* 应用组件内容 */}
    </StripeProvider>
  );
}

2. 单个API调用时指定(适合部分操作针对关联账户)

在调用confirmPaymentIntent等方法时,通过第二个参数传入stripeAccount:

import { useStripe } from '@stripe/stripe-react-native';

const PaymentComponent = () => {
  const stripe = useStripe();

  const handleConfirmPayment = async () => {
    try {
      const result = await stripe.confirmPaymentIntent(
        {
          clientSecret: '你的Payment Intent客户端密钥',
          paymentMethodType: 'card',
        },
        { stripeAccount: 'acct_xxxxxx' } // 这里指定关联账户ID
      );
      // 处理支付结果
    } catch (err) {
      console.error(err);
    }
  };

  return <button onPress={handleConfirmPayment}>确认支付</button>;
};

关键注意事项

  • 后端创建Payment Intent时,必须通过Stripe-Account请求头指定关联账户ID(创建操作必须在后端完成,禁止前端直接创建)
  • 客户端传入的stripeAccount值,必须和后端创建时使用的关联账户ID完全一致

内容的提问来源于stack exchange,提问作者Muhammad Shakir Khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 01:38:23