Maison > développement back-end > tutoriel php > PHP implémente la connexion WeChat et récupère le dernier ensemble de partage de code de message dans la liste

PHP implémente la connexion WeChat et récupère le dernier ensemble de partage de code de message dans la liste

小云云
Libérer: 2023-03-20 06:24:01
original
1112 Les gens l'ont consulté

Cet article présente principalement la méthode PHP pour se connecter et capturer le dernier ensemble de messages WeChat dans la liste WeChat. Cela implique la connexion, la capture, la conversion et d'autres compétences opérationnelles associées de PHP pour l'interface WeChat. J'espère que cela aidera tout le monde.


<?php
$_G[&#39;wx_g&#39;] = array(&#39;init&#39; => array(
        "wx_content" => array("weixin_user" => "微信号码", "weixin_pass" => "微信密码")
      )
);
wx_login();
$messge_list = get_message_list();
$file_id=$messge_list[&#39;item&#39;][0][&#39;multi_item&#39;][0][&#39;file_id&#39;];
//print_r($messge_list);exit;
if(!DB::result_first("select count(weiyi_id) from test.yangang_jiaojing where weiyi_id={$file_id} ")){
  DB::query("delete from test.yangang_jiaojing");
  foreach ($messge_list[&#39;item&#39;][0][&#39;multi_item&#39;] as $key => $val){
      $val[&#39;title&#39;]=mb_convert_encoding($val[&#39;title&#39;], &#39;GBK&#39;,&#39;UTF-8&#39;);
      $val[&#39;weiyi_id&#39;]=mb_convert_encoding($val[&#39;file_id&#39;], &#39;GBK&#39;,&#39;UTF-8&#39;);
      $val[&#39;des&#39;]=mb_convert_encoding($val[&#39;digest&#39;], &#39;GBK&#39;,&#39;UTF-8&#39;);
      $val[&#39;picurl&#39;]=$val[&#39;cover&#39;];
      $val[&#39;detail&#39;]=$val[&#39;content_url&#39;];
      $query_cheng = "INSERT INTO test.yangang_jiaojing(weiyi_id,title,pic_url,detail_url,des)VALUES ({$val[&#39;weiyi_id&#39;]},&#39;{$val[&#39;title&#39;]}&#39;,&#39;{$val[&#39;picurl&#39;]}&#39;,&#39;{$val[&#39;detail&#39;]}&#39;,&#39;{$val[&#39;des&#39;]}&#39;)";
      $count1=DB::query($query_cheng);
  }
}
function get_message_list(){
  global $_G;
  $cookie=$_G[&#39;wx_g&#39;][&#39;cookie&#39;];
  $url = "https://mp.weixin.qq.com/cgi-bin/appmsg?begin=0&count=2&t=media/appmsg_list&type=10&action=list&token=".$_G[&#39;wx_g&#39;][&#39;token&#39;]."&lang=zh_CN";
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_COOKIE, $cookie);
  curl_setopt($ch, CURLOPT_REFERER, "https://mp.weixin.qq.com/cgi-bin/appmsg?begin=0&count=2&t=media/appmsg_list&type=10&action=list&token=".$_G[&#39;wx_g&#39;][&#39;token&#39;]."&lang=zh_CN");
  curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:18.0) Gecko/20100101 Firefox/18.0");
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  curl_setopt($ch, CURLOPT_SSLVERSION, 3);
  $output2 = curl_exec($ch);
  curl_close($ch);
  //echo $output2;exit;
  $output1=explode(&#39;wx.cgiData = &#39;,$output2);
  $output1=$output1[1];
  $output1=explode(&#39;,"file_cnt":&#39;,$output1);
  $output1=$output1[0];
  $output1.=&#39;}&#39;;
  $message_list=json_decode($output1,true);
  //$message_list=mb_convert_encoding($message_list, "GBK","UTF-8");
  //print_r($message_list);exit;
  return $message_list;
}
function wx_login(){
  global $_G;
  //echo $_G[&#39;wx_g&#39;][&#39;init&#39;][&#39;wx_content&#39;][&#39;weixin_user&#39;];exit;
  $username = $_G[&#39;wx_g&#39;][&#39;init&#39;][&#39;wx_content&#39;][&#39;weixin_user&#39;];
  $pwd = md5($_G[&#39;wx_g&#39;][&#39;init&#39;][&#39;wx_content&#39;][&#39;weixin_pass&#39;]);
  $url = "https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN";
  $post_data = "username=".$username."&pwd=".$pwd."&imgcode=&f=json";
  $cookie = "pgv_pvid=2067516646";
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
  curl_setopt($ch, CURLOPT_COOKIE, $cookie);
  curl_setopt($ch, CURLOPT_REFERER, "https://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm2-login&lang=zh_CN");
  curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:18.0) Gecko/20100101 Firefox/18.0");
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  curl_setopt($ch, CURLOPT_SSLVERSION, 3);
  $output = curl_exec($ch);
  curl_close($ch);
  //echo $output;exit;
  list($header, $body) = explode("\r\n\r\n", $output);
  preg_match_all("/set\-cookie:([^\r\n]*)/i", $header, $matches);
  if(!empty($matches[1][2])){
    $cookie = $matches[1][0].$matches[1][1].$matches[1][2].$matches[1][3];
  }else{
    $cookie = $matches[1][0].$matches[1][1];
  }
  $cookie = str_replace(array(&#39;Path=/&#39;,&#39; ; Secure; HttpOnly&#39;,&#39;=;&#39;),array(&#39;&#39;,&#39;&#39;,&#39;=&#39;), $cookie);
  $cookie = &#39;pgv_pvid=6648492946;&#39;.$cookie;
  $data = json_decode($body,true);
  $result = explode(&#39;token=&#39;,$data[&#39;redirect_url&#39;]);
  $token = $result[1];
  if(!$token) cpmsg($installlang[&#39;import_error_password&#39;], "{$request_url}&step=import&pswerror=1", &#39;error&#39;);
  //写入到全局变量
  $_G[&#39;wx_g&#39;][&#39;cookie&#39;] = $cookie;
  $_G[&#39;wx_g&#39;][&#39;token&#39;] = $token;
}
?>
Copier après la connexion


CREATE TABLE IF NOT EXISTS `yangang_jiaojing` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `title` varchar(100) NOT NULL,
 `des` varchar(300) NOT NULL,
 `detail_url` varchar(300) NOT NULL,
 `pic_url` varchar(300) NOT NULL,
 `note` varchar(50) NOT NULL,
 `weiyi_id` int(11) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk AUTO_INCREMENT=1 ;
Copier après la connexion


Recommandations associées :

Utilisez ThinkPHP comme backend pour la connexion WeChat

Applet WeChat - explication détaillée de la connexion WeChat, du paiement WeChat, du modèle de message

capture php WeChat list La dernière série de messages WeChat dans

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal