php+极光推送(厂商通道) jpush推送

php+极光推送(厂商通道) jpush推送

此方法可放到common.php内调用

php 复制代码
if (!function_exists("push")) {
    /**
     * Notes:
     * User: 任性不起来了
     * Date: 2024/6/28 16:44
     * @param $accept_id 用户ID
     * @param $message 消息内容
     * @param int $orderrecording_id 商机ID
     */
    function push($accept_id, $message,$orderrecording_id=0)
    {
        
        //记录日志---接收参数
        error_log(date('Y-m-d H:i:s').'   $message ==='.json_encode($message,320).PHP_EOL,3,'../runtime/push.log');
        
        $push = addons_action('Jiguang', 'JPush', 'getClient', 'push');
        //获取保存的设备ID
        $id = Db::name('user')->where(['id' => $accept_id])->value('client_id');

        $push->setPlatform('all')
            ->addRegistrationId($id)
            ->setNotificationAlert('alert');

        $push->androidNotification($message, [
//            'title'  => $title,
            'sound'  => 'sound',
            'extras' => [
                'key' => 'value'
            ],
        ]);
        //配置厂商通道
        $push->options([
                'classification'      => 1,//0:代表运营消息,1:代表系统消息。
                'third_party_channel' => [
                    'huawei' => [
                        'importance' => 'NORMAL',
                        'category'   => 'WORK'
                    ],
                    'xiaomi' => [
                        'channel_id' => '121954' ,
                    ],
                    'oppo' => [
                        'channel_id' => 'message' ,
                    ],
                    'vivo' => [
                        'distribution' => 'secondary_push' ,
                        'category' => 'ORDER' ,
                    ],
                    'honor' => [
                        'importance' => 'NORMAL' ,
                    ],
                ]
            ]
        );

        $result = $push->send();


        //        $result = $data->setPlatform('android')
//            //        ->addAllAudience()
//            ->addRegistrationId($id)
//            ->androidNotification($message,[
//                'title'  => $title,
//                //                'sound'  => '测试声音',
//                // 'builder_id' => 2,
//                'extras' => [],
//                ])
//            ->send();



        error_log(date('Y-m-d H:i:s').'   $result ==='.json_encode($result,320).PHP_EOL,3,'../runtime/push.log');

        if ($result['http_code'] = 200) {
            //推送成功,此处写自己的项目逻辑
			
            //更新商机列表推送ID
            if($orderrecording_id){
                //更新录单表
                $update = [
                    'msg_id' => $result['body']['msg_id'] ,
                    'update_time' => time() ,
                ] ;
                Db::name('order_recording')->where('aid',$orderrecording_id)->update($update);
                //增加推送记录
                $insert = [
                    'user_id' => $accept_id ,
                    'orderrecording_id' => $orderrecording_id ,
                    'msg_id' => $update['msg_id'] ,
                    'is_read' => 0 ,
                    'create_time' => time() ,
                ] ;
                Db::name('order_push')->insert($insert);
            }

            return true;
        } else {
            return false;
        }
    }
}
相关推荐
Smile灬凉城6666 小时前
反序列化为啥可以利用加号绕过php正则匹配
开发语言·php
奥顺8 小时前
PHPUnit使用指南:编写高效的单元测试
大数据·mysql·开源·php
黑客Jack9 小时前
网络安全加密
安全·web安全·php
龙哥·三年风水12 小时前
workman服务端开发模式-应用开发-后端api推送修改二
分布式·gateway·php
计算机徐师兄13 小时前
基于TP5框架的家具购物小程序的设计与实现【附源码、文档】
小程序·php·家具购物小程序·家具购物微信小程序·家具购物
希雅不是希望14 小时前
Ubuntu命令行网络配置
网络·ubuntu·php
龙哥·三年风水16 小时前
workman服务端开发模式-应用开发-后端api推送修改一
分布式·gateway·php
开心工作室_kaic1 天前
springboot461学生成绩分析和弱项辅助系统设计(论文+源码)_kaic
开发语言·数据库·vue.js·php·apache
火³可²1 天前
PHP接入美团联盟推广
开发语言·php
奥顺1 天前
PHP与AJAX:实现动态网页的完美结合
大数据·mysql·开源·php