Authorization only
Some merchants may use a third-party Authentication provider and perform the authorization with EVO Cloud. In this case, you can submit a payment request to EVO Cloud with authentication data from the third-party 3D Secure provider.
Step 1: Perform the authentication with 3rd-party Authentication provider
Follow your existing integration process with third-party Authentication provider to get the authentication data required in the next step.
Step 2: Make a payment
With the authentication data from the third-party Authentication provider collected, you can make an HTTP POST request from your server to EVO Cloud endpoint
/g2/v1/payment/mer/{sid}/payment,
and specify the parameters below.
Parameter | Required | Description |
---|---|---|
authentication.threeDS.mpiData | O | The 3D Secure authentication data, required if the user goes through 3D Secure authentication. |
authentication.securePlus.securePlusData | O | The SecurePlus authentication data, required if the user goes through SecurePlus authentication. |
Details about authentication.threeDS.mpiData
Object
authentication.threeDS.mpiData.eci
: The electronic commerce indicator, required.authentication.threeDS.mpiData.cavv
: The CAVV value, required.authentication.threeDS.mpiData.dsTransID
: The directory server transaction ID, required if the user goes through 3D Secure 2 authentication.authentication.threeDS.mpiData.threeDSVersion
: The 3D Secure version, required if the user goes through 3D Secure 2 authentication. The current version that EVO Cloud supports is 2.1.0.
Details about authentication.securePlus.securePlusData
Object
authentication.securePlus.securePlusData.eci
: The raw result of the authentication returned from UnionPay to indicate the security status of this transaction, required.authentication.securePlus.securePlusData.vcode
: The verification code received from UnionPay, required.
Here is an example of sending a payment request to EVO Cloud with 3D Secure 2 authentication data get from a third-party provider:
1.curl -X POST https://{EVO_Cloud_DOMAIN_NAME.com}/g2/v1/payment/mer/{sid}/payment \
2.-H "Content-Type: application/json" \
3.-H "DateTime: 2021-12-31T08:30:59+0800" \
4.-H "MsgID: 2d21a5715c034efb7e0aa383b885fc7a" \
5.-H "SignType: SHA256" \
6.-H "Authorization: YOUR_MESSAGE_SIGNATURE" \
7.-d '{
8."merchantTransInfo": {
9. "merchantTransID": "288c550834d44b8bb57a0b79601faf28",
10. "merchantTransTime": "2021-12-31T08:30:59+08:00"
11. },
12. "transAmount": {
13. "currency": "USD",
14. "value": "10.00"
15. },
16. "paymentMethod": {
17. "type": "card",
18. "card": {
19. "cardInfo": {
20. "cardNumber": "4761340000000019",
21. "expiryDate": "2212",
22. "cvc": "946"
23. }
24. }
25. },
26. "authentication": {
27. "threeDS": {
28. "mpiData": {
29. "cavv": "AAABASOSczZYYyUxVpJzAAAAAAA=",
30. "eci": "05",
31. "dsTransID": "7ED14086-D39C-45AB-80F1-A489CB3B0701",
32. "threeDSVersion": "2.1.0"
33. }
34. }
35. },
36. "webhook": "https://YOUR_COMPANY.com/WEBHOOK",
37. "metadata": "This is a metadata"
38.}'
Your will receive the response containing result.code
to indicate the result. Here is an example of a successful payment response:
1.{
2. "result": {
3. "code": "S0000",
4. "message": "Success",
5. "pspResponseCode": "00",
6. "pspMessage": "Approval and completed successfully; Accepted and processed"
7. },
8. "paymentMethod": {
9. "card": {
10. "first6No": "476134",
11. "last4No": "0019",
12. "paymentBrand": "Visa",
13. "fundingType": "credit"
14. }
15. },
16. "payment": {
17. "status": "Authorised",
18. "merchantTransInfo": {
19. "merchantTransID": "288c550834d44b8bb57a0b79601faf28",
20. "merchantTransTime": "2021-12-31T08:30:59+08:00"
21. },
22. "evoTransInfo": {
23. "evoTransID": "82600f4990e6499baa4e40fb90c60977",
24. "evoTransTime": "2021-12-31T00:30:59Z"
25. },
26. "pspTransInfo": {
27. "pspTransTime": "2021-12-31T08:30:59+08:00",
28. "authorizationCode": "091410"
29. },
30. "transAmount": {
31. "currency": "USD",
32. "value": "10.00"
33. }
34. },
35. "pspData": {
36. "name": "Visa"
37. },
"metadata": "This is a metadata"
Step 3: Present the result
Use the result.code
and payment.status
to inform the user of the payment status. See the Appendix in the EVO Cloud API Specification for more details.
Result Code | Description |
---|---|
S0000 | Success |
For other possible result.code
values and recommended messages that you can present to your user, see the Appendix in the EVO Cloud API Specification.
If the result.code
is S0000
, you need to check the payment.status
to determine and inform your user of the payment status.
Status | Description |
---|---|
Authorised | Used for card transactions; means the transaction authorization is successfully completed and pending for capture (merchant can submit cancel). |
Captured | If a card transaction, means transaction authorization and capture are successfully completed; if an e-wallet transaction, means the transaction is successfully completed. |
Failed | Payment failed. |
For other possible payment.status
values and their descriptions, see the payment.status
section in the EVO Cloud API Specification.