【新增】快递物流查询接口新增v2版本,实现v1与v2版本切换使用。

This commit is contained in:
jianweie code
2023-12-29 21:35:34 +08:00
parent d722161e65
commit 892c9eb284
8 changed files with 663 additions and 131 deletions

View File

@@ -612,6 +612,10 @@ namespace CoreCms.Net.Configuration
/// <summary> /// <summary>
/// 易源接口授权key /// 易源接口授权key
/// </summary> /// </summary>
public const string ShowApiLogisticsVersion = "showApiLogisticsVersion";
/// <summary>
/// 易源接口授权key
/// </summary>
public const string ShowApiAppid = "showApiAppid"; public const string ShowApiAppid = "showApiAppid";
/// <summary> /// <summary>
/// 易源接口授权密钥 /// 易源接口授权密钥

View File

@@ -204,6 +204,7 @@ namespace CoreCms.Net.Configuration
//客服ID //客服ID
di.Add(SystemSettingConstVars.EntId, new DictionaryKeyValues() { sKey = "客服ID", sValue = "" }); di.Add(SystemSettingConstVars.EntId, new DictionaryKeyValues() { sKey = "客服ID", sValue = "" });
//易源接口授权 //易源接口授权
di.Add(SystemSettingConstVars.ShowApiLogisticsVersion, new DictionaryKeyValues() { sKey = "物流接口版本", sValue = "1" });
di.Add(SystemSettingConstVars.ShowApiAppid, new DictionaryKeyValues() { sKey = "AppId", sValue = "" }); di.Add(SystemSettingConstVars.ShowApiAppid, new DictionaryKeyValues() { sKey = "AppId", sValue = "" });
di.Add(SystemSettingConstVars.ShowApiSecret, new DictionaryKeyValues() { sKey = "授权Secret", sValue = "" }); di.Add(SystemSettingConstVars.ShowApiSecret, new DictionaryKeyValues() { sKey = "授权Secret", sValue = "" });

View File

@@ -10449,56 +10449,241 @@
内容【XXXXXXX公司】 派件中 派件人: 滕XX 电话 13787XXXXX 如有疑问请联系XXXXX-XXXXX 内容【XXXXXXX公司】 派件中 派件人: 滕XX 电话 13787XXXXX 如有疑问请联系XXXXX-XXXXX
</summary> </summary>
</member> </member>
<member name="T:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressCompanyListResult"> <member name="T:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressCompanyListResultV1">
<summary> <summary>
查询货运公司列表返回实体数据 查询货运公司列表返回实体数据V1
</summary> </summary>
</member> </member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressCompanyListResult.showapi_res_error"> <member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressCompanyListResultV1.showapi_res_error">
<summary> <summary>
错误说明 错误说明
</summary> </summary>
</member> </member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressCompanyListResult.showapi_res_code"> <member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressCompanyListResultV1.showapi_res_code">
<summary> <summary>
状态码 状态码
</summary> </summary>
</member> </member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressCompanyListResult.showapi_res_id"> <member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressCompanyListResultV1.showapi_res_id">
<summary> <summary>
返回资源序列 返回资源序列
</summary> </summary>
</member> </member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressCompanyListResult.showapi_res_body"> <member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressCompanyListResultV1.showapi_res_body">
<summary> <summary>
返回资源主体 返回资源主体
</summary> </summary>
</member> </member>
<member name="T:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressPollResult"> <member name="P:CoreCms.Net.Model.ViewModels.Api.Express_listItem.img_url">
<summary> <summary>
查询货运公司列表返回实体数据
</summary> </summary>
</member> </member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressPollResult.showapi_res_error"> <member name="P:CoreCms.Net.Model.ViewModels.Api.Express_listItem.phone">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.Express_listItem.exp_name">
<summary>
顺丰速运
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.Express_listItem.com">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.Express_listItem.url">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.Express_listItem.note">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.Showapi_res_body.ret_code">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.Showapi_res_body.express_list">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.Showapi_res_body.msg">
<summary>
查询成功!
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressCompanyListResultV2.showapi_res_error">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressCompanyListResultV2.showapi_res_code">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressCompanyListResultV2.showapi_res_id">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressCompanyListResultV2.showapi_res_body">
<summary>
</summary>
</member>
<member name="T:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressPollResultV1">
<summary>
查询物流轨迹返回值V1
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressPollResultV1.showapi_res_error">
<summary> <summary>
错误说明 错误说明
</summary> </summary>
</member> </member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressPollResult.showapi_res_code"> <member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressPollResultV1.showapi_res_code">
<summary> <summary>
状态码 状态码
</summary> </summary>
</member> </member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressPollResult.showapi_res_id"> <member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressPollResultV1.showapi_res_id">
<summary> <summary>
返回资源序列 返回资源序列
</summary> </summary>
</member> </member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressPollResult.showapi_res_body"> <member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressPollResultV1.showapi_res_body">
<summary> <summary>
返回资源主体 返回资源主体
</summary> </summary>
</member> </member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressPollResultV2.showapi_res_error">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressPollResultV2.showapi_fee_num">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressPollResultV2.showapi_res_code">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressPollResultV2.showapi_res_id">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ShowApiGetExpressPollResultV2.showapi_res_body">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.PollDataV2.time">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.PollDataV2.location">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.PollDataV2.status">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.PollDataV2.address">
<summary>
浙江省-台州市
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.PollDataV2.context">
<summary>
【台州市】已离开 浙江台州分拨交付中心;发往 山东潍坊分拨交付中心
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ExpressPollResBodyV2.delivery_time">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ExpressPollResBodyV2.nu">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ExpressPollResBodyV2.logo">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ExpressPollResBodyV2.original_com">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ExpressPollResBodyV2.com">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ExpressPollResBodyV2.tel">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ExpressPollResBodyV2.data">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ExpressPollResBodyV2.msg">
<summary>
查询成功
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ExpressPollResBodyV2.possible_exp_list">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ExpressPollResBodyV2.ret_code">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ExpressPollResBodyV2.showapi_inner_fee_num">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ExpressPollResBodyV2.update_time">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ExpressPollResBodyV2.query_num">
<summary>
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Api.ExpressPollResBodyV2.com_name">
<summary>
韵达速递
</summary>
</member>
<member name="T:CoreCms.Net.Model.ViewModels.Basics.DbTableInfoTree"> <member name="T:CoreCms.Net.Model.ViewModels.Basics.DbTableInfoTree">
<summary> <summary>
代码生成器下拉数据列表实体 代码生成器下拉数据列表实体

View File

@@ -12,12 +12,12 @@ using System.Collections.Generic;
namespace CoreCms.Net.Model.ViewModels.Api namespace CoreCms.Net.Model.ViewModels.Api
{ {
#region #region V1
/// <summary> /// <summary>
/// 查询货运公司列表返回实体数据 /// 查询货运公司列表返回实体数据V1
/// </summary> /// </summary>
public class ShowApiGetExpressCompanyListResult public class ShowApiGetExpressCompanyListResultV1
{ {
/// <summary> /// <summary>
/// 错误说明 /// 错误说明
@@ -88,12 +88,79 @@ namespace CoreCms.Net.Model.ViewModels.Api
#endregion #endregion
#region MyRegion #region V2
public class Express_listItem
{
/// <summary>
///
/// </summary>
public string img_url { get; set; }
/// <summary>
///
/// </summary>
public string phone { get; set; }
/// <summary>
/// 顺丰速运
/// </summary>
public string exp_name { get; set; }
/// <summary>
///
/// </summary>
public string com { get; set; }
/// <summary>
///
/// </summary>
public string url { get; set; }
/// <summary>
///
/// </summary>
public string note { get; set; }
}
public class Showapi_res_body
{
/// <summary>
///
/// </summary>
public int ret_code { get; set; }
/// <summary>
///
/// </summary>
public List<Express_listItem> express_list { get; set; }
/// <summary>
/// 查询成功!
/// </summary>
public string msg { get; set; }
}
public class ShowApiGetExpressCompanyListResultV2
{
/// <summary>
///
/// </summary>
public string showapi_res_error { get; set; }
/// <summary>
///
/// </summary>
public int showapi_res_code { get; set; }
/// <summary>
///
/// </summary>
public string showapi_res_id { get; set; }
/// <summary>
///
/// </summary>
public Showapi_res_body showapi_res_body { get; set; }
}
#endregion
#region V1
/// <summary> /// <summary>
/// 查询货运公司列表返回实体数据 /// 查询物流轨迹返回值V1
/// </summary> /// </summary>
public class ShowApiGetExpressPollResult public class ShowApiGetExpressPollResultV1
{ {
/// <summary> /// <summary>
/// 错误说明 /// 错误说明
@@ -113,11 +180,11 @@ namespace CoreCms.Net.Model.ViewModels.Api
/// <summary> /// <summary>
/// 返回资源主体 /// 返回资源主体
/// </summary> /// </summary>
public ExpressPollResBody showapi_res_body { get; set; } public ExpressPollResBodyV1 showapi_res_body { get; set; }
} }
public class ExpressPollResBody public class ExpressPollResBodyV1
{ {
public long update { get; set; } public long update { get; set; }
public string upgrade_info { get; set; } public string upgrade_info { get; set; }
@@ -127,7 +194,7 @@ namespace CoreCms.Net.Model.ViewModels.Api
public int status { get; set; } public int status { get; set; }
public int fee_num { get; set; } public int fee_num { get; set; }
public string tel { get; set; } public string tel { get; set; }
public List<PollData> data { get; set; } public List<PollDataV1> data { get; set; }
public string expSpellName { get; set; } public string expSpellName { get; set; }
public string msg { get; set; } public string msg { get; set; }
@@ -139,11 +206,127 @@ namespace CoreCms.Net.Model.ViewModels.Api
public List<object> possibleExpList { get; set; } public List<object> possibleExpList { get; set; }
} }
public class PollData public class PollDataV1
{ {
public string time { get; set; } public string time { get; set; }
public string context { get; set; } public string context { get; set; }
} }
#endregion #endregion
#region V2
public class ShowApiGetExpressPollResultV2
{
/// <summary>
///
/// </summary>
public string showapi_res_error { get; set; }
/// <summary>
///
/// </summary>
public int showapi_fee_num { get; set; }
/// <summary>
///
/// </summary>
public int showapi_res_code { get; set; }
/// <summary>
///
/// </summary>
public string showapi_res_id { get; set; }
/// <summary>
///
/// </summary>
public ExpressPollResBodyV2 showapi_res_body { get; set; }
}
public class PollDataV2
{
/// <summary>
///
/// </summary>
public string time { get; set; }
/// <summary>
///
/// </summary>
public string location { get; set; }
/// <summary>
///
/// </summary>
public int status { get; set; }
/// <summary>
/// 浙江省-台州市
/// </summary>
public string address { get; set; }
/// <summary>
/// 【台州市】已离开 浙江台州分拨交付中心;发往 山东潍坊分拨交付中心
/// </summary>
public string context { get; set; }
}
public class ExpressPollResBodyV2
{
/// <summary>
///
/// </summary>
public string delivery_time { get; set; }
/// <summary>
///
/// </summary>
public string nu { get; set; }
/// <summary>
///
/// </summary>
public string logo { get; set; }
/// <summary>
///
/// </summary>
public string original_com { get; set; }
/// <summary>
///
/// </summary>
public string com { get; set; }
/// <summary>
///
/// </summary>
public string tel { get; set; }
/// <summary>
///
/// </summary>
public List<PollDataV2>? data { get; set; }
/// <summary>
/// 查询成功
/// </summary>
public string msg { get; set; }
/// <summary>
///
/// </summary>
public List<string>? possible_exp_list { get; set; }
/// <summary>
///
/// </summary>
public int ret_code { get; set; }
/// <summary>
///
/// </summary>
public int showapi_inner_fee_num { get; set; }
/// <summary>
///
/// </summary>
public string update_time { get; set; }
/// <summary>
///
/// </summary>
public int query_num { get; set; }
/// <summary>
/// 韵达速递
/// </summary>
public string com_name { get; set; }
}
#endregion
} }

View File

@@ -21,6 +21,7 @@ using CoreCms.Net.Model.ViewModels.UI;
using CoreCms.Net.Utility.Helper; using CoreCms.Net.Utility.Helper;
using Flurl.Http; using Flurl.Http;
using Newtonsoft.Json; using Newtonsoft.Json;
using SqlSugar.Extensions;
namespace CoreCms.Net.Services namespace CoreCms.Net.Services
@@ -72,6 +73,7 @@ namespace CoreCms.Net.Services
var jm = new AdminUiCallBack(); var jm = new AdminUiCallBack();
var allConfigs = await _settingServices.GetConfigDictionaries(); var allConfigs = await _settingServices.GetConfigDictionaries();
var showApiLogisticsVersion = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShowApiLogisticsVersion).ObjToInt(1);
var showApiAppid = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShowApiAppid); var showApiAppid = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShowApiAppid);
var showApiSecret = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShowApiSecret); var showApiSecret = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShowApiSecret);
var shopMobile = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShopMobile); var shopMobile = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShopMobile);
@@ -82,69 +84,123 @@ namespace CoreCms.Net.Services
var signStr = "maxSize" + maxSize + "showapi_appid" + showApiAppid + "showapi_timestamp" + showApiTimesTamp + showApiSecret; var signStr = "maxSize" + maxSize + "showapi_appid" + showApiAppid + "showapi_timestamp" + showApiTimesTamp + showApiSecret;
var md5Sign = CommonHelper.Md5For32(signStr).ToLower(); var md5Sign = CommonHelper.Md5For32(signStr).ToLower();
var url = "https://route.showapi.com/64-20?expName=&maxSize=1500&page=&showapi_appid=" + showApiAppid + string url;
"&showapi_timestamp=" + showApiTimesTamp + "&showapi_sign=" + md5Sign; if (showApiLogisticsVersion == 1)
var result = await url.PostAsync().ReceiveJson<ShowApiGetExpressCompanyListResult>();
if (result.showapi_res_code == 0)
{ {
if (result.showapi_res_body != null && result.showapi_res_body.ret_code == 0 && result.showapi_res_body.expressList != null && result.showapi_res_body.expressList.Count > 0) url = "https://route.showapi.com/64-20?expName=&maxSize=1500&page=&showapi_appid=" + showApiAppid + "&showapi_timestamp=" + showApiTimesTamp + "&showapi_sign=" + md5Sign;
var result = await url.PostAsync().ReceiveJson<ShowApiGetExpressCompanyListResultV1>();
if (result.showapi_res_code == 0)
{ {
var list = new List<CoreCmsLogistics>(); if (result.showapi_res_body != null && result.showapi_res_body.ret_code == 0 && result.showapi_res_body.expressList != null && result.showapi_res_body.expressList.Count > 0)
var systemLogistics = SystemSettingDictionary.GetSystemLogistics();
systemLogistics.ForEach(p =>
{ {
var logistics = new CoreCmsLogistics(); var list = new List<CoreCmsLogistics>();
logistics.logiCode = p.sKey;
logistics.logiName = p.sDescription;
logistics.imgUrl = "";
logistics.phone = shopMobile;
logistics.url = "";
logistics.sort = -1;
logistics.isDelete = false;
list.Add(logistics); var systemLogistics = SystemSettingDictionary.GetSystemLogistics();
}); systemLogistics.ForEach(p =>
{
var logistics = new CoreCmsLogistics();
logistics.logiCode = p.sKey;
logistics.logiName = p.sDescription;
logistics.imgUrl = "";
logistics.phone = shopMobile;
logistics.url = "";
logistics.sort = -1;
logistics.isDelete = false;
list.Add(logistics);
});
var count = 0; var count = 0;
result.showapi_res_body.expressList.ForEach(p => result.showapi_res_body.expressList.ForEach(p =>
{
var logistics = new CoreCmsLogistics();
logistics.logiCode = p.simpleName;
logistics.logiName = p.expName;
logistics.imgUrl = p.imgUrl;
logistics.phone = p.phone;
logistics.url = p.url;
logistics.sort = count * 5;
logistics.isDelete = false;
list.Add(logistics);
count++;
});
await _dal.DeleteAsync(p => p.id > 0);
var bl = await _dal.InsertAsync(list) > 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? "数据刷新成功" : "数据刷新失败";
}
else
{ {
var logistics = new CoreCmsLogistics(); jm.msg = "接口获取数据失败";
logistics.logiCode = p.simpleName; }
logistics.logiName = p.expName;
logistics.imgUrl = p.imgUrl;
logistics.phone = p.phone;
logistics.url = p.url;
logistics.sort = count * 5;
logistics.isDelete = false;
list.Add(logistics);
count++;
});
await _dal.DeleteAsync(p => p.id > 0);
var bl = await _dal.InsertAsync(list) > 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? "数据刷新成功" : "数据刷新失败";
} }
else else
{ {
jm.msg = "接口获取数据失败"; jm.msg = result.showapi_res_error;
} }
} }
else else
{ {
jm.msg = result.showapi_res_error; url = "https://route.showapi.com/2650-5?expName=&maxSize=1500&page=&showapi_appid=" + showApiAppid + "&showapi_timestamp=" + showApiTimesTamp + "&showapi_sign=" + md5Sign;
var result = await url.PostAsync().ReceiveJson<ShowApiGetExpressCompanyListResultV2>();
if (result.showapi_res_code == 0)
{
if (result.showapi_res_body != null && result.showapi_res_body.ret_code == 0 && result.showapi_res_body.express_list != null && result.showapi_res_body.express_list.Count > 0)
{
var list = new List<CoreCmsLogistics>();
var systemLogistics = SystemSettingDictionary.GetSystemLogistics();
systemLogistics.ForEach(p =>
{
var logistics = new CoreCmsLogistics();
logistics.logiCode = p.sKey;
logistics.logiName = p.sDescription;
logistics.imgUrl = "";
logistics.phone = shopMobile;
logistics.url = "";
logistics.sort = -1;
logistics.isDelete = false;
list.Add(logistics);
});
var count = 0;
result.showapi_res_body.express_list.ForEach(p =>
{
var logistics = new CoreCmsLogistics();
logistics.logiCode = p.com;
logistics.logiName = p.exp_name;
logistics.imgUrl = p.img_url;
logistics.phone = p.phone;
logistics.url = p.url;
logistics.sort = count * 5;
logistics.isDelete = false;
list.Add(logistics);
count++;
});
await _dal.DeleteAsync(p => p.id > 0);
var bl = await _dal.InsertAsync(list) > 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? "数据刷新成功" : "数据刷新失败";
}
else
{
jm.msg = "接口获取数据失败";
}
}
else
{
jm.msg = result.showapi_res_error;
}
} }
return jm; return jm;
} }
@@ -177,8 +233,8 @@ namespace CoreCms.Net.Services
return jm; return jm;
} }
var allConfigs = await _settingServices.GetConfigDictionaries(); var allConfigs = await _settingServices.GetConfigDictionaries();
var showApiLogisticsVersion = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShowApiLogisticsVersion).ObjToInt(1);
var showApiAppid = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShowApiAppid); var showApiAppid = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShowApiAppid);
var showApiSecret = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShowApiSecret); var showApiSecret = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ShowApiSecret);
@@ -187,70 +243,165 @@ namespace CoreCms.Net.Services
var signStr = "com" + com + "nu" + number + "phone" + phone + "showapi_appid" + showApiAppid + "showapi_timestamp" + showApiTimesTamp + showApiSecret; var signStr = "com" + com + "nu" + number + "phone" + phone + "showapi_appid" + showApiAppid + "showapi_timestamp" + showApiTimesTamp + showApiSecret;
var md5Sign = CommonHelper.Md5For32(signStr).ToLower(); var md5Sign = CommonHelper.Md5For32(signStr).ToLower();
var url = "https://route.showapi.com/64-19?com=" + com + "&nu=" + number + "&phone=" + phone + "&showapi_appid=" + showApiAppid + string url;
"&showapi_timestamp=" + showApiTimesTamp + "&showapi_sign=" + md5Sign; if (showApiLogisticsVersion == 1)
var result = await url.PostAsync().ReceiveJson<ShowApiGetExpressPollResult>();
if (result.showapi_res_code != 0)
{ {
jm.status = false; url = "https://route.showapi.com/64-19?com=" + com + "&nu=" + number + "&phone=" + phone + "&showapi_appid=" + showApiAppid + "&showapi_timestamp=" + showApiTimesTamp + "&showapi_sign=" + md5Sign;
jm.msg = result.showapi_res_error; var result = await url.PostAsync().ReceiveJson<ShowApiGetExpressPollResultV1>();
if (result.showapi_res_code != 0)
{
jm.status = false;
jm.msg = result.showapi_res_error;
}
else
{
jm = GetLogiInfo(1, result.showapi_res_code, result.showapi_res_body);
}
} }
else else
{ {
switch (result.showapi_res_body.ret_code) url = "https://route.showapi.com/2650-3?com=" + com + "&nu=" + number + "&phone=" + phone + "&showapi_appid=" + showApiAppid + "&showapi_timestamp=" + showApiTimesTamp + "&showapi_sign=" + md5Sign;
var result = await url.PostAsync().ReceiveJson<ShowApiGetExpressPollResultV2>();
if (result.showapi_res_code != 0)
{ {
case 0: jm.status = false;
jm.status = true; jm.msg = result.showapi_res_error;
jm.msg = "查询成功"; }
jm.data = result.showapi_res_body; else
break; {
case 1: jm = GetLogiInfo(1, result.showapi_res_code, result.showapi_res_body);
jm.status = false;
jm.msg = "输入参数错误";
jm.data = result.showapi_res_body;
break;
case 2:
jm.status = false;
jm.msg = "查不到物流信息";
jm.data = result.showapi_res_body;
break;
case 3:
jm.status = false;
jm.msg = "单号不符合规则";
jm.data = result.showapi_res_body;
break;
case 4:
jm.status = false;
jm.msg = "快递公司编码不符合规则";
jm.data = result.showapi_res_body;
break;
case 5:
jm.status = false;
jm.msg = "快递查询渠道异常";
jm.data = result.showapi_res_body;
break;
case 6:
jm.status = false;
jm.msg = " auto时未查到单号对应的快递公司,请指定快递公司编码";
jm.data = result.showapi_res_body;
break;
case 7:
jm.status = false;
jm.msg = "单号与手机号不匹配";
jm.data = result.showapi_res_body;
break;
default:
jm.status = false;
jm.msg = "接口调用失败";
jm.data = result.showapi_res_body;
break;
} }
} }
return jm; return jm;
} }
//根据状态反馈提示信息
private WebApiCallBack GetLogiInfo(int version, int retCode, object showapiResBody)
{
var jm = new WebApiCallBack();
if (retCode == 0)
{
jm.status = true;
jm.msg = "查询成功";
jm.data = showapiResBody;
}
else if (retCode == 1)
{
jm.status = false;
jm.msg = "输入参数错误";
jm.data = showapiResBody;
}
else if (retCode == 2)
{
jm.status = false;
jm.msg = "查不到物流信息";
jm.data = showapiResBody;
}
else if (retCode == 3)
{
jm.status = false;
jm.msg = "单号不符合规则";
jm.data = showapiResBody;
}
else if (retCode == 4)
{
jm.status = false;
jm.msg = "快递公司编码不符合规则";
jm.data = showapiResBody;
}
else if (retCode == 5)
{
jm.status = false;
jm.msg = "快递查询渠道异常";
jm.data = showapiResBody;
}
else if (retCode == 6)
{
jm.status = false;
jm.msg = " auto时未查到单号对应的快递公司,请指定快递公司编码";
jm.data = showapiResBody;
}
else if (retCode == 7)
{
jm.status = false;
jm.msg = "单号与手机号不匹配";
jm.data = showapiResBody;
}
else if (version == 2)
{
jm.status = true;
switch (retCode)
{
//101 揽件
//102 在途中
//103 派送中
//104 已签收(完结状态)
//105 用户拒签
//106 疑难件
//107 无效单(完结状态)
//108 超时单
//109 签收失败
//110 退回
//111 转投
//112 待签
//113 邮件回收
case 101:
jm.msg = "揽件";
break;
case 102:
jm.msg = "在途中";
break;
case 103:
jm.msg = "派送中";
break;
case 104:
jm.msg = "已签收(完结状态)";
break;
case 105:
jm.msg = "用户拒签";
break;
case 106:
jm.msg = "疑难件";
break;
case 107:
jm.msg = "无效单(完结状态)";
break;
case 108:
jm.msg = "超时单";
break;
case 109:
jm.msg = "签收失败";
break;
case 110:
jm.msg = "退回";
break;
case 111:
jm.msg = "转投";
break;
case 112:
jm.msg = "待签";
break;
case 113:
jm.msg = "邮件回收";
break;
default:
jm.status = false;
jm.msg = "未知状态";
break;
}
jm.data = showapiResBody;
}
else
{
jm.status = false;
jm.msg = "接口调用失败";
jm.data = showapiResBody;
}
return jm;
}
} }
} }

View File

@@ -186,14 +186,14 @@ namespace CoreCms.Net.Web.Admin.Controllers
#endregion #endregion
#region ============================================================ #region ============================================================
// POST: Api/CoreCmsLogistics/DoDelete/10 // POST: Api/CoreCmsLogistics/DoDelete/10
/// <summary> /// <summary>
/// 拉取数据更新 /// 拉取数据更新快递公司
/// </summary> /// </summary>
[HttpPost] [HttpPost]
[Description("单选删除")] [Description("拉取数据更新")]
public async Task<AdminUiCallBack> DoUpdateCompany() public async Task<AdminUiCallBack> DoUpdateCompany()
{ {
var jm = await _coreCmsLogisticsServices.DoUpdateCompany(); var jm = await _coreCmsLogisticsServices.DoUpdateCompany();

View File

@@ -3470,7 +3470,7 @@
</member> </member>
<member name="M:CoreCms.Net.Web.Admin.Controllers.CoreCmsLogisticsController.DoUpdateCompany"> <member name="M:CoreCms.Net.Web.Admin.Controllers.CoreCmsLogisticsController.DoUpdateCompany">
<summary> <summary>
拉取数据更新 拉取数据更新快递公司
</summary> </summary>
</member> </member>
<member name="T:CoreCms.Net.Web.Admin.Controllers.CoreCmsNoticeController"> <member name="T:CoreCms.Net.Web.Admin.Controllers.CoreCmsNoticeController">

View File

@@ -983,6 +983,14 @@
</div> </div>
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;"> <legend>易源接口</legend></fieldset> <fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;"> <legend>易源接口</legend></fieldset>
<div class="layui-form-item">
<label class="layui-form-label">{{d.data.configs['showApiLogisticsVersion']['sKey']}}</label>
<div class="layui-input-inline layui-inline-5">
<input type="radio" lay-filter="showApiLogisticsVersion" name="showApiLogisticsVersion" value="1" title="v1" {{d.data.configs['showApiLogisticsVersion']['sValue']==="1" ? 'checked':''}}>
<input type="radio" lay-filter="showApiLogisticsVersion" name="showApiLogisticsVersion" value="2" title="v2" {{d.data.configs['showApiLogisticsVersion']['sValue']==="2" ? 'checked':''}}>
</div>
<div class="layui-form-mid layui-word-aux">v1地址https://www.showapi.com/apiGateway/view/64】 v2地址【https://www.showapi.com/apiGateway/view/2650】</div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">{{d.data.configs['showApiAppid']['sKey']}}</label> <label class="layui-form-label">{{d.data.configs['showApiAppid']['sKey']}}</label>
<div class="layui-input-inline layui-inline-5"> <div class="layui-input-inline layui-inline-5">