KlicklPay 英文收单接口文档

KlicklPay 英文收单接口文档


Withdrawal callback

<p><strong>Brief description</strong></p> <ul> <li> Withdrawal callback</li> </ul> <p><strong>Attention:</strong></p> <ul> <li> <p>The same notification may be sent to the merchant system multiple times. The merchant system must be able to handle duplicate notifications correctly. The recommended practice is that when the merchant system receives a notification for processing, it first checks the status of the corresponding business data and determines whether the notification has been processed. If it has not been processed, it is processed again; if it has been processed, the result is returned directly as successful. Before checking and processing the status of business data, data locking should be used for concurrency control to avoid data confusion caused by function re-entry.</p> </li> <li> <p>If no KlicklPay callback is received, the merchant should call the order inquiry interface to confirm the order status</p> </li> <li>The merchant system must do signature verification for the content of the opening result notification, and verify whether the information notified is consistent with the information on the merchant side to prevent data leakage resulting in &quot;fake notifications&quot;, resulting in financial losses.</li> </ul> <p><strong>Notification rules:</strong></p> <ul> <li> <p> After the user withdraws the coins, KlicklPay will send the relevant withdrawal results to the merchant, who will need to receive and process the message and return an answer.</p> </li> <li>When interacting with backend notifications, if KlicklPay receives a response from a merchant that does not meet the specification or timeout, KlicklPay considers the notification to have failed and KlicklPay will periodically re-initiate the notification through certain policies</li> </ul> <p><strong>Request method:</strong></p> <ul> <li><code>POST</code></li> </ul> <p><strong>Example of signature</strong> (Sort the parameters in ascending order by name, then add the key for MD5 to get the mac value)</p> <pre><code>mac=MD5(address=TEE16CHfyCxxBDK9TT5fTSsuPBze1WbgdZ&amp;amount=100&amp;coin=TRC20_USDT&amp;creationTime=1644864196992&amp;fee=1&amp;outWithdrawalNo=1493412559678607361&amp;status=5&amp;timeStamp=1644864384840&amp;txId=6c9a5d162a4df1ceeda734386914e7849a3382ff7c77649d091d26b3876377bc&amp;withdrawalNo=W202202151493415587320909824&amp;withdrawalUserId=10409&amp;secretKey=b33d9fa8-ba71-474e-96bc-4217e4b989d6)</code></pre> <p><strong>Description of notification parameters</strong></p> <table> <thead> <tr> <th style="text-align: left;">Parameter name</th> <th style="text-align: left;">Type</th> <th>Maximum length</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">withdrawalNo</td> <td style="text-align: left;">string</td> <td>64</td> <td>Return date</td> </tr> <tr> <td style="text-align: left;">outWithdrawalNo</td> <td style="text-align: left;">string</td> <td>64</td> <td>Payment platform withdrawal order number</td> </tr> <tr> <td style="text-align: left;">withdrawalUserId</td> <td style="text-align: left;">string</td> <td>64</td> <td>Merchant platform withdrawal order number</td> </tr> <tr> <td style="text-align: left;">amount</td> <td style="text-align: left;">decimal</td> <td>decimal(65,30)</td> <td>Order amount</td> </tr> <tr> <td style="text-align: left;">fee</td> <td style="text-align: left;">decimal</td> <td>decimal(65,30)</td> <td>Withdrawal fee</td> </tr> <tr> <td style="text-align: left;">status</td> <td style="text-align: left;">int</td> <td></td> <td>Status(0:pending merchant review; 1:pending operation review; 2:pending release; 3: transfer in progress; 4:rejected; 5:completed; 7:abnormal; only in 4 rejected and 5 completed will be called back )</td> </tr> <tr> <td style="text-align: left;">address</td> <td style="text-align: left;">string</td> <td>256</td> <td>Deposit address</td> </tr> <tr> <td style="text-align: left;">coin</td> <td style="text-align: left;">string</td> <td>32</td> <td>coin</td> </tr> <tr> <td style="text-align: left;">txId</td> <td style="text-align: left;">string</td> <td>text</td> <td>Transaction ID for chain,There may be multiple TxId's. If the withdrawal order is rejected, the txId will be empty and no signature or callback will be added. See notes for txId example</td> </tr> <tr> <td style="text-align: left;">creationTime</td> <td style="text-align: left;">long</td> <td></td> <td>Withdrawal time</td> </tr> <tr> <td style="text-align: left;">mac</td> <td style="text-align: left;">string</td> <td></td> <td>Signature</td> </tr> <tr> <td style="text-align: left;">timeStamp</td> <td style="text-align: left;">long</td> <td></td> <td>Current UTC time stamp</td> </tr> </tbody> </table> <p><strong>Notification of response</strong></p> <ul> <li> Payment notification http answer code is 200 or 204 will be treated as normal reception, when the callback processing exception, the HTTP status code of the answer should be 500, or 4xx , isSuccess = false , message fill in the reason for the exception. <pre><code>{     "isSuccess": "true",      "message": "success" }</code></pre></li> </ul> <p><strong>Description of notification parameters</strong></p> <table> <thead> <tr> <th style="text-align: left;">Parameter name</th> <th style="text-align: left;">Type</th> <th>Maximum length</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">orderNo</td> <td style="text-align: left;">string</td> <td>64</td> <td>Platform order number</td> </tr> <tr> <td style="text-align: left;">outOrderNo</td> <td style="text-align: left;">string</td> <td>64</td> <td>Merchant order number</td> </tr> </tbody> </table> <p><strong>Notes</strong></p> <ul> <li> For more return error codes, please refer to the error code description on the homepage.</li> </ul>

页面列表

ITEM_HTML