php 极光推送完整方案

 /**

     * @Task

     */

    public function sendMessage(array $data){

        $res = $this->push($data["receiver"],$data["content"],$data["title"],$data["extras"]);

        if($res){

            $res = json_decode($res,true);

            var_dump($res["error"]);

            return $this->outPut(ErrorCode::SUCCESS);

        }else{

            return $this->outPut(ErrorCode::FAIL);

        }

    }

 

    public function push($receiver='all',$content='',$title='',$extras=array(),$m_time= 86400 ){

        $app_key          = '***'; //待发送的应用程序(appKey),只能填一个。

        $master_secret    = '***'; //主密码

        $url              = "https://api.jpush.cn/v3/push"; //推送的地址

        $base64           = base64_encode("{$app_key}:{$master_secret}");

        $header           = array("Authorization:Basic {$base64}","Content-Type:application/json");

        $data             = array();

        $data['platform'] = 'all'; //目标用户终端手机的平台类型android,ios,winphone

        $data['audience'] = $receiver; //目标用户

     

        $data['notification'] = array(

          //统一的模式--标准模式

          "alert"=>$content,

          //安卓自定义

          "android"=>array(

                "alert"=>$content,

                "title"=>$title,

                "builder_id"=>1,

                "extras"=>array("data"=>$extras)

              ),

            //ios的自定义

              "ios"=>array(

                  "alert"=>$content,

                  "badge" => "1",

                  "sound" => "default",

                  "content-available" => true,

                  "extras" => array("data" => $extras)

              ),

        );

     

        //附加选项

        $data['options'] = array(

              "sendno"=>time(),

              "time_to_live"=>$m_time, //保存离线时间的秒数默认为一天

              "apns_production"=>false, //指定 APNS 通知发送环境:0开发环境,1生产环境。

        );

        $param = json_encode($data);

        //dump($param);exit;

        $res = $this->push_curl($param,$header,$url);

        if($res){ //得到返回值--成功已否后面判断

            return $res;

        }else{ //未得到返回值--返回失败

            return false;

        }

    }

     

    //推送的Curl方法

    public function push_curl($param="",$header="",$url="") {

        if (empty($param)) { return false; }

        $postUrl = $url;

        $curlPost = $param;

        $ch = curl_init(); //初始化curl

        curl_setopt($ch, CURLOPT_URL,$postUrl); //抓取指定网页

        curl_setopt($ch, CURLOPT_HEADER, 0); //设置header

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //要求结果为字符串且输出到屏幕上

        curl_setopt($ch, CURLOPT_POST, 1); //post提交方式

        curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);

        curl_setopt($ch, CURLOPT_HTTPHEADER,$header); // 增加 HTTP Header(头)里的字段

        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 终止从服务端进行验证

        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

        $data = curl_exec($ch); //运行curl

        curl_close($ch);

        return $data;

    }

你可能感兴趣的:(新奇技术学习)