网关收款上线
本篇是完整上线指南的第五阶段,也是只在网关收款场景才需要的阶段:让付款人可以不经过商户自己的页面,直接在平台托管的收银页/码牌上付款。
五个环节(H5 网关部署 → 域名验证 → 网关支付配置 → 码牌 → 收银小程序发布)分别在不同页面配置,本篇按上线顺序把它们串起来。每环节末尾链接到对应的详解文档。
先选收款形态
| 形态 | 付款人体验 | 需要本篇哪些环节 | 适合 |
|---|---|---|---|
| API 直连 | 商户自己的页面/系统完成支付 | 都不需要(跳过本篇) | 有开发能力的业务系统,见业务系统对接 |
| 统一收银台 | 打开平台托管收银页,自选支付方式 | 环节 1~3(+5 若要小程序内收银) | PC/H5 商城、账单收款 |
| 聚合扫码 | 印制静态码,各钱包扫码自动识别支付 | 环节 1~3 + 环节 4(+5) | 线下桌牌/贴纸/立牌 |
| 码牌 | 聚合扫码的物理承载 | 同上(码牌即聚合扫码入口) | 线下门店 |
前置依赖
本篇假定支付能力开通已完成(生产通道商户 + 密钥 + 路由)。网关支付的路由解析依赖应用路由,路由没配好,网关页面打开也无法付款。
环节一:H5 支付网关部署
支付网关(H5 端)是独立前端工程,承载收银台、聚合扫码、认证中转等面向付款人的页面。部署方式随主部署路径:
| 部署路径 | H5 网关 | 你要做的事 |
|---|---|---|
| 一键部署 | H5 镜像内置(含 nginx 反代与校验文件转发) | 面板域名绑定中填好 H5 域名即可;存量部署升级面板后须重建 H5 容器 |
| 源码静态部署 | 独立构建静态产物 | 自行 nginx 托管:静态托管 + /api/ 反代 + SPA 回退(try_files ... /index.html)+ HTTPS,示例见项目构建 - 静态部署 |
域名契约(本环节的核心):收款链接、支付结果回跳、认证回调地址全部由后端按「端点配置的支付网关前端地址」生成,不是前端自己拼的。因此:
- H5 部署域名必须与端点配置的「支付网关前端地址」严格一致;
- 不一致的后果:付款成功后回跳 404、微信/支付宝授权回调失败、三方登录跳转丢失(地址清单见支付网关:部署与上线)。
环节二:域名验证
微信/支付宝要求域名完成归属验证后才允许在其生态内使用(JSAPI 支付目录、小程序业务域名、二维码规则)。两场景两入口,网关侧反代已在基础设施预留:
| 场景 | 上传入口 | 触发时机 |
|---|---|---|
平台级(随机名 .txt/.html) | 运营端 → 支付管理 → 接入配置 → 域名校验文件 | 环节五配置「普通链接二维码规则」时平台下发;支付宝「关联普通二维码」同理 |
商户级(MP_verify_*.txt) | 商户端/商户工作台 → 业务配置 → 域名校验文件 | 商户自己的公众号网页授权、小程序业务域名验证 |
机制详解见支付通道对接 - 域名校验文件。
环节三:网关支付配置与收银台配置
网关支付配置是应用级的(每个应用独立一套),入口:商户端 → 商户中心 → 支付配置 → 应用管理 → 应用工作台 → 网关支付配置(运营端在商户工作台同位)。
配置分两层,职责不同(配置模型详解见网关支付与应用支付配置):
- 网关支付配置(路由层,决定「能不能付」):配置维度是「打开环境(微信/支付宝/云闪付/抖音)× 形态(H5/小程序)」矩阵,三档深度:跟随通道路由(auto,推荐起步)→ 指定支付方式(method)→ 直接指定(direct)。生产上线建议从 auto 起步,用路由命中预览逐格核对命中的通道商户与缺口,有缺口跳「通道路由」补配;
- 收银台配置(展示层,决定「长什么样」):按终端分桶(H5 五桶 / Web / 小程序四桶)配置支付项展示、推荐与排序,与路由独立,后配也不影响支付。
用调试工具先验一遍
「开发调试 → 支付调试(网关)」选择网关支付类型提交预下单,返回网关落地页 URL。扫码或打开即可验证收银页渲染与路由,不用真码。见网关支付 - 完整接入流程。
环节四:码牌制作与认领
码牌是聚合扫码的物理物料,采用「平台制牌、商户认领」模式,两端分工(操作详解见支付码牌与终端):
上线要点:
- 批量创建时选程序类型(H5 / 小程序);小程序码牌依赖环节五完成,未发布小程序前先投 H5 码牌;
- 码牌认领后必须绑定应用与门店:扫码后的路由走「该码牌绑定应用的网关支付配置」,没绑应用 = 扫码无法付款;
- 金额类型二选一:随机金额(用户自填,桌牌通用)/ 固定金额(定价商品);
- 「启用/停用」控制投放状态;投放前用「查看二维码」真码扫码走一遍全链路。
被扫设备(收银插件、扫码盒子)另走「系统终端 ↔ 通道终端」绑定,见支付码牌与终端 - 系统终端。
环节五:收银小程序发布
收银台小程序让微信/支付宝/抖音扫普通二维码直接拉起小程序收款页(体验优于 H5)。按平台分别注册发布,检查单与操作详解见收银台小程序:发布上线:
- 注册与 AppId:各平台注册小程序主体,AppId 配置到工程平台参数(三端独立);
- 域名验证:小程序后台下发校验文件 → 平台级入口上传(环节二);
- 普通链接二维码规则(关键):让已印制的普通链接二维码命中规则拉起小程序,三条前缀对应三个收款入口:
https://域名/m/*(码牌)、/cm/*(统一收银台)、/am/*(聚合支付);配置时平台再下发随机校验文件,同样平台级上传; - request 合法域名:把支付网关域名加入小程序后台 request 合法域名,不配则正式环境请求全部失败(开发工具「不校验域名」只对调试有效);
- 编译上传提审发布:收款类小程序需如实填写类目资质;发布后用真码验证三条链路。
未配规则的兜底行为
规则未配或未命中时,扫码打开的是 H5 引导页(提示改用钱包扫码),小程序不会被拉起。这是设计的兜底行为,不是故障;上线后务必真码全链路验证。
收银台小程序的通道侧前提
收银台小程序全平台共用一套凭证,且 openId 与收款应用必须同源。平台小程序 AppId 需在所用通道侧完成绑定或报备(服务商模式通常服务商小程序 + 子商户号报备)。并非所有通道开箱即用,接入前先与通道确认(见支付应用)。
全链路验收
五环节完成后,按真实二维码验证每条链路(不开发工具、不模拟):
| 验收入口 | 动作 | 预期 |
|---|---|---|
码牌 /m/* | 微信、支付宝(+云闪付/抖音按需)分别扫码 | 拉起对应收款页 → 小额付款 → 订单成功 |
统一收银台 /cm/* | 预下单生成链接,扫码/浏览器打开 | 收银页展示配置的支付方式 → 付款成功 |
聚合页 /am/* | 扫码打开聚合页 | 环境自动识别 → 付款成功 |
| 回调与订单 | 每笔验证后核对 | 支付交易状态成功、商户回调推送记录正常(有 notifyUrl 时) |
常见问题速查
| 现象 | 环节 | 处理 |
|---|---|---|
| 收款链接/回跳 404 | 环节一 | H5 部署域名与端点配置不一致;或 SPA 回退未配 |
| 微信内提示域名未验证 | 环节二 | 校验文件未上传或传错归属(平台级/商户级两入口勿混) |
| 收银页打开但支付失败 | 环节三 | 网关支付配置有缺口,看路由命中预览;或通道路由未「设为当前生效」 |
| 扫码牌无反应/无法付款 | 环节四 | 码牌未绑应用、未启用;或绑定应用的网关支付配置未就绪 |
| 扫码进 H5 引导页而非小程序 | 环节五 | 二维码规则未命中:查前缀拼写、域名一致、小程序是否已发布 |
| 小程序内请求全失败 | 环节五 | request 合法域名未配 |
更多部署层问题见支付网关:部署与上线 - 常见部署问题与收银台小程序 - 兜底行为与排查。