UPI Transfer、Bank Transfer回调接口
<p><strong>简要描述:</strong></p>
<ul>
<li>商户代收(专属账号)回调接口****
<ol>
<li>代收是异步接口,商户不能立即得到用户支付状态。</li>
<li>回调接口由商户提供, 当用户选择支付或者拒绝后,订单完成,MPurse会调用此接口通知商户.</li>
<li>商户在后台中进行逻辑处理时,需要注意数据的幂等校验,防止回调接口和当前该接口同时或重复处理同一笔订单。响应参数中mpQueryId + bankRRN字段值可做唯一校验。</li>
</ol></li>
</ul>
<p><a href="http://xx.merchant.com/xx/yyyy">http://xx.merchant.com/xx/yyyy</a></p>
<p><strong>参数:</strong></p>
<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>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">mpQueryId</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">mpurse 端生成的关联订单号</td>
</tr>
<tr>
<td style="text-align: left;">payerVA</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">付款用户账户</td>
</tr>
<tr>
<td style="text-align: left;">payerAmount</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">付款金额</td>
</tr>
<tr>
<td style="text-align: left;">txnStatus</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">支付状态 : TRANSACTION_SUCCESS - 交易成功, TRANSACTION_FAILURE - 用户拒绝(交易失败)</td>
</tr>
<tr>
<td style="text-align: left;">payChannel</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">支付渠道,UPI</td>
</tr>
<tr>
<td style="text-align: left;">txnCompletionDate</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">交易完成时间 (yyyyMMddHHmmss)</td>
</tr>
<tr>
<td style="text-align: left;">partnerId</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">商户id</td>
</tr>
<tr>
<td style="text-align: left;">bankRRN</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">银行订单号</td>
</tr>
<tr>
<td style="text-align: left;">receiverVA</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">收款专属账号</td>
</tr>
<tr>
<td style="text-align: left;">errorMsg</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单失败原因</td>
</tr>
</tbody>
</table>
<p><strong>请求示例</strong>
明文:</p>
<table>
<thead>
<tr>
<th style="text-align: left;">request = {</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">"mpQueryId": "3131414131",</td>
</tr>
<tr>
<td style="text-align: left;">"payerVA": "payer.example@paytm",</td>
</tr>
<tr>
<td style="text-align: left;">"bankRRN": "1234567890",</td>
</tr>
<tr>
<td style="text-align: left;">"payerAmount": "120.00",</td>
</tr>
<tr>
<td style="text-align: left;">"payChannel":"UPI",</td>
</tr>
<tr>
<td style="text-align: left;">"txnStatus": "TRANSACTION_SUCCESS",</td>
</tr>
<tr>
<td style="text-align: left;">"txnCompletionDate": "20190706121000",</td>
</tr>
<tr>
<td style="text-align: left;">"partnerId": "Mct_test_10001_PartnerId",</td>
</tr>
<tr>
<td style="text-align: left;">"receiverVA":"mpu.cpdf.user1234567@icici",</td>
</tr>
<tr>
<td style="text-align: left;">"errorMsg": "transaction success"</td>
</tr>
<tr>
<td style="text-align: left;">}</td>
</tr>
</tbody>
</table>
<p>最终会使用密文发送 BASE64.encode(AES.encrypt(request,key))</p>
<p><strong>返回示例</strong>
商户返回 “SUCCESS” 表示已接收到回调。否则MPurse会再次执行回调,最多5次后结束。</p>
<p>注意:
1、商户提供的回调接口逻辑若出现异常,不能影响到”SUCCESS”的返回。只要商户的后台接收到了回调请求,总是以”SUCCESS”作为返回参数,且不需要对响应参数SUCCESS做加密处理。
2、商户的回调接口在收到回调后,需要先去做订单的幂等校验。防止回调接口逻辑中出现错误,导致逻辑按照正常的结果去处理了,但最终响应结果却不是SUCCESS,进而导致我方再次发起回调请求。</p>
<p>每次回调的时间间隔为:
1 - 3 : 每隔2分钟
4 - 5 : 每隔1小时</p>