应用场景微信支付根据商户指令,将用户消费金额扣除手续费后结算给指定商户,剩余金额原路退还给用户,并生成押金退款交易记录,给用户下发押金退还发起通知,并更改押金支付的交易记录。用户押金退还到账后,下发押金退还到账通知。若全部消费,则下发押金全部消费通知;
消费金额:扣费金额区间为(0,押金金额],∑消费金额 ≤ 押金金额 ;
接口规则请求Url
https://api.mch.weixin.qq.com/deposit/consume
是否需要证书
是, 详见证书使用
请求方式
post
签名方式
HMAC-SHA256
请求参数名称
变量名
必填
类型
示例值
描述
服务商应用ID
appid
是
String(32)
wx8888888888888888
服务商商户的APPID
商户号
mch_id
是
String(32)
1900000109
服务商商户的商户号
子商户应用ID
sub_appid
否
String(32)
wx8888888888888888
微信分配的子商户APPID,如需在支付完成后获取sub_openid则此参数必传。
子商户号
sub_mch_id
是
String(32)
1900000109
服务商通过进件后获得的特约商户号
微信订单号
transaction_id
二选一
String(32)
013467007045764
微信的订单号,优先使用
商户订单号
out_trade_no
String(32)
1217752501201407033233368018
商户系统内部的订单号,transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no
押金总金额
total_fee
是
int
888
订单总金额,单位为分,只能为整数,详见支付金额
消费金额
consume_fee
是
int
888
订单总金额,单位为分,只能为整数,详见支付金额
货币类型
fee_type
是
string(16)
CNY
符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型
随机字符串
nonce_str
是
string(32)
C380BEC2BFD727A4B6845133519F3AD6
随机字符串,不长于32位。推荐随机数生成算法
签名
sign
是
string(64)
C380BEC2BFD727A4B6845133519F3AD6C380BEC2BFD727A4B6845133519F3AD6
签名,详见签名生成算法
签名类型
sign_type
是
string(32)
HMAC-SHA256
签名类型,仅支持HMAC-SHA256
返回结果名称
变量名
必填
类型
示例值
描述
返回状态码
return_code
是
String(16)
SUCCESS
SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看trade_state来判断
返回信息
return_msg
否
String(128)
签名失败
返回信息,如非空,为错误原因签名失败参数格式校验错误
当return_code为SUCCESS的时候,还会包括以下字段:
名称
变量名
必填
类型
示例值
描述
服务商应用ID
appid
是
String(32)
wx8888888888888888
服务商商户的APPID
商户号
mch_id
是
String(32)
1900000109
服务商商户的商户号
子商户应用ID
sub_appid
否
String(32)
wx8888888888888888
微信分配的子商户APPID,如需在支付完成后获取sub_openid则此参数必传。
子商户号
sub_mch_id
是
String(32)
1900000109
服务商通过进件后获得的特约商户号
随机字符串
nonce_str
是
String(32)
5K8264ILTKCH16CQ2502SI8ZNMTM67VS
微信返回的随机字符串
签名
sign
是
string(64)
C380BEC2BFD727A4B6845133519F3AD6C380BEC2BFD727A4B6845133519F3AD6
签名,详见签名生成算法
业务结果
result_code
是
string(16)
SUCCESS
SUCCESS/FAIL
错误代码
err_code
否
string(32)
SYSTEMERROR
详细参见错误列表
错误代码描述
err_code_des
否
string(128)
系统错误
错误返回的信息描述
当return_code 和result_code都为SUCCESS时,还会包括以下字段:
名称
变量名
必填
类型
示例值
描述
微信订单号
transaction_id
是
String(32)
1217752501201407033233368018
微信订单号
商户订单号
out_trade_no
是
String(32)
1217752501201407033233368018
商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|*且在同一个商户号下唯一。详见商户订单号
押金总金额
total_fee
是
int
888
订单总金额,单位为分,只能为整数,详见支付金额
消费金额
consume_fee
是
int
888
订单总金额,单位为分,只能为整数,详见支付金额
货币类型
fee_type
否
String(16)
CNY
符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型
举例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15错误码列表名称
描述
原因
解决方案
PARAM_ERROR
参数错误
请求参数未按指引进行填写
请求参数错误,请重新检查再调用
SIGNERROR
签名错误
参数签名结果不正确
请检查签名参数和方法是否都符合签名算法要求
SYSTEMERROR
系统异常
系统异常
系统繁忙,请稍后使用相同参数再次调用API
SETTLEMENTERROR
押金解除冻结失败
押金解冻结算给商户失败
手续费账户余额不足、商户账户没有结算权限等原因导致资金解冻失败
SETTLING
押金消费受理中
押金消费已受理
押金消费已受理,请稍后查询订单订单状态确认最终结果
FAIL
押金消费失败
押金消费失败
押金消费失败,当前交易无法完成
HIGH_RISK
押金消费失败
商户收款受限,暂不支持押金消费
请前往「商户平台-账户中心-违约记录」查看详情。