支付配置指南
支持的支付方式
| 方式 | 适用场景 | 说明 |
|---|---|---|
| 客服开通 | 推荐,无需申请 | 用户扫码加客服,转账后人工开通 |
| 微信支付 | 国内用户 | 需申请商户号 |
| 支付宝 | 国内用户 | 需申请开放平台 |
| Stripe | 国际用户 | 需 Stripe 账户 |
🌟 推荐:客服开通(无需支付接口)
最简单的方式,适合初期运营:
# 客服配置
CUSTOMER_SERVICE_WECHAT_QR=https://your-domain.com/qr.jpg # 客服微信二维码图片URL
CUSTOMER_SERVICE_WECHAT_ID=your_wechat_id # 客服微信号
CUSTOMER_SERVICE_NAME=米塞斯引擎客服 # 客服名称
CUSTOMER_SERVICE_PHONE=13800138000 # 客服电话(选填)
CUSTOMER_SERVICE_EMAIL=support@example.com # 客服邮箱(选填)
CUSTOMER_SERVICE_HOURS=周一至周五 9:00-18:00 # 工作时间
流程:
- 用户访问
/payment/contact?plan=pro看到客服二维码 - 用户扫码添加客服微信
- 用户告知手机号/邮箱,选择套餐后转账
- 管理员在后台
/payment/admin/activation-requests查看申请 - 确认收款后调用
/payment/admin/activate/{request_id}开通
在线支付渠道(可选)
环境变量配置
在 .env 文件中添加以下配置(只需配置您使用的支付渠道):
微信支付
# 微信支付配置
WECHAT_PAY_APP_ID=wxxxxxxxxxxx # 公众号/小程序AppID
WECHAT_PAY_MCH_ID=1234567890 # 商户号
WECHAT_PAY_API_KEY=xxxxxxxxxxxxxxxx # API密钥(32位)
WECHAT_PAY_API_V3_KEY=xxxxxxxxxxxxxxxx # APIv3密钥
WECHAT_PAY_CERT_SERIAL=xxxxxxxxxxxx # 证书序列号
WECHAT_PAY_PRIVATE_KEY_PATH=/path/to/apiclient_key.pem
WECHAT_PAY_NOTIFY_URL=https://your-domain.com/payment/webhook/wechat
申请流程:
- 在 https://pay.weixin.qq.com 注册商户号
- 完成商户认证
- 在「账户中心」→「API安全」生成API密钥
- 下载API证书(apiclient_key.pem)
- 配置支付授权目录和回调域名
支付宝
# 支付宝配置
ALIPAY_APP_ID=2021xxxxxxxxxxxxxx # 应用ID
ALIPAY_PRIVATE_KEY=MIIEvQIBADANBgkq... # 应用私钥(一行)
ALIPAY_PUBLIC_KEY=MIIBIjANBgkqhkiG9... # 支付宝公钥(一行)
ALIPAY_NOTIFY_URL=https://your-domain.com/payment/webhook/alipay
ALIPAY_RETURN_URL=https://your-domain.com/payment/success
ALIPAY_GATEWAY=https://openapi.alipay.com/gateway.do
ALIPAY_SANDBOX=false # 沙箱模式
申请流程:
- 在 https://open.alipay.com 创建应用
- 选择「电脑网站支付」能力
- 生成RSA2密钥对(使用支付宝密钥工具)
- 上传应用公钥,获取支付宝公钥
- 配置回调地址
Stripe
# Stripe配置
STRIPE_SECRET_KEY=sk_live_xxxxxxxxxxxxx # 密钥
STRIPE_PUBLISHABLE_KEY=pk_live_xxxxxxxxx # 公开密钥
STRIPE_WEBHOOK_SECRET=whsec_xxxxxxxxxxxx # Webhook密钥
STRIPE_SUCCESS_URL=https://your-domain.com/payment/success
STRIPE_CANCEL_URL=https://your-domain.com/payment/cancel
申请流程:
- 在 https://stripe.com 注册账户
- 在 Dashboard → Developers → API keys 获取密钥
- 在 Webhooks 添加端点,选择
checkout.session.completed事件
回调地址配置
微信支付后台
支付回调URL: https://your-domain.com/payment/webhook/wechat
支付宝开放平台
异步通知URL: https://your-domain.com/payment/webhook/alipay
同步跳转URL: https://your-domain.com/payment/success
Stripe Dashboard
Webhook URL: https://your-domain.com/payment/webhook/stripe
Events: checkout.session.completed
API 接口
获取可用支付渠道
GET /payment/providers
获取定价
GET /payment/pricing
创建订单
POST /payment/create-order
Content-Type: application/json
{
"user_id": "user_123",
"plan": "pro", # free/personal/pro/enterprise
"provider": "wechat", # wechat/alipay/stripe
"months": 1
}
支付收银台页面
GET /payment/checkout?plan=pro&months=1
测试
检查配置状态
curl http://localhost:8000/payment/providers
返回示例:
{
"providers": [
{"id": "wechat", "name": "微信支付", "enabled": false},
{"id": "alipay", "name": "支付宝", "enabled": false},
{"id": "stripe", "name": "Stripe", "enabled": true}
]
}
沙箱/测试环境
- 微信: 使用沙箱商户号测试
- 支付宝: 设置
ALIPAY_SANDBOX=true - Stripe: 使用
sk_test_开头的测试密钥
安全注意事项
- 不要将 API 密钥提交到代码仓库
- 使用 HTTPS 保护回调地址
- 验证回调签名防止伪造
- 定期轮换 API 密钥
- 记录所有支付日志用于对账