private function validateExpressCheckout() { if ($redirect = $this->validateOrder($this->order, self::STEP_PAYMENT)) { return $redirect; } $expressInstance = ExpressCheckout::getInstanceByOrder($this->order); if (!$expressInstance) { return new ActionRedirectResponse('order', 'index'); } $this->order->setPaymentMethod(get_class($expressInstance)); try { $handler = $expressInstance->getTransactionDetails($this->getTransaction()); } catch (PaymentException $e) { $expressInstance->delete(); return new ActionRedirectResponse('checkout', 'express', array('id' => $expressInstance->method->get())); } return $expressInstance; }
public function createRecurringPaymentProfile() { // ini_set("soap.wsdl_cache_enabled", 0); $paypal = $this->getHandler('DoCreateRecurringPaymentsProfile'); $paypal->setParams($this->data['token']); $paypal->setRecurringItems($this->details->getRecurringItems()); $executionResponse = $paypal->execute(); if (is_array($executionResponse) && count($executionResponse) > 0) { $express = ExpressCheckout::getInstanceByOrder($this->details->getOrder()); $paymentData = @unserialize($express->paymentData->get()); if (!is_array($paymentData)) { $paymentData = array(); } $paymentData['PayPalRecurringProfiles'] = $executionResponse; $express->paymentData->set(serialize($paymentData)); $express->save(); } return true; }
public function cancelRecurring($currencyID = 'USD') { // ~ // getTransaction() $this->loadAll(); $transaction = new LiveCartTransaction($this, Currency::getValidInstanceById($currencyID)); // ~ $expressInstance = ExpressCheckout::getInstanceByOrder($this); $handler = $expressInstance->getHandler($transaction); $status = $handler->cancelRecurring(); return $status; }