Heim  >  Artikel  >  WeChat-Applet  >  Implementierung des offiziellen WeChat-Kontos zum aktiven Pushen von Nachrichten

Implementierung des offiziellen WeChat-Kontos zum aktiven Pushen von Nachrichten

PHPz
PHPzOriginal
2017-04-02 14:26:376350Durchsuche

Indem Sie von den Implementierungsmethoden Ihrer Freunde lernen und diese aussortieren, werden die Nachrichten der öffentlichen WeChat-Plattform aktiv gepusht und als Referenz an alle weitergegeben. Der spezifische Inhalt ist wie folgt:
Diese Methode wird durch die Simulation der Anmeldung bei WeChat implementiert öffentliche Plattform.

Der Code lautet wie folgt:
1. Anmelden SchnittstelleTeil des Codes

 //登录  
 private function login(){    
   $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 ($result as $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'=>"请使用邮箱登陆")));
          case 10:
            die(json_encode(array('status'=>1,'errCode'=>$match[1],'msg'=>"该公众会议号已经过期,无法再登录使用")));
          case 0:
            $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),'",');
      }
    }
  }

2. Teil des Codes zum Senden von Informationen

 //单发消息
  private function send($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);  
     }

3 >

  //群发消息
  public function sendMessage($content='',$userId='') {
    if(is_array($userId) && !empty($userId)){
      foreach($userId as $v){
        $json = json_decode($this->send($v,$content));
        if($json->ret!=0){
          $errUser[] = $v;
        }
      }
    }else{
      foreach($this->userFakeid as $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 
    );
     
    return json_encode($data);
  }
4. Erhalten Sie alle Benutzerinformationscode-Schnipsel

Das obige ist der detaillierte Inhalt vonImplementierung des offiziellen WeChat-Kontos zum aktiven Pushen von Nachrichten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn