Overview

Packages

  • currencysymbol
  • MAbout
  • Mage
    • Admin
    • Adminhtml
    • AdminNotification
    • Api
    • Api2
    • Authorizenet
    • Backup
    • Bundle
    • Captcha
    • Catalog
    • CatalogIndex
    • CatalogInventory
    • CatalogRule
    • CatalogSearch
    • Centinel
    • Checkout
    • Cms
    • Compiler
    • Connect
    • Contacts
    • Core
    • Cron
    • CurrencySymbol
    • Customer
    • Dataflow
    • Directory
    • DirtectPost
    • Downloadable
    • Eav
    • GiftMessage
    • GoogleAnalytics
    • GoogleBase
    • GoogleCheckout
    • ImportExport
    • Index
    • Install
    • Log
    • Media
    • Newsletter
    • Oauth
    • Page
    • PageCache
    • Paygate
    • Payment
    • Paypal
    • PaypalUk
    • Persistent
    • Poll
    • ProductAlert
    • Rating
    • Reports
    • Review
    • Rss
    • Rule
    • Sales
    • SalesRule
    • Sedfriend
    • Sendfriend
    • Shipping
    • Sitemap
    • Tag
    • Tax
    • Usa
    • Weee
    • Widget
    • Wishlist
    • XmlConnect
  • None
  • Phoenix
    • Moneybookers
  • PHP
  • Zend
    • Date
    • Mime
    • XmlRpc

Classes

  • Mage_XmlConnect_Adminhtml_MobileController
  • Mage_XmlConnect_Block_Adminhtml_History
  • Mage_XmlConnect_Block_Adminhtml_History_Grid
  • Mage_XmlConnect_Block_Adminhtml_Mobile
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Form
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Submission
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Cache
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Content
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design_Accordion
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design_Accordion_Images
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design_Accordion_Tabs
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design_Accordion_Themes
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design_Preview
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design_Themes
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Flurryanalytics
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_General
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Notification
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Payment
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Settings
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Social
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Submission_History
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tabs
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Addrow
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Color
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Country
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Datetime
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Font
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Image
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Page
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Tabs
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Theme
  • Mage_Xmlconnect_Block_Adminhtml_Mobile_Grid
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Grid_Renderer_Bool
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Grid_Renderer_Type
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Preview_Content
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Preview_Tabitems
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Submission
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Form
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Renderer_Country_Androidmarket
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Renderer_Country_Istore
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Tab_Container
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Tab_Container_Submission
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Tabs
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Widget_Form
  • Mage_XmlConnect_Block_Adminhtml_Queue
  • Mage_XmlConnect_Block_Adminhtml_Queue_Edit
  • Mage_XmlConnect_Block_Adminhtml_Queue_Edit_Form
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid_Renderer_Action
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid_Renderer_Application
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid_Renderer_Id
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid_Renderer_Msgtitle
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid_Renderer_Pushtitle
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid_Renderer_Status
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid_Renderer_Template
  • Mage_XmlConnect_Block_Adminhtml_Template
  • Mage_XmlConnect_Block_Adminhtml_Template_Edit
  • Mage_XmlConnect_Block_Adminhtml_Template_Edit_Form
  • Mage_XmlConnect_Block_Adminhtml_Template_Grid
  • Mage_XmlConnect_Block_Adminhtml_Template_Grid_Renderer_Application
  • Mage_XmlConnect_Block_Adminhtml_Template_Grid_Renderer_Name
  • Mage_XmlConnect_Block_Adminhtml_Template_Preview
  • Mage_XmlConnect_Block_Adminhtml_Template_Preview_Form
  • Mage_XmlConnect_Block_Cart
  • Mage_XmlConnect_Block_Cart_Crosssell
  • Mage_XmlConnect_Block_Cart_Info
  • Mage_XmlConnect_Block_Cart_Item_Renderer
  • Mage_XmlConnect_Block_Cart_Item_Renderer_Configurable
  • Mage_XmlConnect_Block_Cart_Item_Renderer_Grouped
  • Mage_XmlConnect_Block_Cart_Paypal_Mecl_Details
  • Mage_XmlConnect_Block_Cart_Paypal_Mecl_Review
  • Mage_XmlConnect_Block_Cart_Paypal_Mecl_Shippingmethods
  • Mage_XmlConnect_Block_Cart_Paypal_Mep_Totals
  • Mage_XmlConnect_Block_Cart_Totals
  • Mage_XmlConnect_Block_Catalog
  • Mage_XmlConnect_Block_Catalog_Category
  • Mage_XmlConnect_Block_Catalog_Category_Info
  • Mage_XmlConnect_Block_Catalog_Filters
  • Mage_XmlConnect_Block_Catalog_Product
  • Mage_XmlConnect_Block_Catalog_Product_Attributes
  • Mage_XmlConnect_Block_Catalog_Product_Gallery
  • Mage_XmlConnect_Block_Catalog_Product_List
  • Mage_XmlConnect_Block_Catalog_Product_Options
  • Mage_XmlConnect_Block_Catalog_Product_Options_Bundle
  • Mage_XmlConnect_Block_Catalog_Product_Options_Configurable
  • Mage_XmlConnect_Block_Catalog_Product_Options_Giftcard
  • Mage_XmlConnect_Block_Catalog_Product_Options_Grouped
  • Mage_XmlConnect_Block_Catalog_Product_Options_Simple
  • Mage_XmlConnect_Block_Catalog_Product_Options_Virtual
  • Mage_XmlConnect_Block_Catalog_Product_Price
  • Mage_XmlConnect_Block_Catalog_Product_Price_Bundle
  • Mage_XmlConnect_Block_Catalog_Product_Price_Default
  • Mage_XmlConnect_Block_Catalog_Product_Price_Giftcard
  • Mage_XmlConnect_Block_Catalog_Product_Related
  • Mage_XmlConnect_Block_Catalog_Product_Review
  • Mage_XmlConnect_Block_Catalog_Product_Review_List
  • Mage_XmlConnect_Block_Catalog_Search
  • Mage_XmlConnect_Block_Catalog_Search_Suggest
  • Mage_XmlConnect_Block_Checkout_Address_Billing
  • Mage_XmlConnect_Block_Checkout_Address_Form
  • Mage_XmlConnect_Block_Checkout_Address_Shipping
  • Mage_XmlConnect_Block_Checkout_Agreements
  • Mage_XmlConnect_Block_Checkout_Order_Review
  • Mage_XmlConnect_Block_Checkout_Order_Review_Info
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Authorizenet
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Ccsave
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Checkmo
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Authorizenet
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Ccsave
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Checkmo
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Free
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Paypal_Abstract
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Paypal_Express
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Paypal_Mecl
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Pbridge_Authorizenet
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Pbridge_Paypal_Direct
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Pbridge_Paypaluk_Direct
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Pbridge_Verisign
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Purchaseorder
  • Mage_XmlConnect_Block_Checkout_Payment_Method_List
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Paypal_Direct
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Paypal_Payflow
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Pbridge_Abstract
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Pbridge_Authorizenet
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Pbridge_Paypal
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Pbridge_Paypaluk
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Pbridge_Verisign
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Purchaseorder
  • Mage_XmlConnect_Block_Checkout_Pbridge_Result
  • Mage_XmlConnect_Block_Checkout_Shipping_Method_Available
  • Mage_XmlConnect_Block_Cms_Page
  • Mage_XmlConnect_Block_Configuration
  • Mage_XmlConnect_Block_Customer_Address_Form
  • Mage_XmlConnect_Block_Customer_Address_List
  • Mage_XmlConnect_Block_Customer_Form
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Boolean
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Date
  • Mage_XmlConnect_Block_Customer_Form_Renderer_File
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Image
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Multiline
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Multiselect
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Select
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Text
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Textarea
  • Mage_XmlConnect_Block_Customer_GiftcardCheck
  • Mage_XmlConnect_Block_Customer_Order_Details
  • Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Bundle
  • Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Default
  • Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Downloadable
  • Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Giftcard
  • Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Grouped
  • Mage_XmlConnect_Block_Customer_Order_Items
  • Mage_XmlConnect_Block_Customer_Order_List
  • Mage_XmlConnect_Block_Customer_Order_Totals
  • Mage_XmlConnect_Block_Customer_Order_Totals_Customerbalance
  • Mage_XmlConnect_Block_Customer_Order_Totals_Customerbalance_Refunded
  • Mage_XmlConnect_Block_Customer_Order_Totals_Giftcards
  • Mage_XmlConnect_Block_Customer_Order_Totals_Tax
  • Mage_XmlConnect_Block_Customer_Storecredit
  • Mage_XmlConnect_Block_Home
  • Mage_XmlConnect_Block_Review_Form
  • Mage_XmlConnect_Block_Wishlist
  • Mage_XmlConnect_CartController
  • Mage_XmlConnect_CatalogController
  • Mage_XmlConnect_CheckoutController
  • Mage_XmlConnect_CmsController
  • Mage_XmlConnect_ConfigurationController
  • Mage_XmlConnect_Controller_Action
  • Mage_XmlConnect_CustomerController
  • Mage_XmlConnect_Helper_Android
  • Mage_XmlConnect_Helper_Catalog_Category_Image
  • Mage_XmlConnect_Helper_Customer_Form_Renderer
  • Mage_XmlConnect_Helper_Customer_Order
  • Mage_XmlConnect_Helper_Data
  • Mage_XmlConnect_Helper_Image
  • Mage_XmlConnect_Helper_Ipad
  • Mage_XmlConnect_Helper_Iphone
  • Mage_XmlConnect_Helper_Theme
  • Mage_XmlConnect_IndexController
  • Mage_XmlConnect_Model_Adminhtml_System_Config_Backend_Baseurl
  • Mage_XmlConnect_Model_Adminhtml_System_Config_Backend_Currency_Default
  • Mage_XmlConnect_Model_Application
  • Mage_XmlConnect_Model_Catalog_Category_Image
  • Mage_XmlConnect_Model_ConfigData
  • Mage_XmlConnect_Model_History
  • Mage_XmlConnect_Model_Mysql4_Application
  • Mage_XmlConnect_Model_Mysql4_Application_Collection
  • Mage_XmlConnect_Model_Mysql4_Cms_Page_Collection
  • Mage_XmlConnect_Model_Mysql4_ConfigData
  • Mage_XmlConnect_Model_Mysql4_ConfigData_Collection
  • Mage_XmlConnect_Model_Mysql4_Filter_Collection
  • Mage_XmlConnect_Model_Mysql4_History
  • Mage_XmlConnect_Model_Mysql4_History_Collection
  • Mage_XmlConnect_Model_Mysql4_Queue
  • Mage_XmlConnect_Model_Mysql4_Queue_Collection
  • Mage_XmlConnect_Model_Mysql4_Setup
  • Mage_XmlConnect_Model_Mysql4_Template
  • Mage_XmlConnect_Model_Mysql4_Template_Collection
  • Mage_XmlConnect_Model_Observer
  • Mage_XmlConnect_Model_Payment_Method_Paypal_Config
  • Mage_XmlConnect_Model_Payment_Method_Paypal_Mecl
  • Mage_XmlConnect_Model_Payment_Method_Paypal_Mep
  • Mage_XmlConnect_Model_Paypal_Mecl_Checkout
  • Mage_XmlConnect_Model_Paypal_Mep_Checkout
  • Mage_XmlConnect_Model_Preview_Abstract
  • Mage_XmlConnect_Model_Preview_Android
  • Mage_XmlConnect_Model_Preview_Ipad
  • Mage_XmlConnect_Model_Preview_Iphone
  • Mage_XmlConnect_Model_Queue
  • Mage_XmlConnect_Model_Resource_Application
  • Mage_XmlConnect_Model_Resource_Application_Collection
  • Mage_XmlConnect_Model_Resource_Cms_Page_Collection
  • Mage_XmlConnect_Model_Resource_ConfigData
  • Mage_XmlConnect_Model_Resource_ConfigData_Collection
  • Mage_XmlConnect_Model_Resource_Filter_Collection
  • Mage_XmlConnect_Model_Resource_History
  • Mage_XmlConnect_Model_Resource_History_Collection
  • Mage_XmlConnect_Model_Resource_Queue
  • Mage_XmlConnect_Model_Resource_Queue_Collection
  • Mage_XmlConnect_Model_Resource_Setup
  • Mage_XmlConnect_Model_Resource_Template
  • Mage_XmlConnect_Model_Resource_Template_Collection
  • Mage_XmlConnect_Model_Simplexml_Element
  • Mage_XmlConnect_Model_Simplexml_Form
  • Mage_XmlConnect_Model_Simplexml_Form_Abstract
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Abstract
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Checkbox
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Collection
  • Mage_XmlConnect_Model_Simplexml_Form_Element_CountryListSelect
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Date
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Email
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Fieldset
  • Mage_XmlConnect_Model_Simplexml_Form_Element_File
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Image
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Multiline
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Multiselect
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Select
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Text
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Textarea
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Validator
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Validator_Abstract
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Validator_Rule
  • Mage_XmlConnect_Model_Tabs
  • Mage_XmlConnect_Model_Template
  • Mage_XmlConnect_Model_Theme
  • Mage_XmlConnect_Paypal_MeclController
  • Mage_XmlConnect_Paypal_MepController
  • Mage_XmlConnect_PbridgeController
  • Mage_XmlConnect_ReviewController
  • Mage_XmlConnect_WishlistController

Interfaces

  • Mage_XmlConnect_Model_Simplexml_Form_Element_Renderer_Interface
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * Magento
  4:  *
  5:  * NOTICE OF LICENSE
  6:  *
  7:  * This source file is subject to the Open Software License (OSL 3.0)
  8:  * that is bundled with this package in the file LICENSE.txt.
  9:  * It is also available through the world-wide-web at this URL:
 10:  * http://opensource.org/licenses/osl-3.0.php
 11:  * If you did not receive a copy of the license and are unable to
 12:  * obtain it through the world-wide-web, please send an email
 13:  * to license@magentocommerce.com so we can send you a copy immediately.
 14:  *
 15:  * DISCLAIMER
 16:  *
 17:  * Do not edit or add to this file if you wish to upgrade Magento to newer
 18:  * versions in the future. If you wish to customize Magento for your
 19:  * needs please refer to http://www.magentocommerce.com for more information.
 20:  *
 21:  * @category    Mage
 22:  * @package     Mage_XmlConnect
 23:  * @copyright   Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
 24:  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 25:  */
 26: 
 27: /**
 28:  * XmlConnect PayPal Mobile Express Checkout Library checkout controller
 29:  *
 30:  * @category    Mage
 31:  * @package     Mage_XmlConnect
 32:  * @author      Magento Core Team <core@magentocommerce.com>
 33:  */
 34: class Mage_XmlConnect_Paypal_MeclController extends Mage_XmlConnect_Controller_Action
 35: {
 36:     /**
 37:      * Config mode type
 38:      *
 39:      * @var string
 40:      */
 41:     protected $_configType = 'xmlconnect/payment_method_paypal_config';
 42: 
 43:     /**
 44:      * Config method type
 45:      *
 46:      * @var string
 47:      */
 48:     protected $_configMethod = Mage_XmlConnect_Model_Payment_Method_Paypal_Mecl::MECL_METHOD_CODE;
 49: 
 50:     /**
 51:      * Checkout mode type
 52:      *
 53:      * @var string
 54:      */
 55:     protected $_checkoutType = 'xmlconnect/paypal_mecl_checkout';
 56: 
 57:     /**
 58:      * Paypal Mobile Express Checkout Library
 59:      *
 60:      * @var Mage_XmlConnect_Model_Payment_Method_Paypal_Mecl
 61:      */
 62:     protected $_checkout = null;
 63: 
 64:     /**
 65:      * PayPal Mobile Express Checkout Library config model
 66:      *
 67:      * @var Mage_XmlConnect_Model_Payment_Method_Paypal_Config
 68:      */
 69:     protected $_config = null;
 70: 
 71:     /**
 72:      * Checkout Quote
 73:      *
 74:      * @var Mage_Sales_Model_Quote
 75:      */
 76:     protected $_quote = false;
 77: 
 78:     /**
 79:      * Instantiate config
 80:      */
 81:     protected function _construct()
 82:     {
 83:         parent::_construct();
 84:         $this->_config = Mage::getModel($this->_configType, array($this->_configMethod));
 85:     }
 86: 
 87:     /**
 88:      * Make sure customer is logged in
 89:      *
 90:      * @return null
 91:      */
 92:     public function preDispatch()
 93:     {
 94:         parent::preDispatch();
 95:         if (!Mage::getSingleton('customer/session')->isLoggedIn()
 96:             && !Mage::getSingleton('checkout/session')->getQuote()->isAllowedGuestCheckout()
 97:         ) {
 98:             $this->setFlag('', self::FLAG_NO_DISPATCH, true);
 99:             $this->_message($this->__('Customer not logged in.'), self::MESSAGE_STATUS_ERROR,
100:                 array('logged_in' => '0')
101:             );
102:             return;
103:         }
104:     }
105: 
106:     /**
107:      * Start Mobile Express Checkout by requesting initial token and dispatching customer to PayPal
108:      */
109:     public function startAction()
110:     {
111:         try {
112:             $this->_initCheckout();
113: 
114:             $customer = Mage::getSingleton('customer/session')->getCustomer();
115:             if ($customer && $customer->getId()) {
116:                 $this->_checkout->setCustomerWithAddressChange(
117:                     $customer, null, $this->_getQuote()->getShippingAddress()
118:                 );
119:             }
120: 
121:             $token = $this->_checkout->start(Mage::getUrl('*/*/return'), Mage::getUrl('*/*/cancel'));
122: 
123:             if ($token) {
124:                 $this->_initToken($token);
125:                 /** @var $message Mage_XmlConnect_Model_Simplexml_Element */
126:                 $message = Mage::getModel('xmlconnect/simplexml_element', '<message></message>');
127:                 $message->addChild('status', self::MESSAGE_STATUS_SUCCESS);
128:                 $message->addChild('token', $token);
129:                 $this->getResponse()->setBody($message->asNiceXml());
130:             } else {
131:                 $this->_message($this->__('Token has not been set.'), self::MESSAGE_STATUS_ERROR);
132:             }
133:         } catch (Mage_Core_Exception $e) {
134:             $this->_message($e->getMessage(), self::MESSAGE_STATUS_ERROR);
135:         } catch (Exception $e) {
136:             $this->_message($this->__('Unable to start Mobile Express Checkout.'), self::MESSAGE_STATUS_ERROR);
137:             Mage::logException($e);
138:         }
139:     }
140: 
141:     /**
142:      * Return from PayPal and dispatch customer to order review page
143:      * (GetExpressCheckoutDetails method call)
144:      */
145:     public function returnAction()
146:     {
147:         try {
148:             $this->_initCheckout();
149:             $this->_checkout->returnFromPaypal($this->_initToken());
150:             $this->_message($this->__('Mobile Express Checkout processed successfully.'), self::MESSAGE_STATUS_SUCCESS);
151:             return;
152:         } catch (Mage_Core_Exception $e) {
153:             $this->_message($e->getMessage(), self::MESSAGE_STATUS_ERROR);
154:         } catch (Exception $e) {
155:             Mage::logException($e);
156:             $this->_message($this->__('Unable to initialize return action.'), self::MESSAGE_STATUS_ERROR);
157:         }
158:     }
159: 
160:     /**
161:      * Review order after returning from PayPal
162:      */
163:     public function reviewAction()
164:     {
165:         try {
166:             $this->_initCheckout();
167:             $this->_checkout->prepareOrderReview($this->_initToken());
168:             $this->loadLayout(false);
169:             $this->_initLayoutMessages('paypal/session');
170: 
171:             $messages = $this->_getSession()->getMessages(true);
172:             $messageArray = array();
173:             foreach ($messages->getItems() as $message) {
174:                 $messageArray[] = $message;
175:             }
176: 
177:             $detailsBlock = $this->getLayout()->getBlock('xmlconnect.cart.paypal.mecl.review');
178:             if (count($messageArray)) {
179:                 $detailsBlock->setPaypalMessages($messageArray);
180:             }
181: 
182:             $detailsBlock->setQuote($this->_getQuote())->getChild('details')->setQuote($this->_getQuote())
183:                 ->getChild('totals')->setQuote($this->_getQuote());
184:             $this->renderLayout();
185:             return;
186:         } catch (Mage_Core_Exception $e) {
187:             $this->_message($e->getMessage(), self::MESSAGE_STATUS_ERROR);
188:         } catch (Exception $e) {
189:             $this->_message($this->__('Unable to initialize express checkout review.'), self::MESSAGE_STATUS_ERROR);
190:             Mage::logException($e);
191:         }
192:     }
193: 
194:     /**
195:      * Get shipping method list for PayPal
196:      */
197:     public function shippingMethodsAction()
198:     {
199:         try {
200:             $this->_initCheckout();
201:             $this->_checkout->prepareOrderReview($this->_initToken());
202:             $this->loadLayout(false);
203: 
204:             $this->getLayout()->getBlock('xmlconnect.cart.paypal.mecl.shippingmethods')->setQuote($this->_getQuote());
205:             $this->renderLayout();
206:             return;
207:         } catch (Mage_Core_Exception $e) {
208:             $this->_message($e->getMessage(), self::MESSAGE_STATUS_ERROR);
209:         } catch (Exception $e) {
210:             $this->_message(
211:                 $this->__('Unable to initialize express checkout shipping method list.'),
212:                 self::MESSAGE_STATUS_ERROR
213:             );
214:             Mage::logException($e);
215:         }
216:     }
217: 
218:     /**
219:      * Update shipping method (combined action for ajax and regular request)
220:      */
221:     public function saveShippingMethodAction()
222:     {
223:         try {
224:             $this->_initCheckout();
225:             if ($this->getRequest()->getParam('shipping_method', false)) {
226:                 $this->_checkout->updateShippingMethod($this->getRequest()->getParam('shipping_method'));
227:                 $this->_message($this->__('Shipping method successfully updated'), self::MESSAGE_STATUS_SUCCESS);
228:             } else {
229:                 $this->_message($this->__('Shipping method is required'), self::MESSAGE_STATUS_ERROR);
230:             }
231:             return;
232:         } catch (Mage_Core_Exception $e) {
233:             $this->_message($e->getMessage(), self::MESSAGE_STATUS_ERROR);
234:         } catch (Exception $e) {
235:             $this->_message($this->__('Unable to update shipping method.'), self::MESSAGE_STATUS_ERROR);
236:             Mage::logException($e);
237:         }
238:     }
239: 
240:     /**
241:      * Submit the order
242:      */
243:     public function placeOrderAction()
244:     {
245:         try {
246:             $this->_initCheckout();
247:             $this->_checkout->place($this->_initToken());
248: 
249:             // prepare session to success or cancellation page
250:             $session = $this->_getCheckoutSession();
251:             $session->clearHelperData();
252: 
253:             // "last successful quote"
254:             $quoteId = $this->_getQuote()->getId();
255:             $session->setLastQuoteId($quoteId)->setLastSuccessQuoteId($quoteId);
256: 
257:             // an order may be created
258:             $order = $this->_checkout->getOrder();
259:             if ($order) {
260:                 $orderId = $order->getId();
261:                 $realOrderId = $order->getIncrementId();
262:                 $session->setLastOrderId($order->getId())->setLastRealOrderId($order->getIncrementId());
263:             }
264: 
265:             // recurring profiles may be created along with the order or without it
266:             $profiles = $this->_checkout->getRecurringPaymentProfiles();
267:             if ($profiles) {
268:                 $ids = array();
269:                 foreach($profiles as $profile) {
270:                     $ids[] = $profile->getId();
271:                 }
272:                 $session->setLastRecurringProfileIds($ids);
273:             }
274: 
275:             $this->_initToken(false); // no need in token anymore
276: 
277:             /** @var $message Mage_XmlConnect_Model_Simplexml_Element */
278:             $message = Mage::getModel('xmlconnect/simplexml_element', '<message></message>');
279:             $message->addChild('status', self::MESSAGE_STATUS_SUCCESS);
280: 
281:             $text = $this->__('Thank you for your purchase! ');
282:             $text .= $this->__('Your order # is: %s. ', $realOrderId);
283:             $text .= $this->__('You will receive an order confirmation email with details of your order and a link to track its progress.');
284:             $message->addChild('text', $text);
285:             $message->addChild('order_id', $orderId);
286:             $this->getResponse()->setBody($message->asNiceXml());
287:             return;
288:         } catch (Mage_Core_Exception $e) {
289:             $this->_message($e->getMessage(), self::MESSAGE_STATUS_ERROR);
290:         } catch (Exception $e) {
291:             $this->_message($this->__('Unable to place the order.'), self::MESSAGE_STATUS_ERROR);
292:             Mage::logException($e);
293:         }
294:     }
295: 
296:     /**
297:      * Cancel Mobile Express Checkout
298:      */
299:     public function cancelAction()
300:     {
301:         try {
302:             $this->_initToken(false);
303:             // if there is an order - cancel it
304:             $orderId = $this->_getCheckoutSession()->getLastOrderId();
305:             $order = ($orderId) ? Mage::getModel('sales/order')->load($orderId) : false;
306: 
307:             if ($order && $order->getId() && $order->getQuoteId() == $this->_getCheckoutSession()->getQuoteId()) {
308:                 $order->cancel()->save();
309:                 $this->_getCheckoutSession()->unsLastQuoteId()->unsLastSuccessQuoteId()->unsLastOrderId()
310:                     ->unsLastRealOrderId();
311:             }
312: 
313:             $this->_message($this->__('Mobile Express Checkout has been canceled.'), self::MESSAGE_STATUS_SUCCESS);
314:         } catch (Mage_Core_Exception $e) {
315:             $this->_message($e->getMessage(), self::MESSAGE_STATUS_ERROR);
316:         } catch (Exception $e) {
317:             $this->_message($this->__('Unable to cancel Mobile Express Checkout.'), self::MESSAGE_STATUS_ERROR);
318:             Mage::logException($e);
319:         }
320:     }
321: 
322:     /**
323:      * Instantiate quote and checkout
324:      *
325:      * @throws Mage_Core_Exception
326:      * @return null
327:      */
328:     protected function _initCheckout()
329:     {
330:         $quote = $this->_getQuote();
331:         if (!$quote->hasItems() || $quote->getHasError()) {
332:             Mage::throwException($this->__('Unable to initialize PayPal Mobile Express Checkout.'));
333:         }
334:         if (!$quote->validateMinimumAmount()) {
335:             $error = Mage::getStoreConfig('sales/minimum_order/error_message');
336:             Mage::throwException($error);
337:         }
338:         $this->_getCheckoutSession()->setCartWasUpdated(false);
339: 
340:         $this->_checkout = Mage::getSingleton($this->_checkoutType, array(
341:             'config' => $this->_config, 'quote'  => $quote
342:         ));
343:     }
344: 
345:     /**
346:      * Return checkout session object
347:      *
348:      * @return Mage_Checkout_Model_Session
349:      */
350:     protected function _getCheckoutSession()
351:     {
352:         return Mage::getSingleton('checkout/session');
353:     }
354: 
355:     /**
356:      * Return checkout quote object
357:      *
358:      * @return Mage_Sale_Model_Quote
359:      */
360:     protected function _getQuote()
361:     {
362:         if (!$this->_quote) {
363:             $this->_quote = $this->_getCheckoutSession()->getQuote();
364:         }
365:         return $this->_quote;
366:     }
367: 
368:     /**
369:      * Search for proper checkout token in request or session or (un)set specified one
370:      * Combined getter/setter
371:      *
372:      * @throws Mage_Core_Exception
373:      * @param string $setToken
374:      * @return Mage_Paypal_ExpressController|string
375:      */
376:     protected function _initToken($setToken = null)
377:     {
378:         if (null !== $setToken) {
379:             if (false === $setToken) {
380:                 if (!$this->_getSession()->getExpressCheckoutToken()) { // security measure for avoid unset token twice
381:                     Mage::throwException($this->__('PayPal Mobile Express Checkout Token does not exist.'));
382:                 }
383:                 $this->_getSession()->unsExpressCheckoutToken();
384:             } else {
385:                 $this->_getSession()->setExpressCheckoutToken($setToken);
386:             }
387:             return $this;
388:         }
389: 
390:         $setToken = $this->getRequest()->getParam('token');
391:         if ($setToken) {
392:             if ($setToken !== $this->_getSession()->getExpressCheckoutToken()) {
393:                 Mage::throwException($this->__('Wrong PayPal Mobile Express Checkout Token specified.'));
394:             }
395:         } else {
396:             $setToken = $this->_getSession()->getExpressCheckoutToken();
397:         }
398:         return $setToken;
399:     }
400: 
401:     /**
402:      * PayPal session instance getter
403:      *
404:      * @return Mage_PayPal_Model_Session
405:      */
406:     private function _getSession()
407:     {
408:         return Mage::getSingleton('paypal/session');
409:     }
410: }
411: 
Magento 1.7.0.2 API documentation generated by ApiGen 2.8.0