совершать платежи через Mercanet в PHP - PullRequest
0 голосов
/ 06 января 2011

На веб-сайте электронной коммерции для компании, расположенной во Франции, мы хотим принимать платежи через Mercanet (BNP Paribas). Я скачал API для Linux, он содержит только два двоичных файла (запрос, ответ), примеров PHP нет. От службы поддержки тоже нет ответа. Также я скачал сертификат для сайта, но просто застрял, так как нет файлов с инструкциями.

1 Ответ

1 голос
/ 25 февраля 2016

Чтобы кто-нибудь мог потянуть свои волосы с помощью платежной системы ATOS / Mercanet / Sips, ниже приведен пример файла PHP, который они мне прислали.Вся их справочная документация на французском языке.

Важно отметить, что существуют 32- и 64-битные версии - вы должны использовать правильную.Я попробовал приемы, упомянутые здесь

https://translate.googleusercontent.com/translate_c?depth=1&hl=en&prev=search&rurl=translate.google.co.za&sl=fr&u=http://www.developpez.net/forums/d599959/webmasters-developpement-web/general-conception-web/e-commerce/probleme-d-installation-d-plug-in-mercanet/&usg=ALkJrhj4iJ0kxEE9EoUbQTjq_0peu4_PSQ

Уловка FTP не сработала.

https://translate.googleusercontent.com/translate_c?depth=1&hl=en&prev=search&rurl=translate.google.co.za&sl=fr&u=http://www.developpez.net/forums/d1154720/webmasters-developpement-web/general-conception-web/e-commerce/probleme-d-installation-d-plug-in-mercanet/&usg=ALkJrhiEypDQCmEu5uVWD5uDpOChAAaNbQ

32-битный хак не сработал

это даст вам довольно хорошие инструкции.переводы выглядят достаточно хорошими, чтобы понять их

https://translate.googleusercontent.com/translate_c?depth=1&hl=en&prev=search&rurl=translate.google.co.za&sl=fr&u=http://thierry-godin.developpez.com/php/atos/&usg=ALkJrhjC12cJksMlauYxLvwnoxPV0G__9g

единственное, что сработало, это правильная версия.

также помните, что если вы используете git, pushможет сбросить разрешения, тогда вам нужно каждый раз нажимать 755 файл запроса.

Пример PHP:

print ("<HTML><HEAD><TITLE>MERCANET - Paiement Securise sur Internet</TITLE></HEAD>");
    print ("<BODY bgcolor=#ffffff>");
    print ("<Font color=#000000>");
    print ("<center><H1>Test de l'API plug-in MERCANET</H1></center><br><br>");


    //      Affectation des paramètres obligatoires

    $parm="merchant_id=082584341411111";
    $parm="$parm merchant_country=fr";
    $parm="$parm amount=100";
    $parm="$parm currency_code=978";


    // Initialisation du chemin du fichier pathfile (à modifier)
        //   ex :
        //    -> Windows : $parm="$parm pathfile=c:/repertoire/pathfile";
        //    -> Unix    : $parm="$parm pathfile=/home/repertoire/pathfile";

    $parm="$parm pathfile=" .  XOOPS_ROOT_PATH.'/tray_code/payment_gateways/sips/param/pathfile';

    //      Si aucun transaction_id n'est affecté, request en génère
    //      un automatiquement à partir de heure/minutes/secondes
    //      Référez vous au Guide du Programmeur pour
    //      les réserves émises sur cette fonctionnalité
    //
    //      $parm="$parm transaction_id=123456";



    //      Affectation dynamique des autres paramètres
    //      Les valeurs proposées ne sont que des exemples
    //      Les champs et leur utilisation sont expliqués dans le Dictionnaire des données
    //
    //      $parm="$parm normal_return_url=http://www.maboutique.fr/cgi-bin/call_response.php";
    //      $parm="$parm cancel_return_url=http://www.maboutique.fr/cgi-bin/call_response.php";
    //      $parm="$parm automatic_response_url=http://www.maboutique.fr/cgi-bin/call_autoresponse.php";
    //      $parm="$parm language=fr";
    //      $parm="$parm payment_means=CB,2,VISA,2,MASTERCARD,2";
    //      $parm="$parm header_flag=no";
    //      $parm="$parm capture_day=";
    //      $parm="$parm capture_mode=";
    //      $parm="$parm bgcolor=";
    //      $parm="$parm block_align=";
    //      $parm="$parm block_order=";
    //      $parm="$parm textcolor=";
    //      $parm="$parm receipt_complement=";
    //      $parm="$parm caddie=mon_caddie";
    //      $parm="$parm customer_id=";
    //      $parm="$parm customer_email=";
    //      $parm="$parm customer_ip_address=";
    //      $parm="$parm data=";
    //      $parm="$parm return_context=";
    //      $parm="$parm target=";
    //      $parm="$parm order_id=";


    //      Les valeurs suivantes ne sont utilisables qu'en pré-production
    //      Elles nécessitent l'installation de vos fichiers sur le serveur de paiement
    //
    //      $parm="$parm normal_return_logo=";
    //      $parm="$parm cancel_return_logo=";
    //      $parm="$parm submit_logo=";
    //      $parm="$parm logo_id=";
    //      $parm="$parm logo_id2=";
    //      $parm="$parm advert=";
    //      $parm="$parm background_id=";
    //      $parm="$parm templatefile=";


    //      insertion de la commande en base de données (optionnel)
    //      A développer en fonction de votre système d'information

    // Initialisation du chemin de l'executable request (à modifier)
    // ex :
    // -> Windows : $path_bin = "c:/repertoire/bin/request";
    // -> Unix    : $path_bin = "/home/repertoire/bin/request";
    //

    $path_bin =  XOOPS_ROOT_PATH.'/tray_code/payment_gateways/sips/bin/static/request';


    //  Appel du binaire request
    // La fonction escapeshellcmd() est incompatible avec certaines options avancées
    // comme le paiement en plusieurs fois qui nécessite  des caractères spéciaux 
    // dans le paramètre data de la requête de paiement.
    // Dans ce cas particulier, il est préférable d.exécuter la fonction escapeshellcmd()
    // sur chacun des paramètres que l.on veut passer à l.exécutable sauf sur le paramètre data.
    $parm = escapeshellcmd($parm);  
    $result=exec("$path_bin $parm");

    //  sortie de la fonction : $result=!code!error!buffer!
    //      - code=0    : la fonction génère une page html contenue dans la variable buffer
    //      - code=-1   : La fonction retourne un message d'erreur dans la variable error

    //On separe les differents champs et on les met dans une variable tableau

    $tableau = explode ("!", "$result");

    //  récupération des paramètres

    $code = $tableau[1];
    $error = $tableau[2];
    $message = $tableau[3];

    //  analyse du code retour

  if (( $code == "" ) && ( $error == "" ) )
    {
    print ("<BR><CENTER>erreur appel request</CENTER><BR>");
    print ("executable request non trouve $path_bin");
    }

    //  Erreur, affiche le message d'erreur

    else if ($code != 0){
        print ("<center><b><h2>Erreur appel API de paiement.</h2></center></b>");
        print ("<br><br><br>");
        print (" message erreur : $error <br>");
    }

    //  OK, affiche le formulaire HTML
    else {
        print ("<br><br>");

        # OK, affichage du mode DEBUG si activé
        print (" $error <br>");

        print ("  $message <br>");
    }

print ("</BODY></HTML>");
...