protected function sendPushToDevice($cert, $deviceId, $message, $sn = '') { if (strlen($deviceId) < 64) { return; } $env = APPLICATION_ENV == 'development' ? ApnsPHP_Abstract::ENVIRONMENT_SANDBOX : ApnsPHP_Abstract::ENVIRONMENT_PRODUCTION; $env = ApnsPHP_Abstract::ENVIRONMENT_SANDBOX; $push = new ApnsPHP_Push($env, $cert); $push->setLogger(new ApnsPHP_Log_Null()); $push->setConnectTimeout(4000); $push->setRootCertificationAuthority(APPLICATION_PATH . '/data/entrust_root_certification_authority.pem'); $push->connect(); $apnsMessage = new ApnsPHP_Message($deviceId); $apnsMessage->setBadge(1); $apnsMessage->setText($message); $apnsMessage->setSound(); $apnsMessage->setCustomProperty('sn', $sn); $push->add($apnsMessage); $push->send(); //$push->disconnect(); $aErrorQueue = $push->getErrors(); if (!empty($aErrorQueue)) { var_dump($aErrorQueue); } }
/** * 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; }