最新更新时间:2020.04.17 版本说明
商户可以通过请求此接口唤起小程序委托代扣的签约页面
• 用户在微信的页面中完成代扣签约后,微信会同时将签约信息通过异步通知的方式通知给商户后台。如果用户放弃签约或签约失败则不通知。
商户流程介绍:
1.用户从商户小程序发起签约请求 (商户需确认委托代扣权限已开通,模板已审批通过,小程序APPID与商户号已绑定)。
2.商户将签约请求参数按照规则拼接之后,通过小程序跳转,向签约小程序发起签约请求。
3.用户在微信签约小程序选择支付方式完成签约。
4.微信将签约结果返回给商户。
适用对象:直连商户
请求URL: wx.navigateToMiniProgram(OBJECT)接口
接口兼容: iOS 微信客户端 6.5.9 版本开始支持,Android 客户端即将在 6.5.10 版本开始支持
参数名 | 变量 | 类型[长度限制] | 必填 | 描述 |
---|---|---|---|---|
微信签约小程序appid | appId | string[1,32] | 是 | 固定值 :wxbd687630cd02ce1d 请在小程序配置文件app.json的配置项navigateToMiniProgramAppIdList中增加此appid 示例值:wxbd687630cd02ce1d |
+场景信息传递给小程序的数据 | extraData | object | 是 | 签约的请求参数,详情见extraData字段详细说明。 |
打开小程序的页面路径 | path | string[1,64] | 是 | 固定值:pages/index/index 示例值:pages/index/index |
接口调用成功的回调函数 | success | Function | 是 | - |
接口调用失败的回调函数 | fail | Function | 是 | - |
接口调用结束的回调函数 | complete | Function | 是 | 调用成功、失败都会执行 |
wx.navigateToMiniProgram({
appId:'wxbd687630cd02ce1d',
path:'pages/index/index',
extraData:{
appid:'wx426a3015555a46be',
contract_code:'122',
contract_display_account:'张三',
mch_id:'1223816102',
notify_url:'https://www.qq.com/test/papay',
plan_id:'106',
request_serial:123,
timestamp:1414488825,
sign:'FF1A406564EE701064450CA2149E2514'
},
success(res) {
// 成功跳转到签约小程序
},
fail(res) {
// 未成功跳转到签约小程序
}
})
用户签约完成之后,会跳转回商户小程序,可通过onShow(OBJECT)所携带的参数判断判断用户由签约小程序返回商户小程序,OBJECT返回参数请查看小程序开发文档onShow参数说明
参数名 | 变量 | 类型[长度限制] | 必填 | 描述 |
---|---|---|---|---|
返回码 | return_code | string[1,16] | 是 | 客户端小程序收到的签约结果 SUCCESS:签约成功 FAIL:签约失败 示例值:SUCCESS |
错误信息 | return_msg | string[1,128] | 是 | 签约失败的错误信息 示例值: |
委托代扣协议id | contract_id | string[1,32] | 是 | 签约成功后微信返回的委托代扣协议id 示例值:201710180325670965 |
注意:如果用户正常点击微信签约页的确定按钮返回商户小程序,那么会返回extraData ; 如果用户点击浏览器左上角的返回,则不返回extraData
App({
onShow(res) {
if (res.scene === 1038) { // 场景值1038:从被打开的小程序返回
const { appId, extraData } = res.referrerInfo
if (appId == 'wxbd687630cd02ce1d') { // appId为wxbd687630cd02ce1d:从签约小程序跳转回来
if (typeof extraData == 'undefined'){
// TODO
// 客户端小程序不确定签约结果,需要向商户侧后台请求确定签约结果
return;
}
if(extraData.return_code == 'SUCCESS'){
// TODO
// 客户端小程序签约成功,需要向商户侧后台请求确认签约结果
var contract_id = extraData.contract_id
return;
} else {
// TODO
// 签约失败
return;
}
}
}
}
})