Esempio n. 1
0
    $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)) {
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
 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;
 }