5th fix for see phone
This commit is contained in:
parent
4aab58d0bf
commit
538ae41938
@ -197,6 +197,17 @@ public class EmvTransactionFragment extends DataBindingFragment {
|
||||
break;
|
||||
case READ_CARD:
|
||||
|
||||
isCardInserted(new CardDetectCallback() {
|
||||
@Override
|
||||
public void onComplete() {
|
||||
sharedViewModel.setIsFallback(true);
|
||||
navigateToCheckCard();
|
||||
}
|
||||
});
|
||||
|
||||
break;
|
||||
|
||||
case SEE_PHONE:
|
||||
isCardTaped("Please check your phone!",new CardDetectCallback() {
|
||||
@Override
|
||||
public void onComplete() {
|
||||
@ -204,7 +215,10 @@ public class EmvTransactionFragment extends DataBindingFragment {
|
||||
navigateToCheckCard();
|
||||
}
|
||||
});
|
||||
|
||||
break;
|
||||
case OTHER_INTERFACE:
|
||||
sharedViewModel.set_errorFragmentMsg("Please use other interface!");
|
||||
navigateToError();
|
||||
break;
|
||||
case PIN_PAD_CANCEL:
|
||||
navigateToMain();
|
||||
|
||||
@ -176,9 +176,16 @@ public class EmvTransactionProcessViewModel extends EmvBaseViewModel implements
|
||||
case EMV_SUCCESS_OFFLINE:
|
||||
transResult.postValue(TransResultStatus.OFFLINE_SUCCESS);
|
||||
break;
|
||||
|
||||
case EMV_FAILURE_OFFLINE:
|
||||
transResult.postValue(TransResultStatus.OFFLINE_FAILURE);
|
||||
break;
|
||||
case EMV_SEE_PHONE:
|
||||
emvResultStatus.postValue(EmvResultStatus.SEE_PHONE);
|
||||
break;
|
||||
case EMV_OTHER_INTERFACE:
|
||||
emvResultStatus.postValue(EmvResultStatus.OTHER_INTERFACE);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
@ -204,12 +211,13 @@ public class EmvTransactionProcessViewModel extends EmvBaseViewModel implements
|
||||
} else if (mProcessStep == EMV_CONFIRM_CARD_NO) {
|
||||
emvHandler.onSetConfirmCardNoResponse(false);
|
||||
} else if (mProcessStep == EMV_CERT_VERIFY) {
|
||||
// importCertStatus(1);
|
||||
// importCertStatus(1);
|
||||
} else if (mProcessStep == PIN_ERROR) {
|
||||
emvHandler.onSetPinInputResponse(false, false);
|
||||
} else if (mProcessStep == EMV_ONLINE_PROCESS) {
|
||||
importOnlineProcess(SdkResult.Success, new EmvOnlineResultEntity());
|
||||
} else if (mProcessStep == EMV_SIGNATURE) {
|
||||
// emvHandler.
|
||||
// importSignatureStatus(1);
|
||||
} else if (mProcessStep == EMV_SHOW_PIN_PAD) {
|
||||
emvHandler.onSetPinInputResponse(false, false);
|
||||
|
||||
@ -28,5 +28,7 @@ public enum EmvResultStatus {
|
||||
OFFLINE_DECLINE,
|
||||
|
||||
CONFIRM_CODE_VERIFY,
|
||||
MPU_CARD
|
||||
MPU_CARD,
|
||||
SEE_PHONE,
|
||||
OTHER_INTERFACE
|
||||
}
|
||||
|
||||
@ -66,6 +66,7 @@ import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
@ -157,6 +158,8 @@ public abstract class EmvBaseViewModel extends BaseViewModel {
|
||||
protected static final int EMV_FAILURE_ONLINE = 16;
|
||||
protected static final int EMV_SUCCESS_OFFLINE = 17;
|
||||
protected static final int EMV_FAILURE_OFFLINE = 18;
|
||||
protected static final int EMV_SEE_PHONE = 19;
|
||||
protected static final int EMV_OTHER_INTERFACE = 22;
|
||||
protected static final int EMV_TRANS_FAIL = 999;
|
||||
protected static final int REMOVE_CARD = 1000;
|
||||
private String oldPin = "";
|
||||
@ -638,6 +641,7 @@ public abstract class EmvBaseViewModel extends BaseViewModel {
|
||||
mProcessStep = EMV_APP_SELECT;
|
||||
LogUtil.d(TAG, "onWaitAppSelect :");
|
||||
String[] candidateNames = getCandidateNames(list);
|
||||
LogUtil.d(TAG, "onWaitAppSelect :" + Arrays.toString(candidateNames));
|
||||
mHandler.obtainMessage(EMV_APP_SELECT, candidateNames).sendToTarget();
|
||||
}
|
||||
|
||||
@ -709,6 +713,7 @@ public abstract class EmvBaseViewModel extends BaseViewModel {
|
||||
public void onContactlessTapCardAgain() {
|
||||
LogUtil.d(TAG, "onReadCardAgain");
|
||||
|
||||
emvHandler.onSetContactlessTapCardResponse(true);
|
||||
mHandler.sendEmptyMessage(EMV_TRY_AGAIN);
|
||||
//this method only used for EMV contactless card if the host response the script. Such as paywave , AMEX...
|
||||
|
||||
@ -788,7 +793,6 @@ public abstract class EmvBaseViewModel extends BaseViewModel {
|
||||
switch (retCode) {
|
||||
case SdkResult.Emv_Success_Arpc_Fail:
|
||||
case SdkResult.Success:
|
||||
case SdkResult.Emv_Declined:
|
||||
case SdkResult.Emv_Script_Fail:
|
||||
mHandler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
@ -815,22 +819,24 @@ public abstract class EmvBaseViewModel extends BaseViewModel {
|
||||
|
||||
case SdkResult.Emv_Candidatelist_Empty:// Application have no aid list
|
||||
case SdkResult.Emv_FallBack:// FallBack ,chip card reset failed
|
||||
//fallback process
|
||||
emvResultStatus.postValue(EmvResultStatus.READ_CARD_RETRY);
|
||||
break;
|
||||
|
||||
// case SdkResult.Emv_Arpc_Fail: //
|
||||
case SdkResult.Emv_Declined:
|
||||
case SdkResult.Emv_Arpc_Fail: //
|
||||
//// case SdkResult.Emv_Declined:
|
||||
// //online decline ,if it is in second gac, application should decide if it is need reversal the transaction
|
||||
// break;
|
||||
break;
|
||||
//
|
||||
// case SdkResult.Emv_Cancel:// Transaction Cancel
|
||||
case SdkResult.Emv_Cancel:// Transaction Cancel
|
||||
// //user cancel
|
||||
// break;
|
||||
mHandler.obtainMessage(EMV_ERROR, retCode, retCode, "Canceled").sendToTarget();
|
||||
break;
|
||||
//
|
||||
//// case SdkResult.Emv_Offline_Declined: //
|
||||
//// //offline decline
|
||||
//// offlineDenial();
|
||||
//// break;
|
||||
// case SdkResult.Emv_Offline_Declined: //
|
||||
// //offline decline
|
||||
// offlineDenial();
|
||||
// break;
|
||||
//
|
||||
// case SdkResult.Emv_Card_Block: //Card Block
|
||||
// //card is blocked
|
||||
@ -849,11 +855,12 @@ public abstract class EmvBaseViewModel extends BaseViewModel {
|
||||
// break;
|
||||
|
||||
case SdkResult.Emv_Other_Interface:
|
||||
emvResultStatus.postValue(EmvResultStatus.READ_CARD_NO_APP);
|
||||
mHandler.sendEmptyMessage(EMV_OTHER_INTERFACE);
|
||||
|
||||
break;
|
||||
|
||||
case SdkResult.Emv_Plz_See_Phone:
|
||||
mHandler.sendEmptyMessage(EMV_TRY_AGAIN);
|
||||
mHandler.sendEmptyMessage(EMV_SEE_PHONE);
|
||||
//see phone flow
|
||||
//prompt a dialog to user to check phone-->search contactless card(another card) -->start new emvProcess again
|
||||
break;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user