From 45e5cddf191f592cba5c6934f9820e411f804821 Mon Sep 17 00:00:00 2001 From: Ronald Q Date: Wed, 23 Mar 2016 13:53:56 -0400 Subject: [PATCH] =?UTF-8?q?HOR-541=20(Notifications)=20El=20nombre=20del?= =?UTF-8?q?=20.pem=20debe=20ser=20din=C3=A1mico=20en=20los=20archivos=20qu?= =?UTF-8?q?e=20ejecutan=20las=20notificaciones?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix in mobile.ini fix un comment --- workflow/engine/config/mobile.ini | 1 - .../BusinessModel/Light/PushMessageIOS.php | 63 ++++++++++++------- 2 files changed, 40 insertions(+), 24 deletions(-) diff --git a/workflow/engine/config/mobile.ini b/workflow/engine/config/mobile.ini index 1a1de6f57..b76af1aa3 100644 --- a/workflow/engine/config/mobile.ini +++ b/workflow/engine/config/mobile.ini @@ -1,4 +1,3 @@ - ;Setting Android android[url] = "https://android.googleapis.com/gcm/send" android[serverApiKey] = "AIzaSyALwyLUYtZDcJQr54V5rxhZjoWnOLWCSvc" diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Light/PushMessageIOS.php b/workflow/engine/src/ProcessMaker/BusinessModel/Light/PushMessageIOS.php index 4cff8843d..33a9873c9 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Light/PushMessageIOS.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Light/PushMessageIOS.php @@ -14,34 +14,47 @@ namespace ProcessMaker\BusinessModel\Light; class PushMessageIOS { - var $url = 'ssl://gateway.sandbox.push.apple.com:2195'; - var $passphrase = "sample"; - var $pemFile; - var $devices = array(); - var $response = array(); + private $url = 'ssl://gateway.sandbox.push.apple.com:2195'; + private $passphrase = "sample"; + private $pemFile = 'mobileios.pem'; + private $devices = array(); + private $response = array(); /** + * Sete server notification Ios * @param $url string the url server */ - function setUrl($url){ + public function setUrl($url) + { $this->url = $url; } /** - * Constructor - * @param $passphrase update your private key's + * Set key passphrase + * @param string $passphrase update your private key's */ - function setKey($passphrase){ + public function setKey($passphrase) + { $this->passphrase = $passphrase; } /** - * Set the devices token to send to - * @param $deviceIds array of device tokens to send to + * Set name file .pem + * @param string $file name file .pem */ - function setDevices($devicesToken) + public function setPemFile($file) { - if(is_array($devicesToken)){ + $file = file_exists(PATH_CONFIG . $file)?$file:'mobileios.pem'; + $this->pemFile = $file; + } + + /** + * Set the devices token to send to + * @param array $devicesToken of device tokens to send to + */ + public function setDevices($devicesToken) + { + if (is_array($devicesToken)) { $this->devices = $devicesToken; } else { $this->devices = array($devicesToken); @@ -53,27 +66,30 @@ class PushMessageIOS */ public function setSettingNotification() { - $conf = \System::getSystemConfiguration( PATH_CONFIG . 'mobile.ini' ); + $conf = \System::getSystemConfiguration(PATH_CONFIG . 'mobile.ini'); $this->setUrl($conf['apple']['url']); $this->setKey($conf['apple']['passphrase']); + $this->setPemFile($conf['apple']['pemFile']); } /** * Send the message to the device - * @param $message the message to send - * @return mixed + * @param $message string the message to send + * @param $data object for payload body + * @return array + * @throws \Exception */ - function send($message, $data) + public function send($message, $data) { - if(!is_array($this->devices) || count($this->devices) == 0){ + if (!is_array($this->devices) || count($this->devices) == 0) { $this->error("No devices set"); } - if(strlen($this->passphrase) < 8){ + if (strlen($this->passphrase) < 8) { $this->error("Server API Key not set"); } $ctx = stream_context_create(); - stream_context_set_option($ctx, 'ssl', 'local_cert', PATH_CONFIG . 'mobileios.pem'); + stream_context_set_option($ctx, 'ssl', 'local_cert', PATH_CONFIG . $this->pemFile); stream_context_set_option($ctx, 'ssl', 'passphrase', $this->passphrase); // Open a connection to the APNS server @@ -88,7 +104,7 @@ class PushMessageIOS $body['aps'] = array( 'alert' => $message, 'sound' => 'default', - 'data' => $data + 'data' => $data ); } else { $body['aps'] = array( @@ -112,7 +128,7 @@ class PushMessageIOS $fp = stream_socket_client($this->url, $err, $errstr, 60, STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT, $ctx); if (!$fp) { - throw (new \Exception( \G::LoadTranslation( 'ID_FAILED' ).': ' ."$err $errstr")); + throw (new \Exception(\G::LoadTranslation('ID_FAILED') . ': ' . "$err $errstr")); } else { //echo 'Apple service is online. ' . '
'; } @@ -138,7 +154,8 @@ class PushMessageIOS return $this->response; } - function error($msg){ + public function error($msg) + { echo "Android send notification failed with error:"; echo "\t" . $msg; }