if (!$return['TRRETURNURLKO']) { $return['TRRETURNURLKO'] = Tools::getValue('TRRETURNURLKO'); } /* api 4.0 */ foreach ($so->getFields(SCFields::REQUIRED) as $field) { if (!isset($return[$field])) { $errors_list[] = $so->l('This key is required for Socolissimo:') . $field; } } } else { foreach ($errors_codes as $code) { $errors_list[] = $so->l('Error code:') . ' ' . $so->getError($code); } } if (empty($errors_list)) { if ($so->isCorrectSignKey($return['SIGNATURE'], $return) && $so->context->cart->id && saveOrderShippingDetails($so->context->cart->id, (int) $return['TRCLIENTNUMBER'], $return, $so)) { $trparamplus = explode('|', $return['TRPARAMPLUS']); if (count($trparamplus) > 1) { $so->context->cart->id_carrier = (int) $trparamplus[0]; if ($trparamplus[1] == 'checked' || $trparamplus[1] == 1) { /* value can be "undefined" or "not checked" */ $so->context->cart->gift = 1; } else { $so->context->cart->gift = 0; } } elseif (count($trparamplus) == 1) { $so->context->cart->id_carrier = (int) $trparamplus[0]; } if ((int) $so->context->cart->gift && Validate::isMessage($trparamplus[2])) { $so->context->cart->gift_message = strip_tags($trparamplus[2]); }
$nonBlockingError = array(133, 131, 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, 501); $so = new Socolissimo(); $so_fields = new SCFields(Tools::getValue('DELIVERYMODE')); $return = array(); foreach ($_POST as $key => $val) { if ($so_fields->isAvailableFields($key)) { $return[strtoupper($key)] = stripslashes($val); } } $return['TRRETURNURLKO'] = Tools::getValue('TRRETURNURLKO'); if (isset($return['SIGNATURE']) and isset($return['CENAME']) and isset($return['DYPREPARATIONTIME']) and isset($return['DYFORWARDINGCHARGES']) and isset($return['TRCLIENTNUMBER']) and isset($return['ORDERID']) and isset($return['TRCLIENTNUMBER'])) { if (!isset($return['ERRORCODE']) or $return['ERRORCODE'] == NULL or in_array($return['ERRORCODE'], $nonBlockingError)) { if ($so_fields->isCorrectSignKey($return['SIGNATURE'], $return)) { global $cookie; if (isset($cookie) or is_object($cookie)) { if (saveOrderShippingDetails(intval($cookie->id_cart), intval($return['TRCLIENTNUMBER']), $return, $so_fields)) { $TRPARAMPLUS = explode('|', $return['TRPARAMPLUS']); if (count($TRPARAMPLUS) > 1) { $cart->id_carrier = (int) $TRPARAMPLUS[0]; if ($TRPARAMPLUS[1] == "true" || $TRPARAMPLUS[1] == 1) { // value can be "undefined" or "not checked" $cart->gift = 1; } else { $cart->gift = 0; } } elseif (count($TRPARAMPLUS) == 1) { $cart->id_carrier = (int) $TRPARAMPLUS[0]; } if ($cart->gift && $TRPARAMPLUS[2]) { $cart->gift_message = strip_tags($TRPARAMPLUS[2]); }
$validReturn = array('PUDOFOID', 'CECIVILITY', 'CENAME', 'CEFIRSTNAME', 'CECOMPANYNAME', 'CEEMAIL', 'CEPHONENUMBER', 'DELIVERYMODE', 'CEADRESS1', 'CEADRESS2', 'CEADRESS3', 'CEADRESS4', 'CEZIPCODE', 'CEDOORCODE1', 'CEDOORCODE2', 'CEENTRYPHONE', 'DYPREPARATIONTIME', 'DYFORWARDINGCHARGES', 'ORDERID', 'SIGNATURE', 'ERRORCODE', 'TRPARAMPLUS', 'TRCLIENTNUMBER', 'PRID', 'PRNAME', 'PRCOMPLADRESS', 'PRADRESS1', 'PRADRESS2', 'PRZIPCODE', 'PRTOWN', 'CETOWN', 'TRADERCOMPANYNAME', 'CEDELIVERYINFORMATION', 'CEDOORCODE1', 'CEDOORCODE2'); //list of non-blocking error $nonBlockingError = array(133, 131, 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, 501); $so = new Socolissimo(); $return = array(); foreach ($_POST as $key => $val) { if (in_array(strtoupper($key), $validReturn)) { $return[strtoupper($key)] = utf8_encode(urldecode(stripslashes($val))); } } if (isset($return['SIGNATURE']) and isset($return['CENAME']) and isset($return['DYPREPARATIONTIME']) and isset($return['DYFORWARDINGCHARGES']) and isset($return['TRCLIENTNUMBER']) and isset($return['ORDERID']) and isset($return['TRCLIENTNUMBER'])) { if (!isset($return['ERRORCODE']) or $return['ERRORCODE'] == NULL or in_array($return['ERRORCODE'], $nonBlockingError)) { if ($return['SIGNATURE'] === socolissimo::make_key($return['CENAME'], (double) $return['DYPREPARATIONTIME'], $return['DYFORWARDINGCHARGES'], $return['TRCLIENTNUMBER'], $return['ORDERID'])) { global $cookie; if (isset($cookie) or is_object($cookie)) { if (saveOrderShippingDetails((int) $cookie->id_cart, (int) $return['TRCLIENTNUMBER'], $return)) { global $cookie; $cart->id_carrier = (int) $_POST['TRPARAMPLUS']; if (!$cart->update()) { Tools::redirect(); } else { Tools::redirect('order.php?step=3'); } } else { echo '<div class="alert error"><img src="' . _PS_IMG_ . 'admin/forbbiden.gif" alt="nok" /> ' . $so->displaySoError('999') . ' <p><br/><a href="' . Tools::getProtocol(true) . htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8') . __PS_BASE_URI__ . 'order.php" class="button_small" title="Retour">« Retour</a></p></div>'; } } else { echo '<div class="alert error"><img src="' . _PS_IMG_ . 'admin/forbbiden.gif" alt="nok" /> ' . $so->displaySoError('999') . ' <p><br/><a href="' . Tools::getProtocol(true) . htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8') . __PS_BASE_URI__ . 'order.php" class="button_small" title="Retour">« Retour</a></p></div>'; }
require_once _PS_MODULE_DIR_ . 'socolissimo/socolissimo.php'; $validReturn = array('PUDOFOID', 'CECIVILITY', 'CENAME', 'CEFIRSTNAME', 'CECOMPANYNAME', 'CEEMAIL', 'CEPHONENUMBER', 'DELIVERYMODE', 'CEADRESS1', 'CEADRESS2', 'CEADRESS3', 'CEADRESS4', 'CEZIPCODE', 'CEDOORCODE1', 'CEDOORCODE2', 'CEENTRYPHONE', 'DYPREPARATIONTIME', 'DYFORWARDINGCHARGES', 'ORDERID', 'SIGNATURE', 'ERRORCODE', 'TRPARAMPLUS', 'TRCLIENTNUMBER', 'PRID', 'PRNAME', 'PRCOMPLADRESS', 'PRADRESS1', 'PRADRESS2', 'PRZIPCODE', 'PRTOWN', 'CETOWN', 'TRADERCOMPANYNAME', 'CEDELIVERYINFORMATION', 'CEDOORCODE1', 'CEDOORCODE2'); //list of non-blocking error $nonBlockingError = array(133, 131, 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, 501); $so = new Socolissimo(); $return = array(); foreach ($_POST as $key => $val) { if (in_array(strtoupper($key), $validReturn)) { $return[strtoupper($key)] = utf8_encode(urldecode(stripslashes($val))); } } if (isset($return['SIGNATURE']) and isset($return['CENAME']) and isset($return['DYPREPARATIONTIME']) and isset($return['DYFORWARDINGCHARGES']) and isset($return['TRCLIENTNUMBER']) and isset($return['ORDERID']) and isset($return['TRCLIENTNUMBER'])) { if (!isset($return['ERRORCODE']) or $return['ERRORCODE'] == NULL or in_array($return['ERRORCODE'], $nonBlockingError)) { if ($return['SIGNATURE'] === socolissimo::make_key($return['CENAME'], (double) $return['DYPREPARATIONTIME'], $return['DYFORWARDINGCHARGES'], $return['TRCLIENTNUMBER'], $return['ORDERID'])) { if (Context::getContext()->cart->id) { if (saveOrderShippingDetails(Context::getContext()->cart->id, (int) $return['TRCLIENTNUMBER'], $return)) { $cart = Context::getContext()->cart; $TRPARAMPLUS = explode('|', Tools::getValue('TRPARAMPLUS')); $cart->id_carrier = $TRPARAMPLUS[0]; $cart->gift = (int) $TRPARAMPLUS[1]; if ((int) $cart->gift) { if (Validate::isMessage($TRPARAMPLUS[2])) { $cart->gift_message = strip_tags($TRPARAMPLUS[2]); } } if (!$cart->update()) { Tools::redirect(); } else { $url = _PS_VERSION_ < '1.5' ? 'order.php?' : 'index.php?controller=order&'; Tools::redirect($url . 'step=3&cgv=1'); }