Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This also applies to external operations like Cancellation operations - once a cancel has been signaled to Arkos, the system should still process any requested service and wait for a completion of the service call. This may include transmits, displays or any othermore.

Standard usage

Code Block
breakoutModefull-width
// Create the minimal parameter set

TlvTree paymentParams = TlvTree.Empty();

paymentParams.AddBin(ArkosTags.SelectedService, new byte[] { 0x00 });
// Amounts are in BCD. In most cases, all 3 amounts should be the same value.

paymentParams.AddBin(ArkosTags.TransactionAmount, new byte[] { 0x00, 0x00, 0x00, 0x00, 0x10, 0x00 });
paymentParams.AddBin(ArkosTags.AmountAuthorised, new byte[] { 0x00, 0x00, 0x00, 0x00, 0x10, 0x00 });
paymentParams.AddBin(ArkosTags.TransactionAmountBeforeAdjustment, new byte[] { 0x00, 0x00, 0x00, 0x00, 0x10, 0x00 });

// The system needs to provide the Date and Time of this transaction, and the local TimeZone
Calendar cal = Calendar.getInstance();
int utcOffsetMinutes = cal.getTimeZone().getOffset(cal.getTimeInMillis()) / 1000 / 60;
byte[] utcOffset = new byte[2];
utcOffset[0] = (byte) (utcOffsetMinutes / 60);
utcOffset[1] = (byte) (utcOffsetMinutes % 60);
paymentParams.AddEMVDate(ArkosTags.TransactionDate, cal.get(Calendar.YEAR) % 100, cal.get(Calendar.MONTH) + 1, cal.get(Calendar.DAY_OF_MONTH));
paymentParams.AddEMVTime(ArkosTags.TransactionTime, cal.get(Calendar.HOUR), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND));
paymentParams.AddBin(ArkosTags.LocalTimezone, utcOffset);

paymentParams.AddAscii(ArkosTags.SelectedLanguage, "en");

//Optional, add transaction channel
paymentParams.AddEnum(ArkosTags.TransactionChannel,TransactionChannelID.Mpos);

// Call to the doPayment API, sending the Arkos configuration, and parameters as a byte Array
PaymentResult result = arkos.doPayment(configuration, paymentParams.AsBytes());

// Use the payment result
Log.d("payment", "Result: " + result.result);

...

Name

Tag

Format

Usage

Selected Service

CE

u8; 1

Expand
titlePossible Values

FF: None
0701: Payment
0602: Refund
0503: Cancellation
04: Preauth
0305: Update Preauth
0206: Payment Completion
0107: Cash Advance
0008: Deferred Payment
0809: Deferred Payment Completion
1210: Voice Authorisation
0911: Cardholder Detection
1012: Card Validity Check
1113: No Show

14: Original Credit

15: Quasicash

Identification of the payment service requested

Transaction Amount

D5

BCD; 12
fixed exponent (2)

Amount of the transaction

Authorised Amount

9F02

BCD; 12
fixed exponent (2)

Transaction Amount Before Adjustment

DFFF47

BCD; 12
fixed exponent (2)

Transaction Time

9F21

BCD; 6
HMS, two nibbles per element
Ex: [0x16, 0x17, 0x27] (16:17:27)

Time at which the current action is performed

Transaction Date

9A

BCD; 6
YMD, two nibbles per element
Ex: [0x20, 0x08, 0x16] (2020-aug-16)

Date at which the current action is performed

Local Time Zone

DF9F3F

i8; 2
Hour and minute offset, one byte each
Ex: [-5, 0]

Local Timezone in which the current action is performed

Selected Language

CD

ASCII; 2
Ex: "en"

...