/// <summary> /// 冲正 /// </summary> /// <param name="param"></param> /// <returns></returns> public PayResultInfo CorrectAcc(CorrectParam param) { Dictionary <String, String> parameters = new Dictionary <String, String>(); parameters.Add("loginId", SysBLL.getCpuNo()); parameters.Add("correctMsg", param.correctMsg); parameters.Add("remarks", param.remarks); string jsonText = HttpHelper.getHttp(SysConfigHelper.readerNode("BusLoginName"), parameters, null); //反序列化JSON字符串,将JSON字符串转换成LIST列表 return(JsonConvert.DeserializeObject <PayResultInfo>(jsonText)); }
/// <summary> /// 冲正 /// </summary> /// <param name="param"></param> /// <returns></returns> public PayResultInfo CorrectAcc(CorrectParam param) { Dictionary <String, String> parameters = new Dictionary <String, String>(); parameters.Add("serviceType", param.serviceType); parameters.Add("tr.message_type", "3"); parameters.Add("tr.shop_type", param.shop_type); parameters.Add("tr.t_id", ConfigurationManager.AppSettings["MechineNo"]); parameters.Add("tr.data", param.data); parameters.Add("tr.cloud_no", param.cloud_no); string jsonText = HttpHelper.getHttp(SysConfigHelper.readerNode("correctName"), parameters, null); //反序列化JSON字符串,将JSON字符串转换成LIST列表 return(JsonConvert.DeserializeObject <PayResultInfo>(jsonText)); }
/// <summary> /// 支付 /// </summary> /// <param name="p"></param> /// <returns></returns> public PayResultInfo payStart(PayParam p) { //密码键盘工具类 PasswordBLL pwdBLL = new PasswordBLL(); //交易数据访问类 PayAccess payAccess = new PayAccess(); //支付结果 PayResultInfo payResultInfo = null; try { Dictionary <string, string> parameters = new Dictionary <string, string>(); //缴费类型 parameters.Add("serviceType", p.serviceType); //交易金额 parameters.Add("realAmout", p.rechageAmount); //交易类型,纸币,银行卡,万通卡 parameters.Add("tr.shop_type", isWtLkl(p.icParams)); if (PayStaticParam.payType == -1) {//电子现金支付相关参数 //获取批次号 p.batchNo = LKLProcedure.GetBatchNo(); //获取支付报文 parameters.Add("tr.data", PayBLL.PayMessage(ref p)); //批次流水号 parameters.Add("dzls", p.batchNo + p.WtLklorderNo); } //云平台交易流水号 parameters.Add("tr.cloud_no", p.orderNo); if ("4".Equals(p.serviceType)) { //万通卡支付相关参数 if (SysBLL.IsTest.Equals("正式")) { parameters.Add("terminalno", "XNJ00002"); parameters.Add("terminal", ConfigurationManager.AppSettings["MechineNo"]); } else { parameters.Add("terminalno", "UU000002"); parameters.Add("terminal", ConfigurationManager.AppSettings["MechineNo"]); } } else { parameters.Add("terminalNo", p.terminalNo); } //设置其余参数 initParam(parameters, p); //发起支付 payResultInfo = payAccess.PayResNewAcc(parameters); //纸币交易到此为止 if (PayStaticParam.payType == 0) { if ("0000".Equals(payResultInfo.code)) { //支付成功 log.Write("--------------------交易结束--------------------"); return(payResultInfo); } else { payResultInfo.code = "9999"; log.Write("--------------------交易结束--------------------"); return(payResultInfo); } } if (isNull(payResultInfo) || ("9991".Equals(payResultInfo.code))) { //冲正 CorrectParam correctParam = new CorrectParam(); //缴费类型 correctParam.serviceType = p.serviceType; //支付类型 correctParam.shop_type = isWtLkl(p.icParams); //云平台交易流水 correctParam.cloud_no = p.orderNo; for (int i = 1; i <= 3; i++) { //获取冲正报文 correctParam.data = Util.JumpUtil.CorrectJump(p); //发起冲正 PayResultInfo payResultInfoacc = payAccess.CorrectAcc(correctParam); if ("0000".Equals(payResultInfoacc.code)) { break; } } payResultInfo.code = "9991"; return(payResultInfo); } else if ("9955".Equals(payResultInfo.code)) { //密码错误 SysBLL.PasswordErrorInfo = "密码错误,请重新输入!"; log.Write("密码错误"); log.Write("--------------------交易结束--------------------"); if (p.icParams == null) { //打开键盘,同时交易页面跳转到输入密码页面,万通 pwdBLL.OpenKeyboard(SysConfigHelper.readerNode("ZT598Port"), "9600", p.WtNo); return(payResultInfo); } else { //打开键盘,同时交易页面跳转到输入密码页面,银行卡 pwdBLL.OpenKeyboard(SysConfigHelper.readerNode("ZT598Port"), "9600", p.icParams["cardNo"]); return(payResultInfo); } } else if ("9951".Equals(payResultInfo.code)) { //余额不足 log.Write("余额不足"); return(payResultInfo); } else if ("9900".Equals(payResultInfo.code)) { //发起退款 refund(ref payResultInfo, p); return(payResultInfo); } else if ("0000".Equals(payResultInfo.code)) { //支付成功 log.Write("--------------------交易结束--------------------"); //银行卡给万通卡充值成功后,测试环境下会在其他服务页面中显示银行卡退款按钮,可进行退款操作 if (SysBLL.IsTest.Equals("测试")) { if (p.serviceType.Equals("4")) { //发起退款 RefundTest refundTest = new RefundTest(); refundTest.refundPayResultInfo = payResultInfo; refundTest.refundPayParam = p; PayStaticParam.refundTest.Add(refundTest); } } return(payResultInfo); } else { return(payResultInfo); } } catch (Exception ex) { log.Write("error:99:支付失败:" + ex.Message + ex.InnerException); return(payResultInfo); } }