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.
$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.
$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 or Customer: Update request
- In your Transaction: Sale request by using options.storeInVault or options.storeInVaultOnSuccess