Pre-built sub-components for customizing PrimerCardForm slots
Primer Checkout Android SDK is currently in beta (v3.0.0-beta.8).
The API is subject to change before the stable release.
Object providing pre-built composable functions for each part of the card form. Use these to rearrange or selectively replace sections of PrimerCardForm.
Card detail fields
Function
Description
CardNumberField(controller, modifier)
Card number input with auto-formatting, Luhn validation, and network icon
ExpiryField(controller, modifier)
Expiry date input with MM/YY auto-formatting
CvvField(controller, modifier)
CVV input with dynamic length based on card network
CardholderField(controller, modifier)
Cardholder name input. Only rendered when required by session.
CardNetworkField(controller)
Co-badge network selector. Only rendered for co-badged cards.
All field functions accept controller: PrimerCardFormController and modifier: Modifier = Modifier (except CardNetworkField which has no modifier).
Billing address fields
Function
Description
CountryCodeField(controller, modifier)
Country selector that opens a picker dialog
FirstNameField(controller, modifier)
Billing first name input
LastNameField(controller, modifier)
Billing last name input
AddressLine1Field(controller, modifier)
Street address line 1
AddressLine2Field(controller, modifier)
Street address line 2 (optional)
CityField(controller, modifier)
City name input
StateField(controller, modifier)
State or region input
PostalCodeField(controller, modifier)
Postal or ZIP code input
Only rendered when required by the session configuration.
Content composables
CardDetailsContent
@Composablefun CardFormDefaults.CardDetailsContent( controller: PrimerCardFormController, cardNumber: @Composable () -> Unit = { CardNumberField(controller) }, expiryDate: @Composable () -> Unit = { ExpiryField(controller) }, cvv: @Composable () -> Unit = { CvvField(controller) }, cardholderName: @Composable () -> Unit = { CardholderField(controller) },)
Renders the default card details layout. Each field can be individually replaced via slot parameters.
BillingAddressContent
@Composablefun CardFormDefaults.BillingAddressContent( controller: PrimerCardFormController, countryCode: @Composable () -> Unit = { CountryCodeField(controller) }, firstName: @Composable () -> Unit = { FirstNameField(controller) }, lastName: @Composable () -> Unit = { LastNameField(controller) }, addressLine1: @Composable () -> Unit = { AddressLine1Field(controller) }, addressLine2: @Composable () -> Unit = { AddressLine2Field(controller) }, city: @Composable () -> Unit = { CityField(controller) }, state: @Composable () -> Unit = { StateField(controller) }, postalCode: @Composable () -> Unit = { PostalCodeField(controller) },)
Renders the default billing address layout. Only renders fields required by the session.