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.
gateway.transaction.sale({
amount: "10.00",
paymentMethodNonce: nonceFromTheClient,
deviceData: deviceDataFromTheClient,
options: {
submitForSettlement: true
},
billing: {
postalCode: postalCodeFromTheClient
}
}, (err, result) => {
});
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.
const saleRequest = {
amount: req.body.amount,
paymentMethodNonce: req.body.nonce,
deviceData: req.body.device_data,
orderId: "Mapped to PayPal Invoice Number",
options: {
submitForSettlement: true,
paypal: {
customField: "PayPal custom field",
description: "Description for PayPal email receipt",
},
}
};
gateway.transaction.sale(saleRequest, (err, result) => {
if (err) {
console.log("Error: " + err);
} else if (result.success) {
console.log("Success! Transaction ID: " + result.transaction.id);
} else {
console.log("Error: " + 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