主题
Stripe注册到提现SOP
目标
完成Stripe从注册、技术接入、审核上线到提现的全流程,实现产品的海外支付收款闭环。
前置条件
- 香港银行卡或海外银行卡(推荐:香港虚拟银行ZA Bank、传统银行如中银香港)
- 护照或身份证(用于Stripe身份验证)
- 产品官网已上线且功能完整(Stripe会审核网站)
- 联系邮箱(必须使用域名邮箱,如 support@yourdomain.com)
- 服务器/开发环境已就绪(用于技术接入)
操作步骤
步骤1:准备材料
目的:提前准备好所有注册和审核需要的材料,避免注册过程中卡住。 操作:
- 银行账户:
- 确认银行卡支持接收美元/港币电汇
- 准备好银行账户信息:银行名称、账户号码、SWIFT Code
- 推荐方案:
- 香港银行:中银香港、汇丰香港、ZA Bank(虚拟银行,开户最快)
- 新加坡银行:如果条件允许,新加坡也是Stripe支持的热门地区
- 注意:中国大陆银行卡目前无法直接用于Stripe提现
- 身份证明:
- 护照(首选,审核通过率最高)
- 或身份证 + 地址证明(如水电费账单、银行对账单)
- 确保证件在有效期内
- 准备好证件的清晰照片/扫描件(< 10MB,JPG/PNG格式)
- 网站准备(Stripe审核必查项):
- 官网功能完整,不是半成品
- 网站有明确的联系方式(support@yourdomain.com)
- 网站有服务条款(Terms of Service)页面
- 网站有隐私政策(Privacy Policy)页面
- 网站有退款政策(Refund Policy)页面
- 网站有定价页面(Pricing)清晰展示价格
- 产品功能截图和描述完整
- 业务信息:
- 公司/个人名称(与证件一致)
- 业务地址
- 业务描述(英文,2-3句话说明产品做什么)
- 预计月交易量
- 网站URL 验证:
- 银行账户信息齐全
- 身份证件清晰照片已准备
- 网站包含 ToS / Privacy Policy / Refund Policy / Pricing 页面
- 域名邮箱可正常收发邮件
步骤2:注册Stripe账号
目的:完成Stripe账号注册和身份验证,获得可用的Stripe账户。 操作:
- 选择注册地区:
- 访问 https://stripe.com 并选择注册地区
- 推荐选择:香港(HK)— 中国大陆用户最容易开通
- 也可以考虑使用 Stripe Atlas 注册美国实体(费用$500,但长期更灵活)
- 注意:不同地区的手续费率可能略有差异
- 填写注册信息:
- 使用域名邮箱注册(不要用Gmail/QQ邮箱)
- 填写真实姓名(与证件一致)
- 填写业务地址(可以使用注册地区的地址)
- 选择业务类型:Individual(个人)或 Company(公司)
- 完成身份验证(KYC):
- 上传证件照片(护照或身份证)
- 填写出生日期
- 填写居住地址
- 等待审核(通常1-3个工作日)
- 绑定银行账户:
- 进入 Dashboard → Settings → Payouts
- 添加银行账户信息
- Stripe会向银行发送一笔小额验证款(1-2天到账)
- 输入验证金额完成绑定
- 填写业务描述:
- 进入 Dashboard → Settings → Business settings
- 填写业务类别(如 "Software" > "SaaS")
- 填写业务描述(英文,说明产品做什么、用户是谁)
- 填写产品URL和客服邮箱
- 填写预计月交易额 验证:
- Stripe账号已创建且能登录Dashboard
- 身份验证已通过
- 银行账户已绑定并验证
- 业务信息已填写完整
步骤3:技术接入
目的:在产品中集成Stripe支付功能,实现用户可付费购买。 操作:
- 安装Stripe SDK:bash
# Node.js项目 npm install stripe # Python项目 pip install stripe - 获取API密钥:
- 进入 Dashboard → Developers → API keys
- 复制 Publishable key(pk_test_xxx)和 Secret key(sk_test_xxx)
- 将密钥存入环境变量(绝不能硬编码在代码中):bash
# .env STRIPE_PUBLIC_KEY=pk_test_xxx STRIPE_SECRET_KEY=sk_test_xxx
- 创建产品和价格:
- 方式一:在Dashboard中手动创建
- 进入 Dashboard → Products → Add product
- 填写产品名称和描述
- 设置价格(如 $9.99/month)
- 记录 Price ID(price_xxx)
- 方式二:通过API创建javascript
const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY); const product = await stripe.products.create({ name: 'Pro Plan', description: 'Full access to all features' }); const price = await stripe.prices.create({ product: product.id, unit_amount: 999, // $9.99 (以分为单位) currency: 'usd', recurring: { interval: 'month' } });
- 方式一:在Dashboard中手动创建
- 实现支付页面:
- 方案A(推荐):使用Stripe Checkout(开箱即用的支付页面)javascript
const session = await stripe.checkout.sessions.create({ mode: 'subscription', payment_method_types: ['card'], line_items: [{ price: 'price_xxx', quantity: 1 }], success_url: 'https://yourdomain.com/success?session_id={CHECKOUT_SESSION_ID}', cancel_url: 'https://yourdomain.com/pricing' }); // 重定向用户到 session.url - 方案B:使用Stripe Elements(自定义支付表单)
- 适合需要完全自定义支付页面的场景
- 需要更多前端开发工作
- 方案A(推荐):使用Stripe Checkout(开箱即用的支付页面)
- 配置Webhook:
- 进入 Dashboard → Developers → Webhooks
- 添加端点URL:
https://yourdomain.com/api/stripe/webhook - 选择要监听的事件:
checkout.session.completed(支付成功)customer.subscription.created(订阅创建)customer.subscription.updated(订阅更新)customer.subscription.deleted(订阅取消)invoice.payment_failed(支付失败)
- 实现Webhook处理逻辑:javascript
// 验证Webhook签名(必须!) const sig = request.headers['stripe-signature']; const event = stripe.webhooks.constructEvent( request.body, sig, process.env.STRIPE_WEBHOOK_SECRET ); switch(event.type) { case 'checkout.session.completed': // 激活用户订阅 break; case 'customer.subscription.deleted': // 取消用户订阅 break; case 'invoice.payment_failed': // 处理支付失败 break; }
- 测试环境验证:
- 使用测试密钥进行完整流程测试
- 使用Stripe测试卡号:
- 成功支付:
4242 4242 4242 4242 - 需要验证:
4000 0025 0000 3155 - 支付被拒:
4000 0000 0000 0002
- 成功支付:
- 过期日期填未来日期,CVC填任意3位数
- 测试场景清单:
- [ ] 新用户首次订阅成功
- [ ] Webhook正确接收并处理事件
- [ ] 订阅取消后权限正确回收
- [ ] 支付失败时正确处理
- [ ] 升级/降级套餐正确处理 验证:
- 测试环境下完整支付流程可跑通
- Webhook能正确接收并处理所有关键事件
- 用户订阅状态与Stripe同步
步骤4:上线审核
目的:通过Stripe正式审核,切换到生产环境开始真实收款。 操作:
- 提交正式审核:
- 确认所有Dashboard中的信息已填写完整
- 确认网站包含所有必需页面(ToS / Privacy / Refund / Pricing)
- 确认银行账户已验证
- 在Dashboard中查看是否有待处理的审核要求
- 如果有,按要求提供补充材料
- 等待审核通过:
- 通常需要1-7个工作日
- 审核期间Stripe可能会发邮件要求补充信息
- 及时回复Stripe的邮件(通常48小时内需要响应)
- 常见审核问题:
- 网站功能不完整 → 完善网站后重新提交
- 业务描述不清 → 补充详细的产品说明
- 身份验证失败 → 重新提交更清晰的证件照片
- 切换到Live Mode:
- 审核通过后,在Dashboard右上角从 "Test" 切换到 "Live"
- 获取Live环境的API密钥(pk_live_xxx / sk_live_xxx)
- 更新环境变量为Live密钥
- 获取Live环境的Webhook Secret并更新配置
- 上线前最终检查:
- 用真实卡完成一次小额测试支付
- 确认Webhook在Live模式下正常工作
- 确认支付金额和币种正确
- 确认退款流程可用 验证:
- Stripe审核已通过
- Live Mode已开启
- 用真实卡完成了一次成功支付
- 后台能看到支付记录
步骤5:提现配置
目的:配置提现规则,确保收入能按时到账银行账户。 操作:
- 设置提现周期:
- 进入 Dashboard → Settings → Payouts
- 选择提现频率:
- Daily(每日自动提现,T+2到T+7到账)
- Weekly(每周固定日提现,推荐)
- Monthly(每月固定日提现)
- 推荐选择Weekly,便于做账和资金规划
- 确认银行信息:
- 确认银行账户名称与Stripe账户名称一致
- 确认SWIFT Code正确
- 首次提现建议小额测试($50-100)
- 首次提现测试:
- 等待账户中有足够的可用余额(Stripe会预留部分金额作为风险保证金)
- 在Dashboard → Payouts 中手动发起一次提现
- 记录提现时间和预计到账时间
- 确认银行账户收到款项
- 了解提现费用:
- Stripe提现到香港银行:通常无额外提现费
- Stripe提现到其他地区银行:可能有1-2%的货币转换费
- 银行端可能收取电汇手续费(需咨询银行)
- 税务相关:
- Stripe会自动生成交易报表(Dashboard → Reports)
- 每月导出交易记录用于做账
- 如果注册的是香港Stripe,需了解香港税务要求
- 建议咨询会计师了解跨境收入报税事宜 验证:
- 提现周期已设置
- 首次提现已成功到账
- 了解提现费用和税务要求
检查清单
- [ ] 银行账户已绑定并验证
- [ ] 身份验证已通过
- [ ] 网站包含 ToS / Privacy / Refund / Pricing 页面
- [ ] 域名邮箱可正常使用
- [ ] Stripe SDK已集成
- [ ] 支付流程测试通过(Test Mode)
- [ ] Webhook正确处理所有关键事件
- [ ] Stripe审核已通过
- [ ] Live Mode已切换
- [ ] 真实支付测试成功
- [ ] 提现周期已配置
- [ ] 首次提现已到账
常见问题
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 身份验证失败 | 证件照片模糊或信息不匹配 | 重新拍摄清晰的证件照片,确保所有信息清晰可读,与注册信息完全一致 |
| 网站审核不通过 | 网站缺少必需页面或功能不完整 | 添加 ToS / Privacy Policy / Refund Policy 页面,确保产品功能完整可用 |
| 支付成功率低 | 用户信用卡被拒或风控触发 | 开启Stripe Radar(反欺诈),配置风险规则,确保错误信息友好提示用户 |
| Webhook收不到事件 | 端点URL不可达或签名验证失败 | 检查服务器是否能被外网访问,验证Webhook Secret配置正确,查看Dashboard中的Webhook日志 |
| 提现不到账 | 银行信息错误或Stripe风控 | 确认银行信息无误,联系Stripe支持,查看Dashboard中提现状态 |
| 被Stripe风控冻结 | 交易异常或投诉率高 | 保持低争议率(< 1%),及时回复用户退款请求,联系Stripe支持说明情况 |
| 不支持中国大陆银行卡 | Stripe未在中国大陆开放 | 使用香港银行账户或通过Stripe Atlas注册美国实体 |
关联内容
- 概念卡片:Stripe、Stripe接入
- 工具档案:Stripe、风控防薅
- SOP主线:05-支付系统接入