FILTER BY TAG

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.
  1. Create an
    AdditionalDetails
    object 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()
  2. Create a
    TransactionParameters
    object and provide the required information for the payment.
  3. Retrieve the
    transactionIntent
    variable from the
    mposUi
    object and use the
    startActivity
    method 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)
  4. After the transaction is complete and the Summary screen is dismissed, the
    onActivityResult
    method 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() } } } }
  5. Get the full transaction object by retrieving the
    latestTransaction
    property from the
    mposUi
    object.
    val transactionObject = mposUi.latestTransaction