Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Exemple de classe AXEPTA sur Github :


Anchor
_GoBack
_GoBack
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 :

  •   Les paramètres Data et Len sont calculés (Authentication HMAC incluse et chiffrement en Blowfish)
  •   Exceptions/alertes si des paramètres sont manquants 

...

  •     Si la réponse est valide (authentifiée), elle est décodée et les informations sont disponible en clair


    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

    data            $paymentRequest->validate();

       

            // compute    compute

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

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

    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    data
            $paymentRequest->validate();
       
            // compute    compute
            $mac = $paymentRequest->getShaSign() ;         // run HMAC hash    hash
            $data = $paymentRequest->getBfishCrypt();    // run Crypt & retrieve Data    Data
            $len = $paymentRequest->getLen();            // retrieve Crypt length    


Send the POST REQUEST  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 ....
        }