Apiexpress.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3. class Apiexpress extends Start_Controller {
  4. public function __construct(){
  5. parent::__construct();
  6. $this->load->_model('Model_logic_order','logic_order');
  7. $this->load->_model('Model_logic_tools','logic_tools');
  8. $this->load->_model('Model_awlgx','awlgx');
  9. $this->load->_model("Model_express","express");
  10. }
  11. private $key = "6amgv!pnfrlbpnjgir"; //加密所需要到的key
  12. private $iv = "6ook4k!2w94m6jtm";//加密所需要到的iv
  13. //定义方法的调用规则 获取URI第二段值
  14. public function _remap($arg,$arg_array)
  15. {
  16. if($arg == 'search')
  17. {
  18. $this->search($arg_array);
  19. }else{
  20. $this->_a();
  21. }
  22. }
  23. public function _a(){
  24. die();
  25. }
  26. /**
  27. * 搜索订单状态和快递信息接口
  28. * @param $arg_array[0] string 请求店铺
  29. * @param $arg_array[1] string 请求单号
  30. */
  31. public function search($arg_array){
  32. $shop = isset($arg_array[0])?$arg_array[0]:"";
  33. $waybill_no = isset($arg_array[1])?$arg_array[1]:"";
  34. $time = isset($arg_array[2])?$arg_array[2]:0;
  35. $now_time = time();
  36. if(strlen( $time."") != 10){
  37. die($this->logic_tools->ret_json(-1,"参数异常"));
  38. }
  39. // if( $now_time - $time > 3){
  40. // die($this->logic_tools->ret_json(-1,"该功能已禁用"));
  41. // }
  42. if(empty($shop)){
  43. die($this->logic_tools->ret_json(-1,"请求店铺异常"));
  44. }
  45. $shop_key = $this->logic_tools->getshopname($shop);
  46. if(empty($shop_key)){
  47. die($this->logic_tools->ret_json(-1,"该店铺的秘钥不存在"));
  48. }
  49. if(empty($waybill_no)){
  50. die($this->logic_tools->ret_json(-1,"请求单号异常"));
  51. }
  52. $table_name = $this->logic_tools->getOrderTable($shop);
  53. if(empty($table_name)){
  54. die($this->logic_tools->ret_json(-1,"店铺未开通此功能!!!"));
  55. }
  56. $info = $this->logic_order->getInfoByTableName($table_name,"waybill = ".$waybill_no. " and shop = ".$shop,"id,express,excontent,expressstate,waybill,dtime,printtime");
  57. if(empty($info)){
  58. die($this->logic_tools->ret_json(-1,"未查询到相关快递信息"));
  59. }
  60. $receive_time = "";//客户签到时间
  61. $shipping_time = "";//快递接受发货时间
  62. $express_trace = [];
  63. $express_info = $this->express->read($info['express']);
  64. if(!empty($info['excontent'])){
  65. $tmp_arr = explode("<br />",$info['excontent']);
  66. array_pop($tmp_arr);
  67. $re_arr = array_reverse($tmp_arr);
  68. $shipping_time_arr = explode("[",$re_arr[0] ) ;
  69. $shipping_time = $shipping_time_arr[0];
  70. if($info['expressstate'] == 6){
  71. $receive_tmp_arr = explode("[",$tmp_arr[0] ) ;
  72. $receive_time = $receive_tmp_arr[0];
  73. }
  74. $express_trace = $re_arr;
  75. }
  76. $ret_arr = [
  77. "express_name"=>$express_info['iscode'],
  78. "waybill"=>$info['waybill'],
  79. "preparing"=>empty($info['dtime'])?"":date("Y-m-d H:i:s",$info['dtime']),//店家处理
  80. "warehouse_processing"=>empty($info['printtime'])?"":date("Y-m-d H:i:s",$info['printtime']),//工厂处理
  81. "shipping"=>$shipping_time,//快递发货
  82. "received"=>$receive_time,//客户收货
  83. "express_trace"=>$express_trace,//快递跟踪信息
  84. ];
  85. die($this->logic_tools->ret_json(1,"success",$ret_arr));
  86. }
  87. }