PHP curl模拟登录微信公众平台群发微信的例子

发布时间:2020-01-15编辑:脚本学堂
本文介绍了php curl模拟登录微信公众平台,并群发微信的方法,php模拟登录综合实例,php curl模拟登录的例子,需要的朋友参考下。

PHP curl模拟登陆微信公众平台并群发微信

1,文件1 weixinFunc.php
 

复制代码 代码示例:
<?
function init($user,$password){ //初始化,登陆微信平台
 global $cookie_file;
 $url = "http://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN";
 $fields = array('username' => $user, 'pwd' => md5($password), 'imgcode' => '', 'verify' => '', 'f' => 'json');
 $cookie_file = dirname(__FILE__)."/cookie.txt"; // 用来存放cookie的文件
 $ch = curl_init(); // 启动一个CURL会话
 curl_setopt($ch, CURLOPT_URL, $url); // 要访问的地址
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查,0表示阻止对证书的合法性的检查。
 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
 //模拟用户使用的浏览器,在HTTP请求中包含一个”user-agent”头的字符串。
 curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
 // 发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。
 curl_setopt($ch, CURLOPT_POST, 1);
 //要传送的所有数据,如果要传送一个文件,需要一个@开头的文件名
 curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
 //连接关闭以后,存放cookie信息的文件名称
 curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
 // 包含cookie信息的文件名称,这个cookie文件可以是Netscape格式或者HTTP风格的header信息。
 curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
 // 获取的信息以文件流的形式返回,而不是直接输出。
 curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
 $result = curl_exec($ch); // 执行操作
 if ($result == NULL) {
  echo "Error:";
  echo curl_errno($ch) . " – " . curl_error($ch) . "";
 }
 curl_close($ch); // 关闭CURL会话
 $result=json_decode($result,true);
 $result=$result['ErrMsg'];
 preg_match_all('/token=(d+)/s',$result,$matches);
 $result=$matches[1][0];
 return $result;
}
 
function weixinpost($tofakeid,$content){
 global $result,$cookie_file;
 $url2 = "https://mp.weixin.qq.com/cgi-bin/singlesend?t=ajax-response&lang=zh_CN";
 $post_data = array("tofakeid" => $tofakeid,"type" => "1","content" => $content,"token" => $result,"ajax" => "1","error" => "false");
 $ch2 = curl_init();
 curl_setopt($ch2, CURLOPT_URL, $url2);
 curl_setopt($ch2, CURLOPT_REFERER, 'https://mp.weixin.qq.com/cgi-bin/singlemsgpage?t=wxm-singlechat&lang=zh_CN');
 //curl_setopt($ch2, CURLOPT_REFERER, 'https://mp.weixin.qq.com/cgi-bin/singlemsgpage?token='.$result.'&fromfakeid='.$tofakeid.'&msgid=&source=&count=20&t=wxm-singlechat&lang=zh_CN');//模拟来源
 curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);  //时候将获取数据返回
 // 我们在POST数据哦!
 curl_setopt($ch2, CURLOPT_POST, 1); //设置为POST传输
 // 把post的变量加上
 curl_setopt($ch2, CURLOPT_POSTFIELDS, $post_data); //post过去数据
 curl_setopt($ch2, CURLOPT_COOKIEFILE, $cookie_file);    //读取cookie
 curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, 1);
 curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch2, CURLOPT_SSL_VERIFYHOST, false);
 curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false);
 $output = curl_exec($ch2);
 if($output === false){  //判断错误
  echo curl_error($ch2);
 }
 $info = curl_getinfo($ch2);  //能够在cURL执行后获取这一请求的有关信息
 curl_close($ch2);
 print_r ($output.'<br>');
}
?>
 

weixindenglu.php
 

复制代码 代码示例:

<?
require_once('weixinFunc.php');
$user='service-jd@jssdw.com';
$password='******';
$result=init($user,$password);
//echo ($result);
// 开始群发微信
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, 'https://mp.weixin.qq.com/cgi-bin/contactmanagepage?t=wxm-friend&token='.$result.'&lang=zh_CN&pagesize=10&pageidx=0&type=0&groupid=0');
curl_setopt($ch2, CURLOPT_COOKIEFILE, $cookie_file);    //读取cookie
curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch2, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false);
$data = curl_exec($ch2);
//print_r ($data);
curl_close($ch2);
preg_match_all('/fakeId" : "(d+)"/s',$data,$matches);//带引号
//print_r ($matches);
$new_arr=array_unique($matches[1]);//去除数组中重复的值
foreach($new_arr as $key){
 //echo $key."</br>";
 weixinpost($key,"测试微信公众平台群发信息到用户功能!!!");
}

?>

3,文件3 
weixinpost.php
 

复制代码 代码示例:

<?
require_once('weixinFunc.php');
$url = "http://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN";
//$fields = "username=71512398&pwd=**********************&imgcode=&verify=&f=json";
$fields = array('username' => '71512398', 'pwd' => '***********************************', 'imgcode' => '', 'verify' => '', 'f' => 'json');
 
// 用来存放cookie的文件
$cookie_file = dirname(__FILE__)."/cookie.txt";

// 启动一个CURL会话
$ch = curl_init();
// 要访问的地址
curl_setopt($ch, CURLOPT_URL, $url);
// 对认证证书来源的检查,0表示阻止对证书的合法性的检查。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
// 从证书中检查SSL加密算法是否存在
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
//模拟用户使用的浏览器,在HTTP请求中包含一个”user-agent”头的字符串。
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
// 发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。
curl_setopt($ch, CURLOPT_POST, 1);
//要传送的所有数据,如果要传送一个文件,需要一个@开头的文件名
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
//连接关闭以后,存放cookie信息的文件名称
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
// 包含cookie信息的文件名称,这个cookie文件可以是Netscape格式或者HTTP风格的header信息。
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
// 设置curl允许执行的最长秒数
//curl_setopt($ch, CURLOPT_TIMEOUT, 6);
// 获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
// 执行操作
$result = curl_exec($ch);
//print_r ($result);
if ($result == NULL) {
 echo "Error:";
 echo curl_errno($ch) . " – " . curl_error($ch) . "";}
 // 关闭CURL会话
 curl_close($ch);
 //echo ($result);
 $result=json_decode($result,true);
 //print_r ($result);
 $result=$result['ErrMsg'];
 preg_match_all('/token=(d+)/s',$result,$matches);
 $result=$matches[1][0];
 
 $ch2 = curl_init();
 curl_setopt($ch2, CURLOPT_URL, 'https://mp.weixin.qq.com/cgi-bin/contactmanagepage?t=wxm-friend&token='.$result.'&lang=zh_CN&pagesize=10&pageidx=0&type=0&groupid=0');
 curl_setopt($ch2, CURLOPT_COOKIEFILE, $cookie_file);    //读取cookie
 curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, 1);
 curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch2, CURLOPT_SSL_VERIFYHOST, false);
 curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false);
 $data = curl_exec($ch2);
 //print_r ($data);
 curl_close($ch2);
 preg_match_all('/fakeId" : "(d+)"/s',$data,$matches);//带引号
 //print_r ($matches);
 $new_arr=array_unique($matches[1]);//去除数组中重复的值
 //foreach($new_arr as $key){
  //echo $key."</br>";
  weixinpost('937814962',"测试微信公众平台群发信息到用户功能!!!");
 //}
?>

>>> 更多 php模拟登录 文章,专题链接:php模拟登录 php curl模拟登录教程大全