Stripe Express账户开户异常:信息收集引导界面未弹出
Stripe Express账户信息收集流程问题解答
核心问题:你遗漏了创建**账户链接(Account Link)**的步骤
仅创建Express账户不会自动触发Stripe的信息收集界面,必须生成并引导用户跳转至Stripe提供的账户链接,这是用户补充缺失信息的官方入口。
正确流程步骤
- 创建Express账户:你当前的代码已经完成这一步,生成了基础账户,但缺少后续引导用户补全信息的环节。
- 生成账户链接(Account Link):在账户创建成功后,调用Stripe API的
accountLinks.create方法,生成用于引导用户完成信息收集的专属链接。 - 重定向用户至账户链接:将生成的链接返回给前端,引导用户跳转至Stripe的官方界面补全缺失信息(如出生日期、银行账户等)。
- 验证账户状态:用户完成信息提交后,可通过Webhook监听
account.updated事件,或主动查询账户的capabilities状态,确认是否所有请求的权限已激活,账户不再受限。
修改后的完整代码示例
function start_onboarding() { global $stripe_api_key; $stripe = new \Stripe\StripeClient($stripe_api_key); // 1. 创建Express账户 $stripe_account = $stripe->accounts->create([ 'type' => 'express', 'country' => 'US', 'business_type' => 'individual', 'email' => $this->get_email(), 'individual' => [ 'first_name' => $this->get_first_name(), 'last_name' => $this->get_last_name(), ], 'capabilities' => [ 'transfers' => ['requested' => true], 'card_payments' => ['requested' => true], ], ]); // 2. 生成账户链接(关键缺失步骤) $account_link = $stripe->accountLinks->create([ 'account' => $stripe_account->id, 'refresh_url' => 'https://your-domain.com/onboarding-refresh', // 用户取消或需重试时的跳转地址 'return_url' => 'https://your-domain.com/onboarding-complete', // 用户完成后的跳转地址 'type' => 'account_onboarding', ]); // 3. 重定向用户至Stripe的信息收集界面 header("Location: " . $account_link->url); exit; }
关键说明
- refresh_url:当用户在Stripe界面取消操作或需要重新进入时,会跳转回你指定的这个地址,你可以在这里重新生成账户链接让用户继续。
- return_url:用户完成所有信息提交后,Stripe会跳转回这个地址,你可以在这里进行后续的业务逻辑处理(如标记用户为已完成入职)。
- Webhook监听:建议配置
account.updated的Webhook事件,当用户补全信息后,Stripe会主动通知你的服务器,你可以实时更新账户状态,无需主动轮询。
内容的提问来源于stack exchange,提问作者Robert Bethge
相关产品推荐
相关产品推荐

