UnifyPayPlugin

概述

本原生插件封装了银联商务收付通SDK,包括微信、支付宝、支付宝小程序、云闪付支付这四种支付方式。

注意:

  • 在 iOS 端支付宝渠道如果支付请求发送成功,则会跳转至支付宝APP,并且支付完成后会停留在支付宝,因此商户 APP无法通过callbackBlock收到支付结果,请以后台的支付结果为准。
  • 在 Android 端必须使用升级环境编译,且最低版本要求为 4.4.2

iOS使用此原生插件之前需先配置 config.xml 文件,方法如下

  • 名称:UnifyPayPlugin
  • 参数:urlScheme、appId
  • 配置示例:
  <feature name="UnifyPayPlugin">
    <param name="urlScheme" value="wxd0d84bbf23b4a0e4"/> 
    <param name="urlScheme" value="unifyPayBackUrl"/> 
    <param name="urlScheme" value="aliMiniPay123"/> 
    <param name="appId" value="wxd0d84bbf23b4a0e4"/>
    <param name="universalLink" value="https://developer.yonyou.com"/>
  </feature> 
  • 字段描述:

    urlScheme:(必须配置)用于实现应用间跳转及数据交换,本应用可以启动目标客户端(如微信),目标客户端依靠本参数跳回本应用。urlScheme 的 value 值是从目标 App 的开放平台获取的 appid,如 微信的 appid 申请方法参考 微信开放平台接入文档。也可以是自定义的,如云闪付 unifyPayBackUrl(必须是以unifyPay开头的字符串,如unifyPay20190723、unifyPayBackUrl、unifyPayDemo)。支付宝小程序支付必须以aliMiniPay开头的支持同时配置多个 urlScheme,若未开通相应的支付功能可不配置。

    appId:(必须配置)商户注册的微信支付appId。appid 申请方法参考微信开放平台接入文档。

    universalLink:(必须配置) 微信开发者Universal Link。

config 配置注意事项:

在 iOS 平台需配置 白名单。需配置 weixin、weixinULAPI、alipays、uppaysdk、uppaywallet、uppayx1、uppayx2、uppayx3 。示例如下:

  //多个值之间用英文逗号隔开
<preference name="querySchemes" value="weixin,weixinULAPI,alipays,uppaysdk,uppaywallet,uppayx1,uppayx2,uppayx3" />

android配置支付宝小程序支付回调scheme:

  • 下载 aUnifyPayAppendix原生插件zip包并解压(解压后会看到一个aUnifyPayAppendix文件夹)
  • 打开\res_aUnifyPayAppendix文件夹中AndroidManifest.xml文件,替换qmfpppay为自己的scheme
  • 重新打包为aUnifyPayAppendix.zip,以自定义原生插件方式与aUnifyPay原生插件一起编译

iOS端注意事项: 1.创建 entitlements 文件,Yonbuilder 移动开发平台上的开发者,可通过此文件告诉编译服务器开通 Associated Domain 功能。配置方法参考论坛帖子。配置示例如下:

```js
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>com.apple.developer.associated-domains</key>
        <array>
            <string>applinks:developer.yonyou.com</string>
        </array>
    </dict>
    </plist>
```

其中 com.apple.developer.associated-domains 对应的值 applinks:developer.yonyou.com 是配置的你的应用的Universal Links。详情参考 苹果文档

2.开通 Associated Domains。 登录苹果开发者账号,在左侧列表里找到 Identifiers,选中后再找到你的 Bundle ID (包名),选中该包名,配置开启其 Associated Domains 功能。

3.服务器端支持苹果 Universal Links。支持方法参考 论坛帖子

4.如果支持微信支付,必须添加白名单如下:

关于白名单解释详情参考 Yonbuilder 移动开发平台官方文档之-----白名单配置

支付流程说明:

(1)用户在商户客户端中点击购买商品,商户客户端到商户后台发起下单;

(2)商户后台收到下单请求后,按照《银联商务全民付移动支付APP综合支付商户接入接口规范》文档要求向银商后台发送下单请求;

(3)银商后台接收到下单请求后,生成对应订单信息,并返回给商户后台(应答要素:appPayRequest等);

(4)商户后台接收订单信息,将订单信息返回至商户客户端;

(5)商户客户端使用订单信息(appPayRequest等)调用银商支付插件;

(6)银商支付插件根据传递订单信息唤起钱包APP(云闪付、微信、支付宝等)完成支付。

payWithData

支付订单

payWithData({params}, callback(ret, err))

params

channel:

  • 类型:字符串
  • 描述:支付渠道
  • 取值范围:
    • wxPay 微信支付
    • aliPay 支付宝支付
    • cloudPay 云闪付 (传此参数时,config.xml 必须配置对应的 urlScheme)
    • aliMiniPay 支付宝小程序支付

appPayRequest:

  • 类型:字符串
  • 描述:支付数据,调用银联接口获取支付信息提取"wcPayData"字段

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{ 
    code:,     //字符串类型
    msg:,       //字符串类型;

}

示例代码

var aUnifyPay = api.require('UnifyPayPlugin');
aUnifyPay.payWithData({
    channel: 'aliPay',
    appPayRequest: '*****' 
}, function(ret, err) {
    alert(JSON.stringify(ret))
     
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

是否仍需要帮助? 请保持联络!
最后更新于 2026/01/22