//腾付通 代付回调 public string NoticeWithTeng() { string[] paramtersKey = System.Web.HttpContext.Current.Request.Form.AllKeys; var sortedParamtersKey = from s in paramtersKey orderby s ascending select s; StringBuilder str = new StringBuilder(); str.Append("{"); foreach (string key in sortedParamtersKey) { str.AppendFormat("\"{0}\":\"{1}\",", key, System.Web.HttpContext.Current.Request.Form[key].Trim()); } if (str.Length > 0) { str.Remove(str.Length - 1, 1);//移除最后一个逗号 } str.Append("}"); //返回后日志记录 Logs.WriteLog("页面首次记录:" + str.ToString(), "d:\\Log\\Teng", "NoticeWithTeng"); lock (lockNoticeWithTeng) { string result = "fail"; respTengModel model = new respTengModel(); model.version = TQuery.GetString("version"); model.agentId = TQuery.GetString("agentId"); model.merId = TQuery.GetString("merId"); model.orderId = TQuery.GetString("orderId"); model.respCode = TQuery.GetString("respCode"); model.respMsg = TQuery.GetString("respMsg"); model.sign = TQuery.GetString("sign"); //string json = "{\"agentId\":\"A1000000009\",\"merId\":\"1000000010\",\"orderId\":\"100001261\",\"respCode\":\"00\",\"respMsg\":\"成功\",\"sign\":\"C3735B3E932CA3335ED7258E9DB21524\",\"version\":\"1.0.0\"}"; //model = JsonConvert.DeserializeObject<respTengModel>(json); bool flag = false; //返回后日志记录 Logs.WriteLog("回调参数:" + JsonConvert.SerializeObject(model), "d:\\Log\\Teng", "NoticeWithTeng"); yeepayLogParasDao.Init(Convert.ToInt32(model.orderId), JsonConvert.SerializeObject(model), 2); if (TengDepository.isSign(model)) { if (model.backState == 0)//处理成功 { result = "SUCCESS"; var yeepayLog = yeepayLogDao.Single(Convert.ToInt32(model.orderId)); var pay = payRecordDao.Single(yeepayLog.KeyId); if (pay.State == 10) { Logs.WriteLog($"重复处理:State=10,orderId:{model.orderId},返回结果:{result}", "d:\\Log\\Teng", "NoticeWithTeng"); return(result); } pay.State = 10; pay.DrawState = 10; pay.UTime = DateTime.Now; pay.HandleTime = DateTime.Now; flag = payRecordDao.Update(pay); Logs.WriteLog($"修改支付订单结果:flag={flag}", "d:\\Log\\Teng", "NoticeWithTeng"); //交易成功回调 UsersDepository.NoticeSuccess(pay.ID, pay.UserId); yeepayLogDao.UpdateState(Convert.ToInt32(model.orderId), model.respCode, model.respMsg, 10); } } else { Logs.WriteLog($"签名比对失败:sign:{model.sign}", "d:\\Log\\Teng", "NoticeWithTeng"); } Logs.WriteLog($"返回结果:{result}", "d:\\Log\\Teng", "NoticeWithTeng"); return(result); } }
//腾付通 支付回调 public string NoticePayTeng() { string[] paramtersKey = System.Web.HttpContext.Current.Request.Form.AllKeys; var sortedParamtersKey = from s in paramtersKey orderby s ascending select s; StringBuilder str = new StringBuilder(); str.Append("{"); foreach (string key in sortedParamtersKey) { str.AppendFormat("\"{0}\":\"{1}\",", key, System.Web.HttpContext.Current.Request.Form[key].Trim()); } if (str.Length > 0) { str.Remove(str.Length - 1, 1);//移除最后一个逗号 } str.Append("}"); //返回后日志记录 Logs.WriteLog("页面首次记录:" + str.ToString(), "d:\\Log\\Teng", "NoticePayTeng"); lock (lockNoticePayTeng) { string result = "fail"; respTengModel model = new respTengModel(); model.version = TQuery.GetString("version"); model.agentId = TQuery.GetString("agentId"); model.merId = TQuery.GetString("merId"); model.orderId = TQuery.GetString("orderId"); model.respCode = TQuery.GetString("respCode"); model.respMsg = TQuery.GetString("respMsg"); model.sign = TQuery.GetString("sign"); bool flag = false; //返回后日志记录 Logs.WriteLog("回调参数:" + JsonConvert.SerializeObject(model), "d:\\Log\\Teng", "NoticePayTeng"); yeepayLogParasDao.Init(Convert.ToInt32(model.orderId), JsonConvert.SerializeObject(model), 2); if (TengDepository.isSign(model)) { if (model.backState == 0)//处理成功 { result = "SUCCESS"; var yeepayLog = yeepayLogDao.Single(Convert.ToInt32(model.orderId)); var pay = payRecordDao.Single(yeepayLog.KeyId); if (pay.State == 5) { Logs.WriteLog($"重复处理:orderId:{model.orderId},返回结果:{result}", "d:\\Log\\Teng", "NoticePayTeng"); return(result); } flag = payRecordDao.UpdateState(yeepayLog.KeyId, 5, "支付成功,等待回调"); Logs.WriteLog($"修改订单状态:支付成功,等待回调,orderId:{model.orderId},flag:{flag}", "d:\\Log\\Teng", "NoticePayTeng"); yeepayLogDao.UpdateState(Convert.ToInt32(model.orderId), model.respCode, model.respMsg, 5); //发起代付申请 var ret = ITOrm.Payment.Teng.TengDepository.DebitWithdraw(yeepayLog.ID, (int)Logic.Platform.系统); Logs.WriteLog($"代付申请:json:{JsonConvert.SerializeObject(ret)}", "d:\\Log\\Teng", "NoticePayTeng"); } } else { Logs.WriteLog($"签名比对失败:sign:{model.sign},orderId:{model.orderId}", "d:\\Log\\Teng", "NoticePayTeng"); } Logs.WriteLog($"返回结果:{result}", "d:\\Log\\Teng", "NoticePayTeng"); return(result); } }