private void PayProcess() { CCreditcardPay pay = new CCreditcardPay(); TransResult result = SyncTransaction(pay); CReverse_YAPaymentPay rev = new CReverse_YAPaymentPay(pay); if (result == TransResult.E_SUCC) { if (bisICCard) { int state = emv.EMVTransEnd(entity.RecvField55, entity.RecvField38); if (state != 0) { rev.Reason = "06"; SyncTransaction(rev); ShowMessageAndGotoMain("IC确认错误,交易失败,请重试"); return; } } if (ReceiptPrinter.ExistError()) { StartActivity("信用卡还款打印成功"); } else { StartActivity("信用卡还款交易成功"); } } else if (result == TransResult.E_HOST_FAIL) { if (pay.ReturnCode == "51") { ShowMessageAndGotoMain("温馨提示:抱歉!交易失败!" + "\n" + "您卡内余额不足!"); } else if (pay.ReturnCode == "55") { StartActivity("信用卡还款密码错误"); } else { ShowMessageAndGotoMain(pay.ReturnCode + "-" + pay.ReturnMessage); } } else if (result == TransResult.E_RECV_FAIL) { rev.Reason = "98"; SyncTransaction(rev); ShowMessageAndGotoMain("交易超时,请重试"); return; } else if (result == TransResult.E_CHECK_FAIL) { rev.Reason = "96"; SyncTransaction(rev); ShowMessageAndGotoMain("系统异常,请稍后再试"); return; } else { ShowMessageAndGotoMain("交易失败,请重试"); } rev.ClearReverseFile();//在不发冲正文件的情况下,才清除冲正文件 }
private void PayProcess() { TransAccessFactory db = new TransAccessFactory(); int nTryConfirm = 3; CPetroPayBeingPay PetroPayBeingPay = new CPetroPayBeingPay(); TransResult retPay = SyncTransaction(PetroPayBeingPay); CReverse_YAPaymentPay rev = new CReverse_YAPaymentPay(PetroPayBeingPay); if (retPay == TransResult.E_SUCC) { if (bisICCard) { int state = emv.EMVTransEnd(YAPaymentPay.RecvField55, YAPaymentPay.RecvField38); if (state != 0) { rev.Reason = "06"; SyncTransaction(rev); ShowMessageAndGotoMain("IC确认错误,交易失败,请重试"); return; } } if (GlobalAppData.GetInstance().AccessSwitch) { db.PayTraceNo = YAPaymentPay.PayTraceNo; ResponseData rd = new YAPaymentPay().GetResponseData(); db.InsertTransLog(rd); } CONFIRM: //缴费成功,发起确认销账 CPetroPayBillConfirm billConfirm = new CPetroPayBillConfirm(); TransResult retConfirm = SyncTransaction(billConfirm); //Test //retConfirm = TransResult.E_RECV_FAIL; //PetroChinaPay.PayTraceNo = "111111"; //PetroChinaPay.PayReferenceNo = "123456789012345678"; if (retConfirm != TransResult.E_SUCC && retConfirm != TransResult.E_RECV_FAIL) { if (GlobalAppData.GetInstance().AccessSwitch) { db.UpdateTransLog(EnumConfirmFlag.E_REVERSE); } //失败但不超时才发冲正 if (bisICCard) { rev.SetField55Value(emv.EMVInfo.EndField55, emv.EMVInfo.EndField55.Length);//处理之后的55域 } rev.Reason = "06"; SyncTransaction(rev); ShowMessageAndGotoMain("交易超时,请重试"); return; } else if (retConfirm == TransResult.E_RECV_FAIL) { //超时无响应循环发送确认报文 if (nTryConfirm != 0) { nTryConfirm--; goto CONFIRM; } //销账失败 //操作成功,后台发生异常,核销失败,请不要继续缴费, //等待系统自动处理。次日下午4:00以后再行查看缴费情况 Log.Warn("银行卡扣款成功,但销账失败,需人工处理CardNo=" + CommonData.BankCardNum + " 凭证号=" + YAPaymentPay.PayTraceNo + " 系统参考号=" + YAPaymentPay.PayReferenceNo); rev.ClearReverseFile();//清除冲正文件 StartActivity("中石油支付销账失败"); //string failPath = Path.Combine(Application.StartupPath, "PetroConfirmFailInfo.dat"); //ConfirmFailInfo info = new ConfirmFailInfo(); //info.BankCardNo = CommonData.BankCardNum; //info.PayTraceNo = PetroChinaPay.PayTraceNo; //info.PayReferenceNo = PetroChinaPay.PayReferenceNo; //List<ConfirmFailInfo> list = new List<ConfirmFailInfo>(); //list.Add(info); //Utility.SaveToFile<ConfirmFailInfo>(failPath, list); } else { if (GlobalAppData.GetInstance().AccessSwitch) { db.UpdateTransLog(EnumConfirmFlag.E_SUCC); } rev.ClearReverseFile();//清除冲正文件 if (ReceiptPrinter.ExistError()) { StartActivity("中石油支付交易完成"); } else { StartActivity("中石油支付交易成功是否打印"); } } } else if (retPay == TransResult.E_HOST_FAIL) { if (PetroPayBeingPay.ReturnCode == "51") { ShowMessageAndGotoMain("温馨提示:抱歉!交易失败!" + "\n" + "您卡内余额不足!"); } else if (PetroPayBeingPay.ReturnCode == "55") { StartActivity("中石油支付密码错误"); } else { ShowMessageAndGotoMain(PetroPayBeingPay.ReturnCode + "-" + PetroPayBeingPay.ReturnMessage); } } else if (retPay == TransResult.E_RECV_FAIL) { rev.Reason = "98"; SyncTransaction(rev); ShowMessageAndGotoMain("交易超时,请重试"); return; } else { ShowMessageAndGotoMain("交易失败,请重试"); } rev.ClearReverseFile();//在不发冲正文件的情况下,才清除冲正文件 }
private void PayProcess() { CMobileRecharge mobileRecharge = new CMobileRecharge(); TransResult retPay = SyncTransaction(mobileRecharge); CReverse_YAPaymentPay rev = new CReverse_YAPaymentPay(mobileRecharge); //Test //retPay = TransResult.E_RECV_FAIL; if (retPay == TransResult.E_SUCC) { if (bisICCard) { int state = emv.EMVTransEnd(entity.RecvField55, entity.RecvField38); if (state != 0) { rev.Reason = "06"; SyncTransaction(rev); ShowMessageAndGotoMain("IC确认错误,交易失败,请重试"); return; } } rev.ClearReverseFile();//有做冲正直接return,否则最后要清除冲正文件 if (ReceiptPrinter.ExistError()) { StartActivity("手机充值打印成功"); } else { StartActivity("手机充值交易成功"); } #region no use //缴费成功,发起确认交易 //CMobileConfirm mobileConfirm = new CMobileConfirm(); //TransResult retConfirm = SyncTransaction(mobileConfirm); //if (retConfirm == TransResult.E_SUCC) //{ //} //else if (retConfirm == TransResult.E_HOST_FAIL) //{ // if (mobileConfirm.ReturnCode.ToUpper() == "ET") // { // //冲正 // CReverse_QMPay rev = new CReverse_QMPay(mobileRecharge); // rev.Reason = "06"; // SyncTransaction(rev); // ShowMessageAndGotoMain("交易失败"); // } // else // { // ShowPringPage(); // } //} //else if (retConfirm == TransResult.E_RECV_FAIL) //{ // //检查查询交易返回结果 // CMobileQuery mobileQuery = new CMobileQuery(); // TransResult retQuery = TransResult.E_SUCC; // for (int iPer = 0; iPer < 3; iPer++) // { // retQuery = SyncTransaction(mobileQuery); // if (retQuery == TransResult.E_SUCC) // { // break; // } // else if (retQuery == TransResult.E_HOST_FAIL) // { // if (mobileQuery.ReturnCode.ToUpper() == "ET") // { // //冲正 // CReverse_QMPay rev = new CReverse_QMPay(mobileRecharge); // rev.Reason = "06"; // SyncTransaction(rev); // } // break; // } // else if (retQuery != TransResult.E_RECV_FAIL) // { // break; // } // } // if (retQuery == TransResult.E_SUCC) // { // ShowPringPage(); // } // else if (retQuery == TransResult.E_HOST_FAIL) // { // if (mobileQuery.ReturnCode.ToUpper() == "ET") // { // ShowMessageAndGotoMain("交易失败"); // } // else // { // ShowPringPage(); // } // } // else //查询交易其他情况 // { // ShowPringPage(); // } //} //else //确认交易其他情况 //{ // ShowPringPage(); //} #endregion } else if (retPay == TransResult.E_HOST_FAIL) { if (mobileRecharge.ReturnCode == "51") { ShowMessageAndGotoMain("温馨提示:抱歉!交易失败!" + "\n" + "您卡内余额不足!"); } else if (mobileRecharge.ReturnCode == "55") { StartActivity("手机充值密码错误"); } else { ShowMessageAndGotoMain(mobileRecharge.ReturnCode + "-" + mobileRecharge.ReturnMessage); } } else if (retPay == TransResult.E_RECV_FAIL) { rev.Reason = "98"; SyncTransaction(rev); ShowMessageAndGotoMain("交易失败"); return; } else if (retPay == TransResult.E_CHECK_FAIL) { rev.Reason = "96"; SyncTransaction(rev); ShowMessageAndGotoMain("系统异常,请稍后再试"); return; } else { ShowMessageAndGotoMain("交易失败"); } rev.ClearReverseFile();//有做冲正直接return,否则最后要清除冲正文件 }
private void PayProcess() { int nTryConfirm = 3; CYATrafficPoliceBeingPay beingPay = new CYATrafficPoliceBeingPay(); TransResult retPay = SyncTransaction(beingPay); CReverse_YAPaymentPay rev = new CReverse_YAPaymentPay(beingPay); //Test //retPay = TransResult.E_RECV_FAIL; if (retPay == TransResult.E_SUCC) { if (bisICCard) { int state = emv.EMVTransEnd(m_entity.RecvField55, m_entity.RecvField38); if (state != 0) { rev.Reason = "06"; SyncTransaction(rev); ShowMessageAndGotoMain("IC确认错误,交易失败,请重试"); return; } } rev.ClearReverseFile();//缴费成功之后进入销账流程,不在发冲正报文,清除冲正文件 CONFIRM: //缴费成功,发起确认销账 CYATrafficPoliceBillConfirm billConfirm = new CYATrafficPoliceBillConfirm(); TransResult retConfirm = SyncTransaction(billConfirm); //Test //TransResult retConfirm = TransResult.E_RECV_FAIL; if (retConfirm != TransResult.E_SUCC) { //超时无响应循环发送确认报文 if (nTryConfirm != 0 && (retConfirm == TransResult.E_RECV_FAIL || billConfirm.ReturnCode == "E1")) { nTryConfirm--; goto CONFIRM; } //销账失败 //缴费确认未成功,48小时内系统会自动处理,请耐心等待,不要重复缴费 string temp0 = "银行卡扣款成功,但销账失败,需要手动销账CardNo={0},凭证号={1},系统参考号={2},缴费流水号={3}"; string temp = string.Format(temp0, CommonData.BankCardNum, m_entity.PayTraceNo, m_entity.PayReferenceNo, m_entity.TPPayFlowNo); Log.Warn(temp); StartActivity("雅安交警罚没销账失败"); } else { string temp = string.Format("销账成功,决定书编号:{0},销账流水:{1},缴纳金额:{2}", m_entity.TPDecisionNo, m_entity.TPConfirmTraceNo, CommonData.Amount.ToString("#######0.00")); Log.Info(temp); if (ReceiptPrinter.ExistError()) { StartActivity("雅安交警罚没交易完成"); } else { StartActivity("雅安交警罚没交易成功是否打印"); } } } else if (retPay == TransResult.E_HOST_FAIL) { if (beingPay.ReturnCode == "51") { ShowMessageAndGotoMain("温馨提示:抱歉!交易失败!" + "\n" + "您卡内余额不足!"); } else if (beingPay.ReturnCode == "55") { StartActivity("雅安支付密码错误"); } else { ShowMessageAndGotoMain(beingPay.ReturnCode + "-" + beingPay.ReturnMessage); } } else if (retPay == TransResult.E_RECV_FAIL) { rev.Reason = "98"; SyncTransaction(rev); ShowMessageAndGotoMain("交易超时,请重试"); return; } else if (retPay == TransResult.E_UNPACKET_FAIL) { rev.Reason = "96"; SyncTransaction(rev); ShowMessageAndGotoMain("系统异常,请稍后再试"); return; } else { ShowMessageAndGotoMain("交易失败,请重试"); } rev.ClearReverseFile();//在不发冲正文件的情况下,才清除冲正文件 }