| | |
| | | using Newtonsoft.Json; |
| | | using Newtonsoft.Json; |
| | | using System.Data.SqlClient; |
| | | using System.Dynamic; |
| | | using System.Net; |
| | |
| | | { |
| | | url = AppSettingsHelper.getValueByKey("TestErpUrl6"); |
| | | } |
| | | else if (urlType == 101) |
| | | { |
| | | url = AppSettingsHelper.getValueByKey("TestErpUrl101"); |
| | | } |
| | | HttpWebRequest request = null; |
| | | StreamWriter requestStream = null; |
| | | WebResponse response = null; |
| | |
| | | //{"msg":"操作成功","code":200,"data":{"number":"CGSL168397","code":"200","id":"268781"}} |
| | | if (_rtn != -1) |
| | | { |
| | | Result _result = JsonConvert.DeserializeObject<Result>(responseStr); |
| | | if ("200".Equals(_result.code)) |
| | | _rtn = 1; |
| | | try |
| | | { |
| | | Result _result = JsonConvert.DeserializeObject<Result>(responseStr); |
| | | |
| | | // 【优先判断】data.code(ERP真正的处理结果) |
| | | if (_result?.data != null && "200".Equals(_result.data.code)) |
| | | { |
| | | _rtn = 1; |
| | | LogHelper.Debug(url, $"ERP处理成功,data.code=200, number={_result.data.number}, id={_result.data.id}"); |
| | | } |
| | | // 【降级判断】如果data为空,则判断外层code(兼容旧接口) |
| | | /* else if (_result != null && "200".Equals(_result.code)) |
| | | { |
| | | _rtn = 1; |
| | | LogHelper.Debug(url, $"ERP外层返回成功,code=200(无data层,可能是旧接口)"); |
| | | }*/ |
| | | else |
| | | { |
| | | _rtn = -1; |
| | | string errorMsg = _result?.data?.code != null |
| | | ? $"ERP处理失败,data.code={_result.data.code}" |
| | | : $"ERP处理失败,外层code={_result?.code}"; |
| | | LogHelper.Debug(url, errorMsg + $", msg={_result?.msg}, responseStr={responseStr}"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _rtn = -1; |
| | | LogHelper.Debug(url, $"ERP返回数据解析失败:{ex.Message}, responseStr={responseStr}"); |
| | | } |
| | | } |
| | | sbLog.Append("," + DateTime.Now.ToString() + "结束发送"); |
| | | if (_rtn > 0) |
| | |
| | | public class Result |
| | | { |
| | | /// <summary> |
| | | /// 200成功,否则失败 |
| | | /// 200成功,否则失败(外层code) |
| | | /// </summary> |
| | | /// |
| | | |
| | | public string? msg { get; set; } |
| | | public string? code { get; set; } |
| | | // public string? data { get; set; } |
| | | |
| | | /// <summary> |
| | | /// data层,包含真正的ERP处理结果 |
| | | /// </summary> |
| | | public ErpData? data { get; set; } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ERP返回的data层数据结构 |
| | | /// </summary> |
| | | public class ErpData |
| | | { |
| | | /// <summary> |
| | | /// ERP单据编号 |
| | | /// </summary> |
| | | public string? number { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ERP处理结果代码("200"成功) |
| | | /// </summary> |
| | | public string? code { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ERP单据ID |
| | | /// </summary> |
| | | public string? id { get; set; } |
| | | } |