部分需求文档如图:
返回值:
代码块如下:
public bool ScanFJ(string barcode, double Weight, double length, double width, double height, double volume) {
try {
Dictionary<string, string> fj = new Dictionary<string, string>();
fj.Add("id", "0");
fj.Add("scanType", "2");//发件
fj.Add("billcode", barcode);
fj.Add("userCode", config.EmpNo);
fj.Add("siteCode", config.SiteId);
fj.Add("entryTime", DateTime.Now.ToString("yyyyMMddHHmmss"));
fj.Add("phoneKey", config.sid);
fj.Add("orderOfClassCode", UserConfigHelper.GetInstance().userConfig.CarLabel);
fj.Add("remark", string.Format("TJ={0}*{1}*{2}", width, height, length));//长宽高
fj.Add("weight", Weight.ToString());
var key = config.kxApp_key;
//序列化json
var json = JsonConvert.SerializeObject(fj);
//md5加密
string data_digest = DesHelper.GetBase64String(DesHelper.GetMD5WithString(json + key));
var datas = new
{
logistics_interface = json,
data_digest = data_digest,
eccompanyid = "XINGCHENG"
};
//获取请求结果
var result = HttpHelper.GetResponseString(HttpHelper.CreatePostHttpResponse(config.HttpPostApiAddr, JsonConvert.SerializeObject(datas)));
//反序列化result
var les = JsonConvert.DeserializeObject<Results>(result);
//判断当前对象是否为空
if (les.success)
{
//成功提示
Logger<JT_Thailanc>.Debug("上传发件扫描参数成功!");
return true;
}
else
{
Logger<JT_Thailanc>.Error("ScanDJ--上传发件扫描参数失败!当前les返回值为null");
return false;
}
}
catch (Exception e) {
Logger<JT_Thailanc>.Error("ScanFJ--上传发件扫描参数失败!" + e);
return false;
}
}
JT_Thailanc:自定义的接口名称。
Logger:命名空间,记录日志。
Results:即自定义的返回值类,如下:
/// <summary>
/// 应答参数列表
/// </summary>
private class Results {
/// <summary>
/// 返回编码
/// </summary>
public string code { get; set; }
/// <summary>
/// 是否成功
/// </summary>
public bool success { get; set; }
/// <summary>
/// 返回描述
/// </summary>
public string reason { get; set; }
/// <summary>
/// 返回数据
/// </summary>
public string billcode { get; set; }
}
附上这个接口的全部源代码,供大家参考,源码如下:
using Newtonsoft.Json;
using System;
using XingcOpen.ILS.Business.Config;
using XingcOpen.ILS.Business.Config.Module;
using XingcOpen.ILS.Business.Interface;
using XingcOpen.ILS.Core.Http;
using XingcOpen.ILS.Core.Model;
using XingcOpen.ILS.Core.Log;
using XingcOpen.ILS.Core.Des;
using System.Collections.Generic;
namespace XingcOpen.ILS.Business.ExpressSystemApi.Client
{
/// <summary>
/// 接口
/// </summary>
class JT_Thailanc : ISendPackageInfo
{
//SERVER_URL,网关调用地址
string serverUrl = "http://47.57.97.45/sorter-ifd-web/scan/upload.do";
//取config值
private UserConfigInfo config = UserConfigHelper.GetInstance().userConfig;
/// <summary>
/// 必须实现的项
/// </summary>
public bool CheckProcessHasRun()
{
throw new NotImplementedException();
}
/// <summary>
/// 必须实现的项
/// </summary>
public bool CheckTicketNumHasEffective(string ticketsNum)
{
throw new NotImplementedException();
}
/// <summary>
/// 必须实现的项
/// </summary>
public CommonResult GeneralSendTicketsNumAndPackageWeight(TicketInfo info)
{
throw new NotImplementedException();
}
/// <summary>
/// 逻辑判断
/// </summary>
public bool SendTicketsNumAndPackageWeight(string barcode, double Weight, double length, double width, double height, double volume)
{
try
{
bool result = false;
if (string.IsNullOrEmpty(UserConfigHelper.GetInstance().userConfig.CarLabel))
{
result = ScanDJ(barcode, Weight, length, width, height, volume);
}
else
{
result = ScanFJ(barcode, Weight, length, width, height, volume);
}
if (result)
{
return true;
}
else
{
return false;
Logger<JT_Thailanc>.Error(" 上传数据异常,result返回值为null!" );
}
}
catch (Exception ex)
{
//抛出异常
Logger<JT_Thailanc>.Error(" 上传数据异常:" + ex.Message);
return false;
}
}
/// <summary>
/// 必须实现的项
/// </summary>
public T SendTicketsNumAndPackageWeight<T>(Dictionary<string, object> packageDic)
{
throw new NotImplementedException();
}
/// <summary>
/// 扫描参数
/// </summary>
public bool ScanFJ(string barcode, double Weight, double length, double width, double height, double volume) {
try {
Dictionary<string, string> fj = new Dictionary<string, string>();
fj.Add("id", "0");
fj.Add("scanType", "2");//发件
fj.Add("billcode", barcode);
fj.Add("userCode", config.EmpNo);
fj.Add("siteCode", config.SiteId);
fj.Add("entryTime", DateTime.Now.ToString("yyyyMMddHHmmss"));
fj.Add("phoneKey", config.sid);
fj.Add("orderOfClassCode", UserConfigHelper.GetInstance().userConfig.CarLabel);
fj.Add("remark", string.Format("TJ={0}*{1}*{2}", width, height, length));//长宽高
fj.Add("weight", Weight.ToString());
var key = config.kxApp_key;
//序列化json
var json = JsonConvert.SerializeObject(fj);
//md5加密
string data_digest = DesHelper.GetBase64String(DesHelper.GetMD5WithString(json + key));
var datas = new
{
logistics_interface = json,
data_digest = data_digest,
eccompanyid = "XINGCHENG"
};
//获取请求结果
var result = HttpHelper.GetResponseString(HttpHelper.CreatePostHttpResponse(config.HttpPostApiAddr, JsonConvert.SerializeObject(datas)));
//反序列化result
var les = JsonConvert.DeserializeObject<Results>(result);
//判断当前对象是否为空
if (les.success)
{
//成功提示
Logger<JT_Thailanc>.Debug("上传发件扫描参数成功!");
return true;
}
else
{
Logger<JT_Thailanc>.Error("ScanDJ--上传发件扫描参数失败!当前les返回值为null");
return false;
}
}
catch (Exception e) {
Logger<JT_Thailanc>.Error("ScanFJ--上传发件扫描参数失败!" + e);
return false;
}
}
/// <summary>
/// 扫描参数2
/// </summary>
public bool ScanDJ(string barcode, double Weight, double length, double width, double height, double volume)
{
try
{
Dictionary<string, string> dj = new Dictionary<string, string>();
dj.Add("id", "0");
dj.Add("scanType", "3");//3,到件
dj.Add("billcode", barcode);
dj.Add("userCode", config.EmpNo);
dj.Add("siteCode", config.SiteId);
dj.Add("entryTime", DateTime.Now.ToString("yyyyMMddHHmmss"));
dj.Add("phoneKey", config.sid);
dj.Add("remark", string.Format("TJ={0}*{1}*{2}", length,width, height));//长宽高
//定义key值,在config取值配置
var key = config.kxApp_key;
//将json序列化
var json = JsonConvert.SerializeObject(dj);
//md5加密json字符串以及key值
string data_digest = DesHelper.GetBase64String(DesHelper.GetMD5WithString(json + key));
var datas = new {
logistics_interface = json,
data_digest = data_digest,
eccompanyid = "XINGCHENG"
};
//获取请求结果
var result = HttpHelper.GetResponseString(HttpHelper.CreatePostHttpResponse(config.HttpPostApiAddr, JsonConvert.SerializeObject(datas)));
//反序列化result
var les = JsonConvert.DeserializeObject<Results>(result);
//判断当前对象是否为空
if (les.success)
{
//成功提示
Logger<JT_Thailanc>.Debug("上传到件扫描参数成功!");
return true;
}
else
{
Logger<JT_Thailanc>.Error("ScanDJ--上传到件扫描参数失败!当前les返回值为null");
return false;
}
}
catch (Exception e)
{
Logger<JT_Thailanc>.Error("ScanDJ--上传到件扫描参数失败!" + e);
return false;
}
}
/// <summary>
/// 应答参数列表
/// </summary>
private class Results {
/// <summary>
/// 返回编码
/// </summary>
public string code { get; set; }
/// <summary>
/// 是否成功
/// </summary>
public bool success { get; set; }
/// <summary>
/// 返回描述
/// </summary>
public string reason { get; set; }
/// <summary>
/// 返回数据
/// </summary>
public string billcode { get; set; }
}
}
}