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 device_data_from_the_client
in the transaction.
result = gateway.transaction.sale(
:amount => "10.00",
:payment_method_nonce => nonce_from_the_client,
:device_data => device_data_from_the_client,
:options => {
:submit_for_settlement => true
},
:billing => {
:postal_code => postal_code_from_the_client
}
)
Using PayPal nonces
PayPal nonces returned from the client will be a PayPalAccount
type rather than a GooglePayCard
. To create a transaction with a PayPal nonce:
Collect device data from the client and include the device_data_from_the_client
in the transaction.
result = gateway.transaction.sale(
:amount => "10.00",
:payment_method_nonce => params[:payment_method_nonce],
:device_data => params[:device_data],
:order_id => "Mapped to PayPal Invoice Number",
:options => {
:submit_for_settlement => true,
:paypal => {
:custom_field => "PayPal custom field",
:description => "Description for PayPal email receipt",
},
}
)
if result.success?
"Success ID: #{result.transaction.id}"
else
result.message
end
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 facilitator_details.oauth_application_name
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.store_in_vault and options.store_in_vault_on_success 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.store_in_vault or options.store_in_vault_on_success