Calling the SDK, parameters required and design data model class


 

Step1:

 

How to call the SDK:

Code snippet add into custom application class.

! Notes :

  • The Login Id, ApiUserName, ClientID and ClientSecret will be provided by iServeU which contains the user id and password details, please check the below example of the ClientID and ClientSecret.
  • skipReceipt field default value is false. If user wants to customize the transaction status page then the value should be true.
  • Please ensure the Client ID and Client Secret keys are not to be stored locally within the application. The same is only to be stored on the server side.
  • Client Transaction ID (ClientRefID) max length should be 18 digits and data type to be set as string.

Example

client_id: To be shared during integration
client_secret: To be shared during integration

 

For MOREFUN users, the device type should be

dataModel.setDevice_name = “morefun”

For PAX users, the device type should be

dataModel.setDevice_name = "pax"

For PAX A910 users, the device type should be

dataModel.setDevice_name = "A910"

For WISEASY users, the device type should be

dataModel.setDevice_name = "Wiseasy"

 

Sample App View

matm-sdk-android-initialisation-view

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Select the appropriate service device that is to be used (PAX or MoreFun).
  2. Then the Transaction Type is being selected (Cash Withdrawal or Balance Enquiry).
  3. Fill in the required details (Here these details are required for Cash Withdrawal). And finally, click on the Initiate Transaction button to proceed with the transaction.

 

matm-sdk-android-initialisation-view

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Image 1 (for PAX devices) - The available devices will be displayed that can be connected via Bluetooth. The Device IDs are displayed (as highlighted in the image) and clicking on it will get them connected and ready for transaction.

Image 2 (For MoreFun devices) –

  1. Search a new device to connect using the search bar.
  2. Click on the Is Connect button to connect the device and click the Disconnect button to get disconnected from the connected device.
  3. Displays the connected device.

Step 2:

Required Parameters to be send to the SDK:

Name Parameter name Description Valid Values (Type) and Validation Mandatory /Optional
Transaction Amount transaction Amount Transaction amount for cash withdrawal Numeric. A minimum of 100 and a maximum of 10000. Mandatory
Transaction Type transaction Type Type of transaction to be performed. String Mandatory
Shop Name shop_name To be used as per client requirement Alphanumeric String Optional
Brand Name brand_name To be used as per client requirement. Alphanumeric String Optional
Application Type application Type Application Category String Mandatory
Param B paramB To be used as per client requirement Alphanumeric String. Maximum length is 20. Optional
Param C paramC To be used as per client requirement Alphanumeric String. Maximum length is 20. Optional
Device Type device_type Terminal brand name String Mandatory
Device name device_name Terminal model number String Optional
API User Name apiUserName API User’s Name String Mandatory
Client Reference ID ClientRefID Reference ID of client. Alphanumeric String. Maximum length is 18. Mandatory
Client ID clientID Will be shared by iServeU Alphanumeric String Mandatory
Client Secret clientSecret Will be shared by iServeU Alphanumeric String Mandatory
Login ID loginID User application login ID or username Alphanumeric String Mandatory
Skip Receipt skipReceipt If client wants to skip the receipt downloading part Boolean. Default value is false. Set true to skip receipt download Mandatory
Theme Color themeColor Lets the client select its own theme ThemeColor Mandatory

Step 3:

Data Model Class:

public class DataModel {
String transactionAmount;
String transactionType;
String shop_name;
String brand_name;
String applicationType;
String paramB;
String paramC;
String device_type;
String device_name;
String apiUserName;
String user_mobile_number;
private String userName;
private String clientRefID;
private String clientID;
private String clientSecret;
String loginID;
Boolean skipReceipt;
ThemeColor themeColor;
public ThemeColor getThemeColor() {
  return themeColor;
}
public void setThemeColor(ThemeColor themeColor){
  this.themeColor = themeColor;
}
public String getApiUserName() {
  return apiUserName;
}
public void setApiUserName(String apiUserName) {
  this.apiUserName = apiUserName;
}
public String getClientRefID() {
  return clientRefID;
}
public void setClientRefID(String clientRefID) {
  this.clientRefID = clientRefID;
}
public String getClientID() {
  return clientID;
}
public void setClientID(String clientID) {
  this.clientID = clientID;
}
public String getClientSecret() {
  return clientSecret;
}
public void setClientSecret(String clientSecret) {
  this.clientSecret = clientSecret;
}
public Boolean getSkipReceipt() {
  return skipReceipt;
}
public void setSkipReceipt(Boolean skipReceipt) {
  this.skipReceipt = skipReceipt;
}
public String getTransactionAmount() {
  return transactionAmount;
}
public void setTransactionAmount(String transactionAmount) {
  this.transactionAmount = transactionAmount;
}
public String getTransactionType() {
  return transactionType;
}
public void setTransactionType(String transactionType) {
  this.transactionType = transactionType;
}
public String getShop_name() {
  return shop_name;
}
public void setShop_name(String shop_name) {
  this.shop_name = shop_name;
}
public String getBrand_name() {
  return brand_name;
}
public void setBrand_name(String brand_name) {
  this.brand_name = brand_name;
}
public String getApplicationType() {
  return applicationType;
}
public void setApplicationType(String applicationType) {
  this.applicationType = applicationType;
}
public String getUserName() {
  return userName;
}
public void setUserName(String userName) {
  this.userName = userName;
}
public String getUser_mobile_number() {
  return user_mobile_number;
}
public void setUser_mobile_number(String user_mobile_number) {
  this.user_mobile_number = user_mobile_number;
}
public String getParamB() {
  return paramB;
}
public void setParamB(String paramB) {
  this.paramB = paramB;
}
public String getParamC() {
  return paramC;
}
public void setParamC(String paramC) {
  this.paramC = paramC;
}
public String getDevice_type() {
  return device_type;
}
public void setDevice_type(String device_type) {
  this.device_type = device_type;
}
public String getDevice_name() {
  return device_name;
}
public void setDevice_name(String device_name) {
  this.device_name = device_name;
}
public String getLoginID() {
  return loginID;
}
public void setLoginID(String loginID) {
  this.loginID = loginID;
}
}

Step 4:

Sample Code for passing data through the data model:

 

sample app view

matm-sdk-android-initialisation-sample-app-view

 

! Notes 

For Cash Withdrawal the Amount (Should be greater than equal to 100 and less than equal to 10000 ) and the Mobile Number have to be filled in to proceed with the transaction.

Please refer to the sample code below.

private void callMATMSDKApp() {
if (skipReceiptCB.isChecked()) {
isSkip = true;
} else {
isSkip = false;
}
DataModel dataModel = new DataModel();
if (rbBalanceEnquiry.isChecked()) {
dataModel.setTransactionType("0");
dataModel.setTransactionAmount("0");
} else if (rbCashWithdrawal.isChecked()) {
dataModel.setTransactionType("1");
dataModel.setTransactionAmount(etAmount.getText().toString().trim());
}
ThemeColor themeColor =new ThemeColor();
themeColor.setButtonBgColor("#000000");
themeColor.setButtonTextColor("#FFFFF");
DataModel dataModel = new DataModel();
dataModel.setThemeColor(themeColor);
dataModel.setApplicationType("");
dataModel.setDevice_type("pax");
dataModel.setUserName("aepsTestR");
dataModel.setLoginID("aepsTestR"); //Sdk user
dataModel.setClientID(""); //Client ID
dataModel.setClientSecret("");//Client Secret key
dataModel.setApiUserName("upitestret");
dataModel.setShop_name("");
dataModel.setBrand_name("iServeU");
dataModel.setDevice_name("paxd180");
dataModel.setClientRefID(et_clientRef.getText().toString());
dataModel.setParamB("branch1");
dataModel.setParamC("loanID1234");
dataModel.setUser_mobile_number("8949494949");
dataModel.setSkipReceipt(isSkip);
MatmSdkConstants.Companion.setMATMOnFinishListener(this);
Intent intent = new Intent(MainActivity.this, MatmActivity.class);
Gson gson = new Gson();
String getdata = gson.toJson(dataModel);
intent.putExtra("data", getdata);
startActivity(intent);
}

 

Step 5:

Code Snippet for Callback Response (Optional for User):

OnFinishListener is a callback created to update the client app after Receipt Page (Success/Failure). It has a method called onSDKFinish() which will have mostly four parameters (status Txt, ClientRefID, statusDesc and a jsonObject). When the client app turns on the OnFinishListener by making SDKConstants to true (SDKConstants.onFinishListener = true), the SDK will initiate the callback through onSDKFinish after finishing the Receipt page.

Notes : User can check the Status & ClientRefID value using this Callback Method.

Java :

MatmSdkConstants.Companion.setMATMOnFinishListener(this);

Kotlin :

MatmSdkConstants.MATMOnFinishListener = this

Implements MATMOnFinishListener in the Activity where this below method will override.

@Override
public void onSDKFinish(String statusTxt, String ClientRefID,
String statusDesc,
JSONObject jsonObject) {
Toast.makeText(MainActivity.this,
statusTxt + ClientRefID + statusDesc + jsonObject,
Toast.LENGTH_SHORT).show();
Log.d("transactionData",
jsonObject.toString());// Please refer below for further details.
}

 

Required Keys to get the transaction data from the Callback:

Key Name Name Description
FLAG flag Status of the Transaction
TRANSACTION_ TYPE Transaction Type

Type of transaction performed.

“1” signifies a cash withdrawal

“0” signifies a balance enquiry

TRANSACTION_ID Transaction ID Transaction ID
RRN_NO Rrn no 12 digit RRN Number
RESPONSE_CODE Response code To be used by the client as per requirement
AMOUNT Amount Amount being transacted.
MID MID Merchant Identification Number
TID TID Terminal Identification Number
TXN_ID Txn ID Transaction ID
INVOICE Invoice Invoice number for the transaction
CARD_TYPE Card type Type of card used in transaction.
APPR_CODE Appr code Approval Code
CARD_NUMBER Card number Card Number used in the Transaction
CARD_HOLDERNAME Card holder name Name of the card holder.
SHOP_NAME Shop Name Name of the Shop
BRAND_NAME Brand Name Name of the Brand

An example of a successful transaction

{
"FLAG": "success",
"TRANSACTION_ID": "1023948334970183680",
"TRANSACTION_TYPE": "0",
"RRN_NO": "226918141134",
"RESPONSE_CODE": "0000",
"AMOUNT": "369.70",//If balance is in -ve then amount will be -369.70
"MID": "IS0999999995469",
"TID": "07002782",
"TXN_ID": "1234567",
"INVOICE": "1111111",
"CARD_TYPE": "visa",
"APPR_CODE": "123456",
"CARD_NUMBER": "xxxx-xxxx-xxxx-9167",
"CARD_HOLDERNAME": "",
"BRAND_NAME": "IndiaPost",
"SHOP_NAME": "Testing"
}