The method that is used to submit order details to Visa Checkout depends on the model you use to integrate to Worldpay. See Direct integration if you host your own payment page, or Hosted Payment Pages (HPP) integration if Worldpay host the payment page for you.
With this integration, you provide the web page that lists the various payment methods (including Visa Checkout) that you offer. As such, you will need to contact Visa through the Visa Checkout website to register and obtain the relevant information, including the call ID to send to Worldpay in your XML requests (see Visa Checkout preliminaries).
Note: The call ID is a string that is used by Worldpay and Visa to identify the transaction as a Visa Checkout transaction. Once you are successfully boarded and integrated with Visa Checkout, you should be able to send a valid call ID as part of the transaction.
With this integration, you interact directly with our APIs: see Direct Integration in the XML Integration Guide for more details.
Visa provide detailed technical documentation on their website.
Warning: You must follow the Visa Checkout branding and security guidelines which are described on the Visa Checkout website.
Here is an outline of the process you must follow:
Ensure that you have registered with Visa and signed up for Visa Checkout with Worldpay. This account, sometimes called a Visa Partner Portal, gives you access to the sandbox, live URLs and an API key.
In your payment screen, add a suitable Visa Checkout button. Shoppers click or tap this button from a payment method page. When the button is activated, a lightbox appears. There are rules and guidelines that govern the placement of this button and its size, colour, and other characteristics.
Once you have chosen the button, you must install the relevant SDK. See the Visa Checkout Developer site for more details. If you are integrating a mobile website, you can find the Android and iOS SDKs here.
Configure the button with a Visa Checkout generated API key. You can get this API key from the Visa Partner Portal.
Use the API key to initialise the Visa Checkout service.
Set your event handler so it is ready to receive a payment success response that contains a Visa checkout call ID.
Enable the security settings that prevent clickjacking.
Here is an example direct XML submission to Worldpay for Visa Checkout:
Select
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService version="1.4" merchantCode="YOUR_MERCHANT_CODE">
<submit>
<order orderCode="jsxml3593493055">
<description>test order</description>
<amount value="100" currencyCode="EUR" exponent="2"/>
<orderContent>
<![CDATA[]]>
</orderContent>
<paymentDetails>
<VISACHECKOUT-SSL>
<callId>6661744928699339901</callId>
</VISACHECKOUT-SSL>
<session shopperIPAddress="127.0.0.1" id="ssn569276792"/>
</paymentDetails>
<shopper>
<shopperEmailAddress>sp@worldpay.com</shopperEmailAddress>
<browser>
<acceptHeader>text/html</acceptHeader>
<userAgentHeader>Mozilla/5.0 ...</userAgentHeader>
</browser>
</shopper>
</order>
</submit>
</paymentService>
With this integration, Worldpay host the web page that lists the various payment methods (including Visa Checkout) that you offer. See Hosted Integration in the XML Integration Guide for more details.
This feature on the hosted integration makes it easier for your shoppers to access the Visa Checkout login page. When enabled, shoppers select Visa Checkout on your web page and are redirected to a lightbox where they’ll only see Visa Checkout as a payment option.
To enable this bypass feature:
For the required parameters and technical details, see Hosted Integration in the XML Integration Guide.
Note: If you have enabled multiple languages and countries that allow shoppers to bypass the Payment Selection page, you should also append the shopper's language code and country code.
As part of your XML request, you can submit Visa Checkout promotional and discount codes as additional data with various values. Refer to the Visa detailed technical documentation for more information.
The supported values are:
discount
promoCode
shippingHandling
tax
giftwrap
misc
The additional data that you submit in the XML request will look similar to this:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService version="1.4" merchantCode="YOUR_MERCHANT_CODE">
<submit>
<order orderCode="jsxml3593493055">
<description>test order</description>
<amount value="100" currencyCode="EUR" exponent="2"/>
<orderContent>
<![CDATA[]]>
</orderContent>
<paymentDetails>
<VISACHECKOUT-SSL>
<callId>6661744928699339901</callId>
<extraData>discount=500;promoCode=SPECIAL1;shippingHandling=399;tax=299;giftwrap=true;misc=499</extraData>
</VISACHECKOUT-SSL>
<session shopperIPAddress="127.0.0.1" id="ssn569276792"/>
</paymentDetails>
<shopper>
<shopperEmailAddress>sp@worldpay.com</shopperEmailAddress>
<browser>
<acceptHeader>text/html</acceptHeader>
<userAgentHeader>Mozilla/5.0 ...</userAgentHeader>
</browser>
</shopper>
</order>
</submit>
</paymentService>
Note: The billing address associated with a payment card in a Visa Checkout wallet will automatically override any billing address that you submit with the order details. This may have an effect on your risk checking procedures, as the security checks are done on the address associated with the payment card, as opposed to any different address that you have associated with the shopper.
The response will look similar to this:
<paymentService version="1.4" merchantCode="YOUR_MERCHANT_CODE">
<reply>
<orderStatus orderCode="jsxml123456789">
<payment>
<paymentMethod>VISACHECKOUT-SSL</paymentMethod>
<amount value="100" currencyCode="GBP" exponent="2" debitCreditIndicator="credit"/>
<lastEvent>AUTHORISED</lastEvent>
<CVCResultCode description="UNKNOWN"/>
<AVSResultCode description="APPROVED"/>
<AAVAddressResultCode description="UNKNOWN"/>
<AAVPostcodeResultCode description="UNKNOWN"/>
<AAVCardholderNameResultCode description="UNKNOWN"/>
<AAVTelephoneResultCode description="UNKNOWN"/>
<AAVEmailResultCode description="UNKNOWN"/>
<ThreeDSecureResult description="Cardholder authenticated"/>
<cardHolderName><![CDATA[TEST NAME]]></cardHolderName>
<issuerCountryCode>GB</issuerCountryCode>
<balance accountType="IN_PROCESS_AUTHORISED">
<amount value="100" currencyCode="GBP" exponent="2" debitCreditIndicator="credit"/>
</balance>
<cardNumber>0000********0000</cardNumber>
<riskScore value="21"/>
</payment>
</orderStatus>
</reply>
</paymentService>
If you want to see whether a payment was made using Visa Checkout, you can view the transaction details in the Merchant Admin Interface (MAI) - see Viewing Visa Checkout transactions. You can also ask Worldpay Corporate Support to enable a dedicated report that shows Visa Checkout transactions.
See Managing Visa Checkout transactions for more information.
If you have the applicable payment cards enabled on your Worldpay account, then these and their associated 3D Secure settings are also applicable for Visa Checkout transactions.
Note: 3D Secure occurs on a per-transaction basis, and liability shift only occurs for each transaction that is 3D Secure authenticated.
CVV/CVC checks are not made on Visa Checkout transactions unless the shopper updates their card details or adds a new card during the payment process. Consequently, the CVC result for Visa Checkout transactions (assuming the card is not updated or a new card is added) is:
(B) CVV/CVC not supplied by shopper/merchant.
Guide feedback?
Email us at: guides@worldpay.com |
© FIS 2020, and/or its subsidiaries. All rights reserved. |