Methode de paiement Mercanet de BNP [Résolu]

Signaler
Messages postés
133
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
16 juin 2020
-
Messages postés
133
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
16 juin 2020
-
Bonjour

Un ami voulant travailler avec moi a fait un transfert de domaine :
Ancien hébergement :
OVH + Wordpress + système paiement Mercanet
(Je n’ai pas testé le système paiement qui était en place)

Nouveau hébergement :
1and1 Mutualisé :
Le site est construit de A à Z fait maison HML, PHP et PHP 7.02

Communication site -> Mercanet méthode POST
Mode test 1 euros : tout fonctionne
Mode production 3 euros : je saisie les données visa, je saisie le code sécurité reçu pars SMS et là j’ai mercanet qui me répond paiement refusé

J’ai testé :
Visa premier : banque postale
MasterCard : compte-Nickel

J’utilise le même code qu'en test sauf :
- merchantId,
- keyVersion=1 passe à keyVersion=3 (la clé que j’utile est la 3eme généré le 3 avr. 2017)
- secretKey
- https://payment-webinit.mercanet.bnpparibas.net/paymentInit

Nota : j'utilise la clé secrète récupéré sur l'ancien site.

Je tourne en rond lol

Beaux temps belle mer
Jorge

Le code est récupére sur la doc Mercanet :
paiement.php
<?php
  // Génère un numéro de transaction aléatoire
  $transactionReference = rand(100000,999999);
  // Construit l'URL de retour pour récupérer le résultat du paiement sur le site e-commerce du marchand
  $normalReturnUrl = 'https://www.white-bird-decouverte.com/bnpresult.php';
  // Contruit la requête des données à envoyer à Mercanet
  $data = "amount=300|currencyCode=978|merchantId=XXXXXXXXXXXXXXX|normalReturnUrl=".$normalReturnUrl."|transactionReference=".$transactionReference."|keyVersion=3";
  // Encode en UTF-8 des données à envoyer à Mercanet
  $dataToSend= utf8_encode($data);
  // Clé secrète correspondant au merchandId de simulation
  $secretKey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
  // Calcul du certificat par un cryptage SHA256 des données envoyées suffixé par la clé secrète
  $seal=hash('sha256', $dataToSend.$secretKey);
  // Envoi des données à Mercanet par un formulaire POST
?>

<form method="post" action="https://payment-webinit.mercanet.bnpparibas.net/paymentInit">
  <input type="hidden" name="Data" value="<?php echo $data; ?>">
  <input type="hidden" name="InterfaceVersion" value="HP_2.20">
  <input type="hidden" name="Seal" value="<?php echo $seal; ?>">
  <input type="submit" value="Payer">
</form>


Code retour :

paiement_retour.php
<?php
session_start();

if (strlen($_POST['Data']) > 0) {
    $str = str_replace("|", "&", $_POST['Data']);
    parse_str($str, $dataArray);
    if (strcmp($dataArray['responseCode'], "00") == 0) {
        
        echo 'autorisationid       = ' . $dataArray['authorisationId'] . '<br>';
        echo 'transactionReference = ' . $dataArray['transactionReference'] . '<br>';
        echo 'Paiement ACCEPTE';
        
    } else {
        echo 'transactionReference = : ' . $dataArray['transactionReference'];
        echo '<br>Paiement REFUSE';
    }
} else {
    echo 'aucun retour POST : Paiement REFUSE';
}
?>

1 réponse

Messages postés
133
Date d'inscription
mardi 24 décembre 2002
Statut
Membre
Dernière intervention
16 juin 2020

Re,

J'ai fait une grosse boulette, j'ai oubliai de mettre le retourerreur dans paiement_retour.php
du coup je m'appercois que c'est l'erreur 03 qui correspond a : L’identifiant commerçant est invalide
Faut que j'arrete de coder à de 20 heures à 10 Heures

Beau temps belle mer

--