$product_quantity = (int) Tools::getValue('quantity'); $id_product_attribute = Tools::getValue('id_p_attr'); if ($id_product > 0 && $id_product_attribute !== false && $product_quantity > 0) { setContextData($ppec); if (!$ppec->context->cart->add()) { $ppec->logs[] = $ppec->l('Cannot create new cart'); $display = _PS_VERSION_ < '1.5' ? new BWDisplay() : new FrontController(); $ppec->context->smarty->assign(array('logs' => $ppec->logs, 'message' => $ppec->l('Error occurred:'), 'use_mobile' => (bool) $ppec->useMobile())); $template = 'error.tpl'; } else { $ppec->context->cookie->id_cart = (int) $ppec->context->cart->id; } $ppec->context->cart->updateQty((int) $product_quantity, (int) $id_product, (int) $id_product_attribute); $ppec->context->cart->update(); } $login_user = PaypalLoginUser::getByIdCustomer((int) $ppec->context->customer->id); if ($login_user && $login_user->expires_in <= time()) { $obj = new PayPalLogin(); $login_user = $obj->getRefreshToken(); } /* Set details for a payment */ $ppec->setExpressCheckout($login_user ? $login_user->access_token : false); if (Tools::getValue('ajax') && Configuration::get('PAYPAL_IN_CONTEXT_CHECKOUT')) { $ppec->displayPaypalInContextCheckout(); } if ($ppec->hasSucceedRequest() && !empty($ppec->token)) { $ppec->redirectToAPI(); } else { $ppec->displayPayPalAPIError($ppec->l('Error during the preparation of the Express Checkout payment'), $ppec->logs); } } elseif (!empty($ppec->token) && $ppec->token == $token && ($ppec->payer_id = $payer_id)) {
public function getTrackingCode($method) { if (_PS_VERSION_ < '1.5' && (_THEME_NAME_ == 'prestashop_mobile' || Tools::getValue('ps_mobile_site') == 1)) { if (_PS_MOBILE_TABLET_) { return TABLET_TRACKING_CODE; } elseif (_PS_MOBILE_PHONE_) { return SMARTPHONE_TRACKING_CODE; } } //Get Seamless checkout $login_user = false; if (Configuration::get('PAYPAL_LOGIN')) { $login_user = PaypalLoginUser::getByIdCustomer((int) $this->context->customer->id); if ($login_user && $login_user->expires_in <= time()) { $obj = new PayPalLogin(); $login_user = $obj->getRefreshToken(); } } if ($method == WPS) { if ($login_user) { return TRACKING_EXPRESS_CHECKOUT_SEAMLESS; } else { return TRACKING_INTEGRAL; } } if ($method == HSS) { return TRACKING_INTEGRAL_EVOLUTION; } if ($method == ECS) { if ($login_user) { return TRACKING_EXPRESS_CHECKOUT_SEAMLESS; } else { return TRACKING_OPTION_PLUS; } } return TRACKING_CODE; }
public function getRefreshToken() { unset($this->_logs); $login = PaypalLoginUser::getByIdCustomer((int) Context::getContext()->customer->id); if (!is_object($login)) { return false; } $params = array('grant_type' => 'refresh_token', 'refresh_token' => $login->refresh_token); $request = http_build_query($params, '', '&'); $result = $this->paypal_connect->makeConnection($this->getIdentityAPIURL(), $this->getTokenServiceEndpoint(), $request, false, false, true); if ($this->enable_log === true) { $handle = fopen(dirname(__FILE__) . '/Results.txt', 'a+'); fwrite($handle, "Request => " . print_r($request, true) . "\r\n"); fwrite($handle, "Result => " . print_r($result, true) . "\r\n"); fwrite($handle, "Journal => " . print_r($this->_logs, true . "\r\n")); fclose($handle); } $result = Tools::jsonDecode($result); if ($result) { $login->access_token = $result->access_token; $login->expires_in = (string) (time() + $result->expires_in); $login->save(); return $login; } return false; }