From ff68ee6a1f330b42e9a67a556633971220e19ac3 Mon Sep 17 00:00:00 2001 From: MooN <56061215+MgKyawLay@users.noreply.github.com> Date: Mon, 1 Dec 2025 15:58:06 +0630 Subject: [PATCH] qr fixes --- ...otlin-compiler-14813118053369288560.salive | 0 app/build.gradle | 2 +- .../kbz/ui/kpay/QRTransactionFragment.java | 3 +- .../kbz/ui/navigation/NaviMainFragment.java | 159 +++++++++++++++++- .../ui/qr_pay/QRRefundProcessFragment.java | 4 +- app/src/main/res/drawable/ic_mmqr.png | Bin 0 -> 49232 bytes .../res/layout/fragment_dashboard_screen.xml | 3 +- app/src/main/res/layout/navi_main_layout.xml | 75 +++++++++ app/src/main/res/values/strings.xml | 2 +- baselib/build.gradle | 2 + .../utsmyanmar/baselib/di/NetworkModule.java | 8 +- .../utsmyanmar/baselib/repo/Repository.java | 4 +- gradle.properties | 3 +- .../core_utils/SystemParamsSettings.java | 4 +- 14 files changed, 254 insertions(+), 15 deletions(-) create mode 100644 .kotlin/sessions/kotlin-compiler-14813118053369288560.salive create mode 100644 app/src/main/res/drawable/ic_mmqr.png diff --git a/.kotlin/sessions/kotlin-compiler-14813118053369288560.salive b/.kotlin/sessions/kotlin-compiler-14813118053369288560.salive new file mode 100644 index 0000000..e69de29 diff --git a/app/build.gradle b/app/build.gradle index d79bdcf..bf6632e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { compileSdk 34 defaultConfig { - applicationId "com.utsmm.kbz" //mpu + applicationId "com.utsmm.kbz.uat" //mpu minSdk 24 targetSdk 33 versionCode 10 diff --git a/app/src/main/java/com/utsmm/kbz/ui/kpay/QRTransactionFragment.java b/app/src/main/java/com/utsmm/kbz/ui/kpay/QRTransactionFragment.java index bc8d8ea..f55e7c9 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/kpay/QRTransactionFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/kpay/QRTransactionFragment.java @@ -325,7 +325,7 @@ public class QRTransactionFragment extends DataBindingFragment implements DataBi if(payDetail.getQrTransStatus() != -1) { payDetail.setQrTransStatus(2); } - + sharedViewModel.pushReceipt(buildEReceiptQRReceipt(payDetail, false, "QR Expired!")); sharedViewModel.payDetail.postValue(payDetail); safeNavigateToRouteId(); @@ -333,6 +333,7 @@ public class QRTransactionFragment extends DataBindingFragment implements DataBi } catch (Exception e) { LogUtil.d(TAG, "On Exception::"); + sharedViewModel.pushReceipt(buildEReceiptQRReceipt(payDetail, false, "QR Failed! :" + e.getMessage())); e.printStackTrace(); if (count == totalCount) { diff --git a/app/src/main/java/com/utsmm/kbz/ui/navigation/NaviMainFragment.java b/app/src/main/java/com/utsmm/kbz/ui/navigation/NaviMainFragment.java index 102eed2..bf3b6c9 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/navigation/NaviMainFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/navigation/NaviMainFragment.java @@ -2,8 +2,20 @@ package com.utsmm.kbz.ui.navigation; import android.content.Context; import android.text.TextUtils; +import android.util.Log; +import com.nexgo.oaf.apiv3.APIProxy; +import com.nexgo.oaf.apiv3.DeviceEngine; +import com.nexgo.oaf.apiv3.DeviceInfo; +import com.nexgo.oaf.apiv3.SdkResult; +import com.nexgo.oaf.apiv3.device.printer.AlignEnum; +import com.nexgo.oaf.apiv3.device.printer.GrayLevelEnum; +import com.nexgo.oaf.apiv3.device.printer.LineOptionEntity; +import com.nexgo.oaf.apiv3.device.printer.Printer; import com.utsmyanmar.baselib.fragment.DataBindingFragment; +import com.utsmyanmar.baselib.network.model.sirius.SiriusHost; +import com.utsmyanmar.baselib.network.model.sirius.SiriusMerchant; +import com.utsmyanmar.baselib.network.model.sirius.SiriusResponse; import com.utsmyanmar.baselib.util.DataBindingConfig; import com.utsmyanmar.paylibs.Constant; import com.utsmyanmar.paylibs.sign_on.EchoTestProcess; @@ -13,6 +25,8 @@ import com.utsmm.kbz.BR; import com.utsmm.kbz.R; import com.utsmm.kbz.ui.core_viewmodel.SharedViewModel; +import java.util.List; + public class NaviMainFragment extends DataBindingFragment { private OnFragmentInteractionListener mListener; @@ -137,6 +151,7 @@ public class NaviMainFragment extends DataBindingFragment { }); } + public void onClickLogOff() { showLoadingDialog("Sending LogOff!"); @@ -176,6 +191,148 @@ public class NaviMainFragment extends DataBindingFragment { mListener.onClickFunction(); } + private GrayLevelEnum getGrayLevel() { + int gray = 2; + GrayLevelEnum grayLevelEnum = GrayLevelEnum.LEVEL_1; + + + switch (gray) { + case 0: + grayLevelEnum = GrayLevelEnum.LEVEL_0; + break; + case 1: + grayLevelEnum = GrayLevelEnum.LEVEL_1; + break; + case 2: + grayLevelEnum = GrayLevelEnum.LEVEL_2; + break; + case 3: + grayLevelEnum = GrayLevelEnum.LEVEL_3; + break; + case 4: + grayLevelEnum = GrayLevelEnum.LEVEL_4; + break; + default: + grayLevelEnum = GrayLevelEnum.LEVEL_1; + break; + } + + return grayLevelEnum; + } + + public void onClickPrintConfig() { + + DeviceEngine deviceEngine = APIProxy.getDeviceEngine(requireContext()); + Printer printer = deviceEngine.getPrinter(); + DeviceInfo deviceInfo = deviceEngine.getDeviceInfo(); + + int FONT_NORMAL = 24; + int FONT_HEADER = 32; + + int status = printer.getStatus(); + if (status != SdkResult.Success) { + Log.d("Printer", "Printer error: " + status); + return; + } + + SystemParamsOperation sp = SystemParamsOperation.getInstance(); + + String addr1 = sp.getMerchantAddress(); + String addr2 = sp.getMerchantAddress2(); + String phone = sp.getMerchantPhoneNo(); + if (addr2 == null) addr2 = ""; + if (phone == null || phone.trim().isEmpty()) phone = ""; + + printer.setGray(getGrayLevel()); + + // ================== Header ================== + printer.appendPrnStr("==== Device Configs ====", FONT_HEADER, AlignEnum.CENTER, true); + printer.appendPrnStr(" ", FONT_NORMAL, AlignEnum.CENTER, false); + + if(!TextUtils.isEmpty(addr1)) + printer.appendPrnStr(addr1, FONT_NORMAL, AlignEnum.CENTER, true); + if(!TextUtils.isEmpty(addr2)) + printer.appendPrnStr(addr2, FONT_NORMAL, AlignEnum.CENTER, true); + if(!TextUtils.isEmpty(phone)) + printer.appendPrnStr(phone, FONT_NORMAL, AlignEnum.CENTER, true); + + printer.appendPrnStr(" ", FONT_NORMAL, AlignEnum.CENTER, false); + + + // ================== Device Info ================== + printer.appendPrnStr("Device S/N", deviceInfo.getSn(), FONT_NORMAL, true); + printer.appendPrnStr(" ", FONT_NORMAL, AlignEnum.CENTER, false); + + + // ================== Host Section ================== + printer.appendPrnStr("HOSTS", FONT_HEADER, AlignEnum.LEFT, true); + printer.appendPrnStr(" ", FONT_NORMAL, AlignEnum.CENTER, false); + + // ---- Primary Host ---- + printer.appendPrnStr("Name :", sp.getHostName(), FONT_NORMAL, false); + printTwoColWrapped(printer, "IP :", sp.getIpAddress(), FONT_NORMAL, false); + printTwoColWrapped(printer, "Sec IP :", sp.getSecIpAddress(), FONT_NORMAL, false); + printer.appendPrnStr("MID :", sp.getMerchantId(), FONT_NORMAL, false); + printer.appendPrnStr("TID :", sp.getTerminalId(), FONT_NORMAL, false); + + printer.appendPrnStr("--------------------------------", FONT_NORMAL, AlignEnum.LEFT, false); + + // ---- Secondary Host ---- + if (!TextUtils.isEmpty(sp.getSecHostName())) { + + printer.appendPrnStr("Name :", sp.getSecHostName(), FONT_NORMAL, false); + printTwoColWrapped(printer, "IP :", sp.getSecHostIpAddress(), FONT_NORMAL, false); + printTwoColWrapped(printer, "Sec IP :", sp.getSecHostSecIpAddress(), FONT_NORMAL, false); + printer.appendPrnStr("MID :", sp.getSecHostMerchantId(), FONT_NORMAL, false); + printer.appendPrnStr("TID :", sp.getSecHostTerminalId(), FONT_NORMAL, false); + + printer.appendPrnStr("--------------------------------", FONT_NORMAL, AlignEnum.LEFT, false); + } + + // ================== Start Printing ================== + printer.startPrint(true, ret -> { + if(ret == SdkResult.Success){ + Log.d("Printer", "Print success"); + } else { + Log.d("Printer", "Print failed: " + ret); + } + }); + } + + + private void printTwoColWrapped(Printer p, String left, String right, int font, Boolean isBold) { + + if (right == null) right = ""; + + int maxRight = 24; // recommended width for right column + + // If right text fits → print normally + if (right.length() <= maxRight) { + p.appendPrnStr(left, right, font, isBold); + return; + } + + // Otherwise wrap it + int start = 0; + boolean firstLine = true; + + while (start < right.length()) { + int end = Math.min(start + maxRight, right.length()); + String part = right.substring(start, end); + + if (firstLine) { + p.appendPrnStr(left, part, font, isBold); + firstLine = false; + } else { + // subsequent lines: blank left column + p.appendPrnStr(" ", part, font, isBold); + } + + start += maxRight; + } + } + + public void onClickVersion(){ mListener.onClickVersion(); } @@ -184,7 +341,6 @@ public class NaviMainFragment extends DataBindingFragment { mListener.onClickExit(); } - } public interface OnFragmentInteractionListener { @@ -195,5 +351,6 @@ public class NaviMainFragment extends DataBindingFragment { void onClickVersion(); void onClickExit(); + } } diff --git a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundProcessFragment.java b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundProcessFragment.java index efd5222..4bf196f 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundProcessFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundProcessFragment.java @@ -150,7 +150,6 @@ public class QRRefundProcessFragment extends DataBindingFragment { } else { LogUtil.d(TAG, "Refund failed!"); - payDetail.setQrTransStatus(-1); payDetail.setQrReferNo(referenceNo); payDetail.setReferNo(referenceNo); @@ -160,7 +159,8 @@ public class QRRefundProcessFragment extends DataBindingFragment { errorMsg = response.getResponse().getMsg(); } payDetail.setTradeResultDes(errorMsg); - + sharedViewModel.pushReceipt(buildEReceiptQRReceipt(payDetail, false, "Refund Failed! "+errorMsg)); + sharedViewModel.payDetail.setValue(payDetail); navigateToNext(); } diff --git a/app/src/main/res/drawable/ic_mmqr.png b/app/src/main/res/drawable/ic_mmqr.png new file mode 100644 index 0000000000000000000000000000000000000000..376941f587cfe18551f0401603a7a678695162ee GIT binary patch literal 49232 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

n`^B}_|y4+ZZCum7DKU8{?2o4}f)0qza8>o`A2 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 XLtqk;kY3n%FhE{fS*rT2NznfR8fc@f literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/fragment_dashboard_screen.xml b/app/src/main/res/layout/fragment_dashboard_screen.xml index 7c00102..8705e73 100644 --- a/app/src/main/res/layout/fragment_dashboard_screen.xml +++ b/app/src/main/res/layout/fragment_dashboard_screen.xml @@ -266,8 +266,7 @@ + + + + + + + + + + + + + + + + + + + + + + + + + - KBZ + KBZ UAT SMILE-SIT SMILE-UAT SMILE-PLUS diff --git a/baselib/build.gradle b/baselib/build.gradle index a9136d6..1c599ae 100644 --- a/baselib/build.gradle +++ b/baselib/build.gradle @@ -14,6 +14,8 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles "consumer-rules.pro" + buildConfigField "String", "ERECEIPT_SECRET", "\"${ERECEIPT_SECRET}\"" + // Room compiler options javaCompileOptions { diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/di/NetworkModule.java b/baselib/src/main/java/com/utsmyanmar/baselib/di/NetworkModule.java index bc0eb17..a885129 100644 --- a/baselib/src/main/java/com/utsmyanmar/baselib/di/NetworkModule.java +++ b/baselib/src/main/java/com/utsmyanmar/baselib/di/NetworkModule.java @@ -285,8 +285,8 @@ public class NetworkModule { tmsAddress = getTMSUrlFromNative(); } - String baseUrl = tmsAddress.trim() + "/api/v1/"; -// String baseUrl = tmsAddress.trim() + "/"; +// String baseUrl = tmsAddress.trim() + "/api/v1/"; + String baseUrl = tmsAddress.trim() + "/"; final Gson gson = @@ -398,9 +398,11 @@ public class NetworkModule { OkHttpClient client = new OkHttpClient.Builder() .addInterceptor(interceptor) .build(); +// String baseUrl = "http://receipt-nest.utsmyanmar.com/"; + String baseUrl = "https://api-tms-uat.kbzbank.com:8443/receipt/"; return new Retrofit.Builder() - .baseUrl("http://receipt-nest.utsmyanmar.com/") // base URL + .baseUrl(baseUrl) .addCallAdapterFactory(RxJava3CallAdapterFactory.create()) .addConverterFactory(GsonConverterFactory.create()) .client(client) diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/repo/Repository.java b/baselib/src/main/java/com/utsmyanmar/baselib/repo/Repository.java index b95370a..5988cc3 100644 --- a/baselib/src/main/java/com/utsmyanmar/baselib/repo/Repository.java +++ b/baselib/src/main/java/com/utsmyanmar/baselib/repo/Repository.java @@ -6,6 +6,7 @@ import androidx.lifecycle.LiveData; import com.google.gson.Gson; import com.google.gson.JsonElement; +import com.utsmyanmar.baselib.BuildConfig; import com.utsmyanmar.baselib.db.dao.EmvDetailDao; import com.utsmyanmar.baselib.db.dao.PayDetailDao; import com.utsmyanmar.baselib.db.model.EmvDetail; @@ -106,7 +107,8 @@ public class Repository { return siriusApiService.getParams(siriusRequest); } public Observable sendReceipt(Object body){ - String apiSecret = "8f4df38d1001bcc4620b5c736c66a03eef4653eb3ba31105faa2f2ee294c4a46"; +// String apiSecret = "y812J21lhha11OS"; + String apiSecret = BuildConfig.ERECEIPT_SECRET; String timestamp = String.valueOf(System.currentTimeMillis()); String bodyString = new Gson().toJson(body); String dataToHash = bodyString + apiSecret + timestamp; diff --git a/gradle.properties b/gradle.properties index ef03384..afcdd41 100644 --- a/gradle.properties +++ b/gradle.properties @@ -28,4 +28,5 @@ android.useAndroidX=true # thereby reducing the size of the R class for that library android.nonTransitiveRClass=true # Disable Android Studio's Jetifier to avoid conflicts -android.enableJetifier=false \ No newline at end of file +android.enableJetifier=false +ERECEIPT_SECRET=y812J21lhha11OS diff --git a/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsSettings.java b/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsSettings.java index c916e82..8a6dc29 100644 --- a/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsSettings.java +++ b/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsSettings.java @@ -42,8 +42,8 @@ public class SystemParamsSettings implements Serializable { // private String tmsAddress = "https://tms.smile-mm.com"; // private String tmsAddress = "http://128.199.170.203"; - private String tmsAddress = "http://sirius-nest.utsmyanmar.com"; -// private String tmsAddress = "https://api-tms-uat.kbzbank.com:8443/sirius"; +// private String tmsAddress = "http://sirius-nest.utsmyanmar.com"; + private String tmsAddress = "https://api-tms-uat.kbzbank.com:8443/sirius"; private String terminalCapability = "E0E8C8";