public function generateHtmlRecurrence($days, $amount, $currency, $comment, array $data, XenForo_View $view) { $data[] = utf8_strtolower($currency); $data[] = $amount; $processorModel = $this->_getProcessorModel(); $itemId = $processorModel->generateItemId('bdshop', XenForo_Visitor::getInstance(), $data); $processorNames = $processorModel->getProcessorNames(); $processors = array(); foreach ($processorNames as $processorId => $processorClass) { $processors[$processorId] = bdPaygate_Processor_Abstract::create($processorClass); } $recurringInterval = false; $recurringUnit = false; if ($days > 0) { if ($days % 360 == 0) { $recurringInterval = $days / 365; $recurringUnit = bdPaygate_Processor_Abstract::RECURRING_UNIT_YEAR; } elseif ($days % 30 == 0) { $recurringInterval = $days / 30; $recurringUnit = bdPaygate_Processor_Abstract::RECURRING_UNIT_MONTH; } else { $recurringInterval = $days; $recurringUnit = bdPaygate_Processor_Abstract::RECURRING_UNIT_DAY; } } return implode('', bdPaygate_Processor_Abstract::prepareForms($processors, $amount, $currency, $comment, $itemId, $recurringInterval, $recurringUnit, array(bdPaygate_Processor_Abstract::EXTRA_RETURN_URL => XenForo_Link::buildPublicLink('full:shop/thanks')))); }
public function actionUpgrades() { $response = parent::actionUpgrades(); if ($response instanceof XenForo_ControllerResponse_View and $response->subView != null and $response->subView->templateName == 'account_upgrades') { $viewParams =& $response->subView->params; // prepare all available processors /* @var $processorModel bdPaygate_Model_Processor */ $processorModel = $this->getModelFromCache('bdPaygate_Model_Processor'); $processorNames = $processorModel->getProcessorNames(); $processors = array(); foreach ($processorNames as $processorId => $processorClass) { $processors[$processorId] = bdPaygate_Processor_Abstract::create($processorClass); } $viewParams['processors'] = $processors; } return $response; }
public function actionPurchase() { list($resource, $category) = $this->_getResourceViewInfo(); /** @var bdPaygate_XenResource_Model_Resource_Base $resourceModel */ $resourceModel = $this->_getResourceModel(); if (!$resourceModel->bdPaygate_mustPurchaseToDownload($resource)) { return $this->responseNoPermission(); } if (!$resourceModel->bdPaygate_canPurchaseResource($resource, $category, $errorPhraseKey)) { throw $this->getErrorOrNoPermissionResponseException($errorPhraseKey); } /* @var $processorModel bdPaygate_Model_Processor */ $processorModel = $this->getModelFromCache('bdPaygate_Model_Processor'); $processorNames = $processorModel->getProcessorNames(); $processors = array(); foreach ($processorNames as $processorId => $processorClass) { $processors[$processorId] = bdPaygate_Processor_Abstract::create($processorClass); } $viewParams = array('resource' => $this->_getResourceModel()->prepareResource($resource), 'category' => $category, 'processors' => $processors); return $this->responseView('bdPaygate_ViewPublic_Resource_Purchase', 'bdpaygate_resource_purchase', $viewParams); }
public static function getSubscriptionLink($subscriptionId) { $processor = bdPaygate_Processor_Abstract::create(__CLASS__); $payPalUrl = $processor->_sandboxMode() ? 'https://www.sandbox.paypal.com' : 'https://www.paypal.com'; return sprintf('%s/customerprofileweb?cmd=_manage-paylist', $payPalUrl); }
XenForo_Autoloader::getInstance()->setupAutoloader($fileDir . '/library'); XenForo_Application::initialize($fileDir . '/library', $fileDir); XenForo_Application::set('page_start_time', $startTime); $dependencies = new XenForo_Dependencies_Public(); $dependencies->preLoadData(); // requires to get registered event listeners if (!isset($_GET['p'])) { die('Invalid callback request'); } $processorId = $_GET['p']; $processorModel = XenForo_Model::create('bdPaygate_Model_Processor'); $names = $processorModel->getProcessorNames(); if (!isset($names[$processorId])) { die('Invalid processor specified'); } $processor = bdPaygate_Processor_Abstract::create($names[$processorId]); $request = new Zend_Controller_Request_Http(); $response = new Zend_Controller_Response_Http(); $logMessage = ''; $logDetails = array(); $transactionId = false; $paymentStatus = false; $itemId = false; $amount = false; $currency = false; try { $validateResult = false; try { // try to use the validateCallback method version 2 with support for amount and // currency extraction $validateResult = $processor->validateCallback2($request, $transactionId, $paymentStatus, $logDetails, $itemId, $amount, $currency);