💰【付款回调显示密码】知识付费资料包 完整落地源码 + 部署全流程

周店瑟谷 7 阅读 AI 工具与智能体

支付宝「付款回调显示密码」完整落地:源码 + 部署全流程

把「压缩包解压密码」做成真正的付费解锁:买家扫码付款 → 支付宝回调验签 → 页面自动显示密码。密码全程不下发到前端,彻底解决"拿到 HTML 不付钱也能看密码"的问题。

一、为什么要做这套方案

常见的"解压密码页"有两种做法,都有硬伤:

做法

密码放在哪

问题

本地 HTML 里写死密码

前端源码里

右键"查看源代码"就能看到,形同虚设

跳转到第三方收款页

卖家服务器

依赖第三方域名,跑路即失效

本方案把密码只放在你自己的服务器上,收到支付宝"支付成功"回调并验签通过后,才通过接口发给付款的那个订单。前端 HTML 里没有任何密码明文。

二、整条链路的闭环

买家打开密码页 HTML
   │ ① 请求服务器:给我收款二维码
   ▼
你的服务器 ──② 调支付宝"当面付"接口预下单──▶ 支付宝
   │                                          │
   │ ③ 返回二维码链接                          │
   ▼                                          │
页面显示二维码 ◀──────────────────────────────┘
   │ ④ 买家扫码付款
   ▼
支付宝 ──⑤ 支付成功,回调 POST 到你的 /notify──▶ 你的服务器
   │                                                │
   │ ⑥ 用"支付宝公钥"验签 + 校验金额               │
   │    通过后订单标记"已支付"                     │
   ▼                                                ▼
页面每 2 秒轮询 /api/check ──⑦ 查到已支付──▶ 返回密码给页面

三、申请支付通道:选支付宝,暂不选微信

项目

支付宝当面付

微信支付 Native

个人能否申请

✅ 能(实名即可)

❌ 不能,仅个体户/企业

无营业执照

✅ 可先签约,仅限额

❌ 直接不行

硬性门槛

无

备案域名 + 300 元认证费

技术链路

预下单 + 验签回调,简单

APIv3 证书 + 平台证书解密,复杂

费率

0.6%

0.6%–1%

支付宝当面付(open.alipay.com → 产品中心 → 搜索「当面付」): - 个人账号实名即可申请,提交经营场所照片、店铺名称、经营地址。 - 不提供营业执照会被限额:单笔 ≤ 2000 元、单日 ≤ 20000 元。卖 19.9 的资料包,日 2 万额度绰绰有余。 - 开通后在「密钥管理」拿 3 个参数:APPID、应用私钥、支付宝公钥。

微信 Native 需要个体工商户/企业 + 备案域名 + 认证费 300 元,门槛高,等办了执照和备案域名再补做(本方案服务端框架可直接复用)。

四、服务器部署(Ubuntu 为例)

  1. 买服务器装系统:腾讯云轻量服务器,镜像选 Ubuntu 22.04 LTS,1 核 2G 足够。

  2. 域名 + HTTPS:当面付回调必须是公网 https。域名解析到服务器 IP,用 certbot 签免费证书(国内服务器需 ICP 备案,香港/海外免备案)。

  3. 装环境:apt install python3 python3-venv python3-pip nginx certbot

  4. 传源码:把 server 目录 scp 到 /opt/pay/

  5. 填 config:nano config.py 填入 APPID、应用私钥、支付宝公钥、金额、密码、notify_url

  6. 装依赖启动:pip install -r requirements.txt → gunicorn -w 2 -b 127.0.0.1:8000 app:app

  7. 配 Nginx 反代:把 443 端口代理到 127.0.0.1:8000

完整步骤(含每条命令、调试方法、常见坑)见附件里的《部署说明.md》。

五、服务端下发密码的安全性(重点)

这套方案"安全"在 4 个层面:

  1. 密码不出服务器:密码只存在 config.py,任何 HTML/JS 里都没有。

  2. 回调验签(防伪造):/notify 用支付宝公钥做 RSA2 验签,伪造的"支付成功"请求会被拒绝。

  3. 金额服务端写死:客户端传什么金额都无效,回调时还会二次校验。

  4. 订单持久化:订单状态存 sqlite,服务器重启不丢已支付订单。

仍需注意的边界: - 防不住"转发"——第一个付款的人拿到密码后能转发给别人,这是所有"统一密码"模式的共同天花板,要连转发一起防需升级为"一人一码/卡密限次"。 - 私钥泄露即全盘失守——config.py 里的应用私钥绝不能进 git、进前端。

六、源码附件

瑟谷智学 · 全站解锁弹窗
示例页:关闭弹窗后,右下角出现「解锁全站」入口可再次唤起|嵌入博客时删除本行提示

此处内容已隐藏,「密码可见」