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;
}
}
}