diff --git a/property-uniapp-project/pageSubPack/payment-list/yinlianPayTn.vue b/property-uniapp-project/pageSubPack/payment-list/yinlianPayTn.vue new file mode 100644 index 0000000..414b936 --- /dev/null +++ b/property-uniapp-project/pageSubPack/payment-list/yinlianPayTn.vue @@ -0,0 +1,420 @@ + + + + + diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/changelog.md b/property-uniapp-project/uni_modules/liyahong-unionpay/changelog.md new file mode 100644 index 0000000..9988340 --- /dev/null +++ b/property-uniapp-project/uni_modules/liyahong-unionpay/changelog.md @@ -0,0 +1,30 @@ +## 1.1.2(2026-05-25) +【文档】增加uniappx项目引用插件的说明 +## 1.1.1(2026-04-07) +升级云闪付SDK版本:`Android:v3.5.18`,`IOS:v3.6.3`,`HarmonyOS:v3.1.3` +## 1.1.0(2026-02-27) +【优化】文档增加已知问题说明 +## 1.0.9(2026-02-03) +【优化】HarmonyOS完善module.json5文件,文档增加对鸿蒙平台的特殊说明 +## 1.0.8(2025-09-22) +修复频繁调用插件函数报回调被回收的问题 +## 1.0.7(2025-09-03) +【修复】修复鸿蒙打包报错问题 +## 1.0.6.1(2025-08-29) +【优化】移除插件中module.json5的配置 +## 1.0.6(2025-07-15) +【修复】修复鸿蒙打包报错的问题 +## 1.0.5(2025-05-08) +修复IOS端modules丢失打包报错的问题 +## 1.0.4(2025-05-08) +升级云闪付SDK版本:`Android:v3.5.16`,`IOS:v3.6.2`,`HarmonyOS:v3.1.2` +## 1.0.3(2025-04-25) +IOS端修复支持成功之后App闪退问题 +## 1.0.2(2025-03-25) +* Android端修复打包冲突问题 +## 1.0.1(2025-03-11) +* 代码优化,修复bug +## 1.0.0(2025-01-10) +* 第一版发布,同时支持`Android`、`IOS`、`HarmonyOS`三端 +* 云闪付SDK版本:`Android:v3.5.15`,`IOS:v3.6.0`,`HarmonyOS:v3.1.0` +* 初次发布,如有问题请欢迎大家指出,会及时调整 diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/encrypt b/property-uniapp-project/uni_modules/liyahong-unionpay/encrypt new file mode 100644 index 0000000..346acf9 --- /dev/null +++ b/property-uniapp-project/uni_modules/liyahong-unionpay/encrypt @@ -0,0 +1 @@ +^wRLA zaY@6yI?mpDq%Cc)/Cl7vʲ$i|ꄟQuXs}P-q:.?hZZcdXg>pR5dQ躵 ޜ[D \ No newline at end of file diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/package.json b/property-uniapp-project/uni_modules/liyahong-unionpay/package.json new file mode 100644 index 0000000..e691060 --- /dev/null +++ b/property-uniapp-project/uni_modules/liyahong-unionpay/package.json @@ -0,0 +1,132 @@ +{ + "id": "liyahong-unionpay", + "displayName": "【Android+IOS+harmonyOS】银联云闪付支付", + "version": "1.1.2", + "description": "银联云闪付支付UTS插件,全方位支持Android/IOS/harmonyOS,支持自定义支付", + "keywords": [ + "云闪付", + "云闪付支付", + "银联", + "银联支付", + "支付" +], + "repository": "", + "engines": { + "HBuilderX": "^3.6.8", + "uni-app": "^4.36", + "uni-app-x": "^4.36" + }, + "dcloudext": { + "type": "uts", + "sale": { + "regular": { + "price": "89.90" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "1299259684" + }, + "declaration": { + "ads": "无", + "data": "插件使用的云闪付支付SDK会采集数据,详情可参考:https://wallet.95516.com/s/wl/WebAPP/helpAgree/page/agreement/regPrivacy.html", + "permissions": "安卓访问如下权限: " + }, + "npmurl": "", + "darkmode": "√", + "i18n": "√", + "widescreen": "√" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "√", + "aliyun": "√", + "alipay": "√" + }, + "client": { + "uni-app": { + "vue": { + "vue2": { + "extVersion": "1.0.0", + "minVersion": "" + }, + "vue3": { + "extVersion": "1.0.0", + "minVersion": "" + } + }, + "web": { + "safari": "x", + "chrome": "x" + }, + "app": { + "vue": { + "extVersion": "1.0.0", + "minVersion": "" + }, + "nvue": { + "extVersion": "1.0.0", + "minVersion": "" + }, + "android": { + "extVersion": "1.0.0", + "minVersion": "21" + }, + "ios": { + "extVersion": "1.0.0", + "minVersion": "12" + }, + "harmony": { + "extVersion": "1.0.0", + "minVersion": "12" + } + }, + "mp": { + "weixin": "x", + "alipay": "x", + "toutiao": "x", + "baidu": "x", + "kuaishou": "x", + "jd": "x", + "harmony": "x", + "qq": "x", + "lark": "x", + "xhs": "x" + }, + "quickapp": { + "huawei": "x", + "union": "x" + } + }, + "uni-app-x": { + "web": { + "safari": "x", + "chrome": "x" + }, + "app": { + "android": { + "extVersion": "1.0.0", + "minVersion": "21" + }, + "ios": { + "extVersion": "1.0.0", + "minVersion": "12" + }, + "harmony": { + "extVersion": "1.0.0", + "minVersion": "12" + } + }, + "mp": { + "weixin": "x" + } + } + } + } + } +} \ No newline at end of file diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/readme.md b/property-uniapp-project/uni_modules/liyahong-unionpay/readme.md new file mode 100644 index 0000000..c955573 --- /dev/null +++ b/property-uniapp-project/uni_modules/liyahong-unionpay/readme.md @@ -0,0 +1,260 @@ +##插件功能概述 +* 支持拉起云闪付并完成支付 +* 支持检查是否安装云闪付 +* 支持获取已安装的云闪付直通App列表 +* 支持配置各个直通银行及手机支付(如小米支付、华为支付等) +* 支持Android/IOS/harmonyOS三端`本插件为原生SDK,仅支持App端` +* 待完善功能。。。 + +##插件接入文档 +### 关于更新 +有空闲时间会不断更新维护,有问题随便提,有时间一定会修改! + +### 特别推荐 +其他插件请参考主页,如人脸采集、百度OCR等(深受广大用户青睐,可以一试) +* 作者主页:[https://ext.dcloud.net.cn/publisher?id=214114](https://ext.dcloud.net.cn/publisher?id=214114) + +### 鸿蒙特殊说明`重要授权说明` +* uni-app项目: 由于官方目前不支持`试用以及普通授权`,建议`新建uni-appx项目`引用插件测通后购买源码授权使用 +* uni-appx项目: 可直接使用 + +###准备工作 +1. Android、ios、harmonyOS端证书准备工作 +* 1) Android端:准备应用的Android打包文件.jks文件。(`如使用官方证书忽略`)参考:[https://ask.dcloud.net.cn/article/35777](https://ask.dcloud.net.cn/article/35777) +* 2) IOS端:这里只简单介绍一下windows系统下如何创建ios证书,如果你是mac系统,直接百度搜索就行,网上一堆教程,windows证书申请教程参考:[https://www.pianshen.com/article/59121497532/](https://www.pianshen.com/article/59121497532/) +* 3) harmonyOS端:usb连接真机 ---> 运行 ---> 运行手机或模拟器 ---> 运行到鸿蒙 ---> 配置证书(可以自动生成) ---> 运行 + +###接入步骤 +#### 最简单的接入步骤(基本10分钟搞定) +* step1:插件页右边有个`试用`的按钮,点它,然后弹出来一个模态框,选择`试用的项目`,点击`确认`按钮,点击`继续导入HBuilderX` +* step2:将demo里面`index.vue`文件里面的函数方法复制过来 +* step3:打开你项目的`manifest.json`文件,找到`安卓/iOS常用其他设置`,找到`IOS设置` ---> `UrlSchemes`,将`uppaylyhuts`填写进去。如果你本来就有(比如你原来有XXX)则是:`XXX,uppaylyhuts` +* step4:同上,在`安卓/iOS常用其他设置`中找到`IOS设置` ---> `应用访问白名单`,将`uppaywallet,uppaysdk,uppayx1,uppayx2,uppayx3,paesuperbank,ccbmbsylunionpay,bocom,bankabc,cmbmobilebank,cmblife,com.icbc.iphoneclient,spdbbank,spdbcccUnionPay,citicbankpay,credit,uppayxingyecredit,uppayhuaxiacredit,uppaybeijingcredit,uppayzhonghangcredit,uppayguangdacredit,uppaygonghangcredit,uppayjianhangcredit,uppayjiaohangcredit,uppayguangfa,psbccashier,uppayyouchucredit,com.cebbank.ebank,BankOfShangHai,boscgdlf,citicbankdkkj,cmbc,cibmb,bocmbankpsn,bankofbjpay,uppaynonghangcredit,uppayhuaxia,zytuppay,LZYHSJYHAUTHSSOAPP,bnbpay,dlrcb,czbank,uppayCbhb`填写进去 +* step5:Android/IOS打自定义基座包,然后选择以自定义基座包运行 +* step6:harmonyOS执行完成准备工作,将`moudle.json5文件拷贝至harmony-configs -> entry -> src -> main目录下` +* step6.1:`module.json5`路径:`unpackage -> dist -> dev -> app-harmony -> entry -> src -> main` +* step6.2:修改`module.json5`文件,新增以下代码 +```javascript +"module": { + ... + "pages": "$profile:main_pages", + "querySchemes": [ + "uppaywallet", + "uppaysdk", + ], + "abilities": [ + { + ... + "skills": [ + { + ... + "uris": [ + { + "scheme": "uppaylyhuts", + } + ] + } + ] + } + ] +} +``` +* step7:运行项目 + +#### 详细接入步骤及其他细则 +1. 使用插件 +* 1) 插件方法说明(HX其实都有提示,再赘述一遍吧,别嫌我啰嗦哈) + + checkWalletInstalled() 检查是否安装云闪付App,返回true或者false + + startPay(object) 拉起云闪付app并发起支付,具体说明见下 + + getDirectApps(function) 检查已安装的支持直通模式的银行app列表。`用途是在服务端生成tn时,保留域传入"supportBank": "银行标识"`。`感谢用户cha***@126.com的修正` + + --- + > `startPay`方法说明 + > + > 参数说明(入参为object) + > + > | 属性 | 类型 | 默认值 | 必填 | 说明 | + > | ------------ | ------------ | ------------ | ------------ | ------------ | + > |mode | string | 无 | 是 | 银联环境,可选项00/01,00正式环境,01测试环境 | + > |tn | string | 无 | 是 | 服务端返回的交易流水号,即tn | + > |seType | string | 无 | 否 | `【IOS无效】`手机pay支付类别,传入会展示对应的手机支付,如:华为支付就传04,具体说明见`seType说明表` | + > |callback | function | 无 | 是 | 支付结果回调,回参为`object`,属性见`返回值说明` | + > + > 返回值说明 + > + > | 属性 | 返回值说明 | + > | ------------ | ------------ | + > |code | 【必填】状态码,0:支付成功、1:前台支付成功,存在不确定性,需要后端查询订单实际支付结果(基于data中的签名判断)、-1:支付失败、-2:支付取消 | + > |msg | 【必填】提示信息 | + > |data | 【选填】支付签名信息,只有`code=1`的时候返回 | + + --- + > `getDirectApps`方法说明 + > + > 参数说明(入参为function函数,回参为`object`,属性见`返回值说明`) + > + > 返回值说明 + > + > | 属性 | 返回值说明 | + > | ------------ | ------------ | + > |code | 【必填】状态码。0:请求成功、1:请求失败(会将银联的错误code和错误msg都返回在data中,组成一个对象) | + > |msg | 【必填】提示信息 | + > |data | 【必填】响应结果。code=0时为Array对象,其中的值代表`直通银行标识`,详见`直通银行标识对照表`、code=1是为object对象,是银联的错误对象 | + +2. seType说明表`注意:seType是string类型,不是number` + +| 手机品牌 | seType | +| ------------ | ------------ | +| Samsung Pay | 02 | +| Huawei Pay | 04 | +| Meizu Pay | 27 | +| Le Pay | 30 | +| Mi Pay | 25 | +| OPPO Pay | 29 | +| vivo Pay | 33 | +| Smartisan Pay | 32 | +| realme Pay | 35 | + +3. 代码示例 + +```javascript +// uniapp项目引入方式 +import { checkWalletInstalled, getDirectApps, startPay } from '../../uni_modules/liyahong-unionpay' +// uniappx项目引用方式(注意:uniappx项目必须使用@符号的方式引用,否则会报路径找不到的问题) +import { checkWalletInstalled, getDirectApps, startPay } from '@/uni_modules/liyahong-unionpay' + +/** + * 检查是否安装云闪付App + */ +checkInstalled() { + const result = checkWalletInstalled() + this.installResult = `是否安装云闪付:${result}` +}, +/** + * 【鸿蒙不支持此功能】获取直通银行App列表 + */ +getBankAppList() { + getDirectApps((result) => { + console.log(JSON.stringify(result)) + }) +}, +/** + * 拉起云闪付进行支付 + */ +startPay() { + startPay({ + tn: '', + mode: '00', + callback: (result) => { + console.log(JSON.stringify(result)) + } + }) +} +``` + +4. 直通银行标识对照表`服务端生成tn时使用,举例:supportBank:CQP` + +| 银行标识 | 银行 APP 名称 | +| ------------ | ------------ | +| CQP | 云闪付 | +| CMBCC | 全民生活 | +| PAB | 平安口袋银行 | +| CCB | 中国建设银行 | +| BoCom | 交通银行 | +| ABC | 中国农业银行 | +| CMB | 招商银行 | +| CMBLIFE | 掌上生活 | +| ICBC | 中国工商银行 | +| SPDB | 浦发银行 | +| SPDBC | 浦大喜奔 | +| CNCB | 中信银行手机银行 | +| GDBC | 发现精彩 | +| CIBC | 兴业生活(好兴动) | +| HXBC | 华彩生活 | +| BCCBC | 掌上京彩 | +| BOCC | 中国银行缤纷生活 | +| CEBC | 阳光惠生活 | +| ICBCC | 工银 e 生活 | +| CCBC | 建行生活 | +| BoComC | 买单吧 | +| GDB | 广发银行手机银行 | +| PSBC | 邮储银行 | +| PSBCC | 邮储信用卡 | +| CEB | 光大银行手机银行 | +| BOS | 上海银行手机银行 | +| SHBANK | 上银美好生活 | +| CNCBC | 动卡空间 | +| CMBC | 民生银行手机银行 | +| CIB | 兴业银行手机银行 | +| BOC | 中国银行 | +| BCCB | 京彩生活 | +| ABCC | 农银 e 管家 | +| HXB | 华夏手机银行 | + +5. iOS访问白名单对照表 + +| 支付 APP scheme | 对应支付 APP | +| ------------ | ------------ | +| uppaysdk | 云闪付 APP | +| uppaywallet | 云闪付 APP | +| uppayx1 | 全民生活 | +| uppayx2 | 预留 | +| uppayx3 | 预留 | +| paesuperbank | 平安口袋银行 | +| ccbmbsylunionpay | 中国建设银行 | +| bocom | 交通银行 | +| bankabc | 中国农业银行 | +| cmbmobilebank | 招商银行 | +| cmblife | 掌上生活 | +| com.icbc.iphoneclient | 中国工商银行 | +| spdbbank | 浦发银行 | +| spdbcccUnionPay | 浦大喜奔 | +| citicbankpay | 中信银行手机银行 | +| credit | 发现精彩 | +| uppayxingyecredit | 兴业生活(好兴动) | +| uppayhuaxiacredit | 华彩生活 | +| uppaybeijingcredit | 掌上京彩 | +| uppayzhonghangcredit | 中国银行缤纷生活 | +| uppayguangdacredit | 阳光惠生活 | +| uppaygonghangcredit | 工银 e 生活 | +| uppayjianhangcredit | 建行生活 | +| uppayjiaohangcredit | 买单吧 | +| uppayguangfa | 广发银行手机银行 | +| psbccashier | 邮储银行 | +| uppayyouchucredit | 邮储信用卡 | +| com.cebbank.ebank | 光大银行手机银行 | +| BankOfShangHai | 上海银行手机银行 | +| boscgdlf | 上银美好生活 | +| citicbankdkkj | 动卡空间 | +| cmbc | 民生银行手机银行 | +| cibmb | 兴业银行手机银行 | +| bocmbankpsn | 中国银行 | +| bankofbjpay | 京彩生活 | +| uppaynonghangcredit | 农银 e 管家 | +| uppayhuaxia | 华夏手机银行 | +| zytuppay | 中银通 | +| LZYHSJYHAUTHSSOAPP | 兰州银行 | +| bnbpay | 宁波银行 | +| dlrcb | 大连农商行 | +| czbank | 浙商银行 | +| uppayCbhb | 渤海银行 | + +6. 其他附属 + +* 1) 银联测试卡链接:[测试卡直达](https://open.unionpay.com/tjweb/support/faq/mchlist?id=4) +* 2) 商户需按照以下链接及表格内容配置 IP 及地址白名单。[配置服务端白名单链接直达](https://open.unionpay.com/tjweb/support/faq/mchlist?id=228) + +| 测试 | 生产 | +| ------------ | ------------ | +| https://appcashier.test.cup.com.cn | https://conf.cup.com.cn | +| https://appcashier.test.95516.com | https://conf.95516.com | +| | https://acpstatic.cup.com.cn | +| | https://acpstatic.95516.com | +| | https://appcashier.95516.com | + +* 3) Apple Pay需要自行接入,接入参考:[链接直达](https://open.unionpay.com/tjweb/support/faq/mchlist?id=741) +* 4) 其他问题请参见 [https://open.unionpay.com](https://open.unionpay.com) 帮助中心-FAQ + +7. 已知问题 +* Q:频繁调用`getDirectApps`、`startPay`函数会导致callback回调触发多次?`感谢用户:[爱心]GLL` +* A:多页面可以通过页面路径来判断是否是当前页面触发,如果是再执行下一步操作,否则拦截 \ No newline at end of file diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-android/AndroidManifest.xml b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-android/AndroidManifest.xml new file mode 100644 index 0000000..acde383 --- /dev/null +++ b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-android/AndroidManifest.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-android/config.json b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-android/config.json new file mode 100644 index 0000000..bf95925 --- /dev/null +++ b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-android/config.json @@ -0,0 +1,3 @@ +{ + "minSdkVersion": "21" +} \ No newline at end of file diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-android/index.uts b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-android/index.uts new file mode 100644 index 0000000..7c771d5 Binary files /dev/null and b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-android/index.uts differ diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-android/libs/UPPayAssistEx.jar b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-android/libs/UPPayAssistEx.jar new file mode 100644 index 0000000..f9bbd1d Binary files /dev/null and b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-android/libs/UPPayAssistEx.jar differ diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-android/libs/arm64-v8a/libentryexpro.so b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-android/libs/arm64-v8a/libentryexpro.so new file mode 100644 index 0000000..ed74c06 Binary files /dev/null and b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-android/libs/arm64-v8a/libentryexpro.so differ diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-android/libs/armeabi-v7a/libentryexpro.so b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-android/libs/armeabi-v7a/libentryexpro.so new file mode 100644 index 0000000..77b7efc Binary files /dev/null and b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-android/libs/armeabi-v7a/libentryexpro.so differ diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-android/libs/x86/libentryexpro.so b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-android/libs/x86/libentryexpro.so new file mode 100644 index 0000000..b679457 Binary files /dev/null and b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-android/libs/x86/libentryexpro.so differ diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-harmony/config.json b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-harmony/config.json new file mode 100644 index 0000000..dd78801 --- /dev/null +++ b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-harmony/config.json @@ -0,0 +1,5 @@ +{ + "dependencies":{ + "libuppayment": "./libs/libuppayment.har" + } +} \ No newline at end of file diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-harmony/index.uts b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-harmony/index.uts new file mode 100644 index 0000000..a539aca Binary files /dev/null and b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-harmony/index.uts differ diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-harmony/libs/libuppayment.har b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-harmony/libs/libuppayment.har new file mode 100644 index 0000000..675bc5e Binary files /dev/null and b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-harmony/libs/libuppayment.har differ diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/Headers/UPPaymentControl.h b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/Headers/UPPaymentControl.h new file mode 100644 index 0000000..14cd678 --- /dev/null +++ b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/Headers/UPPaymentControl.h @@ -0,0 +1,75 @@ +// +// PaymentControl.h +// PaymentControl +// +// Created by qcao on 15/10/20. +// Copyright © 2015年 China Unionpay Co.,Ltd. All rights reserved. +// v3.6.3 build1(mini) +// + +#import +#import + + +typedef void (^UPPaymentResultBlock)(NSString* code, NSDictionary* data); +typedef void (^UPPaymentDirectAppSucc)(NSArray* directApps); +typedef void (^UPPaymentDirectAppFail)(NSString* code,NSString* msg); + +@interface UPPaymentControl : NSObject + + +/** + * 创建支付单例服务 + * + * @return 返回单例对象 + */ + ++ (UPPaymentControl *)defaultControl; + + +/** + * 支付接口 + * + * @param tn 订单信息 + * @param schemeStr 调用支付的app注册在info.plist中的scheme + * @param mode 支付环境 + * @param viewController 启动支付控件的viewController + * @return 返回成功失败 + */ +- (BOOL)startPay:(NSString*)tn + fromScheme:(NSString *)schemeStr + mode:(NSString*)mode + viewController:(UIViewController*)viewController; + + + +/// APP是否已安装检测接口,通过该接口得知用户是否安装银联支付的APP。 +/// @param mode 支付环境 +/// @param merchantInfo 商户标识 +- (BOOL)isPaymentAppInstalled:(NSString*)mode withMerchantInfo:(NSString *)merchantInfo; + + +/** + * 接口非线程安全,通过主线程回调异步返回直通可用app列表 + * @param mode 支付环境 + * @param merchantInfo 商户标识 + * @param succBlock 主线程成功回调,回调参数directApps,表示直通可用app列表,如无可用App则directApps为空数组@[] + * @param succBlock 主线程成功回调,回调参数一code,表示错误码(参数错误 : 01,网络错误 : 02,其它 : 03) + * 回调参数二msg,表示错误信息(参数错误 : parameter error,网络错误 : network error,其它 : unknown error) + */ +- (void)getDirectApps:(NSString*)mode + withMerchantInfo:(NSString*)merchantInfo + succBlock:(UPPaymentDirectAppSucc)succBlock + failBlock:(UPPaymentDirectAppFail)failBlock; + + + +/** + * 处理钱包或者独立快捷app支付跳回商户app携带的支付结果Url + * + * @param url 支付结果url,传入后由SDK解析 + * @param completionBlock 结果回调,保证跳转钱包支付过程中,即使调用方app被系统kill时,能通过这个回调取到支付结果。 + */ +- (void)handlePaymentResult:(NSURL*)url completeBlock:(UPPaymentResultBlock)completionBlock; + +@end diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/Headers/UPPaymentControlMini.h b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/Headers/UPPaymentControlMini.h new file mode 100644 index 0000000..fe844b1 --- /dev/null +++ b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/Headers/UPPaymentControlMini.h @@ -0,0 +1,19 @@ +// +// UPPaymentControlMini.h +// UPPaymentControlMini +// +// Created by jianchen on 2024/3/21. +// Copyright © 2024 China Unionpay Co.,Ltd. All rights reserved. +// + +#import +#import +//! Project version number for UPPaymentControlMini. +FOUNDATION_EXPORT double UPPaymentControlMiniVersionNumber; + +//! Project version string for UPPaymentControlMini. +FOUNDATION_EXPORT const unsigned char UPPaymentControlMiniVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/Info.plist b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/Info.plist new file mode 100644 index 0000000..5212174 Binary files /dev/null and b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/Info.plist differ diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/Modules/module.modulemap b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/Modules/module.modulemap new file mode 100644 index 0000000..cb6d69c --- /dev/null +++ b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module UPPaymentControlMini { + umbrella header "UPPaymentControlMini.h" + export * + + module * { export * } +} diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/PaymentControlPrivacy.bundle/PrivacyInfo.xcprivacy b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/PaymentControlPrivacy.bundle/PrivacyInfo.xcprivacy new file mode 100644 index 0000000..a91d2aa --- /dev/null +++ b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/PaymentControlPrivacy.bundle/PrivacyInfo.xcprivacy @@ -0,0 +1,30 @@ + + + + + NSPrivacyTrackingDomains + + NSPrivacyTracking + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + 1C8F.1 + CA92.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + C617.1 + + + + + diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/UPPaymentControlMini b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/UPPaymentControlMini new file mode 100644 index 0000000..4894f4f Binary files /dev/null and b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/UPPaymentControlMini differ diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/_CodeSignature/CodeDirectory b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/_CodeSignature/CodeDirectory new file mode 100644 index 0000000..07effa1 Binary files /dev/null and b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/_CodeSignature/CodeDirectory differ diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/_CodeSignature/CodeRequirements b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/_CodeSignature/CodeRequirements new file mode 100644 index 0000000..04fd078 Binary files /dev/null and b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/_CodeSignature/CodeRequirements differ diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/_CodeSignature/CodeRequirements-1 b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/_CodeSignature/CodeRequirements-1 new file mode 100644 index 0000000..efe3729 Binary files /dev/null and b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/_CodeSignature/CodeRequirements-1 differ diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/_CodeSignature/CodeResources b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..0f2b39b --- /dev/null +++ b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/_CodeSignature/CodeResources @@ -0,0 +1,162 @@ + + + + + files + + Headers/UPPaymentControl.h + + lUIYX/vWkeiAf8yN5e76vTBXzm4= + + Headers/UPPaymentControlMini.h + + vet6Fb0UERMco/wGncRFVXS8TXQ= + + Info.plist + + DJf/0h9lOKhmpP6EWhqv2Gr9Tyk= + + Modules/module.modulemap + + Sh7SIRMAu2cPHe58dK3I34oDN9w= + + PaymentControlPrivacy.bundle/PrivacyInfo.xcprivacy + + 0OHpv8paT+zhCRgwkm8W01cB2I0= + + + files2 + + Headers/UPPaymentControl.h + + hash + + lUIYX/vWkeiAf8yN5e76vTBXzm4= + + hash2 + + mLUdwyl5s6nFTrRvWFLorErec/OiYl+oFc3rvt+5VfQ= + + + Headers/UPPaymentControlMini.h + + hash + + vet6Fb0UERMco/wGncRFVXS8TXQ= + + hash2 + + MXfiWTa0rtbqZoTW8jF9ZBdd4RAwXaZGPEnvx8QFDVc= + + + Modules/module.modulemap + + hash + + Sh7SIRMAu2cPHe58dK3I34oDN9w= + + hash2 + + qjfQ26DcOeeqGITBWz4flSg5RUaRECAcHha+Rc0o26w= + + + PaymentControlPrivacy.bundle/PrivacyInfo.xcprivacy + + hash + + 0OHpv8paT+zhCRgwkm8W01cB2I0= + + hash2 + + trLG3kFk3BQb4Gg32fmJfZUhCnOO9gKdSuoR/XPSnC0= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/_CodeSignature/CodeSignature b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/_CodeSignature/CodeSignature new file mode 100644 index 0000000..e8cc14e Binary files /dev/null and b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Frameworks/UPPaymentControlMini.framework/_CodeSignature/CodeSignature differ diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Info.plist b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Info.plist new file mode 100644 index 0000000..25431da --- /dev/null +++ b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/Info.plist @@ -0,0 +1,52 @@ + + + + + LSApplicationQueriesSchemes + + uppaysdk + uppaywallet + uppayx1 + uppayx2 + uppayx3 + paesuperbank + ccbmbsylunionpay + bocom + bankabc + cmbmobilebank + cmblife + com.icbc.iphoneclient + spdbbank + spdbcccUnionPay + citicbankpay + credit + uppayxingyecredit + uppayhuaxiacredit + uppaybeijingcredit + uppayzhonghangcredit + uppayguangdacredit + uppaygonghangcredit + uppayjianhangcredit + uppayjiaohangcredit + uppayguangfa + psbccashier + uppayyouchucredit + com.cebbank.ebank + BankOfShangHai + boscgdlf + citicbankdkkj + cmbc + cibmb + bocmbankpsn + bankofbjpay + uppaynonghangcredit + uppayhuaxia + zytuppay + LZYHSJYHAUTHSSOAPP + bnbpay + dlrcb + czbank + uppayCbhb + + + diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/config.json b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/config.json new file mode 100644 index 0000000..12fa51e --- /dev/null +++ b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/config.json @@ -0,0 +1,12 @@ +{ + "deploymentTarget": "11", + "validArchitectures": [ // 可选,支持的 CPU 架构类型 默认:arm64 + "arm64" + ], + "frameworks": [ // 可选,依赖的系统库(系统库有.framework和.tbd和.dylib类型) + "SystemConfiguration.framework", + "libz.tbd", + "LocalAuthentication.framework", + "libc++.tbd" + ] +} diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/index.uts b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/index.uts new file mode 100644 index 0000000..ef61d4f Binary files /dev/null and b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/app-ios/index.uts differ diff --git a/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/interface.uts b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/interface.uts new file mode 100644 index 0000000..b791cae --- /dev/null +++ b/property-uniapp-project/uni_modules/liyahong-unionpay/utssdk/interface.uts @@ -0,0 +1,39 @@ +/** + * uts插件接口定义文件,按规范定义接口文件可以在HBuilderX中更好的做到语法提示 + */ +type modeType = '00' | '01' + +export type startPayOptions = { + /** + * 银联环境,00正式环境,01测试环境 + */ + mode: modeType, + /** + * 服务端返回的交易流水号,即tn + */ + tn: string, + /** + * 【可选】【IOS无效】手机pay支付类别,传入会展示对应的手机支付,如:华为支付 + */ + seType?: string, + /** + * 支付结果回调 + */ + callback: (result: any) => void +} + +/** + * 检查是否安装云闪付App + */ +export type checkWalletInstalled = () => boolean + +/** + * 拉起云闪付app并发起支付 + */ +export type startPay = (options: startPayOptions) => void + +/** + * 检查已安装的支持直通模式的银行app列表 + * 用途是在服务端生成tn时,保留域传入"ebankEnAbbr" : "银行标识" + */ +export type getDirectApps = (callback: Function) => void \ No newline at end of file diff --git a/property-uniapp-project/uni_modules/unionpay-full/package.json b/property-uniapp-project/uni_modules/unionpay-full/package.json new file mode 100644 index 0000000..00939d0 --- /dev/null +++ b/property-uniapp-project/uni_modules/unionpay-full/package.json @@ -0,0 +1,33 @@ +{ + "id": "unionpay-full", + "displayName": "银联商务支付(正式版)", + "version": "1.0.0", + "description": "银联商务UMS支付UTS插件,支持云闪付/微信/支付宝,正式版SDK", + "keywords": [ + "银联商务", + "UMS", + "云闪付", + "支付" + ], + "engines": { + "HBuilderX": "^3.6.8", + "uni-app": "^4.36" + }, + "uni_modules": { + "dependencies": [], + "platforms": { + "client": { + "uni-app": { + "app": { + "android": { + "minVersion": "21" + }, + "ios": { + "minVersion": "11" + } + } + } + } + } + } +} diff --git a/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/AndroidManifest.xml b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/AndroidManifest.xml new file mode 100644 index 0000000..2ddaf28 --- /dev/null +++ b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/AndroidManifest.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + diff --git a/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/config.json b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/config.json new file mode 100644 index 0000000..f3189d0 --- /dev/null +++ b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/config.json @@ -0,0 +1,3 @@ +{ + "minSdkVersion": "21" +} diff --git a/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/index.uts b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/index.uts new file mode 100644 index 0000000..6465981 --- /dev/null +++ b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/index.uts @@ -0,0 +1,90 @@ +import { startPayOptions } from '../../interface.uts' + +// UMS SDK 核心类包名 +const UMS_PKG = 'com.chinaums.pppay.unify' + +/** + * 检查是否安装云闪付App + * 【注】UMS SDK 未提供安装检测接口,默认返回 true + */ +export function checkWalletInstalled(): boolean { + return true +} + +/** + * 发起支付(云闪付) + * 调用 UMS SDK 的 UnifyPayPlugin 进行支付 + */ +export function startPay(options: startPayOptions): void { + try { + const activity = UTSAndroid.getUniActivity() + if (activity == null) { + options.callback({ code: -1, msg: '获取当前 Activity 失败' }) + return + } + + // 动态导入 UMS SDK 类 + const UnifyPayPlugin = plus.android.importClass(UMS_PKG + '.UnifyPayPlugin') + const UnifyPayListener = plus.android.importClass(UMS_PKG + '.UnifyPayListener') + + // payData:后端返回的 appPayRequest 对应的 JSON 字符串 + // 如果后端返回的 tn 字段已经是 JSON 格式,直接传入即可 + const payData = options.tn + + // 创建支付结果监听器 + const listener = new UnifyPayListener({ + onResult: (resultCode: string, resultInfo: string) => { + console.log('UMS 支付结果:', resultCode, resultInfo) + let code = -1 + let msg = resultInfo || '支付失败' + + if (resultCode === '0000' || resultCode === '0') { + code = 0 + msg = '支付成功' + } else if (resultCode === '-2' || resultCode === '2000' || resultCode === '2001') { + code = -2 + msg = '支付已取消' + } else if (resultCode === '1') { + code = 1 + msg = '支付处理中' + } + + options.callback({ + code: code, + msg: msg, + data: { resultCode: resultCode, resultInfo: resultInfo } + }) + } + }) + + // 根据支付渠道调用不同方法 + const channel = options.channel || 'unionpay' + if (channel === 'unionpay') { + // 云闪付 + UnifyPayPlugin.cloudPay(activity, 'uppayfull', payData, listener) + } else if (channel === 'alipay') { + // 支付宝间联支付 + // 如果 aliSafePay 方法不存在,请尝试改用 pay 方法: + // UnifyPayPlugin.pay(activity, 'ALIPAY', payData, listener) + UnifyPayPlugin.aliSafePay(activity, 'uppayfull', payData, listener) + } else if (channel === 'weixin') { + // 微信支付(需申请微信SDK后才能使用) + // UnifyPayPlugin.pay(activity, 'WEIXIN', payData, listener) + options.callback({ code: -1, msg: '微信支付暂不支持,请先申请微信SDK' }) + } else { + options.callback({ code: -1, msg: '未知支付渠道: ' + channel }) + } + + } catch (e) { + console.error('UMS 支付调用异常:', e) + options.callback({ code: -1, msg: '支付调用异常: ' + (e.message || String(e)) }) + } +} + +/** + * 获取直通银行 App 列表 + * 【注】UMS SDK 暂未实现此功能 + */ +export function getDirectApps(callback: Function): void { + callback({ code: 0, msg: 'UMS SDK 暂不支持此功能', data: [] }) +} diff --git a/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/libs/UPPayAssistEx.jar b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/libs/UPPayAssistEx.jar new file mode 100644 index 0000000..32c990a Binary files /dev/null and b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/libs/UPPayAssistEx.jar differ diff --git a/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/libs/arm64-v8a/libentryexpro.so b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/libs/arm64-v8a/libentryexpro.so new file mode 100644 index 0000000..23ca555 Binary files /dev/null and b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/libs/arm64-v8a/libentryexpro.so differ diff --git a/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/libs/armeabi-v7a/libentryexpro.so b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/libs/armeabi-v7a/libentryexpro.so new file mode 100644 index 0000000..ae09ea4 Binary files /dev/null and b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/libs/armeabi-v7a/libentryexpro.so differ diff --git a/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/libs/qmf-ppplugin-android-3.1.8.aar b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/libs/qmf-ppplugin-android-3.1.8.aar new file mode 100644 index 0000000..dce722b Binary files /dev/null and b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/libs/qmf-ppplugin-android-3.1.8.aar differ diff --git a/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/libs/x86/libentryexpro.so b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/libs/x86/libentryexpro.so new file mode 100644 index 0000000..2ac1f4a Binary files /dev/null and b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-android/libs/x86/libentryexpro.so differ diff --git a/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-ios/UMSPPPayPluginSettings.h b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-ios/UMSPPPayPluginSettings.h new file mode 100644 index 0000000..33d22ce --- /dev/null +++ b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-ios/UMSPPPayPluginSettings.h @@ -0,0 +1,59 @@ +// +// UMSPluginSettings.h +// UMSPosPay +// +// Created by chinaums on 15/10/19. +// Copyright © 2015年 ChinaUMS. All rights reserved. +// + +// sdk_version = 3.1.8 + +#import + +//1 是走apple 0是不走 +//#define SHOULD_CONTAIN_APPLE_PAY_CODES 0 + +/*! + @enum + @abstract 交易环境 + @constant UMSP_PROD 生产环境 + @constant UMSP_TEST 测试环境 + */ +typedef NS_ENUM(NSInteger, UMSPluginEnvironment) { + UMSP_PROD, + UMSP_TEST +}; + +/** + * 进入插件的方式 + */ +typedef NS_ENUM(NSInteger, UMSPluginEnterType) { + ///默认方式 + UMSPluginEnterType_Default, + ///C扫B方式 + UMSPluginEnterType_ScanCode +}; + + +@interface UMSPPPayPluginSettings : NSObject + ++ (UMSPPPayPluginSettings *)sharedInstance; + +/*! + @property + @abstract 设置交易环境,默认UMSP_PROD + */ +@property (nonatomic, assign) UMSPluginEnvironment umspEnviroment; + +/** + * 进入插件方式,默认UMSPluginEnterType_Default + */ +@property (nonatomic, assign) UMSPluginEnterType umspEnterType; + +/*! + @property + @abstract 设置是否需要启动页,默认YES + */ +@property (nonatomic, assign) BOOL umspSplash; + +@end diff --git a/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-ios/UMSPPPayUnifyPayPlugin.h b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-ios/UMSPPPayUnifyPayPlugin.h new file mode 100644 index 0000000..084c5b6 --- /dev/null +++ b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-ios/UMSPPPayUnifyPayPlugin.h @@ -0,0 +1,118 @@ +// +// UMSPPPayUnifyPayPlugin.h +// UMSPosPay +// +// Created by SunXP on 17/4/25. +// Copyright © 2017年 ChinaUMS. All rights reserved. +// + +// sdk_version = 3.1.8 + +#import +#import "WXApi.h" + +/** + * 支付渠道 + * + * @param CHANNEL_WEIXIN 微信支付 + * @param CHANNEL_ALIPAY 支付宝支付 + * @param CHANNEL_ALIMINIPAY 支付宝小程序支付 + * @param CHANNEL_WEIXINMINI 微信小程序支付 + */ +FOUNDATION_EXTERN NSString *const CHANNEL_WEIXIN; +FOUNDATION_EXTERN NSString *const CHANNEL_ALIPAY; +FOUNDATION_EXTERN NSString *const CHANNEL_ALIMINIPAY; +FOUNDATION_EXTERN NSString *const CHANNEL_WEIXINMINI; + +typedef void(^TransactionResultBlock)(NSString *resultCode, NSString *resultInfo); + +@interface UMSPPPayUnifyPayPlugin : NSObject + +/** + * 商户下单支付接口 + * + * @param payChannel 支付渠道 + * @param payData 订单信息:appPayRequest对应的json字符串 + * @param callbackBlock 交易结果回调Block + */ ++ (void)payWithPayChannel:(NSString *)payChannel payData:(NSString *)payData callbackBlock:(TransactionResultBlock)callbackBlock; + +/** + 云闪付下单接口 + + @param schemes url schemes + @param payData 订单信息:appPayRequest对应的json字符串 + @param viewController 启动支付控件的viewController + @param callbackBlock 交易结果回调Block + */ ++ (void)cloudPayWithURLSchemes:(NSString *)schemes + payData:(NSString *)payData + viewController:(UIViewController *)viewController + callbackBlock:(TransactionResultBlock)callbackBlock; + +/** + 支付宝的间联原生app支付 + + @param schemes url schemes + @param payData 订单信息:appPayRequest对应的json字符串 + @param callbackBlock 交易结果回调Block + */ ++ (void)aliSafePayWithURLSchemes:(NSString *)schemes + payData:(NSString *)payData + callbackBlock:(TransactionResultBlock)callbackBlock; + +/** + * 微信支付配置参数 + * + * @param appId 商户注册的微信支付appId + * @param universalLink 微信开发者Universal Link + * @return YES:成功 NO:失败 + * 需在AppDelegate的didFinishLaunchingWithOptions方法中调用 + */ ++ (BOOL)registerApp:(NSString *)appId universalLink:(NSString *)universalLink; + +/** + * 微信支付配置参数 + * + * @param url App处理的openUrl + * @param otherDelegate WXApiDelegate对象,用来接收微信触发的非本功能的消息。 + * @return YES:成功 NO:失败 + * 需在AppDelegate中的方法中调用: + * iOS9.0之前版本:- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url + * - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation + * iOS9.0之后版本:- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options + */ ++ (BOOL)handleOpenURL:(NSURL *)url otherDelegate:(id)otherDelegate; + +/*! @brief 处理微信通过Universal Link启动App时传递的数据 +* +* 需要在 application:continueUserActivity:restorationHandler:中调用。 +* @param userActivity 微信启动第三方应用时系统API传递过来的userActivity +* @param otherDelegate WXApiDelegate对象,用来接收微信触发的非本功能的消息。 +* 需在AppDelegate中的方法中调用: + 需要在 application:continueUserActivity:restorationHandler:中调用。 +* @return 成功返回YES,失败返回NO。 + */ ++(BOOL)handleOpenUniversalLink:(NSUserActivity *)userActivity otherDelegate:(id)otherDelegate API_AVAILABLE(ios(8.0)); +/** + 云闪付处理 + + @param url App处理的openUrl + @return YES:成功 NO:失败 + */ ++ (BOOL)cloudPayHandleOpenURL:(NSURL *)url; + +/** + 支付宝小程序处理 + + @param url App处理的openUrl + */ ++ (void)aliMiniPayHandleOpenURL:(NSURL *)url; + +/** + 支付宝间联原生app支付处理 + + @param url App处理的openUrl + */ ++ (void)aliSafePayHandleOpenURL:(NSURL *)url; +@end diff --git a/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-ios/UMSPPPayVersionsInfo.h b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-ios/UMSPPPayVersionsInfo.h new file mode 100644 index 0000000..2a37864 --- /dev/null +++ b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-ios/UMSPPPayVersionsInfo.h @@ -0,0 +1,17 @@ +// +// libUMSVersionsInfo.h +// UMSPosPay +// +// Created by diudiu on 16/6/28. +// Copyright © 2016年 ChinaUMS. All rights reserved. +// + +// sdk_version = 3.1.8 + +#import + +@interface UMSPPPayVersionsInfo : NSObject + ++ (NSMutableDictionary *)getVersionsInfoForPosPayPlugin; + +@end diff --git a/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-ios/config.json b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-ios/config.json new file mode 100644 index 0000000..9df1782 --- /dev/null +++ b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-ios/config.json @@ -0,0 +1,13 @@ +{ + "deploymentTarget": "11", + "validArchitectures": [ + "arm64" + ], + "frameworks": [ + "SystemConfiguration.framework", + "libz.tbd", + "LocalAuthentication.framework", + "libc++.tbd", + "CFNetwork.framework" + ] +} diff --git a/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-ios/index.uts b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-ios/index.uts new file mode 100644 index 0000000..110a9fa --- /dev/null +++ b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-ios/index.uts @@ -0,0 +1,96 @@ +import { startPayOptions } from '../../interface.uts' + +/** + * 检查是否安装云闪付App + * 通过 canOpenURL 检测云闪付 scheme + */ +export function checkWalletInstalled(): boolean { + try { + const UIApplication = plus.ios.importClass('UIApplication') + const app = UIApplication.sharedApplication() + const url = plus.ios.importClass('NSURL')!.URLWithString('uppaywallet://') + return app.canOpenURL(url) + } catch (e) { + console.log('检测云闪付安装状态失败:', e) + return true + } +} + +/** + * 发起支付(云闪付) + * 调用 UMS SDK 的 UMSPPPayUnifyPayPlugin 进行支付 + */ +export function startPay(options: startPayOptions): void { + try { + const UMSPPPayUnifyPayPlugin = plus.ios.importClass('UMSPPPayUnifyPayPlugin') + if (UMSPPPayUnifyPayPlugin == null) { + options.callback({ code: -1, msg: 'UMS 支付插件加载失败' }) + return + } + + const viewController = UTSiOS.getCurrentViewController() + if (viewController == null) { + options.callback({ code: -1, msg: '获取当前视图控制器失败' }) + return + } + + // payData:后端返回的 appPayRequest 对应的 JSON 字符串 + const payData = options.tn + const channel = options.channel || 'unionpay' + + // 统一结果处理 block + const resultBlock = (resultCode: string, resultInfo: string) => { + console.log('UMS iOS 支付结果:', resultCode, resultInfo) + let code = -1 + let msg = resultInfo || '支付失败' + + if (resultCode === '0000' || resultCode === '0') { + code = 0 + msg = '支付成功' + } else if (resultCode === '-2' || resultCode === '2000' || resultCode === '2001') { + code = -2 + msg = '支付已取消' + } else if (resultCode === '1') { + code = 1 + msg = '支付处理中' + } + + options.callback({ + code: code, + msg: msg, + data: { resultCode: resultCode, resultInfo: resultInfo } + }) + } + + // 根据支付渠道调用不同方法 + if (channel === 'unionpay') { + // 云闪付 + UMSPPPayUnifyPayPlugin.cloudPayWithURLSchemes_payData_viewController_callbackBlock( + 'uppayfull', payData, viewController, resultBlock + ) + } else if (channel === 'alipay') { + // 支付宝间联支付 + UMSPPPayUnifyPayPlugin.aliSafePayWithURLSchemes_payData_callbackBlock( + 'uppayfull', payData, resultBlock + ) + } else if (channel === 'weixin') { + // 微信支付(需申请微信SDK后才能使用) + // UMSPPPayUnifyPayPlugin.payWithPayChannel_payData_callbackBlock('CHANNEL_WEIXIN', payData, resultBlock) + options.callback({ code: -1, msg: '微信支付暂不支持,请先申请微信SDK' }) + } else { + options.callback({ code: -1, msg: '未知支付渠道: ' + channel }) + } + + } catch (e) { + console.error('UMS iOS 支付调用异常:', e) + options.callback({ code: -1, msg: '支付调用异常: ' + (e.message || String(e)) }) + } +} + +/** + * 获取直通银行 App 列表 + * 【注】UMS SDK 暂未实现此功能 + */ +export function getDirectApps(callback: Function): void { + callback({ code: 0, msg: 'UMS SDK 暂不支持此功能', data: [] }) +} diff --git a/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-ios/libUMSPosPayOnly.a b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-ios/libUMSPosPayOnly.a new file mode 100644 index 0000000..c4168eb Binary files /dev/null and b/property-uniapp-project/uni_modules/unionpay-full/utssdk/app-ios/libUMSPosPayOnly.a differ diff --git a/property-uniapp-project/uni_modules/unionpay-full/utssdk/interface.uts b/property-uniapp-project/uni_modules/unionpay-full/utssdk/interface.uts new file mode 100644 index 0000000..3f7dd04 --- /dev/null +++ b/property-uniapp-project/uni_modules/unionpay-full/utssdk/interface.uts @@ -0,0 +1,53 @@ +/** + * 银联商务 UMS 支付 UTS 插件接口定义 + * 适配正式版 UMS SDK(Android: qmf-ppplugin / iOS: libUMSPosPayOnly) + */ +type modeType = '00' | '01' +export type PayChannel = 'unionpay' | 'alipay' | 'weixin' + +export type startPayOptions = { + /** + * 支付渠道,默认 unionpay + * unionpay: 云闪付 + * alipay: 支付宝 + * weixin: 微信(需申请微信SDK后使用) + */ + channel?: PayChannel, + /** + * 支付环境,00正式环境,01测试环境 + * 【注】UMS SDK 内部根据 payData 中的环境字段判断,此参数保留兼容 + */ + mode: modeType, + /** + * 服务端返回的支付参数 + * UMS SDK:appPayRequest 对应的 JSON 字符串(由后端返回) + */ + tn: string, + /** + * 【可选】手机pay支付类别,保留兼容字段 + */ + seType?: string, + /** + * 支付结果回调 + * result.code: 0成功 / -1失败 / -2取消 + * result.msg: 提示信息 + */ + callback: (result: any) => void +} + +/** + * 检查是否安装云闪付App + * 【注】UMS SDK 未提供安装检测接口,默认返回 true + */ +export type checkWalletInstalled = () => boolean + +/** + * 发起支付 + */ +export type startPay = (options: startPayOptions) => void + +/** + * 检查已安装的支持直通模式的银行app列表 + * 【注】UMS SDK 暂未实现此功能 + */ +export type getDirectApps = (callback: Function) => void