66 \
Magento\Sales\Model\OrderFactory $orderFactory,
94 $token = $this->getToken();
98 $url = $this->_checkout->getRedirectUrl();
100 $controllerResult->setData([
'url' =>
$url]);
102 $this->logger->critical($exception);
103 $controllerResult->setData([
105 'text' => $exception->getMessage(),
110 $this->messageManager->addExceptionMessage(
112 __(
'We can\'t start Express Checkout.')
115 return $this->getErrorResponse($controllerResult);
118 return $controllerResult;
125 protected function getToken()
132 $checkoutHelper = $this->_objectManager->get(Data::class);
133 $quoteCheckoutMethod =
$quote->getCheckoutMethod();
134 $customerData = $this->_customerSession->getCustomerDataObject();
136 if (
$quote->getIsMultiShipping()) {
137 $quote->setIsMultiShipping(
false);
138 $quote->removeAllAddresses();
142 $this->_checkout->setCustomerWithAddressChange(
144 $quote->getBillingAddress(),
145 $quote->getShippingAddress()
148 && !$checkoutHelper->isAllowedGuestCheckout(
$quote,
$quote->getStoreId())
150 $expressRedirect = $this->_objectManager->get(ExpressRedirect::class);
152 $this->messageManager->addNoticeMessage(
153 __(
'To check out, please sign in with your email address.')
156 $expressRedirect->redirectLogin($this);
157 $this->_customerSession->setBeforeAuthUrl(
158 $this->_url->getUrl(
'*/*/*', [
'_current' =>
true])
168 $this->_checkout->setIsBillingAgreementRequested($isBaRequested);
172 $this->_checkout->setIsBml((
bool)$this->
getRequest()->getParam(
'bml'));
175 $this->_checkout->prepareGiropayUrls(
176 $this->_url->getUrl(
'checkout/onepage/success'),
177 $this->_url->getUrl(
'paypal/express/cancel'),
178 $this->_url->getUrl(
'checkout/onepage/success')
181 return $this->_checkout->start(
182 $this->_url->getUrl(
'*/*/return'),
183 $this->_url->getUrl(
'*/*/cancel'),
192 private function getErrorResponse(ResultInterface $controllerResult)
195 $controllerResult->setData([
'message' =>
__(
'Sorry, but something went wrong')]);
197 return $controllerResult;
_initToken($setToken=null)
elseif(isset( $params[ 'redirect_parent']))
__construct(\Magento\Framework\App\Action\Context $context, \Magento\Customer\Model\Session $customerSession, \Magento\Checkout\Model\Session $checkoutSession, \Magento\Sales\Model\OrderFactory $orderFactory, \Magento\Paypal\Model\Express\Checkout\Factory $checkoutFactory, \Magento\Framework\Session\Generic $paypalSession, \Magento\Framework\Url\Helper\Data $urlHelper, \Magento\Customer\Model\Url $customerUrl, \Psr\Log\LoggerInterface $logger=null)
const PAYMENT_INFO_BUTTON
const PAYMENT_INFO_TRANSPORT_BILLING_AGREEMENT