Pay With Link

Overview: The doPayWithLink method of the PayContactless Embed SDK is a pivotal function for executing link transactions within merchant applications. Primarily, it is designed to start pay with link transactions.

Parameters:

  1. Amount:

    • Description: Denotes the transaction's value as specified by the user.

    • Constraints:

      • Should be a whole number, with its length capped at 12 digits.

      • Do not exclude decimal separators.

    • Examples:

      • A payment amount of $1.01 should be passed as 1.01

  2. Description:

    • Description: Provides contextual information detailing the purpose or reason behind the payment. It could relate to the product/service name, a brief summary, or any relevant description the merchant deems necessary.

  3. Currency Code

    • Description: The currecy value of the transaction. It has be numeric code of ISO 4217 format.

    • Examples:

      • 566 for Naira instead of NGN

  4. Activity

    • Description: The current activity. Payment page is started as a new activity. In order to start payment activity Embed SDK needs the current acitivity of the app.

  5. RFU Map

    • Description: RFUMap (Reserved for future use) object is used to transfer key value pairs between backend system and merchant application

  6. TransactionResultListener:

    • Description: This interface is vital as it captures and manages transaction outcomes, be it success or failure scenarios.

Usage: To implement the doPayWithLink function in your application, ensure you're capturing the correct parameters, especially the format for the "Amount" and supplementing the necessary information in the "Description."

By adhering to these guidelines, you enable a precise and seamless transaction process, elevating the user experience within your application.

PayContactlessEmbed.getInstance().doPayWithLink(@NonNull Double amount, @Nullable String currencyCode, @NonNull FragmentActivity activity, @Nullable Map<String, String> rfuMap, @NonNull TransactionResultListener listener)

Please set empty map value for rfuMap instead of null on SDK version 3.4.11. This issue will be fixed with the next version.

If currency parameter is set null, the default currency is used for transaction. The default currecny is Naira in SDK.

When a transaction is completed, the TransactionResult class is received on onCompleted method, these class fields can be used for the payment result screens.

Transaction Listener

public interface TransactionResultListener {
   void onCompleted(TransactionResult transaction);
}

Transaction Result

data class TransactionResult(
    var paymentType: String?,
    var status: String,
    var payWithCardResult: Transaction? = null
    var payWithLinkResult: PayWithLinkResult? = null
    var error : ErrorData? = null
)

Transaction Data

data class PayWithLinkResult (
    var transactionId: Long? = null
    var dateTime: String? = null
    var respCode: String? = null
    var respDesc: String? = null
    var orderNo: String? = null
    var customerName: String? = null
    var status: String? = null
    var rfuList: Map<String, Any>? = null
)

There is timeout value which is 5 minutes in awaiting payment page. When the timeout exceed, SDK will call onComplete callback with Timeout status. The transaction status will be available in the transaction history response when it is completed.

There is no transaction cancel operation for pay with link option. Customer can complete the transaction even if the trasaction cancelled on merchant side. The transaction status will be available in the transaction history response when it is completed.

Last updated