Aller au contenu

osc et paybox


izico

Sujets conseillés

Salut

Sur un de nos sites sous oscommerce nous venons de mettre en place la solution de paiement sécurisé Paybox.

Nous rencontrons un souci sur la validation de certaines commandes qui ne s'enregistrent pas suite au paiement.

Il faut que nous utilisions la méthode de paybox dites de l'url http et la contrib oscommerce que nous avons ne marche pas a ce niveau la. Nous avons une erreur systematique a l'appel de cet url. :angry:

Si quelqu'un a une solution pour régler ce souci, je suis preneur

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Pour ce genre de problème je crois que le mieux est d'appeler le support technique :unsure: .

Sinon pourrais-tu préciser ce qu'est le méthode dîte de l'url http ? Normalement il me semble que les connexions aux serveurs de paybox se font par socket.

Lien vers le commentaire
Partager sur d’autres sites

J'ai contacté le support mais a part te confirmer qu'il y a un souci, il ne donne aucun element de reponse. :angry:

L'url http permet en fait de valider la commande directement entre le serveur paybox et le serveur de la boutique, au lieu de passer par le navigateur du client ce qui fait que si le client se deconnecte ou ferme sa fenetre après la validation du paiement la commande est validé directement de serveur a serveur.

Lien vers le commentaire
Partager sur d’autres sites

Izico, nous sommes en train d'intégrer paybox pour un client (effectivement pas de module qui tienne la route dispo) , je te tiens au courant de l'avancée des travaux et te transmettrai le module si tu le souhaites.

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines plus tard...
  • 3 semaines plus tard...

Bonjour a tous,

désolé pour le retard mais en ce moment les heures sont comptées.

voici donc le module Modifié pour Paybox, moyennant un minimum de paramétrages il devrait fonction sur de nombreuses boutiques même si en général nous faisons pas mal de changements par rapport à un osco de base...

Liste des modifications

1 - Une des plus importantes est celle de passer les variables de IBS en PBX.

2 - Le module que l'on trouvait en install était bien paramétrable en admin mais les variables n'étaient pas utilisées dans le module, d'ou la modification de ces deux lignes


<?php

/*

$Id: paybox.php,v 1.1.1.1 2003/10/16 22:27:32 vince Exp $

Contribution d'origine by Emmanuel Alliel <manu_AT_maboutique.biz>
Modification Businesshop - 05-2006



osCommerce, Open Source E-Commerce Solutions

[url="http://www.oscommerce.com"]http://www.oscommerce.com[/url]



Copyright © 2003 osCommerce



Released under the GNU General Public License

*/



class paybox {

var $code, $title, $description, $enabled;



// class constructor

function paybox() {

global $order;



$this->code = 'paybox';

$this->title = MODULE_PAYMENT_PAYBOX_TEXT_TITLE;

$this->description = MODULE_PAYMENT_PAYBOX_TEXT_DESCRIPTION;

$this->sort_order = MODULE_PAYMENT_PAYBOX_SORT_ORDER;

$this->enabled = ((MODULE_PAYMENT_PAYBOX_STATUS == 'True') ? true : false);



if ((int)MODULE_PAYMENT_PAYBOX_ORDER_STATUS_ID > 0) {

$this->order_status = MODULE_PAYMENT_PAYBOX_ORDER_STATUS_ID;

}



if (is_object($order)) $this->update_status();



$this->form_action_url = MODULE_PAYMENT_PAYBOX_CGI;

}



// class methods

function update_status() {

global $order;



if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_PAYBOX_ZONE > 0) ) {

$check_flag = false;

$check_query = tep_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_PAYBOX_ZONE . "' and zone_country_id = '" . $order->billing['country']['id'] . "' order by zone_id");

while ($check = tep_db_fetch_array($check_query)) {

if ($check['zone_id'] < 1) {

$check_flag = true;

break;

} elseif ($check['zone_id'] == $order->billing['zone_id']) {

$check_flag = true;

break;

}

}



if ($check_flag == false) {

$this->enabled = false;

}

}

}



function javascript_validation() {

return false;

}



function selection() {

return array('id' => $this->code,

'module' => $this->title);

}



function pre_confirmation_check() {

return false;

}



function confirmation() {

return false;

}



function process_button() {

global $order;



$process_button_string = tep_draw_hidden_field('PBX_MODE', '1') .

tep_draw_hidden_field('PBX_SITE', MODULE_PAYMENT_PAYBOX_PBX_SITE) .

tep_draw_hidden_field('PBX_RANG', MODULE_PAYMENT_PAYBOX_PBX_RANG) .

tep_draw_hidden_field('PBX_IDENTIFIANT', MODULE_PAYMENT_PAYBOX_PBX_IDENTIFIANT) .

tep_draw_hidden_field('PBX_TOTAL', $order->info['total'] * 100) .

tep_draw_hidden_field('PBX_DEVISE', '978') .

tep_draw_hidden_field('PBX_CMD', tep_session_id()) .

tep_draw_hidden_field('PBX_PORTEUR', $order->customer['email_address']) .

tep_draw_hidden_field('PBX_RETOUR', tep_session_name().':R;trans:T;auto:A;tarif:M;abonnement:B;pays:Y;erreur:E') . tep_draw_hidden_field('PBX_ANNULE', tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error=' . $this->code, 'NONSSL', true)) .

tep_draw_hidden_field('PBX_REFUSE', tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error=' . $this->code, 'NONSSL', true)) .

tep_draw_hidden_field('PBX_EFFECTUE', tep_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL', false)) .

tep_draw_hidden_field(tep_session_name(), tep_session_id()) .

tep_draw_hidden_field('options', 'test_status=' . $test_status . ',dups=false,cb_post=true,cb_flds=' . tep_session_name());



return $process_button_string;

}



/*

// param de test

// site : 1999888

// rang : 99

// identifiant : 2

// Attention Pas de retour URL HTTP sur la boutique de demo, dans ce cas mettre PBX_EFFECTUE à FILENAME_CHECKOUT_PROCESS

// carte test : 1111222233334444

// validité : postérieure

// crypt : 123

*/



function before_process() {

global $HTTP_POST_VARS;



if ($HTTP_POST_VARS['valid'] == 'true') {

if ($remote_host = getenv('REMOTE_HOST')) {

if ($remote_host != 'paybox.com') {

$remote_host = gethostbyaddr($remote_host);

}

if ($remote_host != 'paybox.com') {

tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, tep_session_name() . '=' . $HTTP_POST_VARS[tep_session_name()] . '&payment_error=' . $this->code, 'SSL', false, false));

}

} else {

tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, tep_session_name() . '=' . $HTTP_POST_VARS[tep_session_name()] . '&payment_error=' . $this->code, 'SSL', false, false));

}

}

}



function after_process() {

return false;

}



function get_error() {

global $HTTP_GET_VARS;



if (isset($HTTP_GET_VARS['message']) && (strlen($HTTP_GET_VARS['message']) > 0)) {

$error = stripslashes(urldecode($HTTP_GET_VARS['message']));

} else {

$error = MODULE_PAYMENT_PAYBOX_TEXT_ERROR_MESSAGE;

}



return array('title' => MODULE_PAYMENT_PAYBOX_TEXT_ERROR,

'error' => $error);

}



function check() {

if (!isset($this->_check)) {

$check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_PAYBOX_STATUS'");

$this->_check = tep_db_num_rows($check_query);

}

return $this->_check;

}



function install() {

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable Paybox Module', 'MODULE_PAYMENT_PAYBOX_STATUS', 'True', 'Activer ce module Paybox ?', '6', '1', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('PBX_SITE', 'MODULE_PAYMENT_PAYBOX_PBX_SITE', '1999888', 'PBX_SITE fournit par Paybox', '6', '2', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('PBX_RANG', 'MODULE_PAYMENT_PAYBOX_PBX_RANG', '99', 'PBX_RANG fournit par Paybox', '6', '3', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('PBX_IDENTIFIANT', 'MODULE_PAYMENT_PAYBOX_PBX_IDENTIFIANT', '2', 'PBX_IDENTIFIANT fournit par Paybox', '6', '3', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('CGI Path', 'MODULE_PAYMENT_PAYBOX_CGI', 'http://www.maboutique.biz/cgi-bin/paybox.cgi', 'Chemin de votre module CGI fournit par Paybox', '6', '4', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort order of display.', 'MODULE_PAYMENT_PAYBOX_SORT_ORDER', '0', 'Sort order of display. Lowest is displayed first.', '6', '0', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Payment Zone', 'MODULE_PAYMENT_PAYBOX_ZONE', '0', 'If a zone is selected, only enable this payment method for that zone.', '6', '2', 'tep_get_zone_class_title', 'tep_cfg_pull_down_zone_classes(', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, use_function, date_added) values ('Set Order Status', 'MODULE_PAYMENT_PAYBOX_ORDER_STATUS_ID', '0', 'Set the status of orders made with this payment module to this value', '6', '0', 'tep_cfg_pull_down_order_statuses(', 'tep_get_order_status_name', now())");

}



function remove() {

tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");

}



function keys() {

return array('MODULE_PAYMENT_PAYBOX_STATUS','MODULE_PAYMENT_PAYBOX_PBX_IDENTIFIANT', 'MODULE_PAYMENT_PAYBOX_PBX_SITE', 'MODULE_PAYMENT_PAYBOX_PBX_RANG', 'MODULE_PAYMENT_PAYBOX_CGI', 'MODULE_PAYMENT_PAYBOX_ZONE', 'MODULE_PAYMENT_PAYBOX_ORDER_STATUS_ID', 'MODULE_PAYMENT_PAYBOX_SORT_ORDER');

}

}

?>

Lien vers le commentaire
Partager sur d’autres sites

  • 3 months later...

Bonjour à tous,

il me reste quelques questions, j'ai peut etre sauté quelque chose

dans la mesure ou on peut pas tester sur le site paybox, si j'intègre le code fournit par Bshop dois je modifier checkout_process.php pour que les commandes soient bien validées grace au contenu de PBX_RETOUR ?

Merci de m'éclairer

Lien vers le commentaire
Partager sur d’autres sites

  • 4 months later...

Salut à tous et bonne année !

Je viens d'integrer ce code pour reinstaller paybox sur ma version d'Oscommerce

mais j'ai tjs le meme souci et la meme erreur quand je valide le panier pour le paiement avec paybox

PAYBOX INPUT ERROR (code -3)

voila la seule chose que je peux voir et personne ne sait pourquoi

Ni Amen (mon hébergeur)

Ni Paybox

pourtant je renseigne bien tous les champ dans l'admin sur le module paybox.

Alors ou est le souci ?

Ca fait 2 jour que je galere avec ca

Merci de m'aider si vous le voulez bien

Cordialement,

Angelart

Lien vers le commentaire
Partager sur d’autres sites

Selon le manuel de PayBox...

Une fois installé, le module doit pouvoir s’exécuter directement à travers l’adresse Internet sur votre navigateur (par exemple : -http://www.maboutique.com/cgi-bin/module.cgi).

A l’exécution, vous devriez avoir un message du type « paybox input error code (-3) » : cela signifie que le module s’est bien exécuté (l’erreur étant seulement dû à l’absence des variables à référencer).

Lien vers le commentaire
Partager sur d’autres sites

Oui effectivement

j'ai testé de cette meme facon et j'ai bien l'erreur (code -3)

mais le souci est que j'ai la meme erreur quand j'effectue une commande sur ma boutique

a la validation du panier pour le paiement au moment de la redirection sur le site paybox pour le paiement

je tombe sur une page blanche, la meme que quand je teste mon module CGI

:shutup:

Chez paybox ils me disent que je dois avoir des champ obligatoire non renseignés

comme le PBX_CMD ou le PBX......

Ils me disent qu'il y a 8 ou 9 varialbles a renseigner et qu'il doit m'en manquer

Pourtant j'ai pris le code se trouvant sur le forum

Dans l'ancienne version de la contrib PayBox on voyait apparaitre les numero renseignés dans l'admin de osc

quand on ouvrait le paybox.php mais maintenant on ne les voit plus

Ou paybox va chercher c variables que l'on renseignent ?

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines plus tard...

Bonjour,

Je viens d'arriver sur ce forum avec le même problème d'url http de paybox.

Le site de ma compagne artiste peintre http://www.joseeleroux.com était conçu sur un modèle 4D (une boutique 4DBK exactement) il est maintenant sur un modèle oscommerce.

Paybox fonctionne mais, si le client ne clique pas sur "retour" la commande n'est pas transmise, le paiement a cependant fonctionné. Paybox demande de lui fournir une URL HTTP qui ne peut pas être "CHECKOUT_PROCESS.php car ce fichier contient des redirections, dixit paybox. Il faudrait un script php (ou autre langage) qui correspondrait à celui écrit en langage 4D que voici:

<!--#4DBKVarSet/VT10=4DBKHttpPostParms/SessionID-->
SessionID:<!--#4DBKVar/VT10-->
<!--#4DBKVarSet/VT11=4DBKHttpPostParms/auto-->
Autorisation:<!--#4DBKVar/VT11-->
//Client : <!--#4DBKField/CusEmail-->
//Commande : <!--#4DBKOrderCode-->
//Panier : <!--#4DBKSelectionSet/B--><!--#4DBKRecordSet/1--><!--#4DBKLoop/VL45,1,4DBKSelectionSize--><!--#4DBKIf(4DBKRecordExists)--> [<!--#4DBKField/T01--> - <!--#4DBKField/C01--> - Prix :<!--#4DBKField/PrCustomerINV.EUR,### ### ##0,00-->]<!--#4DBKEndIf--><!--#4DBKRecordNext/1--> <!--#4DBKEndLoop/VL45-->

<!--#4DBKIf("4DBKVar/VT11"#"")-->
// Numro de transaction valide: on peut valider la commande
<!--#4DBKVarSet/VL10=2-->
<!--#4DBKOrderPaymentSet/CB-->
<!--#4DBKMail/info_AT_joseeleroux.com,4DBKField/CusEmail,Votre commande,orderform.html,htm-->
<!--#4DBKMail/4DBKField/StoreShopEmail,4DBKField/StoreShopEmail,nouvelle commande,orderform.html,htm-->
<!--#4DBKOrderValidate-->
<!--#4DBKOrderClear-->

<!--#4DBKElse-->
// Numro de transaction invalide: la commande n'est pas valide
<!--#4DBKEndIf-->

<br>
// send response to gateway
<!--#4DBKHttpPostResponse/OK-->

Je n'ai aucune compétence pour traduire ce script pour oscommerce.

C'est l'adresse de ce fichier qu'il faut fournir à Paybox, et qui lui permet de signaler un paiement.

Cordialement

yuzin

Lien vers le commentaire
Partager sur d’autres sites

Il faut leur vonner le lien "checkout_success.php" et le texte de cette page tu peux le changer dans includes/language/french/checkout_success.php en editant le fichier dans un traitement de texte par exemple ou dreamweaver.

Enfin je crois que c'est ca.... car aprés la validation du paiement du dois revenir sur ta boutique pour signaler aux clients que le paiement c bien passé.

Sinon quelle version d'osc as tu ?

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...