Browse Source

准备正事启用fedexv1

lvhao 6 months ago
parent
commit
ac5c400756
1 changed files with 68 additions and 3 deletions
  1. 68 3
      core/CoreApp/models/Model_fedexv1.php

+ 68 - 3
core/CoreApp/models/Model_fedexv1.php

@@ -14,6 +14,9 @@ class Model_Fedexv1 extends Lin_Model {
         'secret' =>'475eb390bf334bda8b5f44f1c07b7c10',
         "client_id"=>"l7c6ae3d27cce34bdca31cf6e0ff4af125",
         "client_secret"=>"475eb390bf334bda8b5f44f1c07b7c10",
+        //追物流轨迹的
+        'track_key'=>"l71bded23966b144df9fc01956f6dd655d",
+        'track_secret'=>"61730ddbae764dcba70f4737cdaaa6e7"
     ];
 
     public function getAccessToken(){
@@ -31,7 +34,6 @@ class Model_Fedexv1 extends Lin_Model {
 
     }
 
-
     public function makeAccessToken(){
         $url = "/oauth/token";
         $headers = [
@@ -53,6 +55,45 @@ class Model_Fedexv1 extends Lin_Model {
         }
         return $res['access_token'];
     }
+
+    public function getTrackToken(){
+        $res = $this->setting->find("skey='fedex_v1_track_access_token'");
+       
+        if($res){
+            if(time() > $res['expiretime']){
+                $this->setting->query("DELETE FROM `crowd_setting` WHERE `skey`='fedex_v1_track_access_token'");
+                return $this->makeTrackToken();
+            }
+            return $res['svalue'];
+        }else{
+            return $this->makeTrackToken();
+        }
+    }
+
+    public function makeTrackToken(){
+        $url = "/oauth/token";
+        $headers = [
+            "Content-Type:application/x-www-form-urlencoded",
+        ];
+        $params = [
+            "grant_type"=>"client_credentials",
+            "client_id"=> $this->f_config['track_key'],  
+            "client_secret"=> $this->f_config['track_secret'],
+        ]; 
+        $params=http_build_query($params);
+        $res =  $this->sendPost($url,$params,$headers);
+        if(isset($res['access_token'])){
+            $this->setting->insert([
+                'skey'=>"fedex_v1_track_access_token",
+                'svalue' => $res['access_token'],
+                'expiretime' => time() + 3600 -10
+            ]);
+        }
+        return $res['access_token'];
+    }
+
+
+    
     
     private function setData($order_info){
         $customer_streets = [];
@@ -256,7 +297,31 @@ class Model_Fedexv1 extends Lin_Model {
 
     //根据单号获取 快递信息
     public function  get_logistics($number){
-
+        $url = "/track/v1/trackingnumbers";
+        $params = [
+           "includeDetailedScans"=>false,
+           "trackingInfo"=>[
+                [
+                    "trackingNumberInfo"=>[
+                        "trackingNumber"=> $number['waybill']
+                    ]
+                ]
+           ]
+        ];
+        $headers = [
+            "Content-Type:application/json",
+            "Authorization: Bearer ".$this->getTrackToken(),
+            "x-locale" => "en_US",//这个是语种加国家
+            "Accept: application/json",
+        ];
+        $params=json_encode($params);
+        var_dump(json_encode($headers));
+        var_dump($params);
+        var_dump($this->getTrackToken());
+        $res =  $this->sendPost($url,$params,$headers);
+        var_dump(json_encode($res));
+        echo "<pre>";
+        var_dump($res);
     }
 
 
@@ -267,7 +332,7 @@ class Model_Fedexv1 extends Lin_Model {
         // 设置请求的URL
         $all_url = $this->base_url.$url;
        
-        var_dump($all_url);
+        //var_dump($all_url);
         // 初始化cURL会话
         $ch = curl_init($all_url);
         // 设置cURL选项