转账接口
<h2>发起转账</h2>
<p>商户业务系统通过转账接口发起转账申请,易铭银通支付网关将根据请求数据传入到对应的上游接口。</p>
<blockquote>
<p>接口说明</p>
</blockquote>
<p>适用对象:<code>普通商户 特约商户</code></p>
<p>请求URL:<code>https://j.mirpays.com/api/transferOrder</code></p>
<p>请求方式:<code>POST</code></p>
<p>请求类型:<code>application/json</code>或 <code>application/x-www-form-urlencoded</code></p>
<blockquote>
<p>请求参数</p>
</blockquote>
<table>
<thead>
<tr>
<th>字段名</th>
<th>变量名</th>
<th>必填</th>
<th>类型</th>
<th>示例值</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>商户号</td>
<td>mchNo</td>
<td>是</td>
<td>String(30)</td>
<td>M1621873433953</td>
<td>商户号</td>
</tr>
<tr>
<td>应用ID</td>
<td>appId</td>
<td>是</td>
<td>String(24)</td>
<td>60cc09bce4b0f1c0b83761c9</td>
<td>应用ID</td>
</tr>
<tr>
<td>商户订单号</td>
<td>mchOrderNo</td>
<td>是</td>
<td>String(30)</td>
<td>20160427210604000490</td>
<td>商户生成的转账订单号</td>
</tr>
<tr>
<td>接口代码</td>
<td>ifCode</td>
<td>是</td>
<td>String(10)</td>
<td>wxpay</td>
<td>wxpay-微信官方接口 ; alipay-支付宝官方接口</td>
</tr>
<tr>
<td>入账方式</td>
<td>entryType</td>
<td>是</td>
<td>String(20)</td>
<td>20160427210604000490</td>
<td>入账方式: WX_CASH-微信零钱; ALIPAY_CASH-支付宝转账; BANK_CARD-银行卡</td>
</tr>
<tr>
<td>转账金额</td>
<td>amount</td>
<td>是</td>
<td>int</td>
<td>100</td>
<td>转账金额,单位分</td>
</tr>
<tr>
<td>货币代码</td>
<td>currency</td>
<td>是</td>
<td>String(3)</td>
<td>cny</td>
<td>三位货币代码,人民币:cny</td>
</tr>
<tr>
<td>收款账号</td>
<td>accountNo</td>
<td>是</td>
<td>String(64)</td>
<td>o6BcIwvTvIqf1zXZohc61biryWik</td>
<td>wxpay-openID, alipay-登录账号</td>
</tr>
<tr>
<td>收款人姓名</td>
<td>accountName</td>
<td>否</td>
<td>String(64)</td>
<td>张三</td>
<td>填入则验证姓名,否则不验证</td>
</tr>
<tr>
<td>收款人开户行名称</td>
<td>bankName</td>
<td>否</td>
<td>String(64)</td>
<td>中国工商银行</td>
<td>当前仅作为记录</td>
</tr>
<tr>
<td>客户端IP</td>
<td>clientIp</td>
<td>否</td>
<td>String(32)</td>
<td>210.73.10.148</td>
<td>客户端IPV4地址</td>
</tr>
<tr>
<td>转账备注信息</td>
<td>transferDesc</td>
<td>否</td>
<td>String(128)</td>
<td>测试转账</td>
<td>转账备注信息</td>
</tr>
<tr>
<td>异步通知地址</td>
<td>notifyUrl</td>
<td>否</td>
<td>String(128)</td>
<td><a href="https://j.mirpays.com/notify.htm">https://j.mirpays.com/notify.htm</a></td>
<td>转账完成后回调该URL,只有传了该值才会发起回调</td>
</tr>
<tr>
<td>渠道参数</td>
<td>channelExtra</td>
<td>否</td>
<td>String(256</td>
<td>{}</td>
<td>特定渠道发起的额外参数,json格式字符串</td>
</tr>
<tr>
<td>扩展参数</td>
<td>extraParam</td>
<td>否</td>
<td>String(512)</td>
<td>134586944573118714</td>
<td>商户扩展参数,回调时会原样返回</td>
</tr>
<tr>
<td>请求时间</td>
<td>reqTime</td>
<td>是</td>
<td>long</td>
<td>1622016572190</td>
<td>请求接口时间,13位时间戳</td>
</tr>
<tr>
<td>接口版本</td>
<td>version</td>
<td>是</td>
<td>String(3)</td>
<td>1.0</td>
<td>接口版本号,固定:1.0</td>
</tr>
<tr>
<td>签名</td>
<td>sign</td>
<td>是</td>
<td>String(32)</td>
<td>C380BEC2BFD727A4B6845133519F3AD6</td>
<td>签名值,详见签名算法</td>
</tr>
<tr>
<td>签名类型</td>
<td>signType</td>
<td>是</td>
<td>String(32)</td>
<td>MD5</td>
<td>签名类型,目前只支持MD5方式</td>
</tr>
</tbody>
</table>
<p><code>请求示例数据</code></p>
<pre><code>{"ifCode":"wxpay",
"entryType":"WX_CASH",
"amount":1,
"accountName":"",
"mchOrderNo":"mho1629106169045",
"sign":"3EB5A3B81E92DB41677E235363E7DDE3",
"transferDesc":"测试转账",
"reqTime":"1629106169",
"version":"1.0",
"appId":"60cc3ba74ee0e6685f57eb1e",
"accountNo":"a6BcIwtTvIqv1zXZohc61biryWok",
"clientIp":"192.166.1.132",
"signType":"MD5",
"currency":"CNY",
"mchNo":"M1623997351"
}</code></pre>
<p><code>返回参数</code></p>
<table>
<thead>
<tr>
<th>字段名</th>
<th>变量名</th>
<th>必填</th>
<th>类型</th>
<th>示例值</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>返回状态</td>
<td>code</td>
<td>是</td>
<td>int</td>
<td>0</td>
<td>0-处理成功,其他-处理有误,详见错误码</td>
</tr>
<tr>
<td>返回信息</td>
<td>msg</td>
<td>否</td>
<td>String(128)</td>
<td>签名失败</td>
<td>具体错误原因,例如:签名失败、参数格式校验错误</td>
</tr>
<tr>
<td>签名信息</td>
<td>sign</td>
<td>否</td>
<td>String(32)</td>
<td>CCD9083A6DAD9A2DA9F668C3D4517A84</td>
<td>对data内数据签名,如data为空则不返回</td>
</tr>
<tr>
<td>返回数据</td>
<td>data</td>
<td>否</td>
<td>String(512)</td>
<td>{}</td>
<td>返回下单数据,json格式数据</td>
</tr>
</tbody>
</table>
<p><code>data数据格式</code></p>
<table>
<thead>
<tr>
<th>字段名</th>
<th>变量名</th>
<th>必填</th>
<th>类型</th>
<th>示例值</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>转账订单号</td>
<td>transferId</td>
<td>是</td>
<td>String(30)</td>
<td>T202108161731281310004</td>
<td>返回转账订单号</td>
</tr>
<tr>
<td>商户转账单号</td>
<td>mchOrderNo</td>
<td>是</td>
<td>String(30)</td>
<td>mho1624007315478</td>
<td>返回商户传入的转账单号</td>
</tr>
<tr>
<td>转账状态</td>
<td>state</td>
<td>是</td>
<td>int</td>
<td>2</td>
<td>转账状态</br>0-订单生成</br>1-转账中</br>2-转账成功</br>3-转账失败</br>4-转账关闭</br></td>
</tr>
<tr>
<td>渠道转账单号</td>
<td>channelOrderNo</td>
<td>否</td>
<td>String</td>
<td>20160427210604000490</td>
<td>对应渠道的转账单号</td>
</tr>
<tr>
<td>渠道错误码</td>
<td>errCode</td>
<td>否</td>
<td>String</td>
<td>ACQ.PAYMENT_AUTH_CODE_INVALID</td>
<td>上游渠道返回的错误码</td>
</tr>
<tr>
<td>渠道错误描述</td>
<td>errMsg</td>
<td>否</td>
<td>String</td>
<td>Business Failed 失败</td>
<td>上游渠道返回的错误描述</td>
</tr>
</tbody>
</table>
<p><code>返回示例数据</code></p>
<pre><code>{
"code": 0,
"data": {
"accountNo": "1",
"amount": 11,
"channelOrderNo": "20210816110070001506260000372216",
"mchOrderNo": "1629106288",
"state": 2,
"transferId": "T202108161731281310004"
},
"msg": "SUCCESS",
"sign": "195BF6F112386F7FC8EA2AA7EECA1D33"
}</code></pre>
<h2>查询订单</h2>
<p>商户通过该接口查询转账订单,支付网关会返回订单最新的数据</p>
<p>接口说明</p>
<p>适用对象:<code>普通商户</code> <code>特约商户</code></p>
<p>请求URL:<code>https://j.mirpays.com/api/transfer/query</code></p>
<p>请求方式:<code>POST</code></p>
<p>请求类型:<code>application/json</code>或 <code>application/x-www-form-urlencoded</code></p>
<p>请求参数</p>
<table>
<thead>
<tr>
<th>字段名</th>
<th>变量名</th>
<th>必填</th>
<th>类型</th>
<th>示例值</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>商户号</td>
<td>mchNo</td>
<td>是</td>
<td>String(30)</td>
<td>M1621873433953</td>
<td>商户号</td>
</tr>
<tr>
<td>应用ID</td>
<td>appId</td>
<td>是</td>
<td>String(24)</td>
<td>60cc09bce4b0f1c0b83761c9</td>
<td>应用ID</td>
</tr>
<tr>
<td>转账订单号</td>
<td>transferId</td>
<td>是</td>
<td>String(30)</td>
<td>T20160427210604000490</td>
<td>支付中心生成的转账单号,与mchOrderNo二者传一即可</td>
</tr>
<tr>
<td>商户转账单号</td>
<td>mchOrderNo</td>
<td>是</td>
<td>String(30)</td>
<td>20160427210604000490</td>
<td>商户生成的转账单号,与transferId二者传一即可</td>
</tr>
<tr>
<td>请求时间</td>
<td>reqTime</td>
<td>是</td>
<td>long</td>
<td>1622016572190</td>
<td>请求接口时间,13位时间戳</td>
</tr>
<tr>
<td>接口版本</td>
<td>version</td>
<td>是</td>
<td>String(3)</td>
<td>1.0</td>
<td>接口版本号,固定:1.0</td>
</tr>
<tr>
<td>签名</td>
<td>sign</td>
<td>是</td>
<td>String(32)</td>
<td>C380BEC2BFD727A4B6845133519F3AD6</td>
<td>签名值,详见签名算法</td>
</tr>
<tr>
<td>签名类型</td>
<td>signType</td>
<td>是</td>
<td>String(32)</td>
<td>MD5</td>
<td>签名类型,目前只支持MD5方式</td>
</tr>
</tbody>
</table>
<p><code>请求示例数据</code></p>
<pre><code>{
"appId":"60cc3ba74ee0e6685f57eb1e",
"sign":"D3C0CC231F3FC3D033650699BA099B39",
"signType":"MD5",
"reqTime":"1629106457",
"transferId":"T202108121543441860003",
"mchNo":"M1623997351",
"version":"1.0"
}</code></pre>
<table>
<thead>
<tr>
<th>字段名</th>
<th>变量名</th>
<th>必填</th>
<th>类型</th>
<th>示例值</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>返回状态</td>
<td>code</td>
<td>是</td>
<td>int</td>
<td>0</td>
<td>0-处理成功,其他-处理有误,详见错误码</td>
</tr>
<tr>
<td>返回信息</td>
<td>msg</td>
<td>否</td>
<td>String(128)</td>
<td>签名失败</td>
<td>具体错误原因,例如:签名失败、参数格式校验错误</td>
</tr>
<tr>
<td>签名信息</td>
<td>sign</td>
<td>否</td>
<td>String(32)</td>
<td>CCD9083A6DAD9A2DA9F668C3D4517A84</td>
<td>对data内数据签名,如data为空则不返回</td>
</tr>
<tr>
<td>返回数据</td>
<td>data</td>
<td>否</td>
<td>String(512)</td>
<td>{}</td>
<td>返回下单数据,json格式数据</td>
</tr>
</tbody>
</table>
<p><code>data数据格式</code></p>
<table>
<thead>
<tr>
<th>字段名</th>
<th>变量名</th>
<th>必填</th>
<th>类型</th>
<th>示例值</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>商户号</td>
<td>mchNo</td>
<td>是</td>
<td>String(30)</td>
<td>M1621873433953</td>
<td>商户号</td>
</tr>
<tr>
<td>应用ID</td>
<td>appId</td>
<td>是</td>
<td>String(24)</td>
<td>60cc09bce4b0f1c0b83761c9</td>
<td>应用ID</td>
</tr>
<tr>
<td>商户订单号</td>
<td>mchOrderNo</td>
<td>是</td>
<td>String(30)</td>
<td>20160427210604000490</td>
<td>商户生成的转账订单号</td>
</tr>
<tr>
<td>转账订单号</td>
<td>transferId</td>
<td>是</td>
<td>String(30)</td>
<td>T20160427210604000490</td>
<td>支付中心生成的转账单号</td>
</tr>
<tr>
<td>转账金额</td>
<td>amount</td>
<td>是</td>
<td>int</td>
<td>100</td>
<td>转账金额,单位分</td>
</tr>
<tr>
<td>货币代码</td>
<td>currency</td>
<td>是</td>
<td>String(3)</td>
<td>cny</td>
<td>三位货币代码,人民币:cny</td>
</tr>
<tr>
<td>接口代码</td>
<td>ifCode</td>
<td>是</td>
<td>String(10)</td>
<td>wxpay</td>
<td>wxpay-微信官方接口 ; alipay-支付宝官方接口</td>
</tr>
<tr>
<td>入账方式</td>
<td>entryType</td>
<td>是</td>
<td>String(20)</td>
<td>20160427210604000490</td>
<td>入账方式: WX_CASH-微信零钱; ALIPAY_CASH-支付宝转账; BANK_CARD-银行卡</td>
</tr>
<tr>
<td>转账状态</td>
<td>state</td>
<td>是</td>
<td>int</td>
<td>2</td>
<td>转账状态</br>0-订单生成</br>1-转账中</br>2-转账成功</br>3-转账失败</br>4-转账关闭</br></td>
</tr>
<tr>
<td>收款账号</td>
<td>accountNo</td>
<td>是</td>
<td>String(64)</td>
<td>o6BcIwvTvIqf1zXZohc61biryWik</td>
<td>wxpay-openID, alipay-登录账号</td>
</tr>
<tr>
<td>收款人姓名</td>
<td>accountName</td>
<td>否</td>
<td>String(64)</td>
<td>张三</td>
<td>填入则验证姓名,否则不验证</td>
</tr>
<tr>
<td>收款人开户行名称</td>
<td>bankName</td>
<td>否</td>
<td>String(64)</td>
<td>中国工商银行</td>
<td>当前仅作为记录</td>
</tr>
<tr>
<td>转账备注信息</td>
<td>transferDesc</td>
<td>否</td>
<td>String(128)</td>
<td>测试转账</td>
<td>转账备注信息</td>
</tr>
<tr>
<td>渠道转账单号</td>
<td>channelOrderNo</td>
<td>否</td>
<td>String</td>
<td>20160427210604000490</td>
<td>对应渠道的转账单号</td>
</tr>
<tr>
<td>渠道错误码</td>
<td>errCode</td>
<td>否</td>
<td>String</td>
<td>1002</td>
<td>渠道返回错误码</td>
</tr>
<tr>
<td>渠道错误描述</td>
<td>errMsg</td>
<td>否</td>
<td>String</td>
<td>134586944573118714</td>
<td>渠道返回错误描述</td>
</tr>
<tr>
<td>扩展参数</td>
<td>extraParam</td>
<td>否</td>
<td>String(512)</td>
<td>134586944573118714</td>
<td>商户扩展参数,回调时会原样返回</td>
</tr>
<tr>
<td>创建时间</td>
<td>createdAt</td>
<td>是</td>
<td>long</td>
<td>1622016572190</td>
<td>订单创建时间,13位时间戳</td>
</tr>
<tr>
<td>成功时间</td>
<td>successTime</td>
<td>否</td>
<td>long</td>
<td>1622016572190</td>
<td>转账成功时间,13位时间戳</td>
</tr>
</tbody>
</table>
<p>返回示例数据</p>
<pre><code>{
"code": 0,
"data": {
"accountNo": "o6BcIwvTvIqf1zXZohc61biryWik",
"amount": 1,
"appId": "6113805e42020495c62bd4cb",
"createdAt": 1628818820011,
"currency": "CNY",
"entryType": "WX_CASH",
"errCode": "OPENID_ERROR",
"errMsg": "openid与商户appid不匹配【openid与商户appid不匹配】",
"ifCode": "wxpay",
"mchNo": "M1623997351",
"mchOrderNo": "1628818820",
"state": 3,
"transferDesc": "测试",
"transferId": "T202108130940200100001"
},
"msg": "SUCCESS",
"sign": "A262DBD3D6182E8A0AEC90EF820F2A5A"
}</code></pre>
<h2>转账通知</h2>
<p>当转账完成时(成功或失败),支付网关会向商户系统发起回调通知。如果商户系统没有正确返回,支付网关会延迟再次通知。</p>
<p>接口说明</p>
<p>适用对象:<code>普通商户 特约商户</code></p>
<p>请求URL:该链接是通过转账申请接口提交的参数<code>notifyUrl</code>设置,如果无法访问链接,商户系统将无法接收到支付中心的通知。</p>
<p>请求方式:<code>POST</code></p>
<p>请求类型:<code>application/x-www-form-urlencoded</code></p>
<blockquote>
<p>通知参数</p>
</blockquote>
<table>
<thead>
<tr>
<th>字段名</th>
<th>变量名</th>
<th>必填</th>
<th>类型</th>
<th>示例值</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>商户号</td>
<td>mchNo</td>
<td>是</td>
<td>String(30)</td>
<td>M1621873433953</td>
<td>商户号</td>
</tr>
<tr>
<td>应用ID</td>
<td>appId</td>
<td>是</td>
<td>String(24)</td>
<td>60cc09bce4b0f1c0b83761c9</td>
<td>应用ID</td>
</tr>
<tr>
<td>商户订单号</td>
<td>mchOrderNo</td>
<td>是</td>
<td>String(30)</td>
<td>20160427210604000490</td>
<td>商户生成的转账订单号</td>
</tr>
<tr>
<td>转账订单号</td>
<td>transferId</td>
<td>是</td>
<td>String(30)</td>
<td>T20160427210604000490</td>
<td>支付中心生成的转账单号</td>
</tr>
<tr>
<td>转账金额</td>
<td>amount</td>
<td>是</td>
<td>int</td>
<td>100</td>
<td>转账金额,单位分</td>
</tr>
<tr>
<td>货币代码</td>
<td>currency</td>
<td>是</td>
<td>String(3)</td>
<td>cny</td>
<td>三位货币代码,人民币:cny</td>
</tr>
<tr>
<td>接口代码</td>
<td>ifCode</td>
<td>是</td>
<td>String(10)</td>
<td>wxpay</td>
<td>wxpay-微信官方接口 ; alipay-支付宝官方接口</td>
</tr>
<tr>
<td>入账方式</td>
<td>entryType</td>
<td>是</td>
<td>String(20)</td>
<td>20160427210604000490</td>
<td>入账方式: WX_CASH-微信零钱; ALIPAY_CASH-支付宝转账; BANK_CARD-银行卡</td>
</tr>
<tr>
<td>转账状态</td>
<td>state</td>
<td>是</td>
<td>int</td>
<td>2</td>
<td>转账状态</br>0-订单生成</br>1-转账中</br>2-转账成功</br>3-转账失败</br>4-转账关闭</br></td>
</tr>
<tr>
<td>收款账号</td>
<td>accountNo</td>
<td>是</td>
<td>String(64)</td>
<td>o6BcIwvTvIqf1zXZohc61biryWik</td>
<td>wxpay-openID, alipay-登录账号</td>
</tr>
<tr>
<td>收款人姓名</td>
<td>accountName</td>
<td>否</td>
<td>String(64)</td>
<td>张三</td>
<td>填入则验证姓名,否则不验证</td>
</tr>
<tr>
<td>收款人开户行名称</td>
<td>bankName</td>
<td>否</td>
<td>String(64)</td>
<td>中国工商银行</td>
<td>当前仅作为记录</td>
</tr>
<tr>
<td>转账备注信息</td>
<td>transferDesc</td>
<td>否</td>
<td>String(128)</td>
<td>测试转账</td>
<td>转账备注信息</td>
</tr>
<tr>
<td>渠道转账单号</td>
<td>channelOrderNo</td>
<td>否</td>
<td>String</td>
<td>20160427210604000490</td>
<td>对应渠道的转账单号</td>
</tr>
<tr>
<td>渠道错误码</td>
<td>errCode</td>
<td>否</td>
<td>String</td>
<td>1002</td>
<td>渠道返回错误码</td>
</tr>
<tr>
<td>渠道错误描述</td>
<td>errMsg</td>
<td>否</td>
<td>String</td>
<td>134586944573118714</td>
<td>渠道返回错误描述</td>
</tr>
<tr>
<td>扩展参数</td>
<td>extraParam</td>
<td>否</td>
<td>String(512)</td>
<td>134586944573118714</td>
<td>商户扩展参数,回调时会原样返回</td>
</tr>
<tr>
<td>创建时间</td>
<td>createdAt</td>
<td>是</td>
<td>long</td>
<td>1622016572190</td>
<td>订单创建时间,13位时间戳</td>
</tr>
<tr>
<td>成功时间</td>
<td>successTime</td>
<td>否</td>
<td>long</td>
<td>1622016572190</td>
<td>转账成功时间,13位时间戳</td>
</tr>
</tbody>
</table>
<blockquote>
<p>返回结果</p>
</blockquote>
<p>业务系统处理后同步返回给支付中心,返回字符串 success 则表示成功,返回非success则表示处理失败,支付中心会再次通知业务系统。(通知频率为0/30/60/90/120/150,单位:秒)</p>
<p>注意:<code>返回的字符串必须是小写,且前后不能有空格和换行符</code>。</p>
<p><code>通知示例数据</code></p>
<pre><code> {
"accountNo": "o6BcIwvTvIqf1zXZohc61biryWik",
"amount": 1,
"appId": "6113805e42020495c62bd4cb",
"createdAt": 1628818820011,
"currency": "CNY",
"entryType": "WX_CASH",
"errCode": "OPENID_ERROR",
"errMsg": "openid与商户appid不匹配【openid与商户appid不匹配】",
"ifCode": "wxpay",
"mchNo": "M1623997351",
"mchOrderNo": "1628818820",
"state": 3,
"transferDesc": "测试",
"transferId": "T202108130940200100001"
}</code></pre>