您正在使用 IPV4 [100.26.135.252] 访问本站,您本次已经查看了 1 页
用户名: 密 码: 验证码:     用QQ登录本站
首页 软件 编程 笑话 知识 公告 台风 日历 计算器
[公益]保护绿色环境,构建和谐社会       悟空收录网      

【腾讯云】 爆款2核2G3M云服务器首年 61元,叠加红包再享折上折      
[公益] 地球是我家,绿化靠大家      
2024年 清明节 006
2024年 劳动节 033
2025年 元 旦 278
2025年 春 节 306
 
您现在的位置:首页 >> PHP >> 内容
本类新增
本类热门
php实现微信公众号主动推送消息
内容摘要: 一、登录接口部分代码//登录privatefunctionlogin(){$url='https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN';$this-send_data=array('username'=$this-_account,'pwd'=md5($this-_password),'f'='json')......
一、登录接口部分代码

//登录

privatefunctionlogin(){

$url='https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN';

$this->send_data=array(

'username'=>$this->_account,

'pwd'=>md5($this->_password),

'f'=>'json'

);

$this->referer="https://mp.weixin.qq.com/";

$this->getHeader=1;

$result=explode("\n",$this->curlPost($url));

foreach($resultas$key=>$value){

$value=trim($value);

if(preg_match('/"ErrCode":(.*)/i',$value,$match)){//获取token

switch($match[1]){

case-1:

die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"系统错误")));

case-2:

die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"帐号或密码错误")));

case-3:

die(urldecode(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>urlencode("密码错误")))));

case-4:

die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"不存在该帐户")));

case-5:

die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"访问受限")));

case-6:

die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"需要输入验证码")));

case-7:

die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"此帐号已绑定私人微信号,不可用于公众平台登录")));

case-8:

die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"邮箱已存在")));

case-32:

die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"验证码输入错误")));

case-200:

die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"因频繁提交虚假资料,该帐号被拒绝登录")));

case-94:

die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"请使用邮箱登陆")));

case10:

die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"该公众会议号已经过期,无法再登录使用")));

case0:

$this->userFakeid=$this->getUserFakeid();

break;

}

}

if(preg_match('/^set-cookie:[\s]+([^=]+)=([^;]+)/i',$value,$match)){//获取cookie

$this->cookie.=$match[1].'='.$match[2].';';

}

if(preg_match('/"ErrMsg"/i',$value,$match)){//获取token

$this->token=rtrim(substr($value,strrpos($value,'=')+1),'",');

}

}

}

二、信息发送部分代码

//单发消息

privatefunctionsend($fakeid,$content){

$url='https://mp.weixin.qq.com/cgi-bin/singlesend?t=ajax-response&lang=zh_CN';

$this->send_data=array(

'type'=>1,

'content'=>$content,

'error'=>'false',

'tofakeid'=>$fakeid,

'token'=>$this->token,

'ajax'=>1,

);

$this->referer='https://mp.weixin.qq.com/cgi-bin/singlemsgpage?token='.$this->token.'&fromfakeid='.$fakeid.'&msgid=&source=&count=20&t=wxm-singlechat&lang=zh_CN';

return$this->curlPost($url);

}

三、群发信息代码

//群发消息

publicfunctionsendMessage($content='',$userId=''){

if(is_array($userId)&&!empty($userId)){

foreach($userIdas$v){

$json=json_decode($this->send($v,$content));

if($json->ret!=0){

$errUser[]=$v;

}

}

}else{

foreach($this->userFakeidas$v){

$json=json_decode($this->send($v['fakeid'],$content));

if($json->ret!=0){

$errUser[]=$v['fakeid'];

}

}

}

//共发送用户数

$count=count($this->userFakeid);

//发送失败用户数

$errCount=count($errUser);

//发送成功用户数

$succeCount=$count-$errCount;

$data=array(

'status'=>0,

'count'=>$count,

'succeCount'=>$succeCount,

'errCount'=>$errCount,

'errUser'=>$errUser

);

returnjson_encode($data);

}

四、获取所有用户信息代码片段

//获取所有用户信息

publicfunctiongetAllUserInfo(){

foreach($this->userFakeidas$v){

$info[]=$this->getUserInfo($v['groupid'],$v['fakeid']);

}

return$info;

}

//获取用户信息

publicfunctiongetUserInfo($groupId,$fakeId){

$url="https://mp.weixin.qq.com/cgi-bin/getcontactinfo?t=ajax-getcontactinfo&lang=zh_CN&fakeid={$fakeId}";

$this->getHeader=0;

$this->referer='https://mp.weixin.qq.com/cgi-bin/contactmanagepage?token='.$this->token.'&t=wxm-friend&lang=zh_CN&pagesize='.$this->pageSize.'&pageidx=0&type=0&groupid='.$groupId;

$this->send_data=array(

'token'=>$this->token,

'ajax'=>1

);

$message_opt=$this->curlPost($url);

return$message_opt;

}

//获取所有用户fakeid

privatefunctiongetUserFakeid(){

ini_set('max_execution_time',600);

$pageSize=1000000;

$this->referer="https://mp.weixin.qq.com/cgi-bin/home?t=home/index&lang=zh_CN&token={$_SESSION['token']}";

$url="https://mp.weixin.qq.com/cgi-bin/contactmanage?t=user/index&pagesize={$pageSize}&pageidx=0&type=0&groupid=0&token={$this->token}&lang=zh_CN";

$user=$this->vget($url);

$preg="/\"id\":(\d+),\"name\"/";

preg_match_all($preg,$user,$b);

$i=0;

foreach($b[1]as$v){

$url='https://mp.weixin.qq.com/cgi-bin/contactmanage?t=user/index&pagesize='.$pageSize.'&pageidx=0&type=0&groupid='.$v.'&token='.$this->token.'&lang=zh_CN';

$user=$this->vget($url);

$preg="/\"id\":(\d+),\"nick_name\"/";

preg_match_all($preg,$user,$a);

foreach($a[1]as$vv){

$arr[$i]['fakeid']=$vv;

$arr[$i]['groupid']=$v;

$i++;

}

}

return$arr;

}

版权声明:本内容来源于网络,如有侵犯您的版权,请联系站长,本站收到您的信息后将及时处理。
上一篇:PHP防止跨域提交表单

 

下一篇:PHP简单获取多个checkbox值的方法

发布日期:2023/4/19
手机扫二维码直达本页
发布时间:12:47:13
点  击:8
录  入:伊伊
相关文章
Baidu
YiJiaCMS 7.3.8 build231228(MSSQL) 闽ICP备05000814号-1
本空间由腾讯云(轻量应用服务器)提供,Cloudflare提供加速防护
运行时间载入中.....