There are two additional requests that are required to make 3D Secure payments. These both should be called before the normal payment methods.
Get3DSecureRedirect: Checks that the payment card is 3D secure enrolled and then returns the third party redirect HTML.
Process3DSecureReturn: Returns the authentication information required to complete credit card payment after redirect.
The Get3DSecureRedirect requests performs two important tasks. First it is checked whether the card is enrolled for 3D secure payments. If not, the request will return false and the payment should proceed as a non secure payment.
If the card is enrolled for secure payments this request will return the HTML for the page the user should be redirected to.
The structure of the XML will be:
The structure of the XML will be:
The Process3DSecureReturn request takes the response from the third party payment provider and returns the information required to complete the payment.
<Get3DSecureRedirectRequest>
<LoginDetails>
<Login>demo</Login>
<Password>demo</Password>
<AgentReference />
<SellingCurrencyID>0</SellingCurrencyID>
<LanguageID>0</LanguageID>
<TrackingAffiliateID>0</TrackingAffiliateID>
<BrandID>0</BrandID>
<BookingSourceID>0</BookingSourceID>
<SalesChannelID>0</SalesChannelID>
<TradeID>0</TradeID>
<SellingCountryID>0</SellingCountryID>
<CurrencyID>0</CurrencyID>
<ItineraryInformation>false</ItineraryInformation>
</LoginDetails>
<UserIPAddress />
<BrowserAcceptHeader />
<UserAgentHeader />
<Payment>
<PaymentType />
<CCCardHoldersName />
<CCCardTypeID>0</CCCardTypeID>
<CCCardNumber />
<CCStartMonth />
<CCStartYear />
<CCExpireMonth />
<CCExpireYear />
<CCSecurityCode />
<CCIssueNumber>0</CCIssueNumber>
<TransactionID />
<Amount>0</Amount>
<Surcharge>0</Surcharge>
<TotalAmount>0</TotalAmount>
<ThreeDSecureCode />
<PaymentToken />
<PreAuthorisationOnly>false</PreAuthorisationOnly>
<OffsitePaymentTypeID>0</OffsitePaymentTypeID>
<CCCardToken />
<BasketReference />
<OverridePaymentCurrency>false</OverridePaymentCurrency>
<OverridePaymentCurrencyID>0</OverridePaymentCurrencyID>
<OverrideExchangeRate>0</OverrideExchangeRate>
<OverridePaymentAmount>0</OverridePaymentAmount>
<EncryptedCardDetails />
<UseEncryptedCardDetails>false</UseEncryptedCardDetails>
</Payment>
<BookingReference />
<RedirectURL />
</Get3DSecureRedirectRequest>