Payment API
Tips
- All requests are
Postrequests, and the data format isjson
Brief Description
- None
Request URL
/v1/paypro/payIn
Request Method
- POST
Header
| Header | Required | Type | Description |
|---|---|---|---|
| merchantNo | Yes | string | - |
Body
| Parameter Name | Required | Type | Description |
|---|---|---|---|
| sign | Yes | string | Except for the sign, concatenate the remaining fields in alphabetical order to form key1=value1key2=value2, then use the app secret as salt to perform MD5 encryption. The sign should be in lowercase letters. |
| timestamp | Yes | long | Timestamp (e.g., 1715941383720) |
| amount | Yes | string | Payment amount |
| username | yes | string | User Name |
| mobile | yes | string | User's mobile phone number |
| yes | string | email account | |
| channelCode | yes | string | channelCode๏ผEWALLETใVA๏ผ |
| wayCode | no | string | wayCode โข channelCode๏ผEWALLET๏ผwayCode๏ผPALMPAY โข channelCode๏ผVA๏ผwayCode๏ผVA |
| tradeNo | Yes | string | Transaction number (should be unique; suggested format: YYYYMMDDHHMMSS + random number) |
| remark | No | string | Remarks; this field will be returned as is |
| notifyUrl | Yes | string | Asynchronous callback URL (e.g., https://www.abc.com/); if not provided, the system will redirect to the default success page |
| returnUrl | No | string | Redirect page after successful payment |
Request Parameter Example
{
"sign": "f5b02d1e945897f194b32d9ef9773a6e",
"timestamp": 1748247671673,
"tradeNo": "pSPqrzJJ3MHkdyzS",
"amount": "500",
"mobile": "15875595997",
"email": "kevin@gmail.com",
"username": "kevin",
"channelCode": "EWALLET",
"wayCode": "PALMPAY",
"notifyUrl": "http://www.google.com",
"returnUrl": "http://www.google.com",
"remark": "test"
}
Response Result
| Parameter Name | Required | Type | Description |
|---|---|---|---|
| msg | Yes | string | Request result (Returning "success" only indicates the request was successful; it should not be used for merchant-side logic) |
| code | Yes | string | Request response code (Returning "0000" only indicates the request was successful; it should not be used for merchant-side logic) |
| timestamp | Yes | string | Transaction time |
| success | Yes | string | Transaction result |
| data | Yes | Object | Response object |
| data.tradeNo | Yes | string | Merchant transaction number returned |
| data.platFormTradeNo | Yes | string | Unique paypro transaction number |
| data.payInfo | Yes | string | Payment information, payment link, or QR code information |
| data.status | Yes | string | Request result; merchants can use this for logical processing. "0000" indicates transaction success, "0015" indicates processing, and other codes are error codes that can be treated as failures. |
| data.message | Yes | string | Error description |
| data.remark | Yes | string | Returned content of the request (returned as is) |
Successful Response Example
{
"msg": "success",
"code": "0000",
"timestamp": 1748247675703,
"success": true,
"data": {
"tradeNo": "pSPqrzJJ3MHkdyzS",
"platFormTradeNo": "7gwtljttc64lu4e2",
"status": "0015",
"message": "PAYING",
"payInfo": "https://checkout-daily.palmpay.com/h5-checkout/?countryCode=NG&payToken=7559FE189BED3CBFA73F312B2F89A776&orderNo=24250526082115233296&signKey=E7gqlir8PIf0_1lLg0ochAgeaA4rv4dDJlEO3qlvAo8&signSession=24250526082115233296&appId=L240927093144197211431&productType=pay_wallet&businessMode=three_mode&identityType=NEW&callable=true",
"remark": "test"
}
}
