Skip to content

Commit 950b6bd

Browse files
committed
Fixes for Prestashop 9.0.0 compatibility
Added installation instructions
1 parent c8d8e23 commit 950b6bd

File tree

3 files changed

+42
-17
lines changed

3 files changed

+42
-17
lines changed

payneteasypayment/controllers/front/confirmation.php

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,12 @@ public function initContent() {
5353
if (isset($return['status'])) { // METHOD FORM
5454
if ($return['status'] == 'declined' || $return['status'] == 'error' || $return['status'] == 'filtered') {
5555
$this->module->validateOrder($cart_id, $payment_status_error, $cart->getOrderTotal(), $this->module->displayName, null, array(), $currency_id, false, $secure_key);
56-
$order_id = Order::getOrderByCartId((int) $cart->id);
57-
$module_id = $this->module->id;
5856
Tools::redirect($this->context->link->getModuleLink('payneteasypayment', 'error', ['cart_id'=>$cart->id, 'secure_key'=>$cart->secure_key], true));
5957
}
6058

6159
if ($return['status'] == 'approved') {
6260
$this->module->validateOrder($cart_id, $payment_status_approved, $cart->getOrderTotal(), $this->module->displayName, null, array(), $currency_id, false, $secure_key);
63-
$order_id = Order::getOrderByCartId((int) $cart->id);
61+
$order_id = $this->orderId($cart);
6462
$module_id = $this->module->id;
6563
Tools::redirect('index.php?controller=order-confirmation&id_cart=' . $cart_id . '&id_module=' . $module_id . '&id_order=' . $order_id . '&key=' . $secure_key);
6664
}
@@ -69,7 +67,7 @@ public function initContent() {
6967
$data = $this->prepareData($cart);
7068
$client = $this->initClient();
7169
$response = $client->status($data, $integration_method, $action_url, $endpoint);
72-
$order_id = Order::getOrderByCartId((int) $cart->id);
70+
$order_id = $this->orderId($cart);
7371
$module_id = $this->module->id;
7472

7573
if (trim($response["status"]) == 'declined' || trim($response["status"]) == 'error' || trim($response["status"]) == 'filtered') {
@@ -87,6 +85,13 @@ public function initContent() {
8785
}
8886
}
8987

88+
private function orderId($cart) {
89+
if (method_exists('Order', 'getOrderByCartId'))
90+
return Order::getOrderByCartId((int) $cart->id);
91+
92+
return Order::getIdByCartId((int) $cart->id);
93+
}
94+
9095
private function signString($s)
9196
{ return sha1($s); }
9297

payneteasypayment/controllers/front/redirect.php

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
if (!defined('_PS_VERSION_'))
2727
exit;
2828

29-
3029
include_once(_PS_MODULE_DIR_.'payneteasypayment'.DIRECTORY_SEPARATOR.'classes'.DIRECTORY_SEPARATOR.'Client.php');
3130
include_once(_PS_MODULE_DIR_.'payneteasypayment'.DIRECTORY_SEPARATOR.'payneteasypayment.php');
3231
class PayneteasypaymentRedirectModuleFrontController extends ModuleFrontController {
@@ -63,13 +62,13 @@ public function initContent() {
6362
]);
6463

6564
if (isset($createPayment) && $createPayment['type'] == 'error')
66-
Tools::redirectLink($this->context->link->getPageLink('order', null, null, 'step=3'));
65+
$this->redirectLink($this->context->link->getPageLink('order', null, null, 'step=3'));
6766
elseif (isset($createPayment) && $createPayment['type'] == 'validation-error')
68-
Tools::redirectLink($this->context->link->getPageLink('order', null, null, 'step=3'));
67+
$this->redirectLink($this->context->link->getPageLink('order', null, null, 'step=3'));
6968
else {
7069
isset($createPayment['redirect-url'])
71-
? Tools::redirectLink($createPayment['redirect-url']) // редирект на платежную форму
72-
: Tools::redirectLink($this->context->link->getModuleLink('payneteasypayment', 'confirmation', ['cart_id'=>$cart->id, 'secure_key'=>$cart->secure_key], true));
70+
? $this->redirectLink($createPayment['redirect-url']) // редирект на платежную форму
71+
: $this->redirectLink($this->context->link->getModuleLink('payneteasypayment', 'confirmation', ['cart_id'=>$cart->id, 'secure_key'=>$cart->secure_key], true));
7372
}
7473

7574
if ($cart->id_customer == 0
@@ -102,7 +101,7 @@ private function signStatusRequest($requestFields, $login, $merchantControl)
102101

103102
private function prepareData($cart, $card_data) {
104103
$address = new Address($cart->id_address_delivery);
105-
$orderId = Order::getOrderByCartId($cart->id);
104+
$order_id = $this->orderId($cart);
106105

107106
$currency = new Currency((int)($cart->id_currency));
108107
$currency_code = trim($currency->iso_code);
@@ -131,22 +130,36 @@ private function prepareData($cart, $card_data) {
131130
'expire_year' => $card_data['expire_year'],
132131
'first_name' => $this->context->customer->firstname,
133132
'last_name' => $this->context->customer->lastname,
134-
'redirect_success_url' => $this->context->link->getModuleLink('payneteasypayment', 'confirmation', ['order_id' => $orderId, 'cart_id'=>$cart->id, 'secure_key'=>$cart->secure_key], true),
135-
'redirect_fail_url' => $this->context->link->getModuleLink('payneteasypayment', 'error', ['order_id' => $orderId, 'cart_id'=>$cart->id, 'secure_key'=>$cart->secure_key], true),
136-
'redirect_url' => $this->context->link->getModuleLink('payneteasypayment', 'confirmation', ['order_id' => $orderId, 'cart_id'=>$cart->id, 'secure_key'=>$cart->secure_key], true),
137-
'server_callback_url' => $this->context->link->getModuleLink('payneteasypayment', 'confirmation', ['order_id' => $orderId, 'cart_id'=>$cart->id, 'secure_key'=>$cart->secure_key], true),
133+
'redirect_success_url' => $this->context->link->getModuleLink('payneteasypayment', 'confirmation', ['order_id' => $order_id, 'cart_id'=>$cart->id, 'secure_key'=>$cart->secure_key], true),
134+
'redirect_fail_url' => $this->context->link->getModuleLink('payneteasypayment', 'error', ['order_id' => $order_id, 'cart_id'=>$cart->id, 'secure_key'=>$cart->secure_key], true),
135+
'redirect_url' => $this->context->link->getModuleLink('payneteasypayment', 'confirmation', ['order_id' => $order_id, 'cart_id'=>$cart->id, 'secure_key'=>$cart->secure_key], true),
136+
'server_callback_url' => $this->context->link->getModuleLink('payneteasypayment', 'confirmation', ['order_id' => $order_id, 'cart_id'=>$cart->id, 'secure_key'=>$cart->secure_key], true),
138137
];
139138

140139
$data['control'] = $this->signPaymentRequest($data, $endpointId, $merchantControl);
141140

142141
return $data;
143142
}
144143

144+
private function orderId($cart) {
145+
if (method_exists('Order', 'getOrderByCartId'))
146+
return Order::getOrderByCartId((int) $cart->id);
147+
148+
return Order::getIdByCartId((int) $cart->id);
149+
}
150+
151+
private function redirectLink($where) {
152+
if (method_exists('Tools', 'redirectLink'))
153+
Tools::redirectLink($where);
154+
else
155+
Tools::redirect($where);
156+
}
157+
145158
private function signString($s)
146159
{ return sha1($s); }
147160

148161
private function signPaymentRequest($data, $endpointId, $merchantControl)
149-
{ return $this->signString($endpointId .$data['client_orderid'] .(int)($data['amount'] * 100) .$data['email'] .$merchantControl); }
162+
{ return $this->signString($endpointId .$data['client_orderid'] .(string)($data['amount'] * 100) .$data['email'] .$merchantControl); }
150163

151164
private function createPayment($data) {
152165
$client = $this->initClient();

payneteasypayment/payneteasypayment.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ private function signString($s)
469469
{ return sha1($s); }
470470

471471
private function signPaymentRequest($data, $endpointId, $merchantControl)
472-
{ return $this->signString($endpointId .$data['client_orderid'] .(int)($data['amount'] * 100) . $data['email'] .$merchantControl); }
472+
{ return $this->signString($endpointId .$data['client_orderid'] .(string)($data['amount'] * 100) . $data['email'] .$merchantControl); }
473473

474474
public function hookDisplayOrderConfirmation(array $params) {
475475
if ($this->active == false)
@@ -488,9 +488,16 @@ public function hookDisplayOrderConfirmation(array $params) {
488488
array(
489489
'id_order' => $order->id,
490490
'params' => $params,
491-
'total' => Tools::displayPrice($order->getOrdersTotalPaid(), $currency, false))
491+
'total' => $this->displayPrice($order->getOrdersTotalPaid(), $currency, false))
492492
);
493493

494494
return $this->context->smarty->fetch('module:payneteasypayment/views/templates/hook/displayOrderConfirmation.tpl');
495495
}
496+
497+
private function displayPrice($price, $currency) {
498+
if (method_exists('Tools','displayPrice'))
499+
return Tools::displayPrice($price, $currency);
500+
501+
return $this->context->getCurrentLocale()->formatPrice($price, $currency->iso_code);
502+
}
496503
}

0 commit comments

Comments
 (0)