/// <summary> /// 结账 /// </summary> /// <param name="msg"></param> /// <returns></returns> private void Settle() { if (MessageBox.Show("结账将发送未上传流水,银联流水结算清空,确认要进行结账?", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) != DialogResult.OK) { return; } string msg; string ReturnMsg = string.Empty; ShowWait("正在结算...请稍候"); if (!SalSalePayDAL.GetSalSalePay(out PubGlobal.Cur_tSalSalePayList, out msg)) { MessageBox.Show("获取流水失败:" + msg); } else { if (PubGlobal.Cur_tSalSalePayList.Count > 0 && !Comm.Comm.RecvPay(PubGlobal.OrgCode, PubGlobal.User.UserCode, PubGlobal.User.Password, PubGlobal.Cur_tSalSalePayList, "1", ref ReturnMsg, out msg)) { MessageBox.Show(msg); } PubGlobal.Cur_tSalSalePayList.Clear(); } if (!cEmvpbocBank.Action(Devices.CEmvpboc.ActionType.结算, out msg)) { MessageBox.Show("银行结算失败:" + msg); } if (!cEmvpbocVip.Action(Devices.CEmvpboc.ActionType.结算, out msg)) { MessageBox.Show("储值卡结算失败:" + msg); } HideWait(); }
/// <summary> /// 支付 /// </summary> /// <param name="payLst"></param> /// <param name="SendStatus">发送状态:0-正常发送,1-结算发送</param> /// <param name="msg"></param> /// <param name="UserCode"></param> /// <param name="Password"></param> public static bool RecvPay(string OrgCode, string UserCode, string Password, List <TSalSalePay> payLst, string SendStatus, ref string ReturnMsg, out string msg) { string sJson = CodeBetter.Json.Converter.Serialize(payLst); try { if (!RecvMessageObj <string>(RecvSalePayClass.RecvSalePayFunc(sJson, SendStatus, UserCode, Password), ref ReturnMsg, out msg)) { if (SendStatus == "0") { throw new Exception(ReturnMsg); } else { if (!SalSalePayDAL.RemoveSalSalePay(out msg)) { msg = "删除本地流水失败:" + msg; } } return(false); } else { return(true); } } catch (Exception ex) { //保存失败流水到本地数据库 if (SendStatus == "0" && !SalSalePayDAL.AddSalSalePay(PubGlobal.Cur_tSalSalePayList, out msg)) { msg = "发送流水失败:" + ex.Message + "\r\n保存数据至本地失败:" + msg; } else { msg = "发送流水失败:" + ex.Message + "\r\n已将流水存在本地数据库。当日结算时将再次发送。"; } return(false); } }