圆通电子面单接口申请案例(PHP)
admin
2023-06-21 07:42:10
0次

电子面单是一种通过热敏纸打印输出纸质×××的物流服务。通过热感应显示文字,打印速度比传统针式打印速度提升4~6倍。电子面单以接口形式嵌入到自己的系统、网站上,可以在自己的平台操作打印电子面单。

1.接口描述

接口支持的消息接收方式:HTTPPOST

请求方法的编码格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8"

API地址:http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx

接口提供:快递鸟

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.PHP对接源码

".$jsonParam;
$jsonResult = submitEOrder($jsonParam);
echo "

电子面单提交结果:
".$jsonResult; //解析电子面单返回结果 $result = json_decode($jsonResult, true); echo "

返回码:".$result["ResultCode"]; if($result["ResultCode"] == "100") { echo "
是否成功:".$result["Success"]; } else { echo "
电子面单下单失败"; } //------------------------------------------------------------- /**  * 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对数组中所有元素做处理   *  @param  string  &$array     要处理的字符串   *  @param  string  $function   要执行的函数   *  @return boolean $apply_to_keys_also     是否也应用到key上   *  @access public   *   *************************************************************/   function arrayRecursive(&$array, $function, $apply_to_keys_also = false)   {       static $recursive_counter = 0;       if (++$recursive_counter > 1000) {           die('possible deep recursion attack');       }       foreach ($array as $key => $value) {           if (is_array($value)) {               arrayRecursive($array[$key], $function, $apply_to_keys_also);           } else {               $array[$key] = $function($value);           }               if ($apply_to_keys_also && is_string($key)) {               $new_key = $function($key);               if ($new_key != $key) {                   $array[$new_key] = $array[$key];                   unset($array[$key]);               }           }       }       $recursive_counter--;   }   /**************************************************************   *   *  将数组转换为JSON字符串(兼容中文)   *  @param  array   $array      要转换的数组   *  @return string      转换得到的json字符串   *  @access public   *   *************************************************************/   function JSON($array) {       arrayRecursive($array, 'urlencode', true);       $json = json_encode($array);       return urldecode($json);   }   ?>


上一篇:LNMP之 php解析

下一篇:LNMP之PHP 编译安装

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...