<?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();
/** * @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; }