Google Pay
Server-Side Implementation
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
]
]);
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);
}
Because creating a transaction with a PayPalAccount nonce from Google Pay is effectively the same as creating a transaction from your PayPal integration, they have the same settlement rules and options that typical PayPal transactions have.
When making a transaction with PayPalAccount nonce through Google Pay, the resulting transaction will have facilitatorDetails.oauthApplicationName set to Google.
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
Next Page: Testing and Go Live →