On This Page
Sale with Merchant-Defined Data Details
Use this information to process a sale with merchant-defined data details. This transaction
includes required merchant-defined data details in the payment request.
Follow these steps to process a sale with merchant-defined data details.
- Create anAdditionalDetailsobject and set one or more merchant defined data fields.val mddDetails = AdditionalDetailsBuilder() .mddDetails( MddDetailsBuilder() .field1("value1") .field2("value2") .field3("value3") .field4("value4") .field5("value5") .field6("value6") .field7("value7") .field8("value8") .field9("value9") .field10("value10") .field11("value11") .field12("value12") .field13("value13") .field14("value14") .field15("value15") .field16("value16") .field17("value17") .field18("value18") .field19("value19") .field20("value20") .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(mddDetails) .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