Browse Source

Added support for the other APIs (Void/Inquiry/Settlement/SetDateTime) but no API to upload to yet.

hbw_build
Wong Joon Hui 2 years ago
parent
commit
38eebb4502
  1. 20
      app/src/main/java/com/cst/im30/MainApplication.java
  2. 159
      app/src/main/java/com/cst/im30/PaymentHandler.java
  3. 120
      app/src/main/java/com/cst/im30/activity/MainActivity.java
  4. 2
      app/src/main/java/com/cst/im30/utility/Logger.java
  5. 59
      app/src/main/java/com/cst/im30/utility/PaymentUtils.java

20
app/src/main/java/com/cst/im30/MainApplication.java

@ -18,12 +18,18 @@ import com.cst.im30.activity.MainActivity;
import com.cst.im30.model.CancelRequest;
import com.cst.im30.model.CancelResponse;
import com.cst.im30.model.EventLogDetailed;
import com.cst.im30.model.InquiryRequest;
import com.cst.im30.model.InquiryResponse;
import com.cst.im30.model.PreAuthRequest;
import com.cst.im30.model.PreAuthResponse;
import com.cst.im30.model.SaleCompletionRequest;
import com.cst.im30.model.SaleCompletionResponse;
import com.cst.im30.model.SaleRequest;
import com.cst.im30.model.SaleResponse;
import com.cst.im30.model.SetDateTimeRequest;
import com.cst.im30.model.SetDateTimeResponse;
import com.cst.im30.model.SettlementRequest;
import com.cst.im30.model.SettlementResponse;
import com.cst.im30.model.VoidRequest;
import com.cst.im30.model.VoidResponse;
import com.cst.im30.utility.CloudWatchLogger;
@ -48,12 +54,18 @@ public class MainApplication extends Application {
public static SaleResponse currentSaleResponse = null;
public static VoidRequest currentVoidRequest = null;
public static VoidResponse currentVoidResponse = null;
public static InquiryRequest currentInquiryRequest = null;
public static InquiryResponse currentInquiryResponse = null;
public static CancelRequest currentCancelRequest = null;
public static CancelResponse currentCancelResponse = null;
public static PreAuthRequest currentPreAuthRequest = null;
public static PreAuthResponse currentPreAuthResponse = null;
public static SaleCompletionRequest currentSaleCompletionRequest = null;
public static SaleCompletionResponse currentSaleCompletionResponse = null;
public static SettlementRequest currentSettlementRequest = null;
public static SettlementResponse currentSettlementResponse = null;
public static SetDateTimeRequest currentSetDateTimeRequest = null;
public static SetDateTimeResponse currentSetDateTimeResponse = null;
public static String code;
public static String status;
private CloudWatchLogger cloudWatchLogger;
@ -71,12 +83,18 @@ public class MainApplication extends Application {
currentSaleResponse = null;
currentVoidRequest = null;
currentVoidResponse = null;
currentInquiryRequest = null;
currentInquiryResponse = null;
currentCancelRequest = null;
currentCancelResponse = null;
currentPreAuthRequest = null;
currentPreAuthResponse = null;
currentSaleCompletionRequest = null;
currentSaleCompletionResponse = null;
currentSettlementRequest = null;
currentSettlementResponse = null;
currentSetDateTimeRequest = null;
currentSetDateTimeResponse = null;
code = null;
status = null;
@ -140,6 +158,8 @@ public class MainApplication extends Application {
public void handleUncaughtException(Thread thread, Throwable e) {
if (e instanceof Exception) {
Log.e(Logger.TAG, "Exception: " + Log.getStackTraceString(e));
logError("Exception: " + Log.getStackTraceString(e));
Bugfender.sendIssue(e.getMessage(), Log.getStackTraceString(e));
}
if (isUIThread()) { // exception occurred from UI thread
restartApp();

159
app/src/main/java/com/cst/im30/PaymentHandler.java

@ -9,12 +9,18 @@ import com.cst.im30.common.Constants;
import com.cst.im30.model.CancelRequest;
import com.cst.im30.model.CancelResponse;
import com.cst.im30.model.EventLogDetailed;
import com.cst.im30.model.InquiryRequest;
import com.cst.im30.model.InquiryResponse;
import com.cst.im30.model.PreAuthRequest;
import com.cst.im30.model.PreAuthResponse;
import com.cst.im30.model.SaleCompletionRequest;
import com.cst.im30.model.SaleCompletionResponse;
import com.cst.im30.model.SaleRequest;
import com.cst.im30.model.SaleResponse;
import com.cst.im30.model.SetDateTimeRequest;
import com.cst.im30.model.SetDateTimeResponse;
import com.cst.im30.model.SettlementRequest;
import com.cst.im30.model.SettlementResponse;
import com.cst.im30.model.VoidRequest;
import com.cst.im30.model.VoidResponse;
import com.cst.im30.utility.Logger;
@ -50,6 +56,17 @@ public class PaymentHandler {
}
}
public void handlePayFunctionInquiry(EventLogDetailed eventLogDetailed) {
InquiryRequest request = PaymentUtils.createInquiryRequest(eventLogDetailed);
if (PaymentUtils.validateInquiryRequest(request)) {
MainApplication.getInstance().logPayment("[INQUIRY]" + " Confirmation Number:" + eventLogDetailed.getConfirmationNumber() + " Reference Number:" + eventLogDetailed.getReferenceNumber() + " Amount:" + eventLogDetailed.getPayableAmount() + " Remark:" + eventLogDetailed.getRemark());
initInquiry(request);
} else {
Toast.makeText(context, "Invalid Inquiry Request", Toast.LENGTH_SHORT).show();
Logger.logW("Invalid Inquiry Request: " + request.toString());
}
}
public void handlePayFunctionCancel() {
CancelRequest request = new CancelRequest();
initCancel(request);
@ -77,6 +94,28 @@ public class PaymentHandler {
}
}
public void handlePayFunctionSettlement(EventLogDetailed eventLogDetailed) {
SettlementRequest request = PaymentUtils.createSettlementRequest(eventLogDetailed);
if (PaymentUtils.validateSettlementRequest(request)) {
MainApplication.getInstance().logPayment("[SETTLEMENT]" + " Confirmation Number:" + eventLogDetailed.getConfirmationNumber() + " Reference Number:" + eventLogDetailed.getReferenceNumber() + " Amount:" + eventLogDetailed.getPayableAmount() + " Remark:" + eventLogDetailed.getRemark());
initSettlement(request);
} else {
Toast.makeText(context, "Invalid Settlement Request", Toast.LENGTH_SHORT).show();
Logger.logW("Invalid Settlement Request: " + request.toString());
}
}
public void handlePayFunctionSetDateTime(EventLogDetailed eventLogDetailed) {
SetDateTimeRequest request = PaymentUtils.createSetDateTimeRequest(eventLogDetailed);
if (PaymentUtils.validateSetDateTimeRequest(request)) {
MainApplication.getInstance().logPayment("[SET DATE TIME]" + " Confirmation Number:" + eventLogDetailed.getConfirmationNumber() + " Reference Number:" + eventLogDetailed.getReferenceNumber() + " Amount:" + eventLogDetailed.getPayableAmount() + " Remark:" + eventLogDetailed.getRemark());
initSetDateTime(request);
} else {
Toast.makeText(context, "Invalid Set Date Time Request", Toast.LENGTH_SHORT).show();
Logger.logW("Invalid Set Date Time Request: " + request.toString());
}
}
public void initSalePayment(SaleRequest request) {
Logger.logD("Direct Payment: " + request.toString());
MainApplication.getInstance().logPayment(request.toString());
@ -137,6 +176,22 @@ public class PaymentHandler {
app2app(extra);
}
public void initInquiry(InquiryRequest request) {
Logger.logD(request.toString());
MainApplication.getInstance().logPayment(request.toString());
Bundle extra = new Bundle();
extra.putString("pay_function", request.getPayFunction());
extra.putString("pay_amount", request.getPayAmount());
extra.putString("pay_print_receipt_id", request.getPayPrintReceiptId());
extra.putString("pay_trace_no", request.getPayTraceNo());
extra.putString("pay_invoice_no", request.getPayInvoiceNo());
MainApplication.currentInquiryRequest = request;
app2app(extra);
}
public void initPreAuth(PreAuthRequest request) {
Logger.logD(request.toString());
MainApplication.getInstance().logPayment(request.toString());
@ -180,6 +235,39 @@ public class PaymentHandler {
app2app(extra);
}
private void initSettlement(SettlementRequest request) {
Logger.logD(request.toString());
MainApplication.getInstance().logPayment(request.toString());
Bundle extra = new Bundle();
extra.putString("pay_function", request.getPayFunction());
String payPosTxnId = request.getPayPosTxnId();
if (payPosTxnId != null && !payPosTxnId.isEmpty()) {
extra.putString("pay_pos_txn_id", payPosTxnId);
}
extra.putString("pay_print_receipt_id", request.getPayPrintReceiptId());
MainApplication.currentSettlementRequest = request;
app2app(extra);
}
private void initSetDateTime(SetDateTimeRequest request) {
Logger.logD(request.toString());
MainApplication.getInstance().logPayment(request.toString());
Bundle extra = new Bundle();
extra.putString("pay_function", request.getPayFunction());
extra.putString("pay_pos_txn_date", request.getPayPosTxnDate());
extra.putString("pay_pos_txn_time", request.getPayPosTxnTime());
MainApplication.currentSetDateTimeRequest = request;
app2app(extra);
}
private void app2app(Bundle bundle) {
Intent intent = new Intent(Constants.APP_2_APP);
intent.putExtras(bundle);
@ -271,6 +359,37 @@ public class PaymentHandler {
MainApplication.status = response.getPayRespErrorDesc();
}
public void handlePayFunctionInquiryResponse(Bundle extra) {
InquiryResponse response = new InquiryResponse();
response.setPayAmount(extra.getString("pay_amount"));
response.setPayFunction(extra.getString("pay_function"));
response.setPayPrintReceiptId(extra.getString("pay_print_receipt_id"));
response.setPayRespTxnDate(extra.getString("pay_resp_txn_date"));
response.setPayRespTxnTime(extra.getString("pay_resp_txn_time"));
response.setPayRespInvoiceNo(extra.getString("pay_resp_invoice_no"));
response.setPayRespTraceNo(extra.getString("pay_resp_trace_no"));
response.setPayRespBatchNo(extra.getString("pay_resp_batch_no"));
response.setPayRespScheme(extra.getString("pay_resp_scheme"));
response.setPayRespTid(extra.getString("pay_resp_tid"));
response.setPayRespMid(extra.getString("pay_resp_mid"));
response.setPayRespQrTxnId(extra.getString("pay_resp_qr_txn_id"));
response.setPayRespQrWalletId(extra.getString("pay_resp_qr_wallet_id"));
response.setPayRespCustomerId(extra.getString("pay_resp_customer_id"));
response.setPayRespCode(extra.getString("pay_resp_code"));
response.setPayRespErrorDesc(extra.getString("pay_resp_error_desc"));
response.setPayRespMerchInfo(extra.getString("pay_resp_merch_info"));
response.setPayRespIssuerId(extra.getString("pay_resp_issuer_id"));
Logger.logD(response.toString());
MainApplication.getInstance().logPayment(response.toString());
MainApplication.currentInquiryResponse = response;
MainApplication.code = response.getPayRespCode();
MainApplication.status = response.getPayRespErrorDesc();
}
public void handlePayFunctionCancelResponse(Bundle extra) {
CancelResponse response = new CancelResponse();
@ -360,4 +479,44 @@ public class PaymentHandler {
MainApplication.currentSaleCompletionResponse = response;
}
public void handlePayFunctionSettlementResponse(Bundle extra) {
SettlementResponse response = new SettlementResponse();
response.setPayFunction(extra.getString("pay_function"));
response.setPayPrintReceiptId(extra.getString("pay_print_receipt_id"));
response.setPayRespTxnDate(extra.getString("pay_resp_txn_date"));
response.setPayRespTxnTime(extra.getString("pay_resp_txn_time"));
response.setPayRespBatchNo(extra.getString("pay_resp_batch_no"));
response.setPayRespTid(extra.getString("pay_resp_tid"));
response.setPayRespMid(extra.getString("pay_resp_mid"));
response.setPayRespCode(extra.getString("pay_resp_code"));
response.setPayRespErrorDesc(extra.getString("pay_resp_error_desc"));
response.setPayRespMerchInfo(extra.getString("pay_resp_merch_info"));
Logger.logD(response.toString());
MainApplication.getInstance().logPayment(response.toString());
MainApplication.currentSettlementResponse = response;
MainApplication.code = response.getPayRespCode();
MainApplication.status = response.getPayRespErrorDesc();
}
public void handlePayFunctionSetDateTimeResponse(Bundle extra) {
SetDateTimeResponse response = new SetDateTimeResponse();
response.setPayFunction(extra.getString("pay_function"));
response.setPayRespTxnDate(extra.getString("pay_resp_txn_date"));
response.setPayRespTxnTime(extra.getString("pay_resp_txn_time"));
response.setPayRespCode(extra.getString("pay_resp_code"));
response.setPayRespErrorDesc(extra.getString("pay_resp_error_desc"));
Logger.logD(response.toString());
MainApplication.getInstance().logPayment(response.toString());
MainApplication.currentSetDateTimeResponse = response;
MainApplication.code = response.getPayRespCode();
MainApplication.status = response.getPayRespErrorDesc();
}
}

120
app/src/main/java/com/cst/im30/activity/MainActivity.java

@ -23,6 +23,7 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.RequiresApi;
@ -59,36 +60,7 @@ import java.util.Objects;
import java.util.regex.Pattern;
public class MainActivity extends AppCompatActivity implements CallableInterface {
ActivityResultLauncher<Intent> icVerificationLauncher = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
result -> {
Logger.logV("Back from ICCActivity: " + result.getResultCode());
IDVerificationService service = new IDVerificationService(MainActivity.this);
if (result.getResultCode() == Activity.RESULT_OK) {
Intent incomingData = result.getData();
if (incomingData != null) {
String name = incomingData.getStringExtra("name");
String cardNo = incomingData.getStringExtra("cardNo");
if (verifyIC(name, cardNo)) {
showStatusDialog(true, "NRIC Match");
service.verifySuccess(MainApplication.currentCode);
Logger.recordICScan("[MATCH] " + name + ":" + cardNo);
} else {
showStatusDialog(false, "NRIC Not Match");
service.verifyFail(MainApplication.currentCode);
Logger.recordICScan("[NOT MATCH] " + name + ":" + cardNo);
}
}
} else if (result.getResultCode() == Activity.RESULT_CANCELED) {
Logger.logV("IC Scan Cancelled");
showStatusDialog(false, "Scan Cancelled");
service.verifyCancel(MainApplication.currentCode);
} else {
showStatusDialog(false, "Scan Failed");
service.verifyFail(MainApplication.currentCode);
}
});
private ImageView load;
private AnimationDrawable animationDrawable;
// Echo Server Connection
@ -184,27 +156,62 @@ public class MainActivity extends AppCompatActivity implements CallableInterface
Logger.logV("Pay Function: " + payFunction);
// 01
if (Constants.PAY_FUNCTION_SALE.equalsIgnoreCase(payFunction)) {
paymentHandler.handlePayFunctionSaleResponse(extra);
UploadTransactionSalePaymentService service = new UploadTransactionSalePaymentService(this);
service.call(MainApplication.currentEventLogDetailed, MainApplication.currentSaleRequest, MainApplication.currentSaleResponse);
} else if (Constants.PAY_FUNCTION_VOID.equalsIgnoreCase(payFunction)) {
}
// 02
else if (Constants.PAY_FUNCTION_VOID.equalsIgnoreCase(payFunction)) {
paymentHandler.handlePayFunctionVoidResponse(extra);
//todo upload void payment?
/*UploadTransactionSalePaymentService service = new UploadTransactionSalePaymentService(this);
service.call(MainApplication.currentEventLogDetailed, MainApplication.currentVoidRequest, MainApplication.currentSaleResponse);*/
} else if (Constants.PAY_FUNCTION_CANCEL.equalsIgnoreCase(payFunction)) {
resetView();
}
// 03
else if (Constants.PAY_FUNCTION_INQUIRY.equalsIgnoreCase(payFunction)) {
paymentHandler.handlePayFunctionInquiryResponse(extra);
resetView();
}
// 07
else if (Constants.PAY_FUNCTION_CANCEL.equalsIgnoreCase(payFunction)) {
paymentHandler.handlePayFunctionCancelResponse(extra);
resetView();
} else if (Constants.PAY_FUNCTION_PRE_AUTH.equalsIgnoreCase(payFunction)) {
}
// 09
else if (Constants.PAY_FUNCTION_PRE_AUTH.equalsIgnoreCase(payFunction)) {
paymentHandler.handlePayFunctionPreAuthResponse(extra);
UploadTransactionPreAuthPaymentService service = new UploadTransactionPreAuthPaymentService(this);
service.call(MainApplication.currentEventLogDetailed, MainApplication.currentPreAuthRequest, MainApplication.currentPreAuthResponse);
} else if (Constants.PAY_FUNCTION_SALE_COMPLETION.equalsIgnoreCase(payFunction)) {
}
// 10
else if (Constants.PAY_FUNCTION_SALE_COMPLETION.equalsIgnoreCase(payFunction)) {
paymentHandler.handlePayFunctionSaleCompletionResponse(extra);
UploadTransactionSaleCompletionPaymentService service = new UploadTransactionSaleCompletionPaymentService(this);
service.call(MainApplication.currentEventLogDetailed, MainApplication.currentSaleCompletionRequest, MainApplication.currentSaleCompletionResponse);
} else if (payFunction == null || payFunction.isEmpty()) {
}
// 11
else if (Constants.PAY_FUNCTION_SETTLEMENT.equalsIgnoreCase(payFunction)) {
paymentHandler.handlePayFunctionSettlementResponse(extra);
resetView();
}
// 12
else if (Constants.PAY_FUNCTION_SET_DATE_TIME.equalsIgnoreCase(payFunction)) {
paymentHandler.handlePayFunctionSetDateTimeResponse(extra);
resetView();
}
else if (payFunction == null || payFunction.isEmpty()) {
resetView();
} else {
Logger.logW("Unsupported Pay Function: " + payFunction);
@ -306,17 +313,17 @@ public class MainActivity extends AppCompatActivity implements CallableInterface
} else if (Constants.PAY_FUNCTION_VOID.equalsIgnoreCase(payFunction)) {
paymentHandler.handlePayFunctionVoid(eventLogDetailed);
} else if (Constants.PAY_FUNCTION_INQUIRY.equalsIgnoreCase(payFunction)) {
//handlePayFunctionPreAuth(eventLogDetailed);
paymentHandler.handlePayFunctionInquiry(eventLogDetailed);
} else if (Constants.PAY_FUNCTION_CANCEL.equalsIgnoreCase(payFunction)) {
paymentHandler.handlePayFunctionCancel();
} else if (Constants.PAY_FUNCTION_SETTLEMENT.equalsIgnoreCase(payFunction)) {
//handlePayFunctionPreAuth(eventLogDetailed);
} else if (Constants.PAY_FUNCTION_SET_DATE_TIME.equalsIgnoreCase(payFunction)) {
//handlePayFunctionPreAuth(eventLogDetailed);
} else if (Constants.PAY_FUNCTION_PRE_AUTH.equalsIgnoreCase(payFunction)) {
paymentHandler.handlePayFunctionPreAuth(eventLogDetailed);
} else if (Constants.PAY_FUNCTION_SALE_COMPLETION.equalsIgnoreCase(payFunction)) {
paymentHandler.handlePayFunctionSaleCompletion(eventLogDetailed);
} else if (Constants.PAY_FUNCTION_SETTLEMENT.equalsIgnoreCase(payFunction)) {
paymentHandler.handlePayFunctionSettlement(eventLogDetailed);
} else if (Constants.PAY_FUNCTION_SET_DATE_TIME.equalsIgnoreCase(payFunction)) {
paymentHandler.handlePayFunctionSetDateTime(eventLogDetailed);
} else {
String msg = "Unsupported Pay Function: " + payFunction;
Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
@ -699,6 +706,39 @@ public class MainActivity extends AppCompatActivity implements CallableInterface
MainApplication.working = true;
}
private final ActivityResultLauncher<Intent> icVerificationLauncher = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
this::handleIcVerificationResult);
private void handleIcVerificationResult(ActivityResult result) {
Logger.logV("Back from ICCActivity: " + result.getResultCode());
IDVerificationService service = new IDVerificationService(MainActivity.this);
if (result.getResultCode() == Activity.RESULT_OK) {
Intent incomingData = result.getData();
if (incomingData != null) {
String name = incomingData.getStringExtra("name");
String cardNo = incomingData.getStringExtra("cardNo");
if (verifyIC(name, cardNo)) {
showStatusDialog(true, "NRIC Match");
service.verifySuccess(MainApplication.currentCode);
Logger.recordICScan("[MATCH] " + name + ":" + cardNo);
} else {
showStatusDialog(false, "NRIC Not Match");
service.verifyFail(MainApplication.currentCode);
Logger.recordICScan("[NOT MATCH] " + name + ":" + cardNo);
}
}
} else if (result.getResultCode() == Activity.RESULT_CANCELED) {
Logger.logV("IC Scan Cancelled");
showStatusDialog(false, "Scan Cancelled");
service.verifyCancel(MainApplication.currentCode);
} else {
showStatusDialog(false, "Scan Failed");
service.verifyFail(MainApplication.currentCode);
}
}
@Override
public void onBackPressed() {
Logger.logI("Back Button Disabled!");

2
app/src/main/java/com/cst/im30/utility/Logger.java

@ -52,6 +52,8 @@ public class Logger {
String title = getClassSimpleName(l.getClassName()) + "/" + l.getMethodName() + "():" + l.getLineNumber();
Log.e(TAG, title + " - " + message);
Bugfender.e("ERROR", title + " - " + message);
MainApplication.getInstance().logError(title + " - " + message);
Bugfender.sendIssue(title, message);
}
public static void logW(String message) {

59
app/src/main/java/com/cst/im30/utility/PaymentUtils.java

@ -1,9 +1,12 @@
package com.cst.im30.utility;
import com.cst.im30.model.EventLogDetailed;
import com.cst.im30.model.InquiryRequest;
import com.cst.im30.model.PreAuthRequest;
import com.cst.im30.model.SaleCompletionRequest;
import com.cst.im30.model.SaleRequest;
import com.cst.im30.model.SetDateTimeRequest;
import com.cst.im30.model.SettlementRequest;
import com.cst.im30.model.VoidRequest;
import java.io.UnsupportedEncodingException;
@ -42,6 +45,20 @@ public class PaymentUtils {
return request;
}
public static InquiryRequest createInquiryRequest(EventLogDetailed eventLogDetailed) {
InquiryRequest request = new InquiryRequest();
double doubleValue = Double.parseDouble(eventLogDetailed.getPayableAmount());
double centValueDouble = doubleValue * 100;
DecimalFormat df = new DecimalFormat("#");
request.setPayAmount(String.valueOf(df.format(centValueDouble)));
request.setPayTraceNo(eventLogDetailed.getPayTraceNo());
request.setPayInvoiceNo(eventLogDetailed.getPayInvoiceNo());
return request;
}
public static PreAuthRequest createPreAuthRequest(EventLogDetailed eventLogDetailed) {
PreAuthRequest request = new PreAuthRequest();
@ -82,6 +99,23 @@ public class PaymentUtils {
return request;
}
public static SettlementRequest createSettlementRequest(EventLogDetailed eventLogDetailed) {
SettlementRequest request = new SettlementRequest();
request.setPayPosTxnId(eventLogDetailed.getReferenceNumber() + eventLogDetailed.getId());
return request;
}
public static SetDateTimeRequest createSetDateTimeRequest(EventLogDetailed eventLogDetailed) {
SetDateTimeRequest request = new SetDateTimeRequest();
request.setPayPosTxnDate(eventLogDetailed.getPayPosTxnDate());
request.setPayPosTxnTime(eventLogDetailed.getPayPosTxnTime());
return request;
}
public static boolean validateSaleRequest(SaleRequest request) {
boolean valid = true;
@ -98,6 +132,14 @@ public class PaymentUtils {
return valid;
}
public static boolean validateInquiryRequest(InquiryRequest request) {
boolean valid = true;
//todo
return valid;
}
public static boolean validatePreAuthRequest(PreAuthRequest request) {
boolean valid = true;
@ -114,6 +156,22 @@ public class PaymentUtils {
return valid;
}
public static boolean validateSettlementRequest(SettlementRequest request) {
boolean valid = true;
//todo
return valid;
}
public static boolean validateSetDateTimeRequest(SetDateTimeRequest request) {
boolean valid = true;
//todo
return valid;
}
public static boolean validateResponseCodeAndMessage(String code, String status) {
if (code.equalsIgnoreCase("00") && status.equalsIgnoreCase("approved")) {
Logger.logD("Transaction Approved");
@ -144,4 +202,5 @@ public class PaymentUtils {
}
}
}

Loading…
Cancel
Save