<?php
class
AlliesClass
{
protected
$host
;
protected
$app_key
;
protected
$appMasterSecret
;
protected
$description
;
public
function
__construct(
$options
= null)
{
if
(
is_array
(
$options
)){
$this
->host = 'https:
$this
->app_key =
$options
['app_key'];
$this
->appMasterSecret =
$options
['appMasterSecret'];
$this
->description =
"友盟接口推送"
;
}
else
{
return
false;
}
}
public
function
Android_Device_Push(
$info
,
$device_token
)
{
$data
['appkey'] =
$this
->app_key;
$data
['timestamp'] = time();
if
(
is_array
(
$device_token
)){
$data
['type'] = 'listcast';
$data
['device_tokens'] = implode(',',
$device_token
);
}
else
{
$data
['type'] = 'unicast';
$data
['device_tokens'] =
$device_token
;
}
$data
['payload']['display_type'] = 'notification';
$data
['payload']['body']['after_open'] =
"go_custom"
;
$data
['payload']['body']['ticker'] =
$info
['ticker'];
$data
['payload']['body']['title'] =
$info
['title'];
$data
['payload']['body']['text'] =
$info
['title'];
$data
['payload']['extra']['type'] =
$info
['type'];
$data
['production_mode'] =
$info
['production_mode'];
$data
['description'] =
$this
->description;
return
$this
->send(
$data
,
$this
->host,
$this
->appMasterSecret);
}
public
function
Android_Broadcast(
$info
)
{
$data
['appkey'] =
$this
->app_key;
$data
['timestamp'] = time();
$data
['type'] = 'broadcast';
$data
['payload']['display_type'] = 'notification';
$data
['payload']['body']['after_open'] =
"go_custom"
;
$data
['payload']['body']['ticker'] =
$info
['ticker'];
$data
['payload']['body']['title'] =
$info
['title'];
$data
['payload']['body']['text'] =
$info
['title'];
$data
['payload']['extra']['type'] =
$info
['type'];
$data
['payload']['extra']['prod_id'] =
$info
['prod_id'];
$data
['payload']['extra']['text'] =
$info
['text'];
$data
['production_mode'] =
$info
['production_mode'];
$data
['description'] =
$this
->description;
return
$this
->send(
$data
,
$this
->host,
$this
->appMasterSecret);
}
public
function
Ios_Device_Push(
$info
,
$device_token
)
{
$data
=
array
();
$data
['appkey'] =
$this
->app_key;
$data
['timestamp'] = time();
if
(
is_array
(
$device_token
)){
$data
['type'] = 'listcast';
$data
['device_tokens'] = implode(',',
$device_token
);
}
else
{
$data
['type'] = 'unicast';
$data
['device_tokens'] =
$device_token
;
}
$data
['payload']['aps']['alert'] =
$info
['text'];
$data
['payload']['aps']['sound'] = '
default
';
$data
['payload']['type'] =
$info
['type'];
$data
['payload']['prod_id'] =
$info
['prod_id'];
$data
['payload']['title'] =
$info
['title'];
$data
['payload']['text'] =
$info
['text'];
$data
['production_mode'] =
$info
['production_mode'];
$data
['description'] =
$this
->description;
return
$this
->send(
$data
,
$this
->host,
$this
->appMasterSecret);
}
public
function
Ios_Broadcast(
$info
)
{
$data
=
array
();
$data
['appkey'] =
$this
->app_key;
$data
['timestamp'] = time();
$data
['type'] = 'broadcast';
$data
['payload']['aps']['alert'] =
$info
['title'];
$data
['payload']['aps']['sound'] = 'chime';
$data
['payload']['aps']['badge'] = 1;
$data
['payload']['type'] =
$info
['type'];
$data
['payload']['prod_id'] =
$info
['prod_id'];
$data
['payload']['title'] =
$info
['title'];
$data
['payload']['text'] =
$info
['ticker'];
$data
['production_mode'] =
$info
['production_mode'];
$data
['description'] =
$this
->description;
return
$this
->send(
$data
,
$this
->host,
$this
->appMasterSecret);
}
private
function
send(
$data
,
$url_s
,
$appMasterSecret
)
{
$postBody
= json_encode(
$data
);
$sign
= md5(
"POST"
.
$url_s
.
$postBody
.
$appMasterSecret
);
$url
=
$url_s
.
"?sign="
.
$sign
;
$ch
= curl_init(
$url
);
curl_setopt(
$ch
, CURLOPT_RETURNTRANSFER, 1);
curl_setopt(
$ch
, CURLOPT_BINARYTRANSFER, 1);
curl_setopt(
$ch
, CURLOPT_POST, 1);
curl_setopt(
$ch
, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt(
$ch
, CURLOPT_TIMEOUT, 5);
curl_setopt(
$ch
, CURLOPT_POSTFIELDS,
$postBody
);
$result
= curl_exec(
$ch
);
$httpCode
= curl_getinfo(
$ch
, CURLINFO_HTTP_CODE);
$curlErrNo
= curl_errno(
$ch
);
$curlErr
= curl_error(
$ch
);
curl_close(
$ch
);
if
(
$httpCode
==
"0"
) {
return
(
"Curl error number:"
.
$curlErrNo
.
" , Curl error details:"
.
$curlErr
.
"\r\n"
);
}
else
if
(
$httpCode
!=
"200"
) {
return
(
"Http code:"
.
$httpCode
.
" details:"
.
$result
.
"\r\n"
);
}
else
{
return
$result
;
}
}
}
?>