這篇文章介紹的內容是關於PHP程式碼範例之電子麵單列印通用解決方案,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
物流快遞、電商、ERP、倉儲等都涉及發貨業務都需要用到電子麵單打印,市面上有各種各樣的電子麵單打印機,電子麵單打印軟體,電子麵單打印工具滿足了列印需求,但未能很好的滿足行動端列印。這裡介紹一個手機端電子麵單列印通用解決方案:快寶電子麵單雲列印,它的優點:不限印表機型號、品牌,可列印各大快遞公司電子麵單,可列印菜鳥電子麵單,支援大量列印,支援遠端列印,實現電子麵單印表機共用等。
#一、雲端列印介紹
#快寶電子麵單雲列印,將普通熱敏印表機一鍵接入雲端,並提供封裝好的印表機管理、列印任務發送、任務狀態更新等接口,助力開發者一天就可開發出一個功能完整、使用便利的行動電子麵單列印程式。有以下特點:
1. 極簡存取:普通印表機存取行動共享雲端
2.極速請求:一個http請求就可以完成列印
3. 極速客製化:電子麵單列印軟體半天擁有
#二、如何使用雲端列印
#快寶雲列印包含6個API,分別使用與不同的場景,依照軟體所使用的流程對接不同 | |
雲端列印API清單 | |
介面名稱 | 介面描述 |
#註冊雲端印表機 | |
刪除雲端印表機 | |
##傳送列印任務 | 傳送列印任務給雲端印表機 |
取得雲端印表機清單
# 取得開發者帳號已關聯的雲端印表機資訊
#取得雲端印表機資訊 | |
---|---|
使用雲端列印,需要做以下準備: | |
對接準備工作 | |
備註 |
雲端列印API使用步驟,可依特定業務選擇對接的API:
#2、雲端列印技術對接(以PHP為例)
介面名稱:cloud.print.do
正式網址:https://kop.kuaidihelp.com/api
#請求方式:HTTP POST
請求方法編碼格式:utf-8
#公用請求參數:
類型是否必須 | 描述 | ||
methodstring | 是 | API介面名稱 | |
app_idstring | 是 | 使用者ID(註冊開放平台時分配,在控制台中查看) | |
signstring | 是 | 依照規則(md5(app_id method ts api_key))產生的驗證合法性簽章 | |
tsstring | 是 | 目前請求的時間戳記 |
公共回應參數
名稱 | 類型 | 是否必須 | 描述 |
---|---|---|---|
code | #int | 是 | 回應狀態碼。 0-成功,非0-失敗 |
msg | string | 是 | #傳回結果說明 |
uid | string | #是 | 本次請求唯一業務管線編號 |
data | string | 是 | JSON格式回應資料 |
名稱 | 類型 | 是否必須 | |
---|---|---|---|
#agent_id | string | #是 | 雲端印表機編號 |
action | string | 是 | 方法識別(print.json.cn) |
print_type | string | 是 | 1:底單2:列印3:底單和列印.(可選,預設3,任務內設定,則以任務內設定為準) |
batch | string | 是 | 是否為批次 |
print_data | |||
print_data string是######列印資料########################sequence | string | 是 | 目前/總數,預設1/1 |
string | 是 | 範本id查看詳情 | |
cp_code | string | ||
快遞品牌 | ##pickup_code | string | 是 |
#print_type | string | 是 | |
user_name | string | #是 | |
note | string | 是 | |
#goods_name | string | ##是 | |
#######weight | string | 是 | 物品重量(可選) |
tid | string | 是 | (建議用訂單號碼之類的唯一識別,提交和回調時將返回該欄位, 申請單號時也會使用該欄位當訂單號碼) |
#recipient | ##string是 | 收件訊息 | |
string | 是 | 收件者位址 | |
string | 是 | 收件者省 | |
string | 是 | 收件者縣級名稱 | |
string | 是 | 收件者市級名稱 | |
string | 是 | 收件者詳細位址 | |
# mobile | 是#收件者手機 | ||
name | 是收件者名稱 | ||
phone | 是收件者固話 | ||
routing_info | 是快遞路由資訊 | ||
consolidation | 是集包地資訊 | ||
name | 是集包地名稱 | ||
origin ###是######路由網點公司########################code | string | 是 | #路由網點公司編號 |
string | 是 | 路由網點公司編號名稱 | |
string | 是 | 二三段碼 | |
string | 是 | 大字及一段碼 | |
string | 是 | 大字名稱 | |
string | 是 | 寄件訊息 | |
string | 是 | 寄件者位址 | |
string | 是 | 寄件人省 | |
string | 是 | 寄件者縣級名稱 | |
string | 是 | 寄件者市級名稱 | |
string | 是 | 寄件者詳細位址 | |
##mobilestring | 是 | 寄件者手機 | |
# #name | 是寄件者名稱 | ||
phone | 是#寄件者固話 | ||
# waybill_code |
回應參數
名稱 | 類型 | 是否必須 | |
---|---|---|---|
status | string | 是 | |
task_id | string | 是 |
支援Java,C#,Python,PHP,Node.js,Curl等6中語言接入,下面以PHP為例,展示
發送請求任務
1. 單一列印任務,請求範例
$host = "https://kop.kuaidihelp.com/api"; $method = "POST"; $headers = array(); //根据API的要求,定义相对应的Content-Type array_push($headers, "Content-Type".":"."application/x-www-form-urlencoded; charset=UTF-8"); $querys = ""; $bodys = [ "app_id"=>'50001', "method"=>'cloud.print.do', "sign"=>"bdf3b5f50865ac813cbdfd6c9b572b79", "ts"=>'1524209949', "data"=>'{ "action":"print.json.cn(菜鸟标准格式JSON)", // "agent_id":"目标打印代理", //必填 "print_type":"打印类型", //1:预览, 2:打印, 3:打印预览. 未设置则默认为3.(任务内设置,则以任务内设置为准) "batch":"", //字符串"true"或者bool值 true则为批量,其他值则为非批量 是否为批量 "print_data": { "sequence": "1/1", //可选,打印文档当前序列:当前/总数,默认1/1 "template_id": "模板id", "cp_code": "快递品牌(提供模板id,此字段会被忽略)",//参照“快递品牌列表”,兼容菜鸟和快宝品牌编码 "pickup_code": "取件码(可选)", "print_type": "1:底单 2:打印 3:底单和打印.(可选,默认3)", "user_name": "打印人的名称,若是业务员,可包括手机号码(可选)", "note": "备注(可选)", "goods_name": "物品名(可选)", "weight": "物品重量(可选)", "tid": "(建议用订单号之类的唯一标识,提交和回调时将返回该字段, 申请单号时也将使用该字段当订单号)", "recipient": { "address": { "city": "宁德市", "detail": "哦里咯啦咯啦", "district": "福鼎市", "province": "福建省" }, "mobile": "13344556677", "name": "XXX", "phone": "" }, "routing_info": { "consolidation": {"name": "温州转福鼎包(集包名)"}, "origin": {"code": "610025","name": "四川邛崃公司"}, "route_code": "009 030(二三段码)", "sortation": {"name": "福鼎351(大字 一段码)"} }, "sender": { "address": { "city": "成都市", "detail": "兴民街55号", "district": "邛崃市", "province": "四川省" }, "mobile": "13344556677", "name": "XXX", "phone": "" }, "waybill_code": "333333333333" } }' ]; $bodys = http_build_query($bodys); $url = $host; $curl = curl_init(); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_FAILONERROR, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, true); if (1 == strpos("$".$host, "https://")) { curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); } curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys); var_dump(curl_exec($curl));
2. 批次列印任務,請求範例$host = "https://kop.kuaidihelp.com/api";
$method = "POST";
$headers = array();
//根据API的要求,定义相对应的Content-Type
array_push($headers, "Content-Type".":"."application/x-www-form-urlencoded; charset=UTF-8");
$querys = "";
$bodys = [
"app_id"=>'50001',
"method"=>'cloud.print.do',
"sign"=>"bdf3b5f50865ac813cbdfd6c9b572b79",
"ts"=>'1524209949',
"data"=>'{
"action":"print.json.cn(菜鸟标准格式JSON)", //
"agent_id":"目标打印代理", //必填
"print_type":"打印类型", //1:预览, 2:打印, 3:打印预览. 未设置则默认为3.(任务内设置,则以任务内设置为准)
"batch":"", //字符串"true"或者bool值 true则为批量,其他值则为非批量 是否为批量
"print_data": [
{
"cod_amount": 200, //如果是货到付款服务,则使用该字段
"sequence": "1/1", //可选,打印文档当前序列:当前/总数,默认1/1
"template_id": "模板id",
"cp_code": "快递品牌",//参照“快递品牌列表”,兼容菜鸟和快宝品牌编码
"pickup_code": "取件码(可选)",
"print_type": "1:底单 2:打印 3:底单和打印.(可选,默认3)",
"user_name": "打印人的名称,若是业务员,可包括手机号码(可选)",
"note": "备注(可选)",
"goods_name": "物品名(可选)",
"weight": "物品重量(可选)",
"tid": "(建议用订单号之类的唯一标识,提交和回调时将返回该字段, 申请单号时也将使用该字段当订单号)",
"recipient": {
"address": {
"city": "宁德市",
"detail": "哦里咯啦咯啦",
"district": "福鼎市",
"province": "福建省"
},
"mobile": "13344556677",
"name": "XXX",
"phone": ""
},
"routing_info": {
"consolidation": {
"name": "温州转福鼎包(集包名)"
},
"origin": {
"code": "610025",
"name": "四川邛崃公司"
},
"route_code": "009 030(二三段码)",
"sortation": {
"name": "福鼎351(大字 一段码)"
}
},
"sender": {
"address": {
"city": "成都市",
"detail": "兴民街55号",
"district": "邛崃市",
"province": "四川省"
},
"mobile": "13344556677",
"name": "XXX",
"phone": ""
},
"waybill_code": "333333333333"
}
]
}'
];
$bodys = http_build_query($bodys);
$url = $host;
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
if (1 == strpos("$".$host, "https://"))
{
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
}
curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
var_dump(curl_exec($curl));
$host = "https://kop.kuaidihelp.com/api"; $method = "POST"; $headers = array(); //根据API的要求,定义相对应的Content-Type array_push($headers, "Content-Type".":"."application/x-www-form-urlencoded; charset=UTF-8"); $querys = ""; $bodys = [ "app_id"=>'50001', "method"=>'cloud.print.do', "sign"=>"bdf3b5f50865ac813cbdfd6c9b572b79", "ts"=>'1524209949', "data"=>'{ "action":"print.json.cn(菜鸟标准格式JSON)", // "agent_id":"目标打印代理", //必填 "print_type":"打印类型", //1:预览, 2:打印, 3:打印预览. 未设置则默认为3.(任务内设置,则以任务内设置为准) "batch":"", //字符串"true"或者bool值 true则为批量,其他值则为非批量 是否为批量 "print_data": { "cod_amount": 200, //如果是货到付款服务,则使用该字段 "sequence": "1/1", //可选,打印文档当前序列:当前/总数,默认1/1 "template_id": "模板id", "cp_code": "快递品牌(提供模板id,此字段会被忽略)",//参照“快递品牌列表”,兼容菜鸟和快宝品牌编码 "pickup_code": "取件码(可选)", "print_type": "1:底单 2:打印 3:底单和打印.(可选,默认3)", "user_name": "打印人的名称,若是业务员,可包括手机号码(可选)", "note": "备注(可选)", "goods_name": "物品名(可选)", "weight": "物品重量(可选)", "tid": "(建议用订单号之类的唯一标识,提交和回调时将返回该字段, 申请单号时也将使用该字段当订单号)", "sender": { "address": { "province": "江西省", "city": "赣州市", "district": "寻乌县", "detail": "寻乌县" }, "mobile": "13344556677", "phone": "", "name": "XXX" }, "recipient": { "address": { "province": "江西省", "city": "宜春市", "district": "袁州区", "detail": "秀江外滩电13栋" }, "mobile": "13344556677", "phone": "", "name": "XXX" }, "routing_info": {}, "waybill_code": "" //留空!留空!留空! } }' ]; $bodys = http_build_query($bodys); $url = $host; $curl = curl_init(); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_FAILONERROR, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, true); if (1 == strpos("$".$host, "https://")) { curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); } curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys); var_dump(curl_exec($curl));
以上是PHP程式碼範例之電子麵單列印通用解決方案的詳細內容。更多資訊請關注PHP中文網其他相關文章!