溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

圓通電子面單接口申請案例(PHP)

發(fā)布時(shí)間:2020-05-30 12:28:06 來源:網(wǎng)絡(luò) 閱讀:943 作者:多肉肉 欄目:web開發(fā)

電子面單是一種通過熱敏紙打印輸出紙質(zhì)×××的物流服務(wù)。通過熱感應(yīng)顯示文字,打印速度比傳統(tǒng)針式打印速度提升4~6倍。電子面單以接口形式嵌入到自己的系統(tǒng)、網(wǎng)站上,可以在自己的平臺操作打印電子面單。

1.接口描述

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

請求方法的編碼格式(utf-8)"application/x-www-form-urlencoded;charset=utf-8"

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

接口提供:快遞鳥

2.請求系統(tǒng)級參數(shù)

參數(shù)名稱

類型

說明

必須要求

RequestData

String

請求內(nèi)容需進(jìn)行URL(utf-8)編碼。請求內(nèi)容JSON格式,須和DataType一致。

R

EBusinessID

String

商戶ID,請?jiān)谖业姆?wù)頁面查看。

R

RequestType

String

請求指令類型:1007

R

DataSign

String

數(shù)據(jù)內(nèi)容簽名:把(請求內(nèi)容(未編碼)+AppKey)進(jìn)行MD5加密,然后Base64編碼,最后進(jìn)行URL(utf-8)編碼。詳細(xì)過程請查看Demo。

R

DataType

String

請求、返回?cái)?shù)據(jù)類型:只支持JSON格式

O

 

備注:R-必填(Required),O-可選(Optional),C-報(bào)文中該參數(shù)在一定條件下可選(Conditional

 

3.PHP對接源碼

<?php
/**
 *
 * 快遞鳥電子面單接口
 *
 * @技術(shù)QQ: 4009633321
 * @技術(shù)QQ群: 200121393
 * @see: http://www.kdniao.com/MiandanAPI.aspx
 * @copyright: 深圳市快金數(shù)據(jù)技術(shù)服務(wù)有限公司
 * 
 * ID和Key請到官網(wǎng)申請:http://www.kdniao.com/ServiceApply.aspx
 */

//電商ID
defined('EBusinessID') or define('EBusinessID', '請到快遞鳥官網(wǎng)申請http://www.kdniao.com/ServiceApply.aspx');
//電商加密私鑰,快遞鳥提供,注意保管,不要泄漏
defined('AppKey') or define('AppKey', '請到快遞鳥官網(wǎng)申請http://www.kdniao.com/ServiceApply.aspx');
//請求url,接口正式地址:http://api.kdniao.cc/api/Eorderservice
defined('ReqURL') or define('ReqURL', 'http://testapi.kdniao.cc:8081/api/Eorderservice');


//調(diào)用獲取物流軌跡
//-------------------------------------------------------------

//構(gòu)造電子面單提交信息
$eorder = [];
$eorder["ShipperCode"] = "SF";
$eorder["OrderCode"] = "PM201604062341";
$eorder["PayType"] = 1;
$eorder["ExpType"] = 1;

$sender = [];
$sender["Name"] = "李先生";
$sender["Mobile"] = "18888888888";
$sender["ProvinceName"] = "李先生";
$sender["CityName"] = "深圳市";
$sender["ExpAreaName"] = "福田區(qū)";
$sender["Address"] = "賽格廣場5401AB";

$receiver = [];
$receiver["Name"] = "李先生";
$receiver["Mobile"] = "18888888888";
$receiver["ProvinceName"] = "李先生";
$receiver["CityName"] = "深圳市";
$receiver["ExpAreaName"] = "福田區(qū)";
$receiver["Address"] = "賽格廣場5401AB";

$commodityOne = [];
$commodityOne["GoodsName"] = "其他";
$commodity = [];
$commodity[] = $commodityOne;

$eorder["Sender"] = $sender;
$eorder["Receiver"] = $receiver;
$eorder["Commodity"] = $commodity;


//調(diào)用電子面單
$jsonParam = json_encode($eorder, JSON_UNESCAPED_UNICODE);

//$jsonParam = JSON($eorder);//兼容php5.2(含)以下

echo "電子面單接口提交內(nèi)容:<br/>".$jsonParam;
$jsonResult = submitEOrder($jsonParam);
echo "<br/><br/>電子面單提交結(jié)果:<br/>".$jsonResult;

//解析電子面單返回結(jié)果
$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);	
	
	//根據(jù)公司業(yè)務(wù)處理返回的信息......
	
	return $result;
}

 
/**
 *  post提交數(shù)據(jù) 
 * @param  string $url 請求Url
 * @param  array $datas 提交的數(shù)據(jù) 
 * @return url響應(yīng)返回的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 內(nèi)容   
 * @param appkey Appkey
 * @return DataSign簽名
 */
function encrypt($data, $appkey) {
    return urlencode(base64_encode(md5($data.$appkey)));
}
/************************************************************** 
 * 
 *  使用特定function對數(shù)組中所有元素做處理 
 *  @param  string  &$array     要處理的字符串 
 *  @param  string  $function   要執(zhí)行的函數(shù) 
 *  @return boolean $apply_to_keys_also     是否也應(yīng)用到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--;  
}  


/************************************************************** 
 * 
 *  將數(shù)組轉(zhuǎn)換為JSON字符串(兼容中文) 
 *  @param  array   $array      要轉(zhuǎn)換的數(shù)組 
 *  @return string      轉(zhuǎn)換得到的json字符串 
 *  @access public 
 * 
 *************************************************************/  
function JSON($array) {  
    arrayRecursive($array, 'urlencode', true);  
    $json = json_encode($array);  
    return urldecode($json);  
}  
?>


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI