Execute Transaction
EXECUTE_TRANSACTION_REQUEST
EXECUTE_TRANSACTION_UPDATE
EXECUTE_TRANSACTION_RESPONSE
To accept Alipay as alternative payment method, use the following
messages to execute transactions:
{
"type": "EXECUTE_TRANSACTION_REQUEST",
"resource": "",
"tag": "alipay",
"executeTransactionRequest": {
"mode": "ONLINE",
"transactionParameters": {
"type": "CHARGE",
"workflow": "ALTERNATIVE_PAYMENT_METHOD",
"amount": 5.0,
"currency": "EUR",
"autoCapture": true
},
"accountParameters": {
"shopperAccountIdentifier": "shopperId",
"source": "QR_CODE",
"scheme": "ALIPAY"
}
}
}
You need to provide the
accountParameters
along with the
transactionParameters
. Make sure to provide
shopperAccountIdentifier
(code scanned from
the customer's mobile app),
source
and
scheme
. For refunds you can use the
AMEND_TRANSACTION messages which can be found in
Message Specification.
Since executing transactions is a long-running operation, the server
provides the client with update messages that inform about the
current state of the transaction process.
{
"type": "EXECUTE_TRANSACTION_UPDATE",
"resource": "",
"tag": "alipay",
"status": "OK",
"executeTransactionUpdate": {
"state": "PROCESSING",
"stateDetails": "PROCESSING",
"information": ["Processing payment...", ""],
"abortable": false,
"transaction": {
"amount": 5.0,
"currency": "EUR",
"type": "CHARGE",
"captured": false,
"details": {},
"paymentDetails": {
"scheme": "UNKNOWN",
"source": "UNKNOWN",
"customerVerification": "UNKNOWN"
},
"refundDetails": {},
"status": "INITIALIZED",
"identifier": "ef914db9632a448a82a918bc7f359c21",
"createdTimestamp": 0,
"cardDetails": {
"expiryMonth": 0,
"expiryYear": 0
},
"shopperDetails": {},
"mode": "ONLINE",
"dccDetails": {
"status": "NOT_AVAILABLE",
"statusDetails": "NOT_AVAILABLE",
"convertedCurrency": "UNKNOWN"
}
}
}
}
Receiving an execute transaction response means that the long -running
operation is over and there will be no more related updates.
{
"type": "EXECUTE_TRANSACTION_RESPONSE",
"resource": "",
"tag": "alipay",
"status": "OK",
"executeTransactionResponse": {
"state": "APPROVED",
"stateDetails": "APPROVED",
"information": ["Payment approved", ""],
"transaction": {
"amount": 5.0,
"currency": "EUR",
"type": "CHARGE",
"captured": true,
"details": {},
"paymentDetails": {
"scheme": "ALIPAY",
"source": "QR_CODE",
"customerVerification": "NONE",
"maskedAccountNumber": "shopperId"
},
"refundDetails": {},
"status": "APPROVED",
"identifier": "ef914db9632a448a82a918bc7f359c21",
"createdTimestamp": 0,
"cardDetails": {
"expiryMonth": 0,
"expiryYear": 0
},
"shopperDetails": {},
"mode": "ONLINE",
"dccDetails": {
"status": "NOT_AVAILABLE",
"statusDetails": "NOT_AVAILABLE",
"convertedCurrency": "UNKNOWN"
}
}
}
}
The
transaction
object has the
same structure in all transaction-related updates and
responses (Get Transaction, Query Transactions, Execute
Transaction, Amend Transaction).
In order to generate
custom receipts, please make sure you are familiar with our
custom receipt functionality.