小程序调起签约api

更新时间:2024.11.14

应用场景

商户可以通过请求此接口唤起小程序委托代扣的签约页面,页面样例见委托代扣模式

用户在微信的页面中完成代扣签约后,微信会同时将签约信息通过异步通知的方式通知给商户后台。如果用户放弃签约或签约失败则不通知。

商户流程介绍

1.用户从商户小程序发起签约请求 (商户需确认委托代扣权限已开通,模板已审批通过,小程序APPID与商户号已绑定)

2.商户将签约请求参数按照规则拼接之后,通过小程序跳转,向签约小程序发起签约请求

3.用户在微信签约小程序选择支付方式完成签约

4.微信将签约结果返回给商户

接口调用请求说明

接口

wx.navigateToMiniProgram(OBJECT)接口

说明

iOS 微信客户端 6.5.9 版本开始支持,Android 客户端即将在 6.5.10 版本开始支持

OBJECT参数说明:

字段含义

变量名

必填

示例值

类型

描述

微信签约小程序appid

appId

wxbd687630cd02ce1d

String

固定值
wxbd687630cd02ce1d

请在小程序配置文件app.json的配置项navigateToMiniProgramAppIdList中增加此appid

场景信息传递给小程序的数据

extraData

{"appid":"wx0317c726bd1c1111","mch_id":"1900000000","notify_url":"https://www.qq.com/a.php","contract_code":"2017121216136aa","contract_display_account":"张三","plan_id":"72803","request_serial":"1000","timestamp":"1513065696","sign":"63EE946A87EE1C8F6C12C1DB085C8B7E"}

object

签约的请求参数,详情见extraData字段详细说明

场景信息传递给小程序的数据

打开小程序的页面路径

path

pages/index/index

string

固定值:pages/index/index

接口调用成功的回调函数

success

 

Function

 

接口调用失败的回调函数

fail

 

Function

 

接口调用结束的回调函数

complete

 

Function

调用成功、失败都会执行

示例:

1wx.navigateToMiniProgram({
2    appId:'wxbd687630cd02ce1d',
3    path:'pages/index/index',
4    extraData:{
5        appid:'wx426a3015555a46be',
6        contract_code:'122',
7        contract_display_account:'张三',
8        mch_id:'1223816102',
9        notify_url:'https://www.qq.com/test/papay',
10        plan_id:'106',
11        request_serial:'123',
12        timestamp:1414488825,
13        sign:'FF1A406564EE701064450CA2149E2514'
14    },
15success(res) {
16    // 成功跳转到签约小程序
17},
18fail(res) {
19    // 未成功跳转到签约小程序
20}
21})

用户签约完成之后,会跳转回商户小程序,可通过onShow(OBJECT)所携带的参数判断判断用户由签约小程序返回商户小程序,OBJECT返回参数请查看小程序开发文档onShow参数说明

referrerInfo.extraData字段说明

返回码

变量名

必填

示例值

类型

描述

返回码

return_code

SUCCESS

String

客户端小程序收到的签约结果

SUCCESS:签约成功

FAIL:签约失败

错误信息

return_msg

 

String

签约失败的错误信息

委托代扣协议id

contract_id

201710180325670965

String

签约成功后微信返回的委托代扣协议id

注意:如果用户正常点击微信签约页的确定按钮返回商户小程序,那么会返回extraData ; 如果用户点击浏览器左上角的返回,则不返回extraData

 

示例:

1App({
2    onShow(res) {
3        if (res.scene === 1038) { // 场景值1038:从被打开的小程序返回
4            const { appId, extraData } = res.referrerInfo
5            if (appId == 'wxbd687630cd02ce1d') { // appId为wxbd687630cd02ce1d:从签约小程序跳转回来
6                if (typeof extraData == 'undefined'){
7                    // TODO
8                    // 客户端小程序不确定签约结果,需要向商户侧后台请求确定签约结果
9                    return;
10                }
11                if(extraData.return_code == 'SUCCESS'){
12                    // TODO
13                    // 客户端小程序签约成功,需要向商户侧后台请求确认签约结果
14                    var contract_id = extraData.contract_id
15                    return;
16                } else {
17                    // TODO
18                    // 签约失败
19                    return;
20                }
21            }
22        }
23    }
24})

 

更多技术问题
技术咨询
反馈
咨询
目录
置顶