cqp 10 месяцев назад
Родитель
Сommit
6051e28007

+ 11 - 0
app/Http/Controllers/Api/WeixinController.php

@@ -42,4 +42,15 @@ class WeixinController extends BaseController
             return $this->json_return(201,$data);
         }
     }
+
+    public function getPublicWxMaterial(Request $request){
+        $service = new WeixinService();
+        list($status,$data) = $service->getPublicWxMaterial($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
 }

+ 28 - 0
app/Service/Weixin/WeixinService.php

@@ -57,6 +57,34 @@ class WeixinService extends Service
         return [true, ['data' => $result['item'] ?? [], 'total' => $result['total_count'], 'data_count' => $result['item_count']]];
     }
 
+    public function getPublicWxMaterial($data){
+        list($status, $msg) = $this->rule($data);
+        if(! $status) {
+            file_put_contents('record_ip.txt',date("Y-m-d H:i:s",time()).json_encode($data) . PHP_EOL."来源IP".$msg.PHP_EOL,8);
+            return [false, 'IP未入白名单'];
+        }
+
+        list($status, $msg) = $this->getToken();
+        if(! $status) return [false, $msg];
+
+        $config = config('qingyaoWx');
+        $url = sprintf($config['get_material'], $msg);
+
+        $offset = empty($data['page_index']) ? 1 : $data['page_index'] - 1;
+        $count = empty($data['page_size']) || $data['page_size'] > 10 ? 10 : $data['page_size'];
+        $post = [
+            'offset' => $offset,
+            'count' => $count,
+            'type' => 'news',
+        ];
+        $result = $this->curlOpen($url, ['post' => json_encode($post)]);
+        $result = json_decode($result,true);
+
+        if(isset($result['errmsg'])) return [false, $result['errmsg']];
+
+        return [true, ['data' => $result['item'] ?? [], 'total' => $result['total_count'], 'data_count' => $result['item_count']]];
+    }
+
     public function rule($data){
         // 获取用户的IP地址
         $userIP = $_SERVER['REMOTE_ADDR'];

+ 1 - 0
config/qingyaoWx.php

@@ -7,5 +7,6 @@ return [
     "appsecret" => "25b2455c0cd6e87c73c9912ba1523aee",
     "get_token" => "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s",
     "get_article" => "https://api.weixin.qq.com/cgi-bin/freepublish/batchget?access_token=%s",
+    "get_material" => "https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=%s",
 ];
 

+ 1 - 0
routes/weixin.php

@@ -13,6 +13,7 @@
 
 Route::any('checkForWx', 'Api\WeixinController@checkForWx');
 Route::any('getPublicWxArticle', 'Api\WeixinController@getPublicWxArticle');
+Route::any('getPublicWxMaterial', 'Api\WeixinController@getPublicWxMaterial');
 
 Route::group(['middleware'=> ['checkWeixin']],function ($route){