关于快递鸟的顺丰电子面单打印

news/2024/11/24 1:44:12/

1.form表单传递数据,到控制器,之后的复制操作

 1    顺丰信息
 2                     //快递信息
 3                     $eorder = [];
 4                     $eorder["ShipperCode"] = $express_number[$number];  //快递公司编码
 5                     $eorder["OrderCode"] = $ship_order_data['ship_order_number']; //发货单编号()
 6 
 7                     $eorder["PayType"] = 3;  //支付快递方式 1现付 2到付 3月结 4第三方
 8                     $eorder["ExpType"] = $express_type;  //快递类型 1次日达 2 隔日达
 9                     $eorder["IsReturnPrintTemplate"] = 1;  //是否需要电子面单 1需要 0不
10                     //目前接口中每家快递公司配置需求与值都不相同  部分需单独当地网点申请帐号密码
11                     if($number == 1){  //顺丰
12                         //  $eorder["MonthCode"] = '5270013057';  //月结卡号 月结类型必填
13                         $eorder["MonthCode"] = '5270325075';  //月结卡号 月结类型必填
14                     }
15 
16                     //发货信息
17                     $sender = [];
18                     $sender["Name"] = $ship_order_data['send_username'];
19                     $sender["Mobile"] = $ship_order_data['send_phone'];
20                     $sender["ProvinceName"] = $ship_order_data['send_province'];
21                     $sender["CityName"] = $ship_order_data['send_city'];
22                     $sender["ExpAreaName"] = $ship_order_data['send_exparea'];
23                     $sender["Address"] = $ship_order_data['send_address'];
24 //                $sender["Name"] = '豹子头';
25 //                $sender["Mobile"] = '13588243329';
26 //                $sender["ProvinceName"] = '江苏省';
27 //                $sender["CityName"] = '宿迁市';
28 //                $sender["ExpAreaName"] = '泗阳县';
29 //                $sender["Address"] = '淮海东路11号';
30                     //收货信息
31                     $receiver = [];
32                     $receiver["Name"] = $ship_order_data['username'];
33                     $receiver["Mobile"] = $ship_order_data['phone'];
34                     $receiver["ProvinceName"] = $ship_order_data['province'];
35                     $receiver["CityName"] = $ship_order_data['city'];
36                     $receiver["ExpAreaName"] = $ship_order_data['exparea'];
37                     $receiver["Address"] = $ship_order_data['address'];
38 //                $receiver["Name"] = '王先生';
39 //                $receiver["Mobile"] = '15282334566';
40 //                $receiver["ProvinceName"] = '四川省';
41 //                $receiver["CityName"] = '成都市';
42 //                $receiver["ExpAreaName"] = '青羊区';
43 //                $receiver["Address"] = '一环路东四段';
44 
45                     $commodityOne = [];
46                     $commodityOne["GoodsName"] = '衬衫*'.$total_number.'件';  //商品名 数量
47 //              dump($commodityOne);die;
48                     $commodity = [];
49                     $commodity[] = $commodityOne;
50 
51                     $eorder["Sender"] = $sender;
52                     $eorder["Receiver"] = $receiver;
53                     $eorder["Commodity"] = $commodity;
54 
55                     //备注
56                     $ship_order_data['ship_order_number'];
57                     $eorder["Remark"] = db('ship_box')->where('ship_order_num', $ship)->value('box_num');
58                     $eorder["Remark"] .= '号框';
59 
60                     //调用电子面单
61                     $jsonParam = json_encode($eorder, JSON_UNESCAPED_UNICODE);
62                     //电子面单提交结果
63                     $jsonResult = $this->submitEOrder($jsonParam);
64                     //  dump($eorder);die;
65                     //解析电子面单返回结果
66                     $result = json_decode($jsonResult, true);
67 
68              echo "<script>alert('发货信息已成功提交至快递公司,请打印电子面单!');parent.location.reload();</script>";
69                         echo $result['PrintTemplate'];//打印PrintTemplate的数据
70               echo "<script>print()</script>";

第二部.这是签名和提交的方法

 1  /**
 2      * Json方式 调用电子面单接口
 3      */
 4     public function submitEOrder($requestData)
 5     {
 6         $express_config = config('KUAIDINIAO');//信息配置在config的信息,你也可以写死
 7         $datas = array(//必须
 8             'EBusinessID' => $express_config['EBusinessID'],
 9             'RequestType' => '1007',
10             'RequestData' => urlencode($requestData),
11             'DataType' => '2',
12         );
13         $datas['DataSign'] = $this->encrypt($requestData, $express_config['AppKey']);//获取签名
14         $result = $this->sendPost($express_config['ReqURL'], $datas);//提交数据
15         return $result;
16     }
17     /**
18      * 电商Sign签名生成
19      * @param data 内容
20      * @param appkey Appkey
21      * @return DataSign签名
22      */
23     public function encrypt($data, $appkey)
24     {
25         return urlencode(base64_encode(md5($data . $appkey)));
26     }
27     /**
28      *  post提交数据
29      * @param  string $url 请求Url
30      * @param  array $datas 提交的数据
31      * @return url响应返回的html
32      */
33     public function sendPost($url, $datas)
34     {
35         $temps = array();
36         foreach ($datas as $key => $value) {
37             $temps[] = sprintf('%s=%s', $key, $value);
38         }
39         $post_data = implode('&', $temps);
40         $url_info = parse_url($url);
41         if (empty($url_info['port'])) {
42             $url_info['port'] = 80;
43         }
44         $httpheader = "POST " . $url_info['path'] . " HTTP/1.0\r\n";
45         $httpheader .= "Host:" . $url_info['host'] . "\r\n";
46         $httpheader .= "Content-Type:application/x-www-form-urlencoded\r\n";
47         $httpheader .= "Content-Length:" . strlen($post_data) . "\r\n";
48         $httpheader .= "Connection:close\r\n\r\n";
49         $httpheader .= $post_data;
50         $fd = fsockopen($url_info['host'], $url_info['port']);
51         fwrite($fd, $httpheader);
52         $gets = "";
53         $headerFlag = true;
54         while (!feof($fd)) {
55             if (($header = @fgets($fd)) && ($header == "\r\n" || $header == "\n")) {
56                 break;
57             }
58         }
59         while (!feof($fd)) {
60             $gets .= fread($fd, 128);
61         }
62         fclose($fd);
63 
64         return $gets;
65     }

 

快递鸟的顺丰比较简单,这就完成了,如果你有什么不理解的,可以给我留言

转载于:https://www.cnblogs.com/luojie-/p/8537676.html


http://www.ppmy.cn/news/777870.html

相关文章

打印顺丰电子面单SDK调用总结-java

一、获得顺丰电子面单SDK https://qiao.sf-express.com/index.html 丰桥系统中,文档中心->SDK使用说明->运单自助打印SDK 顺丰电子面单SDK-1.0.3 支持的开发环境: Java sdk 支持1.8及以上 二、启动SDK本地服务:

保姆级对接顺丰的聚顺

针对聚顺可以直接用的代码 发货接收的Controller下单退单的实现实现方法实现方法的工具类抽取公共模块简略计算签名将Object对象里面的属性和值转化成Map对象 工具类签名方法MD5加密HTTPUtil 实体类AskFromJuShunContentDetailInvoiceJuShunResultOrderPickedUpParamPromotionR…

顺丰 丰桥接口 php版

<?php /*** 顺丰Bsf接口类* Created by PhpStorm.* Author: duyaqiong* Email:976352324qq.com* Date: 2018/6/8*/class Bsf {//顺丰接口配置protected $config [accesscode > xxxxxxxxxx , //商户号码checkword > xxxxxxxxxxxxxxxxx…

快递到付被拒收怎么办?双方都拒收货物会怎么处理?

近日&#xff0c;在深圳从事电商生意的刘女士遇上了这么一件怪事:在客户自称自负邮费的前提下&#xff0c;给客户发来去了产品样品&#xff0c;用的顺丰到付&#xff0c;可客户居然看了之后直接拒收了。这可把刘女士气坏了&#xff0c;深圳离黑龙江那么远&#xff0c;邮费又不便…

自动化测试 selenium 篇

✏️作者&#xff1a;银河罐头 &#x1f4cb;系列专栏&#xff1a;JavaEE &#x1f332;“种一棵树最好的时间是十年前&#xff0c;其次是现在” 目录 什么是自动化测试&#xff1f;Selenium 介绍Selenium 是什么Selenium 特点工作原理 seleniumJava环境搭建ChromeJava1.下载ch…

免费顺丰快递单号查询电子面单api接口对接【快递鸟API】

顺丰速运快递查询接口API和电子面单接口怎么对接&#xff1f; 除了通过顺丰自己的接口对接外&#xff0c;用的最多的就是第三方通过快递鸟对接了&#xff0c;通过顺丰单号和手机号后四位查询轨迹信息&#xff0c;如果是通过快递鸟下单获得的顺丰单号&#xff0c;可通过单号直接…

java 对接顺丰快递进行寄件操作 (使用RestTemplate 请求)

相关资料 顺丰统一接入平台 &#xff1a;https://freight.sf-express.com/api/api.html#id28 顺丰在线查询物流信息地址&#xff1a; https://www.sf-express.com/cn/sc/dynamic_function/waybill/#search/bill-number/SF1193907051991 SF1193907051991] 为快递号 -> 修改…

顺丰速运电子面单打印步骤 快递鸟教程

快递鸟对外提供的电子面单接口可以实现自助打印电子面单&#xff0c;然后提供给顺丰网点发货&#xff0c;下面就来教大家如何实现吧。 工具/原料 快递鸟账号 顺丰月结帐号 电子面单打印机 方法/步骤 1、 申请快递鸟用户ID和API key 1.1 登录快递鸟官网注册页面http://www.k…