更新记录
1.1.0(2026-11-04)
- 首发:多通道支付聚合(微信/支付宝/银联/iOS IAP)、通道自动探测、统一下单模型、支付超时与轮询确认、支付记录本机留存。
- 附服务端下单/验签参考实现(HMAC-SHA256 三态验签、幂等、金额校验)。
- 深度增强:幂等防重复支付(支付中/已成功订单拦截,重试复用同一订单号)、失败智能分类与可重试引导、交易日报与优惠分摊(Pro)、本地/服务端对账(Pro)、结果轮询指数退避。
平台兼容性
uni-app(4.0)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| - | √ | √ | √ | × | × | √ | √ | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | √ | × | × | × | × | × | × | × | × | × | × |
支付聚合·统一下单面板 Pro(zl-pay)
简介
一套代码接入微信支付、支付宝、银联与 Apple 内购(IAP),统一通道探测、下单模型、回调验签、支付超时轮询与本地订单日志。严格合规:资金直连商户官方收款账户,密钥不出服务端,iOS 虚拟商品强制走 IAP。
功能特性
- 幂等防重复支付:支付中/已成功订单拦截,重试复用同一订单号(配合服务端幂等)
- 失败智能引导:6 类失败原因分类 + 下一步操作建议,不可重试时禁用支付按钮
- 交易日报(Pro):笔数/成功率/金额/通道分布,支持时间窗
- 优惠分摊(Pro):最大余额法,合计严格等于优惠额,无 1 分误差
- 本地/服务端对账(Pro):发现掉单与状态不一致
- 轮询指数退避:弱网减少无效请求
- 通道自动探测(App:微信/支付宝/IAP;H5/小程序:微信/支付宝)
- 统一下单模型与金额安全换算(分→元)
- 支付状态轮询 + 本地订单日志(用于对账)
- 服务端下单/验签参考实现(HMAC-SHA256,密钥经环境变量)
- iOS 虚拟商品
goodsType强制仅 IAP
平台兼容
App(iOS/Android)、H5、微信小程序、支付宝小程序
快速上手
- 插件市场导入
zl-pay到uni_modules; - 部署
server/pay-reference.js(配置PAY_MCH_ID/PAY_API_KEY/PAY_NOTIFY_KEY等环境变量); - 调用:
import { pay } from '@/uni_modules/zl-pay'
const channels = pay.detectChannels() // 探测可用通道
const order = await pay.createOrder({ ... }) // 向接入方服务端下单
await pay.payOrder(order) // 拉起支付
服务端部署
依赖 express;复制 server/pay-reference.js,设置环境变量后启动。回调地址需配置到微信/支付宝商户后台。
合规声明
不碰资金流、不二清;回调验签三态(成功/失败/DEMO_PENDING),未配置密钥时不会自动确认支付;iOS 虚拟商品强制 IAP。
常见问题
- Q:iOS 虚拟商品为何不能用微信? A:App Store 规定虚拟商品必须走 IAP,组件已强制限制。
- Q:回调验签失败? A:检查
PAY_NOTIFY_KEY是否与商户后台一致,且使用原始报文验签。
更新说明
1.0.0 首发:统一通道探测、金额安全换算、IAP 强制、三态回调验签、本地订单日志。 1.1.0 深度增强:幂等防重复支付、失败智能分类与重试引导、交易日报、优惠分摊(最大余额法无 1 分误差)、本地/服务端对账、轮询指数退避;组件新增重复拦截/失败引导/交易概览(Pro)。

收藏人数:
购买源码授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(0)
下载 0
赞赏 0
下载 12742646
赞赏 1959
赞赏
京公网安备:11010802035340号