Google Pay
Server-Side Implementation
Important
Your integration may be impacted by upcoming certificate changes. Visit our best practices guide to learn more.
GraphQL
Click here to view the server-side
implementation using GraphQL.
Availability
Google Pay is currently available with our latest Android and JavaScript SDKs.
Creating transactions
Using card nonces
Include the Google Pay card nonce in the
Transaction: Sale
call on your server:
Collect device data
from the client and include the deviceDataFromTheClient in the
transaction.
- PHP
$result = $gateway->transaction()->sale([
'amount' => '10.00',
'paymentMethodNonce' => $nonceFromTheClient,
'deviceData' => $deviceDataFromTheClient,
'options' => [
'submitForSettlement' => True
],
'billing' => [
'postalCode' => $postalCodeFromTheClient
]
]);
Note
Google Pay cards are represented as Android Pay cards in our API to prevent breaking changes. For
example, the response from a
Payment Method: Create
call with a card from Google Pay will include the
AndroidPayCard response object.
Using PayPal nonces
PayPal nonces returned from the client will be a PayPalAccount type rather
than an AndroidPayCard. To create a transaction with a PayPal nonce:Collect device data
from the client and include the deviceDataFromTheClient in the
transaction.
- PHP
$result = $gateway->transaction()->sale([
'amount' => $_POST['amount'],
'paymentMethodNonce' => $_POST['payment_method_nonce'],
'deviceData' => $_POST['device_data'],
'orderId' => $_POST["Mapped to PayPal Invoice Number"],
'options' => [
'submitForSettlement' => True,
'paypal' => [
'customField' => $_POST["PayPal custom field"],
'description' => $_POST["Description for PayPal email receipt"],
],
],
]);
if ($result->success) {
print_r("Success ID: " . $result->transaction->id);
} else {
print_r("Error Message: " . $result->message);
}
Note
The merchant account used at transaction time must accept PayPal transactions.
Note
For certain account setups, it is recommended that merchants collect and pass billing address
information when storing payment methods and/or creating transactions. Passing billing address
details (postal code at minimum) can help increase the likelihood of a successful authorization.
To learn more about your specific account setup,
contact us.
Vaulting Google Pay
Google Pay cards can only be
saved to your Vault for specific use
cases;
see the support article for details. Vaulting of PayPal accounts from Google Pay is currently not supported. This means the
options.storeInVault
and
options.storeInVaultOnSuccess
options are not supported when creating a transaction. If your use case is supported, you can store
a customer's Google Pay card in your Vault in a few different ways:
-
In a separate
Payment Method: Create
request -
In a separate
Customer: Create
orCustomer: Update
request -
In your
Transaction: Sale
request by using options.storeInVault or options.storeInVaultOnSuccess