Pour commencer, voilà comment je procède avec PayPal
Cette solution est loin d’être satisfaisant d’un point de vu GAFAM mais ça l’avantage d’être simple.
Pour la mettre en œuvre, il suffit de créer un compte « vendeur » chez PayPal et de le lier à un RIB.
Voilà, l’enchaînement technique à réaliser alors.
(voir https://developer.paypal.com/docs/paypal-payments-standard/integration-guide/html-reference-landing/ pour en savoir plus)
1-Commande utilisateur
Au moment où je demande à mon utilisateur de valider sa commande, je lui affiche un lien de ce type:
<FORM action="https://www.paypal.com/cgi-bin/webscr" method="post">
<INPUT TYPE="hidden" name="business" value="id-paypal@sleto.net">
<INPUT TYPE="hidden" name="currency_code" value="EUR">
<INPUT TYPE="hidden" name="lc" value="fr">
<INPUT TYPE="hidden" name="return" value="https://portail.sleto.net">
<INPUT TYPE="hidden" name="cancel_return" value="https://portail.sleto.net">
<INPUT TYPE="hidden" name="notify_url" value="https://portail.sleto.net/diacamma.payoff/validationPaymentPaypal">
<INPUT TYPE="hidden" name="item_name" value="nom de l'utilisateur">
<INPUT TYPE="hidden" name="custom" value="référence commande">
<INPUT TYPE="hidden" name="tax" value="0">
<INPUT TYPE="hidden" name="amount" value="10">
<INPUT TYPE="hidden" name="cmd" value="_xclick">
<INPUT TYPE="hidden" name="no_note" value="1">
<INPUT TYPE="hidden" name="no_shipping" value="1">
<INPUT type="image" name="submit" src='https://www.paypalobjects.com/webstatic/mktg/logo/pp_cc_mark_74x46.jpg' title='PayPal' alt='PayPal'>
</FORM>
précisions:
-
business : identifiant vendeur chez PayPal afin de se faire créditer son compte du paiement.
-
notify_url : url de votre chatons où vous recevrez la notification d’un paiement afin d’activer le service correspondant.
-
custom : identifiant de la commande qui vous sera renvoyer afin de savoir qu’elle commande est à valider.
-
amount : montant de la commande.
Notez que l’on peux aussi convertir ce formulaire en lien « <a> » en GET: celui-ci peux alors facilement s’intégrer dans un courriel.
2-Notification de commande
Au moment où PayPal aura accepter le paiement de la commande, vous recevrez via un requête POST sur l’url précisé avec un ensemble de variables liées au règlements (les précédentes du formulaire + celle lié au paiement en lui même)
Pour commencer, vous devez vérifier l’exactitude des champs envoyés.
Pour cela, vous devez envoyer une requête POST à https://www.paypal.com/cgi-bin/webscr avec l’ensemble des champs reçu et en ajoutant le champ « cmd »="_notify-validate".
La requête doit alors renvoyer « VERIFIED », sinon un des éléments reçu n’est pas considéré comme valide voir cette notification est considéré comme frauduleuse (ne venant pas de PayPal).
Vérifiez alors la commande demandé (champ « custom ») et que le montant réellement payé (‹ mc_gross ›) correspond bien a ce qui est attendu.
A noter que vous recevez alors également un référence de transaction (« txn_id ») ainsi que le montant de la commission PayPal prélevé (« mc_fee ») environs 3%.
Vous pouvez alors enclencher la validation du service.
Personnellement je lève un booléen dans une BDD et un « cron » viens agir régulièrement dessus.
Si vous voulez plus de précision, n’hésitez pas à me contacter.