Show Universal Checkout
Google Pay is automatically presented to the customer when calling Primer.instance.showUniversalCheckout.class CheckoutActivity : AppCompatActivity() {
private fun setupObservers() {
viewModel.clientToken.observe(this) { clientToken ->
showUniversalCheckout(clientToken)
}
}
private fun showUniversalCheckout(clientToken: String) {
Primer.instance.showUniversalCheckout(this, clientToken)
}
}
Customization
Capture billing address
Capturing billing address is supported on 2.16.0+ SDK versions.
By default, Google Pay does not capture the user’s billing address.You can ask to capture the billing address by setting the option captureBillingAddress. The billing address is added to the client session before the payment is made.val settings = PrimerSettings(
/* Other options... */
paymentMethodOptions = PrimerPaymentMethodOptions(
googlePayOptions = PrimerGooglePayOptions(captureBillingAddress = true)
),
)
Required Existing Payment MethodSupport for enabling the requirement of an existing payment method is included in SDK versions 2.27.0+.
By default, Google Pay is presented to the user regardless of whether they have a supported card in their wallet.You can now automatically hide Google Pay if the user’s wallet does not contain a supported card by setting existingPaymentMethodRequired to true.val settings = PrimerSettings(
/* Other options... */
paymentMethodOptions = PrimerPaymentMethodOptions(
googlePayOptions = PrimerGooglePayOptions(existingPaymentMethodRequired = true)
),
)
Collect email address
Support for collecting user’s email address is included in SDK versions 2.33.0+.
You can now collect user’s email address by setting emailAddressRequired to true.val settings = PrimerSettings(
/* Other options... */
paymentMethodOptions = PrimerPaymentMethodOptions(
googlePayOptions = PrimerGooglePayOptions(emailAddressRequired = true)
),
)
Collect shipping address and phone numberSupport for collecting user’s shipping address and phone number is included in SDK versions 2.33.0+.
You can now collect user’s shipping address and phone number by setting shippingAddressParameters to PrimerGoogleShippingAddressParameters(phoneNumberRequired = true).val settings = PrimerSettings(
/* Other options... */
paymentMethodOptions = PrimerPaymentMethodOptions(
googlePayOptions = PrimerGooglePayOptions(
shippingAddressParameters = PrimerGoogleShippingAddressParameters(phoneNumberRequired = true)
)
),
)
Customize Google Pay Button Appearance
The PayButton API is a requirement for all new Android Google Pay API integrations that use a Google Pay payment button. Support for customizing Google Pay Button Appearance is included in SDK versions 2.33.0+.
You can customize the Google Pay button’s appearance by setting the buttonOptions parameter within PrimerGooglePayOptions. This allows you to modify attributes such as the button’s type and theme.val settings = PrimerSettings(
/* Other options... */
paymentMethodOptions = PrimerPaymentMethodOptions(
googlePayOptions = PrimerGooglePayOptions(
buttonOptions = GooglePayButtonOptions(
buttonType = ButtonConstants.ButtonType.PAY,
buttonTheme = ButtonConstants.ButtonTheme.DARK
)
)
),
)
For more details, refer to the Primer Google Pay Button Options documentation.Show Universal Checkout
Google Pay is automatically presented to the customer when calling Primer.showUniversalCheckout.const CheckoutScreen = async (props: any) => {
const onUniversalCheckoutButtonTapped = async () => {
try {
await Primer.showUniversalCheckout(clientToken)
} catch (err) {
// handle error
}
}
}
Customization
Capture billing address
Capturing billing address is supported on 2.17.0+ SDK versions.
By default, Google Pay does not capture the user’s billing address.You can ask to capture the billing address by setting the option isCaptureBillingAddress. The billing address is added to the client session before the payment is made.let settings: PrimerSettings = {
paymentMethodOptions: {
/* Other options... */
googlePayOptions: {
isCaptureBillingAddressEnabled: true
}
},
};
Required Existing Payment Method
Support for enabling the requirement of an existing payment method is included in SDK versions 2.21.0+.
By default, Google Pay is presented to the user regardless of whether they have a supported card in their wallet.You can now automatically hide Google Pay if the user’s wallet does not contain a supported card by setting isExistingPaymentMethodRequired to true.let settings: PrimerSettings = {
paymentMethodOptions: {
/* Other options... */
googlePayOptions: {
isExistingPaymentMethodRequired: true
}
},
};
Collect email address
Support for collecting user’s email address is included in SDK versions 2.28.0+.
You can now collect user’s email address by setting emailAddressRequired to true.let settings: PrimerSettings = {
paymentMethodOptions: {
/* Other options... */
googlePayOptions: {
emailAddressRequired: true
}
},
};
Collect shipping address and phone number
Support for collecting user’s shipping address and phone number is included in SDK versions 2.28.0+.
You can now collect user’s shipping address and phone number by setting shippingAddressParameters to { phoneNumberRequired: true }.let settings: PrimerSettings = {
paymentMethodOptions: {
/* Other options... */
googlePayOptions: {
shippingAddressParameters: { phoneNumberRequired: true }
}
},
};
Customize Google Pay Button Appearance
The PayButton API is a requirement for all new Android Google Pay API integrations that use a Google Pay payment button. Support for customizing Google Pay Button Appearance is included in SDK versions 2.28.0+.
You can customize the Google Pay button’s appearance by setting the buttonOptions parameter within IPrimerGooglePayOptions. This allows you to modify attributes such as the button’s type and theme.let settings: PrimerSettings = {
paymentMethodOptions: {
/* Other options... */
googlePayOptions: {
buttonOptions: {
buttonTheme: PrimerGooglePayButtonConstants.Themes.Dark,
buttonType: PrimerGooglePayButtonConstants.Types.Checkout
}
}
},
};
For more details, refer to the Primer Google Pay Button Options documentation.Limitations
Google Pay is not compatible with iOS. The payment method button will not be presented.