Răsfoiți Sursa

Ticket #259 - Fixes and improvements.

AntonLV 10 ani în urmă
părinte
comite
7e5aa7d44f

+ 12 - 0
inc/classes/BxDolPayments.php

@@ -148,6 +148,18 @@ class BxDolPayments extends BxDol implements iBxDolSingleton
 		return BxDolService::call($this->_sActive, 'get_cart_js', $aSrvParams, 'Cart');
     }
 
+    /**
+     * Adds an item to cart in background mode.
+     */
+	public function addToCart($iVendorId, $mixedModuleId, $iItemId, $iItemCount)
+    {
+    	if(!BxDolRequest::serviceExists($this->_sActive, 'add_to_cart', 'Cart'))
+			return array();
+
+		$aSrvParams = array($iVendorId, $mixedModuleId, $iItemId, $iItemCount);
+		return BxDolService::call($this->_sActive, 'add_to_cart', $aSrvParams, 'Cart');
+    }
+
     /**
      * Returns "Add To Cart" JavaScript code to use in onclick attribute.
      */

+ 2 - 1
modules/boonex/payment/classes/BxPaymentCart.php

@@ -78,10 +78,11 @@ class BxPaymentCart extends BxBaseModPaymentCart
 		);
     }
 
-    public function serviceAddToCart($iSellerId, $iModuleId, $iItemId, $iItemCount)
+    public function serviceAddToCart($iSellerId, $mixedModuleId, $iItemId, $iItemCount)
     {
     	$CNF = &$this->_oModule->_oConfig->CNF;
 
+    	$iModuleId = $this->_oModule->_oConfig->getModuleId($mixedModuleId);
     	$iClientId = $this->_oModule->getProfileId();
 
     	$mixedResult = $this->_checkData($iClientId, $iSellerId, $iModuleId, $iItemId, $iItemCount);

+ 1 - 1
modules/boonex/payment/classes/BxPaymentConfig.php

@@ -133,7 +133,7 @@ class BxPaymentConfig extends BxBaseModPaymentConfig
 
     public function getModuleId($mixedId)
     {
-    	if(is_int($mixedId))
+    	if(is_numeric($mixedId))
     		return (int)$mixedId;
 
 		if(is_string($mixedId)) {

+ 3 - 0
modules/boonex/payment/classes/BxPaymentGridCart.php

@@ -93,6 +93,9 @@ class BxPaymentGridCart extends BxBaseModPaymentGridCarts
 			return array();
 
 		$aCart = $this->_oCart->getInfo(BX_PAYMENT_TYPE_SINGLE, $this->_aQueryAppend['client_id'], $this->_aQueryAppend['seller_id']);
+		if(empty($aCart) || empty($aCart['items']) || !is_array($aCart['items']))
+			return array();
+
 		foreach($aCart['items'] as $aCartItem) {
 			$aCartItem['descriptor'] = $this->_oModule->_oConfig->descriptorA2S(array($aCart['vendor_id'], $aCartItem['module_id'], $aCartItem['id'], $aCartItem['quantity']));
 			$aCartItem['description'] = strip_tags($aCartItem['description']);

+ 7 - 6
modules/boonex/payment/classes/BxPaymentProviderPayPal.php

@@ -167,20 +167,21 @@ class BxPaymentProviderPayPal extends BxBaseModPaymentProvider implements iBxBas
                return $aResponse;
 
             array_walk($aResponse['content'], create_function('&$arg', "\$arg = trim(\$arg);"));
-            if(strcmp($aResponse['content'][0], "INVALID") == 0)
+            if(strcmp($aResponse['content'][1], "INVALID") == 0)
                 return array('code' => 7, 'message' => $this->_sLangsPrefix . 'pp_err_wrong_transaction');
-            else if(strcmp($aResponse['content'][0], "VERIFIED") != 0)
+            else if(strcmp($aResponse['content'][1], "VERIFIED") != 0)
                 return array('code' => 8, 'message' => $this->_sLangsPrefix . 'pp_err_wrong_verification_status');
-        } else if($iPrcType == PP_PRC_TYPE_PDT) {
+        }
+         else if($iPrcType == PP_PRC_TYPE_PDT) {
             $sRequest = "cmd=_notify-synch&tx=" . $aData['tx'] . "&at=" . $this->getOption('token');
             $aResponse = $this->_readValidationData($sConnectionUrl, $sRequest);
 
             if((int)$aResponse['code'] !== 0)
                return $aResponse;
 
-            if(strcmp($aResponse['content'][0], "FAIL") == 0)
+            if(strcmp($aResponse['content'][1], "FAIL") == 0)
                 return array('code' => 7, 'message' => $this->_sLangsPrefix . 'pp_err_wrong_transaction');
-            else if(strcmp($aResponse['content'][0], "SUCCESS") != 0)
+            else if(strcmp($aResponse['content'][1], "SUCCESS") != 0)
                 return array('code' => 8, 'message' => $this->_sLangsPrefix . 'pp_err_wrong_verification_status');
 
             $aKeys = array();
@@ -212,7 +213,7 @@ class BxPaymentProviderPayPal extends BxBaseModPaymentProvider implements iBxBas
 
     protected function _readValidationData($sConnectionUrl, $sRequest)
     {
-        $sHeader = "POST /cgi-bin/webscr HTTP/1.0\r\n";
+        $sHeader = "POST /cgi-bin/webscr HTTP/1.1\r\n";
         $sHeader .= "Host: " . $sConnectionUrl . "\r\n";
         $sHeader .= "Content-Type: application/x-www-form-urlencoded\r\n";
         $sHeader .= "Content-Length: " . strlen($sRequest) . "\r\n";

+ 1 - 1
modules/boonex/payment/js/cart.js

@@ -37,7 +37,7 @@ BxPaymentCart.prototype.addToCart = function(iSellerId, iModuleId, iItemId, iIte
                 */
 
             	if(iNeedRedirect == 1)
-            		window.location.href = $this._sActionsUrl + 'cart';
+            		window.location.href = sUrlRoot + 'cart.php';
             }
         },
         'json'