更新记录

1.1.1(2026-04-07)

优化问题

1.1.0(2026-04-07)

新增 HarmonyOS NEXT 平台支持,三端统一 API

  • 新增 HarmonyOS 端完整支付实现(startPay、isUnionPayInstalled)
  • 通过 onNewWant 监听支付结果回跳,自动处理回调
  • 通过 bundleManager.canOpenLink 检测云闪付安装状态
  • 内置 libuppayment.har SDK(v3.1.2)
  • 支持 HarmonyOS NEXT API 12+

1.0.0(2026-01-19)

新增安卓,ios端云闪付,内置sdk集成自动处理回调

查看更多

平台兼容性

uni-app(4.81)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
√ √ × × × × 5.0 12 12
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × - × ×

uni-app x(4.81)

Chrome Safari Android iOS 鸿蒙 微信小程序
× × 5.0 12 12 ×

其他

多语言 暗黑模式 宽屏模式 蒸汽模式
× × × √

jwh-pay 云闪付支付插件

简介

uni-app / uni-app-x 云闪付支付插件,支持 Android、iOS、HarmonyOS NEXT 三端,已内置云闪付 SDK,开箱即用。

功能

  • 拉起云闪付完成支付
  • 检测云闪付 App 是否安装
  • 支付结果自动回调,返回状态码、中文描述和签名
  • 正式环境 / 测试环境一键切换
  • 支持 scheme、seType 等参数
  • result / callback 两种回调写法都支持

平台兼容

平台 支持 最低版本
Android ✅ 5.0
iOS ✅ 12.0
HarmonyOS NEXT ✅ API 12
小程序 ❌ -
H5 ❌ -

安装

HBuilderX 插件市场搜索 jwh-pay 导入,或者把插件目录丢到 uni_modules 下就行。

注意: 这是原生插件,标准基座跑不了。需要先在 HBuilderX 里「制作自定义调试基座」,再用自定义基座运行。正式打包不受影响。

各平台配置

Android

不需要额外配置,权限和 SDK 都已经内置好了。

iOS

  1. manifest.json → app-plus → distribute → ios → urlschemewhitelist 加上:

    uppaysdk,uppaywallet,uppayx1,uppayx2,uppayx3
  2. manifest.json → app-plus → distribute → ios → urltypes 加上你的自定义 scheme,支付完成后云闪付会跳回来:

    myapp

HarmonyOS

  1. 项目的 module.json5 里,abilities → skills 加一组配置,用于支付完成后跳回你的应用:

    {
     "entities": ["entity.system.browsable"],
     "actions": ["ohos.want.action.viewData"],
     "uris": [{ "scheme": "myapp", "host": "uppayresult" }]
    }

    把 myapp 换成你自己的 scheme,要和调用 startPay 时传的 scheme 一样。

  2. 如果要用 isUnionPayInstalled() 检测云闪付是否安装,module.json5 里还需要加:

    {
     "module": {
       "querySchemes": ["uppaysdk"]
     }
    }
  3. 鸿蒙项目要先导入插件再打包,具体看:https://uniapp.dcloud.net.cn/tutorial/harmony/runbuild.html

用法

import { startPay, isUnionPayInstalled } from "@/uni_modules/jwh-pay";

// 检查是否安装了云闪付
const installed = isUnionPayInstalled();
console.log('云闪付已安装:', installed);

// 发起支付
function pay(tn) {
  startPay({
    tn: tn,            // 交易流水号,找后端要
    mode: "00",         // 00 正式,01 测试
    scheme: "myapp",    // 你的 scheme,iOS 和鸿蒙需要
    result: (res) => {
      if (res.status === "00") {
        uni.showToast({ title: '支付成功', icon: 'success' });
        // res.sign 可以拿去给后端验签
      } else if (res.status === "69") {
        uni.showToast({ title: '取消了', icon: 'none' });
      } else {
        uni.showToast({ title: res.message || '支付失败', icon: 'none' });
      }
    }
  });
}

API

startPay(options)

拉起云闪付支付。

参数 类型 必填 说明
tn string 是 交易流水号,后端下单后返回的
mode string 是 "00" 正式环境,"01" 测试环境
scheme string 否 自定义 scheme,支付完后跳回来用的,iOS 和鸿蒙需要填
seType string 否 手机 Pay 类别,比如华为支付填 "04",Android 和鸿蒙有效
result function 二选一 支付结果回调
callback function 二选一 同上,兼容其他插件的写法

result 和 callback 传一个就行,都传的话用 result。

isUnionPayInstalled()

检测手机上有没有装云闪付,返回 true / false。

鸿蒙端需要在 module.json5 里配好 querySchemes,不然一直返回 false。

回调参数

字段 类型 说明
status string 状态码,"00" 成功,"69" 取消,其他是失败
message string 中文描述,可以直接拿来提示用户
sign string 签名,成功的时候才有,给后端验证用

常见状态码

码 意思
00 成功
69 用户取消
01 失败,咨询 95516
02 系统关闭,稍后再试
03 通讯超时
04 处理中,稍后查询
06 系统繁忙
30 未通过,换张卡试试
33 金额超限
64 余额不足
65 密码或 CVN2 错误
67 密码输错太多次

完整状态码看银联文档:https://open.unionpay.com/

注意

  1. tn 必须从后端拿,不能前端自己编
  2. 测试用 mode: "01",上线记得改成 "00"
  3. 客户端拿到的支付结果只能做展示,最终结果以后端回调为准
  4. 支付成功返回的 sign 要传给后端做验签
  5. 鸿蒙模拟器上装不了云闪付,要在真机上测

报错排查

报错 原因 怎么办
交易流水号不能为空 tn 没传 检查后端接口有没有正常返回 tn
模式参数错误 mode 不对 只能传 "00" 或 "01"
必须提供 result 或 callback 没传回调 result 和 callback 至少传一个
无法获取当前 Activity Android 环境问题 确认页面没被销毁
支付调用失败 SDK 出错了 看看参数对不对,tn 是不是过期了
处理支付结果异常 鸿蒙回跳失败 检查 module.json5 里的 scheme 配对了没

seType 对照表

品牌 值
Samsung Pay 02
华为 Pay 04
小米 Pay 25
魅族 Pay 27
OPPO Pay 29
乐视 Pay 30
锤子 Pay 32
vivo Pay 33
realme Pay 35

更新记录

v1.1.0 (2026-04-07)

  • 新增 HarmonyOS NEXT 支持
  • 鸿蒙端支付结果通过 onNewWant 回跳处理
  • 鸿蒙端可检测云闪付安装状态
  • 内置 libuppayment.har v3.1.2

v1.0.1 (2026-04-03)

  • 回调新增 message 字段
  • result / callback 双回调兼容
  • Android sign 解析不再依赖字段顺序
  • Android ActivityResult 加了 requestCode 过滤
  • iOS 用 connectedScenes 替代废弃的 keyWindow
  • 三端 sign 处理统一
  • 清理多余日志

v1.0.0 (2026-01-19)

  • 首版,支持 Android + iOS 云闪付支付

隐私、权限声明

1. 本插件需要申请的系统权限列表:

<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据,银联SDK可能采集设备信息用于风控,详见银联隐私政策

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无