fixed QR Settlement & History
This commit is contained in:
parent
c697d6c3f9
commit
4e26b2ec4d
File diff suppressed because one or more lines are too long
@ -4,6 +4,14 @@
|
||||
<selectionStates>
|
||||
<SelectionState runConfigName="app">
|
||||
<option name="selectionMode" value="DROPDOWN" />
|
||||
<DropdownSelection timestamp="2025-12-11T11:35:06.715134Z">
|
||||
<Target type="DEFAULT_BOOT">
|
||||
<handle>
|
||||
<DeviceId pluginId="PhysicalDevice" identifier="serial=0123456789ABCDEF" />
|
||||
</handle>
|
||||
</Target>
|
||||
</DropdownSelection>
|
||||
<DialogSelection />
|
||||
</SelectionState>
|
||||
</selectionStates>
|
||||
</component>
|
||||
|
||||
@ -853,9 +853,14 @@ public class MainFragment extends DataBindingFragment {
|
||||
}
|
||||
|
||||
public void onClickQR(){
|
||||
// navigate to new QR Pay fragment
|
||||
routeId = R.id.action_nav_main_to_qrFragment;
|
||||
safeNavigateToRouteId();
|
||||
|
||||
if(TMSUtil.getInstance().checkQRParams().isStatus() == ValidityStatus.FAILURE) {
|
||||
showDeclineDialog(getResourceString(R.string.txt_please_download_config)+"\n"+TMSUtil.getInstance().checkQRParams().getMessage());
|
||||
} else {
|
||||
routeId = R.id.action_nav_main_to_qrFragment;
|
||||
safeNavigateToRouteId();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onClickQRPay() {
|
||||
|
||||
@ -58,7 +58,6 @@ public class SettingsFragment extends DataBindingFragment {
|
||||
private int count = 0;
|
||||
|
||||
|
||||
// Data binding will handle view access automatically
|
||||
private FragmentSettingsModernBinding binding;
|
||||
|
||||
@Inject
|
||||
@ -66,14 +65,12 @@ public class SettingsFragment extends DataBindingFragment {
|
||||
|
||||
@Override
|
||||
protected void initViewModel() {
|
||||
// Initialize ViewModels in initViewModel as per pattern
|
||||
settlementViewModel = getFragmentScopeViewModel(SettlementViewModel.class);
|
||||
mainViewModel = getFragmentScopeViewModel(MainViewModel.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected DataBindingConfig getDataBindingConfig() {
|
||||
// This is the key method that links the XML and fragment properly
|
||||
return new DataBindingConfig(R.layout.fragment_settings_modern, 0, null)
|
||||
.addBindingParam(BR.click, new ClickEvent());
|
||||
}
|
||||
@ -97,19 +94,14 @@ public class SettingsFragment extends DataBindingFragment {
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
try {
|
||||
LogUtil.d(TAG, "onViewCreated called");
|
||||
SystemParamsOperation.getInstance().setDemoStatus(false);
|
||||
|
||||
// Get the binding from the base class - this is automatically created
|
||||
binding = (FragmentSettingsModernBinding) mBinding;
|
||||
updateDemoSettings();
|
||||
|
||||
LogUtil.d(TAG, "Updating settings...");
|
||||
updateSettings();
|
||||
|
||||
LogUtil.d(TAG, "Settings fragment initialized successfully");
|
||||
} catch (Exception e) {
|
||||
LogUtil.e(TAG, "Error initializing fragment: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
@ -118,12 +110,7 @@ public class SettingsFragment extends DataBindingFragment {
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
try {
|
||||
setToolBarTitleWithBackIcon("Settings");
|
||||
LogUtil.d(TAG, "Settings screen resumed");
|
||||
} catch (Exception e) {
|
||||
LogUtil.e(TAG, "Error in onResume: " + e.getMessage());
|
||||
}
|
||||
setToolBarTitleWithBackIcon("Settings");
|
||||
}
|
||||
|
||||
|
||||
@ -304,7 +291,6 @@ public class SettingsFragment extends DataBindingFragment {
|
||||
|
||||
public void onUpdateConfigClick() {
|
||||
try {
|
||||
LogUtil.d(TAG, "Update config clicked");
|
||||
settlementViewModel.getSettlementPOS().observe(getViewLifecycleOwner(), payDetails -> {
|
||||
try {
|
||||
if (payDetails != null && payDetails.size() > 0) {
|
||||
|
||||
@ -84,14 +84,12 @@ public class SignatureFragment extends DataBindingFragment {
|
||||
|
||||
@Override
|
||||
public void onSigned() {
|
||||
LogUtil.d(TAG,"ON Signed !");
|
||||
isSigned = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClear() {
|
||||
isSigned = false;
|
||||
LogUtil.d(TAG,"ON Clear !");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -121,7 +121,7 @@ public class TransactionResultFragment extends DataBindingFragment implements Da
|
||||
}
|
||||
setToolBarTitleWithoutBackIcon(getResourceString(R.string.txt_title_trans_result));
|
||||
} else if(qrStatus == 1 || qrStatus == -1 || qrStatus == 2 || qrStatus == 3 ) {
|
||||
/* WAVE QR STATUS */
|
||||
/* QR STATUS */
|
||||
setToolBarTitleWithoutBackIcon(getResourceString(R.string.txt_title_qr_pay));
|
||||
} else {
|
||||
setToolBarTitleWithoutBackIcon(getResourceString(R.string.txt_title_error));
|
||||
|
||||
@ -71,7 +71,7 @@ public class TMSProcessViewModel extends ViewModel {
|
||||
}
|
||||
|
||||
public void loadEmvParameters() {
|
||||
emvParamOperation.loadAidRids();
|
||||
// emvParamOperation.loadAidRids();
|
||||
emvParamOperation.loadEmvTerminalParam();
|
||||
}
|
||||
|
||||
|
||||
@ -344,6 +344,8 @@ public class QRTransactionFragment extends DataBindingFragment implements DataBi
|
||||
EReceiptRequest request = EReceiptUtil.getInstance().generateQRReceipt(payDetail, TransResultStatus.FAIL);
|
||||
sharedViewModel.pushReceipt(request);
|
||||
|
||||
sharedViewModel.insertPayDetail(payDetail);
|
||||
|
||||
sharedViewModel.payDetail.postValue(payDetail);
|
||||
safeNavigateToRouteId();
|
||||
|
||||
@ -353,14 +355,20 @@ public class QRTransactionFragment extends DataBindingFragment implements DataBi
|
||||
LogUtil.d(TAG, "On Exception::");
|
||||
// sharedViewModel.pushReceipt(buildEReceiptQRReceipt(payDetail, false, "QR Failed! :" + e.getMessage()));
|
||||
e.printStackTrace();
|
||||
EReceiptRequest request = EReceiptUtil.getInstance().generateQRReceipt(payDetail, TransResultStatus.TIME_OUT);
|
||||
sharedViewModel.pushReceipt(request);
|
||||
|
||||
|
||||
|
||||
|
||||
if (count == totalCount) {
|
||||
if(payDetail.getQrTransStatus() != -1) {
|
||||
payDetail.setQrTransStatus(2);
|
||||
}
|
||||
|
||||
EReceiptRequest request = EReceiptUtil.getInstance().generateQRReceipt(payDetail, TransResultStatus.TIME_OUT);
|
||||
sharedViewModel.pushReceipt(request);
|
||||
|
||||
sharedViewModel.insertPayDetail(payDetail);
|
||||
|
||||
sharedViewModel.payDetail.postValue(payDetail);
|
||||
safeNavigateToRouteId();
|
||||
}
|
||||
|
||||
@ -299,10 +299,10 @@ public class ReprintAnyTransactionFragment extends DataBindingFragment {
|
||||
//
|
||||
// LogUtil.d(TAG,"----------------------------------------------------------");
|
||||
|
||||
if(sharedViewModel.transactionsType.getValue() != null && sharedViewModel.transactionsType.getValue() == TransactionsType.MMQR_INQUIRY_STATUS) {
|
||||
if(sharedViewModel.transactionsType.getValue() != null && sharedViewModel.transactionsType.getValue() == TransactionsType.MMQR_HISTORY) {
|
||||
// Wave Inquiry Status::
|
||||
// April 2, 2024 QR Inquiry status check is for unsuccessful transactions.
|
||||
if(yesterday.compareTo(transDate) <= 0 && pay.getTransactionType() == TransactionsType.MMQR.value && pay.getQrTransStatus() != 1) {
|
||||
if(yesterday.compareTo(transDate) <= 0 && pay.getTransactionType() == TransactionsType.MMQR.value ) {
|
||||
|
||||
filteredLists.add(pay);
|
||||
}
|
||||
|
||||
@ -130,6 +130,7 @@ public class QRPayFragment extends DataBindingFragment {
|
||||
|
||||
private void onClickHistory(){
|
||||
sharedViewModel.hostType.setValue(HostType.QR);
|
||||
sharedViewModel.setTransactionsType(TransactionsType.MMQR_HISTORY);
|
||||
routeId = R.id.action_qrFragment_to_qrHistory;
|
||||
safeNavigateToRouteId();
|
||||
}
|
||||
|
||||
@ -282,7 +282,7 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
||||
delayFunctionCall(()->{
|
||||
routeId = R.id.action_QRSettlementTransactionFragment_to_transactionResultFragment;
|
||||
safeNavigateToRouteId();
|
||||
},500);
|
||||
},1000);
|
||||
|
||||
}
|
||||
|
||||
@ -322,7 +322,7 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
||||
if(sharedViewModel.getTransMenu().getValue() == TransMenu.SETTLEMENT) {
|
||||
if (!qrTransactionsList.isEmpty()) {
|
||||
for (PayDetail payDetail : qrTransactionsList) {
|
||||
settlementViewModel.deletePayDetail(payDetail);
|
||||
// settlementViewModel.deletePayDetail(payDetail);
|
||||
}
|
||||
|
||||
updateData();
|
||||
|
||||
@ -45,7 +45,7 @@ public class EReceiptUtil {
|
||||
serialNum = TMSUtil.getInstance().getSerialNumber();
|
||||
packageName = BuildConfig.APPLICATION_ID;
|
||||
qrTerminalId = SystemParamsOperation.getInstance().getSecHostTerminalId();
|
||||
qrMerchantId = SystemParamsOperation.getInstance().getSecHostMerchantId();
|
||||
qrMerchantId = SystemParamsOperation.getInstance().getShortCode();
|
||||
}
|
||||
|
||||
public EReceiptRequest generateQRReceipt(PayDetail payDetail, TransResultStatus status) {
|
||||
|
||||
@ -251,6 +251,28 @@ public class TMSUtil {
|
||||
return tmsValidity;
|
||||
}
|
||||
|
||||
public TMSValidity checkQRParams() {
|
||||
TMSValidity tmsValidity;
|
||||
|
||||
String shortCode = SystemParamsOperation.getInstance().getShortCode();
|
||||
String appId = SystemParamsOperation.getInstance().getAppId();
|
||||
String appKey = SystemParamsOperation.getInstance().getAppKey();
|
||||
|
||||
|
||||
if(shortCode.length() == 11 && !appId.isEmpty() && !appKey.isEmpty()) {
|
||||
tmsValidity = new TMSValidity(ValidityStatus.SUCCESS,"Success");
|
||||
} else if(shortCode.length() != 11) {
|
||||
tmsValidity = new TMSValidity(ValidityStatus.FAILURE,"Invalid Short Code!");
|
||||
} else if(appId.isEmpty() ) {
|
||||
tmsValidity = new TMSValidity(ValidityStatus.FAILURE,"Invalid AppId!");
|
||||
} else {
|
||||
tmsValidity = new TMSValidity(ValidityStatus.FAILURE,"Invalid AppKey!");
|
||||
}
|
||||
|
||||
|
||||
return tmsValidity;
|
||||
}
|
||||
|
||||
public TMSValidity checkSecHostParams() {
|
||||
TMSValidity tmsValidity;
|
||||
|
||||
|
||||
@ -101,21 +101,16 @@ public class BaseApplication extends Application {
|
||||
TerminalKeyUtil.initNexKey();
|
||||
emvParamOperation.loadAidRids();
|
||||
} catch (UnsatisfiedLinkError e) {
|
||||
// Handle missing native library gracefully
|
||||
android.util.Log.e("BaseApplication", "Failed to initialize NexGo SDK due to missing native library: " + e.getMessage());
|
||||
// You can set a flag here to indicate that NexGo functionality is unavailable
|
||||
// and handle this condition in your app's UI/logic
|
||||
|
||||
} catch (Exception e) {
|
||||
android.util.Log.e("BaseApplication", "Failed to initialize NexGo SDK: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private void initFallbackMode() {
|
||||
// Initialize basic functionality without NexGo SDK
|
||||
android.util.Log.w("BaseApplication", "Running in fallback mode without NexGo SDK");
|
||||
// You can add basic initialization here that doesn't depend on the device SDK
|
||||
try {
|
||||
// Only load EMV parameters if emvParamOperation is available
|
||||
if (emvParamOperation != null) {
|
||||
emvParamOperation.loadAidRids();
|
||||
}
|
||||
|
||||
@ -37,4 +37,7 @@ public interface JSpeedyDao {
|
||||
|
||||
@Query("DELETE FROM j_speedy")
|
||||
Completable deleteAll();
|
||||
|
||||
@Query("UPDATE j_speedy SET ttq = :ttq")
|
||||
Completable updateTTQ(String ttq);
|
||||
}
|
||||
|
||||
@ -39,4 +39,7 @@ public interface PayPassDao {
|
||||
|
||||
@Query("DELETE FROM pay_pass")
|
||||
Completable deleteAll();
|
||||
|
||||
@Query("UPDATE pay_pass SET ttq = :ttq")
|
||||
Completable updateTTQ(String ttq);
|
||||
}
|
||||
|
||||
@ -37,4 +37,7 @@ public interface PayWaveDao {
|
||||
|
||||
@Query("DELETE FROM pay_wave")
|
||||
Completable deleteAll();
|
||||
|
||||
@Query("UPDATE pay_wave SET ttq = :ttq")
|
||||
Completable updateTTQ(String ttq);
|
||||
}
|
||||
|
||||
@ -503,7 +503,7 @@ public class EmvParamHelper {
|
||||
capkV2.setRid(ridEntity.getRid());
|
||||
}
|
||||
if (ridEntity.getIndx() != null && !ridEntity.getIndx().isEmpty()) {
|
||||
capkV2.setCapkIdx(Integer.parseInt(ridEntity.getIndx()));
|
||||
capkV2.setCapkIdx(Integer.parseInt(ridEntity.getIndx(),16));
|
||||
}
|
||||
if (ridEntity.getHashInd() != null && !ridEntity.getHashInd().isEmpty()) {
|
||||
capkV2.setHashInd(Integer.parseInt(ridEntity.getHashInd()));
|
||||
|
||||
@ -119,13 +119,15 @@ public class EmvParamOperation extends ParamOperation{
|
||||
processPayPass();
|
||||
processQuickPass();
|
||||
processJSpeedy();
|
||||
// processMPUCtls();
|
||||
processMPUCtls();
|
||||
processChips();
|
||||
processRids();
|
||||
}
|
||||
|
||||
public void loadEmvTerminalParam() {
|
||||
initEmvTerminalParam();
|
||||
// initEmvTerminalParam();
|
||||
|
||||
loadAidRids();
|
||||
}
|
||||
|
||||
private void initEmvTerminalParam() {
|
||||
@ -255,10 +257,10 @@ public class EmvParamOperation extends ParamOperation{
|
||||
}
|
||||
|
||||
public void updateQuickPassTTQ(String ttq) {
|
||||
processUpdateQuickPassTTQ(quickPassEntityRxUtil, quickPassRepository, ttq, new RxCallbackUpdateX() {
|
||||
processUpdateTTQ(quickPassEntityRxUtil, quickPassRepository, ttq, new RxCallbackUpdateX() {
|
||||
@Override
|
||||
public void onError(Throwable throwable) {
|
||||
LogUtil.d(TAG,"Error occur updating JCB Ctls CurrencyCode");
|
||||
LogUtil.d(TAG,"Error occur updating UPI Ctls ttq");
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -267,6 +269,48 @@ public class EmvParamOperation extends ParamOperation{
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void updateJSpeedyTTQ(String ttq) {
|
||||
processUpdateTTQ(jSpeedyEntityRxUtil, jSpeedyRepository, ttq, new RxCallbackUpdateX() {
|
||||
@Override
|
||||
public void onError(Throwable throwable) {
|
||||
LogUtil.d(TAG,"Error occur updating JCB Ctls ttq");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
LogUtil.d(TAG,"Updated UPI TTQ to "+ttq);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void updatePayWaveTTQ(String ttq) {
|
||||
processUpdateTTQ(payWaveEntityRxUtil, payWaveRepository, ttq, new RxCallbackUpdateX() {
|
||||
@Override
|
||||
public void onError(Throwable throwable) {
|
||||
LogUtil.d(TAG,"Error occur updating visa Ctls ttq");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
LogUtil.d(TAG,"Updated visa TTQ to "+ttq);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void updatePayPassTTQ(String ttq) {
|
||||
processUpdateTTQ(payPassEntityRxUtil, payPassRepository, ttq, new RxCallbackUpdateX() {
|
||||
@Override
|
||||
public void onError(Throwable throwable) {
|
||||
LogUtil.d(TAG,"Error occur updating master Ctls ttq");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
LogUtil.d(TAG,"Updated master TTQ to "+ttq);
|
||||
}
|
||||
});
|
||||
}
|
||||
public void updateJCBCurrencyCode(String currencyCode) {
|
||||
processUpdateCtlsCurrencyCode(jSpeedyEntityRxUtil, jSpeedyRepository, currencyCode, new RxCallbackUpdateX() {
|
||||
@Override
|
||||
|
||||
@ -82,7 +82,7 @@ public class ParamOperation {
|
||||
});
|
||||
}
|
||||
|
||||
protected <T> void processUpdateQuickPassTTQ(RxHelper<T> rxHelper, QuickPassRepository paramRepository, String ttq, RxCallbackUpdateX rxCallbackUpdateX) {
|
||||
protected <T> void processUpdateTTQ(RxHelper<T> rxHelper, ParamRepository paramRepository, String ttq, RxCallbackUpdateX rxCallbackUpdateX) {
|
||||
rxHelper.updateData(paramRepository.updateTTQ(ttq), new RxCallbackUpdateX() {
|
||||
@Override
|
||||
public void onError(Throwable throwable) {
|
||||
@ -96,6 +96,7 @@ public class ParamOperation {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
protected <T> void processUpdateCtlsCurrencyCode(RxHelper<T> rxHelper, ParamRepository<T> paramRepository, String currencyCode, RxCallbackUpdateX rxCallbackUpdateX) {
|
||||
rxHelper.updateData(paramRepository.updateCurrencyCode(currencyCode), new RxCallbackUpdateX() {
|
||||
@Override
|
||||
@ -129,27 +130,25 @@ public class ParamOperation {
|
||||
rxHelper.queryData(paramRepository.getAll(), new RxCallbackX<List<T>>() {
|
||||
@Override
|
||||
public void onSuccess(List<T> data) {
|
||||
List<T> list = loadJsonConfig(id, clazz);
|
||||
|
||||
if (data.isEmpty() || list.size() != data.size()) {
|
||||
deleteAll(rxHelper, paramRepository, new RxCallbackUpdateX() {
|
||||
@Override
|
||||
public void onError(Throwable throwable) {
|
||||
throwable.printStackTrace();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
insertData(paramRepository, list);
|
||||
LogUtil.d(TAG, clazz.getSimpleName() + "json file extract size: " + list.size());
|
||||
result.onSuccess(list);
|
||||
}
|
||||
});
|
||||
|
||||
} else {
|
||||
if (data != null && !data.isEmpty()) {
|
||||
LogUtil.d(TAG, clazz.getSimpleName() + " loaded from DB: " + data.size());
|
||||
result.onSuccess(data);
|
||||
LogUtil.d(TAG, clazz.getSimpleName() + " db size: " + data.size());
|
||||
return;
|
||||
}
|
||||
List<T> list = loadJsonConfig(id, clazz);
|
||||
deleteAll(rxHelper, paramRepository, new RxCallbackUpdateX() {
|
||||
@Override
|
||||
public void onError(Throwable throwable) {
|
||||
throwable.printStackTrace();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
insertData(paramRepository, list);
|
||||
LogUtil.d(TAG, clazz.getSimpleName() + "json file extract size: " + list.size());
|
||||
result.onSuccess(list);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -62,4 +62,9 @@ public class BinRepository implements ParamRepository<BinEntity> {
|
||||
public Completable deleteAll() {
|
||||
return binDao.deleteAll();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Completable updateTTQ(String ttq) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -64,6 +64,11 @@ public class ChipAidRepository implements ParamRepository<ChipAidEntity> {
|
||||
return chipAidDao.deleteAll();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Completable updateTTQ(String ttq) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Completable updateChipCVM(String scheme, long cvmLimit) { return chipAidDao.updateCVMByScheme(scheme,cvmLimit);}
|
||||
|
||||
public Completable updateAidByAid(boolean aidEnable,String aid) {
|
||||
|
||||
@ -61,4 +61,9 @@ public class JSpeedyRepository implements ParamRepository<JSpeedyEntity> {
|
||||
public Completable deleteAll() {
|
||||
return jSpeedyDao.deleteAll();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Completable updateTTQ(String ttq) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -60,4 +60,9 @@ public class MPUCtlsRepository implements ParamRepository<MPUCtlsEntity> {
|
||||
public Completable deleteAll() {
|
||||
return mpuCtlsDao.deleteAll();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Completable updateTTQ(String ttq) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -24,4 +24,6 @@ public interface ParamRepository <T>{
|
||||
|
||||
Completable deleteAll();
|
||||
|
||||
Completable updateTTQ(String ttq);
|
||||
|
||||
}
|
||||
|
||||
@ -61,4 +61,9 @@ public class PayPassRepository implements ParamRepository<PayPassEntity> {
|
||||
public Completable deleteAll() {
|
||||
return payPassDao.deleteAll();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Completable updateTTQ(String ttq) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -63,4 +63,9 @@ public class PayWaveRepository implements ParamRepository<PayWaveEntity> {
|
||||
public Completable deleteAll() {
|
||||
return payWaveDao.deleteAll();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Completable updateTTQ(String ttq) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -63,4 +63,9 @@ public class RidRepository implements ParamRepository<RidEntity> {
|
||||
public Completable deleteAll() {
|
||||
return ridDao.deleteAll();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Completable updateTTQ(String ttq) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -17,6 +17,7 @@ import com.nexgo.oaf.apiv3.SdkResult;
|
||||
import com.nexgo.oaf.apiv3.device.pinpad.AlgorithmModeEnum;
|
||||
import com.nexgo.oaf.apiv3.device.pinpad.OnPinPadInputListener;
|
||||
import com.nexgo.oaf.apiv3.device.pinpad.PinAlgorithmModeEnum;
|
||||
import com.nexgo.oaf.apiv3.device.pinpad.PinKeyboardModeEnum;
|
||||
import com.nexgo.oaf.apiv3.device.pinpad.PinKeyboardViewModeEnum;
|
||||
import com.nexgo.oaf.apiv3.device.pinpad.PinPad;
|
||||
import com.nexgo.oaf.apiv3.device.pinpad.PinPadKeyCode;
|
||||
@ -64,6 +65,7 @@ import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@ -601,20 +603,21 @@ public abstract class EmvBaseViewModel extends BaseViewModel {
|
||||
|
||||
|
||||
pinPad.setPinKeyboardViewMode(PinKeyboardViewModeEnum.DEFAULT);
|
||||
pinPad.setAlgorithmMode(AlgorithmModeEnum.DES);
|
||||
pinPad.setPinKeyboardMode(PinKeyboardModeEnum.FIXED);
|
||||
// pinPad.setAlgorithmMode(AlgorithmModeEnum.DES);
|
||||
|
||||
|
||||
if(cardNo == null){
|
||||
cardNo = emvHandler.getEmvCardDataInfo().getCardNo();
|
||||
}
|
||||
// int length = cardNo.length();
|
||||
// byte[] panBytes = cardNo.substring(length - 13).getBytes(StandardCharsets.US_ASCII);
|
||||
int length = cardNo.length();
|
||||
byte[] panBytes = cardNo.substring( length- 13).getBytes(StandardCharsets.US_ASCII);
|
||||
LogUtil.d(TAG,"card num :"+cardNo);
|
||||
LogUtil.d(TAG,"Is Online Pin:"+isOnlinePin);
|
||||
// pinPad.inputOnlinePin(supperLen, 60, pan, 0, PinAlgorithmModeEnum.ISO9564FMT0, pinPadInputListener);
|
||||
if (isOnlinePin) {
|
||||
|
||||
pinPad.inputOnlinePin(supperLen, 60, cardNo, pinIndex, PinAlgorithmModeEnum.ISO9564FMT0, pinPadInputListener);
|
||||
pinPad.inputOnlinePin(supperLen, 60, panBytes, pinIndex, PinAlgorithmModeEnum.ISO9564FMT0, pinPadInputListener);
|
||||
|
||||
} else {
|
||||
mPayDetail.transCVM = TransCVM.OFFLINE_PIN;
|
||||
@ -775,7 +778,6 @@ public abstract class EmvBaseViewModel extends BaseViewModel {
|
||||
byte[] tlv_95 = emvHandler.getTlv(new byte[]{(byte) 0x95}, EmvDataSourceEnum.FROM_KERNEL);
|
||||
LogUtil.d(TAG, "tlv_95--" + ByteUtils.byteArray2HexString(tlv_95));
|
||||
|
||||
|
||||
byte[] tlv_84 = emvHandler.getTlv(new byte[]{(byte) 0x84}, EmvDataSourceEnum.FROM_KERNEL);
|
||||
LogUtil.d(TAG, "tlv_84--" + ByteUtils.byteArray2HexString(tlv_84));
|
||||
|
||||
@ -1216,8 +1218,9 @@ public abstract class EmvBaseViewModel extends BaseViewModel {
|
||||
byte[] TTQ;
|
||||
byte[] kernelTTQ = emvHandler.getTlv(ByteUtils.hexString2ByteArray("9F66"), EmvDataSourceEnum.FROM_KERNEL);
|
||||
LogUtil.d(TAG, "configPaywaveParameters, TTQ" + ByteUtils.byteArray2HexString(kernelTTQ));
|
||||
|
||||
//default TTQ value
|
||||
TTQ = ByteUtils.hexString2ByteArray("36004000");
|
||||
TTQ = ByteUtils.hexString2ByteArray("36A04000");
|
||||
kernelTTQ[0] = TTQ[0];
|
||||
kernelTTQ[2] = TTQ[2];
|
||||
kernelTTQ[3] = TTQ[3];
|
||||
|
||||
@ -390,6 +390,29 @@
|
||||
"cateCode": "2701",
|
||||
"currencyCode": "0104"
|
||||
},
|
||||
{
|
||||
"aidEnable": true,
|
||||
"aid": "A0000000043060",
|
||||
"cardScheme": "MASTERCARD",
|
||||
"applicationVersion": "0002",
|
||||
"emvDDOL": "9F3704",
|
||||
"emvTDOL": "9F3704",
|
||||
"partialAidSelection": false,
|
||||
"targetPercent": "99",
|
||||
"maxTargetPercent": "99",
|
||||
"threshold": "00000040",
|
||||
"tacDefault": "FE50B8A000",
|
||||
"tacOnline": "FE50B8F800",
|
||||
"tacDenial": "0000000000",
|
||||
"floorLimit": "000000000000",
|
||||
"cvmLimit": 75000,
|
||||
"transLimit": "999999999999",
|
||||
"transLimitCDV": "999999999999",
|
||||
"terminalCapability": "0000000000000000",
|
||||
"riskManageData": "6C7A800000000000",
|
||||
"cateCode": "2701",
|
||||
"currencyCode": "0104"
|
||||
},
|
||||
{
|
||||
"aidEnable": true,
|
||||
"aid": "A000000333010101",
|
||||
|
||||
@ -3,26 +3,26 @@
|
||||
"aidEnable": true,
|
||||
"aid": "A0000000651010",
|
||||
"cardLabel": "JCB",
|
||||
"applicationVersion": "0021",
|
||||
"applicationVersion": "0020",
|
||||
"emvDDOL": "9F3704",
|
||||
"emvTDOL": "9F3704",
|
||||
"partialAidSelection": false,
|
||||
"targetPercent": "00",
|
||||
"maxTargetPercent": "00",
|
||||
"targetPercent": "99",
|
||||
"maxTargetPercent": "99",
|
||||
"threshold": "00000000",
|
||||
"tacDefault": "0000000000",
|
||||
"tacOnline": "D84000A800",
|
||||
"tacDefault": "D84000A800",
|
||||
"tacOnline": "DC4004F800",
|
||||
"tacDenial": "0000000000",
|
||||
"floorLimit": "00000000",
|
||||
"floorLimit": "000000000000",
|
||||
"cvmLimit": 75000,
|
||||
"transLimit": "9999999999",
|
||||
"transLimitCDV": "9999999999",
|
||||
"transLimit": "999999999999",
|
||||
"transLimitCDV": "999999999999",
|
||||
"terminalCapability": "0000000000000000",
|
||||
"riskManageData": "01",
|
||||
"kernelType": "06",
|
||||
"ttq": "32004000",
|
||||
"cateCode": "2701",
|
||||
"currencyCode": "0104"
|
||||
"currencyCode": "0840"
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -20,8 +20,9 @@
|
||||
"terminalCapability": "0000000000000000",
|
||||
"riskManageData": "01",
|
||||
"kernelType": "02",
|
||||
"ttq": "36800000",
|
||||
"ttq": "32800000",
|
||||
"cateCode": "2701",
|
||||
"currencyCode": "0104"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
"cvmLimit": 75000,
|
||||
"transLimit": "999999999999",
|
||||
"transLimitCDV": "999999999999",
|
||||
"terminalCapability": "E0F828",
|
||||
"terminalCapability": "E0F8F8",
|
||||
"riskManageData": "6C7A800000000000",
|
||||
"kernelType": "02",
|
||||
"ttq": "36804000",
|
||||
@ -43,7 +43,7 @@
|
||||
"cvmLimit": 75000,
|
||||
"transLimit": "999999999999",
|
||||
"transLimitCDV": "999999999999",
|
||||
"terminalCapability": "E0F828",
|
||||
"terminalCapability": "E0F8F8",
|
||||
"riskManageData": "6C7A800000000000",
|
||||
"kernelType": "02",
|
||||
"ttq": "36804000",
|
||||
@ -68,7 +68,7 @@
|
||||
"cvmLimit": 75000,
|
||||
"transLimit": "999999999999",
|
||||
"transLimitCDV": "999999999999",
|
||||
"terminalCapability": "E0F828",
|
||||
"terminalCapability": "E0F8F8",
|
||||
"riskManageData": "6C7A800000000000",
|
||||
"kernelType": "02",
|
||||
"ttq": "36804000",
|
||||
|
||||
@ -1,29 +1,4 @@
|
||||
[
|
||||
{
|
||||
"aidEnable": true,
|
||||
"aid": "A000000003",
|
||||
"cardLabel": "VISA",
|
||||
"applicationVersion": "008C",
|
||||
"emvDDOL": "9F3704",
|
||||
"emvTDOL": "9F3704",
|
||||
"partialAidSelection": false,
|
||||
"targetPercent": "00",
|
||||
"maxTargetPercent": "00",
|
||||
"threshold": "00000040",
|
||||
"tacDefault": "DC4000A800",
|
||||
"tacOnline": "DC4004F800",
|
||||
"tacDenial": "0000000000",
|
||||
"floorLimit": "000000000000",
|
||||
"cvmLimit": 75000,
|
||||
"transLimit": "4000000000",
|
||||
"transLimitCDV": "9999999",
|
||||
"terminalCapability": "0000000000000000",
|
||||
"riskManageData": "01",
|
||||
"kernelType": "03",
|
||||
"ttq": "36A00000",
|
||||
"cateCode": "2701",
|
||||
"currencyCode": "0104"
|
||||
},
|
||||
{
|
||||
"aidEnable": true,
|
||||
"aid": "A0000000031010",
|
||||
@ -39,13 +14,13 @@
|
||||
"tacOnline": "DC4004F800",
|
||||
"tacDenial": "0000000000",
|
||||
"floorLimit": "000000000000",
|
||||
"cvmLimit": 75000,
|
||||
"cvmLimit": 70000,
|
||||
"transLimit": "999999999999",
|
||||
"transLimitCDV": "999999999999",
|
||||
"terminalCapability": "0000000000000000",
|
||||
"riskManageData": "01",
|
||||
"kernelType": "03",
|
||||
"ttq": "36A04000",
|
||||
"ttq": "32A04000",
|
||||
"cateCode": "2701",
|
||||
"currencyCode": "0104"
|
||||
},
|
||||
@ -64,13 +39,13 @@
|
||||
"tacOnline": "DC4004F800",
|
||||
"tacDenial": "0000000000",
|
||||
"floorLimit": "000000000000",
|
||||
"cvmLimit": 75000,
|
||||
"cvmLimit": 70000,
|
||||
"transLimit": "999999999999",
|
||||
"transLimitCDV": "999999999999",
|
||||
"terminalCapability": "0000000000000000",
|
||||
"riskManageData": "01",
|
||||
"kernelType": "03",
|
||||
"ttq": "36A04000",
|
||||
"ttq": "32A04000",
|
||||
"cateCode": "2701",
|
||||
"currencyCode": "0104"
|
||||
},
|
||||
@ -89,13 +64,13 @@
|
||||
"tacOnline": "DC4004F800",
|
||||
"tacDenial": "0000000000",
|
||||
"floorLimit": "000000000000",
|
||||
"cvmLimit": 75000,
|
||||
"cvmLimit": 70000,
|
||||
"transLimit": "999999999999",
|
||||
"transLimitCDV": "999999999999",
|
||||
"terminalCapability": "0000000000000000",
|
||||
"riskManageData": "01",
|
||||
"kernelType": "03",
|
||||
"ttq": "36A04000",
|
||||
"ttq": "32A04000",
|
||||
"cateCode": "2701",
|
||||
"currencyCode": "0104"
|
||||
},
|
||||
@ -114,13 +89,13 @@
|
||||
"tacOnline": "DC4004F800",
|
||||
"tacDenial": "0000000000",
|
||||
"floorLimit": "000000000000",
|
||||
"cvmLimit": 75000,
|
||||
"cvmLimit": 70000,
|
||||
"transLimit": "999999999999",
|
||||
"transLimitCDV": "999999999999",
|
||||
"terminalCapability": "0000000000000000",
|
||||
"riskManageData": "01",
|
||||
"kernelType": "03",
|
||||
"ttq": "36A04000",
|
||||
"ttq": "32A04000",
|
||||
"cateCode": "2701",
|
||||
"currencyCode": "0104"
|
||||
}
|
||||
|
||||
@ -7,24 +7,23 @@
|
||||
"emvDDOL": "9F3704",
|
||||
"emvTDOL": "9F3704",
|
||||
"partialAidSelection": false,
|
||||
"targetPercent": "00",
|
||||
"maxTargetPercent": "00",
|
||||
"targetPercent": "99",
|
||||
"maxTargetPercent": "99",
|
||||
"threshold": "00000000",
|
||||
"tacDefault": "084000A800",
|
||||
"tacDefault": "D84000A800",
|
||||
"tacOnline": "DC4004F800",
|
||||
"tacDenial": "0010000000",
|
||||
"tacDenial": "0000000000",
|
||||
"floorLimit": "000000000000",
|
||||
"cvmLimit": 300,
|
||||
"transLimit": "999999999",
|
||||
"transLimitCDV": "999999999",
|
||||
"cvmLimit": 75000,
|
||||
"transLimit": "9999999999",
|
||||
"transLimitCDV": "9999999999",
|
||||
"terminalCapability": "0000000000000000",
|
||||
"riskManageData": "0CB0800000000000",
|
||||
"kernelType": "",
|
||||
"ttq": "30004000",
|
||||
"riskManageData": "01",
|
||||
"kernelType": "01",
|
||||
"ttq": "36800000",
|
||||
"cateCode": "2701",
|
||||
"currencyCode": "0104"
|
||||
},
|
||||
|
||||
{
|
||||
"aidEnable": true,
|
||||
"aid": "A000000333010102",
|
||||
@ -33,119 +32,19 @@
|
||||
"emvDDOL": "9F3704",
|
||||
"emvTDOL": "9F3704",
|
||||
"partialAidSelection": false,
|
||||
"targetPercent": "00",
|
||||
"maxTargetPercent": "00",
|
||||
"targetPercent": "99",
|
||||
"maxTargetPercent": "99",
|
||||
"threshold": "00000000",
|
||||
"tacDefault": "D84000A800",
|
||||
"tacOnline": "DC4004F800",
|
||||
"tacDenial": "0000000000",
|
||||
"floorLimit": "000000000000",
|
||||
"cvmLimit": 300,
|
||||
"transLimit": "999999999",
|
||||
"transLimitCDV": "999999999",
|
||||
"cvmLimit": 75000,
|
||||
"transLimit": "9999999999",
|
||||
"transLimitCDV": "9999999999",
|
||||
"terminalCapability": "0000000000000000",
|
||||
"riskManageData": "0CB0800000000000",
|
||||
"kernelType": "",
|
||||
"ttq": "30004000",
|
||||
"cateCode": "2701",
|
||||
"currencyCode": "0104"
|
||||
},
|
||||
{
|
||||
"aidEnable": true,
|
||||
"aid": "A000000333010103",
|
||||
"cardLabel": "UPI",
|
||||
"applicationVersion": "0002",
|
||||
"emvDDOL": "9F3704",
|
||||
"emvTDOL": "9F3704",
|
||||
"partialAidSelection": false,
|
||||
"targetPercent": "00",
|
||||
"maxTargetPercent": "00",
|
||||
"threshold": "00000000",
|
||||
"tacDefault": "D84000A800",
|
||||
"tacOnline": "DC4004F800",
|
||||
"tacDenial": "0000000000",
|
||||
"floorLimit": "000000000000",
|
||||
"cvmLimit": 300,
|
||||
"transLimit": "999999999",
|
||||
"transLimitCDV": "999999999",
|
||||
"terminalCapability": "0000000000000000",
|
||||
"riskManageData": "0CB0800000000000",
|
||||
"kernelType": "",
|
||||
"ttq": "36800000",
|
||||
"cateCode": "2701",
|
||||
"currencyCode": "0104"
|
||||
},
|
||||
{
|
||||
"aidEnable": true,
|
||||
"aid": "A000000333010106",
|
||||
"cardLabel": "UPI",
|
||||
"applicationVersion": "0002",
|
||||
"emvDDOL": "9F3704",
|
||||
"emvTDOL": "9F3704",
|
||||
"partialAidSelection": false,
|
||||
"targetPercent": "00",
|
||||
"maxTargetPercent": "00",
|
||||
"threshold": "00000000",
|
||||
"tacDefault": "D84000A800",
|
||||
"tacOnline": "DC4004F800",
|
||||
"tacDenial": "0000000000",
|
||||
"floorLimit": "000000000000",
|
||||
"cvmLimit": 300,
|
||||
"transLimit": "999999999",
|
||||
"transLimitCDV": "999999999",
|
||||
"terminalCapability": "0000000000000000",
|
||||
"riskManageData": "0CB0800000000000",
|
||||
"kernelType": "",
|
||||
"ttq": "36800000",
|
||||
"cateCode": "2701",
|
||||
"currencyCode": "0104"
|
||||
},
|
||||
{
|
||||
"aidEnable": true,
|
||||
"aid": "A000000333010108",
|
||||
"cardLabel": "UPI",
|
||||
"applicationVersion": "0002",
|
||||
"emvDDOL": "9F3704",
|
||||
"emvTDOL": "9F3704",
|
||||
"partialAidSelection": false,
|
||||
"targetPercent": "00",
|
||||
"maxTargetPercent": "00",
|
||||
"threshold": "00000000",
|
||||
"tacDefault": "D84000A800",
|
||||
"tacOnline": "DC4004F800",
|
||||
"tacDenial": "0000000000",
|
||||
"floorLimit": "000000000000",
|
||||
"cvmLimit": 300,
|
||||
"transLimit": "999999999",
|
||||
"transLimitCDV": "999999999",
|
||||
"terminalCapability": "0000000000000000",
|
||||
"riskManageData": "0CB0800000000000",
|
||||
"kernelType": "",
|
||||
"ttq": "36800000",
|
||||
"cateCode": "2701",
|
||||
"currencyCode": "0104"
|
||||
},
|
||||
{
|
||||
"aidEnable": true,
|
||||
"aid": "A0000003330101021111111111111111",
|
||||
"cardLabel": "UPI",
|
||||
"applicationVersion": "0002",
|
||||
"emvDDOL": "9F3704",
|
||||
"emvTDOL": "9F3704",
|
||||
"partialAidSelection": false,
|
||||
"targetPercent": "00",
|
||||
"maxTargetPercent": "00",
|
||||
"threshold": "00000000",
|
||||
"tacDefault": "D84000A800",
|
||||
"tacOnline": "DC4004F800",
|
||||
"tacDenial": "0000000000",
|
||||
"floorLimit": "000000000000",
|
||||
"cvmLimit": 300,
|
||||
"transLimit": "999999999",
|
||||
"transLimitCDV": "999999999",
|
||||
"terminalCapability": "0000000000000000",
|
||||
"riskManageData": "0CB0800000000000",
|
||||
"kernelType": "",
|
||||
"riskManageData": "01",
|
||||
"kernelType": "01",
|
||||
"ttq": "36800000",
|
||||
"cateCode": "2701",
|
||||
"currencyCode": "0104"
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
[
|
||||
{
|
||||
"rid": "A000000333",
|
||||
"indx": "10",
|
||||
"indx": "0A",
|
||||
"hashInd": "01",
|
||||
"arithInd": "01",
|
||||
"modul": "B2AB1B6E9AC55A75ADFD5BBC34490E53C4C3381F34E60E7FAC21CC2B26DD34462B64A6FAE2495ED1DD383B8138BEA100FF9B7A111817E7B9869A9742B19E5C9DAC56F8B8827F11B05A08ECCF9E8D5E85B0F7CFA644EFF3E9B796688F38E006DEB21E101C01028903A06023AC5AAB8635F8E307A53AC742BDCE6A283F585F48EF",
|
||||
@ -31,10 +31,10 @@
|
||||
},
|
||||
{
|
||||
"rid": "A000000333",
|
||||
"indx": "11",
|
||||
"indx": "0B",
|
||||
"hashInd": "01",
|
||||
"arithInd": "01",
|
||||
"modul": "51E35BD2290A0792BA55AEA169F5BCC33E96BF06E4A021301A97E73A85A7777A40494033433DD945E568065F3BE56255B26BB5CF3F8700AF734A0D5564DE1AFA5F9014704EA42BF929B64BEC7BFABA8D68ADDFECBDFEDEBF36C50DC7FCF0BD8CE33A8A3290216337B02AE6515D7C727F837DA6A18D794CCE62DACFBDB5B4EBE15F79553E05A5562CAE6A7B2C0587ECB362F4080DAC37D4F288440820B422D3692D5E8C57015D3AE21F558ED4733967B3",
|
||||
"modul": "CF9FDF46B356378E9AF311B0F981B21A1F22F250FB11F55C958709E3C7241918293483289EAE688A094C02C344E2999F315A72841F489E24B1BA0056CFAB3B479D0E826452375DCDBB67E97EC2AA66F4601D774FEAEF775ACCC621BFEB65FB0053FC5F392AA5E1D4C41A4DE9FFDFDF1327C4BB874F1F63A599EE3902FE95E729FD78D4234DC7E6CF1ABABAA3F6DB29B7F05D1D901D2E76A606A8CBFFFFECBD918FA2D278BDB43B0434F5D45134BE1C2781D157D501FF43E5F1C470967CD57CE53B64D82974C8275937C5D8502A1252A8A5D6088A259B694F98648D9AF2CB0EFD9D943C69F896D49FA39702162ACB5AF29B90BADE005BC157",
|
||||
"exponent": "03",
|
||||
"expDate": "3230333031323331",
|
||||
"checkSum": "BD331F9996A490B33C13441066A09AD3FEB5F66C"
|
||||
@ -78,6 +78,56 @@
|
||||
"exponent": "03",
|
||||
"expDate": "3230333431323331",
|
||||
"checkSum": "C4A3C43CCF87327D136B804160E47D43B60E6E0F"
|
||||
},
|
||||
{
|
||||
"rid": "A000000003",
|
||||
"indx": "95",
|
||||
"hashInd": "01",
|
||||
"arithInd": "01",
|
||||
"modul": "BE9E1FA5E9A803852999C4AB432DB28600DCD9DAB76DFAAA47355A0FE37B1508AC6BF38860D3C6C2E5B12A3CAAF2A7005A7241EBAA7771112C74CF9A0634652FBCA0E5980C54A64761EA101A114E0F0B5572ADD57D010B7C9C887E104CA4EE1272DA66D997B9A90B5A6D624AB6C57E73C8F919000EB5F684898EF8C3DBEFB330C62660BED88EA78E909AFF05F6DA627B",
|
||||
"exponent": "03",
|
||||
"expDate": "3230323831323331",
|
||||
"checkSum": "EE1511CEC71020A9B90443B37B1D5F6E703030F6"
|
||||
},
|
||||
{
|
||||
"rid": "A000000003",
|
||||
"indx": "99",
|
||||
"hashInd": "01",
|
||||
"arithInd": "01",
|
||||
"modul": "AB79FCC9520896967E776E64444E5DCDD6E13611874F3985722520425295EEA4BD0C2781DE7F31CD3D041F565F747306EED62954B17EDABA3A6C5B85A1DE1BEB9A34141AF38FCF8279C9DEA0D5A6710D08DB4124F041945587E20359BAB47B7575AD94262D4B25F264AF33DEDCF28E09615E937DE32EDC03C54445FE7E382777",
|
||||
"exponent": "03",
|
||||
"expDate": "3230333431323331",
|
||||
"checkSum": "4ABFFD6B1C51212D05552E431C5B17007D2F5E6D"
|
||||
},
|
||||
{
|
||||
"rid": "A000000003",
|
||||
"indx": "09",
|
||||
"hashInd": "01",
|
||||
"arithInd": "01",
|
||||
"modul": "9D912248DE0A4E39C1A7DDE3F6D2588992C1A4095AFBD1824D1BA74847F2BC4926D2EFD904B4B54954CD189A54C5D1179654F8F9B0D2AB5F0357EB642FEDA95D3912C6576945FAB897E7062CAA44A4AA06B8FE6E3DBA18AF6AE3738E30429EE9BE03427C9D64F695FA8CAB4BFE376853EA34AD1D76BFCAD15908C077FFE6DC5521ECEF5D278A96E26F57359FFAEDA19434B937F1AD999DC5C41EB11935B44C18100E857F431A4A5A6BB65114F174C2D7B59FDF237D6BB1DD0916E644D709DED56481477C75D95CDD68254615F7740EC07F330AC5D67BCD75BF23D28A140826C026DBDE971A37CD3EF9B8DF644AC385010501EFC6509D7A41",
|
||||
"exponent": "03",
|
||||
"expDate": "3230333431323331",
|
||||
"checkSum": "1FF80A40173F52D7D27E0F26A146A1C8CCB29046"
|
||||
},
|
||||
{
|
||||
"rid": "A000000004",
|
||||
"indx": "F1",
|
||||
"hashInd": "01",
|
||||
"arithInd": "01",
|
||||
"modul": "A0DCF4BDE19C3546B4B6F0414D174DDE294AABBB828C5A834D73AAE27C99B0B053A90278007239B6459FF0BBCD7B4B9C6C50AC02CE91368DA1BD21AAEADBC65347337D89B68F5C99A09D05BE02DD1F8C5BA20E2F13FB2A27C41D3F85CAD5CF6668E75851EC66EDBF98851FD4E42C44C1D59F5984703B27D5B9F21B8FA0D93279FBBF69E090642909C9EA27F898959541AA6757F5F624104F6E1D3A9532F2A6E51515AEAD1B43B3D7835088A2FAFA7BE7",
|
||||
"exponent": "03",
|
||||
"expDate": "3230333431323331",
|
||||
"checkSum": "D8E68DA167AB5A85D8C3D55ECB9B0517A1A5B4BB"
|
||||
},
|
||||
{
|
||||
"rid": "A000000004",
|
||||
"indx": "EF",
|
||||
"hashInd": "01",
|
||||
"arithInd": "01",
|
||||
"modul": "A191CB87473F29349B5D60A88B3EAEE0973AA6F1A082F358D849FDDFF9C091F899EDA9792CAF09EF28F5D22404B88A2293EEBBC1949C43BEA4D60CFD879A1539544E09E0F09F60F065B2BF2A13ECC705F3D468B9D33AE77AD9D3F19CA40F23DCF5EB7C04DC8F69EBA565B1EBCB4686CD274785530FF6F6E9EE43AA43FDB02CE00DAEC15C7B8FD6A9B394BABA419D3F6DC85E16569BE8E76989688EFEA2DF22FF7D35C043338DEAA982A02B866DE5328519EBBCD6F03CDD686673847F84DB651AB86C28CF1462562C577B853564A290C8556D818531268D25CC98A4CC6A0BDFFFDA2DCCA3A94C998559E307FDDF915006D9A987B07DDAEB3B",
|
||||
"exponent": "03",
|
||||
"expDate": "3230333431323331",
|
||||
"checkSum": "21766EBB0EE122AFB65D7845B73DB46BAB65427A"
|
||||
}
|
||||
|
||||
]
|
||||
BIN
paylibs/src/main/assets/fonts/victor_mono.ttf
Normal file
BIN
paylibs/src/main/assets/fonts/victor_mono.ttf
Normal file
Binary file not shown.
@ -81,10 +81,9 @@ public abstract class BaseXPrint {
|
||||
protected final int FONT_SIZE_NORMAL = 24;
|
||||
protected final int FONT_SIZE_BIG = 24;
|
||||
|
||||
protected int fontSmall = 20;
|
||||
// protected FontEntity fontSmall = new FontEntity(DotMatrixFontEnum.CH_SONG_20X20, DotMatrixFontEnum.ASC_SONG_8X16);
|
||||
protected int fontSmall = 16;
|
||||
|
||||
protected int fontNormal = 25;
|
||||
protected int fontNormal = 20;
|
||||
|
||||
// protected FontEntity fontNormal = new FontEntity(DotMatrixFontEnum.CH_SONG_24X24, DotMatrixFontEnum.ASC_SONG_12X24);
|
||||
protected FontEntity fontBold = new FontEntity(DotMatrixFontEnum.CH_SONG_24X24, DotMatrixFontEnum.ASC_SONG_BOLD_16X24);
|
||||
@ -117,7 +116,7 @@ public abstract class BaseXPrint {
|
||||
Resources resources = PayLibsUtils.getInstance().context.getResources();
|
||||
// Typeface typeface = ResourcesCompat.getFont(PayLibsUtils.getInstance().context, R.font.consolas);
|
||||
// printer.setTypeface(typeface);
|
||||
printer.setTypeface(Typeface.createFromAsset(PayLibsUtils.getInstance().context.getAssets(), "fonts/consolab.ttf"));
|
||||
printer.setTypeface(Typeface.createFromAsset(PayLibsUtils.getInstance().context.getAssets(), "fonts/victor_mono.ttf"));
|
||||
printer.setGray(getGrayLevel());
|
||||
|
||||
}
|
||||
|
||||
@ -49,7 +49,9 @@ public enum TransactionsType {
|
||||
DETAIL_REPORT("DETAIL_REPORT",33,"000000"),
|
||||
|
||||
MMQR_REFUND("QR_REFUND",34,"000000"),
|
||||
MMQR_SETTLEMENT("QR_SETTLEMENT",35,"000000");
|
||||
MMQR_SETTLEMENT("QR_SETTLEMENT",35,"000000"),
|
||||
|
||||
MMQR_HISTORY("QR_HISTORY",36,"000000");
|
||||
|
||||
public final String name;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user