Nous mettons à votre disposition une classe développée en PHP sur Github pour vous aider à construire vos requêtes vers la plateforme de paiement AXEPTA.


Cette classe est disponible via ce lien : https://github.com/aphania/axepta-access


A noter que :

A l'inverse cette classe vous aide à décoder la réponse de la plateforme de paiement :


Voici un exemple d'utilisation dans la page qui doit rediriger les valeurs du paiement vers la plateforme de paiement :    

init the class

            $paymentRequest = new Axepta($Your_HMAC);

            $paymentRequest->setCryptKey($Your_CRYPTKEY);

           

Set your data in :

            $paymentRequest->setUrl(Axepta::PAYSSL);

            $paymentRequest->setMerchantID($Your_MERCHANTID);

            $paymentRequest->setTransID("Your paiement prefix" . $Your_Payment_id."/".rand(100000,999999));

            $paymentRequest->setAmount($Your_Amount*100);

            $paymentRequest->setCurrency('EUR');

            $paymentRequest->setRefNr($Your_Ref);

            $paymentRequest->setURLSuccess("Your success URL page");   

            $paymentRequest->setURLFailure("Your failure URL page");   

            $paymentRequest->setURLNotify("Your notify URL page");

            $paymentRequest->setURLBack("Your cancel URL back page");   

            $paymentRequest->setReponse('encrypt');   

            $paymentRequest->setLanguage('fr');

            $paymentRequest->setOrderDesc('Your Order description text');

            // ...

           

            // check your data

            $paymentRequest->validate();

       

            // compute

            $mac = $paymentRequest->getShaSign() ;         // run HMAC hash

            $data = $paymentRequest->getBfishCrypt();    // run Crypt & retrieve Data

            $len = $paymentRequest->getLen();            // retrieve Crypt length


    fill your form

           echo "<html><body><form name=\"redirectForm\" method=\"GET\" action=\"" . $paymentRequest->getUrl() . "\">" .

                 "<input type=\"hidden\" name=\"MerchantID\" value=\"". $paymentRequest->getMerchantID() . "\">" .

                 "<input type=\"hidden\" name=\"Len\" value=\"". $paymentRequest->getLen() . "\">" .

                 "<input type=\"hidden\" name=\"Data\" value=\"". $paymentRequest->getBfishCrypt() . "\">" .

                 "<input type=\"hidden\" name=\"URLBack\" value=\"". $paymentRequest->getURLBack() . "\">" .

                 "<input type=\"hidden\" name=\"CustomField1\" value=\"". $paymentRequest->getAmount()/100 . "\">" .

                 "<input type=\"hidden\" name=\"CustomField2\" value=\"". $paymentRequest->getTransID() . "\">" .

                 "<input type=\"hidden\" name=\"CustomField3\" value=\"". $Your_logo_img . "\">" .

                 "<input type=\"hidden\" name=\"CustomField8\" value=\"". $Your_miscelaneous text . "\">" .

                 "<noscript><input type=\"submit\" name=\"Go\" value=\"Click to continue\"/></noscript> </form>" .

                 "<script type=\"text/javascript\">document.redirectForm.submit(); </script>" .

                 "</body></html>";



 Voici un exemple d'utilisation lors d'une connexion server-to-server :    

init the class

            $paymentRequest = new Axepta($Your_HMAC);
            $paymentRequest->setCryptKey($Your_CRYPTKEY);
           
Set your data in :

            $paymentRequest->setUrl(Axepta::DIRECT);
            $paymentRequest->setMerchantID($Your_MERCHANTID);
            $paymentRequest->setTransID("Your paiement prefix" . $Your_Payment_id."/".rand(100000,999999));
            $paymentRequest->setAmount($Your_Amount*100);
            $paymentRequest->setCurrency('EUR');
            $paymentRequest->setRefNr($Your_Ref);         
            $paymentRequest->setURLSuccess("Your success URL page");   
            $paymentRequest->setURLFailure("Your failure URL page");   
            $paymentRequest->setURLNotify("Your notify URL page");           
            $paymentRequest->setURLBack("Your cancel URL back page");   
            $paymentRequest->setReponse('encrypt');   
            $paymentRequest->setLanguage('fr');
            $paymentRequest->setOrderDesc('Your Order description text');
            // ...
           
            // check your data
            $paymentRequest->validate();
       
            // compute
            $mac = $paymentRequest->getShaSign() ;         // run HMAC hash
            $data = $paymentRequest->getBfishCrypt();    // run Crypt & retrieve Data
            $len = $paymentRequest->getLen();            // retrieve Crypt length


Send the POST REQUEST  :  ( code depending on the PHP framework you use )

            $transmit = array('MerchantID' => $paymentRequest->getMerchantID(), 'Len' => $len, 'Data' => $data);
            $request = Request::factory($paymentRequest->getUrl())           
                           ->headers('Content-type', 'application/x-www-form-urlencoded; charset=UTF-8')
                           ->method(Request::POST)
                           ->post($transmit);


Voici un exemple d'utilisation lors de la réception de la réponse dans les pages URLnotify ou URLSuccess

        $paymentResponse = new Axepta($Your_HMAC);
        $paymentResponse->setCryptKey($Your_CRYPTKEY);
        $paymentResponse->setResponse($_GET);
        if($paymentResponse->isValid() && $paymentResponse->isSuccessful()) {
            $TransID = $paymentResponse->getPayID();
            $PCNr = $paymentResponse->getPCNr();
            $CCBrand  = $paymentResponse->getCCBrand();
            $CCExpiry = $paymentResponse->getCCExpiry();
            // .....
        } else {
            // Fail ....
        }