Alipay+ DocsAlipay+ Docs

Accept payment

To integrate the Merchant-presented Mode Payment Private Order Code, the Acquiring Partner (ACQP) needs to complete the following steps.

Merchant registration

In certain countries or regions, for legal or compliance reasons, the merchant information that is related to this payment must be registered before a payment can be processed. The merchant registration process only needs to be performed once. For more information, see Registration.

Implement the userInitiatedPay interface

Because the private order code is generated by the ACQP, Alipay+ system verifies with the ACQP about the order detail information. When Alipay+ sends a decoding request to the ACQP, the ACQP must returns the corresponding order information.

For each QR code, the ACQP must keep the order details in the system, and return the order details to Alipay+ per request.

The userInitiatedPay interface must be defined in the ACQP system and used once the user scans the order code.

Processing logic

  • It is recommended to listen to the Async notification from the Alipay+ system. Meanwhile, calling the inquiryPayment interface to get the result is also needed.
  • The ACQP must ensure that the QR code for each transaction is unique.
  • If the ACQP receives multiple requests with a same codeValue, the Acquirer must return the same responses, including the paymentRequestId.
  • To enable the merchant page to be opened in the supported wallet, the ACQP must provide the domain name of the QR link to the Alipay+ technical team; otherwise, Mobile Payment Partner wallets are unable to open it.

Sample

Alipay+ sends the request to the ACQP.

copy
{
  "acquirerId": "2021228100000000",
  "pspId":"1022172000000000001",
  "codeValue":"http://a.com/2810060438884961634",
  "customerId":"208812211212001"
}

The ACQP returns the response to Alipay+.

copy
{
	"result": {
		"resultCode": "SUCCESS",
		"resultStatus": "S",
		"resultMessage": "success"
	},
	"codeType": "ORDER_CODE",
	"order": {
		"referenceOrderId": "OrderID_010101001",
		"orderDescription": "SHOES",
		"orderAmount": {
			"value": "100",
			"currency": "JPY"
		},
		"merchant": {
			"referenceMerchantId": "M0000000001",
			"merchantMCC": "1405",
			"merchantName": "UGG",
			"store": {
				"referenceStoreId": "S000000001",
				"storeName": "UGG-2",
				"storeMCC": "1405"
			},
      "merchantAddress": {
        "region": "JP",
        "city": "xxx"
      }
		},
    "env":{
    	"storeTerminalId":"122222",
      "storeTerminalRequestTime": "2019-06-01T12:01:01+08:00"
    }
	},
	"paymentRequestId": "20200101234567897890",
	"paymentAmount": {
		"value": "100",
		"currency": "JPY"
	},
	"paymentFactor": {
		"isInStorePayment": "true",
		"isCashierPayment": "true",
    "inStorePaymentScenario":"OrderCode"
	},
	"settlementStrategy": {
		"settlementCurrency": "USD"
	},
	"paymentRedirectUrl": "https://alipay.com"
}

More information

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

Handle payment result notifications

Alipay+ calls the notifyPayment interface to notify the ACQP about the payment result when payment reaches a final state of success or failure. After that, the ACQP needs to notify merchants of the result accordingly.

For how to receive and handle Alipay+ payment result notification, and the sample codes, see Receive payment notification.