Compare commits

..

No commits in common. "89466f82097c6cf28dc0b911d499e870e81d20a5" and "13617eead1554931d9d20a24a4bb5c37f354c92e" have entirely different histories.

9 changed files with 30 additions and 116 deletions

8
.gitignore vendored
View File

@ -14,8 +14,6 @@
.cxx .cxx
local.properties local.properties
/.idea /.idea
/app/release/* /app/release
/app/sit/release/* /app/sit/release
/app/uat/release/* /app/uat/release
/app/uat
/.idea

View File

@ -14,8 +14,8 @@ android {
applicationId "com.utsmm.kbz" applicationId "com.utsmm.kbz"
minSdk 24 minSdk 24
targetSdk 33 targetSdk 33
versionCode 1 versionCode 15
versionName "1.0" versionName "1.14"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
} }
@ -43,7 +43,6 @@ android {
dimension "env" dimension "env"
applicationId "com.utsmm.kbz" applicationId "com.utsmm.kbz"
versionNameSuffix "" versionNameSuffix ""
resValue "string", "app_name", "KBZ-POS"
} }
} }
@ -77,8 +76,7 @@ android {
buildTypes { buildTypes {
release { release {
minifyEnabled true minifyEnabled false
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
} }
debug { debug {

View File

@ -24,88 +24,3 @@
# Keep Bouncy Castle classes for security providers # Keep Bouncy Castle classes for security providers
-keep class org.bouncycastle.** { *; } -keep class org.bouncycastle.** { *; }
-dontwarn org.bouncycastle.** -dontwarn org.bouncycastle.**
-keep class com.squareup.okhttp.** { *; }
-dontwarn org.conscrypt.Conscrypt$Version
-dontwarn org.conscrypt.Conscrypt
-dontwarn org.conscrypt.ConscryptHostnameVerifier
-dontwarn org.openjsse.javax.net.ssl.SSLParameters
-dontwarn org.openjsse.javax.net.ssl.SSLSocket
-dontwarn org.openjsse.net.ssl.OpenJSSE
############################
# HILT
############################
-keep class dagger.hilt.** { *; }
-keep class javax.inject.** { *; }
-keep class * extends dagger.hilt.internal.GeneratedComponent { *; }
-keep class * extends dagger.hilt.internal.GeneratedComponentManager { *; }
-keep class hilt_aggregated_deps.** { *; }
############################
# ANDROIDX NAVIGATION
############################
-keep class androidx.navigation.** { *; }
############################
# DATA BINDING
############################
-keep class **.databinding.*Binding { *; }
-keep class androidx.databinding.** { *; }
############################
# FRAGMENTS
############################
-keep class * extends androidx.fragment.app.Fragment
############################
# SERIALIZABLE / PARCELABLE
############################
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
}
############################
# NEXGO / SUNMI / PAYLIBS
############################
-keep class com.nexgo.** { *; }
-keep class com.sunmi.** { *; }
-keep class com.utsmyanmar.** { *; }
-keep class com.kizzy.xpay.** { *; }
############################
# ENUMS (ISO / TRANSACTION TYPES)
############################
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
# Keep Retrofit generic signatures
-keepattributes Signature
-keepattributes *Annotation*
# RxJava
-keep class io.reactivex.** { *; }
-dontwarn io.reactivex.**
# Retrofit
-keep class retrofit2.** { *; }
-dontwarn retrofit2.**
# Your API interfaces
-keep interface com.utsmyanmar.baselib.api.** { *; }
# Your response models
-keep class com.utsmyanmar.baselib.model.** { *; }
# Keep model fields for Gson
-keepclassmembers class * {
@com.google.gson.annotations.SerializedName <fields>;
}
# Or keep all models directly (simpler & safer)
-keep class com.utsmyanmar.baselib.model.** { *; }
-keep class androidx.lifecycle.** { *; }
-keep class * extends androidx.lifecycle.ViewModel { *; }
-keep class com.utsmyanmar.baselib.repo.** { *; }

View File

@ -172,9 +172,9 @@ public class TransactionResultFragment extends DataBindingFragment implements Da
} else if (isQRPayNonSuccessTransaction(transactionType, payDetail)) { } else if (isQRPayNonSuccessTransaction(transactionType, payDetail)) {
// startPrintProcess(false); // startPrintProcess(false);
if(transactionType == TransactionsType.MMQR_REFUND){ if(transactionType == TransactionsType.MMQR_REFUND){
showDeclineDialog("QR Refund Failed! \n" + payDetail.getTradeResultDes()); showDeclineDialog("QR Refund Failed!");
}else{ }else{
showDeclineDialog("QR Payment Failed! \n" + payDetail.getTradeResultDes()); showDeclineDialog("QR Payment Failed!");
} }
navigateToMainScreen(); navigateToMainScreen();
} else if (isQRPaySuccessTransaction(transactionType, payDetail)) { } else if (isQRPaySuccessTransaction(transactionType, payDetail)) {

View File

@ -144,6 +144,7 @@ public class QRRefundProcessFragment extends DataBindingFragment {
private void handleRefundResponse(KPayRefund.RefundResponse response, String referenceNo, String orgAmount) { private void handleRefundResponse(KPayRefund.RefundResponse response, String referenceNo, String orgAmount) {
if (response != null && response.getResponse() != null && "REFUND_SUCCESS".equalsIgnoreCase(response.getResponse().getRefundStatus())) { if (response != null && response.getResponse() != null && "REFUND_SUCCESS".equalsIgnoreCase(response.getResponse().getRefundStatus())) {
LogUtil.d(TAG, "Refund successful!"); LogUtil.d(TAG, "Refund successful!");
String refundAmount = response.getResponse().getRefundAmount(); String refundAmount = response.getResponse().getRefundAmount();
long text = POSUtil.getInstance().convertAmount(refundAmount); long text = POSUtil.getInstance().convertAmount(refundAmount);

View File

@ -40,13 +40,15 @@ public class RefundCertificateManager {
if (tmsAddress == null || tmsAddress.trim().isEmpty()) { if (tmsAddress == null || tmsAddress.trim().isEmpty()) {
LogUtil.e(TAG, "TMS address is empty"); LogUtil.e(TAG, "TMS address is empty");
return; return;
}; }
// String downloadBase = tmsAddress.trim() + "/api/v1/file/download?filePath="; String downloadBase =
String downloadBase = tmsAddress.trim() + "/file/download?filePath="; tmsAddress.trim() + "/api/v1/file/download?filePath=";
String certUrl = SystemParamsOperation.getInstance().getCertificateUrl(); String certUrl =
String clientCertUrl = SystemParamsOperation.getInstance().getCertificateClientUrl(); SystemParamsOperation.getInstance().getCertificateUrl();
String clientCertUrl =
SystemParamsOperation.getInstance().getCertificateClientUrl();
if (certUrl == null || clientCertUrl == null) { if (certUrl == null || clientCertUrl == null) {
LogUtil.e(TAG, "Certificate URLs are missing"); LogUtil.e(TAG, "Certificate URLs are missing");
@ -56,9 +58,9 @@ public class RefundCertificateManager {
String timestamp = String.valueOf(System.currentTimeMillis()); String timestamp = String.valueOf(System.currentTimeMillis());
String signature = generateSignature(timestamp); String signature = generateSignature(timestamp);
// LogUtil.d(TAG, "Download base => " + downloadBase); LogUtil.d(TAG, "Download base => " + downloadBase);
// LogUtil.d(TAG, "Cert URL => " + certUrl); LogUtil.d(TAG, "Cert URL => " + certUrl);
// LogUtil.d(TAG, "Client Cert URL => " + clientCertUrl); LogUtil.d(TAG, "Client Cert URL => " + clientCertUrl);
// ---------- CA CERT ---------- // ---------- CA CERT ----------
DownloadUtil.downloadCertificateRx( DownloadUtil.downloadCertificateRx(

View File

@ -290,8 +290,8 @@ public class NetworkModule {
tmsAddress = getTMSUrlFromNative(); tmsAddress = getTMSUrlFromNative();
} }
// String baseUrl = tmsAddress.trim() + "/api/v1/"; //for on prim String baseUrl = tmsAddress.trim() + "/api/v1/"; //for on prim
String baseUrl = tmsAddress.trim() + "/"; //for uat // String baseUrl = tmsAddress.trim() + "/"; //for uat
final Gson gson = final Gson gson =
new GsonBuilder().create(); new GsonBuilder().create();

View File

@ -343,9 +343,9 @@ public abstract class BaseXPrint {
// print2ColumnsStringNoSpace("AID :", MPU_AID); // print2ColumnsStringNoSpace("AID :", MPU_AID);
// } // }
// if (payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_ACCEPT) || payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_APPROVED)) { if (payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_ACCEPT) || payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_APPROVED)) {
// print2ColumnsStringNoSpace("TXN ID :",payDetail.getReferNo()); print2ColumnsStringNoSpace("TXN ID :",payDetail.getReferNo());
// } }

View File

@ -42,10 +42,10 @@ public class SystemParamsSettings implements Serializable {
// private String tmsAddress = "https://tms.smile-mm.com"; // private String tmsAddress = "https://tms.smile-mm.com";
// private String tmsAddress = "http://128.199.170.203"; // private String tmsAddress = "http://128.199.170.203";
// private String tmsAddress = "http://sirius-nest.utsmyanmar.com"; private String tmsAddress = "http://sirius-nest.utsmyanmar.com";
private String tmsAddress = "https://api-tms-uat.kbzbank.com:8443/sirius"; //for uat // private String tmsAddress = "https://api-tms-uat.kbzbank.com:8443/sirius"; //for uat
// private String ereceiptAddress = "http://receipt-nest.utsmyanmar.com"; //for on prime private String ereceiptAddress = "http://receipt-nest.utsmyanmar.com"; //for on prime
private String ereceiptAddress = "https://api-tms-uat.kbzbank.com:8443/receipt"; //for uat // private String ereceiptAddress = "https://api-tms-uat.kbzbank.com:8443/receipt"; //for uat
private String terminalName = ""; private String terminalName = "";