Updates & Callbacks
- Endpoint:
POST /payLinkResultNotifyUrl - Tags: Collection Service/PayByLink
Description
Call back link details when the link is successfully paid. It is not necessary to actively requested this address for the merchant. The following request.body is the callback content of payermax for the order status. The merchant needs to respond {"msg": "Success","code": "SUCCESS"} after receiving the callback.
Parameters
| Field | In | Type | Required | Constraints | Description |
|---|---|---|---|---|---|
Content-Type | header | string | Yes | ||
sign | header | string | Yes | 签名信息请参考技术文档 |
Parameter Examples
Content-Type:"application/json"sign:"FPFVT3o227JrFRbqu19boZCpVVTF9KznxyRawUmxpfXilHV/0yK46haPhAjNu1hPUMy7Vw/ILXhfzffNm4Fj0apWknlTY9OJxnSoQxS9BTFtc61tn5yV1q69x/kkBl82/qwg+XTJ4fOzy7Mar3VaC1E2PlDA6RkkKBUyNE6RYgsdB+Su7an4+4HVTNAnoe74WyvBgxTLMNg28igBTdqxaO3w/UBY6ObVp7vkqkQGdL1Y+HgmMYaAVwrM3+ALWGId0sJ+YqTY4WJ+0xCRGhaSnybiIjZsQEYyID68WNUfuavDLDsEhaMm/HfQvf5p0R1Ltovp3wwJnEbQcjY458iX5A=="
Request Body
Content-Type: application/json
| Field | Type | Required | Constraints | Description | Enum |
|---|---|---|---|---|---|
code | string | Yes | maxLength: 32 | Return code, ‘APPLY_SUCCESS’ means success. | |
msg | string | Yes | maxLength: 256 | Return message, ‘Success.’ | |
keyVersion | string | Yes | maxLength: 8 | key version. Current value: 1 | |
appId | string | Yes | maxLength: 64 | merchant app id. | |
merchantNo | string | Yes | maxLength: 15 | merchant Id. | |
notifyTime | string | Yes | maxLength: 16 | Notification time, conforming to rfc3339 specification, format: yyyy-MM-dd’T’HH:mm:ss.SSSXXX. | |
notifyType | string | Yes | maxLength: 16 | Notification type PAYBYLINK. | |
data | object | No | |||
data.linkId | string | Yes | maxLength: 64 | PMmax link unique number. | |
data.merchantLinkId | string | Yes | maxLength: 64 | Merchant link unique order number. | |
data.linkUrl | string | Yes | maxLength: 256 | PayByLink url. | |
data.qrCodeUrl | string | Yes | maxLength: 256 | PayByLink QRcode url. | |
data.linkStatus | string | Yes | maxLength: 16 | ACTIVE、EXPIRED. | |
data.totalAmount | string | Yes | maxLength: 24 | order amount. | |
data.country | string | Yes | maxLength: 2 | Country code, uppercase letters. If the passed country code does not match the currency, the cash register will be displayed in the region corresponding to the currency code. If the payment method is specified, the country must be sent, see【Trading Supported Countries/Regions and Currencies】 | |
data.currency | string | Yes | maxLength: 3 | Currency code, uppercase letters, see【Trading Supported Countries/Regions and Currencies】 | |
data.expiresAt | string | Yes | maxLength: 32 | The specific time when the link expires. | |
data.linkDescription | string | No | Link description, not displayed to users, used for merchant notes. | ||
data.payByLinkInfo | array[object] | No | The transaction details structure of the linked order will only return successful payment details. | ||
data.payByLinkInfo[].outTradeNo | string | No | maxLength: 64 | The unique identifier of each transaction order, when the link does not generate a transaction, this field is empty. | |
data.payByLinkInfo[].status | string | Yes | maxLength: 32 | Transaction status: SUCCESS、PENDING、CLOSE. | SUCCESS, PENDING, CLOSE |
data.payByLinkInfo[].completeAt | string | No | maxLength: 32 | Transaction success time, only when the transaction status is successful, return this time. | |
data.payByLinkInfo[].paymentDetails | array[object] | No | Payment information, the payment method will be returned only if the transaction is successful. | ||
data.payByLinkInfo[].paymentDetails[].targetOrg | string | No | maxLength: 64 | Target institution, the target institution selected by the user for payment, and the target institution selected by the user for payment will be returned only if the transaction is successful. | |
data.payByLinkInfo[].paymentDetails[].paymentMethodType | string | No | maxLength: 64 | Payment method type, the payment method selected by the user to pay, and the payment method selected by the user to pay will be returned only if the transaction is successful. | |
data.payByLinkInfo[].paymentDetails[].cardInfo | object | No | Card Info | ||
data.payByLinkInfo[].paymentDetails[].cardInfo.cardOrg | string | No | maxLength: 32 | Card Scheme, will return when the user chooses card scheme to pay | |
data.payByLinkInfo[].paymentDetails[].cardInfo.country | string | No | maxLength: 2 | Card issuing country | |
data.payByLinkInfo[].paymentDetails[].cardInfo.cardType | string | No | maxLength: 32 | Card funding type, such as DEBIT、CREDIT and so on. | |
data.payByLinkInfo[].paymentDetails[].cardInfo.totalCardOrg | array[string] | No | Brand of the card.Dual-standard card returns two brands. | ||
data.payByLinkInfo[].paymentDetails[].cardInfo.type | string | No | maxLength: 32 | Type of the card. PAN is a full pan; NETWORK_TOKEN is not a full pan, such as APPLEPAY. | |
data.payByLinkInfo[].paymentDetails[].cardInfo.source | string | No | maxLength: 32 | Source of the card. CARD、APPLEPAY、GOOGLEPAY_PAN、GOOGLEPAY_CRYPTOGRAM、NETWORK_TOKEN | |
data.payByLinkInfo[].paymentDetails[].cardInfo.cardBinNo | string | No | maxLength: 16 | Card BIN number. | |
data.payByLinkInfo[].paymentDetails[].cardInfo.cardNumber | string | No | maxLength: 32 | Masked card number. | |
data.payByLinkInfo[].paymentDetails[].cardInfo.cardHolderName | string | No | maxLength: 128 | Masked cardholder name. | |
data.payByLinkInfo[].paymentDetails[].cardInfo.cardLast4 | string | No | maxLength: 4 | The last four digits of the card. | |
data.payByLinkInfo[].paymentDetails[].cardInfo.cardExpirationYear | string | No | maxLength: 2 | Two-digit number representing the card’s expiration year. | |
data.payByLinkInfo[].paymentDetails[].cardInfo.cardExpirationMonth | string | No | maxLength: 2 | Two-digit number representing the card’s expiration month. | |
data.payByLinkInfo[].paymentDetails[].cardInfo.cardIdentifierNo ⚠️ | string | No | maxLength: 19 | Card number, the ciphertext is returned when paymentMethod is CARD |
Example
json
{
"code": "APPLY_SUCCESS",
"msg": "Success.",
"keyVersion": "1",
"appId": "a801ef1fa1a74db683aed2d768a41df1",
"merchantNo": "020113827303196",
"notifyTime": "2022-10-20T10:00:00.500+08:00",
"notifyType": "PAYBYLINK",
"data": {
"linkId": "jyirffse",
"merchantLinkId": "paybylinktest001",
"totalAmount": "10000",
"country": "ID",
"currency": "IDR",
"linkStatus": "active",
"expiresAt": "2022-11-22T10:00:00.500+08:00",
"linkUrl": "https://www.payermax.link/mtfbpomjw",
"qrCodeUrl": "https://www.payermax.link/images/mtfbpomjwquc/qrcode",
"payByLinkInfo": [
{
"outTradeNo": "order2022001",
"status": "SUCCESS",
"completeAt": "2022-10-20T10:00:00.500+08:00",
"paymentDetails": [
{
"targetOrg": "",
"paymentMethodType": "CARD",
"cardInfo": {
"cardOrg": "VISA",
"cardNumber": "625244****9483"
}
}
]
}
]
}
}Responses
200
| Field | Type | Required | Constraints | Description | Enum |
|---|---|---|---|---|---|
code | string | Yes | Return code, ‘ SUCCESS’ means success | ||
msg | string | Yes | Return message, ‘Success.’ |
Response Example
json
{
"code": "SUCCESS",
"msg": "Success"
}Enum Reference
data.payByLinkInfo[].status
SUCCESSPENDINGCLOSE
