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;
        }
    }
}
相关推荐
YUJIANYUE3 小时前
PHP纹路验证码
开发语言·php
MZ_ZXD0015 小时前
springboot旅游信息管理系统-计算机毕业设计源码21675
java·c++·vue.js·spring boot·python·django·php
JMchen1236 小时前
Android后台服务与网络保活:WorkManager的实战应用
android·java·网络·kotlin·php·android-studio
AZ996ZA9 小时前
自学linux的第二十一天【DHCP 服务从入门到实战】
linux·运维·服务器·php
darkb1rd12 小时前
八、PHP SAPI与运行环境差异
开发语言·网络安全·php·webshell
darkb1rd12 小时前
七、PHP配置(php.ini)安全最佳实践
安全·php·webshell
JSON_L12 小时前
Fastadmin中使用GatewayClient
php·fastadmin
青茶36013 小时前
php怎么实现订单接口状态轮询请求
前端·javascript·php
wxin_VXbishe15 小时前
C#(asp.net)学员竞赛信息管理系统-计算机毕业设计源码28790
java·vue.js·spring boot·spring·django·c#·php
Risehuxyc17 小时前
备份三个PHP程序
android·开发语言·php