扣款

更新时间:2024.11.18

使用签约协议号发起扣款,若出现超时或返回订单状态不明确时,商户均可调用商户订单号查单接口查询订单扣款结果。

接口说明

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

请求方式:【POST】/v3/eduschoolpay/transactions

请求域名:【主域名】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


body 包体参数

appid  必填 string(32)

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


sub_mchid  选填 string(32)

【子商户号】微信支付分配的商户号,服务商商户号与子商户号存在父子关系。如果是服务商模式接入则必填;如果是直连商户模式接入则不用填写。


sub_appid  选填 string(32)

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


description  必填 string(127)

【商品描述】商品描述,格式为:学校-消费地点-销售商品。最长127个字符


attach  选填 string(127)

【商户数据】附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据,最长127个字符


out_trade_no  必填 string(64)

【商户订单号】商户自行生成的订单号,要求64个字符内,只能是数字、大小写字母和_-,且在同一个商户号下唯一。重新发起一笔支付要使用原订单号,避免重复支付。


goods_tag  选填 string(32)

【订单优惠标记】用于代金券核销或立减优惠功能,需携带与代金券或立减优惠中相同的goods_tag方可核销优惠。


contract_id  必填 string(32)

【签约协议号】微信用户在校园轻松付下的合约的唯一标识,用户在校园轻松付小程序完成签约后,由微信支付生成。


user_id  必填 string(32)

【用户账号】进行当前消费的学生的用户账号,如学生学号。必须与签署当前合约(由参数contract_id标识)时使用的用户账号一致。
微信支付将对该参数与合约中的user_id进行对比验证,二者不一致时拒绝受理扣款。


amount  必填 ReqAmountInfo

【订单金额】订单金额信息

属性

scene_info  必填 object

【场景信息】本次交易所涉及的具体场景信息

属性

device_info  选填 object

【设备信息】设备信息

属性

settle_info  选填 object

【分账结算信息】分账结算相关信息

属性

请求示例

POST

1curl -X POST \
2  https://api.mch.weixin.qq.com/v3/eduschoolpay/transactions \
3  -H "Authorization: WECHATPAY2-SHA256-RSA2048 mchid=\"1900000001\",..." \
4  -H "Accept: application/json" \
5  -H "Content-Type: application/json" \
6  -d '{
7    "appid" : "wx8888888888888888",
8    "sub_mchid" : "1900000109",
9    "sub_appid" : "wx8888888888888888",
10    "description" : "中山大学-第二食堂-海鲜炒饭",
11    "attach" : "自定义数据",
12    "out_trade_no" : "121775250124070332",
13    "goods_tag" : "test",
14    "contract_id" : "2045011120563805041758214605",
15    "user_id" : "20200330tony",
16    "amount" : {
17      "total" : 888,
18      "currency" : "CNY"
19    },
20    "scene_info" : {
21      "start_time" : "2017-08-26T09:43:39+08:00",
22      "school_id" : "18260256813396",
23      "scene_type" : "CANTEEN"
24    },
25    "device_info" : {
26      "device_id" : "12343232",
27      "device_ip" : "123.12.12.123"
28    },
29    "settle_info" : {
30      "profit_sharing" : false
31    }
32  }'
33

应答参数

200 OK

mchid  必填 string(32)

【商户号】微信支付分配的商户号。如果是服务商模式接入则为服务商商户号;如果是直连商户模式接入则为直连商户号。


appid  必填 string(32)

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


sub_mchid  选填 string(32)

【子商户号】微信支付分配的商户号,服务商商户号与子商户号存在父子关系。如果是服务商模式接入则有值;如果是直连商户模式接入则该字段为空。


sub_appid  选填 string(32)

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


out_trade_no  必填 string(64)

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


transaction_id  选填 string(32)

【微信支付订单号】微信支付订单号


trade_type  选填 string(16)

【交易类型】交易类型,取值如下:JSAPI,NATIVE,APP,MICROPAY,MWEB,FACEPAY


trade_state  必填 string(32)

【交易状态】本支付订单的状态,可选枚举值:SUCCESS—支付成功;REFUND—转入退款;ACCEPTED—已受理,未支付;PAY_FAIL-支付失败(其他原因,如银行返回失败);PAY_BACK-用户归还欠款(仅当本单由微信支付预先垫付资金,即bank_type=BPA时有可能发生)


trade_state_desc  选填 string(256)

【交易状态描述】对当前订单状态的描述和下一步操作的指引


bank_type  选填 string(16)

【付款银行】银行类型,采用字符串类型的银行标识,值列表详见银行类型。特别地,使用BPA表示本笔订单由微信支付预先垫付资金。


attach  选填 string(127)

【商户数据】附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据


success_time  选填 string(32)

【支付完成时间】支付订单已成功才会返回,使用rfc3339所定义的格式,即为YYYY-MM-DDThh:mm:ss+TIMEZONE


payer  选填 object

【支付者】支付者

属性

amount  必填 RespAmountlnfo

【订单金额】订单金额信息

属性

device_info  必填 object

【设备信息】设备信息

属性

promotion_detail  选填 array[object]

【优惠详情】优惠详情

属性

应答示例

200 OK

1{
2  "mchid" : "1230000109",
3  "appid" : "wx8888888888888888",
4  "sub_mchid" : "1900000109",
5  "sub_appid" : "wx8888888888888888",
6  "out_trade_no" : "201407033233368018",
7  "transaction_id" : "25012014070332333018",
8  "trade_type" : "MICROPAY",
9  "trade_state" : "SUCCESS",
10  "trade_state_desc" : "支付成功",
11  "bank_type" : "ICBC_DEBIT",
12  "attach" : "自定义数据",
13  "success_time" : "2020-03-26T10:43:39+08:00",
14  "payer" : {
15    "openid" : "oUpF8uMuAJOM2pxb1Q",
16    "sub_openid" : "oUpF8uMuAJOM2pxb1Q"
17  },
18  "amount" : {
19    "total" : 888,
20    "payer_total" : 888,
21    "discount_total" : 100,
22    "currency" : "CNY"
23  },
24  "device_info" : {
25    "device_id" : "12343232",
26    "device_ip" : "123.12.12.123"
27  },
28  "promotion_detail" : [
29    {
30      "coupon_id" : "109519",
31      "name" : "单品惠-6",
32      "scope" : "GLOBAL",
33      "type" : "DISCOUNT",
34      "amount" : 5,
35      "stock_id" : "931386",
36      "wechatpay_contribute" : 0,
37      "merchant_contribute" : 0,
38      "other_contribute" : 0
39    }
40  ]
41}
42

 

错误码

公共错误码

状态码

错误码

描述

解决方案

400

PARAM_ERROR

参数错误

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

400

INVALID_REQUEST

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

请参阅 接口规则

401

SIGN_ERROR

验证不通过

请参阅 签名常见问题

500

SYSTEM_ERROR

系统异常,请稍后重试

请稍后重试

业务错误码

状态码

错误码

描述

解决方案

400

ALREADY_EXISTS

out_trade_no冲突

out_trade_no冲突,不同的订单请保证 out_trade_no 唯一

400

INVALID_REQUEST

非法商户,服务商模式下请确认子商户正确

校园轻松付不支持当前商户访问,请确认商户已获得本产品权限。服务商模式下请同时确认子商户无误且已获得本产品权限

400

INVALID_REQUEST

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

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

400

INVALID_REQUEST

商户号、子商户号以及子公众号没有绑定关系

检查请求中的sub_appid,sub_mchid与服务商商户号是否匹配,然后重试

400

INVALID_REQUEST

订单状态异常

风控失败或者用户账户冻结。

400

INVALID_REQUEST

模板与学校不匹配

contract_id标识的合约的签约模板与school_id不匹配,请填写正确的 school_id 或 contract_id

400

INVALID_REQUEST

学生账户与合约不匹配

contract_id标识的合约与user_id不匹配,请填写正确的user_id或contract_id

400

INVALID_REQUEST

签约无效或已解除

contract_id无效或合约已解除或微信用户已关闭校园轻松付产品授权,请引导用户重新签约,否则无法扣款

400

INVALID_REQUEST

商户没有大额扣费场景权限

请检查确保发起扣款的订单额度不超过校园轻松付支持的单笔及单日扣款额度,然后重试

400

INVALID_REQUEST

单日扣款总金额超过限额

请隔天重新发起扣款或使用其他方式进行支付

400

INVALID_REQUEST

商户订单号重复,请查询订单确定交易状态。确定交易失败后换订单号重试

请更换商户单号重新发起扣款

400

INVALID_REQUEST

交易存在风险,不能发起扣款

商户号被风控拦截或者用户的微信号被紧急冻结,可咨询微信客服了解具体原因

403

NO_AUTH

用户禁用当前商户扣款权限

微信用户禁用了当前子商户的扣款权限,请引导用户在微信校园轻松付小程序中重新启用该商户的扣款权限,然后原参数重试;否则无法扣款。

403

NOT_ENOUGH

用户欠款过多,暂停交易

用户在校园轻松付产品中欠款过多,请引导用户归还垫资欠款。归还欠款后稍等片刻再原参数重试。

429

RATELIMIT_EXCEEDED

达到调用速率限制

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

500

SYSTEM_ERROR

用户数据异常,请稍后重试

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

500

SYSTEM_ERROR

出现内部服务器错误

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

 

 

反馈
咨询
目录
置顶