银联近期推出“云闪付”微信小程序(以下简称“云微小程序”),支持商户微信小程序跳转至“云微小程序”,实现用户在“云微小程序”内基于云闪付账户完成支付。现我司全民付移动支付小程序支付已支持该业务模式(间联),商户只需对接我司小程序支付“云闪付下单”接口即可接入相关能力。
(1)用户在商户微信小程序前端页面购买商品或服务,选择“云闪付支付”选项。
(2)商户后台生成订单,调用银商小程序支付“云闪付下单”接口,发送带商户微信小程序appId信息的请求至银商。
(3)银商同步返回该订单的交易流水号、云微小程序appId和path等信息至商户后台,商户后台向商户小程序前端传递。
(4)商户小程序前端通过微信wx.navigateToMiniProgram(小程序接口)拉起云微小程序,调用时按照微信接口规范填入云微小程序appId和path。
(5)用户在云微小程序前端输入云闪付账户支付相关要素,完成付款(必要时如首次登陆情况需先完成用户关联登录/注册、实名认证、绑卡、设置支付密码等操作,若前期已完成则跳过)。
(6)支付完成,云微小程序前端返回支付结果,向用户展示。
(7)用户确认支付结果后,点击“完成”,云微小程序跳转回商户小程序。
(8)交易成功后,支付结果将异步通知商户后台。
类同云闪付小程序支付接入,商户同样对接我司【小程序支付】产品(详细接口文档可前往http://dhjt.chinaums.com/online-pay-doc/html/mini/pay.html),接口内的“subAppId(微信分配的子商户公众账号ID)”字段上送商户微信小程序appId,“tradeType(交易类型)”上送“UP_WX_MINI”,其他字段的上送逻辑同云闪付小程序支付。 对于云微小程序交易,银商将在下单应答报文“miniPayRequest”字段内的cqpMpAppId、cqpMpPath信息中返回云微小程序appId和path,商户小程序前端通过wx.navigateToMiniProgram(小程序接口)拉起云微小程序。
参数名称 | 类型 | 描述 |
---|---|---|
subAppId | string | 微信子商户appId 如果使用云闪付云微小程序支付时需要上送商户微信小程序id |
tradeType | string | 交易类型 如果使用云闪付云微小程序支付时需要上送UP_WX_MINI |
invokeScene | string | 交易发起场景 使用云闪付云微小程序支付时必传,如果交易从商户微信小程序内发起需要上送03,如果交易从商户微信公众号内发起需要上送04 |
商户后台发送小程序支付云闪付下单请求至银商系统后,银商将在应答报文“miniPayRequest”字段内同步返回对应的交易流水号(tn)、云微小程序appId(cqpMpAppId)和path(cqpMpPath)。
商户小程序使用云微小程序appId、path调用微信小程序跳转接口(wx.navigateToMiniProgram),从商户小程序跳转至云微小程序。
用户支付完成后,云微小程序调用微信小程序回调接口(wx.navigateBackMiniProgram),从云微小程序回跳商户小程序(不带参数,支付结果以异步通知或订单查询结果为准)。
上述使用到的两个微信小程序接口参考微信开放文档:https://developers.weixin.qq.com/miniprogram/dev/api/navigate/wx.navigateToMiniProgram.html
示例代码:
wx.navigateToMiniProgram({ appId: '', path: 'page/index/index?id=123', extraData: { foo: 'bar' }, envVersion: 'develop', success(res) { // 打开成功 } })
商户小程序调起云微小程序后,可以使用微信开放能力(wx.onAppShow)监听自身是否切换到前台,并根据场景值是否为
1038(从另一个小程序返回),用于判断是否从云微小程序返回。判断为从云微小程序返回后,通过后台查询接口判断订单状态,以及实现相应的用户交互(如向用户展示业务订单状态等)。具体接口规范可参考微信开放文档:
https://developers.weixin.qq.com/miniprogram/dev/api/base/app/app-event/wx.onAppShow.html
建议判断为从云微小程序返回后,再调用
wx.offAppShow移除监听切前台事件,以免用户手动将商户小程序切后台再打开导致误判。