Exemple #1
0
        //腾付通  代付回调
        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);
            }
        }
Exemple #2
0
        //腾付通  支付回调
        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);
            }
        }