On This Page
Sale with Billing and Shipping Details
Use this information to process a sale with billing and shipping details. This
transaction includes required billing and shipping details in the payment
request.
Follow these steps to process a sale with billing and shipping details.
- Create anAdditionalDetailsobject and set one or more of the billing and shipping fields.val billingAndShippingDetails = AdditionalDetailsBuilder() .billingDetails( BillingDetailsBuilder() .firstName("Alice") .middleName("M") .lastName("Smith") .title("Ms.") .company("Visa Inc.") .companyTaxID("123456789") .street1("123 Main St") .city("San Francisco") .state("CA") .postalCode("94105") .country("US") .email("[email protected]") .phoneNumber("14155550123") .customerID("CUST12345") .personalID("PID1234567890") .ipAddress("192.0.2.1") .hostname("host.example.com") .comments("VIP customer") .build() ) .shippingDetails( ShippingDetailsBuilder() .firstName("Bob") .lastName("Jones") .company("Visa Inc.") .street1("500 Market St") .city("New York") .state("NY") .postalCode("10001") .country("US") .phoneNumber("12125550188") .build() ) .build()
- Create aTransactionParametersobject and provide the required information for the payment.
- Retrieve thetransactionIntentvariable from themposUiobject and use thestartActivitymethod to initiate the transaction flow.val transactionParameters = TransactionParameters.Builder() .charge(BigDecimal("1.00"), Currency.EUR) .customIdentifier("yourReferenceForTheTransaction") .additionalDetails(billingAndShippingDetails) .build() val transactionIntent = mposUi.createTransactionIntent(transactionParameters) startActivityForResult(transactionIntent, MposUi.REQUEST_CODE_PAYMENT)
- After the transaction is complete and the Summary screen is dismissed, theonActivityResultmethod is triggered. This action returns information about the last transaction.override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == MposUi.REQUEST_CODE_PAYMENT) { when (resultCode) { // Result code from a successful transaction MposUi.RESULT_CODE_APPROVED -> { val transactionIdentifier = data?.getStringExtra(MposUi.RESULT_EXTRA_TRANSACTION_IDENTIFIER) Toast.makeText(findViewById(android.R.id.content),"Transaction approved!\nIdentifier: $transactionIdentifier", Toast.LENGTH_LONG).show() } // Result code from a declined, aborted or failed transaction MposUi.RESULT_CODE_FAILED -> { Toast.makeText(findViewById(android.R.id.content), "Transaction was declined, aborted, or failed", Toast.LENGTH_LONG).show() } } } }
- Get the full transaction object by retrieving thelatestTransactionproperty from themposUiobject.val transactionObject = mposUi.latestTransaction