Alipay+ DocsAlipay+ Docs

Respond to payment inquiry

Alipay+ calls the inquiryPayment API to inquire about the payment result of the Mobile Payment Provider (MPP) when Alipay+ does not receive the final payment result (success or failure) from the notifyPayment API.

Processing logic

When responding to the inquiryPayment request from Alipay+, you need to pay attention to the rules below.

  • You need to return two kinds of results. The parameter result is the result of the API call and the parameter paymentResult is the result of the payment.
  • If the payment order does not exist, return a result.resultStatus of F and result.resultCode of ORDER_NOT_EXIST.
  • If the payment order exists, return a result.resultStatus of S , a result.resultCode of SUCCESS, and a paymentResult according to your payment processing result.
    • If the payment succeeds, return a paymentResult.resultStatus of S , a paymentResult.resultCode of SUCCESS.
    • If the payment is being processed, return a paymentResult.resultStatus of U , a paymentResult.resultCode of PAYMENT_IN_PROCESS.
    • If the payment fails, return a paymentResult.resultStatus of F and an error code that is corresponding to a specific reason.
      • Recommended: If the payment is declined for risk reasons, return a paymentResult.resultCode of RISK_REJECT.
      • Recommended: If the user's payment methods that are linked to the MPP are unavailable, return a paymentResult.resultCode of UNAVAILABLE_PAYMENT_METHOD.
      • Recommended: If the user verification fails, return a paymentResult.resultCode of USER_PAYMENT_VERIFICATION_FAILED.
      • Recommended: If the user's KYC fails, return a paymentResult.resultCode of USER_KYC_NOT_QUALIFIED.
      • Recommended: If the merchant verification fails, return a paymentResult.resultCode of MERCHANT_NOT_REGISTERED.
    • If the payment is cancelled, return a paymentResult.resultStatus of F and a paymentResult.resultCode of ORDER_IS_CLOSED.
  • When no response from the MPP is received, Alipay+ retries the inquiry request at incremental time intervals until receiving the final payment result status of S or F , or until the payment expires. Currently, the intervals are 4s, 4s, 30s, 60s, 60s, 60s, 5min, and 5min. The intervals are subject to change in the future by Alipay+.

Sample

The following sample shows the request and response of the inquiryPayment API.

Request from Alipay+ to the MPP

Alipay+ sends the payment inquiry request.

copy
{
  "acquirerId": "1022188000000000001",
  "pspId": "1022172000000000001",
  "paymentRequestId": "20200101234567890132"
}

Response from the MPP to Alipay+

The MPP returns a response that indicates a successful payment result.

copy
{
 "result": {
    "resultCode":"SUCCESS",
    "resultStatus":"S",
    "resultMessage":"Success"
  },
 "paymentResult": {
    "resultCode":"SUCCESS",
    "resultStatus":"S",
    "resultMessage":"Success"
 },
 "paymentId":"2020010123456789013****", 
 "paymentTime": "2020-01-01T12:01:01+08:30",
 "paymentAmount":{
    "value":"100",
    "currency":"JPY"
 },
 "payToAmount":{
    "value":"1000",
    "currency":"KRW"
 }, 
 "customerId":"1234567"
}

Related links

For more information about how to use the inquiryPayment API (such as the field description), see inquiryPayment.