MPU Certification latest
This commit is contained in:
parent
f070ad1c10
commit
3b7354fc3f
@ -38,12 +38,14 @@ import com.mob.utsmyanmar.ui.settlement.SettlementViewModel
|
||||
import com.mob.utsmyanmar.ui.transaction_result.TransactionResultEvent
|
||||
import com.mob.utsmyanmar.ui.transaction_result.TransactionResultViewModel
|
||||
import com.mob.utsmyanmar.ui.functions.FunctionsScreen
|
||||
import com.mob.utsmyanmar.ui.refund_rrn.RRNViewModel
|
||||
import com.mob.utsmyanmar.ui.tms_setup.TmsSetupRoute
|
||||
import com.mob.utsmyanmar.ui.tms_setup.TmsSetupViewModel
|
||||
import com.mob.utsmyanmar.ui.version.VersionScreen
|
||||
import com.mob.utsmyanmar.viewmodel.SharedViewModel
|
||||
import com.mob.utsmyanmar.viewmodel.TransProcessViewModel
|
||||
import com.utsmyanmar.ecr.data.TransType
|
||||
import com.utsmyanmar.paylibs.model.TradeData
|
||||
import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType
|
||||
|
||||
@SuppressLint("ContextCastToActivity")
|
||||
@ -112,19 +114,30 @@ fun AppNavGraph(
|
||||
}
|
||||
|
||||
composable(Routes.SeeMore.route) {
|
||||
val sharedViewModel: SharedViewModel = hiltViewModel(activity)
|
||||
SeeMoreScreen(
|
||||
onBack = { navController.popBackStack() },
|
||||
onNavigateAmount = { action ->
|
||||
if (action == "Void") {
|
||||
when (action) {
|
||||
"Void" -> {
|
||||
sharedViewModel.transactionsType.value = TransactionsType.VOID
|
||||
navController.navigate(Routes.VoidTrace.route) {
|
||||
launchSingleTop = true
|
||||
}
|
||||
} else {
|
||||
}
|
||||
"Pre-Auth Complete Void" -> {
|
||||
sharedViewModel.transactionsType.value = TransactionsType.PRE_AUTH_COMPLETE_VOID
|
||||
navController.navigate(Routes.VoidTrace.route) {
|
||||
launchSingleTop = true
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
navController.navigate(Routes.Amount.createRoute(action)) {
|
||||
launchSingleTop = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
@ -144,8 +157,9 @@ fun AppNavGraph(
|
||||
|
||||
composable(Routes.VoidTrace.route) {
|
||||
val voidViewModel: VoidViewModel = hiltViewModel()
|
||||
|
||||
val sharedViewModel: SharedViewModel = hiltViewModel(activity)
|
||||
VoidTraceScreen(
|
||||
sharedViewModel = sharedViewModel,
|
||||
voidViewModel = voidViewModel,
|
||||
onNavigateTranDetail = { trace ->
|
||||
navController.navigate(Routes.VoidTranDetail.createRoute(trace)) {
|
||||
@ -194,8 +208,19 @@ fun AppNavGraph(
|
||||
trace = trace,
|
||||
onBack = { navController.popBackStack() },
|
||||
onProceedVoid = { payDetail ->
|
||||
sharedViewModel.transactionsType.value = TransactionsType.VOID
|
||||
if(sharedViewModel.transactionsType.value == TransactionsType.VOID) {
|
||||
transProcessViewModel.setTransType(TransactionsType.VOID)
|
||||
payDetail.transType = TransactionsType.VOID.name
|
||||
payDetail.transactionType = TransactionsType.VOID.value
|
||||
} else {
|
||||
transProcessViewModel.setTransType(TransactionsType.PRE_AUTH_COMPLETE_VOID)
|
||||
payDetail.transType = TransactionsType.PRE_AUTH_COMPLETE_VOID.name
|
||||
payDetail.transactionType = TransactionsType.PRE_AUTH_COMPLETE_VOID.value
|
||||
}
|
||||
|
||||
val tradeData = TradeData()
|
||||
tradeData.payDetail = payDetail
|
||||
transProcessViewModel.setTradeData(tradeData)
|
||||
sharedViewModel.payDetail.value = payDetail
|
||||
navController.navigate(Routes.Processing.route) {
|
||||
popUpTo(Routes.VoidTranDetail.route) {
|
||||
@ -392,8 +417,11 @@ fun AppNavGraph(
|
||||
|
||||
composable(Routes.InputRrn.route) {
|
||||
val sharedViewModel: SharedViewModel = hiltViewModel(activity)
|
||||
|
||||
val rrnViewModel: RRNViewModel = hiltViewModel(activity)
|
||||
val transProcessViewModel: TransProcessViewModel = hiltViewModel(activity)
|
||||
InputRrnRoute(
|
||||
transProcessViewModel = transProcessViewModel,
|
||||
rrnViewModel = rrnViewModel,
|
||||
sharedViewModel = sharedViewModel,
|
||||
onBack = { navController.popBackStack() },
|
||||
onNavigateProcessing = {
|
||||
|
||||
@ -405,10 +405,21 @@ class PinPadViewModel @Inject constructor(
|
||||
|
||||
ON_CONFIRM_CLICK -> {
|
||||
LogUtil.d(TAG, "ON CLICK CONFIRM")
|
||||
|
||||
if (
|
||||
transType.value == TransactionsType.PRE_AUTH_COMPLETE ||
|
||||
transType.value == TransactionsType.PRE_AUTH_VOID ||
|
||||
transType.value == TransactionsType.REFUND
|
||||
) {
|
||||
isTerminalStateReached = true
|
||||
_pinStatus.value = PinPadStatus.ON_NEXT_SCREEN
|
||||
} else {
|
||||
isTerminalStateReached = true
|
||||
_pinStatus.value = PinPadStatus.ON_CONFIRM
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ON_CANCEL_CLICK -> {
|
||||
LogUtil.d(TAG, "ON CLICK CANCEL")
|
||||
if (!isTerminalStateReached) {
|
||||
@ -488,18 +499,11 @@ class PinPadViewModel @Inject constructor(
|
||||
payDetail?.pinCipher = ""
|
||||
}
|
||||
|
||||
if (
|
||||
transType.value == TransactionsType.PRE_AUTH_COMPLETE ||
|
||||
transType.value == TransactionsType.PRE_AUTH_VOID ||
|
||||
transType.value == TransactionsType.REFUND
|
||||
) {
|
||||
isTerminalStateReached = true
|
||||
_pinStatus.value = PinPadStatus.ON_NEXT_SCREEN
|
||||
} else {
|
||||
|
||||
handler.obtainMessage(
|
||||
ON_CONFIRM_CLICK
|
||||
).sendToTarget()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun onCancel() {
|
||||
|
||||
@ -200,6 +200,7 @@ fun ReceiptPreview(
|
||||
ReceiptDivider()
|
||||
ReceiptRow("Merchant", state.payDetail?.merchantName.toString() )
|
||||
ReceiptRow("Terminal ID", state.payDetail?.terminalNo.toString() )
|
||||
ReceiptRow("Trace No", state.payDetail?.voucherNo.toString() )
|
||||
ReceiptRow("Transaction", state.payDetail?.transType.toString())
|
||||
ReceiptRow("Amount", POSUtil.getInstance().getDecimalAmountSeparatorFormat(state.payDetail?.amount?:0))
|
||||
ReceiptRow("Card Type", state.payDetail?.accountType.toString())
|
||||
|
||||
@ -6,14 +6,22 @@ import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.saveable.rememberSaveable
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import com.mob.utsmyanmar.ui.components.NumericEntryScreen
|
||||
import com.mob.utsmyanmar.viewmodel.SharedViewModel
|
||||
import com.mob.utsmyanmar.viewmodel.TransProcessViewModel
|
||||
import com.utsmyanmar.paylibs.model.PayDetail
|
||||
import com.utsmyanmar.paylibs.model.TradeData
|
||||
import com.utsmyanmar.paylibs.utils.POSUtil
|
||||
import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType
|
||||
import sunmi.sunmiui.utils.LogUtil
|
||||
|
||||
private const val RRN_MAX_LENGTH = 12
|
||||
|
||||
@Composable
|
||||
fun InputRrnRoute(
|
||||
transProcessViewModel: TransProcessViewModel,
|
||||
rrnViewModel: RRNViewModel,
|
||||
sharedViewModel: SharedViewModel,
|
||||
onBack: () -> Unit,
|
||||
onNavigateProcessing: () -> Unit
|
||||
@ -28,6 +36,75 @@ fun InputRrnRoute(
|
||||
errorMessage = null
|
||||
}
|
||||
|
||||
val payDetailState by rrnViewModel.payDetailState.collectAsStateWithLifecycle()
|
||||
|
||||
|
||||
fun processPreAuthComp(payDetail: PayDetail) {
|
||||
val newPay = transProcessViewModel.payDetail
|
||||
|
||||
|
||||
|
||||
newPay?.setReferNo(payDetail.referNo)
|
||||
newPay?.setApprovalCode(payDetail.getApprovalCode())
|
||||
newPay?.setTradeTime(payDetail.getTradeTime())
|
||||
newPay?.setTradeDate(payDetail.getTradeDate())
|
||||
|
||||
|
||||
val tradeData = TradeData()
|
||||
tradeData.payDetail = newPay
|
||||
transProcessViewModel.setOldTransPayDetail(payDetail)
|
||||
transProcessViewModel.setTradeData(tradeData)
|
||||
|
||||
rrnViewModel.resetState()
|
||||
onNavigateProcessing()
|
||||
|
||||
}
|
||||
|
||||
fun processPreAuthVoid(payDetail: PayDetail) {
|
||||
val newPay = transProcessViewModel.payDetail
|
||||
|
||||
newPay?.setReferNo(payDetail.referNo)
|
||||
|
||||
|
||||
val tradeData = TradeData()
|
||||
tradeData.payDetail = newPay
|
||||
transProcessViewModel.setOldTransPayDetail(payDetail)
|
||||
transProcessViewModel.setTradeData(tradeData)
|
||||
|
||||
rrnViewModel.resetState()
|
||||
onNavigateProcessing()
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
LaunchedEffect(payDetailState) {
|
||||
LogUtil.d("RRN","paydetail state: $payDetailState")
|
||||
when (val state = payDetailState) {
|
||||
|
||||
is RRNViewModel.PayDetailState.Success -> {
|
||||
|
||||
|
||||
sharedViewModel.payDetail.value = state.data
|
||||
sharedViewModel.rrNNo.value = state.data.referNo
|
||||
|
||||
if(sharedViewModel.transactionsType.value == TransactionsType.PRE_AUTH_COMPLETE) {
|
||||
processPreAuthComp(state.data)
|
||||
} else if(sharedViewModel.transactionsType.value == TransactionsType.PRE_AUTH_VOID) {
|
||||
processPreAuthVoid(state.data)
|
||||
}
|
||||
|
||||
}
|
||||
is RRNViewModel.PayDetailState.Error -> {
|
||||
errorMessage = state.message
|
||||
rrnViewModel.resetState()
|
||||
// show dialog
|
||||
// navigate to home
|
||||
}
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
|
||||
NumericEntryScreen(
|
||||
title = "Input RRN",
|
||||
prompt = "Enter RRN",
|
||||
@ -38,17 +115,32 @@ fun InputRrnRoute(
|
||||
onCancelClick = onBack,
|
||||
onConfirmClick = {
|
||||
val trimmedRrn = rrn.trim()
|
||||
|
||||
if (POSUtil.getInstance().checkNumberField(trimmedRrn)) {
|
||||
errorMessage = "Invalid RRN"
|
||||
return@NumericEntryScreen
|
||||
}
|
||||
|
||||
sharedViewModel.rrNNo.value = trimmedRrn
|
||||
sharedViewModel.payDetail.value?.let { payDetail ->
|
||||
payDetail.referNo = trimmedRrn
|
||||
sharedViewModel.payDetail.value = payDetail
|
||||
}
|
||||
|
||||
|
||||
if(sharedViewModel.transactionsType.value == TransactionsType.REFUND ) {
|
||||
val newPay = transProcessViewModel.payDetail
|
||||
|
||||
newPay?.setReferNo(trimmedRrn)
|
||||
val tradeData = TradeData()
|
||||
tradeData.payDetail = newPay
|
||||
transProcessViewModel.setTradeData(tradeData)
|
||||
rrnViewModel.resetState()
|
||||
onNavigateProcessing()
|
||||
} else{
|
||||
rrnViewModel.searchPayDetail(
|
||||
trimmedRrn,
|
||||
sharedViewModel.payDetail.value?.cardNo?:""
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
|
||||
},
|
||||
onKeyClick = { value ->
|
||||
rrn = appendRrnValue(rrn, value)
|
||||
|
||||
@ -0,0 +1,56 @@
|
||||
package com.mob.utsmyanmar.ui.refund_rrn
|
||||
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.asFlow
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.utsmyanmar.baselib.repo.Repository
|
||||
import com.utsmyanmar.paylibs.model.PayDetail
|
||||
import com.utsmyanmar.paylibs.system.SingleLiveEvent
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
import kotlinx.coroutines.flow.filterNotNull
|
||||
import kotlinx.coroutines.flow.first
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
|
||||
|
||||
@HiltViewModel
|
||||
class RRNViewModel @Inject constructor(
|
||||
private val repository: Repository
|
||||
) : ViewModel() {
|
||||
|
||||
sealed class PayDetailState {
|
||||
object Idle : PayDetailState()
|
||||
object Loading : PayDetailState()
|
||||
data class Success(val data: PayDetail) : PayDetailState()
|
||||
data class Error(val message: String) : PayDetailState()
|
||||
}
|
||||
|
||||
private val _payDetailState = MutableStateFlow<PayDetailState>(PayDetailState.Idle)
|
||||
val payDetailState: StateFlow<PayDetailState> = _payDetailState
|
||||
|
||||
fun searchPayDetail(refNo: String, cardNo: String) {
|
||||
_payDetailState.value = PayDetailState.Loading
|
||||
viewModelScope.launch {
|
||||
try {
|
||||
repository.searchPayDetail(cardNo, refNo)
|
||||
.asFlow()
|
||||
.filterNotNull()
|
||||
.first()
|
||||
.let { result ->
|
||||
_payDetailState.value = PayDetailState.Success(result)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
_payDetailState.value = PayDetailState.Error(e.message ?: "Search failed")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun resetState() {
|
||||
_payDetailState.value = PayDetailState.Idle
|
||||
}
|
||||
|
||||
}
|
||||
@ -40,11 +40,14 @@ import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.mob.utsmyanmar.ui.components.appbar.AppBar
|
||||
import com.mob.utsmyanmar.ui.theme.Color
|
||||
import com.mob.utsmyanmar.viewmodel.SharedViewModel
|
||||
import com.utsmyanmar.paylibs.model.PayDetail
|
||||
import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType
|
||||
import sunmi.sunmiui.utils.LogUtil
|
||||
|
||||
@Composable
|
||||
fun VoidTraceScreen(
|
||||
sharedViewModel: SharedViewModel,
|
||||
voidViewModel: VoidViewModel,
|
||||
onNavigateTranDetail: (String) -> Unit,
|
||||
onBack: () -> Unit = {}
|
||||
@ -57,12 +60,18 @@ fun VoidTraceScreen(
|
||||
val recentTransactions by voidViewModel.getLastThreeTransactions().observeAsState(emptyList())
|
||||
|
||||
val transactionSource: LiveData<PayDetail?> = remember(searchedTrace) {
|
||||
val transType = if(sharedViewModel.transactionsType.value == TransactionsType.VOID) {
|
||||
TransactionsType.SALE.value
|
||||
} else {
|
||||
TransactionsType.PRE_AUTH_COMPLETE.value;
|
||||
}
|
||||
LogUtil.d("void screen","transaction type : $transType and trace number : $searchedTrace")
|
||||
if (searchedTrace.isBlank()) {
|
||||
MutableLiveData<PayDetail?>(null)
|
||||
} else {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
voidViewModel.getVoidTrans(
|
||||
TransactionsType.SALE.value,
|
||||
transType,
|
||||
searchedTrace
|
||||
) as LiveData<PayDetail?>
|
||||
}
|
||||
|
||||
@ -35,18 +35,18 @@ fun ProcessingRoute(
|
||||
|
||||
val settlementStatus by settlementViewModel.uiState.collectAsStateWithLifecycle()
|
||||
|
||||
val settlementStatusResult by settlementViewModel.events.collectAsStateWithLifecycle(Channel.BUFFERED)
|
||||
|
||||
|
||||
if(sharedViewModel.transactionsType.value == TransactionsType.SETTLEMENT) {
|
||||
LaunchedEffect(Unit) {
|
||||
settlementViewModel.startSettlementProcess()
|
||||
}
|
||||
|
||||
LaunchedEffect(settlementStatusResult) {
|
||||
when(settlementStatusResult) {
|
||||
LaunchedEffect(settlementStatus.status) {
|
||||
when(settlementStatus.status) {
|
||||
TransactionStatus.ON_ERROR,
|
||||
TransactionStatus.ON_SUCCESS -> onNavigateTransactionResult()
|
||||
TransactionStatus.ON_SUCCESS -> {
|
||||
sharedViewModel.payDetail.value = settlementViewModel.getPayDetail()
|
||||
onNavigateTransactionResult()
|
||||
}
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
|
||||
@ -205,6 +205,7 @@ class SettlementViewModel @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
fun getPayDetail() = payDetail
|
||||
fun setSettlementType(type: SettlementType) {
|
||||
_uiState.update {
|
||||
it.copy(settlementType = type)
|
||||
@ -351,6 +352,7 @@ class SettlementViewModel @Inject constructor(
|
||||
totalERefundAmount
|
||||
}
|
||||
|
||||
payDetail = currentPayDetail
|
||||
tradeData.payDetail = currentPayDetail
|
||||
tradeData.field60 = field60
|
||||
|
||||
|
||||
@ -53,6 +53,7 @@ class TmsSetupViewModel @Inject constructor(
|
||||
init {
|
||||
viewModelScope.launch {
|
||||
waitForHardware()
|
||||
TMSUtil.getInstance().generateFinalVersion()
|
||||
downloadConfigs()
|
||||
}
|
||||
}
|
||||
@ -62,6 +63,8 @@ class TmsSetupViewModel @Inject constructor(
|
||||
it.copy(isLoading = true, isError = false, statusText = "Connecting to TMS server...")
|
||||
}
|
||||
|
||||
|
||||
|
||||
val disposable = repository.getParams(buildRequest())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
@ -103,6 +106,7 @@ class TmsSetupViewModel @Inject constructor(
|
||||
delay(500)
|
||||
elapsed += 500
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun onConfigApplied() {
|
||||
|
||||
@ -267,6 +267,7 @@ class TMSSetupsImpl : TMSSetups {
|
||||
} catch (e: Exception) {
|
||||
"?"
|
||||
}
|
||||
SystemParamsOperation.getInstance().setFinalVersion("PHV$phv-RV$rv-SV$sv")
|
||||
return "PHV$phv-RV$rv-SV$sv"
|
||||
}
|
||||
private fun parseBoolean(data: String): Boolean =
|
||||
|
||||
@ -3,7 +3,6 @@ package com.mob.utsmyanmar.viewmodel
|
||||
import android.text.TextUtils
|
||||
import androidx.lifecycle.ViewModel
|
||||
import com.mob.utsmyanmar.model.TransResultStatus
|
||||
import com.mob.utsmyanmar.ui.processing_card.ProcessingCardState
|
||||
import com.mob.utsmyanmar.ui.sending_to_host.ProcessingState
|
||||
import com.utsmyanmar.baselib.repo.Repository
|
||||
import com.utsmyanmar.paylibs.model.PayDetail
|
||||
@ -109,6 +108,12 @@ class TransProcessViewModel @Inject constructor(
|
||||
fun setOldTransPayDetail(payDetail: PayDetail) {
|
||||
oldTransPayDetail = payDetail
|
||||
}
|
||||
|
||||
fun setNewPayDetail(payDetail: PayDetail) {
|
||||
this.payDetail = payDetail
|
||||
tradeData = TradeData()
|
||||
tradeData.payDetail = payDetail
|
||||
}
|
||||
private val _state = MutableStateFlow(ProcessingState())
|
||||
val state = _state.asStateFlow()
|
||||
|
||||
@ -263,9 +268,36 @@ class TransProcessViewModel @Inject constructor(
|
||||
)
|
||||
}
|
||||
|
||||
override fun processPreVoidDb(payResult: PayDetail) {}
|
||||
override fun processPreCompDb(payResult: PayDetail) {}
|
||||
override fun processPreCompVoidDb(payResult: PayDetail) {}
|
||||
override fun processPreVoidDb(payResult: PayDetail) {
|
||||
oldTransPayDetail?.apply {
|
||||
isCanceled = true
|
||||
repository.updatePayDetail(oldTransPayDetail!!)
|
||||
}
|
||||
|
||||
|
||||
repository.insertPayDetail(updateCurrentDateAndTime(payResult))
|
||||
}
|
||||
override fun processPreCompDb(payResult: PayDetail) {
|
||||
if (oldTransPayDetail?.getAmount() == payResult.getAmount()) {
|
||||
oldTransPayDetail?.apply {
|
||||
isCanceled = true
|
||||
repository.updatePayDetail(this)
|
||||
}
|
||||
} else {
|
||||
oldTransPayDetail?.apply {
|
||||
isCanceled = false
|
||||
repository.updatePayDetail(this)
|
||||
}
|
||||
}
|
||||
repository.insertPayDetail(updateCurrentDateAndTime(payResult))
|
||||
}
|
||||
override fun processPreCompVoidDb(payResult: PayDetail) {
|
||||
payDetail?.apply {
|
||||
isCanceled = true
|
||||
repository.updatePayDetail(this)
|
||||
}
|
||||
repository.insertPayDetail(updateCurrentDateAndTime(payResult))
|
||||
}
|
||||
|
||||
/*
|
||||
* Reversal
|
||||
|
||||
@ -206,7 +206,7 @@ public abstract class BaseXPrint {
|
||||
String finalVersion = SystemParamsOperation.getInstance().getFinalVersion();
|
||||
|
||||
sunmiPrinterService.setFontSize(textSize, innerResultCallback);
|
||||
sunmiPrinterService.printText("***** MERCHANT COPY *****" + "\n", innerResultCallback);
|
||||
// sunmiPrinterService.printText("***** MERCHANT COPY *****" + "\n", innerResultCallback);
|
||||
sunmiPrinterService.printText(finalVersion + "\n", innerResultCallback);
|
||||
sunmiPrinterService.printText(receiptFooter + "\n", innerResultCallback);
|
||||
} catch (RemoteException e) {
|
||||
|
||||
@ -50,7 +50,7 @@ public class SignOnProcess {
|
||||
private SignOnProcess() {
|
||||
tradeData = Params.newTrade(true);
|
||||
// payDetail = tradeData.getPayDetail();
|
||||
isoMsgX = new ISOMsgX.ISOMsgXBuilder(ISOVersion.VERSION_1993, ISOMode.ONLY_HEADER,HostName.MPU)
|
||||
isoMsgX = new ISOMsgX.ISOMsgXBuilder(ISOVersion.VERSION_1993, ISOMode.ONLY_HEADER,HostName.CARDZONE)
|
||||
.build();
|
||||
}
|
||||
|
||||
@ -59,7 +59,7 @@ public class SignOnProcess {
|
||||
flag = false;
|
||||
return listener -> {
|
||||
// LogUtil.d(TAG, "Starting TX SignOn");
|
||||
HostName hostName = HostName.MPU;
|
||||
HostName hostName = HostName.CARDZONE;
|
||||
PayDetail payDetail = tradeData.getPayDetail();
|
||||
|
||||
payDetail.setProcessCode(TransactionsType.SIGN_ON.processCode);
|
||||
@ -67,7 +67,7 @@ public class SignOnProcess {
|
||||
payDetail.setTransactionType(TransactionsType.SIGN_ON.value);
|
||||
payDetail.setHostName(hostName.name);
|
||||
|
||||
byte[] sendBytes = isoMsgX.buildISOPackets(tradeData, BitmapConfig.MPU_NEW_SIGN_ON, MessageType.NETWORK_MANAGEMENT);
|
||||
byte[] sendBytes = isoMsgX.buildISOPackets(tradeData, BitmapConfig.CZ_SIGN_ON, MessageType.NETWORK_MANAGEMENT);
|
||||
ISOSocket.getInstance().enqueue(sendBytes, sendBytes.length,false, new ISOCallback() {
|
||||
@Override
|
||||
public void onReceive(byte[] bytes, int length) {
|
||||
|
||||
@ -174,8 +174,8 @@ public class TransactionsOperation {
|
||||
if (responseMap.get("F038") != null) {
|
||||
transPayDetail.setApprovalCode(Objects.requireNonNull(responseMap.get("F038")).getDataStr());
|
||||
} else {
|
||||
transPayDetail.setIsNeedReversal(true);
|
||||
return;
|
||||
// transPayDetail.setIsNeedReversal(true);
|
||||
// return;
|
||||
}
|
||||
|
||||
if (responseMap.get("F046") != null) {
|
||||
@ -376,7 +376,6 @@ public class TransactionsOperation {
|
||||
newPay.setTransCVM(TransCVM.SIGNATURE);
|
||||
|
||||
if((oldPay.getAccountType().equals(CardScheme.MASTERCARD.name) || oldPay.getAccountType().equals(CardScheme.VISA.name))) {
|
||||
|
||||
newPay.setProcessCode(TransactionsType.PRE_AUTH_SALE.processCode);
|
||||
}
|
||||
// for manual entry reversal which need de 35
|
||||
@ -391,12 +390,14 @@ public class TransactionsOperation {
|
||||
newPay.setReferNo(oldPay.getReferNo());
|
||||
newPay.setTempKSN(oldPay.getTempKSN());
|
||||
newPay.setTransCVM(oldPay.getTransCVM()); //added on 26 Nov 2025
|
||||
newPay.setApprovalCode(oldPay.getApprovalCode());
|
||||
newPay.setTradeTime(oldPay.getTradeTime()); // mpu
|
||||
newPay.setTradeDate(oldPay.getTradeDate()); // mpu
|
||||
} else if (transactionsType == TransactionsType.PRE_AUTH_COMPLETE_VOID) {
|
||||
newPay.setVoucherNo(oldPay.getVoucherNo());
|
||||
newPay.setCustomOrderNo(oldPay.getVoucherNo());
|
||||
newPay.setReferNo(oldPay.getReferNo());
|
||||
newPay.setCardInfo(oldPay.getCardInfo());
|
||||
|
||||
/*
|
||||
* new requirements */
|
||||
newPay.setCardType(AidlConstants.CardType.IC.getValue());
|
||||
@ -406,7 +407,7 @@ public class TransactionsOperation {
|
||||
|
||||
|
||||
if(oldPay.getAccountType().equals(CardScheme.MPU.name) || oldPay.getAccountType().equals(CardScheme.MPU_CTLS.name)){
|
||||
newPay.setTransCVM(TransCVM.NO_CVM);
|
||||
newPay.setTransCVM(TransCVM.SIGNATURE);
|
||||
}
|
||||
|
||||
newTrade.setPayDetail(newPay);
|
||||
|
||||
@ -130,7 +130,7 @@ public class HostUtils {
|
||||
if (hostName == HostName.BPC) {
|
||||
msgType = MessageType.REVERSAL;
|
||||
} else {
|
||||
msgType = MessageType.FINANCIAL;
|
||||
msgType = MessageType.REVERSAL;
|
||||
}
|
||||
break;
|
||||
case SETTLEMENT:
|
||||
|
||||
@ -374,13 +374,10 @@ public class FieldUtils {
|
||||
08 – mail order/telephone order
|
||||
* */
|
||||
// Service point condition code Fill in 00 for ordinary consumer transactions and mobile phone chip transactions, fill in 08 for order consumer transactions, fill in 64 for installment transactions, fill in 65 for points consumption transactions, fill in 67 for mobile phone card-free reservations
|
||||
// if (payDetail.getTransactionType() == PRE_AUTH_VOID.value) {
|
||||
// field.setDataStr("06");
|
||||
// } else {
|
||||
// field.setDataStr("00");
|
||||
// }
|
||||
|
||||
if(payDetail.getTransactionType() == REFUND.value) {
|
||||
if (payDetail.getTransactionType() == PRE_AUTH_SALE.value) {
|
||||
field.setDataStr("06");
|
||||
}
|
||||
else if(payDetail.getTransactionType() == REFUND.value) {
|
||||
field.setDataStr("00"); // MPU
|
||||
} else if(payDetail.getCardType() == -1) {
|
||||
field.setDataStr("08");
|
||||
|
||||
@ -82,6 +82,7 @@ public class Params {
|
||||
payDetail.setIsCanceled(false);
|
||||
payDetail.transNum = System.currentTimeMillis() / 1000;
|
||||
// need to add host logic in another place
|
||||
// payDetail.setHostName("MPU");
|
||||
payDetail.setHostName("MPU");
|
||||
// payDetail.setHostName("MOB");
|
||||
|
||||
|
||||
21
paylibs/src/main/res/raw/mob.crt
Normal file
21
paylibs/src/main/res/raw/mob.crt
Normal file
@ -0,0 +1,21 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDYTCCAkmgAwIBAgIETeycDjANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQGEwJt
|
||||
eTELMAkGA1UECBMCa2wxDDAKBgNVBAcTA2trbDERMA8GA1UEChMIY2FyZHpvbmUx
|
||||
ETAPBgNVBAsTCGNhcmR6b25lMREwDwYDVQQDEwhjYXJkem9uZTAeFw0yMTA3MDcw
|
||||
ODU5MzlaFw0zMTA3MDUwODU5MzlaMGExCzAJBgNVBAYTAm15MQswCQYDVQQIEwJr
|
||||
bDEMMAoGA1UEBxMDa2tsMREwDwYDVQQKEwhjYXJkem9uZTERMA8GA1UECxMIY2Fy
|
||||
ZHpvbmUxETAPBgNVBAMTCGNhcmR6b25lMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
||||
MIIBCgKCAQEA2v7WJjmr0b9WpbcsTtk6llJDA5XeReWc3in0sirutMQi+9jLUdgJ
|
||||
0Kdr0Cro0vbJAcVWTBYnMqnqh7oJQYs6vpIFKJA175ZhclQFAcL2jth+Tsqx9Av1
|
||||
DxbuuB7yxU7ErkhXe+/B0R8zOag866R3Xg7u09GG4mlQMx5zmo1Hn3lqMU0lxEXM
|
||||
vhkzVXLUMLhVwu/oJk98u+6pPXoCzXPjBCgy3iR+BaGIR6aiflz8Bi1Rn3XgfnMi
|
||||
PzOzxKRZu5mNBRijs7ztcjA8Pc2uNI0ux3+jUJTgu2JRIBJs+7BkNcJeLzpW5psz
|
||||
qfFdwxTKkgfqU9gJwuPaEbdnP0j7Rv2MBwIDAQABoyEwHzAdBgNVHQ4EFgQUOF7s
|
||||
btNCxmv9HSAkSAPVAHpDXY4wDQYJKoZIhvcNAQELBQADggEBADOJaUnRiVucIb8q
|
||||
jxplpSE0gOHMng+BMq2gKcqqc+QRc/mgM3n0J8F1A3rzj3udbzen3/9TnOiH17uy
|
||||
FGLH12sJ7dJWMGAJ2p15N307ckrCab3+3Y1w6OQJLZ8t3eeXFGPVWQJtiOUbyX73
|
||||
3Fv+TpNl6X1uEdQ0zNDiAvWZQ/e6ynYGF/tSgZLJvgV+8UY5ShCA0Ypousm6sPqb
|
||||
KQXPCs3kRn1eMgMy8PcmUlZK/5qhD+xZswWgNiQ6EyCWmwpB4O0N9wQbLBTFZkGA
|
||||
bDke78LVS1nUam9czcNvSDYyjWsk9ud8mo9JfF21qmwCR68btqDgeU0hM9W6lEQo
|
||||
ezrrz9k=
|
||||
-----END CERTIFICATE-----
|
||||
@ -1,23 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIID3DCCAsSgAwIBAgIJAIuL4ypXInCoMA0GCSqGSIb3DQEBBQUAMGcxCzAJBgNV
|
||||
BAYTAk1SMQswCQYDVQQIDAJNUjEMMAoGA1UECgwDTVBVMQwwCgYDVQQLDANNUFUx
|
||||
DTALBgNVBAMMBHRlc3QxIDAeBgkqhkiG9w0BCQEWEXdhaXlhbkBmcHQuY29tLnZu
|
||||
MB4XDTIxMDIwMzE3MTExMloXDTIyMDIwMzE3MTExMlowdzELMAkGA1UEBhMCTVIx
|
||||
DzANBgNVBAgMBllhbmdvbjEPMA0GA1UEBwwGWWFuZ29uMQwwCgYDVQQKDANNUFUx
|
||||
DDAKBgNVBAsMA01QVTENMAsGA1UEAwwEdGVzdDEbMBkGCSqGSIb3DQEJARYMdGVz
|
||||
dEBtcHUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAujLe6mWJ
|
||||
GXliGUoLdJEA37VyBOQ7zLpge7u2QM2UMQXnKosdtZzMzXnVrnctJ6ehzLnhL0Lv
|
||||
Oissr7qo53haXsJJccHeqcTH5cFkh96IswOrc8/1MMrb4zMjnNjOZaxmB4HeGHKk
|
||||
KjNLKTTO8It3v/MziBhxUEEKVrN4npeUfsGVPfrvYnZXSWuRLhzYYLtEz/LFg4Yh
|
||||
28pCXqk2vmGNV62oZ2+SDisoiYdIVEOMRqb/7cJg+cd0JRdvxHsTNuYRHGtJOM10
|
||||
lEnoI+moE5OIUpp8Z+i4ZcvyThpNbRWf9sRzB8oc32fZ2UWnlN5+bVRLCjlk2jNO
|
||||
SGdMuMaF0bs3GwIDAQABo3sweTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1P
|
||||
cGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUipyzRYfqRc2P
|
||||
QCJ0FJp6eAvI1wkwHwYDVR0jBBgwFoAUvYEAOtcvUt4CxCp+9zRG2oJqos8wDQYJ
|
||||
KoZIhvcNAQEFBQADggEBAAjBQroy74ACyyJCZJ50KBTYQI3Sk82hO/+zZFqsJgWm
|
||||
mNum31TtfwhvQmi94sXQSar0UsqLTmLC3UTucwEdSKOPzXF5BK4EEbkYgMm78hNK
|
||||
2zqhGvcWlqun+KPxmnMRFoVmN3Ck2PkcgudvAeV0G3rm0OdLUwLoK2TcREVf1Cwg
|
||||
C7jX5QtGOgVqnKDZBuoSvdbV30ka7pKkdJAy/Wus4N9hHH+bR2FNkLgTDoXnV8LL
|
||||
E2dRKVYAh9TtuXiW/ejhPtEc14sMP+8JpCFX3DYx4yRW8ZeMl5jal4LhRFXdDbVl
|
||||
Wm99KcWM+TNw/nzKwv0zUJXy0HlN82tvLX1/wbBUo8M=
|
||||
-----END CERTIFICATE-----
|
||||
Binary file not shown.
Binary file not shown.
@ -1,113 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIG8DCCBNigAwIBAgIQWgAhSkRBOifV9FjHQOJCuDANBgkqhkiG9w0BAQwFADBL
|
||||
MQswCQYDVQQGEwJBVDEQMA4GA1UEChMHWmVyb1NTTDEqMCgGA1UEAxMhWmVyb1NT
|
||||
TCBSU0EgRG9tYWluIFNlY3VyZSBTaXRlIENBMB4XDTI0MDkwMzAwMDAwMFoXDTI1
|
||||
MDkwMzIzNTk1OVowGTEXMBUGA1UEAwwOKi55b21hYmFuay5uZXQwggEiMA0GCSqG
|
||||
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCAqUfzHF/N4m3xxNr/noBpg9s8edFWghYn
|
||||
sYEAOQmMD1tVsjFavds9eAO5JBhL2+yQ8dxd5P5yqAHuQmEcBpw0YdPEAsKJbrqG
|
||||
4VXU40q1DbQipnHiTrQx0RG5aRFsP6OTrRU0MnQMaFGTSgMKYKg0YM24si/JyyiX
|
||||
eJXpEIXzt10NWpQfJ7T3RrzkkEHsfPzYmiBecUVmCu2Mb0/jym+Hr5eBvEf/mmhR
|
||||
re/0hofitx9OTwmZt85uPVwpP6miOLpby+/46v7k8PSZ7qJhCv34AnnldY3uA+Ws
|
||||
ld+Ria5Kpt6dHiBPzer/8HNd2Xkdpo2Ny3jq8N9vo0UJ2H7rWgy7AgMBAAGjggMA
|
||||
MIIC/DAfBgNVHSMEGDAWgBTI2XhootkZaNU9ct5fCj7ctYaGpjAdBgNVHQ4EFgQU
|
||||
Iu3iisKOIvooYnMumJGFqW4LTEkwDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQC
|
||||
MAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMEkGA1UdIARCMEAwNAYL
|
||||
KwYBBAGyMQECAk4wJTAjBggrBgEFBQcCARYXaHR0cHM6Ly9zZWN0aWdvLmNvbS9D
|
||||
UFMwCAYGZ4EMAQIBMIGIBggrBgEFBQcBAQR8MHowSwYIKwYBBQUHMAKGP2h0dHA6
|
||||
Ly96ZXJvc3NsLmNydC5zZWN0aWdvLmNvbS9aZXJvU1NMUlNBRG9tYWluU2VjdXJl
|
||||
U2l0ZUNBLmNydDArBggrBgEFBQcwAYYfaHR0cDovL3plcm9zc2wub2NzcC5zZWN0
|
||||
aWdvLmNvbTAnBgNVHREEIDAegg4qLnlvbWFiYW5rLm5ldIIMeW9tYWJhbmsubmV0
|
||||
MIIBfAYKKwYBBAHWeQIEAgSCAWwEggFoAWYAdQDd3Mo0ldfhFgXnlTL6x5/4PRxQ
|
||||
39sAOhQSdgosrLvIKgAAAZG2rpYwAAAEAwBGMEQCIAdAYV4eBpRPW8pCNmvriCr0
|
||||
sOJZeBqBHoQ6fBSJHG1CAiAs841ZeuQRpFtLzZxxDXWbQYKJuT8iV6l2bZHsUdDh
|
||||
owB1AA3h8jAr0w3BQGISCepVLvxHdHyx1+kw7w5CHrR+Tqo0AAABkbaulhAAAAQD
|
||||
AEYwRAIgCLjpVhxG/w/Fsm+aAmE4t4PVAgASOgVMzoD/eOuor/MCIHN5h/YzzOzy
|
||||
KbhEl5VkeSLbLUFz99Lq+Ci5Z0jRRTJ9AHYAEvFONL1TckyEBhnDjz96E/jntWKH
|
||||
iJxtMAWE6+WGJjoAAAGRtq6WDwAABAMARzBFAiEA7uQaaiKBOBPRukDoHqvTzifk
|
||||
1N8fcbf34xDC+BlelnUCIAZaPHlu2u+DJcxCAGgBoqVtZhdO64tcV6yy1fYqo2fq
|
||||
MA0GCSqGSIb3DQEBDAUAA4ICAQBrxQPnmGA+CnhEq2ZaqZNQteRXb9+HbLT9Vq/I
|
||||
6je5BtuYZrF1hd8V/NV3ug+vfWwNjUAILM068BnzfCvAaFxQ/kzmzPgttH2S5e0x
|
||||
0fkG/I0pLtNj9ABcIcOKAnLK3Ce4ANgkpoHg8LtlBy2Tu9Aj+QgDCxz3Jhk6fIOi
|
||||
dBlcveoRE3UpzaZ6G6XLz6CLHcFePhca+qlwWh9L3aw7Kr7ykgU62Y+z2R/KBmvg
|
||||
6lPhumXSMffd3ikESgn+RyVXO6VRyszrIG5/B9NGLc1Of4g0+eE+znWIk4T7eVet
|
||||
RnBMO5I4pLZb63Af9tuYBBBBOkoW+oWFeqxu0Y8G5EqReZiBvG8NvNi2Zj/wvDB+
|
||||
aQN8u2oQnWHTqH5TS+3WSymWKsxHu3anYtRsNdLWb898HkYRPENXDLn8jETDyopN
|
||||
cMBA4qou6di0HOaTmGfGn9cDvrJ/ciYZnT3msCdTSwAk19hacpEtgH3T12FMAtjk
|
||||
aDj45VD1rRfmWj6j8xLVuOV6G6gjsloh3ruQv0j9va1vbmGufc9VbeUPCqFzL2UZ
|
||||
vRr8xAggyjtYPpRwtA+SHAD27nnma3XeEBPwdJJs15wvZw2EH7fI4yYwZ3IrTtAq
|
||||
ICt+BIXVlTQhfgtIC2XCuw3f5e5VlThZRKrJEB1TFAcmW9cCpTrKc5R4cs7XcTbt
|
||||
m7MTbw==
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIG1TCCBL2gAwIBAgIQbFWr29AHksedBwzYEZ7WvzANBgkqhkiG9w0BAQwFADCB
|
||||
iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
|
||||
cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
|
||||
BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMjAw
|
||||
MTMwMDAwMDAwWhcNMzAwMTI5MjM1OTU5WjBLMQswCQYDVQQGEwJBVDEQMA4GA1UE
|
||||
ChMHWmVyb1NTTDEqMCgGA1UEAxMhWmVyb1NTTCBSU0EgRG9tYWluIFNlY3VyZSBT
|
||||
aXRlIENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAhmlzfqO1Mdgj
|
||||
4W3dpBPTVBX1AuvcAyG1fl0dUnw/MeueCWzRWTheZ35LVo91kLI3DDVaZKW+TBAs
|
||||
JBjEbYmMwcWSTWYCg5334SF0+ctDAsFxsX+rTDh9kSrG/4mp6OShubLaEIUJiZo4
|
||||
t873TuSd0Wj5DWt3DtpAG8T35l/v+xrN8ub8PSSoX5Vkgw+jWf4KQtNvUFLDq8mF
|
||||
WhUnPL6jHAADXpvs4lTNYwOtx9yQtbpxwSt7QJY1+ICrmRJB6BuKRt/jfDJF9Jsc
|
||||
RQVlHIxQdKAJl7oaVnXgDkqtk2qddd3kCDXd74gv813G91z7CjsGyJ93oJIlNS3U
|
||||
gFbD6V54JMgZ3rSmotYbz98oZxX7MKbtCm1aJ/q+hTv2YK1yMxrnfcieKmOYBbFD
|
||||
hnW5O6RMA703dBK92j6XRN2EttLkQuujZgy+jXRKtaWMIlkNkWJmOiHmErQngHvt
|
||||
iNkIcjJumq1ddFX4iaTI40a6zgvIBtxFeDs2RfcaH73er7ctNUUqgQT5rFgJhMmF
|
||||
x76rQgB5OZUkodb5k2ex7P+Gu4J86bS15094UuYcV09hVeknmTh5Ex9CBKipLS2W
|
||||
2wKBakf+aVYnNCU6S0nASqt2xrZpGC1v7v6DhuepyyJtn3qSV2PoBiU5Sql+aARp
|
||||
wUibQMGm44gjyNDqDlVp+ShLQlUH9x8CAwEAAaOCAXUwggFxMB8GA1UdIwQYMBaA
|
||||
FFN5v1qqK0rPVIDh2JvAnfKyA2bLMB0GA1UdDgQWBBTI2XhootkZaNU9ct5fCj7c
|
||||
tYaGpjAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHSUE
|
||||
FjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwIgYDVR0gBBswGTANBgsrBgEEAbIxAQIC
|
||||
TjAIBgZngQwBAgEwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC51c2VydHJ1
|
||||
c3QuY29tL1VTRVJUcnVzdFJTQUNlcnRpZmljYXRpb25BdXRob3JpdHkuY3JsMHYG
|
||||
CCsGAQUFBwEBBGowaDA/BggrBgEFBQcwAoYzaHR0cDovL2NydC51c2VydHJ1c3Qu
|
||||
Y29tL1VTRVJUcnVzdFJTQUFkZFRydXN0Q0EuY3J0MCUGCCsGAQUFBzABhhlodHRw
|
||||
Oi8vb2NzcC51c2VydHJ1c3QuY29tMA0GCSqGSIb3DQEBDAUAA4ICAQAVDwoIzQDV
|
||||
ercT0eYqZjBNJ8VNWwVFlQOtZERqn5iWnEVaLZZdzxlbvz2Fx0ExUNuUEgYkIVM4
|
||||
YocKkCQ7hO5noicoq/DrEYH5IuNcuW1I8JJZ9DLuB1fYvIHlZ2JG46iNbVKA3ygA
|
||||
Ez86RvDQlt2C494qqPVItRjrz9YlJEGT0DrttyApq0YLFDzf+Z1pkMhh7c+7fXeJ
|
||||
qmIhfJpduKc8HEQkYQQShen426S3H0JrIAbKcBCiyYFuOhfyvuwVCFDfFvrjADjd
|
||||
4jX1uQXd161IyFRbm89s2Oj5oU1wDYz5sx+hoCuh6lSs+/uPuWomIq3y1GDFNafW
|
||||
+LsHBU16lQo5Q2yh25laQsKRgyPmMpHJ98edm6y2sHUabASmRHxvGiuwwE25aDU0
|
||||
2SAeepyImJ2CzB80YG7WxlynHqNhpE7xfC7PzQlLgmfEHdU+tHFeQazRQnrFkW2W
|
||||
kqRGIq7cKRnyypvjPMkjeiV9lRdAM9fSJvsB3svUuu1coIG1xxI1yegoGM4r5QP4
|
||||
RGIVvYaiI76C0djoSbQ/dkIUUXQuB8AL5jyH34g3BZaaXyvpmnV4ilppMXVAnAYG
|
||||
ON51WhJ6W0xNdNJwzYASZYH+tmCWI+N60Gv2NNMGHwMZ7e9bXgzUCZH5FaBFDGR5
|
||||
S9VWqHB73Q+OyIVvIbKYcSc2w/aSuFKGSA==
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB
|
||||
iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
|
||||
cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
|
||||
BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw
|
||||
MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV
|
||||
BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
|
||||
aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy
|
||||
dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
|
||||
AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B
|
||||
3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY
|
||||
tJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/
|
||||
Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2
|
||||
VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT
|
||||
79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6
|
||||
c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT
|
||||
Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l
|
||||
c6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee
|
||||
UB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE
|
||||
Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd
|
||||
BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G
|
||||
A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF
|
||||
Up/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO
|
||||
VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3
|
||||
ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs
|
||||
8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR
|
||||
iQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze
|
||||
Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ
|
||||
XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/
|
||||
qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB
|
||||
VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB
|
||||
L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG
|
||||
jjxDah2nGN59PRbxYvnKkKj9
|
||||
-----END CERTIFICATE-----
|
||||
@ -1,113 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIG7zCCBNegAwIBAgIQX5oO6r1lg7MfeJb1v5aSwDANBgkqhkiG9w0BAQwFADBL
|
||||
MQswCQYDVQQGEwJBVDEQMA4GA1UEChMHWmVyb1NTTDEqMCgGA1UEAxMhWmVyb1NT
|
||||
TCBSU0EgRG9tYWluIFNlY3VyZSBTaXRlIENBMB4XDTIzMDkyOTAwMDAwMFoXDTI0
|
||||
MDkyODIzNTk1OVowGTEXMBUGA1UEAwwOKi55b21hYmFuay5uZXQwggEiMA0GCSqG
|
||||
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCAqUfzHF/N4m3xxNr/noBpg9s8edFWghYn
|
||||
sYEAOQmMD1tVsjFavds9eAO5JBhL2+yQ8dxd5P5yqAHuQmEcBpw0YdPEAsKJbrqG
|
||||
4VXU40q1DbQipnHiTrQx0RG5aRFsP6OTrRU0MnQMaFGTSgMKYKg0YM24si/JyyiX
|
||||
eJXpEIXzt10NWpQfJ7T3RrzkkEHsfPzYmiBecUVmCu2Mb0/jym+Hr5eBvEf/mmhR
|
||||
re/0hofitx9OTwmZt85uPVwpP6miOLpby+/46v7k8PSZ7qJhCv34AnnldY3uA+Ws
|
||||
ld+Ria5Kpt6dHiBPzer/8HNd2Xkdpo2Ny3jq8N9vo0UJ2H7rWgy7AgMBAAGjggL/
|
||||
MIIC+zAfBgNVHSMEGDAWgBTI2XhootkZaNU9ct5fCj7ctYaGpjAdBgNVHQ4EFgQU
|
||||
Iu3iisKOIvooYnMumJGFqW4LTEkwDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQC
|
||||
MAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMEkGA1UdIARCMEAwNAYL
|
||||
KwYBBAGyMQECAk4wJTAjBggrBgEFBQcCARYXaHR0cHM6Ly9zZWN0aWdvLmNvbS9D
|
||||
UFMwCAYGZ4EMAQIBMIGIBggrBgEFBQcBAQR8MHowSwYIKwYBBQUHMAKGP2h0dHA6
|
||||
Ly96ZXJvc3NsLmNydC5zZWN0aWdvLmNvbS9aZXJvU1NMUlNBRG9tYWluU2VjdXJl
|
||||
U2l0ZUNBLmNydDArBggrBgEFBQcwAYYfaHR0cDovL3plcm9zc2wub2NzcC5zZWN0
|
||||
aWdvLmNvbTAnBgNVHREEIDAegg4qLnlvbWFiYW5rLm5ldIIMeW9tYWJhbmsubmV0
|
||||
MIIBewYKKwYBBAHWeQIEAgSCAWsEggFnAWUAdQB2/4g/Crb7lVHCYcz1h7o0tKTN
|
||||
uyncaEIKn+ZnTFo6dAAAAYrfFnGoAAAEAwBGMEQCID23iGjCqSL5njxZ4dhGR6xC
|
||||
lr6Wrn//LYaRhG3luDIHAiBLPvTSOFO9fz8LpL/QZ+49xE5WbvFYBPW6pVcXYvqA
|
||||
/gB2ANq2v2s/tbYin5vCu1xr6HCRcWy7UYSFNL2kPTBI1/urAAABit8WcgQAAAQD
|
||||
AEcwRQIgANdbNT0g+H+IUw2MxicwxabC/rsHw9/QwF6KRQW1bKMCIQCHPlGpPhow
|
||||
CiXAGeBXMt/of2hI0ePkT+2Wq70vzYLa+QB0AO7N0GTV2xrOxVy3nbTNE6Iyh0Z8
|
||||
vOzew1FIWUZxH7WbAAABit8WcdcAAAQDAEUwQwIfQypm/cC8h3QPtMaBJC5m72O0
|
||||
rY6wDYEhQQQ2vlcehQIgV4tV4sv8dlrkMjMVXDhKAutb9neYewzaYKYgOAD95C8w
|
||||
DQYJKoZIhvcNAQEMBQADggIBAAhDQXNDUdbWDhRVIeFnJuueUrpq6IbG3S+l8tt4
|
||||
qxUEa3xqhUsujry4yNrJvY+rCSjS6QxHytctmLVaFwvKgELNUXqPtEBTYIw/O/v/
|
||||
+RZnLF2wG4rdD7BzhyBGQZsbcY1nxJlJ1BB8m0+b8aNQesL731ARbn1Tf9Tl46jZ
|
||||
C9pDE5+KbJHJRy9yE/cyik+W9ndUBgEHRDwtZaMsQVHTstg2pBg2Sw9XvDraYMQI
|
||||
Qhr2R9hjMHJaZd9pnjXfDkvA2MZvhjGEEHOvPv0k/r+vf4p2eiHhzYZ0Bv0atMVe
|
||||
RG1sFV7jPvgsi/XhWQgAPUPk8nh/zyImgzVfoiHi4hZkGE2Kv0Gri+lxGyFzZ3rk
|
||||
SNkcgMRFYoLI993ypLNIkcWTs8k4w5RjbQXYml7lEZHS1GjBcc4yaxX25Viyto74
|
||||
vVwSjoKj/PrtT6gVOcub1HrXEaWauJgPaeHNcyT7ZpQ0s3PlnLjrLe5YSrlX1Aji
|
||||
acMq7vQKtGG/6NSShCyIcKAQrFy90tmBV7qs8dwuPh/sUeBPT0fkFQQ50GIswMZU
|
||||
10f/D0GAxEJtdFdp8zHdYmuz0CfTTao6EOKsszQVdde1GRlo4bWNifjtQPpulhai
|
||||
dVmhitRmgLHWz2dIgD0kxM5elRsL1U35bumg9ldSacBCthJYvzeHZkPsa7+g2xZD
|
||||
Mrq3
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIG1TCCBL2gAwIBAgIQbFWr29AHksedBwzYEZ7WvzANBgkqhkiG9w0BAQwFADCB
|
||||
iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
|
||||
cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
|
||||
BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMjAw
|
||||
MTMwMDAwMDAwWhcNMzAwMTI5MjM1OTU5WjBLMQswCQYDVQQGEwJBVDEQMA4GA1UE
|
||||
ChMHWmVyb1NTTDEqMCgGA1UEAxMhWmVyb1NTTCBSU0EgRG9tYWluIFNlY3VyZSBT
|
||||
aXRlIENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAhmlzfqO1Mdgj
|
||||
4W3dpBPTVBX1AuvcAyG1fl0dUnw/MeueCWzRWTheZ35LVo91kLI3DDVaZKW+TBAs
|
||||
JBjEbYmMwcWSTWYCg5334SF0+ctDAsFxsX+rTDh9kSrG/4mp6OShubLaEIUJiZo4
|
||||
t873TuSd0Wj5DWt3DtpAG8T35l/v+xrN8ub8PSSoX5Vkgw+jWf4KQtNvUFLDq8mF
|
||||
WhUnPL6jHAADXpvs4lTNYwOtx9yQtbpxwSt7QJY1+ICrmRJB6BuKRt/jfDJF9Jsc
|
||||
RQVlHIxQdKAJl7oaVnXgDkqtk2qddd3kCDXd74gv813G91z7CjsGyJ93oJIlNS3U
|
||||
gFbD6V54JMgZ3rSmotYbz98oZxX7MKbtCm1aJ/q+hTv2YK1yMxrnfcieKmOYBbFD
|
||||
hnW5O6RMA703dBK92j6XRN2EttLkQuujZgy+jXRKtaWMIlkNkWJmOiHmErQngHvt
|
||||
iNkIcjJumq1ddFX4iaTI40a6zgvIBtxFeDs2RfcaH73er7ctNUUqgQT5rFgJhMmF
|
||||
x76rQgB5OZUkodb5k2ex7P+Gu4J86bS15094UuYcV09hVeknmTh5Ex9CBKipLS2W
|
||||
2wKBakf+aVYnNCU6S0nASqt2xrZpGC1v7v6DhuepyyJtn3qSV2PoBiU5Sql+aARp
|
||||
wUibQMGm44gjyNDqDlVp+ShLQlUH9x8CAwEAAaOCAXUwggFxMB8GA1UdIwQYMBaA
|
||||
FFN5v1qqK0rPVIDh2JvAnfKyA2bLMB0GA1UdDgQWBBTI2XhootkZaNU9ct5fCj7c
|
||||
tYaGpjAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHSUE
|
||||
FjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwIgYDVR0gBBswGTANBgsrBgEEAbIxAQIC
|
||||
TjAIBgZngQwBAgEwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC51c2VydHJ1
|
||||
c3QuY29tL1VTRVJUcnVzdFJTQUNlcnRpZmljYXRpb25BdXRob3JpdHkuY3JsMHYG
|
||||
CCsGAQUFBwEBBGowaDA/BggrBgEFBQcwAoYzaHR0cDovL2NydC51c2VydHJ1c3Qu
|
||||
Y29tL1VTRVJUcnVzdFJTQUFkZFRydXN0Q0EuY3J0MCUGCCsGAQUFBzABhhlodHRw
|
||||
Oi8vb2NzcC51c2VydHJ1c3QuY29tMA0GCSqGSIb3DQEBDAUAA4ICAQAVDwoIzQDV
|
||||
ercT0eYqZjBNJ8VNWwVFlQOtZERqn5iWnEVaLZZdzxlbvz2Fx0ExUNuUEgYkIVM4
|
||||
YocKkCQ7hO5noicoq/DrEYH5IuNcuW1I8JJZ9DLuB1fYvIHlZ2JG46iNbVKA3ygA
|
||||
Ez86RvDQlt2C494qqPVItRjrz9YlJEGT0DrttyApq0YLFDzf+Z1pkMhh7c+7fXeJ
|
||||
qmIhfJpduKc8HEQkYQQShen426S3H0JrIAbKcBCiyYFuOhfyvuwVCFDfFvrjADjd
|
||||
4jX1uQXd161IyFRbm89s2Oj5oU1wDYz5sx+hoCuh6lSs+/uPuWomIq3y1GDFNafW
|
||||
+LsHBU16lQo5Q2yh25laQsKRgyPmMpHJ98edm6y2sHUabASmRHxvGiuwwE25aDU0
|
||||
2SAeepyImJ2CzB80YG7WxlynHqNhpE7xfC7PzQlLgmfEHdU+tHFeQazRQnrFkW2W
|
||||
kqRGIq7cKRnyypvjPMkjeiV9lRdAM9fSJvsB3svUuu1coIG1xxI1yegoGM4r5QP4
|
||||
RGIVvYaiI76C0djoSbQ/dkIUUXQuB8AL5jyH34g3BZaaXyvpmnV4ilppMXVAnAYG
|
||||
ON51WhJ6W0xNdNJwzYASZYH+tmCWI+N60Gv2NNMGHwMZ7e9bXgzUCZH5FaBFDGR5
|
||||
S9VWqHB73Q+OyIVvIbKYcSc2w/aSuFKGSA==
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB
|
||||
iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
|
||||
cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
|
||||
BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw
|
||||
MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV
|
||||
BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
|
||||
aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy
|
||||
dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
|
||||
AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B
|
||||
3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY
|
||||
tJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/
|
||||
Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2
|
||||
VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT
|
||||
79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6
|
||||
c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT
|
||||
Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l
|
||||
c6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee
|
||||
UB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE
|
||||
Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd
|
||||
BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G
|
||||
A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF
|
||||
Up/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO
|
||||
VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3
|
||||
ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs
|
||||
8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR
|
||||
iQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze
|
||||
Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ
|
||||
XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/
|
||||
qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB
|
||||
VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB
|
||||
L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG
|
||||
jjxDah2nGN59PRbxYvnKkKj9
|
||||
-----END CERTIFICATE-----
|
||||
Loading…
Reference in New Issue
Block a user