Payline - enregistrer une commande

WRInaute discret
Bonjour,

je suis en train de mettre en place le système de paiement Payline sur un site web. La paiement fonctionne mais je ne parviens pas à enregistrer la commande en base de données une fois le paiement effectué.

J'ai tenté de passer une variable en POST mais je n'arrive pas à récupérer son contenu...

Quelle méthode dois-je utiliser ?

Merci :)

Mikaël
 
Nouveau WRInaute
Salutations,

Est-ce la lecture du résultat du paiement qui te pose problème ou l'enregistrement de la commande à proprement parler ? Tu utilises une solution e-commerce particulière ?
 
WRInaute discret
Mon problème vient du fait que je ne parviens pas à passer une variable dans le formulaire payline, je passe les infos de base (ref, amount...), mais quand je rajoute un champ caché (contenant les produits commandés), j'ai un message d'erreur.

L'enregistrement de la commande à proprement parlé de devrait pas poser de souci : une fois la commande validée, j'appelle une page de mon site qui exécute une requète de test qui fonctionne (insert into tabletest set date=now())

J'utilise une solution e-commerce que j'ai entièrement développée.

Merci
 
Nouveau WRInaute
Si tu cherches à afficher le détail de ta commande sur la page web de paiement, il faut faire appel à l'option de personnalisation avancée de Payline (template dynamique).
Pour ça il est nécessaire que tu héberges toi-même le template de ta page web de paiement en httpS. Son URL est alors passée en paramètre de doWebPayment, à ce moment tu peux rajouter ton détail de commande en GEt (c'est envoyé à Payline, ton client ne voit pas ça) pour les afficher dans ta page. Au final l'URL de la page web de paiement renvoyée par doWebPayment correspondra à ton template avec la mire de paiement insérée à la volée.
Tu me suis ? Fais un mail au support Payline pour avoir des infos détaillées sur la personnalisation avancée de la page web de paiement.

En revanche si tu veux simplement passer le détail de ta commande à payline pour retrouver les infos dans le détail de la transaction, ça se passe comme ça (je pars du principe que tu utilises le kit PHP de Payline, et que l'instance de ta classe paylineSDK s'appelle $payline) :
Code:
$produit = array();
$produit ['ref'] 		= <ta référence produit>
$produit ['price'] 		= <le prix en centimes>
$produit ['quantity'] 		= <la quantité de ce produit dans la commande>
$produit ['comment'] 		= <un commentaire libre...>
$payline->setItem($produit);
Tu peux ajouter jusqu'à 100 produits de cette façon.
 
WRInaute discret
Bonjour,

je cherche simplement à passer le détail de ma commande à payline.

je dois avouer que je maîtrise moyennement le php objet.
Pour faire simple, comment puis-je enregistrer la référence de la transaction (ref) que je passe dans le formulaire payline ?
(si j'arrive à faire cela, ça devrait aller pour la suite!)

Merci :)
 
Nouveau WRInaute
Pour passer ta référence commande à Payline c'est très simple :

Code:
$params = array();
$payline = new paylineSDK(<tes paramètres si tu utilises le kit PHP 1.2>);
...
$params['order']['ref'] = <ta référence commande>
...
$result = $payline->doWebPayment($params);
 
WRInaute discret
Désolé de te déranger à nouveau, mais je dois avouer que je quelque chose m'échappe !

Voici le formulaire sur lequel clique le client pour saisir son numéro de carte bancaire :

<form action="payline/examples/web/doWebPayment.php" method="post" class="payline-form">
<input type="hidden" name="ref" id="ref" value="<? echo $codeCommande; ?>">
<input type="hidden" name="amount" id="amount" value="<? echo round(119.6*$prixHT); ?>">
<input name="currency" type="hidden" value="978" />
<input name="submit" value="" src="images/cartesbancaires.png" type="image"/>
</form>

Une fois le paiement effectué, je voudrais simplement enregistrer la valeur "ref" en base de données, j'ai renseigné la variable "NOTIFICATION_URL" qui est correctement appelée (j'ai fait un test), mais ensuite je bloque...

je ne vois pas ou placer le code que tu m'indique :(

merci :)
 
Nouveau WRInaute
En fait le bout de code que j'ai indiqué correspond aux instructions du script doWebPayment.php qui est appelé lorsque tu postes ton formulaire.

Tu as du voir qu'au même niveau que la déclaration de NOTIFICATION_URL tu as une variable RETURN_URL. Elle défini la cible du bouton "retour à la boutique" que tu as sur la page Payline en fin de paiement. Pour enregistrer ta commande après le paiement il faut :
- renseigner RETURN_URL avec l'URL d'un script dans ta boutique
- dans ce script tu implémentes l'appel au service getWebPaymentDetails (tu peux t'appuyer sur le script examples/web/getWebPaymentDetail.php du kit PHP de Payline).
- dans la réponse du service getWebPaymentDetail, (disons que tu la stockes dans une variable $res) tu peux récupérer ta référence commande dans $res['order']['ref']
- tu n'as plus qu'à enregsitrer ta commande en base avec cette référence, en lui associant le résultat du paiement que tu lis également dans la réponse de getWebPaymentDetail (donc dans $res ici)
 
Discussions similaires
Haut