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

使用CURL实现Stripe Express/Custom入驻时如何传递关联账户ID

解决Stripe独立关联账户入驻传递账户ID的方法

你当前用的是Stripe Connect Express的OAuth授权码入驻流程,仅适配主账户入驻,要给独立关联账户办理入驻并绑定对应ID,按以下两步修改即可:


1. 调整入驻授权链接

在原入驻链接的参数后新增stripe_user_id参数,参数值填写你要绑定的用户独立关联账户ID(acct_开头的Stripe账户标识),修改后的链接格式如下:

https://connect.stripe.com/express/oauth/authorize?redirect_uri=https://你的PHP回调文件地址&client_id=你的Stripe客户端ID&state=自定义校验值&stripe_user_id=目标用户的关联账户ID

提示:state参数建议替换成和当前平台用户绑定的唯一值,后续回调时做校验避免CSRF攻击


2. 修正后端CURL逻辑

你当前的代码存在参数书写错误,同时需要新增关联账户指定的请求头,完整修改后的代码如下:

<?php
if (isset($_GET['code'])) { // 授权跳转后拿到授权码
    $code = $_GET['code'];
    // 此处可加state参数校验逻辑,和跳转前生成的state值对比,拦截恶意请求
} else {
    echo "Error";
    exit;
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://connect.stripe.com/oauth/token");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 修正原代码多余的=符号,替换STRIPE_SECRET_KEY为你的实际密钥
$postFields = "client_secret=STRIPE_SECRET_KEY&code=".$code."&grant_type=authorization_code";
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($ch, CURLOPT_POST, 1);

$headers = array();
$headers[] = "Content-Type: application/x-www-form-urlencoded";
// 新增关联账户指定头,值为目标用户的acct_开头关联账户ID
$headers[] = "Stripe-Account: 目标用户的关联账户ID";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
// 此处可解析$result,将返回的stripe_user_id和平台用户ID绑定存储,避免关联错误
header('location: https://认证完成后跳转的页面地址');
if (curl_errno($ch)) {
    // 生产环境建议添加错误日志记录,方便排查问题
    error_log(curl_error($ch));
}
curl_close ($ch);
?>

补充说明

如果你还没有提前为用户创建关联账户,不需要手动传ID,走完原OAuth流程后,解析返回结果里的stripe_user_id字段,就是Stripe自动为该用户生成的独立关联账户ID,你把这个ID和平台对应用户的账号绑定存储即可,后续所有对该账户的操作都用这个ID调用接口即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:36:02