预签约
更新时间: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
应答参数
|
presign_token 必填 string(32)
【预签约码】预签约码,预签约成功时由微信支付生成,商户小程序跳转微信官方小程序时需带此参数。
应答示例
200 OK
错误码
公共错误码
状态码 | 错误码 | 描述 | 解决方案 |
---|---|---|---|
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开头的错误码均为系统错误,请使用相同的参数稍后重试 |