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);
     }
 }
Exemple #2
0
 /**
  * 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;
 }