Exemple de classe AXEPTA sur Github :
Anchor | ||||
---|---|---|---|---|
|
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->setRefNr($Your_Ref);
$paymentRequest->setURLSuccess("Your success URL page");
...
$paymentRequest->setURLNotify("Your notify URL page");
$paymentRequest->setURLBack("Your cancel URL back page");
...
$len = $paymentRequest->getLen(); // retrieve Crypt length
fill your form
echo "<html><body><form name=\"redirectForm\" method=\"GET\" action=\"" . $paymentRequest->getUrl() . "\">" .
...
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 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 ....
}
...