diff --git a/modules/paybox/direct_paiement.php b/modules/paybox/direct_paiement.php
index 66bfa972..562dd0fe 100644
--- a/modules/paybox/direct_paiement.php
+++ b/modules/paybox/direct_paiement.php
@@ -132,185 +132,181 @@ $values = array(
'd' => $paybox_card['date'],
);
-if ($code_reponse[1] == "00000" || $code_reponse[0] == "00000") {
- // payment success
+// payment success
- if ((!isset($autorisation[1]) || empty($autorisation[1])))
- {
- Logger::addLog('No autorisation number', 4);
- die('No autorisation number');
- }
- // Wrong authorization number in live mode
- if ($autorisation[1] == 'XXXXXX' && $test_mode === 1) {
- $error .= '- error payment - wrong authorization number
'."\n";
- }
+if ((!isset($autorisation[1]) || empty($autorisation[1])))
+{
+ Logger::addLog('No autorisation number', 4);
+ die('No autorisation number');
+}
+// Wrong authorization number in live mode
+if ($autorisation[1] == 'XXXXXX' && $test_mode === 1) {
+ $error .= '- error payment - wrong authorization number
'."\n";
+}
- if ($id_order = (int)Order::getOrderByCartId($cart->id))
- {
- $paybox->saveInformationPaiement($values);
-
- if (empty($error))
- {
- $order = new Order($id_order);
- $order->valid = 1;
- $order->total_paid_real = $values['m'] / 100;
- $order->update();
-
- if ($order->getCurrentState() != _PS_OS_PAYMENT_)
- {
- $products = $cart->getProducts();
- foreach ($products as $product)
- {
- Product::updateQuantity($product);
- Hook::updateQuantity($product, $order);
- }
- }
-
- $history = new OrderHistory();
- $history->id_order = $id_order;
- $history->changeIdOrderState((int)_PS_OS_PAYMENT_, $id_order);
- $history->addWithemail(true, array());
-
- $order_message = '';
- foreach ($values as $key => $value) {
- $order_message .= $key.': '.$value.'
';
- }
-
- if (isset($order_message) && !empty($order_message))
- {
- $msg = new Message();
- $message = $order_message;
- if (Validate::isCleanHtml($order_message))
- {
- $msg->message = $order_message;
- $msg->id_order = (int)$order->id;
- $msg->private = 1;
- $msg->add();
- }
- }
- }
- die($error);
- }
-
- $total_paid = $values['m'] / 100;
-
- if ($test_mode === 0)
- {
- if (empty($error) && $code_reponse[1] == '00000')
- {
- $error = '***TEST*** : Validated Payment
'."\n";
- $statut = _PS_OS_PAYMENT_;
- }
- else
- {
- $error = '***TEST*** : Invalid Payment
'."\n".$error;
- $statut = _PS_OS_ERROR_;
- }
- }
- elseif ($test_mode === 1)
- {
- if ($code_reponse[1] == '00000' && empty($error)){
- $statut = _PS_OS_PAYMENT_;
- }
- else
- {
- $statut = _PS_OS_ERROR_;
- }
- }
-
- switch ($code_reponse[1])
- {
- case '00001':
- $error .= 'Connection to the authorization center failed or an internal error occurred
'."\n";
- break;
- case '00003':
- $error .= 'Paybox error
'."\n";
- break;
- case '00004':
- $error .= 'Card number invalid or visual cryptogram invalid
'."\n";
- break;
- case '00006':
- $error .= 'Access refused or site/rank/identifier incorrect
'."\n";
- break;
- case '00008':
- $error .= 'Incorrect expiry date.
'."\n";
- break;
- case '00009':
- $error .= 'Error when during subscriber creation
'."\n";
- break;
- case '00010':
- $error .= 'Unknown currency
'."\n";
- break;
- case '00011':
- $error .= 'Amount incorrect
'."\n";
- break;
- case '00015':
- $error .= 'Payment already done
'."\n";
- break;
- case '00016':
- $error .= 'Subscriber already exists
'."\n";
- break;
- case '00021':
- $error .= 'Not authorized bin card
'."\n";
- break;
- case '00029':
- $error .= 'Not the same card used for the first payment.
'."\n";
- break;
- case '00030':
- $error .= 'Time-out > 15 mn before validation by the buyer when the buyer is on the page of payments of PAYBOX
'."\n";
- break;
- case '00031':
- case '00032':
- $error .= 'Reserved
'."\n";
- break;
- case '00033':
- $error .= 'Unauthorized country code of the IP address of the cardholder’s browser
'."\n";
- break;
- case '00040':
- $error .= 'Operation without 3DSecure authentication, blocked by the fraud filter.
'."\n";
- break;
- case '99999':
- $error .= 'Payment waiting confirmation from the issuer
'."\n";
- break;
- case '00000':
- default:
- $error .= 'Successful operation
'."\n\n";
- break;
- }
-
- $error .= 'PayBox version: '.$paybox->version."\n".'
POST '.print_r($values, true)."\n".'
GET '.print_r($response, true)."\n";
- $paybox->validateOrder((int)$cart->id, $statut, $total_paid, $paybox->displayName, $error, array(), NULL, false, $customer->secure_key);
-
- // save info paiement BDD
+if ($id_order = (int)Order::getOrderByCartId($cart->id))
+{
$paybox->saveInformationPaiement($values);
- if (version_compare(_PS_VERSION_, '1.5.0.0') >= '0')
+ if (empty($error))
{
- $order_id = Order::getOrderByCartId((int)$cart->id);
- $order = new Order((int)$order_id);
- if ($order_state == _PS_OS_PAYMENT_)
+ $order = new Order($id_order);
+ $order->valid = 1;
+ $order->total_paid_real = $values['m'] / 100;
+ $order->update();
+
+ if ($order->getCurrentState() != _PS_OS_PAYMENT_)
{
- $order->valid = 1;
- $order->save();
+ $products = $cart->getProducts();
+ foreach ($products as $product)
+ {
+ Product::updateQuantity($product);
+ Hook::updateQuantity($product, $order);
+ }
}
- $id_order_payment = Db::getInstance()->getValue('SELECT id_order_payment
- FROM `'._DB_PREFIX_.'order_payment`
- WHERE `order_reference` LIKE \'%'.pSQL($order->reference).'%\'');
+ $history = new OrderHistory();
+ $history->id_order = $id_order;
+ $history->changeIdOrderState((int)_PS_OS_PAYMENT_, $id_order);
+ $history->addWithemail(true, array());
- if ($id_order_payment == false)
- $order->addOrderPayment($total_paid, null, trim($values['t']));
- else
+ $order_message = '';
+ foreach ($values as $key => $value) {
+ $order_message .= $key.': '.$value.'
';
+ }
+
+ if (isset($order_message) && !empty($order_message))
{
- $order_payment = new OrderPayment((int)$id_order_payment);
- $order_payment->transaction_id = trim($values['t']);
- $order_payment->save();
+ $msg = new Message();
+ $message = $order_message;
+ if (Validate::isCleanHtml($order_message))
+ {
+ $msg->message = $order_message;
+ $msg->id_order = (int)$order->id;
+ $msg->private = 1;
+ $msg->add();
+ }
}
}
-
-} else {
- // payment error
- mail('marion@antadis.com', '[BBB] Soucis paiement direct reponse globale', json_encode($response));
- return false;
+ die($error);
}
+
+$total_paid = $values['m'] / 100;
+
+if ($test_mode === 0)
+{
+ if (empty($error) && $code_reponse[1] == '00000')
+ {
+ $error = '***TEST*** : Validated Payment
'."\n";
+ $statut = _PS_OS_PAYMENT_;
+ }
+ else
+ {
+ $error = '***TEST*** : Invalid Payment
'."\n".$error;
+ $statut = _PS_OS_ERROR_;
+ }
+}
+elseif ($test_mode === 1)
+{
+ if ($code_reponse[1] == '00000' && empty($error)){
+ $statut = _PS_OS_PAYMENT_;
+ }
+ else
+ {
+ $statut = _PS_OS_ERROR_;
+ }
+}
+
+switch ($code_reponse[1])
+{
+ case '00001':
+ $error .= 'Connection to the authorization center failed or an internal error occurred
'."\n";
+ break;
+ case '00003':
+ $error .= 'Paybox error
'."\n";
+ break;
+ case '00004':
+ $error .= 'Card number invalid or visual cryptogram invalid
'."\n";
+ break;
+ case '00006':
+ $error .= 'Access refused or site/rank/identifier incorrect
'."\n";
+ break;
+ case '00008':
+ $error .= 'Incorrect expiry date.
'."\n";
+ break;
+ case '00009':
+ $error .= 'Error when during subscriber creation
'."\n";
+ break;
+ case '00010':
+ $error .= 'Unknown currency
'."\n";
+ break;
+ case '00011':
+ $error .= 'Amount incorrect
'."\n";
+ break;
+ case '00015':
+ $error .= 'Payment already done
'."\n";
+ break;
+ case '00016':
+ $error .= 'Subscriber already exists
'."\n";
+ break;
+ case '00021':
+ $error .= 'Not authorized bin card
'."\n";
+ break;
+ case '00029':
+ $error .= 'Not the same card used for the first payment.
'."\n";
+ break;
+ case '00030':
+ $error .= 'Time-out > 15 mn before validation by the buyer when the buyer is on the page of payments of PAYBOX
'."\n";
+ break;
+ case '00031':
+ case '00032':
+ $error .= 'Reserved
'."\n";
+ break;
+ case '00033':
+ $error .= 'Unauthorized country code of the IP address of the cardholder’s browser
'."\n";
+ break;
+ case '00040':
+ $error .= 'Operation without 3DSecure authentication, blocked by the fraud filter.
'."\n";
+ break;
+ case '99999':
+ $error .= 'Payment waiting confirmation from the issuer
'."\n";
+ break;
+ case '00000':
+ default:
+ $error .= 'Successful operation
'."\n\n";
+ break;
+}
+
+$error .= 'PayBox version: '.$paybox->version."\n".'
POST '.print_r($postfields, true)."\n".'
GET '.print_r($data, true)."\n";
+$paybox->validateOrder((int)$cart->id, $statut, $total_paid, $paybox->displayName, $error, array(), NULL, false, $customer->secure_key);
+
+// save info paiement BDD
+$paybox->saveInformationPaiement($values);
+
+if (version_compare(_PS_VERSION_, '1.5.0.0') >= '0')
+{
+ $order_id = Order::getOrderByCartId((int)$cart->id);
+ $order = new Order((int)$order_id);
+ if ($order_state == _PS_OS_PAYMENT_)
+ {
+ $order->valid = 1;
+ $order->save();
+ }
+
+ $id_order_payment = Db::getInstance()->getValue('SELECT id_order_payment
+ FROM `'._DB_PREFIX_.'order_payment`
+ WHERE `order_reference` LIKE \'%'.pSQL($order->reference).'%\'');
+
+ if ($id_order_payment == false)
+ $order->addOrderPayment($total_paid, null, trim($values['t']));
+ else
+ {
+ $order_payment = new OrderPayment((int)$id_order_payment);
+ $order_payment->transaction_id = trim($values['t']);
+ $order_payment->save();
+ }
+}
+
+Tools::redirect('order-confirmation.php?id_cart='.$cart->id.'&id_module='.$paybox->id.'&key='.$customer->secure_key);
+
include(dirname(__FILE__).'/../../footer.php');
\ No newline at end of file