public static bool Post(string url, string data, out string msg) { try { TxtLoger.SavaLogToTXT("url为:" + url + ", data为:" + data, "a"); WebRequest request = WebRequest.Create(url); WebResponse response; request.Method = "POST"; byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(data); TxtLoger.SavaLogToTXT("byteArray的长度为:" + byteArray.Length, "a"); request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = byteArray.Length; Stream dataStream = request.GetRequestStream(); dataStream.Write(byteArray, 0, byteArray.Length); dataStream.Close(); response = request.GetResponse(); dataStream = response.GetResponseStream(); StreamReader reader = new StreamReader(dataStream, Encoding.UTF8); string responseForm = reader.ReadToEnd(); reader.Close(); dataStream.Close(); response.Close(); msg = responseForm; TxtLoger.SavaLogToTXT("成功发送 ,msg 为:" + msg, "a"); return(true); } catch (Exception ex) { msg = ex.Message; TxtLoger.SavaLogToTXT("post 数据发生异常 详细信息为:" + ex.Message, "a"); return(false); } }
private int UpdateTaskModel(PayStatusNotifyTask paynotify) { var res = new ServiceResult("更新支付通知任务表失败!"); try { StringBuilder sb = new StringBuilder(); sb.Append("update PayStatusNotifyTask set "); if (paynotify.TaskStatus != null) { sb.Append(" TaskStatus=@TaskStatus "); } sb.Append(",TaskNum=@TaskNum"); sb.Append(" where TaskID=@TaskID"); System.Data.SqlClient.SqlParameter[] parm = { new System.Data.SqlClient.SqlParameter("@TaskStatus", paynotify.TaskStatus), new System.Data.SqlClient.SqlParameter("@TaskNum", paynotify.TaskNum), new System.Data.SqlClient.SqlParameter("@TaskID", paynotify.TaskID) }; return(QueryService.Platform.ExecuteSqlCommand(sb.ToString(), parm)); } catch (Exception ex) { TxtLoger.SavaLogToTXT("更新支付通知任务表失败:机构号为:" + paynotify.SourceID + ",update异常详情:" + ex.Message, "a"); res.IsError(ex); } return(0); }
/// <param name="httpMessage">out msg</param> /// <param name="sourceId">机构号</param> private bool VerifyCode(string httpMessage, string sourceId) { var res = new ServiceResult(); try { NoticeResponse1006 respose = JsonUtils.Deserialize <NoticeResponse1006>(httpMessage); if (respose.Code == "100") { TxtLoger.SavaLogToTXT("推送成功!机构号为:" + sourceId + ",响应状态为:" + Enum.GetName(typeof(EnumPlatform.EResponseCode), respose.Code), "a"); return(true); } else { TxtLoger.SavaLogToTXT("推送失败!机构号为:" + sourceId + ",响应状态为:" + Enum.GetName(typeof(EnumPlatform.EResponseCode), respose.Code), "a"); res.IsFailure("推送失败!机构号为:" + sourceId + ",响应状态为:" + Enum.GetName(typeof(EnumPlatform.EResponseCode), respose.Code)); return(false); } } catch (Exception ex) { TxtLoger.SavaLogToTXT("推送支付通知接受响应码异常:机构号为:" + sourceId + ",响应异常详情:" + ex.Message, "a"); res.IsError(ex, "推送支付通知接受响应码异常:机构号为:" + sourceId + ",响应异常详情:" + ex.Message); return(false); } }
public string Notice(string sourceID, NoticeRequest1006 sendData) { string data = JsonUtils.Serialize(sendData); TxtLoger.SavaLogToTXT("推送,前data为:" + data, "a"); var signData = new SignData(sourceID); string signStr = signData.Sign(data); var obj = new { data = Base64Utils.EncodeBase64String(data), signdata = Base64Utils.EncodeBase64String(signStr), }; TxtLoger.SavaLogToTXT("obj是 数据是:" + obj.ToJson(), "a"); return(JsonUtils.Serialize(obj)); }
public void Execute(IJobExecutionContext context) { TxtLoger.SavaLogToTXT("开始执行", "a"); var res = new ServiceResult("PayStatusNotifyJob异常!"); try { //通知次数<8 var PayNotifyList = QueryService.Platform.FindList <PayStatusNotifyTask>(t => t.TaskStatus == false && t.TaskNum < 8 && t.DelFlag == false); if (null != PayNotifyList) { TxtLoger.SavaLogToTXT("中行数为:" + PayNotifyList.Count, "a"); } foreach (PayStatusNotifyTask paynotify in PayNotifyList) { if (paynotify.Status == 1) { NoticeRequest1006 sendCmd = new NoticeRequest1006 { SourceID = paynotify.SourceID, PaymentNo = paynotify.PaymentNo, Amount = paynotify.Amount, Status = paynotify.Status, PayTime = string.Format("{0:yyyyMMddHHmmss}", paynotify.PayTime), BandCODFlag = paynotify.BandCODFlag }; string msg = "向代销机构推送数据"; //获取代销机构回调地址 string url = ConfigManager.AppSetting("CallBack_" + paynotify.SourceID); //发送前签名data //string notice = HttpHelper.Notice(paynotify.SourceID, sendCmd); string notice = Notice(paynotify.SourceID, sendCmd); TxtLoger.SavaLogToTXT("签名,后notice为:" + notice, "a"); //bool IsPost = HttpHelper.Post(url, notice, out msg); //if (IsPost) //{ // TxtLoger.SavaLogToTXT("推送,后msg为:" + msg, "a"); // //发送后,解析响应码 // if (VerifyCode(msg, paynotify.SourceID)) // { // paynotify.TaskStatus = true; // } // if (paynotify.TaskNum < 8) // { // paynotify.TaskNum = paynotify.TaskNum + 1; // } // if (UpdateTaskModel(paynotify) <= 0) // { // loger.Debug("更新支付状态通知任务表失败"); // } //} //else //{ // loger.Debug("向代销机构推送数据失败,异常详情为:" + msg); //} paynotify.TaskStatus = true; if (paynotify.TaskNum < 8) { paynotify.TaskNum = paynotify.TaskNum + 1; } if (UpdateTaskModel(paynotify) <= 0) { loger.Debug("更新支付状态通知任务表失败"); } } } } catch (Exception ex) { res.IsError(ex); TxtLoger.SavaLogToTXT("发生异常:" + ex.Message, "a"); } TxtLoger.SavaLogToTXT("结束执行:", "a"); }