68 lines
2.9 KiB
C#
68 lines
2.9 KiB
C#
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
|
||
{
|
||
/// <summary>
|
||
/// 同步数据至商业集团会员系统
|
||
/// </summary>
|
||
/// <typeparam name="T">泛型</typeparam>
|
||
/// <param name="obj">对象</param>
|
||
/// <param name="operation">操作类型(0:新增、1:更新、2:删除)</param>
|
||
/// <param name="Url">传输地址</param>
|
||
/// <returns></returns>
|
||
public static string PostDataToZJHY<T>(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;
|
||
}
|
||
}
|
||
}
|