using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using Newtonsoft.Json.Linq; using Newtonsoft.Json; using HZQR.Common; namespace ZJZCGCMemberClient.Method { public class CommonHelper { /// /// 同步数据至商业集团会员系统 /// /// 泛型 /// 对象 /// 操作类型(0:新增、1:更新、2:删除) /// 传输地址 /// public static string PostDataToZJHY(T obj, int? operation, string Url) { Model.CommonModel commonModel = new Model.CommonModel() { appid = ZJZCGCMemberHelper.AppId, operation = operation, data = ZJZCGCMemberHelper.AESEncrypt(JsonConvert.SerializeObject(obj), ZJZCGCMemberHelper.AppSecret, "", true) }; string result = HttpUtil.HttpUrlPost(JsonConvert.SerializeObject(commonModel), Url, "application/json"); LogUtil.WriteLog("传输地址:" + Url + ",传输结果:" + result); try { //解析接口返回报文内容 JObject keyValuePairs = JObject.Parse(result); if (keyValuePairs["code"].ToString() != "200") { //第一次传输失败了,则延迟5s再传输一次 if (keyValuePairs["code"].ToString() == "500") { Thread.Sleep(5000); //重新发起通讯 result = HttpUtil.HttpUrlPost(JsonConvert.SerializeObject(commonModel), Url, "application/json"); LogUtil.WriteLog("失败后第二次传输结果:" + result); //解析接口返回报文内容 keyValuePairs = JObject.Parse(result); if (keyValuePairs["code"].ToString() != "200") { //传输失败,记录传输前后的报文 LogUtil.WriteLog("加密前:" + JsonConvert.SerializeObject(obj)); LogUtil.WriteLog("加密后:" + JsonConvert.SerializeObject(commonModel)); } } } } catch (Exception ex) { LogUtil.WriteLog(ex, "", DateTime.Now.ToString("yyyyMMdd") + "_ErrorLog"); LogUtil.WriteLog(null, "加密前:" + JsonConvert.SerializeObject(obj), DateTime.Now.ToString("yyyyMMdd") + "_ErrorLog"); LogUtil.WriteLog(null, "加密后:" + JsonConvert.SerializeObject(commonModel), DateTime.Now.ToString("yyyyMMdd") + "_ErrorLog"); } return result; } } }