I'm Trying to make the payment with 3DS work, I have followed the three steps in this link:https://eu-gateway.mastercard.com/api/documentation/integrationGuidelines/supportedFeatures/pickAdditionalFunctionality/authentication/3DS/integrationModelAPI.html?locale=en_US
My Process:
Create a Session (Successful)
POST to "https://cibpaynow.gateway.mastercard.com/api/rest/version/71/merchant/TEST123456/session/"
Update the session with card details (Successful)
Initiate Authentication (Successful)[example code in steps link]https://cibpaynow.gateway.mastercard.com/api/rest/version/71/merchant/TEST123456/order/1/transaction/2
Authenticate Payer (Successful)[example code in steps link]
Proceed to payment (X)[example code in steps link]
So the issue at the last step, which I don't understand why does it happen, is when I run this, as mentioned in the steps with providing order.id and authentication.trasanctionId:
{"authentication" : {"transactionId": "2" },"session": {"id": "SESSION0002873236543L1392791G59" },"order":{"amount":"1","currency":"EGP","reference" : "1" },"apiOperation": "PAY","transaction":{"reference":"1" }}This is the response I get, which makes no sense since it should be the same transactionId that I was authenticating:
{"error": {"cause": "INVALID_REQUEST","explanation": "A transaction with this transaction ID has already been processed but the request parameters do not match. To process a new transaction for this order, the transaction.id must be unique for the order." },"result": "ERROR"}Does anyone know what I did wrong?
========= EDIT ========
I May have concluded that it might be that I'm initiating a PAYER_WEBSITE authentication, and I'm PAYING through an API put request, I don't really know but this is my only explanation, if this is the issue how should I initiate an authentication that can be completed using a request that is not necessary to be from a web site.