收藏 分销(赏)

圆通快递电子面单接口对接说明(全).docx

上传人:xrp****65 文档编号:6868256 上传时间:2024-12-22 格式:DOCX 页数:14 大小:41.98KB 下载积分:10 金币
下载 相关 举报
圆通快递电子面单接口对接说明(全).docx_第1页
第1页 / 共14页
圆通快递电子面单接口对接说明(全).docx_第2页
第2页 / 共14页


点击查看更多>>
资源描述
圆通快递电子面单接口对接说明(全) 1.接口类型说明 1)接口支持的消息接收方式:HTTP POST 2)请求方法的编码格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8" 3)API地址:http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx 4)接口提供:快递鸟 5)快递编码:YTO 2.请求系统级参数 参数名称 类型 说明 必须要求 RequestData String 请求内容需进行URL(utf-8)编码。请求内容JSON格式,须和DataType一致。 R EBusinessID String 商户ID,请在我的服务页面查看。 R RequestType String 请求指令类型:1007 R DataSign String 数据内容签名:把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码,最后进行URL(utf-8)编码。详细过程请查看Demo。 R DataType String 请求、返回数据类型:只支持JSON格式 O 备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一定条件下可选(Conditional)。 3.接口参数 1)请求内容字段定义 参数名称 类型 说明 是否必须 CallBack String 用户自定义回调信息 O MemberID String 会员标识 O CustomerName String 电子面单客户账号(与快递网点申请) O CustomerPwd String 电子面单密码 O SendSite String 收件网点标识 O ShipperCode String 快递公司编码 R LogisticCode String 快递单号 O OrderCode String 订单编号 R MonthCode String 月结编码 C PayType Int 邮费支付方式:1-现付,2-到付,3-月结,4-第三方支付 R ExpType String 快递类型:1-标准快件 R IsNotice Int 是否通知快递员上门揽件:0-通知;1-不通知;不填则默认为0 O Cost Double 寄件费(运费) O OtherCost Double 其他费用 O Receiver Company String 收件人公司 O Name String 收件人 R Tel String 电话与手机,必填一个 R Mobile String PostCode String 收件人邮编 O ProvinceName String 收件省(如广东省,不要缺少“省”) R CityName String 收件市(如深圳市,不要缺少“市”) R ExpAreaName String 收件区(如福田区,不要缺少“区”或“县”) O Address String 收件人详细地址 R Sender Company String 发件人公司 O Name String 发件人 R Tel String 电话与手机,必填一个 R Mobile String PostCode String 发件人邮编 O ProvinceName String 发件省(如广东省,不要缺少“省”) R CityName String 发件市(如深圳市,不要缺少“市”) R ExpAreaName String 发件区(如福田区,不要缺少“区”或“县”) O Address String 发件人详细地址 R StartDate String 上门取货时间段:"yyyy-MM-dd HH:mm:ss"格式化,本文中所有时间格式相同 O EndDate String O Weight Double 物品总重量kg O Quantity Int 件数/包裹数 O Volume Double 物品总体积m3 O Remark String 备注 O AddServices AddService Name String 增值服务名称 O Value String 增值服务值 O CustomerID String 客户标识(选填) O Commoditys Commodity GoodsName String 商品名称 R GoodsCode String 商品编码 O Goodsquantity Int 商品数量 O GoodsPrice Double 商品价格 O GoodsWeight Double 商品重量kg O GoodsDesc String 商品描述 O GoodsVol Double 商品体积m3 O IsReturnPrintTemplate String 返回电子面单模板:0-不需要;1-需要 O 2)返回参数定义 参数名称 类型 说明 必须要求 EBusinessID String 用户ID R Order OrderCode String 订单编号 R ShipperCode String 快递公司编码 R LogisticCode String 快递单号 R MarkDestination String 大头笔 O OriginCode String 始发地区域编码 O OriginName String 始发地/始发网点 O DestinatioCode String 目的地区域编码 O DestinatioName String 目的地/到达网点 O SortingCode String 分拣编码 O PackageCode String 集包编码 O Success Bool 成功与否 R ResultCode String 错误编码 R Reason String 失败原因 O UniquerRequestNumber String 唯一标识 R PrintTemplate String 面单打印模板 O EstimatedDeliveryTime String 订单预计到货时间yyyy-mm-dd O Callback String 用户自定义回调信息 O 4. 示例 1)JSON请求示例 {   "OrderCode": "012657700387",   "ShipperCode": "HTKY",   "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 } 2)JSON返回示例 失败: {     "EBusinessID": "1237100",     "ResultCode": "105",     "Reason": "订单号已存在,请勿重复操作",     "UniquerRequestNumber":"5e66486b-8fbc-4131-b875-9b13d2ad1354" } 成功: {   "EBusinessID": "1237100",   "Order": {     "OrderCode": "012657700387",     "ShipperCode": "HTKY",     "LogisticCode": "50002498503427",     "MarkDestination": "京-朝阳(京-1)",     "OriginCode": "200000",     "OriginName": "上海分拨中心",     "PackageCode": "北京"   },   "PrintTemplate":"此处省略打印模板HTML内容",   "EstimatedDeliveryTime":"2016-03-06",   "Callback":"调用时传入的Callback",   "Success": true,   "ResultCode": "100",   "Reason": "成功" } 5.JAVA对接源码 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import .HttpURLConnection; import .URL; import .URLEncoder; import java.util.HashMap; import java.util.Map; import com.sun.org.apache.xerces.internal.impl.dv.util.Base64; import java.security.MessageDigest; /** * * ID和Key请到官网申请: */ public class KdGoldAPIDemo { //电商ID private String EBusinessID="ID请申请"; //电商加密私钥,注意保管,不要泄漏 private String AppKey="KEY请申请"; //请求url, 正式环境地址:http://api.kdniao.cc/api/Eorderservice private String ReqURL="http://testapi.kdniao.cc:8081/api/Eorderservice"; /** * Json方式 电子面单 * @throws Exception */ public String orderOnlineByJson() throws Exception{ String requestData= "{'OrderCode': '118060839871'," + "'ShipperCode':'HHTT'," + "'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}]," + "'Weight':1.0," + "'Quantity':1," + "'Volume':0.0," + "'Remark':'小心轻放'," + "'IsReturnPrintTemplate':1}"; Map<String, String> params = new HashMap<String, String>(); params.put("RequestData", urlEncoder(requestData, "UTF-8")); params.put("EBusinessID", EBusinessID); params.put("RequestType", "1007"); String dataSign=encrypt(requestData, AppKey, "UTF-8"); params.put("DataSign", urlEncoder(dataSign, "UTF-8")); params.put("DataType", "2"); String result=sendPost(ReqURL, params); //根据公司业务处理返回的信息...... return result; } /** * MD5加密 * @param str 内容 * @param charset 编码方式 * @throws Exception */ @SuppressWarnings("unused") private String MD5(String str, String charset) throws Exception { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(str.getBytes(charset)); byte[] result = md.digest(); StringBuffer sb = new StringBuffer(32); for (int i = 0; i < result.length; i++) { int val = result[i] & 0xff; if (val <= 0xf) { sb.append("0"); } sb.append(Integer.toHexString(val)); } return sb.toString().toLowerCase(); } /** * base64编码 * @param str 内容 * @param charset 编码方式 * @throws UnsupportedEncodingException */ private String base64(String str, String charset) throws UnsupportedEncodingException{ String encoded = Base64.encode(str.getBytes(charset)); return encoded; } @SuppressWarnings("unused") private String urlEncoder(String str, String charset) throws UnsupportedEncodingException{ String result = URLEncoder.encode(str, charset); return result; } /** * 电商Sign签名生成 * @param content 内容 * @param keyValue Appkey * @param charset 编码方式 * @throws UnsupportedEncodingException ,Exception * @return DataSign签名 */ @SuppressWarnings("unused") private String encrypt (String content, String keyValue, String charset) throws UnsupportedEncodingException, Exception { if (keyValue != null) { return base64(MD5(content + keyValue, charset), charset); } return base64(MD5(content, charset), charset); } /** * 向指定 URL 发送POST方法的请求 * @param url 发送请求的 URL * @param params 请求的参数集合 * @return 远程资源的响应结果 */ @SuppressWarnings("unused") private String sendPost(String url, Map<String, String> params) { OutputStreamWriter out = null; BufferedReader in = null; StringBuilder result = new StringBuilder(); try { URL realUrl = new URL(url); HttpURLConnection conn =(HttpURLConnection) realUrl.openConnection(); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // POST方法 conn.setRequestMethod("POST"); // 设置通用的请求属性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.connect(); // 获取URLConnection对象对应的输出流 out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8"); // 发送请求参数 if (params != null) { StringBuilder param = new StringBuilder(); for (Map.Entry<String, String> entry : params.entrySet()) { if(param.length()>0){ param.append("&"); } param.append(entry.getKey()); param.append("="); param.append(entry.getValue()); System.out.println(entry.getKey()+":"+entry.getValue()); } System.out.println("param:"+param.toString()); out.write(param.toString()); } // flush输出流的缓冲 out.flush(); // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader( new InputStreamReader(conn.getInputStream(), "UTF-8")); String line; while ((line = in.readLine()) != null) { result.append(line); } } catch (Exception e) { e.printStackTrace(); } //使用finally块来关闭输出流、输入流 finally{ try{ if(out!=null){ out.close(); } if(in!=null){ in.close(); } } catch(IOException ex){ ex.printStackTrace(); } } return result.toString(); } } 6.PHP对接源码 <?php //电商ID defined('EBusinessID') or define('EBusinessID', '请申请 //电商加密私钥,注意保管,不要泄漏 defined('AppKey') or define('AppKey', '请申请 //请求url,接口正式地址:http://api.kdniao.cc/api/Eorderservice defined('ReqURL') or define('ReqURL', 'http://testapi.kdniao.cc:8081/api/Eorderservice'); //调用获取物流轨迹 //------------------------------------------------------------- //构造电子面单提交信息 $eorder = []; $eorder["ShipperCode"] = "HHTT"; $eorder["OrderCode"] = "PM201604062341"; $eorder["PayType"] = 1; $eorder["ExpType"] = 1; $sender = []; $sender["Name"] = "李先生"; $sender["Mobile"] = "18888888888"; $sender["ProvinceName"] = "李先生"; $sender["CityName"] = "深圳市"; $sender["ExpAreaName"] = "福田区"; $sender["Address"] = "赛格广场5401AB"; $receiver = []; $receiver["Name"] = "李先生"; $receiver["Mobile"] = "18888888888"; $receiver["ProvinceName"] = "李先生"; $receiver["CityName"] = "深圳市"; $receiver["ExpAreaName"] = "福田区"; $receiver["Address"] = "赛格广场5401AB"; $commodityOne = []; $commodityOne["GoodsName"] = "其他"; $commodity = []; $commodity[] = $commodityOne; $eorder["Sender"] = $sender; $eorder["Receiver"] = $receiver; $eorder["Commodity"] = $commodity; //调用电子面单 $jsonParam = json_encode($eorder, JSON_UNESCAPED_UNICODE); //$jsonParam = JSON($eorder);//兼容php5.2(含)以下 echo "电子面单接口提交内容:<br/>".$jsonParam; $jsonResult = submitEOrder($jsonParam); echo "<br/><br/>电子面单提交结果:<br/>".$jsonResult; //解析电子面单返回结果 $result = json_decode($jsonResult, true); echo "<br/><br/>返回码:".$result["ResultCode"]; if($result["ResultCode"] == "100") { echo "<br/>是否成功:".$result["Success"]; } else { echo "<br/>电子面单下单失败"; } //------------------------------------------------------------- /** * Json方式 查询订单物流轨迹 */ function submitEOrder($requestData){ $datas = array( 'EBusinessID' => EBusinessID, 'RequestType' => '1007', 'RequestData' => urlencode($requestData) , 'DataType' => '2', ); $datas['DataSign'] = encrypt($requestData, AppKey); $result=sendPost(ReqURL, $datas); //根据公司业务处理返回的信息...... return $result; } /** * post提交数据 * @param string $url 请求Url * @param array $datas 提交的数据 * @return url响应返回的html */ function sendPost($url, $datas) { $temps = array(); foreach ($datas as $key => $value) { $temps[] = sprintf('%s=%s', $key, $value); } $post_data = implode('&', $temps); $url_info = parse_url($url); if($url_info['port']=='') { $url_info['port']=80; } echo $url_info['port']; $httpheader = "POST " . $url_info['path'] . " HTTP/1.0\r\n"; $httpheader.= "Host:" . $url_info['host'] . "\r\n"; $httpheader.= "Content-Type:application/x-www-form-urlencoded\r\n"; $httpheader.= "Content-Length:" . strlen($post_data) . "\r\n"; $httpheader.= "Connection:close\r\n\r\n"; $httpheader.= $post_data; $fd = fsockopen($url_info['host'], $url_info['port']); fwrite($fd, $httpheader); $gets = ""; $headerFlag = true; while (!feof($fd)) { if (($header = @fgets($fd)) && ($header == "\r\n" || $header == "\n")) { break; } } while (!feof($fd)) { $gets.= fread($fd, 128); } fclose($fd); return $gets; } /** * 电商Sign签名生成 * @param data 内容 * @param appkey Appkey * @return DataSign签名 */ function encrypt($data, $appkey) { return urlencode(base64_encode(md5($data.$appkey))); } /************************************************************** * * 使用特定function对数组中所
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服