预签约

更新时间:2025.01.09

商户调用该接口可获取预签约码(presign_token),预签约码对应用户一次的签约信息,之后用户可以从商户小程序跳转到微信签约小程序时使用该预签约码进行签约。预签约码仅有2小时有效期,超时将失效无法使用,需要重新调用本接口为用户申请新的预签约码。

接口说明

支持商户:【普通服务商】

请求方式:【POST】/v3/eduschoolpay/contracts/presign

请求域名:【主域名】https://api.mch.weixin.qq.com 使用该域名将访问就近的接入点

     【备域名】https://api2.mch.weixin.qq.com 使用该域名将访问异地的接入点 ,指引点击查看

请求参数

Header HTTP头参数

Authorization  必填 string

请参考签名认证生成认证信息


Accept  必填 string

请设置为application/json


Content-Type  必填 string

请设置为application/json


Wechatpay-Serial  必填 string

【微信支付公钥ID】或【微信支付平台证书序列号】请求参数中的敏感字段,需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号平台证书加密敏感信息指引


body 包体参数

appid  必填 string(32)

【商户AppID】微信公众平台(mp.weixin.qq.com)为商户分配的公众账号ID,与商户号存在绑定关系。如果是服务商模式接入则为服务商商户号绑定的AppID;如果是直连商户模式接入则为直连商户号绑定的AppID。


openid  必填 string(128)

【商户AppID下的用户标识】用户在商户AppID下的唯一标识。如果是服务商模式接入则为服务商商户appid下的唯一标识;如果是直连商户模式接入则为直连商户AppID下的唯一标识。


plan_id  必填 string(32)

【签约模板号】签约模板的唯一标识。商户接入校园轻松付并申请签约模板后由微信支付生成。


user_id  必填 string(32)

【用户账号】应用场景的用户账号,如学生的学号,字段将在校园轻松付签约小程序的签约首页展示。只能由数字和大小写字母构成,最大32个字符。


school_id  必填 string(32)

【学校编号】当前预签约所属学校在校园轻松付产品中的编号。服务商在商户平台接入校园轻松付后,可以申请录入学校信息,申请成功后由微信支付生成学校编号。
微信支付会校验签约模板plan_id是否属于该学校,校验不匹配将拒绝进行预签约。


out_contract_code  必填 string(64)

【外部签约号】由商户自行生成的签约号,要求64个字符内,只能是数字、大小写字母和_-,且在同一签约模板下唯一。


contract_mode  选填 string

【签约模式】不同的签约模式扣款时轮卡的方式不一样。指定卡和优先卡模式需要填写实名信息和签约银行卡字段。

可选取值:

  • DEFAULT: 轮询银行卡或零钱扣款。

  • LIMIT_BANK_CARD: 扣款时只能从该卡扣款,无法从其他卡或零钱扣款。

  • PRIORITY_BANK_CARD: 扣款时优先从该卡扣款,扣款失败可轮询其他银行卡或零钱扣款。


downgrade_default_contract  选填 boolean

【允许降级为普通签约模式】若因为【手机号与银行预留手机不符】、【银行没有绑定该手机号】导致绑卡失败,是否允许降级为默认签约模式


identity  选填 object

【实名信息】签约银行卡开卡用户的实名信息

属性

bank_card  选填 object

【签约银行卡】签约银行卡信息

属性

请求示例

POST

1curl -X POST \
2  https://api.mch.weixin.qq.com/v3/eduschoolpay/contracts/presign \
3  -H "Authorization: WECHATPAY2-SHA256-RSA2048 mchid=\"1900000001\",..." \
4  -H "Accept: application/json" \
5  -H "Wechatpay-Serial: 5157F09EFDC096DE15EBE81A47057A7232F1B8E1"  \
6  -H "Content-Type: application/json" \
7  -d '{
8    "appid" : "wx8888888888888888",
9    "openid" : "oUpF8uMuAJOM2pxb1Q",
10    "plan_id" : "101164396123311331",
11    "user_id" : "20200330tony",
12    "school_id" : "18260256813396",
13    "out_contract_code" : "20190806125346",
14    "contract_mode" : "DEFAULT",
15    "downgrade_default_contract" : false,
16    "identity" : {
17      "real_name" : "6TqLAZvNZ4AXLNHLMbjA1yKq2k5krHM09m3tCuR",
18      "credential_type" : "IDENTITY_CARD",
19      "id_card_number" : "6TqLAZvNZ4AXLNHLMbjA1yKq2k5krHM09m3tCuR"
20    },
21    "bank_card" : {
22      "bank_card_no" : "6TqLAZvNZ4AXLNHLMbjA1yKq2k5krHM09m3tCuR",
23      "valid_thru" : "08/21",
24      "phone" : "j6PlFRRJ4nvGSbtDZzXbXScACvDSnIny67zk3BgT5uIbK4VfGmcjPBEk2mt5ASZ6UUHB4Gy0IZpbuanF9",
25      "bank_type" : "CMC"
26    }
27  }'
28

应答参数

200 OK

presign_token  必填 string(32)

【预签约码】预签约码,预签约成功时由微信支付生成,商户小程序跳转微信官方小程序时需带此参数。

应答示例

200 OK

1{
2  "presign_token" : "0044de6c799739c2e8534b"
3}
4

 

错误码

公共错误码

状态码

错误码

描述

解决方案

400

PARAM_ERROR

参数错误

请根据错误提示正确传入参数

400

INVALID_REQUEST

HTTP 请求不符合微信支付 APIv3 接口规则

请参阅 接口规则

401

SIGN_ERROR

验证不通过

请参阅 签名常见问题

500

SYSTEM_ERROR

系统异常,请稍后重试

请稍后重试

业务错误码

状态码

错误码

描述

解决方案

400

ALREADY_EXISTS

已存在使用该out_contract_no的合约

已使用该 out_contract_no 签约成功。请检查是否存在 out_contract_no 重复使用的情况;如果为原参数幂等重试,说明签约已完成,请等待签约回调通知。

400

INVALID_REQUEST

不支持的商户

校园轻松付不支持当前商户访问,请确认商户已获得本产品权限

400

INVALID_REQUEST

商户号和公众号没有绑定关系

检查请求中的AppID与商户号(服务商模式下则为服务商商户号)是否匹配,然后重试

400

INVALID_REQUEST

用户信息有误,请检查OpenID

使用正确的微信OpenID重试

400

INVALID_REQUEST

签约模板非法,请检查plan_id

请确认plan_id是由当前商户在微信校园轻松付产品中申请获得的签约模板ID,且已经由微信支付审核通过生效。

400

INVALID_REQUEST

签约模板ID或学校ID有误,请检查plan_id与school_id

请确认school_id是由当前商户在微信校园轻松付产品中申请登记且已经审核通过;同时请确认plan_id所对应的学校是school_id

429

RATELIMIT_EXCEEDED

达到调用速率限制

接口调用频率过快,请降低请求频率

500

SYSTEM_ERROR

出现内部服务器错误

5开头的错误码均为系统错误,请使用相同的参数稍后重试

 

 

反馈
咨询
目录
置顶