消费押金
更新时间:2024.11.18应用场景
微信支付根据商户指令,将用户消费金额扣除手续费后结算给指定商户,剩余金额原路退还给用户,并生成押金退款交易记录,给用户下发押金退还发起通知,并更改押金支付的交易记录。用户押金退还到账后,下发押金退还到账通知。若全部消费,则下发押金全部消费通知;
消费金额:扣费金额区间为(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 |
返回信息 | 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,其他值列表详见货币类型 |
举例:
错误码列表
名称 | 描述 | 原因 | 解决方案 |
---|---|---|---|
PARAM_ERROR | 参数错误 | 请求参数未按指引进行填写 | 请求参数错误,请重新检查再调用 |
SIGNERROR | 签名错误 | 参数签名结果不正确 | 请检查签名参数和方法是否都符合签名算法要求 |
SYSTEMERROR | 系统异常 | 系统异常 | 系统繁忙,请稍后使用相同参数再次调用API |
SETTLEMENTERROR | 押金解除冻结失败 | 押金解冻结算给商户失败 | 手续费账户余额不足、商户账户没有结算权限等原因导致资金解冻失败 |
SETTLING | 押金消费受理中 | 押金消费已受理 | 押金消费已受理,请稍后查询订单订单状态确认最终结果 |
FAIL | 押金消费失败 | 押金消费失败 | 押金消费失败,当前交易无法完成 |
HIGH_RISK | 押金消费失败 | 商户收款受限,暂不支持押金消费 | 请前往「商户平台-账户中心-违约记录」查看详情。 |