Exemplo n.º 1
0
 /**
  * process Initial Fee
  *
  * @param Mage_Sales_Model_Recurring_Profile $profile
  */
 public function processInitialFee(Mage_Sales_Model_Recurring_Profile $profile)
 {
     // charge Initial Fee
     /** @var Mage_Sales_Model_Order $order */
     $order = Mage::getModel('sales/order');
     $amount = $profile->getInitAmount();
     $shippingInfo = $profile->getShippingAddressInfo();
     $shippingAddress = Mage::getModel('sales/order_address')->setData($shippingInfo)->setId(null);
     $orderInfo = new Varien_Object($profile->getOrderInfo());
     $currencyCode = $orderInfo->getBaseCurrencyCode();
     $order->setShippingAddress($shippingAddress);
     $order->setBaseCurrencyCode($currencyCode);
     /** @var Mage_Sales_Model_Order_Payment $payment */
     $payment = Mage::getModel('sales/order_payment');
     $payment->setOrder($order);
     $payment->setIsRecurring(true);
     $payment->setIsInitialFee(true);
     $customerId = $profile->getCustomerId();
     $payment->setCustomerId($customerId);
     $additionalInfo = $profile->getAdditionalInfo();
     $tokenId = $additionalInfo['token']['saved_token'];
     $payment->setTokenId($tokenId);
     /** @var Eway_Rapid31_Model_Method_Saved $ewaySave */
     $ewaySave = Mage::getModel('ewayrapid/method_saved');
     $paymentAction = Mage::getStoreConfig('payment/ewayrapid_general/payment_action');
     if ($paymentAction == Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE) {
         $ewaySave->authorize($payment, $amount);
     } elseif ($paymentAction == Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE_CAPTURE) {
         $ewaySave->capture($payment, $amount);
     }
     /** @todo: change status of order = "eWAY Authorised"
      *         now status order = "processing"
      */
 }