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 ....
}