AutoPay Deposit Order Interface(english)
<h3><center>Version</center></h3>
<table>
<thead>
<tr>
<th style="text-align: left;"><center>Ver. No.</center></th>
<th style="text-align: left;"><center>Ver. Date</center></th>
<th style="text-align: left;"><center>Revised By</center></th>
<th><center>Description</center></th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;"><center>13</center></td>
<td style="text-align: left;"><center>2022/03/21</center></td>
<td style="text-align: left;"><center>Chase</center></td>
<td><center>finalized</center></td>
</tr>
<tr>
<td style="text-align: left;"><center>14</center></td>
<td style="text-align: left;"><center>2022/04/20</center></td>
<td style="text-align: left;"><center>Chase</center></td>
<td><center>Add Create Params: payerName</center></td>
</tr>
<tr>
<td style="text-align: left;"><center>15</center></td>
<td style="text-align: left;"><center>2022/05/09</center></td>
<td style="text-align: left;"><center>Chase</center></td>
<td><center>Add orderType(26~27)</center></td>
</tr>
<tr>
<td style="text-align: left;"><center>16</center></td>
<td style="text-align: left;"><center>2022/05/26</center></td>
<td style="text-align: left;"><center>Chase</center></td>
<td><center>Add orderType(28)</center></td>
</tr>
<tr>
<td style="text-align: left;"><center>17</center></td>
<td style="text-align: left;"><center>2022/08/08</center></td>
<td style="text-align: left;"><center>Chase</center></td>
<td><center>Add orderType(29)</center></td>
</tr>
</tbody>
</table>
<h3><strong>List</strong></h3>
<h4>一 、Document Description</h4>
<h4>二 、AutoPay</h4>
<pre><code> 1. Create Deposit Order
2. Notify Deposit Order
3. Query Deposit Order</code></pre>
<hr />
<h3><strong>二、 AutoPay </strong></h3>
<h4><strong>0. Test Environment </strong></h4>
<pre><code> domain: http://pay-test.autopayla.com
appId: 9995283977FB5E7E
key: 48AC10BEB1963BCB8AD4E867EADD73BD</code></pre>
<h4><strong>1. Create Deposit Order </strong></h4>
<p><strong>1.1 Deposit request URL</strong>
<code>URL: domain + /DMAW2KD7/autoPayDs/sendOrder.zv</code></p>
<p><strong>1.2 HTTP Request: <code>FORM POST</code> </strong>
<strong>1.3 Parameters:</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">Parameter</th>
<th style="text-align: left;">Required</th>
<th style="text-align: left;">Sign</th>
<th style="text-align: left;">Length</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">version</td>
<td style="text-align: left;">Y</td>
<td style="text-align: left;">N</td>
<td style="text-align: left;">4</td>
<td><code>V1.0</code></td>
</tr>
<tr>
<td style="text-align: left;">appId</td>
<td style="text-align: left;">Y</td>
<td style="text-align: left;">Y</td>
<td style="text-align: left;">30</td>
<td>Merchant id opened by the merchant on the platform</td>
</tr>
<tr>
<td style="text-align: left;">orderType</td>
<td style="text-align: left;">Y</td>
<td style="text-align: left;">Y</td>
<td style="text-align: left;">2</td>
<td>Alipay Qrcode:<code>1</code><br>Alipay APP:<code>2</code><br>Wechat Qrcode:<code>3</code><br>Wechat APP:<code>4</code><br>Bank:<code>5</code><br>Alipay To Bank:<code>6</code><br>Wechat To Bank:<code>7</code><br>Quick Pay:<code>8</code><br>Union Wap:<code>9</code><br>Union Pay:<code>10</code><br>IndiaBank:<code>12</code><br>UPI:<code>13</code><br>MoMoPay:<code>14</code><br>USDT-ERC20:<code>15</code><br>USDT-TRC20:<code>16</code><br>USDT-OMNI:<code>17</code><br>IndonesiaBank:<code>18</code><br>E-Wallet OVO:<code>19</code><br>Vietnam Card To Card:<code>20</code><br>Vietnam Qrcode:<code>21</code><br>Vietnam 直连:<code>22</code><br>Vietnam MOMOPAY:<code>23</code><br>Vietnam ZALO:<code>24</code><br>Vietnam VIETTELPAY:<code>25</code><br>Vietnam VNPAY:<code>26</code><br>VirtualCurrency:<code>27</code><br>QQ Red envelope:<code>28</code><br>Fixed Qrcode:<code>29</code></td>
</tr>
<tr>
<td style="text-align: left;">merchOrderNo</td>
<td style="text-align: left;">Y</td>
<td style="text-align: left;">Y</td>
<td style="text-align: left;">32</td>
<td>Merchant system unique order number</td>
</tr>
<tr>
<td style="text-align: left;">orderDate</td>
<td style="text-align: left;">Y</td>
<td style="text-align: left;">Y</td>
<td style="text-align: left;">14</td>
<td><code>YYYYMMddHHmmss</code> <br>ex:20180529123020</td>
</tr>
<tr>
<td style="text-align: left;">amount</td>
<td style="text-align: left;">Y</td>
<td style="text-align: left;">Y</td>
<td style="text-align: left;">15</td>
<td>transfer amount</td>
</tr>
<tr>
<td style="text-align: left;">notifyUrl</td>
<td style="text-align: left;">Y</td>
<td style="text-align: left;">Y</td>
<td style="text-align: left;">128</td>
<td>Asynchronous notification address.(<code>can be empty If no notification</code>)</td>
</tr>
<tr>
<td style="text-align: left;">clientIp</td>
<td style="text-align: left;">Y</td>
<td style="text-align: left;">Y</td>
<td style="text-align: left;">15</td>
<td>clientIp</td>
</tr>
<tr>
<td style="text-align: left;">clientAccount</td>
<td style="text-align: left;">Y</td>
<td style="text-align: left;">Y</td>
<td style="text-align: left;">25</td>
<td>clientAccount</td>
</tr>
<tr>
<td style="text-align: left;">clientTerminal</td>
<td style="text-align: left;">Y</td>
<td style="text-align: left;">N</td>
<td style="text-align: left;">50</td>
<td>pc:<code>1</code><br>android:<code>2</code><br>ios:<code>3</code></td>
</tr>
<tr>
<td style="text-align: left;">payerName</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">25</td>
<td>payerName。<br><code>If this params is empty, and the aisle is required to be passed, it will jump to the payerName input page</code></td>
</tr>
<tr>
<td style="text-align: left;">merchRemark</td>
<td style="text-align: left;">N</td>
<td style="text-align: left;">N</td>
<td style="text-align: left;">240</td>
<td>remark</td>
</tr>
<tr>
<td style="text-align: left;">sign</td>
<td style="text-align: left;">Y</td>
<td style="text-align: left;">N</td>
<td style="text-align: left;">2048</td>
<td>sign</td>
</tr>
<tr>
<td style="text-align: left;">signType</td>
<td style="text-align: left;">Y</td>
<td style="text-align: left;">N</td>
<td style="text-align: left;">6</td>
<td><code>MD5</code></td>
</tr>
</tbody>
</table>
<p><strong>1.4 MD5 Sign </strong></p>
<p><strong>1.4.1 MD5 Sign Description</strong>
The data to be signed is the parameter with the value of <code>Y</code> in the Sign column (<code>contains empty value</code>) and the key in the above table,Signature order as table in ASCII Sort( <code>CASE SENSITIVE</code> ) from <code>a to z</code>。 The MD5 signature result needs to be converted to uppercase,The original string and format are as follows:</p>
<pre><code class="language-java">amount={amount}&appId={appId}&clientAccount={clientAccount}&clientIp={clientIp}&merchOrderNo={merchOrderNo}&notifyUrl={notifyUrl}&orderDate={orderDate}&orderType={orderType}&key={key}</code></pre>
<p><strong>1.4.2 MD5 Sign Example:(Ex: appId=1234,key=123456789)</strong></p>
<pre><code class="language-java">amount=100.00&appId=1234&clientAccount=TEST&clientIp=192.168.0.1&merchOrderNo=PF202008300005332944
&notifyUrl=http://api.callbackTest.com&orderDate=20200830202601&orderType=1
&key=123456789</code></pre>
<p>The result of MD5 encryption is <code>FBF0941E45922AAF67B1E6D00DD0AAB7</code></p>
<hr>
<h3><strong>2. Notify Deposit Order( AUTOPAY notify merchant system)</strong></h3>
<p><strong><code>After receiving the asynchronous notification, please call our query url to confirm the order status !</code></strong></p>
<p><strong>2.1 URL:createDepositOrder <code>notifyUrl</code></strong>
<strong>2.2 Http Method:POST FORM</strong>
<strong>2.3 Parameters:</strong></p>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Required</th>
<th>Sign</th>
<th>Length</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>appId</td>
<td>Y</td>
<td>Y</td>
<td>30</td>
<td>Merchant id opened by the merchant on the platform</td>
</tr>
<tr>
<td>orderNo</td>
<td>Y</td>
<td>Y</td>
<td>32</td>
<td>Platform system unique order number(AUTOPAY)</td>
</tr>
<tr>
<td>merchOrderNo</td>
<td>Y</td>
<td>Y</td>
<td>32</td>
<td>Merchant system unique order number</td>
</tr>
<tr>
<td>status</td>
<td>Y</td>
<td>Y</td>
<td>4</td>
<td>Wait(<code>100</code>)、Pending(<code>200</code>)、Success(<code>300</code>)、Fail(<code>400</code>)</td>
</tr>
<tr>
<td>orderDate</td>
<td>Y</td>
<td>Y</td>
<td>14</td>
<td><code>YYYYMMddHHmmss</code> <br>ex:20180529123020</td>
</tr>
<tr>
<td>amount</td>
<td>Y</td>
<td>Y</td>
<td>15</td>
<td>transfer amount</td>
</tr>
<tr>
<td>merchRemark</td>
<td>N</td>
<td>N</td>
<td>240</td>
<td>remark</td>
</tr>
<tr>
<td>sign</td>
<td>Y</td>
<td>N</td>
<td>1024</td>
<td>sign</td>
</tr>
</tbody>
</table>
<p><strong>2.4 Response Data:</strong></p>
<p>After receiving the notification and processing is successful, please return the string <code>AUTOPAY</code></p>
<p><strong>2.5 MD5 Sign </strong></p>
<p><strong>2.5.1 MD5 Sign Description</strong>
The data to be signed is the parameter with the value of <code>Y</code> in the Sign column (<code>contains empty value</code>) and the key in the above table,Signature order as table in ASCII Sort( <code>CASE SENSITIVE</code> ) from <code>a to z</code>。 The MD5 signature result needs to be converted to uppercase,The original string and format are as follows:</p>
<pre><code class="language-java">amount={amount}&appId={appId}&merchOrderNo={merchOrderNo}&orderNo={orderNo}&status={status}&orderDate={orderDat}&key={key}</code></pre>
<p><strong>2.5.2 MD5 Sign Example:(Ex: appId=1234,key=123456789)</strong></p>
<pre><code class="language-java">amount=100.00&appId=1234&merchOrderNo=PF202008240003978416&orderNo=DF202008249980000001
&status=400&orderDate=20200830183510&key=123456789</code></pre>
<p>The result of MD5 encryption is <code>8DAF2249C7DCAC8809F840E4D07D96A0</code></p>
<hr />
<h3><strong>3. Query Deposit Order</strong></h3>
<p><strong>3.1 Deposit query request URL</strong>
<code>URL: domain + /DMAW2KD7/autoPayDs/queryOrder.zv</code></p>
<p><strong>3.2 HTTP Request: <code>FORM POST</code> </strong>
<strong>3.3 Parameters:</strong></p>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Required</th>
<th>Sign</th>
<th>Length</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>appId</td>
<td>Y</td>
<td>Y</td>
<td>30</td>
<td>Merchant id opened by the merchant on the platform</td>
</tr>
<tr>
<td>merchOrderNo</td>
<td>Y</td>
<td>Y</td>
<td>32</td>
<td>Merchant system unique order number</td>
</tr>
<tr>
<td>sign</td>
<td>Y</td>
<td>B</td>
<td>1024</td>
<td></td>
</tr>
</tbody>
</table>
<p><strong>3.4 MD5 Sign </strong>
<strong>3.4.1 MD5 Sign Description</strong>
The data to be signed is the parameter with the value of <code>Y</code> in the Sign column (<code>contains empty value</code>) and the key in the above table,Signature order as table in ASCII Sort( <code>CASE SENSITIVE</code> ) from <code>a to z</code>。 The MD5 signature result needs to be converted to uppercase,The original string and format are as follows:</p>
<pre><code class="language-java">appId={appId}&merchOrderNo={merchOrderNo}&key={key}</code></pre>
<p><strong>3.4.2 MD5 Sign Example:(Ex: appId=1234,key=123456789)</strong></p>
<pre><code class="language-java">appId=1234&merchOrderNo=PF202008240003978416&key=123456789</code></pre>
<p>The result of MD5 encryption is <code>43D25D0A0DA0AC3B3E4C266ACF989D4E</code></p>
<p><strong>3.5 Response </strong>
<strong>3.5.1 Response parameters:</strong></p>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Required</th>
<th>Sign</th>
<th>Length</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>code</td>
<td>Y</td>
<td>N</td>
<td>4</td>
<td>Response code,<code>0000</code> indicates that the request was successful.</td>
</tr>
<tr>
<td>msg</td>
<td>Y</td>
<td>N</td>
<td>2048</td>
<td>Response message</td>
</tr>
<tr>
<td>data</td>
<td>Y</td>
<td>N</td>
<td>4096</td>
<td>Response data</td>
</tr>
</tbody>
</table>
<p><strong>3.5.2 Response parameters(data):</strong></p>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Required</th>
<th>Sign</th>
<th>Length</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>orderNo</td>
<td>Y</td>
<td>Y</td>
<td>32</td>
<td>Platform system unique order number(AUTOPAY)</td>
</tr>
<tr>
<td>merchOrderNo</td>
<td>Y</td>
<td>Y</td>
<td>32</td>
<td>Merchant system unique order number</td>
</tr>
<tr>
<td>amount</td>
<td>Y</td>
<td>Y</td>
<td>15</td>
<td>transfer amount</td>
</tr>
<tr>
<td>status</td>
<td>Y</td>
<td>Y</td>
<td>4</td>
<td>Wait(<code>100</code>)、Pending(<code>200</code>)、Success(<code>300</code>)、Fail(<code>400</code>)</td>
</tr>
<tr>
<td>orderDate</td>
<td>Y</td>
<td>Y</td>
<td>14</td>
<td><code>YYYYMMddHHmmss</code> <br>ex:20180529123020</td>
</tr>
<tr>
<td>sign</td>
<td>Y</td>
<td>N</td>
<td>2048</td>
<td>sign</td>
</tr>
<tr>
<td>signType</td>
<td>Y</td>
<td>N</td>
<td>6</td>
<td><code>MD5</code></td>
</tr>
</tbody>
</table>
<p><strong>Success example</strong></p>
<pre><code class="language-json">{"msg":"请求成功",
"code":"0000",
"data":{"amount":"93.98",
"orderDate":"",
"orderNo":"DF202008209980000003",
"sign":"9B5EB1E54A658FB179D05762C84F7464",
"status":"100",
"merchantOrderNo":"PF202008200001800685"}
}</code></pre>
<p><strong>Fail example</strong></p>
<pre><code class="language-json">{"msg":"缺少必要参数[appId not found]","code":"1000","data":""}</code></pre>