/** * Gestiona el envio de las notificaciones con la libreria "ApnsPHP" */ public function send() { if ($this->getEnvironment() === 1) { $push = new \ApnsPHP_Push($this->getEnvironment(), $this->getPemDev()); $push->setProviderCertificatePassphrase($this->getPassphraseDev()); } else { $push = new \ApnsPHP_Push($this->getEnvironment(), $this->getPem()); $push->setProviderCertificatePassphrase($this->getPassphrase()); } $push->setWriteInterval($this->getWriteInterval()); $push->setSendRetryTimes($this->getSendRetryTimes()); $push->setConnectTimeout($this->getConnectTimeout()); $push->connect(); try { $message = new \ApnsPHP_Message($this->getDeviceToken()); $message->setText($this->getMessage()); $message->setSound(); if (!empty($this->getExtraData())) { foreach ($this->getExtraData() as $key => $value) { $message->setCustomProperty($key, $value); } } $message->setExpiry($this->getExpiry()); $push->add($message); $push->send(); $push->disconnect(); $aErrorQueue = $push->getErrors(); } catch (\Exception $e) { $aErrorQueue = array($e->getMessage()); } if (!empty($aErrorQueue)) { return $aErrorQueue; } return true; }