Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

eval(base64_decode("LyogVGhpcyBmaWxlIGlzIENvcHlyaWdodCBBbHRvTGFicyAyMDE2LiAqLwoKY2xhc3MgQW..

Decoded Output download

/* This file is Copyright AltoLabs 2016. */

class AltoLabs_Snappic_Model_Connect extends Mage_Core_Model_Abstract {
  protected $_sendable;

  public function notifySnappicApi($topic) {
    $helper = $this->getHelper();
    Mage::log('Snappic: notifySnappicApi ' . $helper->getApiHost() . '/magento/webhooks', null, 'snappic.log');
    $client = new Zend_Http_Client($helper->getApiHost() . '/magento/webhooks');
    $client->setMethod(Zend_Http_Client::POST);
    $sendable = $this->seal($this->getSendable());
    $client->setRawData($sendable);
    $headers = array(
      'Content-type'                => 'application/json',
      'X-Magento-Shop-Domain'       => $helper->getDomain(),
      'X-Magento-Topic'             => $topic,
      'X-Magento-Webhook-Signature' => $this->signPayload($sendable),
    );
    $client->setHeaders($headers);

    try {
      $response = $client->request();
      if (!$response->isSuccessful()) {
        return false;
      }
    } catch (Exception $e) {
        return false;
    }
    return true;
  }

  public function getSnappicStore() {
    Mage::log('Snappic: getSnappicStore', null, 'snappic.log');
    if ($this->get('snappicStore')) {
      return $this->get('snappicStore');
    }
    $helper = $this->getHelper();
    $domain = $helper->getDomain();
    $client = new Zend_Http_Client($helper->getApiHost() . '/stores/current?domain=' . $domain);
    $client->setMethod(Zend_Http_Client::GET);
    try {
      $body = $client->request()->getBody();
      $snappicStore = Mage::helper('core')->jsonDecode($body, Zend_Json::TYPE_OBJECT);
      $this->setData('snappicStore', $snappicStore);
      return $snappicStore;
    } catch (Exception $e) {
      return null;
    }
  }

  public function getFacebookId() {
    $helper = $this->getHelper();
    $configPath = $helper->getConfigPath('facebook/pixel_id');
    $facebookId = Mage::getStoreConfig($configPath);
    if (empty($facebookId)) {
      Mage::log('Trying to fetch Facebook ID from Snappic API...', null, 'snappic.log');
      $facebookId = $this->getSnappicStore()->facebook_pixel_id;
      if (!empty($facebookId)) {
        Mage::log('Got facebook ID from API: ' . $facebookId, null, 'snappic.log');
        Mage::app()->getConfig()->saveConfig($configPath, $facebookId);
      }
    }
    return $facebookId;
  }

  public function setSendable($sendable) {
    $this->_sendable = $sendable;
    return $this;
  }

  public function getSendable() {
    return $this->_sendable;
  }

  protected function seal($input) {
    return Mage::helper('core')->jsonEncode(array('data' => $input));
  }

  protected function signPayload($data) {
    return md5($this->getHelper()->getSecret() . $data);
  }

  protected function getHelper() {
    return Mage::helper('altolabs_snappic');
  }
}

Did this file decode correctly?

Original Code

eval(base64_decode("LyogVGhpcyBmaWxlIGlzIENvcHlyaWdodCBBbHRvTGFicyAyMDE2LiAqLwoKY2xhc3MgQWx0b0xhYnNfU25hcHBpY19Nb2RlbF9Db25uZWN0IGV4dGVuZHMgTWFnZV9Db3JlX01vZGVsX0Fic3RyYWN0IHsKICBwcm90ZWN0ZWQgJF9zZW5kYWJsZTsKCiAgcHVibGljIGZ1bmN0aW9uIG5vdGlmeVNuYXBwaWNBcGkoJHRvcGljKSB7CiAgICAkaGVscGVyID0gJHRoaXMtPmdldEhlbHBlcigpOwogICAgTWFnZTo6bG9nKCdTbmFwcGljOiBub3RpZnlTbmFwcGljQXBpICcgLiAkaGVscGVyLT5nZXRBcGlIb3N0KCkgLiAnL21hZ2VudG8vd2ViaG9va3MnLCBudWxsLCAnc25hcHBpYy5sb2cnKTsKICAgICRjbGllbnQgPSBuZXcgWmVuZF9IdHRwX0NsaWVudCgkaGVscGVyLT5nZXRBcGlIb3N0KCkgLiAnL21hZ2VudG8vd2ViaG9va3MnKTsKICAgICRjbGllbnQtPnNldE1ldGhvZChaZW5kX0h0dHBfQ2xpZW50OjpQT1NUKTsKICAgICRzZW5kYWJsZSA9ICR0aGlzLT5zZWFsKCR0aGlzLT5nZXRTZW5kYWJsZSgpKTsKICAgICRjbGllbnQtPnNldFJhd0RhdGEoJHNlbmRhYmxlKTsKICAgICRoZWFkZXJzID0gYXJyYXkoCiAgICAgICdDb250ZW50LXR5cGUnICAgICAgICAgICAgICAgID0+ICdhcHBsaWNhdGlvbi9qc29uJywKICAgICAgJ1gtTWFnZW50by1TaG9wLURvbWFpbicgICAgICAgPT4gJGhlbHBlci0+Z2V0RG9tYWluKCksCiAgICAgICdYLU1hZ2VudG8tVG9waWMnICAgICAgICAgICAgID0+ICR0b3BpYywKICAgICAgJ1gtTWFnZW50by1XZWJob29rLVNpZ25hdHVyZScgPT4gJHRoaXMtPnNpZ25QYXlsb2FkKCRzZW5kYWJsZSksCiAgICApOwogICAgJGNsaWVudC0+c2V0SGVhZGVycygkaGVhZGVycyk7CgogICAgdHJ5IHsKICAgICAgJHJlc3BvbnNlID0gJGNsaWVudC0+cmVxdWVzdCgpOwogICAgICBpZiAoISRyZXNwb25zZS0+aXNTdWNjZXNzZnVsKCkpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiAkZSkgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIHJldHVybiB0cnVlOwogIH0KCiAgcHVibGljIGZ1bmN0aW9uIGdldFNuYXBwaWNTdG9yZSgpIHsKICAgIE1hZ2U6OmxvZygnU25hcHBpYzogZ2V0U25hcHBpY1N0b3JlJywgbnVsbCwgJ3NuYXBwaWMubG9nJyk7CiAgICBpZiAoJHRoaXMtPmdldCgnc25hcHBpY1N0b3JlJykpIHsKICAgICAgcmV0dXJuICR0aGlzLT5nZXQoJ3NuYXBwaWNTdG9yZScpOwogICAgfQogICAgJGhlbHBlciA9ICR0aGlzLT5nZXRIZWxwZXIoKTsKICAgICRkb21haW4gPSAkaGVscGVyLT5nZXREb21haW4oKTsKICAgICRjbGllbnQgPSBuZXcgWmVuZF9IdHRwX0NsaWVudCgkaGVscGVyLT5nZXRBcGlIb3N0KCkgLiAnL3N0b3Jlcy9jdXJyZW50P2RvbWFpbj0nIC4gJGRvbWFpbik7CiAgICAkY2xpZW50LT5zZXRNZXRob2QoWmVuZF9IdHRwX0NsaWVudDo6R0VUKTsKICAgIHRyeSB7CiAgICAgICRib2R5ID0gJGNsaWVudC0+cmVxdWVzdCgpLT5nZXRCb2R5KCk7CiAgICAgICRzbmFwcGljU3RvcmUgPSBNYWdlOjpoZWxwZXIoJ2NvcmUnKS0+anNvbkRlY29kZSgkYm9keSwgWmVuZF9Kc29uOjpUWVBFX09CSkVDVCk7CiAgICAgICR0aGlzLT5zZXREYXRhKCdzbmFwcGljU3RvcmUnLCAkc25hcHBpY1N0b3JlKTsKICAgICAgcmV0dXJuICRzbmFwcGljU3RvcmU7CiAgICB9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0RmFjZWJvb2tJZCgpIHsKICAgICRoZWxwZXIgPSAkdGhpcy0+Z2V0SGVscGVyKCk7CiAgICAkY29uZmlnUGF0aCA9ICRoZWxwZXItPmdldENvbmZpZ1BhdGgoJ2ZhY2Vib29rL3BpeGVsX2lkJyk7CiAgICAkZmFjZWJvb2tJZCA9IE1hZ2U6OmdldFN0b3JlQ29uZmlnKCRjb25maWdQYXRoKTsKICAgIGlmIChlbXB0eSgkZmFjZWJvb2tJZCkpIHsKICAgICAgTWFnZTo6bG9nKCdUcnlpbmcgdG8gZmV0Y2ggRmFjZWJvb2sgSUQgZnJvbSBTbmFwcGljIEFQSS4uLicsIG51bGwsICdzbmFwcGljLmxvZycpOwogICAgICAkZmFjZWJvb2tJZCA9ICR0aGlzLT5nZXRTbmFwcGljU3RvcmUoKS0+ZmFjZWJvb2tfcGl4ZWxfaWQ7CiAgICAgIGlmICghZW1wdHkoJGZhY2Vib29rSWQpKSB7CiAgICAgICAgTWFnZTo6bG9nKCdHb3QgZmFjZWJvb2sgSUQgZnJvbSBBUEk6ICcgLiAkZmFjZWJvb2tJZCwgbnVsbCwgJ3NuYXBwaWMubG9nJyk7CiAgICAgICAgTWFnZTo6YXBwKCktPmdldENvbmZpZygpLT5zYXZlQ29uZmlnKCRjb25maWdQYXRoLCAkZmFjZWJvb2tJZCk7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiAkZmFjZWJvb2tJZDsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBzZXRTZW5kYWJsZSgkc2VuZGFibGUpIHsKICAgICR0aGlzLT5fc2VuZGFibGUgPSAkc2VuZGFibGU7CiAgICByZXR1cm4gJHRoaXM7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0U2VuZGFibGUoKSB7CiAgICByZXR1cm4gJHRoaXMtPl9zZW5kYWJsZTsKICB9CgogIHByb3RlY3RlZCBmdW5jdGlvbiBzZWFsKCRpbnB1dCkgewogICAgcmV0dXJuIE1hZ2U6OmhlbHBlcignY29yZScpLT5qc29uRW5jb2RlKGFycmF5KCdkYXRhJyA9PiAkaW5wdXQpKTsKICB9CgogIHByb3RlY3RlZCBmdW5jdGlvbiBzaWduUGF5bG9hZCgkZGF0YSkgewogICAgcmV0dXJuIG1kNSgkdGhpcy0+Z2V0SGVscGVyKCktPmdldFNlY3JldCgpIC4gJGRhdGEpOwogIH0KCiAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldEhlbHBlcigpIHsKICAgIHJldHVybiBNYWdlOjpoZWxwZXIoJ2FsdG9sYWJzX3NuYXBwaWMnKTsKICB9Cn0K"));

Function Calls

base64_decode 1

Variables

None

Stats

MD5 812045f6c040727eb4f8b51db9eef25d
Eval Count 1
Decode Time 97 ms