支付通知
<p>[TOC]</p>
<h4>简要描述</h4>
<ul>
<li>当支付订单客户支付成功时,会向商户系统发起回调通知。(<code>注意!部分地区会出现订单失败后二次通知为成功的情况,需要商家能够支持订单状态修订能力*</code>)</li>
<li>如果商户系统没有正确返回,支付网关会延迟再次通知。</li>
</ul>
<h4>测试说明</h4>
<p><font color="red"> 1、测试环境 "amount"金额中包含 数字[ 3 支付失败],[2 支付成功],系统会自动回调相应状态。</br>
2、针对孟加拉BDT >> 金额中包含[73 部分支付]包含[83 超额支付]系统自动回调对应的支付状态</font></p>
<h4>请求URL</h4>
<ul>
<li><code>该链接是通过支付下单接口提交的参数notifyUrl设置,如果无法访问链接,商户系统将无法接收到支付中心的通知。</code></li>
</ul>
<h4>请求方式</h4>
<ul>
<li>POST</li>
</ul>
<h4>请求类型</h4>
<ul>
<li><code>application/x-www-form-urlencoded</code></li>
</ul>
<h4>回调示例</h4>
<ul>
<li>
<p>假设支付下单接口提交的参数,notifyUrl=<a href="https://www.google.com">https://www.google.com</a></p>
</li>
<li>回调示例:
<a href="https://www.google.com?payOrderId=S&mchOrderNo=S&sign=S&channelOrderNo=S&reqTime=L&customerName=S&createdAt=L&customerPhone=S&appId=S&clientIp=S&customerEmail=S&state=I&mchNo=S">https://www.google.com?payOrderId=S&mchOrderNo=S&sign=S&channelOrderNo=S&reqTime=L&customerName=S&createdAt=L&customerPhone=S&appId=S&clientIp=S&customerEmail=S&state=I&mchNo=S</a></li>
</ul>
<h4>参数</h4>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">参数描述</th>
<th style="text-align: left;">必填</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">示例值</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">payOrderId</td>
<td style="text-align: left;">支付订单号</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String(32)</td>
<td style="text-align: left;">P12021022311124442600</td>
<td>支付系统订单号</td>
</tr>
<tr>
<td style="text-align: left;">mchNo</td>
<td style="text-align: left;">商户号</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String(32)</td>
<td style="text-align: left;">M1621873433953</td>
<td>商户号</td>
</tr>
<tr>
<td style="text-align: left;">appId</td>
<td style="text-align: left;">应用ID</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String(32)</td>
<td style="text-align: left;">60cc09bce4b0f1c0b83761c9</td>
<td>应用ID</td>
</tr>
<tr>
<td style="text-align: left;">mchOrderNo</td>
<td style="text-align: left;">商户订单号</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String(32)</td>
<td style="text-align: left;">202205071206040004000</td>
<td>商户传入的订单号</td>
</tr>
<tr>
<td style="text-align: left;">amount</td>
<td style="text-align: left;">支付金额</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td style="text-align: left;">10000</td>
<td><code>单位: 分</code></td>
</tr>
<tr>
<td style="text-align: left;">currency</td>
<td style="text-align: left;">货币代码</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String(3)</td>
<td style="text-align: left;">INR</td>
<td>三位货币代码:</br><code>INR:印度卢比</code></br><code>BRL:巴西雷亚儿</code></br><code>PKR: 巴基斯坦卢比</code></td>
</tr>
<tr>
<td style="text-align: left;">state</td>
<td style="text-align: left;">订单状态</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td style="text-align: left;">2</td>
<td>订单支付状态:</br><code>0:订单生成</code><br/><code>1:支付中</code><br/><code>2:支付成功</code></br><code>3:支付失败</code></br><code>4:已撤销</code></br><code>5:已退款</code></br><code>6:订单关闭</code></br><code>7:部分支付</code></br><code>8:超额支付</code></td>
</tr>
<tr>
<td style="text-align: left;">payAmount</td>
<td style="text-align: left;">实际支付金额</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">int</td>
<td style="text-align: left;">9000</td>
<td>只有BDT币种会返回该字段 <code>单位: 分</code></td>
</tr>
<tr>
<td style="text-align: left;">errCode</td>
<td style="text-align: left;">错误码</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">1002</td>
</tr>
<tr>
<td style="text-align: left;">errMsg</td>
<td style="text-align: left;">错误描述</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">Business Failed 失败</td>
</tr>
<tr>
<td style="text-align: left;">customerName</td>
<td style="text-align: left;">客户名字</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">String(64)</td>
<td style="text-align: left;">客户姓名</td>
<td>客户姓名</td>
</tr>
<tr>
<td style="text-align: left;">customerEmail</td>
<td style="text-align: left;">客户邮箱</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">String(64)</td>
<td style="text-align: left;">客户邮箱</td>
<td>客户邮箱</td>
</tr>
<tr>
<td style="text-align: left;">customerPhone</td>
<td style="text-align: left;">客户手机号</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">String(64)</td>
<td style="text-align: left;">客户手机号</td>
<td>客户手机号</td>
</tr>
<tr>
<td style="text-align: left;">extParam</td>
<td style="text-align: left;">商户扩展参数</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">String(512)</td>
<td style="text-align: left;">134586944573118714</td>
<td>回调时会原样返回</td>
</tr>
<tr>
<td style="text-align: left;">outExtInfo</td>
<td style="text-align: left;">扩展信息参数</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">String(512)</td>
<td style="text-align: left;">134586944573118714</td>
<td>扩展信息参数</td>
</tr>
<tr>
<td style="text-align: left;">createdAt</td>
<td style="text-align: left;">创建时间</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">long</td>
<td style="text-align: left;">1622016572190</td>
<td>订单创建时间,13位时间戳</td>
</tr>
<tr>
<td style="text-align: left;">reqTime</td>
<td style="text-align: left;">请求时间</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">long</td>
<td style="text-align: left;">1652148000000</td>
<td>请求接口时间,13位毫秒时间戳</td>
</tr>
<tr>
<td style="text-align: left;">sign</td>
<td style="text-align: left;">签名</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String(32)</td>
<td style="text-align: left;">C380BEC2BFD727A4B6845133519F3AD6</td>
<td>签名值,详见签名算法(大写 MD5 签名值)</td>
</tr>
</tbody>
</table>
<h4>商户返回示例</h4>
<ul>
<li>商户收到回调通知后,需要给平台返回的示例:
<pre><code>success</code></pre></li>
</ul>
<h4>返回参数说明</h4>
<ul>
<li>商户业务系统处理后同步返回给支付中心,返回字符串 <code>success</code> 则表示成功,返回 <code>非success</code> 则表示处理失败,支付中心会再次通知业务系统。</li>
<li>
<p><code>通知频率</code> 0 / 30 / 60 / 90 / 120 / 150,单位: 秒。</p>
</li>
<li><code>注意</code>返回的字符串必须是小写,且前后不能有空格和换行符。</li>
</ul>
<h4>虚拟账户(VA)收款通知参数的说明</h4>
<ul>
<li>customerName:付款人姓名(该参数为可选,可能不返回)</li>
<li>extParam.customerAccount:付款人账户(该参数为可选,可能不返回)</li>
<li>extParam.reference:付款的银行流水(该参数为可选,可能不返回)</li>
<li>extParam.finishedTime:付款完成的当地时间 示例值:2024-01-20T16:51:23+07:00</li>
<li>extParam.amountTo:商户实到账金额
<h4>虚拟账户(VA)收银台收款通知参数的说明</h4></li>
<li>customerName:付款人姓名(该参数为可选,可能不返回)</li>
<li>outExtInfo.customerAccount:付款人账户(该参数为可选,可能不返回)</li>
<li>outExtInfo.reference:付款的银行流水(该参数为可选,可能不返回)</li>
<li>outExtInfo.finishedTime:付款完成的当地时间 示例值:2024-01-20T16:51:23+07:00</li>
<li>outExtInfo.amountTo:商户实到账金额</li>
</ul>