Steve TENZA
Intervient pour votre site internet
Facebook Me contacter Cookie
Télécharger
Noter:
5/5 (3)
Ajouté/Modifié le 2023-11-02
Visionné 5273 fois

API Mobiyo PHP : sécuriser les transactions

Description

Ce script vise à renforcer la vérification de la validité des transactions. Le processus est simple : il récupère les variables $_GET renvoyées par Allopass (aujourd'hui Mobiyo) dans l'URL d'accès au produit payant que vous avez intégré à HIPAY Mobile.

J'ai extrait des morceaux de code de la documentation officielle de la solution de micropaiement HiPay Mobile.

Une fois téléchargé, vous devrez configurer le fichier conf/conf.xml en renseignant les champs <api_key> et <private_key>. Vous trouverez ces informations dans votre espace marchand sur hipaymobile.com, à l'adresse : https://merchant.hipaymobile.com/merchant/toolbox/

Il vous suffira ensuite d'ajouter le code suivant sur la page d'accès à votre produit pour renforcer la vérification JavaScript, empêchant ainsi l'exécution de requêtes PHP si la transaction est incorrecte.

Code à intégrer en tête de la page d'accès au produit

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 ne trouve pas la transaction, il n'affichera rien et n'exécutera pas la suite de la page.

Obtenez toutes les informations concernant la transaction en question avec les méthodes suivantes :

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];
Vous pouvez télécharger l'API Mobiyo complète ici :
Allopass-PHP5-API-Kit.zip
(Téléchargé 499 fois)



J'espère que ce script gratuit vous est utile.
Pour soutenir mon travail, un simple don ou mettre une note est grandement apprécié.
Votre réussite en ligne commence ici

Vous cherchez à pousser encore plus loin vos idées ou à les concrétiser avec un site internet sur mesure ? Je suis là pour vous aider ! Mon expérience en développement web est à votre disposition.

Que ce soit la création de votre site web pro ou l'apport de fonctionnalités avancées à votre projet, contactez-moi pour en discuter et avoir un devis gratuit personnalisé.

Mon objectif est de vous offrir des solutions sur mesure qui répondent à vos besoins, et votre vision associée à mon expertise donnera vie à votre projet web parfait. Contactez-moi aujourd'hui, je réponds en général en moins d'une heure :

Demander un devis
Réponse rapide !

Vous recherchez un script précis ?

Dites-moi ce dont vous avez besoin, je peux développer le script demandé et vous envoyer un mail dès qu'il est dispo !

🔔 Vous pouvez laisser votre mail pour recevoir les nouveaux scripts. Pas de pub, pas de tracas. Vous êtes libre de le supprimer à tout moment.

Je prends en compte toutes les demandes. Les idées les plus populaires passent en priorité et seront publiées dès qu'elles seront prêtes. 2874 demandes reçues.

Si vous avez un projet en tête, je vous suggère de me contacter directement pour en discuter.

Commentaires

Ajouter un commentaire

Commenter
Pseudo/Nom
Email
Message
Captcha
memo2
Commenter

max le 31 Octobre 2021 à 10:46

bonjour
il n'existe pas un autre moyen pour vérifier si le code allopass est bon ?
j'ai pas tester votre code mais ça fait beau coup de fichier pour une verif
avant j'utilisais ça mais ne fonctionne plus avec leur code api...j'ai modifier avec apikey.

<?php
$id_site = "111";
$id_produit = "111";
$apikey = "111111";
?>
<noscript>
<meta http-equiv="Refresh" content="0;url=https://payment.allopass.com/error.apu?ids=<?php echo $id_site; ?>&amp;idd=<?php echo $id_produit; ?>">
</noscript>

<script type="text/javascript" src="https://payment.allopass.com/api/secure.apu?ids=<?php echo $id_site; ?>&amp;idd=<?php echo $id_produit; ?>"></script>

<script type="text/javascript">
//<![CDATA[
if(typeof loaded == 'undefined') {
window.location.href = 'https://payment.allopass.com/error.apu?ids=<?php echo $id_site; ?>&amp;idd=<?php echo $id_produit; ?>';
}
//]]>
</script>


<?php
if (isset($_SESSION['login']))
{
$log = $_SESSION['login'];

$RECALL = $_GET['RECALL'];
//recup lien
$lienallo = $_SERVER['REQUEST_URI'];


$RECALL = urlencode( $RECALL );
$AUTH = urlencode( "$id_site/$id_produit/$apikey" );


$r = @file( "http://payment.allopass.com/api/checkcode.apu?code=$RECALL&auth=$AUTH" );

// on teste la réponse du serveur

if( substr( $r[0],0,2 ) != "OK" )
{
$_SESSION['trhalloco'] = 'triche';

}
else
{

echo 'go';
}
}


Vous demandez combien pour code php qui confirme si le paiement est ok pour paypal ?
j'ai aussi un ancien code mais ne fonctionne pas.
j'en ai marre d'attendre une réponse tous les 15 jours de paypal pour dire d'allez voir leur doc de merde.
cordialement

admin le 31 Octobre 2021 à 11:08

Bonjour, il vaut mieux se référé au bout de code de la doc Mobiyo pour être sûr que le code fonctionne correctement, que de vouloir enlever des bouts de codes pour gagner "50ko" de fichier en moins... ;)

Je le répète, c'est un module de paiement, il vaut mieux pas toucher au code de leur doc.


Concernant l'installation du module de paiement PayPal, je vous invite, s'il vous plaît, à me contacter depuis la page contact du site.

Chris le 05 Novembre 2021 à 22:10

Bonjour,
merci pour le code cependant j'obtiens cette erreur :

Parse error: syntax error, unexpected '[' in /var/www/vhosts/xxxxxxxx.com/httpdocs/allopass/Allopass-PHP5-API-Kit/api/AllopassAPI.php on line 204

admin le 05 Novembre 2021 à 23:54

Bonjour, merci pour votre commentaire, votre problème vient de votre version PHP qui n'accepte pas encore la syntaxe pour définir l'array.

Vous avez: [contenu du tableau]
Il vous faut: array(contenu du tableau)

Le mieux est de mettre à jour votre version PHP, ça sera plus simple que de modifier tout le script.

Si je dis pas de bêtises, la syntaxe "[]" pour définir un tableau est nouvelle depuis la version 5.6

Chris le 06 Novembre 2021 à 00:42

Merci pour l'info :-)

cyril le 11 Octobre 2022 à 20:04

Bonjour, je suis en train d'installer allopass sur mon site en php, je n'est pas trouve sur l'interface de mobiyo comment creer un code de test, peu être le savez vous?

admin le 11 Octobre 2022 à 20:10

Oui, vous allez à "Sites & Produits" puis vous cliquez sur un site, la liste déroulante s'ouvre (si vous avez ajouté un produit), vous cliquez sur l'engrenage "Modifier le produit", puis à gauche, dans l'encart "Configuration" puis "Paramètres" puis "Créer un code de test (optionnel)"

cyril le 11 Octobre 2022 à 20:43

Merci j'ai trouve

cyril le 11 Octobre 2022 à 21:00

Peu être pourrez vous m'aider encore, j'ai installé l'api...
Configurer les urls dans l'interface mobiyo...

Mais j'ai un problème car mon bouton pointe pas sur ma bonne page
Une idée?

cyril le 11 Octobre 2022 à 21:02

J'allé oublier le code est : test

admin le 11 Octobre 2022 à 21:06

Je peux pas voir le code PHP.

En revanche je peux vous conseiller de bien renseigner l'attribut "action" de la balise "form" dans votre HTML

cyril le 11 Octobre 2022 à 21:14

En fait, pour les tests j'ai mi uniquement le bouton dans la page index.php rien d'autre.

J'ai mis votre code d'exemple dans download.php mais celui ci n'est pas exécuté

Retour à la liste des scripts

Un site à créer ?
Contactez-moi