支付网关:认证与中转
支付网关域名下还有一类页面不收款:认证落地与中转跳转。付款人通常只是「经过」它们——授权一闪而过、登录跳回 Web 端。这些页面由后端生成的地址驱动,相关配置分散在管理端各处,本文集中说明它们在整条链路里的位置。
支付认证落地页(付款人无感)
选择需要用户身份的支付方式(微信 / 支付宝 / 抖音的 JSAPI 类)时,收款页会先跳到对应平台的授权页拿 openId,授权完成后回到网关域名的落地页,再自动继续支付——付款人全程无感,最多看到一次页面切换。
| 落地路径 | 平台 | 说明 |
|---|---|---|
/auth/wechat | 微信公众号 OAuth 网页授权 | PC 微信内置浏览器里同样走通 |
/auth/alipay | 支付宝授权 | |
/auth/douyin | 抖音静默授权(silent_auth) |
授权的回跳落点是收银台的环境页(/cashier/{订单号}/{环境}),回来后从断点继续支付流程。
排查:授权环节报「域名未登记 / 回调不合法」,多半是开放平台侧登记的域名与支付网关域名不一致——微信登记网页授权域名(纯域名)、支付宝登记授权回调地址(带协议的完整地址),登记的都是网关域名,见通道对接。
代运营授权落地页(商家)
/isv-auth/alipay 是服务商模式下支付宝代运营授权的回跳页:商家点击管理端「通道商户 → 授权令牌」里的授权链接,到支付宝授权页确认后回到这里换取 app_auth_token,令牌自动更新、无需手工传递。发起方式见管理端 APP - 通道商户。
三方登录与绑定的中转透传页
谁会经过:在 Web 管理端 / 商户端使用微信 / 支付宝登录,或绑定三方账号的用户。
为什么需要中转:支付宝同一应用的授权回调名额只有一份,而登录与支付认证共用同一 AppId——登录回调若直接用管理端 / 商户端自己的域名,会与支付回调互相顶替(启用登录后支付认证失败);微信公众号的网页授权域名也有登记限制。因此跳转型平台的登录 / 绑定回调统一落在支付网关域名,再由网关跳回实际发起的端,登录与支付互不影响。
机制:回调地址形如 /auth/oauth-callback/{端标识}/{平台},页面凭「端标识 + 平台」查到目标端的回调地址,把授权参数原样透传跳回;账号绑定走同款机制(/auth/social-bind-callback/...)。
用户视角:登录过程中的一个一闪而过的中转页,正常情况无需关注。
配置与排查:三方登录的开放平台登记在管理端维护(见三方登录);登录后跳 404 / 跳不回发起端,先核对端点配置的「支付网关前端地址」与实际部署域名一致。
公众号扫码登录 / 绑定页(跨设备)
谁会经过:在 PC(或任何非微信浏览器)上用微信公众号登录、或在个人中心绑定微信公众号的用户。
为什么需要:微信公众号网页授权只能在微信内浏览器完成,PC 发起不了——于是 PC 弹二维码,由手机微信扫码后在网关页面上走完授权,PC 端轮询结果自动收尾。
机制:二维码指向网关上的发起页(/social/login-scan、/social/bind-scan,携带一次性票据,5 分钟有效)→ 手机上依次经过确认页(绑定场景会展示脱敏的目标账号,防把微信绑到别人账号上;可取消)与微信授权 → 授权回调落在 /social/{login|bind}-scan-callback/weChat → 结果页显示成败、可关闭页面。PC 端每 3 秒轮询票据状态,自动完成登录 / 绑定。
域名:整条链路复用公众号网页授权域名(即网关域名),公众号后台无需为新流程额外登记。
未绑定的微信号扫码登录不会自动注册,手机端会引导先用账号密码登录再到个人中心绑定。配置侧见三方登录。
协议展示页
/protocol/{类型}:用户协议、隐私政策的独立展示页,收款页脚等处的链接落在这里,可单独分享。