更新记录
2.0.0(2026-10-14)
新增支持银联支付以及支付宝支付
平台兼容性
uni-app(3.8.5)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | 5.0 | √ | √ |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ |
uni-app x(3.8.5)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | - | - | - | - |
其他
| 多语言 | 暗黑模式 | 宽屏模式 | 蒸汽模式 |
|---|---|---|---|
| × | × | × | √ |
lxs-qmf-pay-plugin
莉先生银联商务全民付 APP 综合支付 UTS 插件(基于全民付移动支付 SDK V3.1.8),
以 uni_modules 插件形式提供:原生逻辑在 utssdk/ 内,HBuilderX 自动识别,
无需 nativeplugins/ 目录,无需在 manifest.json 注册 nativePlugins。
支持渠道:微信原生支付、微信小程序支付、支付宝小程序支付、支付宝(qrCode 拉起)、间连支付宝、云闪付。
uni-app Vue3 项目使用;HBuilderX 3.97+(iOS 回调代理 UTSiOSHookProxy 的最低版本要求)。
安装
把整个 lxs-qmf-pay-plugin 目录放到项目的 uni_modules/ 下即可(本项目已内置于 uniapp/uni_modules/)。
使用
UTS 插件导出为命名导出(无默认导出)。原生调用为回调式 API(结果经 callback 一次性返回), JS 侧自行包 Promise:
import {
init, pay, cloudPay, aliSafePay, isInstalled, clean, pluginReady,
CHANNEL, PAY_DATA_FIELDS, parsePayData, detectChannel, validatePayData
} from '@/uni_modules/lxs-qmf-pay-plugin'
// 0) 探活(同步):插件未打进基座时立即定性,避免调用永不回调
const probe = pluginReady() // { ok, msg }
// 1) 初始化(iOS 需 universalLink)
init({ appId: 'wxxxxxxxxx', universalLink: 'https://your-domain.com/' }, (res) => {
// res.ok === true 表示成功
})
// 2) 发起支付(payData 为服务端下单返回的 appPayRequest,对象或 JSON 字符串均可)
pay({ channel: 'wxmini', payData }, (res) => {
if (res.resultCode === '0000') {
// 仅代表请求发送成功,订单是否支付成功以服务端查询/通知为准
}
})
Promise 包装写法参考 pages/unionpay/pay.vue 的 nativeCall();
也可继续从兼容层引入:import { pay } from '@/common/qmf-pay.js'(同样为回调式)。
渠道取值:wxpay / wxmini / alimini / alipay / alisdk / cloudpay。
渠道必须与 appPayRequest 内容匹配,可先用 validatePayData(channel, payData) / detectChannel(payData) 判定。
resultCode:0000 请求发送成功、1000 用户取消、1001 参数错误、1002 网络错误、
1003 客户端未安装、2001 处理中(结果未知,需查询)、2002 订单号重复、2003 支付失败、9999 其他错误。
完整示例见 example/qmf-pay-demo.vue,真实调用见 uniapp/pages/unionpay/pay.vue。
目录结构
uni_modules/lxs-qmf-pay-plugin/
├── package.json 插件清单(uni_modules 规范,UTS 插件)
├── readme.md / changelog.md
├── utssdk/ UTS 插件核心
│ ├── interface.uts API 签名与文档
│ ├── common.uts 跨平台纯逻辑(渠道常量/支付要素解析校验)
│ ├── app-android/ index.uts + config.json + libs/(SDK aar/jar + 载体 QmfPay.aar)
│ ├── app-ios/ index.uts + config.json + Info.plist + Libs/(静态库)+ Frameworks/
│ ├── web/ H5 回退实现(纯逻辑可用,原生方法抛错)
│ └── mp-weixin/ 小程序回退实现(同上)
├── android-src/ 载体 aar 源码工程(javac 直接出 aar,无需 Gradle)
│ └── build-aar.ps1 编译脚本,产物写入 ../utssdk/app-android/libs/QmfPay.aar
├── android/ ios/ 旧格式遗留源码与 .so(仅作参考,不参与打包)
└── example/ 示例页面(需自行在 pages.json 注册)
重新编译 Android 载体 aar
载体 aar 只承担 Manifest 合并(activity-alias、微信/支付宝回调 Activity、meta-data)
与 libentryexpro.so 内嵌,模块逻辑全部在 utssdk/app-android/index.uts。
修改 android-src/src/main/java 下的 Java 或 AndroidManifest.xml 后:
cd uni_modules\lxs-qmf-pay-plugin\android-src
powershell -ExecutionPolicy Bypass -File .\build-aar.ps1
脚本用 JDK 21(--release 8)+ android.jar 直接编译,产物覆盖 utssdk/app-android/libs/QmfPay.aar。
脚本内 JdkHome / AndroidJar 路径按本机环境调整。
注意事项
- 原生插件只在 App 端生效:需用自定义调试基座或云打包运行,标准基座不含 UTS 插件; 修改 utssdk 内 UTS 代码后必须重新制作自定义基座(UTS 随基座编译,不支持 wgt 热更新)。
- 未集成插件时
pluginReady()会返回ok:false(web/小程序端同理),先探活再调用原生方法。 - Android:宿主若已勾选微信登录/分享/支付模块,可能与载体 aar 中
${applicationId}.wxapi.WXEntryActivity别名冲突,需去掉对应模块或调整合并策略。 - Android:支付宝小程序回调 scheme 默认
qmfpppay,与银商后台配置保持一致(见android-src/src/main/AndroidManifest.xml)。 - iOS:
LSApplicationQueriesSchemes由utssdk/app-ios/Info.plist声明; 云闪付/支付宝小程序回调经utssdk/app-ios/index.uts的UTSiOSHookProxy(openURL/UniversalLink)分发。 - iOS 的 UTS 代码为按 SDK 头文件转写,首次在 HBuilderX 打包如报 Swift 编译错误,按报错位置微调即可(API 语义与旧 ObjC 实现一致)。

收藏人数:
购买普通授权版(
试用
赞赏(0)
下载 0
赞赏 0
下载 12679826
赞赏 1956
赞赏
京公网安备:11010802035340号