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;
        }
    }
}
相关推荐
残月只会敲键盘4 小时前
php代码审计--常见函数整理
开发语言·php
ac-er88884 小时前
MySQL如何实现PHP输入安全
mysql·安全·php
YUJIANYUE8 小时前
PHP将指定文件夹下多csv文件[即多表]导入到sqlite单文件
jvm·sqlite·php
龙哥·三年风水17 小时前
群控系统服务端开发模式-应用开发-个人资料
分布式·php·群控系统
Dingww101121 小时前
梧桐数据库中的网络地址类型使用介绍分享
数据库·oracle·php
Genius Kim1 天前
SpringCloud Sentinel 服务治理详解
spring cloud·sentinel·php
原机小子1 天前
城镇保障性住房管理:SpringBoot系统解决方案
数据库·spring boot·php
kali-Myon1 天前
NewStarCTF2024-Week5-Web&Misc-WP
前端·python·学习·mysql·web安全·php·web
DK七七1 天前
当今陪玩系统小程序趋势,陪玩系统源码搭建后的适用于哪些平台
小程序·php·uniapp
tekin2 天前
vscode php Launch built-in server and debug, PHP内置服务xdebug调试,自定义启动参数配置使用示例
ide·vscode·php·launch.json·runtimeargs·php内置服务自定义参数