Mise à jour de ma base avec paiement CMCIC (PHP POO)

Fermé
charcom Messages postés 60 Date d'inscription jeudi 24 janvier 2013 Statut Membre Dernière intervention 3 novembre 2022 - Modifié par charcom le 25/02/2015 à 16:32
charcom Messages postés 60 Date d'inscription jeudi 24 janvier 2013 Statut Membre Dernière intervention 3 novembre 2022 - 27 févr. 2015 à 15:04
Bonjour,

Mon système de paiement du Crédit Mutuel fonctionne bien, sauf quand il s'agit de mettre ma base de données à jour.

Leur fichier est en PHP orienté objet alors que je programme en procédural, alors je me demande si c'est pas la raison du problème...

Un programmeur PHP orienté objet pourrait-il m'indiquer un exemple de mise à jour d'une base de données à insérer dans ce code SVP ?

if ($oHmac->computeHmac($cgi2_fields) == strtolower($CMCIC_bruteVars['MAC']))
{
switch($CMCIC_bruteVars['code-retour']) {
case "Annulation" :
// Payment has been refused
// put your code here (email sending / Database update)
// Attention : an autorization may still be delivered for this payment
break;

case "payetest":
// Payment has been accepted on the test server
// put your code here (email sending / Database update)
break;

case "paiement":
// Payment has been accepted on the productive server
// put your code here (email sending / Database update)
XXXXXX
break;

}

$receipt = CMCIC_CGI2_MACOK;

}


A l'endroit où j'ai tapé XXXXXX, que dois-je mettre pour qu'il se connecte à ma base de données et qu'il mette à jour le champ "statut" de ma table "factures", par exemple ?

Quand j'insère ceci à la place des XXXXXX :

$sql_serveur = 'xxxx';
$sql_login = 'xxxx';
$sql_pass = 'xxxx';
$sql_bdd = 'xxxx';
function connect_sql()
{
global $sql_serveur, $sql_login, $sql_pass, $sql_bdd;
//connexion au serveur
$linkid = @mysql_connect($sql_serveur,$sql_login,$sql_pass) or die ("Erreur lors de la connection au serveur MySQL !");
//selection de la BD
@mysql_select_db($sql_bdd,$linkid) or die("Impossible de sélectionner la base de données");
return $linkid;
}
$sql = connect_sql();
mysql_query("UPDATE factures SET `statut`='ok' WHERE `idfacture`='$idfacture'");


rien ne se passe.

Peut-on mettre du PHP procédural dans du PHP orienté objet ?
Comment lui dire la même chose en POO ?

L'autre problème est que la donnée $idfacture, je la récupère en faisant un explode. Comment faire un explode en POO ??

Je lis actuellement des tutos du POO, mais bon, le but de ma question est de gagner du temps, en espérant que qqun acceptera de m'aider.

Merci d'avance pour votre aide.
A voir également:

3 réponses

Mohamed_Maroc_Rajaoui
25 févr. 2015 à 16:49
commence par faire un simple echo a la place des xxxx par exemple


echo 'oui... ça marche!';


Ensuite fait un paiement et regarde si ça marche bien ton echo et s'il s'affiche quand le paiement marche.
0
charcom Messages postés 60 Date d'inscription jeudi 24 janvier 2013 Statut Membre Dernière intervention 3 novembre 2022 5
Modifié par charcom le 25/02/2015 à 17:33
J'ai déjà essayé, mais une fois le paiement terminé, l'internaute est sur la page du Crédit Mutuel qui dit que le paiement s'est bien passé, avec un lien vers le site marchand (donc le mien). Il me semble logique qu'un echo ne s'affiche pas sur la page du Crédit Mutuel.
0
charcom Messages postés 60 Date d'inscription jeudi 24 janvier 2013 Statut Membre Dernière intervention 3 novembre 2022 5
Modifié par charcom le 25/02/2015 à 18:21
Quelqu'un par ici utilise-t-il ce système du CMCIC ? en PHP ? dont le code dans le fichier "retour.php" fonctionne et pourrait me le communiquer pour que je m'en inspire ???

Je viens de mettre ce code :

$serveur = "xxx";
$base = "xxx";
$user = "xxx";
$pass = "xxx";
$mysqli = new mysqli($serveur, $user, $pass, $base);

$numero= $CMCIC_bruteVars['reference'];
$date= date("Y-m-d");
$media= "CB online";

$requete = "UPDATE factures SET paiement_statut = 'ok', paiement_date = '$date', paiement_mode = '$media' WHERE numero=$numero";
$mysqli->query($requete);


et la mise à jour n'est pas faite :-((((((((((((((((
0
Mohamed_Maroc_Rajaoui
26 févr. 2015 à 11:46
Dans ce cas a la place d'un echo essaie de faire un mail(), et envoie un email a ta boite. il faut que tu t'assure que ca se passe quelquechose a cet endroid
0
charcom Messages postés 60 Date d'inscription jeudi 24 janvier 2013 Statut Membre Dernière intervention 3 novembre 2022 5
27 févr. 2015 à 15:00
Déj? tenté aussi :-)
0
charcom Messages postés 60 Date d'inscription jeudi 24 janvier 2013 Statut Membre Dernière intervention 3 novembre 2022 5
27 févr. 2015 à 15:04
Merci Mohamed, pour tes réponses. J'ai trouvé la parade. Le code que je mettais ? cet emplacement n'ayant aucun effet, j'ai juste mis la variable $reponse = "okpaid"; et puis en fin du fichier, j'ai mis la condition if ( $reponse=="okpaid" ) { suivie de mon code et tout fonctionne !! Visiblement, mon PHP procédural n'est pas accepté dans le PHP orienté objet. Je pense que c'est le problème.

J'ai du mal ? croire qu'il n'y ait personne ici qui utilise ce module de paiement du CMCIC, mais bon, le partage n'est plus ce qu'il était... Encore merci Mohamed.
0