接口介绍
业务流程 | 接口 | 简介 |
---|---|---|
付款 | 企业付款 | 用于企业向微信用户个人付款目前支持向指定微信用户的openid付款。(获取openid参见微信公众平台开发者文档: 网页授权获取用户基本信息) |
请仔细阅读以下注意事项:
◆ 当返回错误码为“SYSTEMERROR”时,请不要更换商户订单号,一定要使用原商户订单号重试,否则可能造成重复支付等资金风险。
◆ XML具有可扩展性,因此返回参数可能会有新增,而且顺序可能不完全遵循此文档规范,如果在解析回包的时候发生错误,请商户务必不要换单重试,请商户联系客服确认付款情况。如果有新回包字段,会更新到此API文档中。
◆ 因为错误代码字段err_code的值后续可能会增加,所以商户如果遇到回包返回新的错误码,请商户务必不要换单重试,请商户联系客服确认付款情况。如果有新的错误码,会更新到此API文档中。
◆ 错误代码描述字段err_code_des只供人工定位问题时做参考,系统实现时请不要依赖这个字段来做自动化处理。
◆ 请商户在自身的系统中合理设置付款频次并做好并发控制,防范错付风险。
◆ 因商户自身系统设置存在问题导致的资金损失,由商户自行承担。
接口调用请求说明
请求Url | https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers |
---|---|
是否需要证书 | 是(证书及使用说明详见商户证书) |
请求方式 | POST |
接口调用频率限制 | 30/s |
超时时间 | (同笔订单最短重试时间) 1s |
请求参数
字段名 | 变量名 | 必填 | 示例值 | 类型 | 描述 |
---|---|---|---|---|---|
商户账号appid | mch_appid | 是 | wx8888888888888888 | String(128) | 申请商户号的appid或商户号绑定的appid |
商户号 | mchid | 是 | 1900000109 | String(32) | 微信支付分配的商户号 |
设备号 | device_info | 否 | 013467007045764 | String(32) | 微信支付分配的终端设备号 |
随机字符串 | nonce_str | 是 | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | String(32) | 随机字符串,不长于32位 |
签名 | sign | 是 | C380BEC2BFD727A4B6845133519F3AD6 | String(32) | 签名,详见签名算法 |
商户订单号 | partner_trade_no | 是 | 10000098201411111234567890 | String(32) | 商户订单号,需保持唯一性(只能是字母或者数字,不能包含有其它字符) |
用户openid | openid | 是 | oxTWIuGaIt6gTKsQRLau2M0yL16E | String(64) | 商户appid下,某用户的openid |
校验用户姓名选项 | check_name | 是 | FORCE_CHECK | String(16) | NO_CHECK:不校验真实姓名FORCE_CHECK:强校验真实姓名 |
收款用户姓名 | re_user_name | 否 | 王小王 | String(64) | 收款用户真实姓名。如果check_name设置为FORCE_CHECK,则必填用户真实姓名如需电子回单,需要传入收款用户姓名 |
金额 | amount | 是 | 10099 | int | 企业付款金额,单位为分 |
企业付款备注 | desc | 是 | 理赔 String(100) 企业付款备注,必填。注意:备注中的敏感词会被转成字符* | ||
Ip地址 | spbill_create_ip | 否 | 192.168.0.1 | String(32) | 该IP同在商户平台设置的IP白名单中的IP没有关联,该IP可传用户端或者服务端的IP。 |
请求示例:
<xml>
<mch_appid>wxe062425f740c30d8</mch_appid>
<mchid>10000098</mchid>
<nonce_str>3PG2J4ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str>
<partner_trade_no>100000982014120919616</partner_trade_no>
<openid>ohO4Gt7wVPxIT1A9GjFaMYMiZY1s</openid>
<check_name>FORCE_CHECK</check_name>
<re_user_name>张三</re_user_name>
<amount>100</amount>
<desc>节日快乐!</desc>
<spbill_create_ip>10.2.3.10</spbill_create_ip>
<sign>C97BDBACF37622775366F38B629F45E3</sign>
</xml>
返回参数
字段名 | 变量名 | 必填 | 示例值 | 类型 | 描述 |
---|---|---|---|---|---|
返回状态码 | return_code | 是 | SUCCESS | String(16) | SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断 |
返回信息 | return_msg | 否 | 签名失败 | String(128) | 返回信息,如非空,为错误原因签名失败参数格式校验错误 |
以下字段在return_code为SUCCESS的时候有返回
字段名 | 变量名 | 必填 | 示例值 | 类型 | 描述 |
---|---|---|---|---|---|
商户appid | mch_appid | 是 | wx8888888888888888 | String(128) | 申请商户号的appid或商户号绑定的appid(企业号corpid即为此appId) |
商户号 | mchid | 是 | 1900000109 | String(32) | 微信支付分配的商户号 |
设备号 | device_info | 否 | 013467007045764 | String(32) | 微信支付分配的终端设备号, |
随机字符串 | nonce_str | 是 5 | K8264ILTKCH16CQ2502SI8ZNMTM67VS | String(32) | 随机字符串,不长于32位 |
业务结果 | result_code | 是 | SUCCESS | String(16) | SUCCESS/FAIL,注意:当状态为FAIL时,存在业务结果未明确的情况。如果状态为FAIL,请务必关注错误代码(err_code字段),通过查询查询接口确认此次付款的结果。 |
错误代码 | err_code | 否 | SYSTEMERROR | String(32) | 错误码信息,注意:出现未明确的错误码时(SYSTEMERROR等),请务必用原商户订单号重试,或通过查询接口确认此次付款的结果。 |
错误代码描述 | err_code_des | 否 | 系统错误 | String(128) | 结果信息描述 |
以下字段在return_code 和result_code都为SUCCESS的时候有返回
字段名 | 变量名 | 必填 | 示例值 | 类型 | 描述 |
---|---|---|---|---|---|
商户订单号 | partner_trade_no | 是 1 | 217752501201407033233368018 | String(32) | 商户订单号,需保持历史全局唯一性(只能是字母或者数字,不能包含有其它字符) |
微信付款单号 | payment_no | 是 | 1007752501201407033233368018 | String(64) | 企业付款成功,返回的微信付款单号 |
付款成功时间 | payment_time | 是 | 2015-05-19 15:26:59 | String(32) | 企业付款成功时间 |
成功示例:
<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[]]></return_msg>
<mch_appid><![CDATA[wxec38b8ff840bd989]]></mch_appid>
<mchid><![CDATA[10013274]]></mchid>
<device_info><![CDATA[]]></device_info>
<nonce_str><![CDATA[lxuDzMnRjpcXzxLx0q]]></nonce_str>
<result_code><![CDATA[SUCCESS]]></result_code>
<partner_trade_no><![CDATA[10013574201505191526582441]]></partner_trade_no>
<payment_no><![CDATA[1000018301201505190181489473]]></payment_no>
<payment_time><![CDATA[2015-05-19 15:26:59]]></payment_time>
</xml>