Module Banque
De Hegyd Doc.
(Différences entre les versions)
(→osCommerce) |
|||
| (13 versions intermédiaires masquées) | |||
| Ligne 1 : | Ligne 1 : | ||
| + | Ci dessous la liste des modification à effectuer pour chaque module de banque par CMS : | ||
| + | |||
== Prestashop == | == Prestashop == | ||
| - | + | === * Module Atos (modules/atos/*) === | |
| + | ==== --> Resquest (fichier : modules/atos/atos.php) ==== | ||
| + | |||
| + | Remplacer le code ci-dessous de la fonction "'''private function getAtosForm($cart)''' :" | ||
| + | |||
| + | <pre> | ||
| + | // Do not add \n or something else | ||
| + | $parm = 'merchant_id='.Configuration::get('ATOS_MERCHANT_ID').' language='.$lang->iso_code.' customer_id='.intval($cart->id_customer).' caddie='.intval($cart->id).' merchant_country=fr amount='.(int)round(sprintf('%f', $cart->getOrderTotal() | ||
| + | * 100)).' currency_code='.$currency_num.' pathfile="'.dirname(__FILE__).'/pathfile" normal_return_url="'.$returnPage.'" cancel_return_url="'.$cancelPage.'" automatic_response_url="'.$ipnPage.'" | ||
| + | customer_ip_address='.$_SERVER['REMOTE_ADDR'].$redirect; | ||
| + | |||
| + | if (!$result = exec(Configuration::get('ATOS_BIN_DIR').'request '.$parm)) | ||
| + | return $this->l('Atos error: can\'t execute binary'); | ||
| + | |||
| + | $resultArray = explode('!', $result); | ||
| + | if ($resultArray[1] == -1) | ||
| + | return $this->l('Atos error:').' '.$resultArray[2]; | ||
| + | elseif (!isset($resultArray[3])) | ||
| + | return $this->l('Atos error: can\'t execute request'); | ||
| + | |||
| + | return $resultArray[3]; | ||
| + | </pre> | ||
| + | |||
| + | Par ce qui suit : | ||
| + | |||
| + | <pre> | ||
| + | $parm = 'merchant_id='.Configuration::get('ATOS_MERCHANT_ID').' language='.$lang->iso_code.' customer_id='.intval($cart->id_customer).' caddie='.intval($cart->id).' merchant_country=fr amount='.(int)round(sprintf('%f', $cart->getOrderTotal() | ||
| + | * 100)).' currency_code='.$currency_num.' pathfile="'.urlencode( dirname(__FILE__).'/pathfile').'" normal_return_url="'.urlencode( $returnPage).'" cancel_return_url="'.urlencode( $cancelPage).'" | ||
| + | automatic_response_url="'.urlencode( $ipnPage).'" customer_ip_address='.$_SERVER['REMOTE_ADDR'].' '.urlencode($redirect); | ||
| + | |||
| + | $parm = preg_replace( '/ /', '&', trim($parm)); | ||
| + | $parm = preg_replace( '/"/', '', $parm); | ||
| + | |||
| + | if (!$result = file_get_contents( 'http://'.htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8').__PS_BASE_URI__.'cgi-bin/mercanet-request.cgi?'.$parm)) | ||
| + | return $this->l('Atos error: can\'t execute binary'); | ||
| + | |||
| + | $resultArray = explode('!', $result); | ||
| + | return $resultArray[0]; | ||
| + | </pre> | ||
| + | |||
| + | ==== --> Response (fichier : modules/atos/validation.php) ==== | ||
| + | |||
| + | Code d'origine (début de fichier) : | ||
| + | <pre> | ||
| + | $atos = new Atos(); | ||
| + | $result = exec(Configuration::get('ATOS_BIN_DIR').'response pathfile='.dirname(__FILE__).'/pathfile message='.preg_replace("#[^a-z0-9]#Ui", '', $_POST['DATA'])); | ||
| + | $resultArray = explode('!', $result); | ||
| + | </pre> | ||
| + | |||
| + | Remplacement : | ||
| + | <pre> | ||
| + | $atos = new Atos(); | ||
| + | $result = file_get_contents( 'http://'.htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8').__PS_BASE_URI__.'cgi-bin/mercanet-response.cgi?pathfile='.urlencode(dirname(__FILE__).'/pathfile').'&message='. | ||
| + | preg_replace("#[^a-z0-9]#Ui", '', $_POST['DATA'])); | ||
| + | $resultArray = explode('!', $result); | ||
| + | </pre> | ||
| + | |||
| + | === * Module TGG_Atos (modules/tgg_atos/*) === | ||
| + | |||
| + | Remplacer la fonction "'''protected function _call($exename, $params) {'''" existante : | ||
| + | <pre> | ||
| + | protected function _call($exename, $params) { | ||
| + | $cmd = ($this->_get('BOOL_BINARIES_IN_PATH') ? '' : $this->_getPath('BIN')).$exename; | ||
| + | $params['pathfile'] = $this->_getPath('PARAM').'pathfile'; | ||
| + | foreach ($params as $k => $v) | ||
| + | $cmd .= ' "'.$k.'='.$v.'"'; | ||
| + | $cmd .= ' 2>&1'; | ||
| + | $output = trim(exec($cmd, $longoutput, $status)); | ||
| + | if ($this->_get('BOOL_DEBUG_MODE')) { | ||
| + | $ob = ob_get_clean(); | ||
| + | ob_end_clean(); | ||
| + | echo implode('<br />',$longoutput); | ||
| + | ob_start(); | ||
| + | echo $ob; | ||
| + | } | ||
| + | if ($status == 0) { | ||
| + | $output = explode('!', substr($output, 1, -1)); | ||
| + | if ($output[0] == '0') { | ||
| + | return array_slice($output, 2); | ||
| + | } else { | ||
| + | $this->_debug_mail($this->l('Error returned when calling').' '.$exename, 'binary-returned-error', array('{error}' => $output[1], '{exename}' => $exename)); | ||
| + | } | ||
| + | } else { | ||
| + | $this->_debug_mail($this->l('Error returned when calling').' '.$exename, 'binary-returned-error', array('{error}' => '('.$status.'): '.implode("\n", $longoutput), '{exename}' => $exename)); | ||
| + | } | ||
| + | return FALSE; | ||
| + | } | ||
| + | </pre> | ||
| + | |||
| + | Par le code suivant : | ||
| + | <pre> | ||
| + | protected function _call($exename, $params) { | ||
| + | $params['pathfile'] = $this->_getPath('PARAM').'pathfile'; | ||
| + | |||
| + | $cmd = ""; | ||
| + | $and = ""; | ||
| + | foreach ($params as $k => $v) { | ||
| + | $cmd .= $and.$k.'='.$v; | ||
| + | $and = "&"; | ||
| + | } | ||
| + | $cmd = str_replace( ';', "--", $cmd); | ||
| + | |||
| + | $output = file( 'http://www.oxyrian.fr/cgi-bin/e-transaction/'.$exename.'.cgi?'.$cmd); | ||
| + | $output = explode('!', substr($output[0], 2, -1)); | ||
| + | if ($output[0] == '0') { | ||
| + | return array_slice($output, 2); | ||
| + | } else { | ||
| + | $this->_debug_mail($this->l('Error returned when calling').' '.$exename, 'binary-returned-error', array('{error}' => $output[1], '{exename}' => $exename)); | ||
| + | } | ||
| + | return FALSE; | ||
| + | } | ||
| + | </pre> | ||
| + | |||
| + | == Joomla == | ||
| + | |||
| + | == Wordpress == | ||
| + | |||
| + | == Magento == | ||
| + | |||
| + | == osCommerce == | ||
| + | |||
| + | == Drupal == | ||
| + | |||
[[Catégorie:Support Viaduc]] | [[Catégorie:Support Viaduc]] | ||
Version actuelle en date du 2 janvier 2012 à 11:00
Ci dessous la liste des modification à effectuer pour chaque module de banque par CMS :
Sommaire |
[modifier] Prestashop
[modifier] * Module Atos (modules/atos/*)
[modifier] --> Resquest (fichier : modules/atos/atos.php)
Remplacer le code ci-dessous de la fonction "private function getAtosForm($cart) :"
// Do not add \n or something else
$parm = 'merchant_id='.Configuration::get('ATOS_MERCHANT_ID').' language='.$lang->iso_code.' customer_id='.intval($cart->id_customer).' caddie='.intval($cart->id).' merchant_country=fr amount='.(int)round(sprintf('%f', $cart->getOrderTotal()
* 100)).' currency_code='.$currency_num.' pathfile="'.dirname(__FILE__).'/pathfile" normal_return_url="'.$returnPage.'" cancel_return_url="'.$cancelPage.'" automatic_response_url="'.$ipnPage.'"
customer_ip_address='.$_SERVER['REMOTE_ADDR'].$redirect;
if (!$result = exec(Configuration::get('ATOS_BIN_DIR').'request '.$parm))
return $this->l('Atos error: can\'t execute binary');
$resultArray = explode('!', $result);
if ($resultArray[1] == -1)
return $this->l('Atos error:').' '.$resultArray[2];
elseif (!isset($resultArray[3]))
return $this->l('Atos error: can\'t execute request');
return $resultArray[3];
Par ce qui suit :
$parm = 'merchant_id='.Configuration::get('ATOS_MERCHANT_ID').' language='.$lang->iso_code.' customer_id='.intval($cart->id_customer).' caddie='.intval($cart->id).' merchant_country=fr amount='.(int)round(sprintf('%f', $cart->getOrderTotal()
* 100)).' currency_code='.$currency_num.' pathfile="'.urlencode( dirname(__FILE__).'/pathfile').'" normal_return_url="'.urlencode( $returnPage).'" cancel_return_url="'.urlencode( $cancelPage).'"
automatic_response_url="'.urlencode( $ipnPage).'" customer_ip_address='.$_SERVER['REMOTE_ADDR'].' '.urlencode($redirect);
$parm = preg_replace( '/ /', '&', trim($parm));
$parm = preg_replace( '/"/', '', $parm);
if (!$result = file_get_contents( 'http://'.htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8').__PS_BASE_URI__.'cgi-bin/mercanet-request.cgi?'.$parm))
return $this->l('Atos error: can\'t execute binary');
$resultArray = explode('!', $result);
return $resultArray[0];
[modifier] --> Response (fichier : modules/atos/validation.php)
Code d'origine (début de fichier) :
$atos = new Atos();
$result = exec(Configuration::get('ATOS_BIN_DIR').'response pathfile='.dirname(__FILE__).'/pathfile message='.preg_replace("#[^a-z0-9]#Ui", '', $_POST['DATA']));
$resultArray = explode('!', $result);
Remplacement :
$atos = new Atos();
$result = file_get_contents( 'http://'.htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8').__PS_BASE_URI__.'cgi-bin/mercanet-response.cgi?pathfile='.urlencode(dirname(__FILE__).'/pathfile').'&message='.
preg_replace("#[^a-z0-9]#Ui", '', $_POST['DATA']));
$resultArray = explode('!', $result);
[modifier] * Module TGG_Atos (modules/tgg_atos/*)
Remplacer la fonction "protected function _call($exename, $params) {" existante :
protected function _call($exename, $params) {
$cmd = ($this->_get('BOOL_BINARIES_IN_PATH') ? '' : $this->_getPath('BIN')).$exename;
$params['pathfile'] = $this->_getPath('PARAM').'pathfile';
foreach ($params as $k => $v)
$cmd .= ' "'.$k.'='.$v.'"';
$cmd .= ' 2>&1';
$output = trim(exec($cmd, $longoutput, $status));
if ($this->_get('BOOL_DEBUG_MODE')) {
$ob = ob_get_clean();
ob_end_clean();
echo implode('<br />',$longoutput);
ob_start();
echo $ob;
}
if ($status == 0) {
$output = explode('!', substr($output, 1, -1));
if ($output[0] == '0') {
return array_slice($output, 2);
} else {
$this->_debug_mail($this->l('Error returned when calling').' '.$exename, 'binary-returned-error', array('{error}' => $output[1], '{exename}' => $exename));
}
} else {
$this->_debug_mail($this->l('Error returned when calling').' '.$exename, 'binary-returned-error', array('{error}' => '('.$status.'): '.implode("\n", $longoutput), '{exename}' => $exename));
}
return FALSE;
}
Par le code suivant :
protected function _call($exename, $params) {
$params['pathfile'] = $this->_getPath('PARAM').'pathfile';
$cmd = "";
$and = "";
foreach ($params as $k => $v) {
$cmd .= $and.$k.'='.$v;
$and = "&";
}
$cmd = str_replace( ';', "--", $cmd);
$output = file( 'http://www.oxyrian.fr/cgi-bin/e-transaction/'.$exename.'.cgi?'.$cmd);
$output = explode('!', substr($output[0], 2, -1));
if ($output[0] == '0') {
return array_slice($output, 2);
} else {
$this->_debug_mail($this->l('Error returned when calling').' '.$exename, 'binary-returned-error', array('{error}' => $output[1], '{exename}' => $exename));
}
return FALSE;
}
