Maison >développement back-end >tutoriel php >À propos de la façon d'utiliser Paypal pour payer un site Web d'achat en PHP

À propos de la façon d'utiliser Paypal pour payer un site Web d'achat en PHP

不言
不言original
2018-06-19 17:28:002631parcourir

Cet article présente principalement comment utiliser PayPal pour payer pour les sites Web d'achat PHP. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

PayPal est rapide, sûr et. pratique , est le mode de paiement en ligne préféré pour les transactions transfrontalières. Désormais, PayPal peut être associé à la plupart des cartes de crédit nationales, permettant ainsi aux Chinois d'effectuer des transactions transfrontalières.

Définir la constante paypalurl

const PAYPAL_URL = 'https://www.sandbox.paypal.com/';

Enregistrer les données à transmettre sous forme de tableau

$paypalData = array(
                   'add'                => 1,
                    'cmd'               => '_ext-enter', 
                    'redirect_cmd'    => '_xclick', 
                    'business'            => $paypalAccount, --------liangliangfeng211@gmail.com这个是收款人的paypal账号
                    'item_name'       => '51customimprint shopping cart',
                    'item_number'   => $order->id,
                    'first_name'        => $address->first_name,
                    'last_name'         => $address->last_name,
                    'address1'           => $address->address1, 
                    'city'                     => $address->city,
                    'state'                  => $address->state_or_province,
                    'zip'                      => $address->zip_code, 
                    'amount'            => $order->subtotal,
                    'shipping'          => $order->shipping_fee,
                    'no_note'            => 1,
                    'currency_code'    => 'USD', 
                    'lc'                      => 'US'
                );

Convertir ce tableau en adresse url

$paypalArguments = array();
                foreach($paypalData as $k => $v){
                    array_push($paypalArguments, $k . '=' . urlencode($v));
                }
                $paypalUrl = self::PAYPAL_URL . '?' . implode('&', $paypalArguments);
                $this->_redirect($paypalUrl);

Ensuite, lorsque nous testons, nous devons définir l'adresse de l'interface Paypal sur :

https://www.sandbox.paypal .com/cgi-bin/webscr

Processus de base
Lorsqu'un client vous paie, PayPal enverra un message à l'URL spécifiée (type=”nom caché” =” notify_url” value="”) pour envoyer une notification au serveur. Cette notification comprendra toutes les informations de paiement de votre client (par exemple, nom du client, montant), ainsi qu'un code crypté. Lorsque le serveur est averti, il renvoie ensuite ces informations, y compris le code de cryptage, à l'URL sécurisée de PayPal. PayPal authentifiera la transaction en vérifiant la chaîne cryptée. Ce transfert de données IPN vers PayPal empêche toute « usurpation d'identité » afin que vous puissiez être sûr que l'IPN provient de PayPal. Lors de la vérification, PayPal renvoie la confirmation de sa légitimité à votre serveur.

Astuce : Pour activer les notifications de paiement instantanées, vous devrez saisir une URL via laquelle vous pourrez recevoir des notifications à partir de vos informations utilisateur.

Après avoir activé la notification de paiement instantanée, votre serveur recevra une notification chaque fois que vous recevrez un paiement. Cette notification sera envoyée à l'URL spécifiée dans un "FORM POST" masqué et inclura toutes les informations de paiement. Les variables FORM de la notification sont répertoriées au bas de cette page.

Chaque fois que vous recevez un IPN de PayPal, vous devez terminer le processus de confirmation de notification décrit ci-dessous avant de mettre en œuvre votre commande. La confirmation des informations répertoriées garantira la légitimité de la transaction.

Notification Confirmation IPN
Afin de vous assurer que le paiement a été transféré sur votre compte PayPal, vous devez vérifier que l'adresse e-mail utilisée comme "receiver_email" est enregistrée dans votre compte PayPal et Obtenez une confirmation.

Une fois que le serveur reçoit la notification de paiement instantanée, vous devrez la confirmer en créant un HTTP POST vers PayPal. Votre POST doit être envoyé à https://www.paypal.com/cgi-bin/webscr

Vous devez envoyer toutes les variables de formulaire que vous recevez exactement telles que vous les avez reçues. Vous devez également ajouter une variable nommée « cmd » avec la valeur « _notify-validate » (par exemple, cmd=_notify-validate) à la chaîne POST.

PayPal répondra à ce POST et inclura le mot « VÉRIFIÉ » ou « INVALIDE » dans le corps de la réponse. Lorsque vous recevez une réponse VÉRIFIÉE, vous devez effectuer plusieurs vérifications avant d'exécuter la commande :

Confirmez que le "payment_status" est "Completed" car le système fournira également d'autres résultats (tels que "En attente" ou " Échec") Envoyer l'IPN.
Vérifiez que "txn_id" n'est pas dupliqué pour empêcher les fraudeurs de réutiliser d'anciennes transactions complétées.
Vérifiez que « receiver_email » est l'adresse e-mail enregistrée dans votre compte PayPal pour empêcher les paiements d'être envoyés vers le compte d'un fraudeur.
Vérifiez les autres détails de la transaction (tels que le numéro d'article et le prix) pour confirmer que le prix n'a pas changé. Une fois que vous avez effectué les vérifications ci-dessus, vous pouvez mettre à jour votre base de données avec les données IPN et traiter l'achat.
Si vous recevez une notification « invalide », elle doit être considérée comme une notification suspecte et doit faire l'objet d'une enquête.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

À propos du code 2 pour implémenter le panier en PHP

Utiliser PHP pour implémenter le paiement Alipay sur l'application mobile Fonction

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn