对接快递鸟电子面单批量打印
批量打印的流程:
1、先调用电子面单打印接口获得必须字段:OrderCode(订单号)
2、拼接组合打印的数据data:格式json_encode([0=>['OrderCode' => '订单号1', 'PortName' => '打印机名称']]);
3、签名
所需参数:
(1)、第二部拼接好的data,如下图:

(2)、连接打印机的主机外网ip
(3)、用户申请的快递鸟的APIKey
注意:(2)、(3)结合方式:ip . data 生产新的data,并用签名函数生成签名,如下图


签名代码如下:

4、表单的组装:

以上流程,官方给的demo中都有,主要需要注意的点是如果快递鸟批量打印接口中返回错误总是提示 数据验证不通过 的话,需要注意的是客户端ip地址的获取,签名的数据拼接及表单数据的拼接方式,用户的appkey和商户ID是否正确等等;
以下是需要注意的点
一、连接打印机的ip获取是否有误?
(1)、如果是在本地做测试,那么官方提供的获取本机ip地址是不行的,需要使用一下代码:

以上代码的原地址忘记了,勿怪
(2)、若是正式环境的话,则直接用官方demo就可以了,代码如下:
二、获取签名时,数据的拼接是否有误?
原来的代码中是用urlencode的形式将data数据进行编码再签名的,后期貌似不用进行url编码,且提交表单中的请求数据必须加转义字符
网友评论