枯痕个人博客
立即登录 马上注册
当前位置: 大后端 > Jpush 消息推送(PHP)

闲来无事,以前封装的Jpush 消息推送感觉可以简单优化一波!!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
   /** * Created by PhpStorm. * User: 枯痕 * Date: 2020/4/14 * Time: 14:06 */

        namespace app\mall\common;

        class Jpush
        {
            private $app_key = '***';
            //待发送的应用程序(appKey),只能填一个。
            private $master_secret = '***'; //主密码
            private $url = "https://api.jpush.cn/v3/push"; //推送的地址 //若实例化的时候传入相应的值则按新的相应值进行

            public function __construct($app_key = null, $master_secret = null, $url = null)
            {
                if ($app_key) {
                    $this->app_key = $app_key;
                }
                if ($master_secret) {
                    $this->master_secret = $master_secret;
                }
                if ($url) {
                    $this->url = $url;
                }
            }
            /*
            $receiver 接收者的信息 all 字符串 该产品下面的所有用户. 对app_key下的所有用户推送消息
            tag(20个)Array标签组(并集): tag=>array('昆明','北京','曲靖','上海'); tag_and(20个)Array标签组(交集): tag_and=>array('广州','女'); alias(1000)Array别名(并集):
            alias=>array('93d78b73611d886a74*****88497f501','606d05090896228f66ae10d1*****310'); registration_id(1000)注册ID设备标识(并集):
            registration_id=>array('20effc071de0b45c1a**********2824746e1ff2001bd80308a467d800bed39e'); $content 推送的内容。
            $extras 附加字段 array类型 $m_time 保存离线时间的秒数默认为一天(可不传)单位为秒 */
            public function push($receiver = 'all', $title = '', $content = '', $extras, $m_time = 86400)
            {
                $base64 = base64_encode("$this->app_key:$this->master_secret");
                $header = array("Authorization:Basic $base64", "Content-Type:application/json");
                $data = array();
                $data['platform'] = 'android'; //目标用户终端手机的平台类型android,ios,winphone $data['audience'] = $receiver; //目标用户 //发送通知
                $data['notification'] = array( //统一的模式--标准模式
                    "alert" => "新订单通知",
                    //安卓自定义
                    "android" => array("alert" => $content, "title" => $title, "builder_id" => 1, "extras" => $extras),
                    //ios的自定义
                    /*"ios"=>array( // "alert"=>$content, "badge"=>"1", "sound"=>"default", // "extras"=>array("type"=>$m_type, "txt"=>$m_txt) ),*/
                ); //自定义信息
                $data['message'] = array("msg_content" => $content, "extras" => $extras); //附加选项
                $data['options'] = array(
                    "sendno" => time(),
                    "time_to_live" => $m_time, //保存离线时间的秒数默认为一天
                    "apns_production" => 0, //指定 APNS 通知发送环境:0开发环境,1生产环境。 );
                    $param = json_encode($data);
                $res = $this->pushCurl($param, $header);
                if ($res) { //得到返回值--成功已否后面判断
                    return $res;
                } else { //未得到返回值--返回失败
                    return false;
                }
            } //推送的Curl方法

            public function pushCurl($param, $header)
            {
                if (empty($param)) {
                    return false;
                }
                $postUrl = $this->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;
            }
  }

 

个人封装,有问题可联系作者,更改哦,共同成长进步!!!

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

赞(2) 打赏
欢迎打赏您的小可爱~~~~

支付宝扫一扫打赏

微信扫一扫打赏

标签:

上一篇:

下一篇:

相关推荐

0 条评论关于"Jpush 消息推送(PHP)"

最新评论

    暂无留言哦~~

博客简介

枯痕个人博客: xiaole.biz,一个关注Web后端开发技术、关注用户体验、坚持更多原创实战教程的个人网站,愿景:成为宇宙中最具有代表性的后端博客,期待您的参与。

精彩评论

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

站点统计

  • 文章总数: 106 篇
  • 草稿数目: 1 篇
  • 分类数目: 26 个
  • 独立页面: 4 个
  • 评论总数: 11 条
  • 链接总数: 5 个
  • 标签总数: 177 个
  • 注册用户: 10 人
  • 访问总量: 8,769,848 次
  • 最近更新: 2021年11月23日
服务热线:
 156144**650

 QQ在线交流

 旺旺在线