支付宝 · 手机网站支付 · 最小对接 Demo
先把最短闭环跑通:下单 → 跳转收银台 → 回跳 → 异步通知
这个 Demo 走的是 自研商家 的最短链路:
服务端构造 alipay.trade.wap.pay 参数并做 RSA2 签名,
浏览器跳支付宝收银台,支付完成后回到 return_url,
最终以后端 notify_url 异步通知为准。
适用场景
H5 / 手机浏览器 / WebView 调起支付宝收银台。
H5 / 手机浏览器 / WebView 调起支付宝收银台。
Demo 范围
只覆盖支付下单与验签,不包含订单落库、幂等、发货、退款。
只覆盖支付下单与验签,不包含订单落库、幂等、发货、退款。
核心边界
本地
本地
localhost 不能直接接收支付宝通知,必须给 notify_url 配公网地址。你现在至少要具备的条件
- 1. 支付宝开放平台应用
必须先有 APPID,类型选网页/移动应用;如果走服务商代开发,则换成第三方应用。 - 2. 手机网站支付已开通
应用上线后,还要在商家平台把「手机网站支付」开通,否则跳不过去。 - 3. 应用私钥 + 支付宝公钥
Demo 默认按公钥模式做RSA2。如果你后面做资金支出类接口,再切证书模式。 - 4. 公网可访问的 notify_url
支付宝异步通知打不到本地地址。开发期一般用 FRP / Caddy / ngrok 暴露回调。 - 5. 你的订单系统
至少要有你自己的out_trade_no,不要把支付宝交易号当主键。 - 6. 服务商模式额外条件
如果你是代商家开发,还要多一个app_auth_token。
真正业务上线时,别只看前端回跳页。支付是否成功,以服务端异步通知 + 自己订单状态机为准。
发起一笔测试支付
当前路由:
异步通知:
同步回跳:
POST /api/pay/demo异步通知:
POST /api/alipay/notify同步回跳:
GET /api/alipay/return
如果提交后报配置错误,先检查你的
.env 和密钥文件路径。这个 Demo 不会替你伪造假订单,也不会 mock 支付宝成功回调。