支付配置指南

支持的支付方式

方式 适用场景 说明
客服开通 推荐,无需申请 用户扫码加客服,转账后人工开通
微信支付 国内用户 需申请商户号
支付宝 国内用户 需申请开放平台
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               # 工作时间

流程

  1. 用户访问 /payment/contact?plan=pro 看到客服二维码
  2. 用户扫码添加客服微信
  3. 用户告知手机号/邮箱,选择套餐后转账
  4. 管理员在后台 /payment/admin/activation-requests 查看申请
  5. 确认收款后调用 /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

申请流程:

  1. https://pay.weixin.qq.com 注册商户号
  2. 完成商户认证
  3. 在「账户中心」→「API安全」生成API密钥
  4. 下载API证书(apiclient_key.pem)
  5. 配置支付授权目录和回调域名

支付宝

# 支付宝配置
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                      # 沙箱模式

申请流程:

  1. https://open.alipay.com 创建应用
  2. 选择「电脑网站支付」能力
  3. 生成RSA2密钥对(使用支付宝密钥工具)
  4. 上传应用公钥,获取支付宝公钥
  5. 配置回调地址

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

申请流程:

  1. https://stripe.com 注册账户
  2. 在 Dashboard → Developers → API keys 获取密钥
  3. 在 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_ 开头的测试密钥

安全注意事项

  1. 不要将 API 密钥提交到代码仓库
  2. 使用 HTTPS 保护回调地址
  3. 验证回调签名防止伪造
  4. 定期轮换 API 密钥
  5. 记录所有支付日志用于对账