更新时间:2024-11-21 15:10:21
[TOC]
步骤一: 用户在商户小程序中点击签约,商户后台系统查询用户是否已经签约,若未签约,调用1.1《代扣预签约》接口获取预签约码。
步骤二: 商户小程序(带预签约码参数)跳转到《小程序调起校园轻松付-签约服务,点击查看具体步骤》完成授权和签约
步骤三: 签约成功后,微信支付会异步将签约信息通知给商户,同时商户可以主动(通过《协议号查询签约》》接口)查询用户签约信息
步骤四: 签约后商户通过《扣款受理接口》接口发起扣款请求,订单受理之后直接返回,商户可以根据微信支付回调确定订单状态。或主动(通过《微信订单号》和《商户订单号》)查询订单状态;
注意事项:根据校园轻松付风控规则,当用户在校园轻松付产品中欠款超过一定限制后,会处于无法扣款的状态,直到用户归还欠款。
商户调用该接口可获取预签约码(presign_token),预签约码对应用户一次的签约信息,之后用户可以从商户小程序跳转到微信签约小程序时使用该预签约码进行签约
注:预签约码仅有2小时有效期,超时将失效无法使用,需要重新调用本接口为用户申请新的预签约码。
URL:pay/schoolpay/presign
Method: POST
ContentType: application/json
前置条件: 联系运营人员申请签约模版号(plan_id),学校机构后
请求参数
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
pay_ver | String | 3 | Y | 版本号,当前版本110 |
pay_type | String | 3 | Y | 请求类型,010微信,当前只支持微信 |
trace_no | String | 32 | Y | 请求流水号 |
inst_no | String | 8 | Y | 机构号 |
openid | String | 32 | Y | 商户公众号appid下的用户标识 |
plan_id | String | 28 | Y | 模板id |
school_id | String | 28 | Y | 微信学校编号 |
contract_code | String | 32 | Y | 签约协议号,商户侧的签约协议号,由商户生成 |
contract_display_account | String | 32 | Y | 应用场景的用户账号,如学生的学号,字段将在校园轻松付签约小程序的签约首页展示。只能由数字和大小写字母构成,最大32个字符。示例:20200330tony |
user_name | String | 32 | Y | 用户姓名 |
user_mobile | String | 32 | Y | 用户手机号码 |
key_sign | String | 32 | Y | 签名字符串,非空字典序参数+令牌,UTF-8编码,32位md5加密转换 |
返回参数
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
return_code | String | 2 | Y | 业务响应码,01成功 02失败 |
return_msg | String | 128 | Y | 业务响应描述 |
key_sign | String | 32 | Y | 签名字符串,非空字典序参数+令牌,UTF-8编码,32位md5加密转换 |
result_code | String | 2 | N | 业务处理响应码,01成功 02失败 |
presign_token | String | 32 | N | 预签约码,预签约成功时由微信支付生成,商户小程序跳转微信官方小程序时需带此参数。点击查看具体步骤 |
Method: POST
请求参数
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
return_code | String | 2 | Y | 业务响应码,01成功 02失败 |
return_msg | String | 128 | Y | 业务响应描述 |
result_code | String | 2 | Y | 业务处理响应码,01成功 02失败 |
key_sign | String | 32 | Y | 签名字符串,非空字典序参数+令牌,UTF-8编码,32位md5加密转换 |
inst_no | String | 8 | Y | 机构号 |
plan_id | String | 28 | Y | 模板id |
contract_code | String | 32 | Y | 签约协议号,商户侧的签约协议号,由商户生成 |
openid | String | 32 | Y | 用户标识,Appid下,用户的唯一标识 |
change_type | String | 32 | Y | 变更类型ADD--签约 DELETE--解约,商户可通过该字段判断是签约回调还是解约回调 |
contract_id | String | 32 | Y | 微信用户在校园轻松付下的合约的唯一标识,用户在校园轻松付小程序完成签约后,由微信支付生成。 |
contract_time | String | 19 | N | 签约时间,示例:2016-07-01 10:00:00 |
返回参数
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
return_code | String | 2 | Y | 业务响应码,01成功 02失败 |
return_msg | String | 128 | Y | 返回信息提示,“签名失败”,“参数格式校验错误"等 |
查询签约关系接口提供单笔签约关系查询
当前支持二种模式的查询:
查询方式一:使用微信返回的委托代扣协议contract_id进行查询
查询方式二:plan_id+contract_code模式:传入模板id和委托代扣协议号进行查询
URL:pay/schoolpay/querycontract
Method: POST
ContentType: application/json
请求参数
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
pay_ver | String | 3 | Y | 版本号,当前版本110 |
pay_type | String | 3 | Y | 请求类型,010微信,020 支付宝,当前只支持微信 |
trace_no | String | 32 | Y | 请求流水号 |
inst_no | String | 8 | Y | 机构号 |
plan_id | String | 28 | N | 模板id |
contract_code | String | 32 | N | 签约协议号,商户侧的签约协议号,由商户生成 |
contract_id | String | 32 | N | 委托代扣协议id,签约成功后,微信返回的委托代扣协议id |
key_sign | String | 32 | Y | 签名字符串,非空字典序参数+令牌,UTF-8编码,32位md5加密转换 |
返回参数
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
return_code | String | 2 | Y | 业务响应码,01成功 02失败 |
return_msg | String | 128 | Y | 业务响应描述 |
result_code | String | 2 | Y | 业务处理响应码,01成功 02失败 |
key_sign | String | 32 | Y | 签名字符串,非空字典序参数+令牌,UTF-8编码,32位md5加密转换 |
contract_id | String | 32 | Y | 委托代扣协议id,签约成功后,微信返回的委托代扣协议id |
plan_id | String | 28 | Y | 模板id |
contract_code | String | 32 | Y | 签约协议号,商户侧的签约协议号,由商户生成 |
contract_display_account | String | 40 | Y | 用户账户展示名称,签约用户的名称,用于页面展示 |
contract_state | String | 1 | Y | 协议状态,0-已签约 1-未签约 |
contract_signed_time | String | 19 | Y | 协议签署时间 yyyy-MM-dd HH:mm:ss |
appid | String | 32 | N | 微信公众号appid,与商户号存在绑定关系。 如果是服务商模式接入则为服务商商户号绑定的appid;如果是直连商户模式接入则为直连商户号绑定的appid。 |
openid | String | 32 | Y | 用户标识,Appid下,用户的唯一标识 |
商户通过调用该接口可主动解除与用户的签约关系。
目前商户侧支持两种模式的解约:
1)contract_id模式:使用委托代扣协议id完成解约
2)plan_id+contract_code模式:使用模板id和委托代扣协议号完成解约
URL:pay/schoolpay/terminate
Method: POST
ContentType: application/json
请求参数
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
pay_ver | String | 3 | Y | 版本号,当前版本110 |
pay_type | String | 3 | Y | 请求类型,010微信,020 支付宝,当前只支持微信 |
trace_no | String | 32 | Y | 请求流水号 |
inst_no | String | 8 | Y | 机构号 |
plan_id | String | 28 | N | 模板id |
contract_code | String | 32 | N | 签约协议号,商户侧的签约协议号,由商户生成 |
contract_id | String | 32 | N | 委托代扣协议id,签约成功后,微信返回的委托代扣协议id |
key_sign | String | 32 | Y | 签名字符串,非空字典序参数+令牌,UTF-8编码,32位md5加密转换 |
返回参数
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
return_code | String | 2 | Y | 业务响应码,01成功 02失败 |
return_msg | String | 128 | Y | 业务响应描述 |
result_code | String | 2 | Y | 业务处理响应码,01成功 02失败 |
key_sign | String | 32 | Y | 签名字符串,非空字典序参数+令牌,UTF-8编码,32位md5加密转换 |
商户通过调用该接口可主动查询微信用户的欠款状态。
当前支持二种模式的查询:
查询方式一:使用微信返回的委托代扣协议contract_id进行查询
查询方式二:plan_id+contract_code模式:传入模板id和委托代扣协议号进行查询
URL:pay/schoolpay/querydebt
Method: POST
ContentType: application/json
请求参数
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
pay_ver | String | 3 | Y | 版本号,当前版本110 |
pay_type | String | 3 | Y | 请求类型,010微信,020 支付宝,当前只支持微信 |
trace_no | String | 32 | Y | 请求流水号 |
inst_no | String | 8 | Y | 机构号 |
plan_id | String | 28 | N | 模板id |
contract_code | String | 32 | N | 签约协议号,商户侧的签约协议号,由商户生成 |
contract_id | String | 32 | N | 委托代扣协议id,签约成功后,微信返回的委托代扣协议id |
key_sign | String | 32 | Y | 签名字符串,非空字典序参数+令牌,UTF-8编码,32位md5加密转换 |
返回参数
参数名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|
return_code | String | 2 | Y | 业务响应码,01成功 02失败 |
return_msg | String | 128 | Y | 业务响应描述 |
result_code | String | 2 | Y | 业务处理响应码,01成功 02失败 |
key_sign | String | 32 | Y | 签名字符串,非空字典序参数+令牌,UTF-8编码,32位md5加密转换 |
contract_id | String | 32 | Y | 委托代扣协议id,签约成功后,微信返回的委托代扣协议id |
plan_id | String | 28 | Y | 模板id |
contract_code | String | 32 | Y | 签约协议号,商户侧的签约协议号,由商户生成 |
user_state | String | 1 | Y | 用户状态,NORMAL:正常,允许扣款 FORBIDDEN:禁止扣款 |
debt_status | String | 1 | Y | 微信垫资状态 0 正常 1 垫资欠款 |
debt_count | String | 1 | Y | 微信欠款笔数 |
update_time | String | 40 | Y | 用户欠款状态更新时间 |