Example #1
0
 function resendPostback()
 {
     if ($this->plugin->getConfig('resend_postback')) {
         $urls = $this->plugin->getConfig('resend_postback_urls');
         $urls = explode("\n", $urls);
         $urls = array_filter(array_map('trim', $urls));
         foreach ($urls as $url) {
             try {
                 $tm = microtime(true);
                 $this->log->add("Resending postback to [{$url}]");
                 if ($url == $this->plugin->getPluginUrl('ipn')) {
                     throw new Am_Exception_Configuration("DO NOT CONFIGURE RESENDING IPN TO ITSELF!");
                 }
                 $req = new Am_HttpRequest($url);
                 $req->setConfig('connect_timeout', 1000);
                 $req->setConfig('timeout', 2000);
                 $method = strtoupper($this->request->getMethod());
                 $req->setMethod($method);
                 if ($method == 'POST') {
                     foreach ($this->request->getPost() as $k => $v) {
                         $req->addPostParameter($k, $v);
                     }
                 } else {
                     $arr = $this->request->getQuery();
                     $req->setUrl($req->getUrl() . '?' . http_build_query($arr));
                 }
                 $req->send();
                 $tm = sprintf('%.3f', microtime(true) - $tm);
                 $this->log->add("Postback resent succesfully ({$tm} sec)");
             } catch (Exception $e) {
                 $tm = sprintf('%.3f', microtime(true) - $tm);
                 $this->log->add("Cannot resend postback ({$tm} sec)");
                 $this->log->add($e);
             }
         }
     }
 }