Developer Docs

Developer Docs

  • Overview
  • SDK
  • SoftPOS API
  • APOLLO API
  • Release Note
  • Languages iconEnglish
    • 繁體中文

›Module

Introduction

  • SDK overview
  • Getting started

Module

  • Transaction module
  • Configuration module
  • Printer module
  • Misc module

Configuration module

Call flow


Setup

Create an instance and connect the app to the terminal by getControllerInstance() and connectController().

The app shall be notified by onError if there's any errors occurred.

abstract class ApolloConfiguration(private val context: Context) : ConfigurationDelegate {

    private var configurationController: ConfigurationController? = null

    fun connect(): Boolean {
        try {
            if (configurationController == null) {
                // get instance
                configurationController = getControllerInstance(context, this)

                // enable debug log display in console
                SPDeviceController.enableDebugLog(true)
            }
            // establish the communication channel with terminal
            configurationController?.connectController()
        } catch (ex: Exception) {
            return false
        }
        return true
    }

    fun disconnect() {
        configurationController?.disconnectController()
        configurationController?.releaseControllerInstance()
    }

    override fun onError(errorType: ControllerError.Error?, message: String?) {
        // handle error here
    }

}

Getting terminal info & parameters

Get terminal info

// getting infos
fun getDeviceInfo() {
    configurationController?.getDeviceInfo()
}

override fun onDeviceInfoReceived(p0: Hashtable<String, String>?) {
    // p0: terminal info
    // {isSupportedTrack2=true, isSupportedTrack1=true, firmwareVersion=1.00.9, hardwareVersion=msm8909, vendorID=1234567, isCharging=true, batteryPercentage=99, serialNumber=1234567, isSupportedNfc=true, isUsbConnected=false, productID=A10, bID=APOLLO, isSupportedTrack3=true, batteryLevel=99}
}

Get AID

// getting aids
fun getAllAid(isContactLess: Boolean) {
    configurationController?.getAllAid(isContactLess)
}

override fun onAllAidReceived(p0: Hashtable<String, String>?) {
    // p0: All AIDs received
    // {03=A00000002501, 02=A0000003330101, 01=A0000000041010, 00=A0000000031010, 04=A0000000651010}
}

fun getAidInfo(isContactLess: Boolean, index: String) {
    configurationController?.getAidInfo(isContactLess, index)
}

override fun onAidInfoReceived(p0: Hashtable<String, Any>?) {
    // p0: received AID
    // {eRSBMax=63, contactlessTACDenial=0000000000, transCurrencyCode=0344, defaultTDOL=9F02069F0306, aid=A0000000031010, terminalCountryCode=0344, terminalCapabilities=0000C8, contactlessFloorLimit=000000050001, appIndex=00, eRSTarget=00, eRSBThresh=000000005000, contactlessTransactionLimit=000000050001, contactlessTACOnline=0000000000, contactlessCVMRequiredLimit=000000050001, eType=82, appVersion=0002, eBitField=02, defaultDDOL=9F3704, additTermCapabilities=6000F02001, contactlessTACDefault=0000000000}
}

Get CAPK

// getting capks
fun getAllCapk(isContactLess: Boolean) {
    configurationController?.getAllCapk(isContactLess)
}

override fun onAllCapkReceived(p0: MutableList<CAPK>?) {
    // p0: All CAPKs received
    // [com.spectratech.controllers.CAPK@a4f610, ...]
}

fun getCapkInfo(isContactLess: Boolean, index: String) {
    configurationController?.getCapkInfo(isContactLess, index)
}

override fun onCapkInfoReceived(p0: CAPK?) {
    // p0: CAPK received
    // CAPK(location=, rid=A000000003, index=89, exponent=03, modulus=..., checksum=, size=C0, expirydate=1225, effectdate=0115)
}

Update AIDs

// updating AID
fun updateAID(isContactLess: Boolean, aid: Hashtable<String, String>) {
    aid["action"] = "update"
    configurationController?.updateAid(isContactLess, aid)
}

override fun onAidUpdated(p0: Hashtable<String, ConfigurationStatus>?) {
    // p0: aid update result
    // {eRSBMax=SUCCESS, terminalType=SUCCESS, transCurrencyCode=SUCCESS, defaultTDOL=SUCCESS, aid=SUCCESS, terminalCountryCode=SUCCESS, terminalFloorLimit=SUCCESS, terminalCapabilities=SUCCESS, contactTACDefault=SUCCESS, contactTACDenial=SUCCESS, eRSTarget=SUCCESS, eRSBThresh=SUCCESS, action=SUCCESS, contactTACOnline=SUCCESS, eType=SUCCESS, appVersion=SUCCESS, eBitField=SUCCESS, defaultDDOL=SUCCESS, additTermCapabilities=SUCCESS}
}

Update CAPKs

// updating CAPK
fun updateCapk(isContactLess: Boolean, capk: CAPK) {
    configurationController?.updateCapk(isContactLess, capk)
}

override fun onCapkUpdated(p0: Boolean) {
    // p0: update result
    // true | false
}

Last updated on 10/22/2020 by Jeff Kwok
← Transaction modulePrinter module →
  • Call flow
  • Setup
  • Getting terminal info & parameters
    • Get terminal info
    • Get AID
    • Get CAPK
  • Update AIDs
  • Update CAPKs
Developer Docs
About
APOLLO ecosystemProducts and servicesHardware spec
Development
Development with APOLLOSDK overviewAPI overview
Support
Spectra TechnologiesContact us
Copyright © 2022 Spectra Technologies.
Site by Docusaurus