Developer Docs

Developer Docs

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

›Recent Posts

Recent Posts

  • Release Note 2021-12-09
  • Release Note 2021-12-03
  • Release Note 2021-11-25
  • Release Note 2021-11-22
  • Release Note 2021-11-11

Release Note 2020-04-29

April 29, 2020

@MPS team

For the full release note please refer to confluence - app and here confluence - mars

Latest version

Below versions are targeted for

  • CHB release
  • DBS UAT
  • GPAP UAT
  • GlobalConnection UAT

Application

AppVersion
configmanagerver_1.3.14
maintenancever_1.0.22
marketplacever_1.0.7
paymentappver_1.3.16
quicklaunchver_1.0.14
receiptver_1.2.21
salever_1.2.21
settlementver_1.0.13
spectralauncherver_1.2.6
supportver_1.0.16
tmsclientver_1.1.19
transactionsver_1.1.22

MARS & gateway service

MARS & serviceVersion
MARS2.1.2
service-device2.0.2
service-identity2.0.2
service-messaging1.3.0
service-organize2.1.0
service-payment2.5.2
service-reporting1.4.0

Major changes

Application

  • Added Spanish translation
  • Fix per DBS requirement
    • Support only positive settlement
    • Receipt printing (PP/ PW/ STT/ QPS)
    • Not allow STT in fallback & manual
    • Refund, void and tip mode mandatory require signature
    • Allow showing full PAN in display/ printing for DBS AUTH transaction
  • Fix per PlanetPayment requirement
    • Fx rate display issue
    • Update VISA disclaimer text
  • Fix per GlobalConnection requirement
    • ZELLE payment method support
  • Added saving/loading config locally in configmanager to support automation testing
  • Updated apps to support running in AVD again
  • Several other bug fixes

MARS & gateway service

  • Tuning the search on MARS
  • Added new configs to support new acquirers (DBS, GP and etc)
  • Added timezone for organization
  • Added dedicated receipt logo field in shop
  • Fixed pagination issue

Release Note 2020-04-02

April 2, 2020

@MPS team

Major changes

  • Added production URL
  • Redesigned app icons
  • Handle empty api base url
  • Added GlobalConnection receipt handling
  • Bug fixes

configmanager (ver_1.3.13_code_27)

  • Show update tms config error message from api response
  • Add flag to force reload local & tms config
  • Update app icon and remove adaptive icon as APOLLO does not support
  • Fixed when config emvConfig null cannot update config problem
  • Enable grayscale local config in default local config
  • Enable SMS/Email for GC default config
  • Change tmk encryption name
  • Add DCC planetpayment in default hostsim config

maintenance (ver_1.0.21_code_24)

  • Fix code inspection issues
  • Add production env
  • Update app icon and remove adaptive icon as APOLLO does not support

paymentapp (ver_1.3.14_code_28)

  • Fix code inspection issues
  • Limit batch number input length
  • Update app icon and remove adaptive icon as APOLLO does not support
  • EMV masked pan replace the last 4 digit with 9F25 first if existed
  • Disallow setting empty string for batch number
  • AMEX: Add missing Field55 field for QR
  • Disallow setting empty string for batch number
  • Set customer verification to CDCVM for amex CPQR
  • Handle empty api base url
  • Change pending advice string
  • GC: Save authResponseCode in online response data
  • Support KSN for DUKPT. GW can obtain KSN in emvOnlineRequestData
  • Set injectkey use upikeyindex
  • Set key terminal id
  • Add button to clear all transaction data in admin setting
  • Add password protection for pre auth
  • Handle null acquirer id
  • GC: Enquiry last / all parse JSON format
  • Fix code inspection
  • Change tmk encryption name
  • Update tips add last trantype field
  • Use originalAmount when void a adjusted Tx
  • Do not upload advise if it is going to void the pending advise
  • PlanetPayment: Handle basic reversal message
  • Add void originalAmount
  • Remove duplicate need fields in GP
  • Move zeta ICC construct into basic as most of the GW are same as it
  • Update getPackager return object in Zeta8583CUP
  • Remove enquiry related
  • Avoid crash if settlementAcquirerList is empty
  • Remove enquiry related codes
  • Remove duplicate code in setup packager by move it into basic8583Gateway
  • Replace currency string ext. fun
  • Set password edit text max length
  • Add DCC currency flag image
  • GC: Use mid tid from server reply
  • GC: Remove emv tags during online as they do online payment and hence no need

quicklaunch (ver_1.0.13_code_14)

  • Update app icon and remove adaptive icon as APOLLO does not support

receipt (ver_1.2.20_code_23)

  • Fix code inspection issues
  • Skip email printing
  • Update app icon and remove adaptive icon as APOLLO does not support
  • Print cardholder name on receipt
  • Fix crash caused by unused locale
  • Update package name under communication/globalconnection
  • Grayscale threshold read from config instead of hardcode
  • Upload receipt for globalConnection fixed for msg type and use fast version for hex conversion
  • Globalconnection gw api updated for SMS and email receipt
  • Replace currency extension
  • Upload receipt support multiple api. It will depends on acq id to see which gw to use

sale (ver_1.2.20_code_23)

  • Fix code inspection issues
  • Add payment request auth complete rrn
  • Fix amount not reset
  • Fix NumberFormatException & limit tips amount digits
  • Update app icon and remove adaptive icon as APOLLO does not support
  • Update keypad fragment
  • Fix when saleapp home leave and back again web server not restart
  • Move keypad layout to common lib
  • Replace currency extension

settlement (ver_1.0.12_code_13)

  • Fix code inspection issues
  • Optimize import
  • Fix bar chart marker view crash if stackIndex of highlight is -1
  • Update app icon and remove adaptive icon as APOLLO does not support
  • Replace currency extension

spectralauncher (ver_1.2.36_code_19)

  • Hide uninstall in drop action

support (ver_1.0.15_code_16)

  • Update app icon and remove adaptive icon as APOLLO does not support
  • Handle empty api base url

tmsclient (ver_1.1.17_code_20)

  • Add package name when force heartbeat
  • Update app icon and remove adaptive icon as APOLLO does not support
  • Avoid handle same task more than once after changing network status to available
  • Disable restart FirebaseMessageService periodically
  • Enable offline capabilities
  • Handle empty api base url
  • Check FirebaseFirestoreException is null before calling onDocumentChange
  • Surround onDocumentChange with try catch

transactions (ver_1.1.21_code_23)

  • Fix code inspection issues
  • Fix crash if payment app not installed
  • Update logic if transaction need to upload receipt only
  • Update app icon and remove adaptive icon as APOLLO does not support
  • Handle empty api base url
  • Separate upload gateway & receipt action
  • Add delete all transaction api
  • Replace currency extension
  • Remove redundancy checking

Release Note 2020-03-30

March 30, 2020

@MPS team

MARS (2.0.2-20200330)

  • Add-Placeholder-with-Inactive-Terminal-in-Mars
  • Fix/looping-403
  • Update/default-value-for-appconfig
  • Update ngnix config
  • Remove-empty-space-on-editpages-info-header
  • Fix/routing-215
  • Default open terminal list advanced search, consistent with other pages
  • Add svg icon
  • Adjust affix position; Complete locale for marketplace
  • Remove pound sign to avoid confusion
  • Update side nav icon
  • Fix/receipt-header-issue-in-shop
  • Fix/process-for-env
  • Enchance-user-experience-on-edit-page
  • Fix/tagging-in-organizer
  • Feature/edit-owner-info
  • Fix/missing-response-code-in-processor-setting
  • Fix/form-district-issue
  • Fix/appstore
  • Fix/create-and-edit-device-procedure

Release Note 2020-03-19

March 19, 2020

@MPS team

Major changes

  • Updated with transactionResult v2
  • Updated with SDK version 0.03.2
  • Updated new font for printing
  • Added CHB requested handling for QR refund processing
  • Added advice handling for DBS piggyback
  • Added GlobalConnection message type & handling
  • Merged DCC (Planet payment)
  • Several bug fixes
  • Redesign quick launch layout

configmanager (ver_1.3.11_code_25)

  • Update version name: 1.3.11 code: 25 Update payment lib ref:1.3.16/1.3.17-Snapshot
  • Update apollo sdk
  • Update gp new config
  • Set autoTimeSyncThreshold to 0 as incorrect timestamp return from dbs uat host
  • Rename strings
  • Fix code inspection
  • Update globalConnection default config
  • Update DBS-CUP default config
  • Check url is valid before api call
  • Fix change default config error
  • Add optional key
  • Update chb url
  • Fix interval zero
  • Update DBS Default Config
  • Add global connection gw default config
  • Show "checking update" after checking is settlement done
  • Remove current fragment checking before update capk
  • Revert "Fix duplicate get capk"
  • Fix duplicate get capk
  • Fix start update capk twice
  • Remove redundant message for update config success after update emv
  • Remove showing redundant message after sdk event finished
  • Update JCB cert test floor limit to 0
  • Remove uploadResultToPortal in local config
  • Remove local camera id config
  • Inspect code
  • Change to singleInstance mode, add "check capk" after check config
  • Update gp nii
  • Update DPS default config

maintenance (ver_1.0.19_code_22)

  • Update version name: 1.0.19 code: 22 Update payment lib ref:1.3.16/1.3.17-Snapshot
  • Update apollo sdk
  • Rename string
  • Move strings to paymentlib
  • Improve handling of environment settings if config manager is not installed
  • Add chinese char in print test
  • Add more space in the bottom of layout
  • Fix code inspection
  • Make sure getting latest url from env list
  • Put select env button first
  • Show rom version
  • Hard-code model in activation api request

paymentapp (ver_1.3.12_code_26)

  • Update version name: 1.3.12 code: 26 Update payment lib ref:1.3.16/1.3.17-Snapshot
  • Send sms and email use rrn
  • Planet: Add entry mode
  • Planet: Fix track2 data
  • Update swiftpass void payment method
  • Update basic gateway rrn checking
  • Save MSR card holder name into emvOnlineRequestData as well as some gw may need to use it (e.g. GC)
  • Move dimen to lib
  • Remove dcc refund rrn. RRN now always input from saleApp
  • Remove activity original RRN
  • Update apollo sdk
  • Remove debug log
  • Update getEntryMode Signature
  • Add pinCapabilities
  • Piggyback enable read config
  • Fix merge conflict
  • When txn under VM is not allow but CUP is allow and config allow dual brand card, we should not early reject the operation until user confirm dual brand decision
  • Rename string
  • Move strings to paymentlib
  • Handle piggy back advice. However if pending reversal exist it will not send pending advice in that session
  • RRN can be optional in different processor, remove empty checking
  • Fix unknown payment method for auth void
  • Add dcc currency
  • Revert "Factorize emv reversal handling into function in basicFragment to prevent code duplilcation"
  • Factorize emv reversal handling into function in basicFragment to prevent code duplilcation
  • Add refund rrn
  • SettingActivity bottomNavBar add the menu dynamically. The max active tab is still 5
  • Update payment refundable flag
  • Allow CVN to enter 3 or 4 digits as now both V/M and AMEX share this dialog
  • GlobalConnection: Use CVV from input data
  • Move check CVV decision to gateway implementation so that gw can have option to override
  • GlobalConnection: All txn type run in half-emv mode
  • GlobalConnection: Add refund tag
  • Swiftpass set timeout second 15s
  • Change manual pan password to numeric only
  • Change operation password to numeric only
  • Update get acquiremid from config
  • DBS-CUP update 8583 msg
  • Reverse hash code checking if intent action is payment
  • Add verificationnumber when cvn need
  • Update qr transaction id
  • GlobalConnection basically worked for all type of entry modes with SALE
  • Add more emv tags
  • Add operation password used for ECR mode
  • Basic arch for global connection tlv gw
  • Remove keys before download TMK
  • Use PM instead of dummy query when check whether transaction app installed during updateDB
  • Add cardVerificationNumber for AMEX
  • Fix db get transaction result parse
  • Use soundpool instead of mediaPlayer to prevent annonying exception during finalizer
  • Fix ConcurrentModificationException when processing settlement all
  • Fixed the problem when two request call paymentApp without delay (e.g. ECR mode) it will accidentially releas inProgress flag and open window for other request. The whole part of inProgress locking mechanism being replaced by activity's hash id
  • Add mechanism to prevent same comm event being handle twice in some rare case after being execute long time stress test
  • Update new id
  • First commit
  • Fix payment method is null
  • Move release payment critical section lock from onDestroy to onStop to prevent exception of illegalState as binder has been finalized
  • DCC: Implement no network fallback guard time
  • When dismiss TO=0 with autoPrint we should print the receipt with the background in result activity
  • Style switch button
  • Hide badge container in QR progress view
  • Set SettlementResultActivity: setBatchList() to open for EPS
  • Upload transaction after payment end
  • QR camera id now use pref file. Local config will be removed later
  • Remove excessive log
  • Create BasicResultActivity and make SettlementResultActivity and TransactionResultActivity inherit from it. Prevent duplicate code
  • NetworkManagementType fix
  • Add NetworkManagementRequest Enum for EPS
  • GetPosConditionCode handle ReversalRefund
  • Fix entry mode logic
  • StopLockTask when payment act destroy to prevent paymentApp end but still in lock task mode
  • Forbid user signon if tmk not yet download
  • When UPI network mgt call no response it will cause paymentApp wait forever. Have to throw PaymentFlowAbortEvent in this case instead of call super
  • Add sdk vesion and info details in general setting fragment
  • Fix void from transaction app issue
  • Fix auth void from sale app transaction status not change
  • Handle when auto dismiss timeout >0 and auto print enable condition. It will wait until print finish and then start count down
  • Fix upload batch void transaction handle

quicklaunch (ver_1.0.11_code_12)

  • Update version name: 1.0.11 code: 12 Update payment lib ref:1.3.16/1.3.17-Snapshot
  • Add CUP auth comp button to home screen
  • Check operation allowed for visibility
  • Fix typo
  • Move strings to paymentlib
  • Auto format code
  • Hide bottom navigation bar for now
  • Add powered by spectra text in bottom
  • Code imspected
  • Update onclick function
  • Adjust layout
  • Replace address with terminal SN
  • Add bottom navigation bar
  • Add new quick launch landing layout
  • Add back return statement
  • Remove not important usage of PaymentLogManager
  • Improve exception handling
  • Update action of print settlement summary & details report

receipt (ver_1.2.18_code_21)

  • Update version name: 1.2.18 code: 21 Update payment lib ref:1.3.16/1.3.17-Snapshot
  • Leave more space for UPI label
  • No need to check entry mode of TVR TSI ATC printing
  • Update apollo sdk
  • Use merchant currency in visa DCC disclaimer
  • Remove chinese font to save up to 2 second printing time as not much visual difference
  • Check null or blank for printing UPI RRN & trace
  • Add DCC receipt template
  • Fix code inspection
  • Add retrieval QR code in receipt
  • Update ReceiptService to save settlement receipt to file
  • Add processing indicator to QR receipt
  • Use whole line for QR RRN
  • Change back paymentlib to 16
  • Use payment method to determine template instead of instrument
  • Fix digital signature
  • Adjust printing strings, layout space and size
  • Use processReferenceId for QR code
  • Add type face for latin and Chinese separately
  • Increase font size overall
  • Update to tranResultv2

sale (ver_1.2.18_code_21)

  • Update version name: 1.2.18 code: 21 Update payment lib ref:1.3.16/1.3.17-Snapshot
  • Rename
  • Treat approval code / RRN / UPI RRN as null if value is blank
  • Auto upload advice now check config
  • Support auto advice upload timer. Disable now by default
  • Move strings to paymentlib
  • Change from paymentLogManager to normal Log to avoid UI delay during sale key press
  • Use no microphone keyboard to save space
  • Add optional to input label
  • Change button layout
  • Update refund payment request
  • Show input dialog for refund
  • Improve fields validation logic in input dialog
  • Fix crash of pre-tips enter amount
  • Fix code inspection
  • Move start stop webserver from fragment life cycle to activity life cycle. Re-enable webserve when amount is reset to null
  • Add idle timer and disable web server when UI is activated or already in start paymentApp
  • Add operation password used for ECR mode
  • ECR mode: Response with fail if message id / tran type is null
  • Use TerminalResponseCode instead of magic number for response code
  • Update tran result related changes
  • Fixed the problem when click payment method (e.g. master) in bottom sheet and tip enable, cannot back to normal keypad in tip fragment
  • Fix sale app pay with tips problem
  • Add tip adjust for sale server

settlement (ver_1.0.11_code_12)

  • Update version name: 1.0.11 code: 12 Update payment lib ref:1.3.16/1.3.17-Snapshot
  • Fix code inspection
  • Remove delete batch button
  • Print settlement summary with service from quick launch

support (ver_1.0.13_code_14)

  • Update version name: 1.0.13 code: 14 Update payment lib ref:1.3.16/1.3.17-Snapshot
  • Fix unhandled case
  • Fix code inspection
  • Add error handling

tmsclient (ver_1.1.14_code_17)

  • Update version name: 1.1.14 code: 17 Update payment lib ref:1.3.16/1.3.17-Snapshot
  • Fix code inspection
  • Fix crash of disable firebase offline capabilities
  • Fix interval zero
  • Disable Offline Capabilities

transactions (ver_1.1.18_code_20)

  • Update version name: 1.1.18 code: 20 Update payment lib ref:1.3.16/1.3.17-Snapshot
  • Fix swiftpass refund instrument type error set refund approve cannot voidable, refundable and adjustable
  • Update transaction database version
  • Add view tranResult button in debug mode
  • Set password dialog number only
  • Update transaction result v2
  • Fix code inspection
  • Fixed the database leakage problem. The point is we should reuse the database connection in ContentProvider and never call close. See comments
  • User try catch when upload transaction as upload url maybe null
  • Add error log if tran id is null
  • Add null checking before upload receipt
  • Remove passing data into upload transaction worker
  • Upload transaction after payment end
  • Fix show panel animation ui bug
  • Print details report with service from quick launch

Release Note 2020-03-18

March 18, 2020

@MPS team

Major changes

  • Several fixes and improvement
  • App store is up
  • Additional config settings for CHB

MARS portal (2.0.1-20200318)

  • Fix/menu-router
  • Add/edit-button-on-save-device
  • Fix/default-organizer-permission
  • Update/uat-prod-processor-option
  • Fix/logout-when-403
  • Hotfix/back-to-select-page
  • Feature/dashboard-as-landing-page
  • Feature/login-directly-to-dashboard
  • Fix/select-organizer
  • Add/server-response-error-message-on-request
  • Fix/routing-issue
  • Fix/shop-appstore
  • Fix/icon-shop-copy-as
  • Show-parent-when-create-shop
  • Assign-appstore-to-shop
  • Show app config/accepted payment's version no in device profile
  • Fix/get-heartbeat
  • Only-number-in-operation-password
  • Assign-appstore-to-shop
  • Add-counter-to-activate-device
  • Fix-dashboard-report
  • Appstore-fix
  • Add-counter-on-activate-device-qr
  • Adjust error message and fix switch shop issue
  • Fix/get-heartbear
  • Select-organiser-sort-by-type
  • Frontend-enchance-on-appstore-page
  • Fix-wrong-blue-color
  • Remove-status-icon-and-add-sync-label
  • Fix showing wrong success message when server 500 error
  • Sync-permission-label
  • Permission-label
  • Fix/receipt-header
  • Fix/receipt-header
  • Regen-appstore
  • Update permission wording and relationship
  • Rename-appstore-to-market-place
  • Hide-receipt-header
  • Fixing-receipt-header
  • Remove-appstore
  • Block option - fix code structure
  • Fix wording
  • Block refund/block manual
  • Organizer-contact
  • Fix/organize-contact

Release Note 2020-03-03

March 3, 2020

@MPS team

Major changes

  • Bug fix for CHB batch manipulation

paymentapp (ver_1.3.10_code_24)

  • Move cancelable to transaction complete method
  • Update ManualEntryFragment construct param
  • Add entry mode checking on PaymentActivity is PreferredMethod = CARD
  • Update transaction cancelable checking
  • Remove settlement only search by acquire id
  • Change manual pan button from fab to normal button to allow snackbar overlapping it
  • DCC also check config allow for this tranType and PosEntryMode
  • DCC: Handle inverse rate display
  • DCC: Add RRN dialog for refund which depends on config
  • Update batch upload message
  • Fixed last commit typo mistake. EPS should never use DCC
  • Add service to lock payment
  • Handle offline transaction after upload void
  • Extract ISO message extra handling from create8583TransactionMsg to setupMessageByBitmap for all GW
  • Fix checking offline void issue
  • Change STT tx to be non-adjustable
  • Handle EPS ignore Dual brand card flow
  • Handle EPS ignore DCC
  • Change settlement finish use settlement_result_code
  • Set reversal field 60 use original trace

sale (ver_1.2.17_code_20)

  • Fix sale server no response
  • Fix tip amount null

settlement (ver_1.0.10_code_11)

  • Fix batch bug
  • Check payment app installed before settlement
  • Handle activity result code settlement done

transactions (ver_1.1.17_code_19)

  • Set settlement select by acquire id only
  • Fix check offline transaction

Release Note 2020-02-24

February 24, 2020

@MPS team

Major changes

  • Updated APOLLO SDK to official version 0.03.1
  • Updated gateway type to 1.1.9
  • Fixed bugs after merging other dev branch

paymentlib (ver_1.3.14_code_27)

  • Remove approval code in InputSenderDialog
  • Use release lib for gateway type
  • Add map serializer for dcc config
  • Add receipt method upload
  • Add back map serializer for dual brand visa/mc key
  • Add gp qr code message format
  • Update merchantConfig.logo to var for task MPS-320
  • Add helper function for get STT
  • Add eftSecKin to AcquirerAdditionalConfig
  • Add and adjust config for DCC, dual brand CUP, STT, swiftpass private key

configmanager (ver_1.3.10_code_24)

  • Remove proguard rule for DexGuard
  • Add gp qr profile
  • Update JCB terminalCapabilities & additTermCapabilities (follow PR608)
  • Add stt and dual brand default config
  • Update logo format to base64 in default config
  • Add allowTipAdjustWithoutSign in CHB config
  • Disable contactless for dbs JCB

maintenance (ver_1.0.15_code_16)

  • Update apollo sdk

paymentapp (ver_1.3.9_code_23)

  • Update check swiftpass payment method
  • Fix swiftpass error handle
  • Update swiftpass payment method checking
  • Use sdk official release 03.1
  • Bug fix advice cannot update
  • Add clear batch data function in admin page
  • Update delete batch api and refund not allow linked
  • Append DE55 in online reply as it being comment out accidentally
  • When doing void hide the wait card UI in EMVFragment
  • Handle refund query tradetype different
  • Proper handle dual brand card. TranResult will use CUP if user choose CUP in DBC and also void will use the correct acquirer
  • Manual pan should send checkCardExpiry event after pan enter and thus move related functions from emv to basic. This make manual pan flow same as MSR flow after card swiped
  • Fix merge conflict wrong in last commit
  • Resolve conflict
  • Handle manual pin CUP card need input pin. Move pin related things from EMVFragment into BasicFragment
  • Support dual brand card handling
  • Handle STT. For Sale txn if amount & STT limit no need to capture signature
  • Move upload receipt into transaction app (after upload transaction record)
  • Batch upload processing code use org txn type to lookup
  • Seperate getProcessingCode for batch upload case. Also move DE60 assemble to basicGateway as both Zeta/Amex construct this field during batch upload the same way
  • Update new settlement
  • Seperate tip adjust, offline sale and batch upload into different call in gw level

receipt (ver_1.2.17_code_20)

  • Update apollo sdk
  • Add auth qr code
  • Remove logo base64 png image type to compatible with jpeg
  • Update upload receipt logic
  • Add stt receipt
  • Support to show base64 logo in recipe
  • Upload receipt by transaction id instead of message id

sale (ver_1.2.16_code_19)

  • Update activity send tip request
  • Share input dialog for offline sale, auth comp, void
  • Move tip buttons to activity
  • Disable some animation
  • OnBackPress handle tip and pay fragment
  • Reset page onResume
  • Handle auth qr code response
  • Handle "null" string for cup auth void qr code
  • Fix sale app when start payment collapse bottom sheet instead of hide it. This make the transition look better

settlement (ver_1.0.9_code_10)

  • Update config only when all settlement response success

transactions (ver_1.1.16_code_18)

  • Update upload receipt logic
  • Remove refund button
  • Avoid print receipt in upload worker
  • Keep transaction model in proguard rules
  • Upload receipt after upload transaction record
  • Remove direct mode checking for upload transaction
  • Update sql

Release Note 2020-02-17

February 17, 2020

@MPS team

Major changes

  • Merging DBS, GPAP, DCC and other branches into development
  • Modified payment flow and structure to support for certain Amex, DBS, & GPAP and DCC functions
  • Added tip and pay in sale app
  • Update Marketplace to support customized repository (store) created at MARS
  • Update all APIs to use v2 with signing
  • Added direct Swiftpass WeChat Pay & Alipay support in payment app
  • Added several default configs for CHB, DBS, GPAP, Amex and hostsim
  • Adjusted receipt font
  • Several bug fixes

configmanager (ver_1.3.9_code_23)

  • Update Swiftpass hostconfig name and id
  • Update DBS supported entry mode
  • Enable tip and pay in AMEX ATS config
  • Change default AMEX ATS config to allow tip adjust even no sign
  • Update receipt request
  • Fix api key cleared after load default config
  • Add back AMEX ATS MID/TID for GEDC
  • Add Swiftpass QR
  • Update AMEX default config for ATS
  • Change hostsim AMEX url to use our aws host
  • Add spapputil lib
  • Update DBS JCB default profile mid and TID
  • Add support JCB in default DBS config
  • Update NII for DBS-PP default profile
  • Move strings to lib; Update reference
  • GP CUP update message format and TID
  • Update AMEX supported entry mode
  • Update default config of CHB & DBS
  • Change CHB default config CTL floorlimit to 0 for CUP
  • Change default AMEX config NII
  • Add AMEX default config
  • Change default config for DBS-PP
  • Update SDK to version 3.1 snapshot
  • AEIPS XP DRL setup. SDK version must at least 3.1 or above
  • Move SpectraSignInterceptor into payment lib
  • Save api key from maintenance
  • Add GP acq profile

maintenance (ver_1.0.15_code_14)

  • Update receipt request & printer test sample
  • Update set environment method
  • Fix QR code scanner camera freeze
  • Update base log url & log api version
  • Add spapputil lib
  • Add base url for device log & acra
  • Update permission checking
  • Remove sign interceptor for activation
  • Move SpectraSgnInterceptor into payment lib
  • Pass api key to config manager when activation

marketplace (ver_1.0.7_code_1005008)

  • Update repo detail labels and password dialog
  • Download path update: add hash credential to query
  • Remove unused dependence; extract password Dialog to a method
  • Handle if Server disable the installed Repo
  • Add password protect to market place
  • Migrate android support library to androidx
  • Add Credential to download/ update apk
  • Implement Add Repositories By Scan QR Code
  • Remove default repos
  • Get index.json by url

paymentapp (ver_1.3.6_code_20)

  • Handle field 60
  • Avoid logging not important message to server
  • Use payment log instead of print stack trace for security reason
  • admin setting now password protected and UPI sensitive function will check adminMode
  • Add mechanism to reject txn if settlement in progress. Also user can clear flag through admin setting
  • Should not modify adjustable flag after upload pending advise type transaction
  • Whether allow tip adjust when no sign depends on acq profile config
  • AMEX: fix de25 for offline sale
  • Fix settlement bitmap not initialized
  • Update success response currency from request data
  • AMEX: Use correct updated trace when do batch upload
  • Handle close api
  • Add admin function of upload pending offline transaction
  • Update dcc setting fragment
  • AMEX: Use new field lastUpdateTrace. Also disable DE54 if tip amount is zero
  • Update emv tags for JCB purchase
  • Update entry mode for JCB fallback
  • AMEX: Handle tip amount when do tip adjustment
  • Update receipt request
  • AMEX: Use void txn trace and time for batch upload
  • AMEX: batch upload include voided txn
  • basic gw provide open function to control whether batch upload will include voided txn
  • AMEX Batch upload use zero amount for voided txn it. This can deal with GW that have different time zone issue"
  • Fix tran result not displayed if octopus framework not installed
  • Fix lock task after payment end caused by delay
  • AMEX: Convert from UTC back to local time when parse reply from host
  • 8583 gateway setup date time in response object now factorize into open function and subclass can override it. This can deal with GW that have different time zone issue
  • AMEX: Code cleanup
  • AMEX: Fixed batch upload 8583 error in processing code, pos entry mode and pos cond code.
  • Handle settlement offline and tip msg upload result must approve
  • Fixed offline transaction acq ID null and hence settlement wrong. The problem is caused by gateway being reset by DCC decision changed and hence we need to setup again gateway during checkTransactionOnline
  • Handle void retry interceptor
  • startEMV now need to pass transactionType as well and kernel will use it to output tag 9C
  • void retry
  • Batch upload use lastUpdateTime when exist and fallback to createTime when it's null
  • Update refund and void response
  • AMEX Batch upload also use org trace in de62
  • AMEX refund run in half emv mode first until we clarify correct config
  • AMEX refund run in full emv mode
  • Whether run rxn in half emv mode should be a gateway's decision. Move this function to basicGateway and allow subclass to override
  • AMEX: Disable txn data and time in void message
  • AMEX: Fixed DE62 private field in void message need to use org trace
  • AMEX: Remove DE38 in all cancel message
  • Adjust admin layout
  • Update SDK and support request amount send TLV during DCC flow
  • Update DCC statistic when payment completed. This info is mainly for PP settlement use
  • Add octopus tip
  • DBS CUP Reversal
  • fixed chip card dcc flow not save dcc obj in result issue
  • void transaction
  • DBS CUP Auth-com, Auth-void
  • wechat scan QR code
  • Fix problems found in AMEX ATS QR test
  • Adjust layout
  • Implement DBS CUP settlement, sale adjust, batch up load
  • best practice: Add markup text in PSC dialog if VISA
  • Fixed PDS length field and should use BCD format. Now can use download PYC table instead of local bin table
  • Handle DCC void as it will solely depends on org transaction data to decide use dcc or not
  • Fixed CTL cannot do txn as amount must be provided. In this case SDK need to change the way such that under ICC request amount must be called even amount already provided during startEmv
  • Fixed DCC manual pan entry cannot do rate lookup problem
  • Fixed switch to manual pan fragment crash because of timer setText. Now move countdown timer to paymentActivity
  • impl DBS CUP VIOD 8583 msg
  • present QR code and query
  • Save markup rate text and rate text in dcc object
  • Update tranResult object when doing DCC. Result Activity will show dcc amount in temporary way and should further fine tune
  • Support DCC settlement
  • Implement DCC refund flow. It's slightly different with purchase such that User have to choose whether to use DCC beforehand
  • Support other tran type like refund and void in msg level
  • Implement PP response code table
  • AdvanceSettingPasswordDialog use new spapputil library ref
  • Update settlement & batch upload fields
  • Implement check local bin table by using storage data
  • Add support of local bin table download
  • Change flow to handle DCC in ICC case such that the correct amount and currency can be send to SDK during amount request callback. However right now SDK not support provide PAN and T2Data in this callback so hardcode those values first
  • Update transaction count down timer
  • Use proper text when sending reversal request
  • Rate lookup use proper UI
  • Remove emv timer
  • Allow passing optional string when call commInProgressUpdateUI
  • Change dcc flow to make use of event for decision made
  • Update visa 8583 msg
  • Update ReversalRefundCancel fields
  • DCC Chip card support
  • Support MSR transaction in PP
  • Remove track 1 status checking of bad swipe
  • Update reversal purchase bitmap
  • DCC support rate lookup call
  • Update entry mode logic
  • Pad field 61 for batch upload only
  • Update enter manual key in password flow
  • Update batch upload emv tags
  • Update entry code for offline sale
  • Pad field 62 length
  • Handle offline transaction trace number
  • Fix typo; update strings
  • Update SDK snapshot version 3.1-ss that use EMV_PINTIMEOUT or default 60 seconds in offline pin
  • Fix AE batch upload message
  • Update reversal fields
  • Update field 62 of ReversalPurchaseCancel
  • Remove field 56 for settlement
  • Update 9F41 field get current trace number
  • reslove conflicts
  • Show error if response code is not approved / batch upload for settlement
  • Fix trace number not added before settlement if there is 220 request
  • fix second settlement trace number
  • Handle settlement fail
  • Handle visa field 63 sale and void
  • Add GP key injection
  • fix back crash issue
  • Add payment timer
  • MPS-39 disable activity animation
  • Update manual entry amount
  • CUP Pre-auth 8583 request
  • Fix DE25, DE44, DE55 in AMEX
  • Update SDK snapshot version 3.1 that fix offline pin input timeout hang problem
  • Fixed CPQR 026 and 027
  • Fixed CPQR 016 and 018
  • Fix setup gateway with incorrect payment method Abort transaction in case tlv data is null
  • cup sale, refund 8583 request
  • Fixed AMEX CPQR 013 test case
  • Fixed AMEX R CPQR 011 test case
  • Fixed AMEX QR CPQR 010 test case
  • Add password protection for manual key in
  • Rewrite part of QR scan code logic. Problem is when scan an invalid QR code during SALE it will cause paymentApp processing forever until WDT
  • Add AMEX QR support
  • AMEX: Fixed parse DE55
  • Update AE phrase DE55
  • Update tip adjust and offline msg
  • AMEX support HTTP channel if URL protocol start with it
  • AMEX: Fixed parse DE55 construct online reply format problem
  • Fix AMEX GW: when construct onlineReply throw exception don't send null string. This potentially make the txn offline approve even server reply de39 is not 00
  • Finished first feature pyc table download
  • Update refund batch upload msg and settlement msg
  • Update SDK to 3.1 snapshot and fix AMEX L3 DRL test case
  • Support rate report download 8583
  • Update entry mode checking
  • Move entry mode checking out of getBitmap
  • Add checking length in CVN dialog
  • Update DBS fields for different message type
  • Fix AMEX CVN type
  • Update DSB CUP sale request
  • Set 123field bitmap
  • Update DBS CTL field 55
  • Add settlement currency
  • Update batch upload msg
  • Remove obsolete function handleEMVCardVerificationNumber and checkTransactionOnline function in EMVFragment as it's move to basicFragment already. Also fixed the bug that only AMEX need ask CVN
  • Remove getTagData in AMEX
  • Add CVN in manual sale
  • Add string
  • Move SpectraSgnInterceptor & ByteArray extension function into payment lib
  • Fix compile error
  • Add display text when CTL card read ok as it's AEIPS cert req
  • Update part of DBS message fields & emv tags in field 55
  • Isolate HTTP error into seperate commError type such that display transaction result page can use more precise error text
  • Update spgw v2 sign method for both put and get
  • CVN no need to show in Auth with chip type
  • Update refund reversal msg
  • Allow modify batch number in admin setting
  • Add dcc setting fragment
  • Add dummy planetpayment gw
  • Set GP pay and tip msg
  • Set tip amount
  • Remove string
  • Update GP reversal message
  • Add refund void reversal message
  • Fixed entry mode of MSR for GP use 90 instead of 02. Additional data also define enum instead of hardcode

paymentlib (ver_1.3.13_code_26)

  • Update dto version
  • Add offline adjusted image and add advice transaction path
  • Add last update trantype
  • Add allowTipAdjustWithoutSign in acquireProfile config
  • Typo in last commit
  • Add extra string key to control settlement req upload transaction only
  • Adjust string template
  • Add lastUpdateTrace in result object BIN table
  • fix percentage string
  • Add terminal response code for reject operation as settlement in progress
  • Add function to get key of api key
  • Add request data tip amount
  • Add string
  • Change entry mode abbreviation
  • Update logic to get acra & device log url
  • Add device util to get rom is under production / debug mode
  • Update acra url
  • Change dcc rate from bigdecimal to string
  • Add markup rate text in dcc object
  • Add PP host response code
  • Move AdvanceSettingPasswordDialog to spapputil lib
  • Add DCC network mgt enum
  • Update QRcode acquirer format name
  • Add CHB QR format
  • Add log url for device log & acra
  • Use S/N instead of android id for logging
  • Update strings; update translations; fix typo
  • Change getAcquirerByPaymentMethodAndBin logic. If input not specify or host not exist dcc flag default is not use
  • Add GP CUP message format enum
  • Set password option for manual key in
  • Add new terminal response contaCTLess not permitted as SDK changed
  • Add isDccAllow check in getAcquirerByPaymentMethodAndBin if this argument is non-null
  • Add SenderDialog enum and card verification number
  • Add DCC network management action enum
  • Update device log endpoint
  • Add SpectraSgnInterceptor & ByteArray extension function
  • Add string for CTL card read ok
  • Update v2 sign calculate method
  • Set api key in local config
  • Get api key from NetworkConfigHelper
  • Add ENUMs /strings for EPS enquiry
  • Add DCC an option when call helper function in getAcquirerByPaymentMethodAndBin and isOperationAllowed

quicklaunch (ver_1.0.10_code_11)

  • fix version typo
  • Add EPS Enquiry button

receipt (ver_1.2.16_code_19)

  • Update html template
  • Update printDataType to receiptRequest.receiptType
  • Update template style
  • Remove unused font asset; post delay for rendering html and screenshot to avoid blank screen
  • AMEX CPQR receipt
  • Edit print string; Adjust styles; Edit EPS template
  • Move SpectraSignInterceptor into payment lib
  • Adjust style
  • Print base/ tip in void receipt
  • Adjust card & report builder
  • Change report using builder template
  • Update html builder
  • Refactor using html builder
  • Add EPS Template

sale (ver_1.2.15_code_18)

  • Handle custom tip amount input
  • Update variable totalAmount to tipAmount
  • Update receipt request
  • Check config and transactionType before switch to tipFragment
  • Adjust tip and pay layout
  • Handle cancel back to keypad
  • Add pay with tip api
  • Add AMEX icon in QR; change server problem icon
  • Add QR code scanning for auth with cup input
  • Move string to lib
  • Update new fragment tip

settlement (ver_1.0.8_code_9)

  • Remove admin mode
  • Avoid reload fragment if re-select bottom navigation item
  • Update receipt request
  • Set activity to adjust pan
  • Add delete batch in admin mode
  • Update string
  • Update for EPS Settlement

support (ver_1.0.11_code_12)

  • Move SpectraSignInterceptor into payment lib

tmsclient (ver_1.1.13_code_16)

  • Add receipt type

transactions (ver_1.1.16_code_16)

  • Update Swiftpass get status api
  • Update get mid from app config
  • Add Swiftpass query
  • Refresh details page when on resume
  • Update db version
  • Update receipt request
  • Batch upload sql filter list do not filter VOIDED txn. Let paymentApp do the filtering instead
  • Get offline transaction without approve status
  • Get offline transaction without void type
  • Move SpectraSignInterceptor into payment lib
  • Update id to name
  • Add back port number used for debug db
  • Avoid logging not important message to server
  • Replace hardcode strings
  • Update api request url
  • Fix date range picker incorrect time
  • Update logic to get host
  • Add function to delete transaction record by acquireId in content provider
  • Update logic to check spectra host
  • Add sign interceptor
  • Update QR code refund status
  • Update direct mode dont upload data to mars, update sql
  • Fix missing transaction in listing after refresh
  • Fix lint check warning / error
  • Ignore spelling checking
  • Remove not use code
  • Code inspection
  • Update total transaction calculation
  • Remove settlement util pref file code
  • Set get settlement data by db
  • Not allow to adjust tip / void / refund for voided / refunded transaction
  • Show refund button in listing & details page
  • Adjust layout
  • Only update tran status from api if it is processing
  • Add button in details to get latest status of processing transaction
  • Add function to force reload tms config
  • Remove BatchDetailActivity in manifest
  • Don't print auth for details report
  • Hide total refund in widget
  • Move string to lib for translation; update string
  • Remove redundant log
  • auth transaction dont add amount to settlement list
  • Save acquire name
  • Fix local config is not initialized when upload records to tms
  • Subtract total amount of refund & void transaction
  • Hide refund button
  • align layout with settlement
  • Update lib; update style
  • Update history list order by
  • if void update time to lastupdatetime field
  • Add status for report printing
  • Update settlement get offline list
  • Fix cannot upload transaction records to tms if failed records more than one
  • Fix missing payment logs in server
  • Close swipe layout after button click
  • Add refund button in transaction list
  • Remove get batch list auth transaction
  • Clear settlement preferences if no records in db
  • Update f-Droid description with next line
  • Force reload tms config in content provider
  • Fixed crash when print receipt clicked without receipt service installed
  • Add detail page refund button transaction

Release Note 2020-01-14

January 14, 2020

@MPS team

Major changes

  • Added password protection for sensitive operations, such as TMK download & remove, config manager and maintenance
  • Show sensitive info only when admin mode
  • Rollback to API v1
  • Remove less important log to update to server

configmanager-v1.3.7

  • Show tab on admin mode only
  • Add password for admin mode
  • Local settings protected in admin mode
  • Remove less important log uploaded to server
  • Replace lock home button with android API startLockTask

maintenance-v1.0.10

  • Rollback to API v1 for demo environment, leave v2 for UAT env
  • Add toast for incorrect password
  • Add password protection
  • Update gateway URL
  • Fix IP display

paymentapp-v1.3.4

  • Fix UI display issue

quicklaunch-v1.0.9

  • Fix UI display issue

receipt-v1.2.14

  • Fix acquirer name printing

sale-v1.2.14

  • Change default port for API integration
  • Remove less important log uploaded to server

settlement-v1.0.7

  • Remove less important log uploaded to server

support-v1.0.10

  • Remove less important log uploaded to server

tmsclient-v1.1.11

  • Remove less important log uploaded to server
  • Force update token after local config update

transactions-v1.1.12

  • Remove less important log uploaded to server
  • Add port number for debug database

Release Note 2020-01-08

January 8, 2020

@MPS team

What's new

  • Add signature for all API call to improve security
  • Fix receipt issue due to OOM, HTML to bitmap library, & timing
  • As the server environment is separated into UAT & Demo, add selection in activation flow for the baseURL

configmanager-v1.3.6

  • Replace hardcoded strings for translation
  • Disabled email and sms receipt in defaultConfig for CHB, DBS and EPS
  • Update timer logic in update config dialog
  • Update error message handling
  • Add log after save TMS config locally
  • Fix log exceed character limit
  • Update api request url
  • Remove 'push to mars' button to push config
  • Update logic to get host
  • Add sign interceptor
  • Use v2 api to get config
  • Add null handling
  • Add default DBS CUP profile

maintenance-v1.0.7

  • Add button to select server environment (UAT, Demo)
  • Set SpectraEnvironment
  • Replace hardcoded strings for translation
  • Add api version in build config
  • Update api request url
  • Set host when application created
  • Update logic to check spectra host
  • Add sign interceptor

marketplace-v1.0.6 (require ROM update)

  • Hide downgrade button in marketplace
  • Block certain app update if there're transaction data
  • Remove badge on 'update' in marketplace

paymentapp-v1.3.3

  • Fix transactionResult date time not updated upon autoTimeSync
  • If host server reply transaction date and time, use it as result's last update time
  • Follow PR608 and add back key index in DBSSignOn request even it seems server will approve anyway no matter it exist or not
  • Update logic to check spectra host
  • As inject TPK for both zeta and DBS just same handling refactor code for reuse
  • DBS TMK TPK inject success
  • Catch EOF exception and treat as ReadWriteTimeout
  • Handle DBS CUP Key exchange. Key inject not yet done
  • Create dummy DBSCUP payment gateway ready for override
  • Add sign interceptor
  • Update qr code batch no
  • Update present method
  • Add back product code DE61 for DBS. Now got approval from UAT for both MC and VISA

quicklaunch-v1.0.8

  • Add offline to quick launch
  • Quick launch item depends on config

receipt-v1.2.13

  • Fix preload bitmap with null html template string
  • Avoid getting null or bitmap with invalid height
  • Import html2bitmap builder source code instead of download from gradle
  • Don't treat bitmap as finished if height is unusual
  • Log message id only after upload receipt complete
  • Push log before service destroy
  • Update api request url
  • Update logic to get host
  • Update logic to check spectra host
  • Add sign interceptor
  • Fix notification strings

sale-v1.2.13

  • Replace hardcoded strings for translation
  • Show toast if no paymentApp installed
  • Exit app instead of crash if currency in config is null. This usually indicate config itself is empty

settlement-v1.0.6

  • Through payment app to handle settlement even requireSettlement is false

spectralauncher-v1.2.4

  • Change to 4 by 4 grid
  • Fix quick launch exit sometime cannot exit

support-v1.0.9

  • Disable SMS in support
  • Add sign interceptor
  • Update API to v2

tmsclient-v1.1.11

  • Add sign interceptor
  • Fix crash of NoClassDefFoundError (LocalBroadcastManager)

transactions-v1.1.11

  • Replace hardcoded strings for translation
  • Update api request url
  • Fix date range picker incorrect time
  • Update logic to get host
  • Add function to delete transaction record by acquireId in content provider
  • Update logic to check spectra host
  • Add sign interceptor
← PrevNext →
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