Apiexpress.php 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666
  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3. /**
  4. * 本类是为了让商城网站可以查询快递轨迹开发出来的 后期可能会增加其他功能 对外的
  5. */
  6. class Apiexpress extends Start_Controller {
  7. public function __construct(){
  8. parent::__construct();
  9. $this->load->_model('Model_logic_order','logic_order');
  10. $this->load->_model('Model_logic_tools','logic_tools');
  11. $this->load->_model('Model_awlgx','awlgx');
  12. $this->load->_model("Model_express","express");
  13. $this->load->_model("Model_logic_ding","logic_ding");
  14. }
  15. private $key = "6amg!pnfrlbpnjgirv"; //加密所需要到的key
  16. private $iv = "6ook4k!2w94m6jtm";//加密所需要到的iv
  17. //定义方法的调用规则 获取URI第二段值
  18. public function _remap($arg,$arg_array)
  19. {
  20. if($arg == 'search')
  21. {
  22. $this->search();
  23. }else if($arg == 'logistics'){
  24. $this->_logistics();
  25. }
  26. else{
  27. $this->_a();
  28. }
  29. }
  30. public function _a(){
  31. die();
  32. }
  33. /**
  34. * 搜索订单状态和快递信息接口
  35. * @param $arg_array[0] string 请求店铺
  36. * @param $arg_array[1] string 请求单号
  37. */
  38. public function searchcsss(){
  39. $data = file_get_contents('PHP://input');
  40. $data = json_decode($data, true);
  41. $shop = isset($data['shop'])?$data['shop']:"";
  42. $order_no = isset($data['order_no'])?$data['order_no']:"";
  43. $apply_time = isset($data['time'])?$data['time']:0;
  44. $jiami_str = isset($data['key'])?$data['key']:"";
  45. $now_time = time();
  46. if(strlen( $apply_time."") != 10){
  47. die($this->logic_tools->ret_json(-1,"参数异常"));
  48. }
  49. if(empty($shop)){
  50. die($this->logic_tools->ret_json(-1,"请求店铺异常"));
  51. }
  52. $shop_key = $this->logic_tools->getshopname($shop);
  53. if(empty($jiami_str)){
  54. die($this->logic_tools->ret_json(-1,"秘钥信息不存在"));
  55. }
  56. $jiemi_str = $this->logic_tools->toolsjiemi($jiami_str,$this->key,$this->iv);
  57. if(empty($shop_key)){
  58. die($this->logic_tools->ret_json(-1,"该店铺的秘钥不存在"));
  59. }
  60. $jiemi_arr = explode("+",$jiemi_str);
  61. $jiemi_key = isset($jiemi_arr[0])?$jiemi_arr[0]:"";
  62. $jiemi_time = isset($jiemi_arr[1])?$jiemi_arr[1]:"";
  63. if((int)$jiemi_time != (int)$apply_time){
  64. die($this->logic_tools->ret_json(-1,"请求超时"));
  65. }
  66. if( $now_time - $apply_time > 100){
  67. die($this->logic_tools->ret_json(-1,"请求已超时"));
  68. }
  69. if($jiemi_key != $shop_key){
  70. die($this->logic_tools->ret_json(-1,"该店铺的秘钥不正确"));
  71. }
  72. if(empty($order_no)){
  73. die($this->logic_tools->ret_json(-1,"请求单号异常"));
  74. }
  75. $table_name = $this->logic_tools->getOrderTable($shop);
  76. if(empty($table_name)){
  77. die($this->logic_tools->ret_json(-1,"店铺未开通此功能!!!"));
  78. }
  79. $info = $this->logic_order->getInfoByTableName($table_name,"orderinfo = '".$shop.$order_no. "' and shop = ".$shop,"id,express,excontent,expressstate,waybill,dtime,printtime,client,name,country,province,city,address,address2,street,phone,zipcode,dlzemailtime");
  80. if(empty($info)){
  81. die($this->logic_tools->ret_json(-1,"未查询到相关快递信息"));
  82. }
  83. $receive_time = "";//客户签到时间
  84. $shipping_time = "";//快递接受发货时间
  85. $express_trace = [];
  86. $express_info = $this->express->read($info['express']);
  87. if(!empty($info['excontent'])){
  88. $tmp_arr = explode("<br />",$info['excontent']);
  89. if(!empty($tmp_arr)){
  90. $tc_tmp_str = array_pop($tmp_arr);
  91. if(empty($tmp_arr)){
  92. $express_trace = [
  93. $tc_tmp_str,
  94. ];
  95. }else{
  96. $re_arr = array_reverse($tmp_arr);
  97. if(!isset($re_arr[0])){
  98. $this->logic_ding->sendToDing("Apiexpress接口95行异常".json_encode($info,JSON_UNESCAPED_UNICODE));
  99. }
  100. if(strpos($re_arr[0],"[") !== false){
  101. $shipping_time_arr = explode("[",$re_arr[0] ) ;
  102. $shipping_time = $shipping_time_arr[0];
  103. if($info['expressstate'] == 6){
  104. $receive_tmp_arr = explode("[",$tmp_arr[0] ) ;
  105. $receive_time = $receive_tmp_arr[0];
  106. }
  107. }else{
  108. $shipping_time = date("Y-m-d H:i:s",$info['dlzemailtime']);
  109. if($info['expressstate'] == 6){
  110. $receive_time = -1;
  111. }
  112. }
  113. $express_trace = $re_arr;
  114. }
  115. ob_clean();
  116. }else{
  117. die($this->logic_tools->ret_json(-1,"物流信息存储异常"));
  118. }
  119. }else{
  120. die($this->logic_tools->ret_json(-1,"运单时间太久,暂无法查询"));
  121. }
  122. if(empty($info['dtime'])){
  123. $preparing = [
  124. "desc"=>"",
  125. "status"=>0,
  126. "date"=>"",
  127. ];
  128. }else{
  129. $preparing = [
  130. "desc"=>"The Order Has Been Created And TheMerchant lspreparing Your Order.",
  131. "status"=>1,
  132. "date"=>date("Y-m-d H:i:s",$info['dtime']),
  133. ];
  134. }
  135. if(empty($info['printtime'])){
  136. $warehouse_processing = [
  137. "desc"=>"",
  138. "status"=>0,
  139. "date"=>"",
  140. ];
  141. }else{
  142. $warehouse_processing = [
  143. "desc"=>"Packing And Final Check",
  144. "status"=>1,
  145. "date"=>date("Y-m-d H:i:s",$info['printtime']),
  146. ];
  147. }
  148. if(empty($shipping_time)){
  149. $shipping = [
  150. "desc"=>"",
  151. "status"=>0,
  152. "date"=>"",
  153. ];
  154. }else{
  155. $shipping = [
  156. "desc"=>"Courier Company Picked Up The Package",
  157. "status"=>1,
  158. "date"=>$shipping_time,
  159. ];
  160. }
  161. if(empty($receive_time)){
  162. $received = [
  163. "desc"=>"",
  164. "status"=>0,
  165. "date"=>"",
  166. ];
  167. }else{
  168. if($receive_time < 0){
  169. $received = [
  170. "desc"=>"Order signed for successfully",
  171. "status"=>1,
  172. "date"=>0,
  173. ];
  174. }else{
  175. $received = [
  176. "desc"=>"Order signed for successfully",
  177. "status"=>1,
  178. "date"=>$receive_time,
  179. ];
  180. }
  181. }
  182. $icon = 7;
  183. $final_express_name = $express_name = strtolower($express_info['iscode']);
  184. if(strpos($express_name,"usps") !== false){
  185. $icon = 1;
  186. $final_express_name = "usps";
  187. }
  188. if(strpos($express_name,"dhl") !== false){
  189. $icon = 2;
  190. $final_express_name = "dhl";
  191. }
  192. if(strpos($express_name,"ups") !== false){
  193. $icon = 3;
  194. $final_express_name = "ups";
  195. }
  196. if(strpos($express_name,"fedex") !== false){
  197. $icon = 4;
  198. $final_express_name = "fedex";
  199. }
  200. if(strpos($express_name,"aramex") !== false){
  201. $icon = 5;
  202. $final_express_name = "aramex";
  203. }
  204. if(strpos($express_name,"ges") !== false){
  205. $icon = 6;
  206. $final_express_name = "ges";
  207. }
  208. $ret_arr = [
  209. "order_no"=>$order_no,
  210. 'icon'=>$icon,
  211. "express_name"=>strtoupper($final_express_name) ,
  212. "waybill"=>$info['waybill'],
  213. "preparing"=>$preparing,//店家处理
  214. "warehouse_processing"=>$warehouse_processing,//工厂处理
  215. "shipping"=> $shipping,//快递发货
  216. "received"=>$received,//客户收货
  217. "express_trace"=>$express_trace,//快递跟踪信息
  218. "address_info"=>[
  219. "client"=>$info['client'],//客户姓名
  220. "name"=>$info['name'],//收件人姓名
  221. "country"=>$info['country'],//国家
  222. "province"=>$info['province'],//省份
  223. "city"=>$info['city'],//城市
  224. "address"=>$info['address'],//地址
  225. "address2"=>$info['address2'],//地址
  226. "street"=>$info['street'],//街道
  227. "phone"=>$info['phone'],//电话
  228. "zipcode"=>$info['zipcode'],//邮编
  229. ]
  230. ];
  231. die($this->logic_tools->ret_json(1,"success",$ret_arr));
  232. }
  233. /* 搜索订单状态和快递信息接口
  234. * @param $arg_array[0] string 请求店铺
  235. * @param $arg_array[1] string 请求单号
  236. */
  237. public function search(){
  238. $data = file_get_contents('PHP://input');
  239. $data = json_decode($data, true);
  240. $shop = isset($data['shop'])?$data['shop']:"";
  241. $order_no = isset($data['order_no'])?$data['order_no']:"";
  242. $type = isset($data['type'])?$data['type']:"";
  243. $apply_time = isset($data['time'])?$data['time']:0;
  244. $jiami_str = isset($data['key'])?$data['key']:"";
  245. $now_time = time();
  246. if(strlen( $apply_time."") != 10){
  247. die($this->logic_tools->ret_json(-1,"参数异常"));
  248. }
  249. if(empty($shop)){
  250. die($this->logic_tools->ret_json(-1,"请求店铺异常"));
  251. }
  252. $shop_key = $this->logic_tools->getshopname($shop);
  253. if(empty($jiami_str)){
  254. die($this->logic_tools->ret_json(-1,"秘钥信息不存在"));
  255. }
  256. $jiemi_str = $this->logic_tools->toolsjiemi($jiami_str,$this->key,$this->iv);
  257. if(empty($shop_key)){
  258. die($this->logic_tools->ret_json(-1,"该店铺的秘钥不存在"));
  259. }
  260. $jiemi_arr = explode("+",$jiemi_str);
  261. $jiemi_key = isset($jiemi_arr[0])?$jiemi_arr[0]:"";
  262. $jiemi_time = isset($jiemi_arr[1])?$jiemi_arr[1]:"";
  263. if((int)$jiemi_time != (int)$apply_time){
  264. die($this->logic_tools->ret_json(-1,"请求超时"));
  265. }
  266. if( $now_time - $apply_time > 100){
  267. die($this->logic_tools->ret_json(-1,"请求已超时"));
  268. }
  269. if($jiemi_key != $shop_key){
  270. die($this->logic_tools->ret_json(-1,"该店铺的秘钥不正确"));
  271. }
  272. if(empty($order_no) ){
  273. die($this->logic_tools->ret_json(-1,"请求查询的单号不能为空"));
  274. }
  275. $table_name = $this->logic_tools->getOrderTable($shop);
  276. if(empty($table_name)){
  277. die($this->logic_tools->ret_json(-1,"店铺未开通此功能!!!"));
  278. }
  279. // $type == 2 为运单号
  280. if($type == 2){
  281. $info = $this->logic_order->getInfoByTableName($table_name,"waybill = '".$order_no. "' and shop = ".$shop,"id,number,orderinfo,express,excontent,expressstate,waybill,dtime,printtime,client,name,country,province,city,address,address2,street,phone,zipcode,dlzemailtime,library,librarytime");
  282. //当检索不到运单号时,返回订单已经备货了
  283. if(empty($info)){
  284. die($this->logic_tools->ret_json(1,"success",[
  285. "order_no"=>"",
  286. 'icon'=>"",
  287. "express_name"=>"" ,
  288. "waybill"=>$order_no,
  289. "preparing"=>[
  290. "desc"=>"The Order Has Been Created And TheMerchant ls preparing Your Order.",
  291. "status"=>1,
  292. "date"=>"",
  293. "title"=>"preparing order",
  294. ],//店家处理
  295. "warehouse_processing"=>[
  296. "desc"=>"",
  297. "status"=>0,
  298. "date"=>"",
  299. "title"=>"shipped",
  300. ],//工厂处理
  301. "shipping"=> [
  302. "desc"=>"",
  303. "status"=>0,
  304. "date"=>"",
  305. "title"=>"in transit",
  306. ],//快递发货
  307. "received"=>[
  308. "desc"=>"",
  309. "status"=>0,
  310. "date"=>"",
  311. "title"=>"delivered",
  312. ],//客户收货
  313. "express_trace"=>[],//快递跟踪信息
  314. "address_info"=>[
  315. "client"=>"",//客户姓名
  316. "name"=>"",//收件人姓名
  317. "country"=>"",//国家
  318. "province"=>"",//省份
  319. "city"=>"",//城市
  320. "address"=>"",//地址
  321. "address2"=>"",//地址
  322. "street"=>"",//街道
  323. "phone"=>"",//电话
  324. "zipcode"=>"",//邮编
  325. ]
  326. ]));
  327. }
  328. }else{
  329. $info = $this->logic_order->getInfoByTableName($table_name,"orderinfo = '".$shop.$order_no. "' and shop = ".$shop,"id,number,orderinfo,express,excontent,expressstate,waybill,dtime,printtime,client,name,country,province,city,address,address2,street,phone,zipcode,dlzemailtime,library,librarytime");
  330. if(empty($info)){
  331. die($this->logic_tools->ret_json(-1,"未查询到相关快递信息"));
  332. }
  333. if(empty($info['waybill']) && ($info['printtime'])){
  334. //如果没有运单号,则返回订单已经备货了
  335. die($this->logic_tools->ret_json(1,"success",[
  336. "order_no"=>$info['number'],
  337. 'icon'=>"",
  338. "express_name"=>"" ,
  339. "waybill"=>"",
  340. "preparing"=>[
  341. "desc"=>"The Order Has Been Created And TheMerchant ls preparing Your Order.",
  342. "status"=>1,
  343. "date"=>"",
  344. "title"=>"preparing order",
  345. ],//店家处理
  346. "warehouse_processing"=>[
  347. "desc"=>"",
  348. "status"=>0,
  349. "date"=>"",
  350. "title"=>"shipped",
  351. ],//工厂处理
  352. "shipping"=> [
  353. "desc"=>"",
  354. "status"=>0,
  355. "date"=>"",
  356. "title"=>"in transit",
  357. ],//快递发货
  358. "received"=>[
  359. "desc"=>"",
  360. "status"=>0,
  361. "date"=>"",
  362. "title"=>"delivered",
  363. ],//客户收货
  364. "express_trace"=>[],//快递跟踪信息
  365. "address_info"=>[
  366. "client"=>$info['client'],//客户姓名
  367. "name"=>$info['name'],//收件人姓名
  368. "country"=>$info['country'],//国家
  369. "province"=>$info['province'],//省份
  370. "city"=>$info['city'],//城市
  371. "address"=>$info['address'],//地址
  372. "address2"=>$info['address2'],//地址
  373. "street"=>$info['street'],//街道
  374. "phone"=>$info['phone'],//电话
  375. "zipcode"=>$info['zipcode'],//邮编
  376. ]
  377. ]));
  378. }
  379. }
  380. $receive_time = "";//客户签到时间
  381. $shipping_time = "";//快递接受发货时间
  382. $express_trace = [];
  383. $express_info = $this->express->read($info['express']);
  384. if(!empty($info['excontent'])){
  385. $tmp_arr = explode("<br />",$info['excontent']);
  386. if(!empty($tmp_arr)){
  387. $tc_tmp_str = array_pop($tmp_arr);
  388. if(empty($tmp_arr)){
  389. $express_trace = [
  390. $tc_tmp_str,
  391. ];
  392. }else{
  393. $re_arr = array_reverse($tmp_arr);
  394. if(!isset($re_arr[0])){
  395. $this->logic_ding->sendToDing("Apiexpress接口95行异常".json_encode($info,JSON_UNESCAPED_UNICODE));
  396. }
  397. if(strpos($re_arr[0],"[") !== false){
  398. $shipping_time_arr = explode("[",$re_arr[0] ) ;
  399. $shipping_time = $shipping_time_arr[0];
  400. if($info['expressstate'] == 6){
  401. $receive_tmp_arr = explode("[",$tmp_arr[0] ) ;
  402. $receive_time = $receive_tmp_arr[0];
  403. }
  404. }else{
  405. $shipping_time = date("Y-m-d H:i:s",$info['dlzemailtime']);
  406. if($info['expressstate'] == 6){
  407. $receive_time = -1;
  408. }
  409. }
  410. $express_trace = $re_arr;
  411. }
  412. ob_clean();
  413. }else{
  414. die($this->logic_tools->ret_json(-1,"物流信息存储异常"));
  415. }
  416. }else{
  417. //已出库 但是超过30天没有物流信息
  418. if(($info['library'] > 1) && ( time() - $info['librarytime'] > 24 * 3600 * 30)){
  419. die($this->logic_tools->ret_json(-1,"运单时间太久,暂无法查询"));
  420. }
  421. }
  422. if(empty($info['librarytime'])){
  423. $warehouse_processing = [
  424. "desc"=>"",
  425. "status"=>0,
  426. "date"=>"",
  427. "title"=>"shipped",
  428. ];
  429. }else{
  430. $warehouse_processing = [
  431. "desc"=>"Courier company picked up the package",
  432. "status"=>1,
  433. "date"=>date("Y-m-d H:i:s",$info['librarytime']),
  434. "title"=>"shipped",
  435. ];
  436. }
  437. $shipping = [
  438. "desc"=>"",
  439. "status"=>0,
  440. "date"=>"",
  441. "title"=>"in transit",
  442. ];
  443. //在途 没有签收 并且 出库了
  444. if(empty($receive_time) && $info['librarytime'] > 0){
  445. $shipping = [
  446. "desc"=>"",
  447. "status"=>1,
  448. "date"=>"",
  449. "title"=>"in transit",
  450. ];
  451. }
  452. if(empty($receive_time)){
  453. $received = [
  454. "desc"=>"",
  455. "status"=>0,
  456. "date"=>"",
  457. "title"=>"delivered",
  458. ];
  459. }else{
  460. if($receive_time < 0){
  461. $received = [
  462. "desc"=>"Order signed for successfully",
  463. "status"=>1,
  464. "date"=>0,
  465. "title"=>"delivered",
  466. ];
  467. }else{
  468. $received = [
  469. "desc"=>"Order signed for successfully",
  470. "status"=>1,
  471. "date"=>$receive_time,
  472. "title"=>"delivered",
  473. ];
  474. }
  475. }
  476. $icon = 7;
  477. $final_express_name = $express_name = strtolower($express_info['iscode']);
  478. if(strpos($express_name,"usps") !== false){
  479. $icon = 1;
  480. $final_express_name = "usps";
  481. }
  482. if(strpos($express_name,"dhl") !== false){
  483. $icon = 2;
  484. $final_express_name = "dhl";
  485. }
  486. if(strpos($express_name,"ups") !== false){
  487. $icon = 3;
  488. $final_express_name = "ups";
  489. }
  490. if(strpos($express_name,"fedex") !== false){
  491. $icon = 4;
  492. $final_express_name = "fedex";
  493. }
  494. if(strpos($express_name,"aramex") !== false){
  495. $icon = 5;
  496. $final_express_name = "aramex";
  497. }
  498. if(strpos($express_name,"ges") !== false){
  499. $icon = 6;
  500. $final_express_name = "ges";
  501. }
  502. $ret_arr = [
  503. "order_no"=>$order_no,
  504. 'icon'=>$icon,
  505. "express_name"=>strtoupper($final_express_name) ,
  506. "waybill"=>$info['waybill'],
  507. "preparing"=>[
  508. "desc"=>"The Order Has Been Created And TheMerchant ls preparing Your Order.",
  509. "status"=>1,
  510. "date"=>"",
  511. "title"=>"preparing order",
  512. ],//店家处理
  513. "warehouse_processing"=>$warehouse_processing,//工厂处理
  514. "shipping"=> $shipping,//快递发货
  515. "received"=>$received,//客户收货
  516. "express_trace"=>$express_trace,//快递跟踪信息
  517. "address_info"=>[
  518. "client"=>$info['client'],//客户姓名
  519. "name"=>$info['name'],//收件人姓名
  520. "country"=>$info['country'],//国家
  521. "province"=>$info['province'],//省份
  522. "city"=>$info['city'],//城市
  523. "address"=>$info['address'],//地址
  524. "address2"=>$info['address2'],//地址
  525. "street"=>$info['street'],//街道
  526. "phone"=>$info['phone'],//电话
  527. "zipcode"=>$info['zipcode'],//邮编
  528. ]
  529. ];
  530. die($this->logic_tools->ret_json(1,"success",$ret_arr));
  531. }
  532. /**
  533. * 检索订单的物流信息 不含订单状态
  534. */
  535. public function _logistics(){
  536. $data = file_get_contents('PHP://input');
  537. $data = json_decode($data, true);
  538. $shop = isset($data['shop'])?$data['shop']:"";
  539. $waybill_no = isset($data['order_no'])?$data['order_no']:"";
  540. $apply_time = isset($data['time'])?$data['time']:0;
  541. $jiami_str = isset($data['key'])?$data['key']:"";
  542. $now_time = time();
  543. if(strlen( $apply_time."") != 10){
  544. echo json_encode(array('track'=>'','msg'=>'apply time format exception','success'=>0));exit;
  545. }
  546. if(empty($shop)){
  547. echo json_encode(array('track'=>'','msg'=>'The shop cannot be empty','success'=>0));exit;
  548. }
  549. $shop_key = $this->logic_tools->getshopname($shop);
  550. if(empty($jiami_str)){
  551. echo json_encode(array('track'=>'','msg'=>'This store has not configured any parameters','success'=>0));exit;
  552. }
  553. $jiemi_str = $this->logic_tools->toolsjiemi($jiami_str,$this->key,$this->iv);
  554. if(empty($shop_key)){
  555. echo json_encode(array('track'=>'','msg'=>'This shop has not configured any parameters','success'=>0));exit;
  556. }
  557. $jiemi_arr = explode("+",$jiemi_str);
  558. $jiemi_key = isset($jiemi_arr[0])?$jiemi_arr[0]:"";
  559. $jiemi_time = isset($jiemi_arr[1])?$jiemi_arr[1]:"";
  560. if((int)$jiemi_time != (int)$apply_time){
  561. //Request exceeds the deadline
  562. echo json_encode(array('track'=>'','msg'=>'Request exceeds the deadline','success'=>0));exit;
  563. }
  564. if( $now_time - $apply_time > 100){
  565. echo json_encode(array('track'=>'','msg'=>'Request exceeds the deadline','success'=>0));exit;
  566. }
  567. if($jiemi_key != $shop_key){
  568. echo json_encode(array('track'=>'','msg'=>'The key of this shop is incorrect','success'=>0));exit;
  569. }
  570. if(empty($waybill_no) ){
  571. echo json_encode(array('track'=>'','msg'=>'The tracking number requested for query cannot be empty','success'=>0));exit;
  572. }
  573. $table_name = $this->logic_tools->getOrderTable($shop);
  574. if(empty($table_name)){
  575. echo json_encode(array('track'=>'','msg'=>'The shop has not activated this feature!!!','success'=>0));exit;
  576. }
  577. $info = $this->logic_order->getInfoByTableName($table_name,"waybill = '".$waybill_no. "' and shop = ".$shop,"id,number,orderinfo,express,excontent,expressstate,waybill,dtime,printtime,client,name,country,province,city,address,address2,street,phone,zipcode,dlzemailtime,library,librarytime");
  578. if(empty($info)){
  579. $info = $this->logic_order->getInfoByTableName($table_name,"orderinfo = '".$shop.$waybill_no. "' and shop = ".$shop,"id,number,orderinfo,express,excontent,expressstate,waybill,dtime,printtime,client,name,country,province,city,address,address2,street,phone,zipcode,dlzemailtime,library,librarytime");
  580. }
  581. if(empty($info)){
  582. echo json_encode(array('track'=>'','msg'=>'No logistics information','success'=>0));exit;
  583. }
  584. if(empty($info['excontent'])){
  585. echo json_encode(array('track'=>'','msg'=>'No logistics information','success'=>0));exit;
  586. }
  587. if(strpos($info['excontent'],"[") !== false && strpos($info['excontent'],"]") !== false ){
  588. }else{
  589. echo json_encode(array('track'=>array('f'=>1,'data'=>$info['excontent']),'msg'=>'','success'=>1));exit;
  590. }
  591. $tmp_arr = explode("<br />",$info['excontent']);
  592. if(!empty($tmp_arr)){
  593. $final_arr = [];
  594. foreach($tmp_arr as $k => $v){
  595. $one_tmp_arr = explode("[",$v);
  596. $two_tmp_arr = explode("]",$one_tmp_arr[1]);
  597. $final_arr[] = $two_tmp_arr[1]." [".$two_tmp_arr[0]."] ".$one_tmp_arr;
  598. }
  599. $final_str = implode("<br />",$final_arr);
  600. ob_clean();
  601. }else{
  602. echo json_encode(array('track'=>'','msg'=>'Abnormal express delivery information','success'=>0));exit;
  603. }
  604. echo json_encode(array('track'=>array('f'=>1,'data'=>$final_str),'msg'=>'','success'=>1));exit;
  605. }
  606. }