4.1 微信小程序收银台支付调用说明


注:示例仅展示部分字段,具体字段自行根据业务需求填写(未列字段,若需要上送也是原样上送“3.10 小程序收银台支付参数”响应字段)

 let params = {

cusid: “7.22 小程序收银台支付参数”响应的“cusid”,

appid: “7.22 小程序收银台支付参数”响应的“appid”,

innerappid“7.22 小程序收银台支付参数”响应的“innerappid,

orgid: “7.22 小程序收银台支付参数”响应的“orgid”,

version: “7.22 小程序收银台支付参数”响应的“version”,

trxamt: “7.22 小程序收银台支付参数”响应的“trxamt”,

reqsn: “7.22 小程序收银台支付参数”响应的“reqsn”,

notify_url:“7.22 小程序收银台支付参数”响应的“notify_url”,

body: “7.22 小程序收银台支付参数”响应的“body”,

remark: “7.22 小程序收银台支付参数”响应的“remark”,

validtime: “7.22 小程序收银台支付参数”响应的“validtime”,

limit_pay: “7.22 小程序收银台支付参数”响应的“limit_pay”,

randomstr: “7.22 小程序收银台支付参数”响应的“randomstr”,

paytype: “7.22 小程序收银台支付参数”响应的“paytype”,

signtype: “7.22 小程序收银台支付参数”响应的“signtype”,

sign: “7.22 小程序收银台支付参数”响应的“sign”,

}

 

const version = wx.getAppBaseInfo().SDKVersion

if (compareVersion(version, '2.26.2') >= 0) {

// openEmbeddedMiniProgram,需要小程序基础库版本不低于 2.26.2

wx.openEmbeddedMiniProgram({

appId: 'wxef277996acc166c3',

extraData: param

})

} else {

wx.navigateToMiniProgram({

appId: 'wxef277996acc166c3',

extraData: param

})

}

上述方法可以跳转到收银台小程序,其中openEmbeddedMiniProgram可以打开半屏小程序,注意调用该方法需要申请(详见4.1.1),且该方法仅支持小程序基础库2.26.2以上(详见4.1.2(1)),如果调用该方法需要进行版本判断兼容,上述方法compareVersion详见4.1.2(4),若无半屏打开需求,建议直接调用navigateToMiniProgram打开。

在收银台中完成支付后,会回调支付结果,具体结果可以在小程序生命周期Page.onShow中通过以下方式获取:

onShow: function () {

let options = wx.getEnterOptionsSync();

if (options.scene == '1038' &&

options.referrerInfo.appId=='wxef277996acc166c3') {

// 代表从收银台小程序返回

let extraData = options.referrerInfo.extraData;

if (!extraData) {

// "当前通过物理按键返回,未接收到返参,建议自行查询交易结果";

} else {

if (extraData.code == 'success') {

// "支付成功";

} else if (extraData.code == 'cancel') {

// "支付已取消";

} else {

// "支付失败:" + extraData.errmsg;

}

}

}

},

特殊说明:

一般情况下wx.getEnterOptionsSync()中获取的extraData为收银台小程序返回的支付结果,但是当通过物理返回键或者通过半屏小程序右上角关闭退出(即未通过收银台小程序内按钮退出),extraData内容会为空,调用方小程序会无法获得支付结果,该情况为微信小程序特性,小程序代码无法处理。

如遇到该情况,通过判断场景值为1038且来源小程序为收银台小程序wxef277996acc166c3(上述代码加粗部分),即可认定为收银台返回,当前若extraData为空,则需要自行查询订单支付结果

APP调起收银台小程序:
通联小程序收银台原始 ID:gh_e64a1a89a0ad

Android开发示例:

https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Launching_a_Mini_Program/Android_Development_example.html

iOS开发示例:

https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Launching_a_Mini_Program/iOS_Development_example.html

调起方式如上文档,具体字段通过query方式传入,该方式同样适用于小程序打开,此处只展示部分字段,具体字段自行根据业务需求填写:

path=pages/orderDetail/orderDetail?cusid=平台分配的商户号&appid=平台分配的appid&orgid=平台分配的机构号&version=12&trxamt=1&reqsn=商户唯一订单号&notify_url=服务器异步通知页面路径&body=标题&remark=备注&validtime=订单有效时间&limit_pay=no_credit&randomstr=随机字符串&paytype=W06&sign=签名

Android小程序回调APP注意事项
WXEntryActivity类文件,需要放置在微信配置应用时填写包名下的wxapi包中,比如当前APP配置包名为“com.allinpaysdk”,则WXEntryActivity需要放在“com.allinpaysdk.wxapi”包中,且该类只能命名为WXEntryActivity,WXEntryActivity以上规范为微信要求,不能修改,否则影响小程序回调APP

特殊说明:

上述文档有说明小程序回调APP说明,但是该回调仅限于在小程序内点击按钮返回APP时有效,但是当通过物理返回键返回APP、任务列表切换回APP、通过半屏小程序右上角关闭退出(即未通过收银台小程序内按钮退出),该回调并不会触发,该情况为微信小程序特性,小程序代码无法处理。

如遇到该情况,建议在APP跳转小程序时新建变量保存跳转标识,在APP内监听到重新打开APP且标志存在,则需要自行查询订单支付结果


liping2 2024年10月10日 16:24 收藏文档