Exemplo n.º 1
0
 /**
  * Set create billing agreement flag to api call
  *
  * @return Mage_Paypal_Model_Express_Checkout
  */
 protected function _setBillingAgreementRequest()
 {
     if (!$this->_customerId || $this->_quote->hasNominalItems()) {
         return $this;
     }
     $isRequested = $this->_isBARequested || $this->_quote->getPayment()->getAdditionalInformation(self::PAYMENT_INFO_TRANSPORT_BILLING_AGREEMENT);
     if (!($this->_config->allow_ba_signup == Mage_Paypal_Model_Config::EC_BA_SIGNUP_AUTO || $isRequested && $this->_config->shouldAskToCreateBillingAgreement())) {
         return $this;
     }
     if (!Mage::getModel('sales/billing_agreement')->needToCreateForCustomer($this->_customerId)) {
         return $this;
     }
     $this->_api->setBillingType($this->_api->getBillingAgreementType());
     return $this;
 }
Exemplo n.º 2
0
 /**
  * Reserve order ID for specified quote and start checkout on PayPal
  *
  * @return mixed
  */
 public function start()
 {
     $this->_quote->collectTotals();
     if (!$this->_quote->getGrandTotal() && !$this->_quote->hasNominalItems()) {
         Mage::throwException(Mage::helper('payone_core')->__('PayPal does not support processing orders with zero amount. To complete your purchase, proceed to the standard checkout process.'));
     }
     $this->_quote->reserveOrderId()->save();
     $service = $this->getFactory()->getServicePaymentGenericpayment($this->_config);
     $mapper = $service->getMapper();
     $request = $mapper->mapExpressCheckoutParameters($this->_quote);
     $response = $this->getFactory()->getServiceApiPaymentGenericpayment()->request($request);
     if ($response instanceof Payone_Api_Response_Genericpayment_Redirect) {
         $this->_redirectUrl = $response->getRedirecturl();
         $this->_workorderid = $response->getWorkorderId();
     }
 }
 /**
  * Reserve order ID for specified quote and start checkout on PayPal
  *
  * @param string
  * @param string
  * @param bool|null $button specifies if we came from Checkout Stream or from Product/Cart directly
  * @return mixed
  */
 public function start($returnUrl, $cancelUrl, $button = null)
 {
     $this->_quote->collectTotals();
     if (!$this->_quote->getGrandTotal() && !$this->_quote->hasNominalItems()) {
         Mage::throwException($this->_helper->__(self::EBAYENTERPRISE_PAYPAL_ZERO_CHECKOUT_NOT_SUPPORTED));
     }
     $this->_quote->reserveOrderId()->save();
     $this->_getApi();
     $setExpressCheckoutReply = $this->_api->setExpressCheckout($returnUrl, $cancelUrl, $this->_quote);
     if ($button) {
         // mark the payment to indicate express checkout was initiated from
         // outside the normal checkout flow
         // (e.g. clicked paypal checkout button from product page)
         $setExpressCheckoutReply[self::PAYMENT_INFO_BUTTON] = 1;
     }
     $this->_quote->getPayment()->importData($setExpressCheckoutReply);
     $this->_quote->getPayment()->save();
     return $setExpressCheckoutReply;
 }
 /**
  * Check if the quote has zero grandtotal.
  * @param  Mage_Sales_Model_Quote $quote
  * @return bool
  */
 protected function _hasZeroGrandTotal(Mage_Sales_Model_Quote $quote)
 {
     return !$quote->validateMinimumAmount() || !$quote->getGrandTotal() && !$quote->hasNominalItems();
 }