# 微信支付正式接入说明

当前程序内置的是“本地授权码模式”：用户扫码付款后，把设备码发给你，你用 `生成授权码_给卖家用.py` 生成授权码发回。

这适合开发期、小规模人工验证，不等于自动微信支付。

## 为什么桌面端不能只靠收款码自动判断付款成功？

个人/静态收款码只是一张图片。桌面程序本地显示这张图后，程序无法可靠知道用户是否真的支付、支付了多少钱、订单是否重复、是否退款。

## 自动支付需要的正式架构

正式方案需要：

1. 微信支付商户号
2. Native 支付能力
3. 一台 HTTPS 后端服务器
4. 数据库订单表
5. 微信支付回调 notify_url
6. 桌面客户端轮询订单状态

流程：

```text
客户端点击“购买 1 次导出”
→ 后端创建订单
→ 后端调用微信支付 Native 下单接口
→ 微信支付返回 code_url
→ 后端把 code_url 转成二维码给客户端
→ 用户微信扫码支付
→ 微信支付服务器通知你的 notify_url
→ 后端验签、解密回调、标记订单 paid
→ 客户端轮询订单状态，发现 paid
→ 后端给客户端发放 1 次导出权限
```

## 需要实现的接口

```text
POST /api/orders/create
GET  /api/orders/{order_id}
POST /api/wechatpay/notify
POST /api/licenses/redeem
```

桌面端不要保存商户私钥、APIv3 密钥、证书。它们必须只放在服务器。

## 当前版本如何替换为自动支付？

把 `run_gui.py` 里的本地授权码逻辑替换为：

1. 调用你的后端创建订单
2. 显示后端返回的二维码
3. 每 2 秒轮询订单状态
4. paid 后调用授权接口增加 credits

