网站推广.NET

网站推广.NET

PHP代码示例之电子面单打印通用解决方案

来源:互联网

这篇文章介绍的内容是关于PHP代码示例之电子面单打印通用解决方案,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

物流快递、电商、erp、仓储等都涉及发货业务都需要用到电子面单打印,市面上有各种各样的电子面单打印机,电子面单打印软件,电子面单打印工具满足了打印需求,但未能很好的满足移动端打印。这里介绍一个手机端电子面单打印通用解决方案:快宝电子面单云打印,它的优势:不限打印机型号、品牌,可打印各大快递公司电子面单,可打印菜鸟电子面单,支持批量打印,支持远程打印,实现电子面单打印机共享等。


一、云打印介绍

快宝电子面单云打印,将普通热敏打印机一键接入云端,并提供封装好的打印机管理、打印任务发送、任务状态更新等接口,助力开发者一天就可开发出一个功能完整、使用便捷的移动电子面单打印程序。有如下特点:

1. 极简接入:普通打印机接入移动共享云端

立即学习“PHP免费学习笔记(深入)”;

点击下载“修复打印机驱动工具”;

2. 极速请求:一个http请求就可以完成打印

3. 极速定制:电子面单打印软件半天拥有


二、如何使用云打印

快宝云打印包括6个API,分别使用与不同的场景,根据软件使用的流程对接不同

云打印API列表
接口名称接口描述
注册云打印机将开发者账号与云打印机关联
删除云打印机解除开发者账号与云打印机关联
发送打印任务给云打印机发送打印任务
获取云打印机列表获取开发者账号已经关联的云打印机信息
查询打印任务详情获取某个打印任务信息
获取云打印机信息获取某个云打印机信息

使用云打印,需要做如下准备:

对接准备工作
准备工作备注
电子面单打印机不限品牌,不限型号
安装云打印代理程序(下载地址:http://ckd.so/ydy)win 7及以上系统,不支持Mac系统
获的快宝开放平台开发者账号信息(ID和API  Key)注册快宝开放平台即可获取(http://open.kuaidihelp.com/)

云打印API使用步骤,可根据具体业务选择对接的API:


三、云打印技术对接(以PHP为例)

接口名称:cloud.print.do

正式地址:https://kop.kuaidihelp.com/api

请求方式:HTTP POST

请求方法编码格式:utf-8

公共请求参数:

名称类型是否必须描述
methodstringAPI接口名称
app_idstring用户ID(注册开放平台时分配,在控制台中查看)
signstring按照规则(md5(app_id + method + ts + api_key))生成的验证合法性签名
tsstring当前请求的时间戳
datastringJSON格式请求参数设置

公共响应参数

名称类型是否必须描述
codeint响应状态码。0-成功,非0-失败
msgstring返回结果说明
uidstring本次请求唯一业务流水号
datastringJSON格式响应数据

请求参数

名称类型是否必须描述
agent_idstring云打印机编号
actionstring方法标识(print.json.cn)
print_typestring1:底单 2:打印 3:底单和打印.(可选,默认3,任务内设置,则以任务内设置为准)
batchstring是否为批量
print_datastring打印数据
sequencestring当前/总数,默认1/1
template_idstring模板id查看详情
cp_codestring快递品牌
pickup_codestring取件码(可选)
print_typestring1:底单 2:打印 3:底单和打印.(可选,默认3)
user_namestring打印人的名称,若是业务员,可包括手机号码(可选)
notestring备注(可选)
goods_namestring物品名(可选)
weightstring物品重量(可选)
tidstring(建议用订单号之类的唯一标识,提交和回调时将返回该字段, 申请单号时也将使用该字段当订单号)
recipientstring收件信息
addressstring收件人地址
provincestring收件人省份
districtstring收件人县级名称
citystring收件人市级名称
detailstring收件人详细地址
mobilestring收件人手机
namestring收件人姓名
phonestring收件人固话
routing_infostring快递路由信息
consolidationstring集包地信息
namestring集包地名称
originstring路由网点公司
codestring路由网点公司编号
namestring路由网点公司编号名称
route_codestring二三段码
sortationstring大字及一段码
namestring大字名称
senderstring发件信息
addressstring发件人地址
provincestring发件人省份
districtstring发件人县级名称
citystring发件人市级名称
detailstring发件人详细地址
mobilestring发件人手机
namestring发件人姓名
phonestring发件人固话
waybill_codestring运单号

响应参数

名称类型是否必须描述
statusstring状态
task_idstring此次请求任务ID

支持Java,C#,Python,PHP,Node.js,Curl等6中语言接入,下面以PHP为例,展示发送请求任务代码示例。

1. 单个打印任务,请求示例

$host = "https://kop.kuaidihelp.com/api";$method = "POST";$headers = array();//根据API的要求,定义相对应的Content-Typearray_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-Typearray_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));

3.结合“微快递小邮筒”(微信公众号)里面配置的单号源自动获取单号、打印模板、路由信息示例

$host = "https://kop.kuaidihelp.com/api";$method = "POST";$headers = array();//根据API的要求,定义相对应的Content-Typearray_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));

-the end-

标签: 菜鸟电子面单打印组件