Ver Fonte

青爻公众号

cqp há 10 meses atrás
pai
commit
08c3213a7f

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

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

+ 27 - 1
app/Service/Weixin/WeixinService.php

@@ -47,7 +47,7 @@ class WeixinService extends Service
         $post = [
             'offset' => $offset,
             'count' => $count,
-            'no_content' => 0,
+            'no_content' => 1,
         ];
         $result = $this->curlOpen($url, ['post' => json_encode($post)]);
         $result = json_decode($result,true);
@@ -57,6 +57,32 @@ class WeixinService extends Service
         return [true, ['data' => $result['item'] ?? [], 'total' => $result['total_count'], 'data_count' => $result['item_count']]];
     }
 
+    public function getPublicWxArticleDetail($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未入白名单'];
+        }
+
+        if(empty($data['article_id'])) return [false, '文章ID不能为空'];
+
+        list($status, $msg) = $this->getToken();
+        if(! $status) return [false, $msg];
+
+        $config = config('qingyaoWx');
+        $url = sprintf($config['get_article_detail'], $msg);
+
+        $post = [
+            'article_id' => $data['article_id'],
+        ];
+        $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['news_item'] ?? [] ]];
+    }
+
     public function getPublicWxMaterial($data){
         list($status, $msg) = $this->rule($data);
         if(! $status) {

+ 1 - 0
config/qingyaoWx.php

@@ -7,6 +7,7 @@ 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_article_detail" => "https://api.weixin.qq.com/cgi-bin/freepublish/getarticle?access_token=%s",//文章详情
     "get_material" => "https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=%s",//永久素材列表
     "get_draft" => "https://api.weixin.qq.com/cgi-bin/draft/batchget?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('getPublicWxArticleDetail', 'Api\WeixinController@getPublicWxArticleDetail');
 Route::any('getPublicWxMaterial', 'Api\WeixinController@getPublicWxMaterial');
 Route::any('getPublicWxDraft', 'Api\WeixinController@getPublicWxDraft');