Module Banque

De Hegyd Doc.

(Différences entre les versions)
(--> Response (fichier : modules/atos/validation.php))
(osCommerce)
 
(4 versions intermédiaires masquées)
Ligne 61 : Ligne 61 :
=== * Module TGG_Atos (modules/tgg_atos/*) ===
=== * 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;
}

[modifier] Joomla

[modifier] Wordpress

[modifier] Magento

[modifier] osCommerce

[modifier] Drupal