public interface ITransaction extends IIngenicoApi
Usage example for a simple payment:
ITransaction
transaction = Transaction.getInstance(context); // First register to transactionDone to show up transaction result transaction.registerTransactionDoneListener(transactionListener); // Prepare transaction input dataTransactionInputData
inputData =TransactionInputData
.builder() .setTransactionType(TransactionTypes
.SALE) .setAmount(newBigDecimal
("10.00")) .setCurrency(978L) // 978: "EUR" .addPaymentMean(PaymentMeans
.CONTACT_CHIP) .setTipAmount(newBigDecimal
("1.00")) .setSurchargeAmount(newBigDecimal
("0.45")) .build(); // Start the transactionTransactionRequest
request = transaction.start(inputData); // Check if request has been accepted if (request.isRequestAccepted()) { // Ok, the transaction is being processed }
Usage example for a void request:
ITransaction
transaction = Transaction.getInstance(context); // First register to transactionDone to show up transaction result transaction.registerTransactionDoneListener(transactionListener); // Prepare transaction input dataTransactionInputData
inputData =TransactionInputData
.builder() .setTransactionType(TransactionTypes
.VOID) .setAmount(newBigDecimal
("10.00")) .setCurrency(978L) // 978: "EUR" .addPaymentMean(PaymentMeans
.CONTACT_CHIP) .setTransactionId("ABCD-123") .setTipAmount(newBigDecimal
("1.00")) .setSurchargeAmount(newBigDecimal
("0.45")) .build(); // Start the transactionTransactionRequest
request = transaction.start(inputData); // Check if request has been accepted if (request.isRequestAccepted()) { // Ok, the void transaction is being processed }
Usage example for a refund request:
ITransaction
transaction = Transaction.getInstance(context); // First register to transactionDone to show up transaction result transaction.registerTransactionDoneListener(transactionListener); // Prepare transaction input dataTransactionInputData
inputData =TransactionInputData
.builder() .setTransactionType(TransactionTypes
.REFUND) .setAmount(newBigDecimal
("10.00")) .setCurrency(978L) // 978: "EUR" .addPaymentMean(PaymentMeans
.CONTACT_CHIP) .setTransactionId("ABCD-123") .setStan("123-456-789") .build(); // Start the transactionTransactionRequest
request = transaction.start(inputData); // Check if request has been accepted if (request.isRequestAccepted()) { // Ok, the void transaction is being processed }
Usage example for a cash back amount request:
ITransaction
transaction = Transaction.getInstance(context); // First register to transactionDone to show up transaction result transaction.registerTransactionDoneListener(transactionListener); // Prepare transaction input dataTransactionInputData
inputData =TransactionInputData
.builder() .setTransactionType(TransactionTypes
.PAYMENT_WITH_CASH_OUT) .setAmount(newBigDecimal
("10.00")) .setCurrency(978L) // 978: "EUR" .addPaymentMean(PaymentMeans
.CONTACT_CHIP) .setCashAmount(newBigDecimal
("5.00")) .build(); // Start the transactionTransactionRequest
request = transaction.start(inputData); // Check if request has been accepted if (request.isRequestAccepted()) { // Ok, the void transaction is being processed }
Usage example for a recover transaction request:
ITransaction
transaction = Transaction.getInstance(context); // First register to transactionDone to show up transaction result transaction.registerTransactionDoneListener(transactionListener); // Prepare start transaction input dataTransactionInputData
inputData =TransactionInputData
.builder() .setTransactionType(TransactionTypes
.REFUND) .setAmount(newBigDecimal
("10.00")) .setCurrency(978L) // 978: "EUR" .addPaymentMean(PaymentMeans
.CONTACT_CHIP) .setTransactionId("ABCD-123") .setStan("123-456-789") .build(); // Start the transactionTransactionRequest
request = transaction.start(inputData); // Check if request has been accepted if (request.isRequestAccepted()) { // Ok, the void transaction is being processed } // Prepare recover transaction input dataRecoveryInputData
recoverData =RecoveryInputData
.create(request.getRecoveryId()); // Recover the transactionTransactionResult
result = transaction.recover(recoverData);
Modifier and Type | Method and Description |
---|---|
boolean |
abortOngoingTransaction()
Abort the started transaction in case of any event happening at the cash register after a
start has been triggered but before the payment mean is detected.
|
java.util.List<Currency> |
getAvailableCurrencies()
Get the list of any available currencies supported by the Point Of Sale (POS) or payment
terminal.
|
java.util.List<java.lang.Integer> |
getAvailablePaymentMeans()
Get the list of any available payment means supported by the POS such as swipe, smart card,
contactless, QR Code...
|
java.util.List<TransactionType> |
getAvailableTransactionTypeList()
Get the list of any available transaction types supported by the POS.
|
java.util.List<java.lang.Integer> |
getAvailableTransactionTypes()
Deprecated.
since 2.15.0, use
ITransaction.getAvailableTransactionTypeList() . |
TransactionResult |
recover(RecoveryInputData inputData)
Start a transaction recovering to the parameter filled in recoverId field.
|
void |
registerTransactionDoneListener(ITransactionDoneListener listener)
Register a new listener for TransationDone event sent within a transaction result.
|
TransactionRequest |
start(TransactionInputData inputData)
Start a transaction according to the parameters filled in inputData field.
|
void |
unregisterTransactionDoneListener(ITransactionDoneListener listener)
Unregister an existing transaction listener.
|
connect, disconnect, isConnected
TransactionRequest start(TransactionInputData inputData) throws IngenicoException
inputData
- transaction parametersjava.io.IOException
- when the start transaction call failsIngenicoException
TransactionResult recover(RecoveryInputData inputData) throws IngenicoException
inputData
- transaction recovering parametersjava.io.IOException
- when the recover transaction call failsIngenicoException
java.util.List<Currency> getAvailableCurrencies() throws IngenicoException
Usage example:
ITransaction
transaction = Transaction.getInstance(context); // Get the available currenciesList
<Currency
> currencies = transaction.getAvailableCurrencies(); // Check that EUR is available boolean euroIsAvailable = false; for (Currency
currency : currencies) { if (currency.getNumericCode() == 978L) { euroIsAvailable = true; break; } } if (euroIsAvailable) { // Do things with euro }
java.io.IOException
- when could not retrieve the currenciesIngenicoException
@Deprecated java.util.List<java.lang.Integer> getAvailableTransactionTypes() throws IngenicoException
ITransaction.getAvailableTransactionTypeList()
.Usage example:
ITransaction
transaction = Transaction.getInstance(context); // Get the available transaction typesList
<Integer
> transactionTypes = transaction.getAvailableTransactionTypes(); // Check that SALE is available boolean saleIsAvailable = false; for (Integer
transactionType : transactionTypes) { if (transactionType ==TransactionTypes
.SALE) { saleIsAvailable = true; break; } } if (saleIsAvailable) { // Ok, we can proceed with a transaction sale }
java.io.IOException
- when could not retrieve the transaction typesIngenicoException
TransactionTypes for predefined values
java.util.List<TransactionType> getAvailableTransactionTypeList() throws IngenicoException
Usage example:
ITransaction
transaction = Transaction.getInstance(context); // Get the available transaction typesList
<TransactionType
> transactionTypes = transaction.getAvailableTransactionTypeList(); // Check that SALE is available boolean saleIsAvailable = false; for (TransactionType
transactionType : transactionTypes) { if (transactionType.getValue() ==TransactionTypes
.SALE && transactionType.getLabel().equals("Sale")) { saleIsAvailable = true; break; } } if (saleIsAvailable) { // Ok, we can proceed with a transaction sale }
java.io.IOException
- when could not retrieve the transaction typesIngenicoException
java.util.List<java.lang.Integer> getAvailablePaymentMeans() throws IngenicoException
Usage example:
ITransaction
transaction = Transaction.getInstance(context); // Get the available payment meansList
<Integer
> paymentMeans = transaction.getAvailablePaymentMeans(); // Check that CONTACT_CHIP is available boolean contactChipIsAvailable = false; for (Integer
mean : paymentMeans) { if (mean ==PaymentMeans
.CONTACT_CHIP) { contactChipIsAvailable = true; break; } } if (contactChipIsAvailable) { // ok, we can process transactions with contact chip }
java.io.IOException
- when could not retrieve the dataIngenicoException
PaymentMeans for predefined values
boolean abortOngoingTransaction() throws IngenicoException
Usage example:
if (!transaction.abortOngoingTransaction()) { // Could not abort the ongoing transaction } else { // Transaction aborted, the transaction done event status will state that the // transaction was aborted }
java.io.IOException
- when the abort call failsIngenicoException
void registerTransactionDoneListener(ITransactionDoneListener listener)
listener
- void unregisterTransactionDoneListener(ITransactionDoneListener listener)
listener
-