Dicton du 12 Décembre:
À la Saint-Corentin, le plein hiver glace le chemin.

Télécharger

Sécuriser le script Allopass via PHP

Description

Ce script permet de vérifier si une transaction est valide, le procédé est simple, on récupère les variable $_GET qu'Allopass nous renvoi dans l'URL d'accès au produit payant que vous avez fourni lors de l'ajout de votre produit sur HIPAY Mobile (Anciennement Allopass).

J'ai pris des bouts de codes de la doc officielle "Allopass PHP5 API Kit Documentation" disponible à cette adresse: http://developer.allopass.com/apidoc/kit/php5/index.html

Vous pouvez télécharger l'API Allopass complète ici:
Allopass-PHP5-API-Kit.zip


Une fois téléchargé il vous faudra configurer le fichier conf/conf.xml et renseigner les champs <api_key> et <private_key>, vous trouverez ces informations depuis votre espace marchand hipaymobile.com à l'adresse: https://merchant.hipaymobile.com/merchant/toolbox/

Il vous reste plus qu'à placer le code suivant sur la page d'accès à votre produit pour sécuriser d'avantage leur vérification JavaScript afin que des requêtes PHP ne puisse pas être exécutée si la transaction est incorrecte.

Code source (PHP)

error_reporting(0);//si vous ne voulez pas afficher les erreurs
$TrxId="erreur";
if(isset($_GET['transaction_id'])){
if(preg_match("#^[a-z0-9-]{36}$#",$_GET['transaction_id'])){
$TrxId=$_GET['transaction_id'];
}
}
if($TrxId=="erreur"){
if(isset($_GET['trxid'])){
if(preg_match("#^[a-z0-9-]{36}$#",$_GET['trxid'])){
$TrxId=$_GET['trxid'];
}
}
}
if($TrxId=="erreur"){
echo "ID Transaction incorrect ou inconnue.";
} else {
require_once 'Allopass-PHP5-API-Kit/api/AllopassAPI.php';
$api = new AllopassAPI();
$response = $api->getTransaction($TrxId);//numéro de transaction disponible via $_GET['trxid'] ou $_GET['transaction_id']
if($response->getStatusDescription()!="success"){
echo "La transaction n'a pas été valide.";
} else {
echo "Transaction validée!";
//Vous pouvez procéder au requêtes PHP!
}
}


Si le script trouve pas la transaction, il affichera rien et n'exécutera pas le reste de la page, je n'ai pas réussi à trouver comment faire un echo "Transaction not found", si vous avez la solution, notez la dans les commentaires s'il vous plaît.


Il vous ai possible d'avoir toutes infos concernant la transaction en question avec les fonctions suivantes:

Code source (PHP)

var_dump($response->getStatusDescription());
var_dump($response->getStatus());
var_dump($response->getStatusDescription());
var_dump($response->getAccessType());
var_dump($response->getTransactionId());
var_dump($response->getPrice());
var_dump($response->getPaid());
var_dump($response->getCreationDate());
var_dump($response->getEndDate());
var_dump($response->getProductName());
var_dump($response->getCustomerIp());
var_dump($response->getCustomerCountry());
$codes=$response->getCodes(); echo $codes[0];

Commentaires

Pas encore de commentaire ajouté, soyez le premier!

Ajouter un commentaire

Pseudo/Nom *
Email *
Message *
La balise [code]Votre code...[/code] peut être utilisée

Captcha * 6 + = douze

Les champs marqués d'un * sont obligatoires.

Retour à la liste des scripts

Flag Counter