Description
The Card Query function is used to obtain card information by means of swiping the card on the payment device.
Request
Sample Bundle
"authenticationKey": "e27b6ce6-78ba6-4y46-9953-5afr28f7cbeb",
"merchantID": "971234500000003",
"launchType": "CARDQUERY"Parameters
PARAMETER | TYPE | DESCRIPTION | EXAMPLE |
|---|---|---|---|
REQUIRED | |||
launchType | STRING | Must be “CARDQUERY” | CARDQUERY |
merchantID | STRING | The merchant ID assigned to the merchant. | 971234500000003 |
authenticationKey | STRING | The authentication token that was generated by the server on a successful auth call to the Ecentric Payment App | e27b6ce6-78ba6-4y46-9953-5afr28f7cbeb |
Sample Code
private void doCardQuery() {
Intent intent = new Intent();
intent.setClassName("com.ecentric.ecentricpay", "com.ecentric.ecentricpay.MainActivity");
Bundle dataBundle = new Bundle();
dataBundle.putString("launchType", "CARDQUERY");
dataBundle.putString("merchantID", "910100000000001");
dataBundle.putString("authenticationKey", "received_authenticationKey");
intent.putExtra("ecentricBundle", dataBundle);
try {
intentLauncher.launch(intent);
} catch (Exception e) {
Log.e(TAG, "Error launching intent: " + e);
}
}Response
Sample Bundle
"resultDescription": "COMPLETED",
"buildInfo": "Ecentric",
"panData": "5210955001511518",
"resultCode": "00",
"merchantID": "invalid",
"serialNumber": "PC05P2CG10036",
"launchType": "CARDQUERY",
"track1Data": "B5210644001512518^ /^28036270000015400000000000000000000000000000",
"track2Data": "5210644001512518=28036270000000154000",
"transactionUuid": "e17cfa45-8c4c-4a75-90c4-6b861bbd7976",
"appVersion": "2.0.0"Parameters
PARAMETER | TYPE | DESCRIPTION | EXAMPLE |
|---|---|---|---|
launchType | STRING | Echo of the launchType used to launch the Ecentric Payment App. | CARDQUERY |
resultCode | STRING | Represents the result of the card query intent call: | 00 |
merchantID | STRING | Echo of the merchantID used in the request. | 910100000000001 |
resultDescription | STRING | A user readable representation of the above resultCode i.e. Approved for resultCode 01. | COMPLETED |
track1Data | STRING | Contents of track 1 if available | B5210955001511518^ /^29056270000015400000000000000000000000000000 |
track2Data | STRING | Contents of track 2 if available | 5210955001511518=29056270000000154000 |
panData | STRING | PAN of card if available | 5210955001511518 |
transactionUuid | STRING | Unique ID of transaction. | bdf9d0af-17b3-48ca-8a0b-37dc52bf49bc |
serialNumber | STRING | The serial number for the device that was used for the CARDQUERY intent call. | PC05P2CB14336 |
appVersion | STRING | The software version currently running on the Ecentric Payment App. | 1.9.2 |
Sample Code
private final ActivityResultLauncher<Intent> intentLauncher = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
result -> {
if (result.getResultCode() == Activity.RESULT_OK) {
Intent data = result.getData();
if (data != null) {
Bundle responseBundle = new Bundle(data.getBundleExtra("ecentricApplicationResponse"));
String launchType = responseBundle.getString("launchType");
String resultCode = responseBundle.getString("resultCode");
String track1Data = responseBundle.getString("track1Data");
String track2Data = responseBundle.getString("track2Data");
String panData = responseBundle.getString("panData");
Boolean success = false;
if (resultCode != null && (resultCode.matches("00") || resultCode.matches("01"))) {
success = true;
}
if (responseBundle.get("errorBundle") != null) {
Bundle errorBundle = new Bundle(responseBundle.getBundle("errorBundle"));
}
}
} else {
Log.e(TAG, "Received error resultCode: " + result.getResultCode());
}
}
);Error Handling
Sample Bundle
"resultDescription": "ABORTED",
"errorBundle": {
"description": "ERROR",
"reference": "",
"errorType": "OTHER",
"message": "Transaction cancelled by user"
},
"buildInfo": "Ecentric_DEBUG_Ecentric_INT",
"resultCode": "03",
"merchantID": "910100000000001",
"serialNumber": "PC05P2CG10036",
"launchType": "CARDQUERY",
"appVersion": "1.9.8"