Create a Config object and set API configuration parameters

Note that ipcApiUrl is different for sandbox and production environment

You can set RSA keys for request signatures by setting key content using loadPrivateKeyFromString and loadPublicKeyFromString or by setting file path using loadPrivateKeyFromFile and loadPublicKeyFromFile

For more information please refer to myPOS Checkout API Documentation

import java.net.MalformedURLException;
import java.net.URL;
import com.mypos.myposcheckout.ipc.Config;
import com.mypos.myposcheckout.ipc.IPCException;
// ...
Config cnf = new Config();
URL ipcApiUrl = null;
try {
ipcApiUrl = new URL("https://mypos.eu/vmp/checkout-test/");
} catch (MalformedURLException ex) {
// Handle the malformed URL exception
}
cnf.setIpcUrl(ipcApiUrl);
cnf.setLang("en");
cnf.loadPrivateKeyFromFile("path_to_directory/storePrivateKey.pem"); // Replace `path_to_directory` with the actual file path
cnf.loadPublicKeyFromFile("path_to_directory/apiPublicKey.pem"); // Replace `path_to_directory` with the actual file path
cnf.setKeyIndex(1);
cnf.setSid("000000000000010");
cnf.setVersion("1.3");
cnf.setWalletNumber("61938166610");


Create TransactionLog object and set the required parameters

import com.mypos.myposcheckout.ipc.enumerable.CommunicationFormat;
import com.mypos.myposcheckout.ipc.request.TransactionLog;
// ...
TransactionLog ipcLog = new TransactionLog(cnf);
ipcLog.setOrderId("123456");
ipcLog.setOutputFormat(CommunicationFormat.JSON);


Process the request

import com.mypos.myposcheckout.ipc.IPCException;
import com.mypos.myposcheckout.ipc.response.ComplexResponse;
// ...
ComplexResponse ipcResponse = ipcLog.process();
ipcResponse.processApiResponse();


Check response status and use the received data
You may get response data as a Map<String, String>/ResponseNode<String, String> using getBasicData()/getComplexData() method or
in original communication format using getRawData()

import com.mypos.myposcheckout.ipc.IPCException;
// ...
switch (ipcResponse.getStatusCode()) {
case SUCCESS:
// Display the returned data in the site interface
// ipcResponse.getComplexData().getChild("log");
break;
case INVALID_PARAMS:
// Order not found or set parameters are invalid
break;
}


Note:
It is a good practice to use try-catch statements to catch "IPCException" exceptions

import com.mypos.myposcheckout.ipc.IPCException;
import com.mypos.myposcheckout.ipc.enumerable.CommunicationFormat;
import com.mypos.myposcheckout.ipc.request.TransactionStatus;
import com.mypos.myposcheckout.ipc.response.ComplexResponse;
// ...
try {
TransactionStatus ipcLog = new TransactionLog(cnf);
ipcLog.setOrderId("123456");
ipcLog.setOutputFormat(CommunicationFormat.XML);
ComplexResponse ipcResponse = ipcLog.process();
ipcResponse.processApiResponse();
switch (ipcResponse.getStatusCode()) {
case SUCCESS:
// Display the returned data in the site interface
// ipcResponse.getComplexData().getChild("log");
break;
case INVALID_PARAMS:
// Order not found or set parameters are invalid
break;
}
} catch (IPCException ex) {
// Handle the exception
}