This guide allows you to achieve a significant speedup of the checkout process by re-using the data a customer entered for a previous transaction/registration. It's based on one of these two guides:
After the customer account details are stored, as part of the initial transaction/registration, you will need to keep a record of the associated registration IDs (token) that you can then use in step 1 below.
NOTE: For demonstration purposes we have created a registration, which will be used in your one-click checkout, with id(s): 8ac7a4a0739e4f720173a048387d7a7c,8ac7a49f739e470f0173a048391e1c24. Following the guides above, you may add additional registrations options to the checkout.
First perform a server-to-server POST request to prepare the checkout, this should include the registration IDs of the customer as shown below.
The registration IDs should be sent in the registrations[n].id
parameter, where n is a sequence number from zero, incrementing for each of the customer's registration IDs. For example, if the customer has two accounts on file, you would send registrations[0].id = {first registration.id}
and registrations[1].id = {second registration.id}
.
curl https://test.oppwa.com/v1/checkouts \-d "entityId=8a8294184e736012014e78a17a5615ac" \-d "amount=92.00" \-d "currency=EUR" \-d "paymentType=DB" \-d "registrations[0].id=8ac7a4a0739e4f720173a048387d7a7c" \-d "registrations[1].id=8ac7a49f739e470f0173a048391e1c24" \-d "createRegistration=true" \-H "Authorization: Bearer OGE4Mjk0MTg0ZTczNjAxMjAxNGU3OGExN2E2YTE1YjB8ZjJGRUtacXRCUA=="
Response:
{"result":{"code":"000.200.100","description":"successfully created checkout"},"buildNumber":"982467e36fd8bc9e74f536ba375c5d0be4fe48eb@2020-07-30 03:42:32 +0000","timestamp":"2020-07-30 15:23:37+0000","ndc":"B20EFF3A508805D585492DDFFE381BCC.uat01-vm-tx03","id":"B20EFF3A508805D585492DDFFE381BCC.uat01-vm-tx03"}
Then, to show the payment form you just need to add the following lines of HTML/Javascript to your page and populating the following variables
The checkout's id
that you got in the response from step 1
<script src="https://test.oppwa.com/v1/paymentWidgets.js?checkoutId={checkoutId}"></script>
The shopperResultUrl
, which is the page on your site where the customer should be redirected to after the payment is processed and the brands that will be available.
<form action="{shopperResultUrl}" class="paymentWidgets">VISA MASTER AMEX</form>
When Primeiro Pay builds up the payment form it automatically fetches the registrations data from the server and displays the pre-filled widgets to the shopper.
Require CVVShow initial payment from
html
<form action="https://primeiropay.docs.oppwa.com/tutorials/integration-guide/one-click#" class="paymentWidgets">VISA MASTER AMEX</form>
css
body {background-color:#f6f6f5;}
js
var wpwlOptions = { registrations: { requireCvv: false, hideInitialPaymentForms: true } }
result
As usual, once the payment has been processed, the customer is redirected to your shopperResultUrl
along with a GET parameter resourcePath
.
IMPORTANT: The baseUrl must end in a "/", e.g. "https://test.oppwa.com/".
Then, to get the status of the payment, you should make a GET request to the baseUrl + resourcePath
, including your authentication parameters.
Example for a resourcePath:
resourcePath=/v1/checkouts/{checkoutId}/payment
https://test.oppwa.com/v1/checkouts//payment
curl -G https://test.oppwa.com/v1/checkouts/{id}/payment \-d "entityId=8a8294184e736012014e78a17a5615ac" \-H "Authorization: Bearer OGE4Mjk0MTg0ZTczNjAxMjAxNGU3OGExN2E2YTE1YjB8ZjJGRUtacXRCUA=="
We recommend that you verify the following fields from the Payment Status response, by comparing the returned values with expected:
ID(s)
Amount
Currency
Brand
Type