Abort request

An overview of the Abort request message for iOS.

Overview

👉 The Abort request is used to attempt to abort a transaction which has been started in the POS application.

In some circumstances, aborting a request is not possible; for example:

  • When no transaction has been started
  • When the customer’s card has already been read or entered
  • When the user has selected to pay via QR code
  • When the transaction has already been sent to the server for approval

The client app must implement a mechanism to send messages using URL schemes and to receive the result in a custom URI callback.

Abort request

For a typical Abort request, the client app must provide the following information:

Field Description Example
scheme The Viva's custom URLscheme, the host and the version. 'vivapayclient://pay/v1'
merchantKey The merchant's key. For successful validation, should not be empty.
Deprecated: you may pass any value.
'SG23323424EXS3'
appId The client app id. 'com.example.myapp'
action Abort request. abort
callback Your custom URI callback that will handle the result. 'interapp-callback'

The above information elements must create a URI call, i.e.

let abortAction = "&action=abort"

func createAbortRequest() {
    let abortActionURL = schemeURL + callback + merchantKey + clientAppID + abortAction
    return abortActionURL
}

func performInterAppRequest(request: String){
    guard let url = URL(string: request) else { return } // url with constructed parameters
    UIApplication.shared.open(url) { (result) in
        if result {
            // The URL was delivered successfully!
        }
    }
}

//USE LIKE THIS
let abortActionURL = createAbortRequest()
performInterAppRequest(request: abortActionURL)

Example:

vivapayclient://pay/v1?callback=interapp-callback&merchantKey=SG23323424EXS3&appId=com.vivawallet.InterAppDemo&action=abort

Abort response

After executing an abort request the VW POS app may or may not respond depending on its state. E.g. if the VW POS app is in the middle of a sale you won’t receive an abort response but you will receive the sale response.

The result is received as a URI in the callback activity.

The table below summarizes the contents of a response.

Field Description Example
callback The URI callback that will handle the result. 'interapp-callback://result'
action The action. 'abort'
status The status of the abort. 'success'
message A string containing information about the abort status. 'nothing to abort / aborted'

An Abort response result for an approved transaction looks as follows:

Examples

Successful abort:

Nothing to abort:

Abort request that cannot be processed because of a sale transaction:

Get Support

If you would like to integrate with Viva Wallet, or if you have any queries about our products and solutions, please see our Get Support page to see how we can help!