Skip to content

User Selection

METHOD NAME userSelection

This method is Cancelable.

Requires state IDLE and during process moves to PROMPT

Description

This method creates a custom menu with client customization. Once the request is processed, it waits for the user's selection, a cancel event, or a timeout and responds accordingly.

Parameters

object

  • commandId string REQUIRED
    Id that is used as a reference to cancel the command

  • options MenuSelectionOption[] REQUIRED
    The option to select from. Non non-empty array is required.

  • title string
    The title at the top of the screen is displayed to the user

  • body string
    The message body on the screen displayed to the user

  • timeout int
    Time in seconds until a response with a TIMEOUT result is returned.
    Default: 60 seconds. The value must be greater than zero

  • cancelable boolean
    A flag indicates if the user can cancel the operation from the selection screen. Default true

Result

object when a request is valid and the device is prompted with the menu.

  • commandId string
    Echo back the id from the request

  • result Result
    Possible results are: OK, CANCELED, TIMEOUT
    (1) Show values

    1. Result

      Result of new request. Each command has possible values in the field.

      • OK Request is ok
      • GENERAL_ERROR An error occurred
      • CANCELED Command was canceled either by the user (on-screen) or through cancel command,
      • TIMEOUT Operation was timed out.
      • HOST_ERROR Host returned an error regarding the request.
      • SMART_READER_ERROR An error occurred with the smart-reader
      • SMART_CARD_ERROR An error occurred with the smart card, or the reader couldn't communicate with the card.
      • NONE_CREDIT_CARD Industrial card was detected when performing a transaction.
      • CARD_NOT_ALLOWED When the detected card is not allowed to be processed
  • selectedId string
    The id of the selected item, as defined in the options. This value is populated only if the result is OK.

Errors

  • MissingParams
  • InvalidParams on incorrect OTP
  • IllegalState

Example

example

Request

{
  "jsonrpc": "2.0",
  "id": "1234567890",
  "method": "userSelection",
    "params": {
        "commandId": "7d516d9c",
        "title": "Select Fruit",
        "body": "Select your most favorite fruit",
        "timeout": 30,
        "options": [
            { "id": "BANANA", "label": "Banana" },
            { "id": "APPLE", "label": "Apple" },
            { "id": "MANGO", "label": "Mango" },
            { "id": "PINA", "label": "Pineapple" }
        ]
    }
}

Response

1
2
3
4
5
6
7
8
9
{
  "jsonrpc": "2.0",
  "id": "1234567890"
    "result": {
        "commandId": "7d516d9c",
        "result": "OK",
        "selectedId": "PINA"
    }
}