Exemple #1
0
 public function testPrepareAddressInfo()
 {
     $this->_profile->setData('billing_address_info', array('city' => 'Los Angeles'));
     $this->_block->prepareAddressInfo();
     $info = $this->_block->getRenderedInfo();
     $this->assertContains('Los Angeles', $info[0]->getValue());
 }
Exemple #2
0
 /**
  * Register recurring payment notification, create and process order
  */
 protected function _registerRecurringProfilePaymentCapture()
 {
     $price = $this->getRequestData('mc_gross') - $this->getRequestData('tax') - $this->getRequestData('shipping');
     $productItemInfo = new Varien_Object();
     $type = trim($this->getRequestData('period_type'));
     if ($type == 'Trial') {
         $productItemInfo->setPaymentType(Mage_Sales_Model_Recurring_Profile::PAYMENT_TYPE_TRIAL);
     } elseif ($type == 'Regular') {
         $productItemInfo->setPaymentType(Mage_Sales_Model_Recurring_Profile::PAYMENT_TYPE_REGULAR);
     }
     $productItemInfo->setTaxAmount($this->getRequestData('tax'));
     $productItemInfo->setShippingAmount($this->getRequestData('shipping'));
     $productItemInfo->setPrice($price);
     /** @var $order Mage_Sales_Model_Order */
     $order = $this->_recurringProfile->createOrder($productItemInfo);
     $payment = $order->getPayment();
     $payment->setTransactionId($this->getRequestData('txn_id'))->setCurrencyCode($this->getRequestData('mc_currency'))->setPreparedMessage($this->_createIpnComment(''))->setIsTransactionClosed(0);
     $order->save();
     $this->_recurringProfile->addOrderRelation($order->getId());
     $payment->registerCaptureNotification($this->getRequestData('mc_gross'));
     $order->save();
     $invoice = $payment->getCreatedInvoice();
     if ($invoice) {
         // notify customer
         $message = Mage::helper('paypal')->__('Notified customer about invoice #%s.', $invoice->getIncrementId());
         $order->queueNewOrderEmail()->addStatusHistoryComment($message)->setIsCustomerNotified(true)->save();
     }
 }
Exemple #3
0
 /**
  * Render self only if needed, also render info tabs group if needed
  *
  * @return string
  */
 protected function _toHtml()
 {
     if (!$this->_profile || $this->_shouldRenderInfo && !$this->_info) {
         return '';
     }
     if ($this->hasShouldPrepareInfoTabs()) {
         foreach ($this->getChildGroup('info_tabs') as $block) {
             $block->setViewUrl($this->getUrl("*/*/{$block->getViewAction()}", array('profile' => $this->_profile->getId())));
         }
     }
     return parent::_toHtml();
 }
Exemple #4
0
 /**
  * Render self only if needed, also render info tabs group if needed
  *
  * @return string
  */
 protected function _toHtml()
 {
     if (!$this->_profile || $this->_shouldRenderInfo && !$this->_info) {
         return '';
     }
     if ($this->hasShouldPrepareInfoTabs()) {
         $layout = $this->getLayout();
         foreach ($this->getGroupChildNames('info_tabs') as $name) {
             $block = $layout->getBlock($name);
             if (!$block) {
                 continue;
             }
             $block->setViewUrl($this->getUrl("*/*/{$block->getViewAction()}", array('profile' => $this->_profile->getId())));
         }
     }
     return parent::_toHtml();
 }
Exemple #5
0
 /**
  * Getter for period unit options with "Please Select" label
  *
  * @return array
  */
 protected function _getPeriodUnitOptions($emptyLabel)
 {
     return array_merge(array('' => $emptyLabel), $this->_profile->getAllPeriodUnits());
 }
 protected function isInitialProfileOrder(Mage_Sales_Model_Recurring_Profile $profile)
 {
     if (count($profile->getChildOrderIds()) && current($profile->getChildOrderIds()) == "-1") {
         return true;
     }
     return false;
 }
<?php

/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Open Software License (OSL 3.0)
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/osl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category    Magento
 * @package     Mage_Paypal
 * @subpackage  integration_tests
 * @copyright   Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
 * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 */
$recurringProfile = new Mage_Sales_Model_Recurring_Profile();
$recurringProfile->addData(array('store_id' => 1, 'method_code' => Mage_Paypal_Model_Config::METHOD_WPP_EXPRESS, 'reference_id' => 'I-C76MC3FM2HBX', 'internal_reference_id' => '5-33949e201adc4b03fbbceafccba893ce', 'schedule_description' => 'Recurring Profile', 'start_date_is_editable' => '0', 'period_unit' => 'day', 'period_frequency' => '1', 'period_max_cycles' => '3', 'trial_period_unit' => 'day', 'trial_period_frequency' => '1', 'trial_period_max_cycles' => '3', 'trial_billing_amount' => '100.0000', 'init_amount' => '100.0000', 'billing_amount' => '100.0000', 'currency_code' => 'USD', 'order_info' => array('base_currency_code' => 'USD'), 'order_item_info' => serialize('item info'), 'billing_address_info' => serialize('billing address info')));
$recurringProfile->save();
Exemple #8
0
 /**
  * Checks the status of the recurring profile against the system configuration value
  * @param Mage_Sales_Model_Recurring_Profile $recurringProfile
  * @return mixed
  */
 protected function _customerRecurringProfileCanBecomeVip($recurringProfile)
 {
     return Mage::helper('meanbee_vipmembership')->isRecurringProfileStatusAllowed($recurringProfile->getState());
 }
 /**
  * @param Mage_Sales_Model_Recurring_Profile $profile
  * @param bool $bool
  * @return bool
  *
  * check Maximum Payment Failures
  * Maximum Payment Failures <= 0 -> run forever
  * Maximum Payment Failures > 0 -> save countFailures into additional Info
  * if isset countFailures -> countFailures - 1
  * if countFailures = 0 -> profile is suspended
  * if Maximum Payment Failures = null -> run forever
  */
 public function checkMaxPaymentFailures(Mage_Sales_Model_Recurring_Profile $profile, $bool = true)
 {
     $additional = $profile->getAdditionalInfo();
     switch (true) {
         // Maximum Payment Failures <= 0 or = null -> run forever
         case (int) $profile->getSuspensionThreshold() <= 0:
             break;
             // Maximum Payment Failures > 0 -> save countFailures into additional Info
             // if countFailures = 0 -> profile is suspended
         // Maximum Payment Failures > 0 -> save countFailures into additional Info
         // if countFailures = 0 -> profile is suspended
         case $profile->getSuspensionThreshold() && !isset($additional['paymentFailures']):
             $additional['paymentFailures'] = (int) $profile->getSuspensionThreshold() - 1;
             $profile->setAdditionalInfo($additional);
             $profile->save();
             if ($additional['paymentFailures'] == 0) {
                 $profile->suspend();
                 $bool = false;
             }
             break;
             // Maximum Payment Failures > 0 -> save countFailures into additional Info
             // if isset countFailures -> countFailures - 1
             // if countFailures = 0 -> profile is suspended
         // Maximum Payment Failures > 0 -> save countFailures into additional Info
         // if isset countFailures -> countFailures - 1
         // if countFailures = 0 -> profile is suspended
         case $profile->getSuspensionThreshold() && $additional['paymentFailures'] > 0:
             $additional['paymentFailures'] -= 1;
             $profile->setAdditionalInfo($additional);
             $profile->save();
             if ($additional['paymentFailures'] == 0) {
                 $profile->suspend();
                 $bool = false;
             }
             break;
         default:
             $profile->suspend();
             $bool = false;
             break;
     }
     return $bool;
 }
Exemple #10
0
 /**
  * Test processIpnRequest() currency check for recurring profile
  *
  * @param string $currencyCode
  * @dataProvider currencyProvider
  * @magentoDataFixture Mage/Paypal/_files/recurring_profile.php
  * @magentoConfigFixture current_store payment/paypal_direct/active 1
  * @magentoConfigFixture current_store payment/paypal_express/active 1
  * @magentoConfigFixture current_store paypal/general/merchant_country US
  * @magentoConfigFixture current_store sales_email/order/enabled 0
  */
 public function testProcessIpnRequestRecurringCurrency($currencyCode)
 {
     $ipnData = (require __DIR__ . '/../_files/ipn_recurring_profile.php');
     $ipnData['mc_currency'] = $currencyCode;
     $this->_model->processIpnRequest($ipnData, $this->_createMockedHttpAdapter());
     $recurringProfile = new Mage_Sales_Model_Recurring_Profile();
     $recurringProfile->loadByInternalReferenceId('5-33949e201adc4b03fbbceafccba893ce');
     $orderIds = $recurringProfile->getChildOrderIds();
     $this->assertEquals(1, count($orderIds));
     $order = new Mage_Sales_Model_Order();
     $order->load($orderIds[0]);
     $this->_assertOrder($order, $currencyCode);
 }