Example #1
0
 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'))));
 }
Example #2
0
 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;
 }
Example #3
0
 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);
 }
Example #4
0
 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);
 }
Example #5
0
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);