* @copyright PayPal * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * */ include_once _PS_MODULE_DIR_.'paypal/classes/AbstractMethodPaypal.php'; include_once _PS_MODULE_DIR_.'paypal/controllers/front/abstract.php'; /** * Validate PPP payment */ class PaypalPppValidationModuleFrontController extends PaypalAbstarctModuleFrontController { public function init() { parent::init(); $this->values['short_cut'] = Tools::getvalue('short_cut'); $this->values['paymentId'] = Tools::getvalue('paymentId'); $this->values['payerId'] = Tools::getvalue('PayerID'); } /** * @see FrontController::postProcess() */ public function postProcess() { $method_ppp = AbstractMethodPaypal::load('PPP'); $paypal = Module::getInstanceByName($this->name); try { $method_ppp->setParameters($this->values); $method_ppp->validation(); $cart = Context::getContext()->cart; $customer = new Customer($cart->id_customer); $this->redirectUrl = 'index.php?controller=order-confirmation&id_cart='.$cart->id.'&id_module='.$paypal->id.'&id_order='.$paypal->currentOrder.'&key='.$customer->secure_key; } catch (PayPal\Exception\PayPalConnectionException $e) { $decoded_message = Tools::jsonDecode($e->getData()); $this->errors['error_code'] = $e->getCode(); $this->errors['error_msg'] = $decoded_message->message; $this->errors['msg_long'] = $decoded_message->name.' - '.$decoded_message->details[0]->issue; } catch (PayPal\Exception\PayPalInvalidCredentialException $e) { $this->errors['error_msg'] = $e->errorMessage(); } catch (PayPal\Exception\PayPalMissingCredentialException $e) { $this->errors['error_msg'] = $paypal->l('Invalid configuration. Please check your configuration file.', pathinfo(__FILE__)['filename']); } catch (Exception $e) { $this->errors['error_code'] = $e->getCode(); $this->errors['error_msg'] = $e->getMessage(); } finally { $this->transaction_detail = $method_ppp->getDetailsTransaction(); } Context::getContext()->cookie->__unset('paypal_plus_payment'); Context::getContext()->cookie->__unset('paypal_pSc'); Context::getContext()->cookie->__unset('paypal_pSc_payerid'); Context::getContext()->cookie->__unset('paypal_pSc_email'); if (!empty($this->errors)) { $this->redirectUrl = Context::getContext()->link->getModuleLink($this->name, 'error', $this->errors); } } }