Le client web hébergé MPay est un mini site web installé sur nos serveurs afin de faciliter l'ajout de la fonctionnalité de paiement. Il est accessible à l'URL suivante: https://www.hostedclient.mpay.ytsamy.name/.
Le client hébergé est en fait le client web. Mais vu qu'il est hébergé chez nous, toutes les informations doivent lui être passées en paramètre dans la query string.
L'invocation se fera comme suit (en PHP):
<?php
$params=http_build_query([
'amount' => 800,
'description' => 'nom article',
'return_url' => 'https://www.votresite.com/payment/success?id=%ID%',
'number_orange' => NUMBER_ORANGE,
'number_telmob' => NUMBER_TELMOB,
'shop_name' => NOM_BOUTIQUE,
'logo_url' => PAIEMENT_LOGO_URL,
// 'immutableRowIds' => [id1, id2],
]);
$sum=hash('sha256',$params);
if(defined('PUBLIC_KEY')) {
while ($msg = openssl_error_string()) {};
$sumTmp=$sum;
$rv=openssl_public_encrypt($sumTmp, $sum, PUBLIC_KEY);
$str="";
while ($msg = openssl_error_string())
$str.=$msg . "\n";
// if($str) print_r($str);
}
$query_string = http_build_query(array('enc' => base64_encode($params), 'sum' => base64_encode($sum), 'id' => base64_encode(MPAY_USER_ID)));
?>
<p>effectuer le <a href="https://www.hostedclient.mpay.ytsamy.name/?<?= $query_string ?>">paiement</a>.</p>
Les paramètres à fournir sont les suivants:
amount
: le montant à payer. Ce peut être un entier ou un tableau (s'il y a plusieurs possibilités)
[
[
'label' => '1 mois',
'montant' => 200,
],
[
'label' => '6 mois',
'montant' => 1100,
],
[
'label' => '1 an',
'montant' => 2000,
],
]
description
: le nom de l'article à payerreturn_url
: l'url vers laquelle renvoyer l'utilisateur si le paiement
est effectif. Au moment de rediriger l’utilisateur, les substitutions
suivantes sont faites:
%ID%
est remplacé par l’identifiant de
l’enregistrement dans la base de données MPay
%TRANSACTION_ID%
est remplacé par l’identifiant
du transfert tel qu’indiqué dans le SMS de confirmation de
l’opérateur
%AMOUNT%
est remplacé par le montant du transfert.
number_orange
et number_telmob
: les numéros
de téléphone Orange et Telmob sur lesquels l'argent du paiement
doit être envoyéshop_name
: le nom de votre boutique / site weblogo_url
: l'url d'un logo (au format 32x32 pixels)
à afficher en regard du nom de votre boutiqueimmutableRowIds
: si vous avez créé des codes promos
(sous forme de transfert avec entre autre, identifiant de transfert)
qui peuvent être utilisés par plusieurs personnes, une fois le paiement
fait, les enregistrements doivent rester au statut 'Pending' au lieu de
passer à 'OK'. Ce paramètre vous permet d'indiquer les identifiants
des enregistrements correspondants auxdits codes promos.La constante PUBLIC_KEY
sert à chiffrer la somme de contrôle
avant envoi afin de s'assurer qu'un petit malin n'a pas modifié les
informations de vérification du paiement. Elle doit être initialisée
avec votre clé publique (disponible sur la page d'informations de votre compte). Quant à la constante MPAY_USER_ID
, il s'agit de
l'identifiant (attention!, l'identifiant, et non l'adresse mail)
de votre compte MPay (également disponible sur la page
d'informations de votre compte).
Le client hébergé apparaît à l'utilisateur sous la forme suivante:
... ou sur mobile:
RETURN_URL
,
défini plus haut.
RETURN_URL
, après avoir
effectué les substitutions (%AMOUNT%
, %ID%
,
%TRANSACTION_ID%
)
A vous à présent d'utiliser votre logique interne pour d'abord vérifier que le montant reçu correspond à celui qui était attendu (mesure supplémentaire de sécurité), et ensuite associer ce paiement à un utilisateur donné.