added bin list and its features
This commit is contained in:
parent
e4f706f24f
commit
4d30d0134c
@ -39,6 +39,8 @@ import com.utsmyanmar.checkxread.sdk.NexGoSDK;
|
||||
import com.utsmyanmar.ecr.ECRHelper;
|
||||
import com.utsmyanmar.paylibs.Constant;
|
||||
import com.utsmyanmar.paylibs.model.PayDetail;
|
||||
import com.utsmyanmar.paylibs.model.SettleData;
|
||||
import com.utsmyanmar.paylibs.model.TradeData;
|
||||
import com.utsmyanmar.paylibs.print.printx.PrintXReceipt;
|
||||
import com.utsmyanmar.paylibs.utils.POSUtil;
|
||||
import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation;
|
||||
@ -71,6 +73,8 @@ import io.reactivex.rxjava3.disposables.CompositeDisposable;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
import com.utsmyanmar.paylibs.utils.LogUtil;
|
||||
import com.utsmyanmar.paylibs.utils.params.Params;
|
||||
|
||||
/**
|
||||
* Main Activity handling application navigation and fragment interactions
|
||||
*/
|
||||
@ -153,9 +157,9 @@ public class MainActivity extends AppCompatActivity implements
|
||||
}
|
||||
|
||||
private void initKey(){
|
||||
// SystemParamsOperation.getInstance().setTmsAddress("https://api-tms-uat.kbzbank.com:8443/sirius");
|
||||
SystemParamsOperation.getInstance().setTmsAddress("https://api-tms-uat.kbzbank.com:8443/sirius");
|
||||
// SystemParamsOperation.getInstance().setTmsAddress("https://sirius-nest.utsmyanmar.com");
|
||||
// SystemParamsOperation.getInstance().setEReceiptAddress("https://api-tms-uat.kbzbank.com:8443/receipt");
|
||||
SystemParamsOperation.getInstance().setEReceiptAddress("https://api-tms-uat.kbzbank.com:8443/receipt");
|
||||
// SystemParamsOperation.getInstance().setEReceiptAddress("http://receipt-nest.utsmyanmar.com");
|
||||
|
||||
PinPad pinPad = MyApplication.getInstance().deviceEngine.getPinPad();
|
||||
@ -452,10 +456,12 @@ public class MainActivity extends AppCompatActivity implements
|
||||
// Handle regular auto settlement
|
||||
boolean auto = intent.getBooleanExtra("AUTO_SETTLEMENT", false);
|
||||
if (auto) {
|
||||
com.utsmyanmar.paylibs.model.PayDetail payDetail = (com.utsmyanmar.paylibs.model.PayDetail) intent.getSerializableExtra("EXTRA_PAY_DETAIL");
|
||||
PayDetail payDetail = (PayDetail) intent.getSerializableExtra("EXTRA_PAY_DETAIL");
|
||||
if (payDetail != null) {
|
||||
|
||||
sharedViewModel.payDetail.setValue(payDetail);
|
||||
sharedViewModel.transactionsType.setValue(com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType.SETTLEMENT);
|
||||
sharedViewModel.transactionsType.setValue(TransactionsType.SETTLEMENT);
|
||||
sharedViewModel.setAmount(POSUtil.getInstance().getDecimalAmountSeparatorFormat(payDetail.getAmount()));
|
||||
try {
|
||||
navController.navigate(R.id.transactionResultFragment);
|
||||
} catch (Exception e) {
|
||||
@ -476,14 +482,14 @@ public class MainActivity extends AppCompatActivity implements
|
||||
List<PayDetail> qrTransList = (List<PayDetail>) intent.getSerializableExtra("QR_TRANS_LIST");
|
||||
|
||||
// Create QR settlement PayDetail
|
||||
com.utsmyanmar.paylibs.model.SettleData settleData = new com.utsmyanmar.paylibs.model.SettleData(
|
||||
SettleData settleData = new SettleData(
|
||||
qrSaleCount, qrSaleAmount, 0, 0L, qrRefundCount, qrRefundAmount, 0, 0L);
|
||||
|
||||
com.utsmyanmar.paylibs.model.TradeData tradeData = com.utsmyanmar.paylibs.utils.params.Params.newTrade(false);
|
||||
com.utsmyanmar.paylibs.model.PayDetail payDetail = tradeData.getPayDetail();
|
||||
TradeData tradeData = Params.newTrade(false);
|
||||
PayDetail payDetail = tradeData.getPayDetail();
|
||||
payDetail.setSettleDataObj(settleData);
|
||||
payDetail.setTransactionType(com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType.MMQR_SETTLEMENT.value);
|
||||
payDetail.setTransType(com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType.MMQR_SETTLEMENT.name);
|
||||
payDetail.setTransactionType(TransactionsType.MMQR_SETTLEMENT.value);
|
||||
payDetail.setTransType(TransactionsType.MMQR_SETTLEMENT.name);
|
||||
payDetail.setAmount(totalAmount);
|
||||
payDetail.setTradeAnswerCode("000");
|
||||
|
||||
@ -491,7 +497,7 @@ public class MainActivity extends AppCompatActivity implements
|
||||
sharedViewModel.setAmount(POSUtil.getInstance().getDecimalAmountSeparatorFormat(totalAmount));
|
||||
sharedViewModel.payDetails.setValue(qrTransList);
|
||||
sharedViewModel.payDetail.setValue(payDetail);
|
||||
sharedViewModel.transactionsType.setValue(com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType.MMQR_SETTLEMENT);
|
||||
sharedViewModel.transactionsType.setValue(TransactionsType.MMQR_SETTLEMENT);
|
||||
|
||||
try {
|
||||
navController.navigate(R.id.transactionResultFragment);
|
||||
|
||||
@ -146,10 +146,10 @@ public class MainFragment extends DataBindingFragment {
|
||||
delayFunctionCall(() -> {
|
||||
NexGoSDK.getInstance().cancelCheckCard();
|
||||
NexGoSDK.getInstance().closeReader();
|
||||
// enableHomeButton();
|
||||
enableHomeButton();
|
||||
// disableTaskButton();
|
||||
// BaseApplication.getInstance().deviceEngine.getPlatform().hideNavigationBar();
|
||||
// BaseApplication.getInstance().deviceEngine.getPlatform().showNavigationBar();
|
||||
BaseApplication.getInstance().deviceEngine.getPlatform().showNavigationBar();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -155,8 +155,8 @@ public class AutoSettleService extends Service {
|
||||
createNotification();
|
||||
|
||||
if (SystemParamsOperation.getInstance().getSettlementStatus()) {
|
||||
// performSettlement();
|
||||
regularSettlementCompleted = true;
|
||||
performSettlement();
|
||||
// regularSettlementCompleted = true;
|
||||
performQRSettlement();
|
||||
} else {
|
||||
LogUtil.d(TAG, "Settlement is disabled in system parameters");
|
||||
|
||||
@ -129,6 +129,14 @@ public class ProcessingCardFragment extends DataBindingFragment {
|
||||
@Override
|
||||
public void onSuccess(CardDataX cardDataX) {
|
||||
|
||||
if(!TransactionUtil.getInstance().getBinList().isEmpty()) {
|
||||
if(TransactionUtil.getInstance().getBinList().contains(cardDataX.getBin())) {
|
||||
LogUtil.d(TAG," <= contain bin => ");
|
||||
handlePreEmvProcess();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
routeId = R.id.action_processingCardFragment_to_pinPadFragment;
|
||||
transProcessViewModel.transType.setValue(sharedViewModel.transactionsType.getValue());
|
||||
pinPadViewModel.transType.setValue(sharedViewModel.transactionsType.getValue());
|
||||
|
||||
@ -13,6 +13,11 @@ import com.utsmm.kbz.config.Constants;
|
||||
|
||||
import com.utsmyanmar.paylibs.utils.LogUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class TransactionUtil {
|
||||
|
||||
|
||||
@ -138,4 +143,25 @@ public class TransactionUtil {
|
||||
return payDetail;
|
||||
}
|
||||
|
||||
public static List<String> binParser(String input) {
|
||||
|
||||
if (input == null || input.trim().isEmpty()) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
String[] parts = input.split("[,/\\-]");
|
||||
|
||||
return Arrays.stream(parts)
|
||||
.map(String::trim)
|
||||
.filter(s -> !s.isEmpty())
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public List<String> getBinList() {
|
||||
if(SystemParamsOperation.getInstance().getBinValues() == null || SystemParamsOperation.getInstance().getBinValues().isEmpty())
|
||||
return new ArrayList<>();
|
||||
else
|
||||
return binParser(SystemParamsOperation.getInstance().getBinValues());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -644,6 +644,9 @@ public class TMSSetupsImpl implements TMSSetups{
|
||||
else if (TextUtils.equals(name, "certificate_password")) {
|
||||
SystemParamsOperation.getInstance().setCertificatePassword(data);
|
||||
}
|
||||
else if(TextUtils.equals(name,"bin_list")) {
|
||||
SystemParamsOperation.getInstance().setBinValue(data);
|
||||
}
|
||||
}
|
||||
|
||||
SystemParamsOperation.getInstance().setCarouselUrls(convertToString(imgUrls));
|
||||
|
||||
@ -4,6 +4,11 @@ import com.utsmyanmar.baselib.util.EReceiptHelper;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class GeneralTest {
|
||||
|
||||
@Test
|
||||
@ -22,4 +27,29 @@ public class GeneralTest {
|
||||
String dataToHash = bodyString + secret + timestamp;
|
||||
return EReceiptHelper.sha256(dataToHash);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBinParser() {
|
||||
String input1 = "629214, 624445";
|
||||
System.out.println(binParser(input1)); // Output: [629214, 624445]
|
||||
|
||||
String input2 = "11111/ 22222 - 33333,44444";
|
||||
System.out.println(binParser(input2)); // Output: [11111, 22222, 33333, 44444]
|
||||
|
||||
String input3 = "55555,";
|
||||
System.out.println(binParser(input3)); // Output: [55555]
|
||||
}
|
||||
|
||||
public static List<String> binParser(String input) {
|
||||
|
||||
if (input == null || input.trim().isEmpty()) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
String[] parts = input.split("[,/\\-]");
|
||||
|
||||
return Arrays.stream(parts)
|
||||
.map(String::trim)
|
||||
.filter(s -> !s.isEmpty())
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
@ -287,8 +287,8 @@ public class NetworkModule {
|
||||
tmsAddress = getTMSUrlFromNative();
|
||||
}
|
||||
|
||||
String baseUrl = tmsAddress.trim() + "/api/v1/"; //for on prim
|
||||
// String baseUrl = tmsAddress.trim() + "/"; //for uat and prod
|
||||
// String baseUrl = tmsAddress.trim() + "/api/v1/"; //for on prim
|
||||
String baseUrl = tmsAddress.trim() + "/"; //for uat and prod
|
||||
|
||||
final Gson gson =
|
||||
new GsonBuilder().create();
|
||||
|
||||
@ -68,4 +68,15 @@ public class CardDataX {
|
||||
public String toString() {
|
||||
return "Card number :"+pan + " expire date : "+exp + " track1 : "+ track1 + " track2 : "+ track2 + " track3 : "+ track3 + " card holder name : "+cardHolderName + " service code: "+serviceCode;
|
||||
}
|
||||
|
||||
public String getBin() {
|
||||
String bin = "";
|
||||
if (pan != null) {
|
||||
if (pan.length() >= 6) {
|
||||
bin = pan.substring(0, 6);
|
||||
System.out.println("BIN: " + bin);
|
||||
}
|
||||
}
|
||||
return bin;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1420,6 +1420,18 @@ public class SystemParamsOperation {
|
||||
return params.getShortCode();
|
||||
}
|
||||
|
||||
public void setBinValue(String value) {
|
||||
SystemParamsSettings params = getSystemParamsSettings();
|
||||
params.setBinValues(value);
|
||||
saveSystemParamsSettings(params);
|
||||
|
||||
}
|
||||
|
||||
public String getBinValues() {
|
||||
SystemParamsSettings params = getSystemParamsSettings();
|
||||
return params.getBinValues();
|
||||
}
|
||||
|
||||
public String getSecHostMerchantId() {
|
||||
SystemParamsSettings params = getSystemParamsSettings();
|
||||
return params.getSecHostMerchantId();
|
||||
|
||||
@ -47,6 +47,8 @@ public class SystemParamsSettings implements Serializable {
|
||||
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 binValues = "";
|
||||
|
||||
private String terminalName = "";
|
||||
|
||||
private String terminalCapability = "E0E8C8";
|
||||
@ -324,6 +326,14 @@ public class SystemParamsSettings implements Serializable {
|
||||
this.secHostIpAddress = secHostIpAddress;
|
||||
}
|
||||
|
||||
protected void setBinValues(String binValues) {
|
||||
this.binValues = binValues;
|
||||
}
|
||||
|
||||
protected String getBinValues() {
|
||||
return this.binValues;
|
||||
}
|
||||
|
||||
protected void setDisabledMessage(String disabledMessage) {
|
||||
this.disabledMessage = disabledMessage;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user