private TpcnThirdPayhis InitPcnThirdPayhis() { TpcnThirdPayhis payhis = new TpcnThirdPayhis(); payhis.Createtime = DateTime.Now; payhis.Paystatus = 1; payhis.Storequest = 0; payhis.Nextnotifytime = DateTime.Now; return(payhis); }
public bool ExecuteCore() { payHis = db.TpcnThirdPayhisSet.FirstOrDefault(x => x.Hisid == Hisid); if (!(Hisid > 0 && payHis != null)) { log.Info($"{nameof(Hisid)}={Hisid}:支付历史不存在"); return(false); } if (payHis.Storequest != 0) { log.Info($"{nameof(Hisid)}={Hisid}:通知已成功送达"); return(false); } partner = db.TpcnThirdPartnerSet.FirstOrDefault(x => x.Id == payHis.Partnerid); if (partner == null) { log.Info($"签名id={payHis.Partnerid}: PCN签名信息不存在"); return(false); } Dictionary <string, string> immutableMap = BuildMap(); //签名 string timestamp = DateTime.Now.ToString("yyyyMMddHHmmssffff"); immutableMap.Add("timestamp", timestamp); string Signature = Md5.SignString(partner.Accesskeyid + payHis.Orderno + timestamp + partner.Accesssecret); immutableMap.Add("signature", Signature); string queryString = ConcatQueryString(immutableMap); log.Info("req-url=" + payHis.Notifyurl); log.Info("req-cnt=" + queryString); string result = Try(PostReqeust, payHis.Notifyurl, queryString); log.Info("post的结果" + result); if ("OK".Equals(result, StringComparison.OrdinalIgnoreCase)) { payHis.Storequest = 2; payHis.Notifyfailnumber += 1; } else { payHis.Notifyfailnumber += 1; payHis.Nextnotifytime = DateTime.Now.AddSeconds(GetNextnotifytime(payHis.Notifyfailnumber)); } if (db.SaveChanges() <= 0) { return(false); } return(true); }
/// <summary> /// /// </summary> public void Execute() { string guidStr = Guid.NewGuid().ToString(); log.Info($"开始调用通知{guidStr}"); if (Try(ExecuteCore)) { log.Info($"调用通知成功-结束{guidStr}"); } else { log.Info($"调用通知失败-结束{guidStr}"); } Hisid = 0; payHis = null; }
/// <summary> /// /// </summary> /// <param name="payHis"></param> public void Execute(TpcnThirdPayhis payHis) { this.payHis = payHis; Execute(); }
/// <summary> /// /// </summary> /// <param name="payHis"></param> public NoticeService(TpcnThirdPayhis payHis) { this.payHis = payHis; }