Dicton du 23 Septembre:
Á la Saint-Lin, récolte ton lin.

Télécharger
Noter:

Ajouté le 30/11/2017
Visionné 1156 fois

Sécuriser le script Hipay/Mobiyo/Allopass mobile 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 ajouté sur HIPAY Mobile (Anciennement Allopass).

J'ai pris des bouts de codes de la doc officielle de la solution de micropaiement HiPay Mobile, disponible à cette adresse: http://www.hipaymobile.fr/22/integration

Vous pouvez télécharger l'API Mobiyo 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->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


ATTENTION! Ce formulaire est exclusivement réservé aux commentaires
Pour toutes demandes d'aide, veuillez ajouter votre demande sur le forum svp

Captcha * 6 × = trente

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

Retour à la liste des scripts

Flag Counter