发布v2.5.9版本

This commit is contained in:
雨中磐石
2023-07-12 16:27:03 +08:00
parent 17e1d6ed22
commit 983cd0d3ea
29 changed files with 551 additions and 118 deletions

View File

@@ -10,16 +10,13 @@ class JPushChajian extends Chajian{
//-------------最新原生app推送app是1.2.3版本 和 最新app+---------------
public function push($title, $desc, $cont, $palias)
{
$alias = $palias['alias'];
$xmalias = $palias['xmalias']; //小米的
$newalias = $palias['newalias']; //最新使用的
$oldalias = $palias['oldalias']; //一般自己编译
$uids = $palias['uids'];
$alias2019 = $palias['alias2019'];
$pushuids = $palias['pushuids']; //可以推送的用户ID
$xmpush = c('xmpush');
$hwpush = c('hwpush');
$getui = c('getui');
//可推送判断
$ketualia = array();
@@ -40,59 +37,129 @@ class JPushChajian extends Chajian{
'desc' => $desc,
'systype'=> getconfig('systype')
);
$isuguanw = false;
//没有设置推送(走的信呼官网渠道)
if(!$xmpush->sendbool() && !$hwpush->sendbool()){
if($xmalias || $newalias || $oldalias || $alias2019){
if($xmalias)$xharr['xmalias'] = join(',', $xmalias);
if($newalias)$xharr['newalias'] = join(',', $newalias);
if($oldalias)$xharr['oldalias'] = join(',', $oldalias);
if($alias2019)$xharr['alias2019'] = join(',', $alias2019);
$isuguanw = true;
}
}else{
$desc = $this->rock->jm->base64decode($desc);
$xmarr = array();//小米的人员
$othar = array();//其他人用
$iosar = array(); //IOS
$hwarr = array(); //华为
$iospas= array();
if($alias2019)foreach($alias2019 as $ali1){
$ali1aa = explode('|', $ali1);
$regid = $ali1aa[0];
$sjlxx = $ali1aa[1];
if(contain($sjlxx,'xiaomi')){
$xmarr[] = $regid;
}else if(contain($sjlxx,'huawei')){
if(isset($ali1aa[3]) && $ali1aa[3])$hwarr[] = $ali1aa[3];
}else if(contain($sjlxx,'iphone')){
$iosar[] = $regid;
$iospas[]= $ali1;
if(!$alias2019)return;
$getuiand = $getuiios = $mybyarr = $xmarr = $hwarr = $iosar = $puarr = array();
foreach($alias2019 as $k=>$ali1){
$ali1aa = explode('|', $ali1);
$regid = $ali1aa[0];
$_web = $ali1aa[1];
if(contain($_web,'custpile')){
$mybyarr[] = $k; //3
}else if(contain($_web,'getui')){
if(contain($_web,'iphone')){
$getuiios[] = $k; //3
}else{
$othar[] = $regid;
$getuiand[] = $k; //3
}
}else if(contain($_web,'mi')){
$xmarr[] = $k; //0
}else if(contain($_web,'huawei')){
$hwarr[] = $k; //3
}else if(contain($_web,'iphone')){
$iosar[] = $k; //0
}else{
$puarr[] = $ali1;
}
$msg = $msg1 = $msg2 = '';
if($oldalias)$msg = $xmpush->androidsend($oldalias, $title, $desc, $cont);
if($xmarr)$msg = $xmpush->androidsend($xmarr, $title, $desc);
if($iosar){
if(!$xmpush->jpushiosbool()){
$xharr['alias2019'] = join(',', $iospas);
$isuguanw = true;
}else{
$msg1= $xmpush->jpushiossend($iosar, $title, $desc);
}
}
if($hwarr)$msg2= $hwpush->androidsend($hwarr, $title, $desc);
$msg5 = $msg.$msg1.$msg2;
if($msg5)$this->rock->debugs($msg5,'mypush');
}
if($isuguanw){
$mymsg = '';
$desc = $this->rock->jm->base64decode($desc);
if($xmarr){
if($xmpush->sendbool()){
$vstr = $this->getVal($alias2019, $xmarr, 0);
$msg = $xmpush->androidsend($vstr, $title, $desc);
if($msg)$mymsg.=chr(10).$msg;
}else{
$vsta = $this->getVala($alias2019, $xmarr);
foreach($vsta as $v)$puarr[] = $v;
}
}
if($hwarr){
if($hwpush->sendbool()){
$vstr = $this->getVal($alias2019, $hwarr, 3);
$msg = $hwpush->androidsend($vstr, $title, $desc);
if($msg)$mymsg.=chr(10).$msg;
}else{
$vsta = $this->getVala($alias2019, $hwarr);
foreach($vsta as $v)$puarr[] = $v;
}
}
if($iosar){
if($xmpush->jpushiosbool()){
$vstr = $this->getVal($alias2019, $iosar, 0);
$msg = $xmpush->jpushiossend($vstr, $title, $desc);
if($msg)$mymsg.=chr(10).$msg;
}else{
$vsta = $this->getVala($alias2019, $iosar);
foreach($vsta as $v)$puarr[] = $v;
}
}
if($getuiand){
if($getui->isandroid()){
$vstr = $this->getVal($alias2019, $getuiand, 3);
$msg = $getui->push($vstr, $title, $desc);
if($msg)$mymsg.=chr(10).$msg;
}else{
$vsta = $this->getVala($alias2019, $getuiand);
foreach($vsta as $v)$puarr[] = $v;
}
}
if($getuiios){
if($getui->isios()){
$vstr = $this->getVal($alias2019, $getuiios, 3);
$msg = $getui->push($vstr, $title, $desc);
if($msg)$mymsg.=chr(10).$msg;
}else{
$vsta = $this->getVala($alias2019, $getuiios);
foreach($vsta as $v)$puarr[] = $v;
}
}
if($mybyarr){
if($getui->sendbool()){
$vstr = $this->getVal($alias2019, $mybyarr, 3);
$msg = $getui->push($vstr, $title, $desc);
if($msg)$mymsg.=chr(10).$msg;
}else{
$msg = '自己编译未配置推送';
$mymsg.=chr(10).$msg;
}
}
if($mymsg)$this->rock->debugs($mymsg, 'mypush');
//需要官网隧道
if($puarr){
$xharr['alias2019'] = join(',', $puarr);
$runurl = c('xinhu')->geturlstr('jpushplat', $xharr);
c('curl')->getcurl($runurl);
}
}
private function getVal($alias2019, $new, $oi)
{
$stv = array();
foreach($new as $j){
$stra = explode('|', $alias2019[$j]);
if(isset($stra[$oi]))$stv[]= $stra[$oi];
}
return $stv;
}
private function getVala($alias2019, $new)
{
$stv = array();
foreach($new as $j){
$stv[] = $alias2019[$j];
}
return $stv;
}
}

View File

@@ -75,6 +75,8 @@ class curlChajian extends Chajian{
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
if($this->rock->HTTPweb)curl_setopt($ch, CURLOPT_USERAGENT, $this->rock->HTTPweb);
if($this->rock->ip)$headarr['X-FORWARDED-FOR'] = $this->rock->ip;
if($ishttps==1){
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
}
@@ -105,12 +107,14 @@ class curlChajian extends Chajian{
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //要求结果为字符串且输出到屏幕上
curl_setopt($ch, CURLOPT_HEADER, 0); //不返回header
if($this->rock->HTTPweb)curl_setopt($ch, CURLOPT_USERAGENT, $this->rock->HTTPweb);
curl_setopt($ch, CURLOPT_POST, 1);
@curl_setopt($ch, CURLOPT_POSTFIELDS, $cont);
if($ishttps==1){
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
}
if($this->rock->ip)$headarr['X-FORWARDED-FOR'] = $this->rock->ip;
//设置head
if($headarr){
$heads = array();

View File

@@ -0,0 +1,141 @@
<?php
/**
* 个推2023-07-06
*/
class getuiChajian extends Chajian{
private $appid = '';
private $appkey = '';
private $mastersecret = '';
private $apptype = '0'; //0所有平台,1仅安卓2仅苹果
private $pushurl = 'https://restapi.getui.com/v2/{appid}';
protected function initChajian()
{
$this->appid = getconfig('getui_appid');
$this->appkey = getconfig('getui_appkey');
$this->mastersecret = getconfig('getui_mastersecret');
$this->apptype = getconfig('getui_apptype','0');
}
/**
* 获取token
*/
public function gettoken(){
$url = str_replace('{appid}',$this->appid, $this->pushurl).'/auth';
$token = c('cache')->get('getui'.$this->appid.'');
if(isempt($token)){
$timestamp = ''.time().'000';
$sign = hash("sha256", $this->appkey.$timestamp.$this->mastersecret);
$result = c('curl')->postcurl($url, json_encode(array(
"sign" => $sign,
"timestamp" => $timestamp,
"appkey" => $this->appkey,
)),0, array(
'content-type' => 'application/json;charset=utf-8'
));
if($result){
$barr = json_decode($result, true);
if($barr['code']==0){
$token = $barr['data']['token'];
$expire_time = $barr['data']['expire_time'];
c('cache')->set('getui'.$this->appid.'',$token, $expire_time * 0.001 - time());
}else{
echo $result;
}
}
}
return $token;
}
/**
* 判断是否可以发送
*/
public function sendbool()
{
if(!$this->appid || !$this->appkey || !$this->mastersecret)return false;
return true;
}
/**
* 是否安卓的
*/
public function isandroid()
{
if(!$this->sendbool())return false;
if($this->apptype=='2')return false;
return true;
}
/**
* 是否安卓的
*/
public function isios()
{
if(!$this->sendbool())return false;
if($this->apptype=='1')return false;
return true;
}
/**
* 推送
*/
public function push($cid, $title, $cont)
{
if(!$this->sendbool())return 'params empty';
$url = str_replace('{appid}',$this->appid, $this->pushurl).'/push/single/batch/cid';
$token = $this->gettoken();
if(is_string($cid))$cid = explode(',', $cid);
$msg_list = array();
foreach($cid as $_cid){
$parr = array();
$parr['request_id'] = 'a'.time().rand(1000,9999).'';
//$parr['settings'] = array('ttl' => '-1');
$parr['audience']['cid'] = array($_cid);
$parr['push_message']['notification'] = array(
'title' => $title,
'body' => $cont,
'click_type' => 'startapp',
);
//离线厂商推送的
$parr['push_channel']['ios'] = array(
'type' => 'notify',
'payload' => 'notify',
'aps' => array(
'alert' => array(
'title' => $title,
'body' => $cont,
),
'sound'=>'default',
),
'auto_badge' => '1'
);
$parr['push_channel']['android'] = array(
'ups' => array(
'notification' => array(
'title' => $title,
'body' => $cont,
'click_type' => 'startapp',
'notify_id' => rand(100,99999),
)
)
);
$msg_list[] = $parr;
}
$toboay = array(
'is_async' => false,
'msg_list' => $msg_list
);
$result = c('curl')->postcurl($url, json_encode($toboay),0, array(
'content-type' => 'application/json;charset=utf-8',
'token' => $token,
));
return $result;
}
}

View File

@@ -37,6 +37,12 @@ class xmpushChajian extends Chajian{
if($this->android_secret=='')return false;
return true;
}
public function setsecret($secret, $package)
{
$this->android_secret = $secret;
$this->android_package = $package;
}
/**
* 安卓推送通知