您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 股票报告 > 电子面单接口说明文档-(附C#源码)
电子面单接口说明文档-(附C#源码)一.电子面单电子面单是一种通过热敏纸打印输出纸质物流面单的物流服务。通过热感应显示文字,打印速度比传统针式打印速度提升4~6倍。电子面单以接口形式嵌入到自己的系统、网站上,可以在自己的平台操作打印电子面单。二.电子面单对接案例1.接口描述接口支持的消息接收方式:HTTPPOST请求方法的编码格式(utf-8):application/x-=utf-8API地址:接口提供:快递鸟2.请求系统级参数参数名称类型说明必须要求RequestDataString请求内容需进行URL(utf-8)编码。请求内容JSON格式,须和DataType一致。REBusinessIDString商户ID,请在我的服务页面查看。RRequestTypeString请求指令类型:1007RDataSignString数据内容签名:把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码,最后进行URL(utf-8)编码。详细过程请查看Demo。RDataTypeString请求、返回数据类型:只支持JSON格式O备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一定条件下可选(Conditional)3.C#对接demousingSystem;usingSystem.Collections.Generic;usingSystem.IO;usingSystem.Linq;usingSystem.Net;usingSystem.Text;usingSystem.Web;namespaceKdGoldAPI{publicclassKdApiEOrderDemo{//电商IDprivatestringEBusinessID=请申请电商加密私钥,注意保管,不要泄漏privatestringAppKey=请申请请求url,正式环境地址:=方式电子面单////summary///returns/returnspublicstringorderTracesSubByJson(){stringrequestData={'OrderCode':'012657700312',+'ShipperCode':'YTO',+'PayType':1,+'ExpType':1,+'Cost':1.0,+'OtherCost':1.0,+'Sender':+{+'Company':'LV','Name':'Taylor','Mobile':'15018442396','ProvinceName':'上海','CityName':'上海','ExpAreaName':'青浦区','Address':'明珠路73号'},+'Receiver':+{+'Company':'GCCUI','Name':'Yann','Mobile':'15018442396','ProvinceName':'北京','CityName':'北京','ExpAreaName':'朝阳区','Address':'三里屯街道雅秀大厦'},+'Commodity':+[{+'GoodsName':'鞋子','Goodsquantity':1,'GoodsWeight':1.0}],+'AddService':+[{+'Name':'COD','Value':'1020'}],+'Weight':1.0,+'Quantity':1,+'Volume':0.0,+'Remark':'小心轻放',+'IsReturnPrintTemplate':1};Dictionarystring,stringparam=newDictionarystring,string();param.Add(RequestData,HttpUtility.UrlEncode(requestData,Encoding.UTF8));param.Add(EBusinessID,EBusinessID);param.Add(RequestType,1007);stringdataSign=encrypt(requestData,AppKey,UTF-8);param.Add(DataSign,HttpUtility.UrlEncode(dataSign,Encoding.UTF8));param.Add(DataType,2);stringresult=sendPost(ReqURL,param);//根据公司业务处理返回的信息......returnresult;}///summary///Post方式提交数据,返回网页的源代码////summary///paramname=url发送请求的URL/param///paramname=param请求的参数集合/param///returns远程资源的响应结果/returnsprivatestringsendPost(stringurl,Dictionarystring,stringparam){stringresult=;StringBuilderpostData=newStringBuilder();if(param!=null&¶m.Count0){foreach(varpinparam){if(postData.Length0){postData.Append(&);}postData.Append(p.Key);postData.Append(=);postData.Append(p.Value);}}byte[]byteData=Encoding.GetEncoding(UTF-8).GetBytes(postData.ToString());try{HttpWebRequestrequest=(HttpWebRequest)WebRequest.Create(url);request.ContentType=application/x-=url;request.Accept=*/*;request.Timeout=30*1000;request.UserAgent=Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1;.NETCLR2.0.50727;.NETCLR3.0.04506.648;.NETCLR3.0.4506.2152;.NETCLR3.5.30729);request.Method=POST;request.ContentLength=byteData.Length;Streamstream=request.GetRequestStream();stream.Write(byteData,0,byteData.Length);stream.Flush();stream.Close();HttpWebResponseresponse=(HttpWebResponse)request.GetResponse();StreambackStream=response.GetResponseStream();StreamReadersr=newStreamReader(backStream,Encoding.GetEncoding(UTF-8));result=sr.ReadToEnd();sr.Close();backStream.Close();response.Close();request.Abort();}catch(Exceptionex){result=ex.Message;}returnresult;}///summary///电商Sign签名////summary///paramname=content内容/param///paramname=keyValueAppkey/param///paramname=charsetURL编码/param///returnsDataSign签名/returnsprivatestringencrypt(Stringcontent,StringkeyValue,Stringcharset){if(keyValue!=null){returnbase64(MD5(content+keyValue,charset),charset);}returnbase64(MD5(content,charset),charset);}///summary///字符串MD5加密////summary///paramname=str要加密的字符串/param///paramname=charset编码方式/param///returns密文/returnsprivatestringMD5(stringstr,stringcharset){byte[]buffer=System.Text.Encoding.GetEncoding(charset).GetBytes(str);try{System.Security.Cryptography.MD5CryptoServiceProvidercheck;check=newSystem.Security.Cryptography.MD5CryptoServiceProvider();byte[]somme=check.ComputeHash(buffer);stringret=;foreach(byteainsomme){if(a16)ret+=0+a.ToString(X);elseret+=a.ToString(X);}returnret.ToLower();}catch{throw;}}///summary///base64编码////summary///paramname=str内容/param///paramname=charset编码方式/param///returns/returnsprivatestringbase64(Stringstr,Stringcharset){returnConvert.ToBase64String(System.Text.Encoding.GetEncoding(charset).GetBytes(str));}}}
本文标题:电子面单接口说明文档-(附C#源码)
链接地址:https://www.777doc.com/doc-2211690 .html