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

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

一、云打印介绍

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

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

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

公共请求参数:

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

名称    类型    是否必须    描述
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    string    是    打印数据
sequence    string    是    当前/总数,默认1/1
template_id    string    是    模板id查看详情
cp_code    string    是    快递品牌
pickup_code    string    是    取件码(可选)
print_type    string    是    1:底单 2:打印 3:底单和打印.(可选,默认3)
user_name    string    是    打印人的名称,若是业务员,可包括手机号码(可选)
note    string    是    备注(可选)
goods_name    string    是    物品名(可选)
weight    string    是    物品重量(可选)
tid    string    是    (建议用订单号之类的唯一标识,提交和回调时将返回该字段, 申请单号时也将使用该字段当订单号)
recipient    string    是    收件信息
address    string    是    收件人地址
province    string    是    收件人省份
district    string    是    收件人县级名称
city    string    是    收件人市级名称
detail    string    是    收件人详细地址
mobile    string    是    收件人手机
name    string    是    收件人姓名
phone    string    是    收件人固话
routing_info    string    是    快递路由信息
consolidation    string    是    集包地信息
name    string    是    集包地名称
origin    string    是    路由网点公司
code    string    是    路由网点公司编号
name    string    是    路由网点公司编号名称
route_code    string    是    二三段码
sortation    string    是    大字及一段码
name    string    是    大字名称
sender    string    是    发件信息
address    string    是    发件人地址
province    string    是    发件人省份
district    string    是    发件人县级名称
city    string    是    发件人市级名称
detail    string    是    发件人详细地址
mobile    string    是    发件人手机
name    string    是    发件人姓名
phone    string    是    发件人固话
waybill_code    string    是    运单号
响应参数

名称    类型    是否必须    描述
status    string    是    状态
task_id    string    是    此次请求任务ID
支持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));
3.结合“微快递小邮筒”(微信公众号)里面配置的单号源自动获取单号、打印模板、路由信息示例
$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));

--------------------- 
原文:https://blog.csdn.net/a304dedige/article/details/80062042 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值