예제 #1
0
 function step3()
 {
     $checkout = JModelLegacy::getInstance('checkout', 'jshop');
     $checkout->checkStep(3);
     JPluginHelper::importPlugin('jshoppingcheckout');
     $dispatcher = JDispatcher::getInstance();
     $dispatcher->trigger('onLoadCheckoutStep3', array());
     $jshopConfig = JSFactory::getConfig();
     $session = JFactory::getSession();
     $cart = JModelLegacy::getInstance('cart', 'jshop');
     $cart->load();
     $user = JFactory::getUser();
     if ($user->id) {
         $adv_user = JSFactory::getUserShop();
     } else {
         $adv_user = JSFactory::getUserShopGuest();
     }
     appendPathWay(_JSHOP_CHECKOUT_PAYMENT);
     $seo = JTable::getInstance("seo", "jshop");
     $seodata = $seo->loadData("checkout-payment");
     if ($seodata->title == "") {
         $seodata->title = _JSHOP_CHECKOUT_PAYMENT;
     }
     setMetaData($seodata->title, $seodata->keyword, $seodata->description);
     $checkout_navigator = $this->_showCheckoutNavigation(3);
     if ($jshopConfig->show_cart_all_step_checkout) {
         $small_cart = $this->_showSmallCart(3);
     } else {
         $small_cart = '';
     }
     if ($jshopConfig->without_payment) {
         $checkout->setMaxStep(4);
         $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step4', 0, 1, $jshopConfig->use_ssl));
         return 0;
     }
     $paymentmethod = JTable::getInstance('paymentmethod', 'jshop');
     $shipping_id = $cart->getShippingId();
     $all_payment_methods = $paymentmethod->getAllPaymentMethods(1, $shipping_id);
     $i = 0;
     $paym = array();
     foreach ($all_payment_methods as $pm) {
         $paym[$i] = new stdClass();
         $paymentsysdata = $paymentmethod->getPaymentSystemData($pm->payment_class);
         if ($paymentsysdata->paymentSystem) {
             $paym[$i]->existentcheckform = 1;
             $paym[$i]->payment_system = $paymentsysdata->paymentSystem;
         } else {
             $paym[$i]->existentcheckform = 0;
         }
         $paym[$i]->name = $pm->name;
         $paym[$i]->payment_id = $pm->payment_id;
         $paym[$i]->payment_class = $pm->payment_class;
         $paym[$i]->payment_description = $pm->description;
         $paym[$i]->price_type = $pm->price_type;
         $paym[$i]->image = $pm->image;
         $paym[$i]->price_add_text = '';
         if ($pm->price_type == 2) {
             $paym[$i]->calculeprice = $pm->price;
             if ($paym[$i]->calculeprice != 0) {
                 if ($paym[$i]->calculeprice > 0) {
                     $paym[$i]->price_add_text = '+' . $paym[$i]->calculeprice . '%';
                 } else {
                     $paym[$i]->price_add_text = $paym[$i]->calculeprice . '%';
                 }
             }
         } else {
             $paym[$i]->calculeprice = getPriceCalcParamsTax($pm->price * $jshopConfig->currency_value, $pm->tax_id, $cart->products);
             if ($paym[$i]->calculeprice != 0) {
                 if ($paym[$i]->calculeprice > 0) {
                     $paym[$i]->price_add_text = '+' . formatprice($paym[$i]->calculeprice);
                 } else {
                     $paym[$i]->price_add_text = formatprice($paym[$i]->calculeprice);
                 }
             }
         }
         $s_payment_method_id = $cart->getPaymentId();
         if ($s_payment_method_id == $pm->payment_id) {
             $params = $cart->getPaymentParams();
         } else {
             $params = array();
         }
         $parseString = new parseString($pm->payment_params);
         $pmconfig = $parseString->parseStringToParams();
         if ($paym[$i]->existentcheckform) {
             ob_start();
             $paym[$i]->payment_system->showPaymentForm($params, $pmconfig);
             $paym[$i]->form = ob_get_contents();
             ob_get_clean();
         } else {
             $paym[$i]->form = "";
         }
         $i++;
     }
     $s_payment_method_id = $cart->getPaymentId();
     $active_payment = intval($s_payment_method_id);
     if (!$active_payment) {
         $list_payment_id = array();
         foreach ($paym as $v) {
             $list_payment_id[] = $v->payment_id;
         }
         if (in_array($adv_user->payment_id, $list_payment_id)) {
             $active_payment = $adv_user->payment_id;
         }
     }
     if (!$active_payment) {
         if (isset($paym[0])) {
             $active_payment = $paym[0]->payment_id;
         }
     }
     if ($jshopConfig->hide_payment_step) {
         $first_payment = $paym[0]->payment_class;
         if (!$first_payment) {
             JError::raiseWarning("", _JSHOP_ERROR_PAYMENT);
             return 0;
         }
         $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step3save&payment_method=' . $first_payment, 0, 1, $jshopConfig->use_ssl));
         return 0;
     }
     $view_name = "checkout";
     $view_config = array("template_path" => JPATH_COMPONENT . "/templates/" . $jshopConfig->template . "/" . $view_name);
     $view = $this->getView($view_name, getDocumentType(), '', $view_config);
     $view->setLayout("payments");
     $view->assign('payment_methods', $paym);
     $view->assign('active_payment', $active_payment);
     $view->assign('checkout_navigator', $checkout_navigator);
     $view->assign('small_cart', $small_cart);
     $view->assign('action', SEFLink('index.php?option=com_jshopping&controller=checkout&task=step3save', 0, 0, $jshopConfig->use_ssl));
     $dispatcher->trigger('onBeforeDisplayCheckoutStep3View', array(&$view));
     $view->display();
 }
예제 #2
0
 /**
  * get config    
  */
 function getConfigs()
 {
     $parseString = new parseString($this->payment_params);
     $params = $parseString->parseStringToParams();
     return $params;
 }
 /**
  * добавляет область выборат способов оплаты
  */
 public function addPaymentMethods()
 {
     $cart = JSFactory::getModel('cart', 'jshop');
     $cart->load();
     $paymentmethod = JSFactory::getTable('paymentmethod', 'jshop');
     $shipping_id = $cart->getShippingId();
     $all_payment_methods = $paymentmethod->getAllPaymentMethods(1, $shipping_id);
     $i = 0;
     $paym = array();
     foreach ($all_payment_methods as $pm) {
         $paym[$i] = new stdClass();
         if ($pm->scriptname != '') {
             $scriptname = $pm->scriptname;
         } else {
             $scriptname = $pm->payment_class;
         }
         $paymentmethod->load($pm->payment_id);
         $paymentsysdata = $paymentmethod->getPaymentSystemData($scriptname);
         if ($paymentsysdata->paymentSystem) {
             $paym[$i]->existentcheckform = 1;
             $paym[$i]->payment_system = $paymentsysdata->paymentSystem;
         } else {
             $paym[$i]->existentcheckform = 0;
         }
         $paym[$i]->name = $pm->name;
         $paym[$i]->payment_id = $pm->payment_id;
         $paym[$i]->payment_class = $pm->payment_class;
         $paym[$i]->scriptname = $pm->scriptname;
         $paym[$i]->payment_description = $pm->description;
         $paym[$i]->price_type = $pm->price_type;
         $paym[$i]->image = $pm->image;
         $paym[$i]->price_add_text = '';
         if ($pm->price_type == 2) {
             $paym[$i]->calculeprice = $pm->price;
             if ($paym[$i]->calculeprice != 0) {
                 if ($paym[$i]->calculeprice > 0) {
                     $paym[$i]->price_add_text = '+' . $paym[$i]->calculeprice . '%';
                 } else {
                     $paym[$i]->price_add_text = $paym[$i]->calculeprice . '%';
                 }
             }
         } else {
             $paym[$i]->calculeprice = getPriceCalcParamsTax($pm->price * $jshopConfig->currency_value, $pm->tax_id, $cart->products);
             if ($paym[$i]->calculeprice != 0) {
                 if ($paym[$i]->calculeprice > 0) {
                     $paym[$i]->price_add_text = '+' . formatprice($paym[$i]->calculeprice);
                 } else {
                     $paym[$i]->price_add_text = formatprice($paym[$i]->calculeprice);
                 }
             }
         }
         $s_payment_method_id = $cart->getPaymentId();
         if ($s_payment_method_id == $pm->payment_id) {
             $params = $cart->getPaymentParams();
         } else {
             $params = array();
         }
         $parseString = new parseString($pm->payment_params);
         $pmconfig = $parseString->parseStringToParams();
         if ($paym[$i]->existentcheckform) {
             $paym[$i]->form = $paymentmethod->loadPaymentForm($paym[$i]->payment_system, $params, $pmconfig);
         } else {
             $paym[$i]->form = "";
         }
         $i++;
     }
     $s_payment_method_id = $cart->getPaymentId();
     $active_payment = intval($s_payment_method_id);
     if (!$active_payment) {
         $list_payment_id = array();
         foreach ($paym as $v) {
             $list_payment_id[] = $v->payment_id;
         }
         if (in_array($adv_user->payment_id, $list_payment_id)) {
             $active_payment = $adv_user->payment_id;
         }
     }
     if (!$active_payment) {
         if (isset($paym[0])) {
             $active_payment = $paym[0]->payment_id;
         }
     }
     $html = '';
     $html .= '<h2>' . _JSHOP_STEP_ORDER_3 . '</h2>';
     $html .= '<div id="table_payments" class="form-inline">';
     $payment_class = "";
     foreach ($paym as $payment) {
         if ($active_payment == $payment->payment_id) {
             $payment_class = $payment->payment_class;
         }
         $html .= '<div class="name">';
         if ($active_payment == $payment->payment_id) {
             $checked = 'checked';
         } else {
             $checked = '';
         }
         $html .= '<input type="radio" name="payment_method" id="payment_method_' . $payment->payment_id . '" onclick="showPaymentForm(\'' . $payment->payment_class . '\')" value="' . $payment->payment_class . '" ' . $checked . ' />';
         $html .= ' <label for = "payment_method_' . $payment->payment_id . '">';
         if ($payment->image) {
             $html .= '<span class="payment_image"><img src="' . $payment->image . '" alt="' . htmlspecialchars($payment->name) . '" /></span>';
         }
         $html .= '<b>' . $payment->name . '</b>';
         if ($payment->price_add_text != '') {
             $html .= '<span class="payment_price">(' . $payment->price_add_text . ')</span>';
         }
         $html .= '</label>';
         $html .= '';
         $html .= ' </div>';
         $html .= '';
     }
     $html .= ' </div>';
     $html .= '';
     return $html;
 }
예제 #4
0
 public function getCheckoutListPayments()
 {
     $jshopConfig = JSFactory::getConfig();
     $cart = $this->getCart();
     $paymentmethod = JSFactory::getTable('paymentmethod', 'jshop');
     $shipping_id = $cart->getShippingId();
     $all_payment_methods = $paymentmethod->getAllPaymentMethods(1, $shipping_id);
     $i = 0;
     $paym = array();
     foreach ($all_payment_methods as $pm) {
         $paym[$i] = new stdClass();
         if ($pm->scriptname != '') {
             $scriptname = $pm->scriptname;
         } else {
             $scriptname = $pm->payment_class;
         }
         $paymentmethod->load($pm->payment_id);
         $paymentsysdata = $paymentmethod->getPaymentSystemData($scriptname);
         if ($paymentsysdata->paymentSystem) {
             $paym[$i]->existentcheckform = 1;
             $paym[$i]->payment_system = $paymentsysdata->paymentSystem;
         } else {
             $paym[$i]->existentcheckform = 0;
         }
         $paym[$i]->name = $pm->name;
         $paym[$i]->payment_id = $pm->payment_id;
         $paym[$i]->payment_class = $pm->payment_class;
         $paym[$i]->scriptname = $pm->scriptname;
         $paym[$i]->payment_description = $pm->description;
         $paym[$i]->price_type = $pm->price_type;
         $paym[$i]->image = $pm->image;
         $paym[$i]->price_add_text = '';
         if ($pm->price_type == 2) {
             $paym[$i]->calculeprice = $pm->price;
             if ($paym[$i]->calculeprice != 0) {
                 if ($paym[$i]->calculeprice > 0) {
                     $paym[$i]->price_add_text = '+' . $paym[$i]->calculeprice . '%';
                 } else {
                     $paym[$i]->price_add_text = $paym[$i]->calculeprice . '%';
                 }
             }
         } else {
             $paym[$i]->calculeprice = getPriceCalcParamsTax($pm->price * $jshopConfig->currency_value, $pm->tax_id, $cart->products);
             if ($paym[$i]->calculeprice != 0) {
                 if ($paym[$i]->calculeprice > 0) {
                     $paym[$i]->price_add_text = '+' . formatprice($paym[$i]->calculeprice);
                 } else {
                     $paym[$i]->price_add_text = formatprice($paym[$i]->calculeprice);
                 }
             }
         }
         $s_payment_method_id = $cart->getPaymentId();
         if ($s_payment_method_id == $pm->payment_id) {
             $params = $cart->getPaymentParams();
         } else {
             $params = array();
         }
         $parseString = new parseString($pm->payment_params);
         $pmconfig = $parseString->parseStringToParams();
         if ($paym[$i]->existentcheckform) {
             $paym[$i]->form = $paymentmethod->loadPaymentForm($paym[$i]->payment_system, $params, $pmconfig);
         } else {
             $paym[$i]->form = "";
         }
         $i++;
     }
     return $paym;
 }
예제 #5
0
 function save()
 {
     $payment_id = JRequest::getInt("payment_id");
     JPluginHelper::importPlugin('jshoppingadmin');
     $dispatcher = JDispatcher::getInstance();
     $db = JFactory::getDBO();
     $payment = JTable::getInstance('paymentMethod', 'jshop');
     $post = JRequest::get("post");
     if (!isset($post['payment_publish'])) {
         $post['payment_publish'] = 0;
     }
     if (!isset($post['show_descr_in_email'])) {
         $post['show_descr_in_email'] = 0;
     }
     $post['price'] = saveAsPrice($post['price']);
     $post['payment_class'] = JRequest::getCmd("payment_class");
     if (!$post['payment_id']) {
         $post['payment_type'] = 1;
     }
     $dispatcher->trigger('onBeforeSavePayment', array(&$post));
     $_lang = $this->getModel("languages");
     $languages = $_lang->getAllLanguages(1);
     foreach ($languages as $lang) {
         $post['description_' . $lang->language] = JRequest::getVar('description' . $lang->id, '', 'post', "string", 2);
     }
     $payment->bind($post);
     $_payments = $this->getModel("payments");
     if (!$payment->payment_id) {
         $payment->payment_ordering = $_payments->getMaxOrdering() + 1;
     }
     if (isset($post['pm_params'])) {
         $parseString = new parseString($post['pm_params']);
         $payment->payment_params = $parseString->splitParamsToString();
     }
     if (!$payment->check()) {
         JError::raiseWarning("", $payment->getError());
         $this->setRedirect("index.php?option=com_jshopping&controller=payments&task=edit&payment_id=" . $payment->payment_id);
         return 0;
     }
     $payment->store();
     $dispatcher->trigger('onAfterSavePayment', array(&$payment));
     if ($this->getTask() == 'apply') {
         $this->setRedirect("index.php?option=com_jshopping&controller=payments&task=edit&payment_id=" . $payment->payment_id);
     } else {
         $this->setRedirect("index.php?option=com_jshopping&controller=payments");
     }
 }
예제 #6
0
    function step3(){
    
    	$this->_check(3);
    	
        $jshopConfig = &JSFactory::getConfig();
        $session =& JFactory::getSession();
        $cart = &JModel::getInstance('cart', 'jshop');
        $cart->load();
        
        $user = &JFactory::getUser();
        if ($user->id){
            $adv_user = &JSFactory::getUserShop();
        }else{
            $adv_user = &JSFactory::getUserShopGuest();    
        }    
        
        appendPathWay(_JSHOP_CHECKOUT_PAYMENT);
        $seo = &JTable::getInstance("seo", "jshop");
        $seodata = $seo->loadData("checkout-payment");
        if ($seodata->title==""){
            $seodata->title = _JSHOP_CHECKOUT_PAYMENT;
        }
        setMetaData($seodata->title, $seodata->keyword, $seodata->description);
        
        $this->_showCheckoutNavigation(3);
        if ($jshopConfig->show_cart_all_step_checkout){
            $this->_showSmallCart(3);
        }                        
        
        if ($jshopConfig->without_payment){
            $this->_setMaxStep(4);
            $cart->setPaymentId(0);
            $cart->setPaymentParams("");
            $cart->setPaymentPrice(0);
            $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step4',0,1,$jshopConfig->use_ssl));
            return 0;
        }
        
        $paymentmethod = &JTable::getInstance('paymentmethod', 'jshop');
        $all_payment_methods = jshopPaymentMethod::getAllPaymentMethods();
        $i = 0;
        $paym = array();
        foreach ($all_payment_methods as $pm) {
            if (file_exists($jshopConfig->path . 'payments/'.$pm->payment_class."/".$pm->payment_class.'.php')){
                require_once ($jshopConfig->path . 'payments/'.$pm->payment_class."/".$pm->payment_class.'.php');
                $paym[$i]->existentcheckform = 1;
            }else{
                $paym[$i]->existentcheckform = 0;
            }
            
            $paym[$i]->name = $pm->name;
            $paym[$i]->payment_id = $pm->payment_id;
            $paym[$i]->payment_class = $pm->payment_class;
            $paym[$i]->payment_description = $pm->description;
            $paym[$i]->price_type = $pm->price_type;
            if ($pm->price_type==2){
                $paym[$i]->calculeprice = $pm->price;
            }else{
                $paym[$i]->calculeprice = getPriceCalcParamsTax($pm->price * $jshopConfig->currency_value, $pm->tax_id);
            }
            
            $s_payment_method_id = $cart->getPaymentId();
            if ($s_payment_method_id == $pm->payment_id){
                $params = $cart->getPaymentParams();
            }else{
                $params = array();
            }

            $parseString = new parseString($pm->payment_params);
            $pmconfig = $parseString->parseStringToParams();            

            if ($paym[$i]->existentcheckform){
                ob_start();
                call_user_func(array($pm->payment_class, 'showPaymentForm'), $params, $pmconfig);
                $paym[$i]->form = ob_get_contents();
                ob_get_clean();
            }else{
                $paym[$i]->form = "";
            }
            
            $i++;           
        }
        
        $s_payment_method_id = $cart->getPaymentId();
        $active_payment = intval($s_payment_method_id);

        if (!$active_payment){
            $list_payment_id = array();
            foreach($paym as $v){            
                $list_payment_id[] = $v->payment_id;
            }
            if (in_array($adv_user->payment_id, $list_payment_id)) $active_payment = $adv_user->payment_id;
        }
        
        if (!$active_payment){
            if (isset($paym[0])){
                $active_payment = $paym[0]->payment_id;
            }
        }
        
        if ($jshopConfig->hide_payment_step){
            $first_payment = $paym[0]->payment_class;
            if (!$first_payment){
                JError::raiseWarning("", _JSHOP_ERROR_PAYMENT);
                return 0;    
            }
            $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step3save&payment_method='.$first_payment,0,1,$jshopConfig->use_ssl));
            return 0;
        }
        
        JPluginHelper::importPlugin('jshoppingcheckout');
        $dispatcher =& JDispatcher::getInstance();
        $dispatcher->trigger( 'onBeforeDisplayCheckoutStep3', array(&$adv_user, &$paym) );
        
        $view_name = "checkout";
        $view_config = array("template_path"=>JPATH_COMPONENT."/templates/".$jshopConfig->template."/".$view_name);
        $view = &$this->getView($view_name, 'html', '', $view_config);
        $view->setLayout("payments");        
        $view->assign('payment_methods', $paym);
        $view->assign('active_payment', $active_payment);
        $view->assign('action', SEFLink('index.php?option=com_jshopping&controller=checkout&task=step3save', 0, 0, $jshopConfig->use_ssl));
        $view->display();    
    }