2025-03-28 09:49:56 +08:00

68 lines
2.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
}
}