三方支付接入:Web 与桌面端的收款闭环
只要离开应用商店的「围墙花园」——网页端、桌面客户端,或者卖实体、卖线下服务——你就回到了直连三方支付的世界:国内的微信支付、支付宝、银联,海外的 Stripe、PayPal。这是 变现地图 里那条「抽成最低、但你管得最多」的路。
它和 IAP 几乎是镜像。IAP 里平台替你包办了下单、收银、验证、退款、对账;三方支付里,这些全是你自己的活。换来的是渠道手续费通常只有 0.6%–3%(远低于 IAP 的 15–30%),以及对支付数据和流程的完全掌控。这篇就把「自己做一套收款」需要搞懂的核心讲透——尤其是那个最容易被低估、却决定成败的环节:回调验签。
本文基于各支付渠道公开文档与通行的安全实践,用通用占位参数说明,不涉及任何特定商户的真实凭据或内部实现。
一笔在线支付的异步闭环
先建立心智模型。三方支付和「调个函数拿到结果」完全不同——它本质是异步的:你发起支付后,用户跳去渠道(扫码、跳 App、输密码)完成付款,渠道再回头通知你结果。整个过程有两条独立的信息流,理解这一点是一切的基础。
这张图里有个反直觉但至关重要的点:用户付完款,你不是从用户那里、而是从渠道的异步回调那里得知「钱到账了」。前端页面跳转回来只能用于「展示」,绝不能凭它发货——下一节解释为什么。
命门:回调验签,而不是前端跳转
最常见、也最致命的新手错误是:用户付完款,前端跳回成功页,就在那一刻发货。这是个大洞,因为前端的跳转是用户的浏览器发起的,可以被伪造——有人不付钱,直接手动访问你的「支付成功」回调地址,就能白嫖。
正确的发货依据,只有一个:支付渠道服务器直接发给你服务端的那条异步回调通知,且通过了验签。围绕这条回调,有四件事必须做对:
- 验签(Verify Signature):渠道用它的私钥对回调内容签名,你用渠道公布的公钥/证书验签。验不过,直接当没收到——这是挡住伪造回调的第一道也是最重要的一道门。
- 核对金额与订单:验签过了,还要再确认回调里的订单号是你发起的、金额和你下单时一致。防止有人拿一笔真实的小额支付的回调,去顶替一笔大额订单。
- 幂等(Idempotency):渠道为确保送达,会重复推送同一条回调(尤其你应答慢或超时时)。所以「把订单改成已支付、发放权益」这个动作必须可重复执行而不出错——已处理过的订单号,第二次到达时直接跳过,绝不能重复发货/重复发卡。
- 正确应答:处理成功后,要按渠道约定返回成功应答(如特定的
success报文)。否则渠道以为没送达,会一直重推。
把这四件事画在一起,就是回调处理的「安检流程」:
选渠道与对应的支付方式
不同渠道、不同场景,对应不同的「支付方式」,接入方式也不同。先认清你的场景落在哪:
- PC 网页:国内最常见的是扫码支付(Native)——服务端下单拿到一个支付链接,前端渲染成二维码,用户用手机 App 扫码付。海外则多用 Stripe Checkout / Elements,直接在页面收银台输卡。
- 移动网页(H5):用户手机浏览器里,微信/支付宝有专门的 H5 支付,能从浏览器直接拉起 App 完成付款。
- App 内 / 公众号内网页:微信生态里是 JSAPI 支付(在微信内置浏览器中调起),需要用户的身份标识。
- 桌面客户端:通常复用扫码支付——客户端展示二维码,或拉起系统浏览器走网页支付。
一个国内特有的关键前提:收款资质和绑定。微信支付要求商户号绑定一个「已认证服务号」类型的应用 ID 才能收款(扫码登录用的「网站应用」ID 不能收款),且需要 ICP 备案域名。这类合规前置往往比写代码更耗时,务必提前办。海外 Stripe 则相对轻量,但也要完成商户验证(KYC)。
凭据与安全:别让密钥裸奔
三方支付的安全,一半在上面的回调验签,另一半在密钥管理。每个渠道都会给你一组凭据:商户号、API 密钥、签名证书(私钥)等。几条通用纪律:
- 私钥/密钥只放服务端,绝不进前端代码、不进客户端 App 包、不进公开仓库。
- 下单与验签都在服务端做。前端只负责把服务端给的「支付凭据」渲染成二维码或拉起收银台,碰不到密钥。
- 金额以服务端为准。绝不能让前端传金额过来当作下单依据——价格必须服务端根据订单自己算,否则用户改个数字就能 1 分钱买会员。
- 回调地址走 HTTPS、公网可达,并对来源做验签校验(见上节)。
- 做好对账:渠道每天提供对账单,定期拉下来和自己的订单核对,能兜住极少数「回调丢了/状态不一致」的漏单。
退款与对账:闭环的另一半
收款只是上半场。一个完整的支付系统还要能退款(调渠道的退款接口,同样异步、同样有退款结果通知要处理)、能查单(回调万一没来,主动调渠道的「订单查询」接口补偿,别干等)、能对账(以渠道账单为准核对每日交易)。这三件事决定了你的系统在「异常路径」下是否可靠——而支付系统的口碑,恰恰是在异常路径上建立或崩塌的。
小结
三方支付给你最低的抽成和最大的自由,代价是你要亲手搭起整个收款闭环。把握住几条:
- 支付是异步的:发货只认渠道服务器的异步回调,前端跳转仅供展示。
- 回调四道关:验签 → 核对订单金额 → 幂等判重 → 正确应答,一道都不能少。
- 密钥只在服务端:下单、验签、定价全在后端,前端碰不到钱和密钥。
- 补全异常路径:退款、主动查单、每日对账,才是可靠的支付系统。
至此,变现地图 上的三条路就都走完了:移动端订阅看 IAP,免费产品看 IAA,网页桌面收款就是这一篇。挑一条最适合你产品形态的路,把闭环做扎实——能稳稳收到钱,产品才真正活了下来。