BxPaymentSubscriptions.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php defined('BX_DOL') or die('hack attempt');
  2. /**
  3. * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  4. * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  5. *
  6. * @defgroup Payment Payment
  7. * @ingroup TridentModules
  8. *
  9. * @{
  10. */
  11. class BxPaymentSubscriptions extends BxBaseModPaymentSubscriptions
  12. {
  13. function __construct()
  14. {
  15. $this->MODULE = 'bx_payment';
  16. parent::__construct();
  17. }
  18. /*
  19. * Service methods
  20. */
  21. public function serviceGetBlockList()
  22. {
  23. return $this->_getBlock('list');
  24. }
  25. public function serviceGetBlockHistory()
  26. {
  27. bx_import('GridHistory', $this->_oModule->_aModule);
  28. return $this->_getBlock('history');
  29. }
  30. public function serviceGetBlockDetails()
  31. {
  32. return $this->_getBlock('details');
  33. }
  34. public function serviceSubscribe($iSellerId, $sSellerProvider, $iModuleId, $iItemId, $iItemCount)
  35. {
  36. $CNF = &$this->_oModule->_oConfig->CNF;
  37. $iClientId = $this->_oModule->getProfileId();
  38. $mixedResult = $this->_checkData($iClientId, $iSellerId, $iModuleId, $iItemId, $iItemCount);
  39. if($mixedResult !== true)
  40. return $mixedResult;
  41. $aSellerProviders = $this->_oModule->_oDb->getVendorInfoProvidersRecurring($iSellerId);
  42. if(empty($aSellerProviders))
  43. return array('code' => 5, 'message' => _t($CNF['T']['ERR_NOT_ACCEPT_PAYMENTS']));
  44. $aCartItem = array($iSellerId, $iModuleId, $iItemId, $iItemCount);
  45. $sCartItem = $this->_oModule->_oConfig->descriptorA2S($aCartItem);
  46. if(empty($sSellerProvider)) {
  47. $sId = $this->_oModule->_oConfig->getHtmlIds('cart', 'providers_select') . BX_PAYMENT_TYPE_RECURRING;
  48. $sTitle = _t($CNF['T']['POPUP_PROVIDERS_SELECT']);
  49. return array('popup' => BxTemplStudioFunctions::getInstance()->popupBox($sId, $sTitle, $this->_oModule->_oTemplate->displayProvidersSelector($aCartItem, $aSellerProviders)));
  50. }
  51. $aProvider = $aSellerProviders[$sSellerProvider];
  52. $mixedResult = $this->_oModule->serviceInitializeCheckout(BX_PAYMENT_TYPE_RECURRING, $iSellerId, $aProvider['name'], array($sCartItem));
  53. if(is_string($mixedResult))
  54. return array('code' => 6, 'message' => _t($mixedResult));
  55. return $mixedResult;
  56. }
  57. protected function _getBlock($sType)
  58. {
  59. $CNF = &$this->_oModule->_oConfig->CNF;
  60. $sMethod = 'displayBlockSbs' . bx_gen_method_name($sType);
  61. if(!method_exists($this->_oModule->_oTemplate, $sMethod))
  62. return MsgBox(_t('_Empty'));
  63. $iUserId = $this->_oModule->getProfileId();
  64. if(empty($iUserId))
  65. return MsgBox(_t($CNF['T']['ERR_REQUIRED_LOGIN']));
  66. return array(
  67. 'content' => $this->_oModule->_oTemplate->$sMethod($iUserId),
  68. 'menu' => $this->_oModule->_oConfig->getObject('menu_sbs_submenu')
  69. );
  70. }
  71. }
  72. /** @} */