Explication détaillée de la mise en œuvre php du développement de l'interface de paiement en ligne Alipay

墨辰丷
Libérer: 2023-03-28 22:36:01
original
10174 Les gens l'ont consulté

Cet article présente principalement en détail le didacticiel de développement de l'interface de paiement en ligne PHP Alipay, qui a une certaine valeur de référence. Les amis intéressés peuvent s'y référer

1. >

Le soi-disant tiers payant est une plateforme de support aux transactions fournie par certaines institutions tierces indépendantes qui ont signé des contrats avec de grandes banques et disposent de certaines garanties de solidité et de crédibilité. Dans les transactions via une plateforme de paiement tierce, une fois que l'acheteur a acheté les marchandises, il utilise le compte fourni par la plateforme tierce pour payer les marchandises, et le tiers informe le vendeur de l'arrivée du paiement.

Actuellement, de nombreuses institutions proposent des paiements par tiers. Les plus courantes incluent Alipay, Tenpay, Kuaiqian, les services bancaires en ligne, Yibao Pay, Yunwang et d'autres grandes plateformes de paiement. Si un site Web doit mettre en œuvre le paiement tiers, il doit d'abord demander un compte auprès de la plateforme de paiement tierce et signer un accord. Une fois l'accord entré en vigueur, la plateforme de paiement tierce activera les fonctions de paiement en ligne et intégrera le paiement. interface avec le site Web via un programme.

Pourquoi recourir au tiers payant ? Étant donné que la plateforme de paiement tierce a signé des contrats avec de grandes banques, les propriétaires de sites Web n'ont qu'à demander un compte sur cette plateforme pour prendre en charge presque tous les types de transactions par carte bancaire et par carte de crédit.

2. Principe du tiers payant

Ce qui précède explique brièvement le processus de paiement, bien sûr , il omet Pour certaines étapes (telles que le panier, la commande, etc.), nous nous concentrons sur le processus de paiement.

2.1 L'utilisateur lance une demande de confirmation de la commande sur le site Web du centre commercial

2.2 Le site Web du centre commercial reçoit la demande de sauvegarde des données de commande dans la base de données ou sur un autre support de stockage

2.3 Retour à la page de confirmation de commande, page Le montant de la commande et d'autres informations doivent être affichées

2.4 L'utilisateur confirme le paiement et initie une demande de paiement. Remarque : La demande de paiement est envoyée à la passerelle de paiement (telle qu'Alipay, banque en ligne) plutôt qu'au site Web du centre commercial.

2.5 Afficher la page de paiement

2.6 L'utilisateur remplit les informations d'authentification (mot de passe du compte, etc.) et soumet

2.7 Il y a deux étapes ici La première consiste à. passez à la page de paiement une fois la déduction réussie. La page de résultats (affichée à l'utilisateur), et l'autre est la notification de paiement. Ces deux étapes peuvent être exécutées en même temps sans ordre particulier. le site Web du centre commercial vérifie la validité des informations conformément aux règles de vérification et apporte les modifications correspondantes (par exemple : valide si la commande passe au statut payé, si elle est invalide, les informations de demande illégales seront enregistrées).

Prenons Alipay comme exemple : si vous souhaitez intégrer l'interface Alipay dans votre site Web, vous devez d'abord disposer d'un compte Alipay, puis demander une activité de paiement en ligne avec Alipay et signer un accord. Une fois l'accord entré en vigueur, Alipay donnera au site Web un identifiant de partenaire et un code de vérification de sécurité. Avec ces deux éléments, vous pouvez développer l'interface Alipay selon le document d'interface Alipay. Il n'y en a que 4 et 7 dans les étapes ci-dessus. Cette étape implique un échange d'informations entre le centre commercial et la passerelle de paiement. À l'étape 4, cela signifie envoyer les données à la passerelle de paiement (Alipay). À l'étape 7, il s'agit de la partie vérification de la notification. La passerelle de vérification demande une certaine adresse du site Web. Le site Web vérifie les informations selon les règles de vérification. enregistre et répond. Nous développons presque tous les paiements. En ce qui concerne l'interface, l'accent est mis sur le développement de ces deux parties. Si vous comprenez les principes de l'interface de paiement, il ne sera pas difficile de développer l'interface de paiement.

3. Développement de l'interface Alipay

3.1 Introduction et tests de l'interface

Alipay propose actuellement des transactions garanties, un paiement instantané standard, des fonctions doubles, etc. Il existe plusieurs interfaces, mais il existe quelques différences dans les fonctions. La méthode d'intégration du site Web est la même. En prenant l'interface de compte instantané standard comme exemple, après avoir signé un accord avec Alipay, plusieurs étapes sont nécessaires pour terminer l'intégration.

Sélectionnez le lien que vous verrez ensuite dans "Je veux une intégration en libre-service" et cliquez pour télécharger la documentation technique.

Le fichier téléchargé comprend l'interface standard du service de transaction Alipay, les outils marchands, le guide d'intégration de l'interface et d'autres documents d'interface, ainsi que des démos écrites en plusieurs langues. Nous pouvons développer de nouveaux produits selon les règles selon les documents d'interface. , ou Il peut être modifié et intégré au site Web à partir de la démo. Il est à noter que l'interface de paiement doit être développée sur le réseau public (le serveur doit être accessible via le réseau externe) pour terminer l'ensemble du processus de débogage. Si le serveur n'est pas accessible depuis le réseau externe, le paiement ne peut pas être reçu.

Jetez un oeil à la fonction de chaque fichier dans la démo :

Il a été téléchargé ici (voir le dossier paye dans le répertoire des ressources). Des modifications ont été ajoutées pour faciliter le débogage. Nous avons créé plusieurs fichiers et ajouté un tableau de données pour enregistrer les informations de commande. Nous modifions le fichier de configuration pour terminer un processus de test.

alipay_config.php est le fichier de configuration des informations de base. Nous devons écrire le PID et la clé obtenus dans le backend Alipay dans le fichier de configuration.

Éléments de configuration :

Les données dans la boîte sont ce sur quoi nous devons nous concentrer sur la modification. La différence entre l'adresse de notification de paiement et l'adresse de retour a été mentionnée précédemment. Il y a deux éléments à l'étape 7 : la page de résultat du paiement et les informations de notification de paiement. La page de résultat du paiement accédera automatiquement à cette adresse une fois que l'utilisateur aura terminé le paiement. . Voici l'adresse de retour ( $return_url).

L'adresse de notification de paiement est également le paiement de l'utilisateur. Une fois le paiement effectué, Alipay demandera l'adresse ($notify_url), mais la notification de paiement est directement demandée par le. Serveur Alipay et ne sera pas vu par l'utilisateur. Ces deux adresses doivent être au format de chemin complet commençant par http. Afin de terminer le processus de test, /pay/alipay/notify_url.php a été réécrit ici et $notify_url est défini sur l'URL qui peut accéder à ce fichier. Une fois ces éléments configurés, une table de données est créée selon le script de base de données (pay/orders.sql). Et modifiez mysql_config.php en fonction des informations de configuration de la base de données. En modifiant simplement la démo fournie par Alipay, vous pouvez terminer la création de la demande de paiement (étape 4). Ici, la page d'accueil de paiement et les autres pages sont modifiées (voir le). répertoire payant du paquet de code source). Testons-le d'abord :

Une « information de commande » a été ajoutée à la base de données

Si vous cliquez sur le bouton « Confirmer le paiement » ou sur Confirmer. Le lien de paiement sautera. Accédez à la page Alipay et soumettez les informations à la passerelle de paiement via le formulaire POST en cliquant sur le bouton. Étant donné que les données de la demande de paiement n'ont pas besoin d'être vues par l'utilisateur, elles sont écrites dans le champ caché. Le lien de confirmation de paiement est transmis via l'URL. Étant donné que l'interface Alipay permet la soumission en POST ou GET, les deux méthodes sont acceptables. Après avoir soumis les paramètres à la passerelle de paiement, la page passe à la page de paiement. Nous voyons l'image ci-dessous :

Nous voyons qu'Alipay nous propose deux méthodes de paiement, l'une consiste à payer via le compte Alipay, l'autre par paiement par carte bancaire. Par exemple, si vous choisissez de payer par carte bancaire, renseignez votre email ou votre numéro de téléphone portable pour accéder à la page suivante :

Notre facturation Alipay prend en charge presque toutes les opérations bancaires. paiements par carte, ainsi que cartes de crédit et points de vente. Pour payer, sélectionnez la banque correspondante et suivez les instructions pour effectuer le paiement. Une fois le paiement terminé, la page reviendra à l'adresse $return_url que nous avons configurée dans le fichier de configuration, et le « statut de la commande » changera également.

Remarque : s'il n'y a pas de test de réseau externe pendant le test (c'est-à-dire que l'adresse de notification de paiement n'est pas accessible depuis le réseau externe), la notification de paiement ne peut pas être demandée , et le statut de la commande ne peut pas être modifié automatiquement.

3.2 Spécification de l'interface Alipay et analyse du code

Pour la spécification de l'interface Alipay, veuillez vous référer à /pay/doc/Standard Alipay Transaction Service Interface (dédié aux sites Web anti-phishing). Pdf, qui contient déjà des instructions relativement détaillées.

3.2.1 Comment créer une demande de paiement

Lors du test précédent, nous avons cliqué sur "Confirmer le paiement" pour soumettre les informations à la passerelle de paiement d'Alipay. Nous pouvons réfléchir aux paramètres à envoyer. .à la passerelle de paiement. Pour la liste des paramètres de requête, veuillez vous référer à l'interface standard du service de transaction Alipay (dédiée aux sites anti-phishing). 3.2.2 dans le Pdf Il convient de noter que nous n'avons pas seulement besoin de soumettre ces paramètres à Alipay intacts. Afin de garantir la sécurité des données, Alipay utilise actuellement la signature MD5 pour empêcher la falsification des données.

Avant de soumettre les données, vous devez assembler les données à soumettre dans une chaîne selon certaines règles (voir le document d'interface), ajouter le code de contrôle de sécurité (Clé) pour former une nouvelle chaîne, et générer une chaîne de 32 mots via la signature de la section MD5 Lorsque nous soumettons une demande de paiement, nous devons également soumettre cette signature. Jetez un oeil au code source du formulaire

Après réception des paramètres, Alipay vérifiera la légitimité des paramètres de la demande. Après vérification, la page de paiement s'affichera, sinon un. une erreur sera demandée.

 3.2.2 Comment vérifier la notification de paiement

Une fois le paiement de l'utilisateur effectué, Alipay demandera l'adresse de notification de paiement du site Web (cette adresse doit être transmise en paramètre lors de la création de la demande de paiement). Pour la liste des paramètres de retour, veuillez vous référer à l'interface standard du service de transaction Alipay (dédiée aux sites anti-phishing). Pdf3.3.1. Il existe également une chaîne de signature dans les données de retour d'Alipay (en utilisant la même méthode de signature que la demande de paiement). Dans le fichier de notification de paiement, les données doivent d'abord être signées et vérifiées. En plus de vérifier la signature, le notify_id dans le paramètre doit également être soumis au système Alipay de passerelle de vérification d'Alipay pour vérifier l'authenticité de la notification et notifier la vérification. Le système Alipay détermine si la notification est envoyée par lui-même. Si elle est au format chaîne, elle renvoie vrai, sinon elle renvoie faux. Nous vérifions l'authenticité de la demande en vérifiant les données renvoyées par le serveur. Si les deux sont vérifiées, nous. peut modifier les données de la commande et envoyer des e-mails à l'utilisateur des notifications et d'autres opérations. Concernant la vérification des signatures, vous pouvez consulter le code source dans le fichier de notification. Dans la démo, le notify_id dans le paramètre est soumis à Alipay via POST et les données de retour sont obtenues. Extrait de code :

L'accent est ici mis sur la fonction fsockopen, lors de l'envoi. un e-mail Nous avons déjà été exposés à l'ouverture d'une connexion socket via cette fonction. Semblable à la fonction fopen que nous avons apprise précédemment, elle renvoie un descripteur de fichier, et vous pouvez ensuite utiliser les fonctions de fichier (fgets(), fgetss(), fputs( ), fclose() feof(), etc.) pour le faire fonctionner, le code utilise la fonction fputs() (identique à fwrite()) pour écrire des données afin de simuler la soumission de données par formulaire en mode POST, et enfin obtenir le retour données via la fonction fgets() et enregistrez-les dans un tableau, et enfin effectuez une vérification, veuillez vous référer au code source pour plus de détails.

Résumé : 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.

Recommandations associées :

Comment implémenter des mots-clés de masquage en PHP

Fonction de tri de tableaux personnalisés et tri implémentés dans la classe PHP méthodes

Fonction de tri de tableaux personnalisés implémentée par PHP et méthodes de classe de tri

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal