From 7452443a45a5111839fb98dabd2a47988eafb8de Mon Sep 17 00:00:00 2001 From: MooN <56061215+MgKyawLay@users.noreply.github.com> Date: Thu, 11 Dec 2025 03:02:40 +0630 Subject: [PATCH] add expire time on QR --- app/build.gradle | 4 +- .../baselineProfiles/0/app-sit-release.dm | Bin 0 -> 1911 bytes .../baselineProfiles/1/app-sit-release.dm | Bin 0 -> 1834 bytes app/sit/release/output-metadata.json | 37 ++++++ .../com/utsmm/kbz/ui/kpay/KPayViewModel.java | 34 ++++- .../utsmm/kbz/ui/qr_pay/QRPayFragment.java | 2 +- .../java/com/utsmm/kbz/util/DownloadUtil.java | 120 +++++++++++++++--- .../com/utsmm/kbz/util/tms/TMSSetupsImpl.java | 12 ++ .../utsmyanmar/baselib/di/NetworkModule.java | 4 +- .../results.bin | 1 + .../results.bin | 1 + .../results.bin | 1 + .../classes.dex | Bin 0 -> 27084 bytes .../results.bin | 1 + .../results.bin | 0 .../core_utils/SystemParamsOperation.java | 11 ++ .../core_utils/SystemParamsSettings.java | 13 +- 17 files changed, 216 insertions(+), 25 deletions(-) create mode 100644 app/sit/release/baselineProfiles/0/app-sit-release.dm create mode 100644 app/sit/release/baselineProfiles/1/app-sit-release.dm create mode 100644 app/sit/release/output-metadata.json create mode 100644 nexdlkey-lib/build/.transforms/0d4af20c009dcf5ca53c6eb0386ef6ba/results.bin create mode 100644 nexdlkey-lib/build/.transforms/42372291e4065a0833ff472f7deb47e9/results.bin create mode 100644 nexdlkey-lib/build/.transforms/64ffb5e990abcb564d467d9643c2d9b3/results.bin create mode 100644 nexdlkey-lib/build/.transforms/64ffb5e990abcb564d467d9643c2d9b3/transformed/nexgo-sdk-dlkey-1.0.3-runtime/nexgo-sdk-dlkey-1.0.3-runtime_dex/classes.dex create mode 100644 nexdlkey-lib/build/.transforms/8f2121b1ef7bc86489ca1abe0863f708/results.bin create mode 100644 nexdlkey-lib/build/.transforms/b885e125be3d23af311c7255a7c89a96/results.bin diff --git a/app/build.gradle b/app/build.gradle index b46e78d..bd4afd4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -14,8 +14,8 @@ android { applicationId "com.utsmm.kbz" minSdk 24 targetSdk 33 - versionCode 1 - versionName "1.0" + versionCode 2 + versionName "1.01" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/sit/release/baselineProfiles/0/app-sit-release.dm b/app/sit/release/baselineProfiles/0/app-sit-release.dm new file mode 100644 index 0000000000000000000000000000000000000000..3fd91cbeb3efc4acb5a9d44a5229e25089cb35dc GIT binary patch literal 1911 zcmWIWW@Zs#;Nak3cvjIB&42`Wfb4>z%-qDHO1*-j{4~bPtUAAd3-eka~jDstxWukB)fhl8HI z+qG5VP~Y({-1@=|{5MWBU9Mn!JI6O8CRCzrzqRqqJ1=JV-0E1kRYh}R$VMTPZl~zI znb|!88(PI!r>@Y@Y7=4opYc|v^j1j0#a8a{Ai*Q8(yj-4tv+rKQDJrLcH!hO^AMJbiMlH`IQbeeGtx>`H>U52Bcgvp4 zvzvb3`s%;9Wfq}xHtaq6Dlxxr(vOON<}Nn%Hk+~@h8R7#m%nY}y4$nw^sP|6Sv38B z-N%o2o=iV#Z+F|qqBbw7TJ`$ejdR_Vv!xG;_nmt4{Pm~2|J!8^C%rlMWEXc|yyux+ z@4tANTa`U#uNA&;lE3lPk+Xppr{{jCvJ}=xH=3K@CvPNe|KoRm`u>dbH-h&~5`A#7 z{`7A16z1^FOOEPBoVsW#rta+%)p3AJ&EWplCiCTMI~zDUu%ZK>1TBpAFOQh9dD)gn zFE6F7PSM@?Z(&^Yp3m>Hwm+V}-Z)fw>EB}7{bz~Wv`I}So>=LGKUK)7& zO5vGP^?BcyiO0{p_bu$@Z`1jIVrHG|yW#d)zdY*e6NY!K{eSegQq|J)9Woh+_-#x#~Rr^iw`S>Z@#XweZSi5*yn2XGjq4iTraO9`|HCg zx#EA}`&&;n9sjAmeVSAF=IK@b4iihxrOf%CxhPI)gB8b)&s*p3UehO=JzYtG2_0?t z#c^lvJ)QU4d$Z$q2nE@P!rANj?i}PPj+=BV@9XCc@-N;S*+*!9Y3-@_a_^CQMsnSa3+#VB z%wTvo`?o6(+qDl1Wj`+D|J~Gg=8)7v{nRV2zUyA{AKMVvZ}~=X%R==Z#$taL)=6+n zmi>6N-u=PVS?g|^zxj~-KC#9>%Q=tdSJ{%PUz^-FEaU&yUboZD_DAvA8^28dtr7io z^>!k+aO42fksgOhf*g)I94s3nBvo!oNVXhYG{>XJ zV5&~S-ZKHRIS#YLPqocFbckWHZ^Da&RZm-9u*{r#?gW>Ke2TUQtA{?55o4-@%>*6c zW{GA&ZI`~8ijwQPrYkl~oY=_zOjUWp{F<#24Gau3TKHCie5QHx%%u51H_Za#0B=Sn u5e7tUhwN)mZHEeweTuFV*;G)dAb=1XS{Ma*vjT-cwI35hDUf~x<^cel@G5Bl literal 0 HcmV?d00001 diff --git a/app/sit/release/baselineProfiles/1/app-sit-release.dm b/app/sit/release/baselineProfiles/1/app-sit-release.dm new file mode 100644 index 0000000000000000000000000000000000000000..5ef195549342c6e07e573a94bfaa9b07381312ac GIT binary patch literal 1834 zcma)74K&+V6#pkayB2k7KIUs`t*VrSRc%qUXlN*_jaCR65}!r7#J5UghAOSKDyq`d z)=o<*DD@Sjw2ZJ$8zDByK@z4U6|4kHyR%c<>CV}Gzx&>O=brn{yT5zRy}n2#WgS3W zT^$f6=c9lvvO{4f;G^Qg@F~^__;@TRM;b4c|cGT?g%=%W&!^$Q zTw?3*X~C`;0WD9O(?fc55x)}XukD53Y7jbyo|T6jl11hoA@4B7A8A{7+;Yp@?!4y2 zbz5OixzVs`L0F|pdk8t+)mwst%s!T9Lc+O%ix{Q0k{%3411>++YC2)UyKH!g$!1hA ztF^0V$V)VIAAwUoig(x2a5j(;z>0{VphV^qb|DO}lA=q?e>|OQ)YNDei z^q5g9-83;*PzqzlN4#t>Q*FLKdVhNHoGX@HokyJ8)!W-OxqSigq!wGySHW;RcA7Wq zPukbLgNq2tU3>Anq}{b2Yy+|Tm5-M;lb<1zb7l#=YTbU&AO zso}>Wd;&96EB7W5$xg;=M^CU3S0^QbgAJE2QlJ4T%JPaP;C} z=6CHN{V_Ke<&89O90Emt7I|8KNawKp+Ng$u+C&GtD&crniRHREx@2iTc=yL|QTxZX zDdNiBkpzmMZD)&?O3(b^XDFUs6})hK#Nfr;M=|LZR}A|vap~i-Fq|f9ps#E~TPpAC zyi<>3&5PRu`j{G;QG8~{xv3jt8vaJj2YZ{N?#Egr827~Oe)ejW zZ&u$$7M*XAxMNt$t(4;dVH^UFcL<%nq|I@En!#rB!qpZmP zz1YwLBd|nao!`8)^cAtOmXq(fy(T6N@ml(sxbhpGG~!TuewKRfTR_f&;aW+E#g$rV zZDJJihw{1yRYDpf=kZLsFi)hKwpo@DQF*i9schTukN}t!bnSbZ>058LqGv&ur z(O<5Pj`HZ_2dBsEt9lL#Z;JVY8sEFfU*>Qq1);*%7tC^AD z-ReH?DUW4L!B(c8Tv&)+KKV3iAFCwKZOX*^`Cc%R?DA=oNW zyU6-vZ7a7zikSgD|GHV$l`AAQ;U4qL)bxk?SpZO)ty%RZGt1F|Vyfa#WeW90g1|b! uy8*Q|>o)`HpR#pa{X25&t8Z9&Cp`)Vw?@YKB2`r1xWS4=P@L4aw?6^Lyey*t literal 0 HcmV?d00001 diff --git a/app/sit/release/output-metadata.json b/app/sit/release/output-metadata.json new file mode 100644 index 0000000..4a6e51c --- /dev/null +++ b/app/sit/release/output-metadata.json @@ -0,0 +1,37 @@ +{ + "version": 3, + "artifactType": { + "type": "APK", + "kind": "Directory" + }, + "applicationId": "com.utsmm.kbz.sit", + "variantName": "sitRelease", + "elements": [ + { + "type": "SINGLE", + "filters": [], + "attributes": [], + "versionCode": 2, + "versionName": "1.01-sit", + "outputFile": "app-sit-release.apk" + } + ], + "elementType": "File", + "baselineProfiles": [ + { + "minApi": 28, + "maxApi": 30, + "baselineProfiles": [ + "baselineProfiles/1/app-sit-release.dm" + ] + }, + { + "minApi": 31, + "maxApi": 2147483647, + "baselineProfiles": [ + "baselineProfiles/0/app-sit-release.dm" + ] + } + ], + "minSdkVersionForDexing": 24 +} \ No newline at end of file diff --git a/app/src/main/java/com/utsmm/kbz/ui/kpay/KPayViewModel.java b/app/src/main/java/com/utsmm/kbz/ui/kpay/KPayViewModel.java index b0a393a..f7ec8a0 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/kpay/KPayViewModel.java +++ b/app/src/main/java/com/utsmm/kbz/ui/kpay/KPayViewModel.java @@ -42,8 +42,11 @@ import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsSettings; import java.security.SecureRandom; import java.util.HashMap; import java.util.Map; +import java.util.Objects; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.inject.Inject; @@ -190,10 +193,37 @@ public class KPayViewModel extends ViewModel { return createQR(amount, String.valueOf(System.currentTimeMillis()),mid); } + private int expireTime = 1; + + private void calculateTimeoutMinutes() { + String data = SystemParamsOperation.getInstance().getWaveIntervalTime(); + if (data == null || !data.contains("-")) { + data = "15-60"; // fallback + } + + try { + String[] parts = data.split("-"); + int waitingTimeSec = Integer.parseInt(parts[1]); // only take second part + + // convert seconds → minutes + expireTime = waitingTimeSec / 60; + + // enforce limits 1–120 + if (expireTime < 1) expireTime = 1; + if (expireTime > 120) expireTime = 120; + + } catch (Exception e) { + expireTime = 1; // safety fallback + LogUtil.d(TAG, "Invalid format for timeout config: " + data); + } + } + public KPayQRRequest.QrRequest createQR(String amount, String time,String mid) { String merchOrderId = "NEX"+SystemParamsOperation.getInstance().getCurrentSerialNum()+generateRandomTwoChars(); String serialNum = TerminalUtil.getInstance().getSerialNo(); String nonceStr = generateNonceStr(); // Generate random nonce_str + calculateTimeoutMinutes(); + String timeoutExpress = expireTime + "m"; Map bizContent = new HashMap<>(); bizContent.put("merch_order_id", merchOrderId); @@ -203,7 +233,7 @@ public class KPayViewModel extends ViewModel { bizContent.put("total_amount", amount); bizContent.put("title", "testing"); // bizContent.put("operator_id", serialNum); - bizContent.put("timeout_express", "100m"); + bizContent.put("timeout_express", timeoutExpress); bizContent.put("trans_currency", "MMK"); bizContent.put("callback_info", "callback"); @@ -226,7 +256,7 @@ public class KPayViewModel extends ViewModel { "testing", amount, "MMK", - "100m", + timeoutExpress, "callback" ); diff --git a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRPayFragment.java b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRPayFragment.java index 846dde5..6deb64c 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRPayFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRPayFragment.java @@ -58,7 +58,7 @@ public class QRPayFragment extends DataBindingFragment { List features = new ArrayList<>(); features.add(new QRPayItem("Sale", R.drawable.ic_qr_pay, true)); if(isQrRefundEnable){ - features.add(new QRPayItem("Refund", R.drawable.ic_refund, false)); + features.add(new QRPayItem("Refund", R.drawable.ic_refund, true)); } features.add(new QRPayItem("History", R.drawable.ic_history, true)); diff --git a/app/src/main/java/com/utsmm/kbz/util/DownloadUtil.java b/app/src/main/java/com/utsmm/kbz/util/DownloadUtil.java index afbe81d..299b33a 100644 --- a/app/src/main/java/com/utsmm/kbz/util/DownloadUtil.java +++ b/app/src/main/java/com/utsmm/kbz/util/DownloadUtil.java @@ -6,34 +6,89 @@ import com.utsmyanmar.paylibs.utils.LogUtil; import java.io.File; import java.io.FileOutputStream; -import okhttp3.OkHttp; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.schedulers.Schedulers; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; public class DownloadUtil { - final static String TAG = DownloadUtil.class.getSimpleName(); - private void downloadFile(String url){ - try{ - OkHttpClient okHttpClient = new OkHttpClient(); + private static final String TAG = DownloadUtil.class.getSimpleName(); + + // ============================== + // CALLBACK INTERFACE + // ============================== + public interface DownloadCallback { + void onDownloadSuccess(String path); + } + + // ============================== + // RX ASYNC DOWNLOAD METHOD + // ============================== + public static void downloadCertificateRx(String url, + String dynamicFilename, + DownloadCallback callback) { + + Observable.fromCallable(() -> downloadCert(url, dynamicFilename)) + .subscribeOn(Schedulers.io()) // download on background thread + .observeOn(AndroidSchedulers.mainThread()) // callback on main thread + .subscribe(path -> { + if (path != null) { + LogUtil.d(TAG, "Certificate saved at: " + path); + if (callback != null) callback.onDownloadSuccess(path); + } else { + LogUtil.e(TAG, "Certificate download failed."); + if (callback != null) callback.onDownloadSuccess(null); + } + }, error -> { + error.printStackTrace(); + if (callback != null) callback.onDownloadSuccess(null); + }); + } + + // ============================== + // ACTUAL DOWNLOAD LOGIC + // ============================== + public static String downloadCert(String url, String dynamicFilename) { + try { + OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder().url(url).build(); - Response response = okHttpClient.newCall(request).execute(); - if(!response.isSuccessful()){ - LogUtil.e(TAG, "file download failed"); - return; + Response response = client.newCall(request).execute(); + + if (!response.isSuccessful()) { + LogUtil.e(TAG, "Download failed: " + response.code()); + return null; } - byte[] bytes = response.body().bytes(); - saveFile("cert_file.ctr", bytes); - LogUtil.d(TAG, "file saved successfully."); - }catch (Exception e){ + // Detect extension (MIME or URL fallback) + String contentType = response.header("Content-Type", ""); + String ext = getExtensionFromContentType(contentType); + + if (ext.isEmpty()) ext = getExtensionFromUrl(url); + if (ext.isEmpty()) ext = ".bin"; // final fallback + + // build dynamic filename + String filename = dynamicFilename + ext; + + byte[] data = response.body().bytes(); + String savedPath = saveFile(filename, data); + + return savedPath; + + } catch (Exception e) { + e.printStackTrace(); + return null; } } - private void saveFile(String filename, byte[] data){ - try{ + // ============================== + // SAVE FILE TO INTERNAL STORAGE + // ============================== + private static String saveFile(String filename, byte[] data) { + try { File dir = MyApplication.getInstance().getFilesDir(); File file = new File(dir, filename); @@ -42,9 +97,42 @@ public class DownloadUtil { fos.flush(); fos.close(); - LogUtil.d(TAG, "Saved file at => " + file.getAbsolutePath()); + return file.getAbsolutePath(); + } catch (Exception e) { e.printStackTrace(); + return null; } } + + // ============================== + // MIME TYPE → EXTENSION + // ============================== + private static String getExtensionFromContentType(String contentType) { + if (contentType == null) return ""; + + switch (contentType) { + case "application/x-x509-ca-cert": + return ".crt"; + case "application/pkix-cert": + return ".cer"; + case "application/x-pem-file": + case "application/octet-stream": + return ".pem"; + case "application/x-pkcs12": + return ".p12"; + default: + return ""; + } + } + + // ============================== + // URL EXTENSION PARSER + // ============================== + private static String getExtensionFromUrl(String url) { + if (url == null) return ""; + int lastDot = url.lastIndexOf('.'); + if (lastDot == -1) return ""; + return url.substring(lastDot); + } } diff --git a/app/src/main/java/com/utsmm/kbz/util/tms/TMSSetupsImpl.java b/app/src/main/java/com/utsmm/kbz/util/tms/TMSSetupsImpl.java index aa03cc6..2b854bd 100644 --- a/app/src/main/java/com/utsmm/kbz/util/tms/TMSSetupsImpl.java +++ b/app/src/main/java/com/utsmm/kbz/util/tms/TMSSetupsImpl.java @@ -4,6 +4,7 @@ import android.content.pm.PackageInfo; import android.text.TextUtils; import com.google.gson.Gson; +import com.utsmm.kbz.util.DownloadUtil; import com.utsmyanmar.baselib.emv.EmvParamOperation; import com.utsmyanmar.baselib.network.model.sirius.SiriusHost; import com.utsmyanmar.baselib.network.model.sirius.SiriusMerchant; @@ -608,6 +609,17 @@ public class TMSSetupsImpl implements TMSSetups{ SystemParamsOperation.getInstance().setQrRefundEnable(parseBoolean(data)); } else if (TextUtils.equals(name, "tpdu_value")){ SystemParamsOperation.getInstance().setTpduValue(data); + } else if (TextUtils.equals(name, "certificate_file")){ + String tmsAddress = SystemParamsOperation.getInstance().getTmsAddress(); + String url = tmsAddress+"/file/download?filePath="+data; + DownloadUtil.downloadCertificateRx(url, "certificate_file", path -> { + if(path != null){ + SystemParamsOperation.getInstance().setCertFilePath(path); + LogUtil.d(TAG, "Cert file path saved in SystemParams => " + path); + }else{ + LogUtil.e(TAG, "Failed to download certificate file"); + } + }); } } 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 28cfc86..756b454 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 = new GsonBuilder().create(); diff --git a/nexdlkey-lib/build/.transforms/0d4af20c009dcf5ca53c6eb0386ef6ba/results.bin b/nexdlkey-lib/build/.transforms/0d4af20c009dcf5ca53c6eb0386ef6ba/results.bin new file mode 100644 index 0000000..ceff831 --- /dev/null +++ b/nexdlkey-lib/build/.transforms/0d4af20c009dcf5ca53c6eb0386ef6ba/results.bin @@ -0,0 +1 @@ +i/nexgo-sdk-dlkey-1.0.3-runtime_dex diff --git a/nexdlkey-lib/build/.transforms/42372291e4065a0833ff472f7deb47e9/results.bin b/nexdlkey-lib/build/.transforms/42372291e4065a0833ff472f7deb47e9/results.bin new file mode 100644 index 0000000..c626d1b --- /dev/null +++ b/nexdlkey-lib/build/.transforms/42372291e4065a0833ff472f7deb47e9/results.bin @@ -0,0 +1 @@ +i/jars/classes.jar diff --git a/nexdlkey-lib/build/.transforms/64ffb5e990abcb564d467d9643c2d9b3/results.bin b/nexdlkey-lib/build/.transforms/64ffb5e990abcb564d467d9643c2d9b3/results.bin new file mode 100644 index 0000000..951bd91 --- /dev/null +++ b/nexdlkey-lib/build/.transforms/64ffb5e990abcb564d467d9643c2d9b3/results.bin @@ -0,0 +1 @@ +o/nexgo-sdk-dlkey-1.0.3-runtime diff --git a/nexdlkey-lib/build/.transforms/64ffb5e990abcb564d467d9643c2d9b3/transformed/nexgo-sdk-dlkey-1.0.3-runtime/nexgo-sdk-dlkey-1.0.3-runtime_dex/classes.dex b/nexdlkey-lib/build/.transforms/64ffb5e990abcb564d467d9643c2d9b3/transformed/nexgo-sdk-dlkey-1.0.3-runtime/nexgo-sdk-dlkey-1.0.3-runtime_dex/classes.dex new file mode 100644 index 0000000000000000000000000000000000000000..70ca023a7847fafe4bf782f84d1b719f0c554e98 GIT binary patch literal 27084 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 literal 0 HcmV?d00001 diff --git a/nexdlkey-lib/build/.transforms/8f2121b1ef7bc86489ca1abe0863f708/results.bin b/nexdlkey-lib/build/.transforms/8f2121b1ef7bc86489ca1abe0863f708/results.bin new file mode 100644 index 0000000..dc89b75 --- /dev/null +++ b/nexdlkey-lib/build/.transforms/8f2121b1ef7bc86489ca1abe0863f708/results.bin @@ -0,0 +1 @@ +i/nexgo-sdk-dlkey-1.0.3-runtime_global-synthetics diff --git a/nexdlkey-lib/build/.transforms/b885e125be3d23af311c7255a7c89a96/results.bin b/nexdlkey-lib/build/.transforms/b885e125be3d23af311c7255a7c89a96/results.bin new file mode 100644 index 0000000..e69de29 diff --git a/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsOperation.java b/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsOperation.java index 3cebc1e..95e239d 100644 --- a/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsOperation.java +++ b/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/core_utils/SystemParamsOperation.java @@ -1605,4 +1605,15 @@ public class SystemParamsOperation { SystemParamsSettings params = getSystemParamsSettings(); return params.getQrRefundEnable(); } + + public void setCertFilePath(String path) { + SystemParamsSettings params = getSystemParamsSettings(); + params.setCertFilePath(path); + saveSystemParamsSettings(params); + } + + public String getCertFilePath(){ + SystemParamsSettings params = getSystemParamsSettings(); + return params.getCertFilePath(); + } } \ No newline at end of file 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 2ad6ba7..79fd71d 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 ereceiptAddress = "http://receipt-nest.utsmyanmar.com"; private String terminalCapability = "E0E8C8"; @@ -242,6 +242,7 @@ public class SystemParamsSettings implements Serializable { private boolean qrDecimalEnable = false; private boolean qrRefundEnable = false; + private String certFilePath = ""; public boolean isQrPartialRefundEnable(){ return qrPartialRefundEnable; @@ -961,6 +962,14 @@ public class SystemParamsSettings implements Serializable { return qrRefundEnable; } + public void setCertFilePath(String path) { + this.certFilePath = path; + } + + public String getCertFilePath() { + return certFilePath; + } + /* // 流水号起始 private String serialNum = Configs.getInstance().SERIAL_NUM(); // 批次号起始