Table des matières
Les plats clés
Pour commencer
Redirection transparente
devenir fantaisie
Envelopper
Les questions fréquemment posées sur les redirections transparentes
Quel est le principal objectif d'utiliser des redirections transparentes dans le traitement des paiements?
Comment une redirection transparente fonctionne-t-elle dans le contexte de l'optimisation du site Web?
Quelle est la différence entre une redirection transparente et une redirection traditionnelle?
Comment puis-je mettre en œuvre une redirection transparente sur mon site Web?
Quels sont les avantages de l'utilisation d'une redirection transparente?
Y a-t-il des inconvénients à l'utilisation d'une redirection transparente?
Une redirection transparente est-elle compatible avec toutes les passerelles de paiement?
Comment une redirection transparente affecte-t-elle l'expérience utilisateur?
Une redirection transparente peut-elle aider à la conformité PCI?
Que se passe-t-il si une redirection transparente échoue?
Maison développement back-end tutoriel php Redirection transparente avec Braintree

Redirection transparente avec Braintree

Feb 19, 2025 pm 12:11 PM

Redirection transparente avec Braintree

Les plats clés

  • Braintree Payment Solutions offre une redirection transparente et Braintrene.js comme solutions pour aider à minimiser le fardeau de conformité PCI pour les petites entreprises.
  • La redirection transparente permet de transmettre les données de carte de crédit directement sur les serveurs de Braintree, contournant le système du propriétaire de l'entreprise, réduisant ainsi le risque de violations de données.
  • La bibliothèque client Braintree PHP simplifie le processus d'intégration pour une redirection transparente, mais elle peut compliquer la collecte et la validation des informations liées à la non-paiement sur le même formulaire que les informations de carte de crédit du client.
  • Pour mettre en œuvre une redirection transparente, le propriétaire de l'entreprise doit intégrer son site Web à l'API de la passerelle de paiement, mettre en place un formulaire qui publie des informations de paiement des clients directement sur la passerelle et gérer la réponse renvoyée à leur site Web.
  • Bien que la redirection transparente améliore la sécurité et améliore les performances du site Web, elle nécessite une compréhension plus approfondie du développement Web et des API de la passerelle de paiement, qui peut être un inconvénient potentiel pour certains propriétaires d'entreprise.

La simple mention de la «conformité PCI» suscite généralement une combinaison d'apparence confuse et de paumes en sueur des propriétaires d'entreprise qui acceptent les paiements par carte de crédit en ligne. Mais qu'est-ce que cela signifie vraiment?

C'est un sujet compliqué, mais la version courte est que les principales sociétés de cartes de crédit ont fondé un conseil appelé le Payment Card Industry Security Standards Council (PCI SSC) en 2006 afin de créer un ensemble de règles normalisant les politiques et procédures de sécurité Que les commerçants doivent suivre (PCI DSS) lors du traitement et du stockage des informations de carte de crédit sensibles. Afin de déterminer si vos systèmes sont conformes, vous choisissez normalement le questionnaire d'auto-évaluation approprié (SAQ) dans l'une des huit options, puis répondez à une série de questions pour déterminer si vous étiez, en fait, conforme. Les grandes entreprises utilisent souvent les services d'un évaluateur de sécurité qualifié (QSA) pour les aider à remplir SAQ D (le plus impliqué des SAQ), qui peut coûter des centaines de milliers de dollars. Et pour aggraver les choses: si vos systèmes sont compromis et qu'il est déterminé qu'ils n'étaient pas conformes lorsqu'ils ont été violés, vous pourriez être responsable des amendes pouvant aller jusqu'à 500 000 $ par incident.

Alors, qu'est-ce qu'un propriétaire de petite entreprise est censé faire? C’est là que les solutions de paiement Braintree entrent en jeu. Ils proposent deux solutions pour minimiser votre charge de conformité PCI: Redirection transparente et BrainTree.js. Je dois mentionner que ni Braintrene ni aucun autre fournisseur de services conformes PCI DSS ne peuvent vous dire quel SAQ remplir, ou si vos systèmes sont conformes. Mais ils se sont associés à des mesures de sécurité, un QSA de pointe, pour fournir une solution gratuite pour aider tous leurs clients à atteindre et à maintenir la conformité PCI. Et d'après leur expérience, les clients utilisant une redirection transparente ou BrainTree.js ont généralement pu remplir SAQ A, ce qui est beaucoup moins impliqué (et donc coûteux) que SAQ D. Vous pouvez en savoir plus ici.

mais suffisamment de fond; Écrivons du code.

Pour commencer

Cet article va se concentrer sur la méthode de redirection transparente. La première chose que nous devons faire est de se diriger vers Braintree pour obtenir nos clés d'API côté serveur. Pour ceux d'entre vous sans compte de production, indiquez votre navigateur vers le bac à sable Braintree et inscrivez-vous à un compte de test. Connectez-vous et cliquez sur «Compte -> Keys API». Ensuite, cliquez sur le bouton «Générer un nouveau» et enfin cliquez sur «Afficher» sous la colonne de clé privée de la touche API nouvellement générée. Vous serez amené à l'écran suivant, qui contient toutes les informations dont vous avez besoin pour configurer la bibliothèque client Braintree.

Redirection transparente avec Braintree

Vous pouvez le voir a même un outil qui génère le code de configuration pour vous dans une variété de langues.

Il est maintenant temps d'installer la bibliothèque client Braintree PHP réelle. Nous pouvons le faire avec Composer en exécutant la commande suivante:

composer require braintree/braintree:*
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

Redirection transparente

L'un des principaux facteurs qui contribuent à déterminer si vous devez remplir SAQ D ou SAQ A est de savoir si les données de carte de crédit sont transmises via votre système. Et au début du modèle de serveur à serveur (S2S) typique, votre serveur Web enverrait un formulaire de paiement au navigateur du client. Après avoir rempli le formulaire, le client appuyerait sur Soumettre, qui publierait les données sur votre serveur Web, ce qui allait à l'avenir, certaines de ces données sur Braintree pour la validation et le traitement. Cela ressemblerait à ceci:

Redirection transparente avec Braintree

Avec une redirection transparente, cependant, l'action du formulaire est définie de sorte que le formulaire se publie directement sur les serveurs de Braintree, et la réponse est renvoyée au navigateur client. Le navigateur est ensuite redirigé vers un script sur le serveur Web à l'aide d'une redirection HTTP 303. Enfin, le script de serveur Web confirme la transaction avec Braintree et présente les résultats au navigateur client. Donc ce modèle ressemble plus à ceci:

Redirection transparente avec Braintree

Maintenant que nous avons la théorie à notre actif, allons-y et écrivons du code. Ceux d'entre vous qui souhaitent voir la version complète peuvent le trouver sur GitHub.

La première chose que nous allons faire est de créer un formulaire HTML très basique afin que nous puissions saisir certaines données à envoyer à Braintree pour le traitement. Je vais rendre cela aussi simple que possible afin que nous puissions nous concentrer sur les fonctionnalités.

composer require braintree/braintree:*
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

Il n'y a rien de compliqué ici. La seule chose que vous remarquerez, c'est que les noms de champ de saisie sont au format de tableau. Vous pouvez voir une liste complète des noms de champ valides ici. L'autre chose que je vais souligner de cette page est que si vous utilisez un framework qui a des problèmes avec l'utilisation des tableaux pour les noms d'entrée (je vous regarde, Zend Framework!), Alors vous pouvez utiliser un autre double soulignement syntaxe. Ainsi, votre entrée de date d'expiration ressemblerait à ceci:

<span><span><!doctype html></span>
</span>	<span><span><span><html</span> lang<span>="en"</span>></span>
</span>		<span><span><span><body</span>></span>
</span>		    <span><span><span><div</span> id<span>="wrap"</span>></span>
</span>		        <span><span><span><form</span> method<span>="post"</span> action<span>=""</span> autocomplete<span>="off"</span>></span>
</span>		            <span><span><span><label</span>></span>Name on Card: <span><span><input</span> type<span>="text"</span> name<span>="transaction[credit_card][cardholder_name]"</span>></span><span><span></label</span>></span>
</span>					<span><span><span><label</span>></span>Card Number: <span><span><input</span> type<span>="text"</span> name<span>="transaction[credit_card][number]"</span>></span><span><span></label</span>></span>
</span>					<span><span><span><label</span>></span>CVV: <span><span><input</span> type<span>="text"</span> name<span>="transaction[credit_card][cvv]"</span> class<span>="short"</span>></span><span><span></label</span>></span>
</span>					<span><span><span><label</span>></span>Expiration Date (MM/YYYY): <span><span><input</span> type<span>="text"</span> name<span>="transaction[credit_card][expiration_date]"</span> class<span>="short"</span>></span><span><span></label</span>></span>
</span>					<span><span><span><input</span> type<span>="submit"</span> value<span>="submit payment"</span>></span>
</span>			    <span><span><span></form</span>></span>
</span>		    <span><span><span></div</span>></span>
</span>		<span><span><span></body</span>></span>
</span>	<span><span><span></html</span>></span></span>
Copier après la connexion
Copier après la connexion
Copier après la connexion

La seule autre chose que vous remarquerez, c'est que j'ai ajouté un attribut «assuré automatique» à mon formulaire et que je définis sa valeur sur OFF. Braintree recommande de faire cela, et j'espère que la raison est évidente…

Il y a quelques autres choses que nous devons faire pour exploiter la magie de la redirection transparente sur notre forme. Mais avant de le faire, nous devons configurer notre script pour travailler avec l'API de BrainTree.

Avant de vous dire comment faire cela, je vais simplement mentionner que, pour plus de clarté, j'ai mis tous les PHP et HTML dans le même fichier dans mon exemple de code. J'espère qu'il va sans dire que dans un projet de production, le code de configuration irait dans le fichier bootstrap de mon projet, et que le code de traitement de formulaire irait dans une action de contrôleur ou un autre fichier distinct. Ok, assez de s'excuser - allons installer cette chose!

<span><span><span><input</span> type<span>="text"</span> name<span>="transaction__credit_card__expiration_date"</span>></span></span>
Copier après la connexion
Copier après la connexion

La première ligne nous permet simplement de profiter de l'autoloader du compositeur et d'utiliser la bibliothèque de Braintree sans inclure explicitement de fichiers supplémentaires. J'espère que les quatre lignes suivantes semblent familières, car elles ont été copiées textuellement de l'outil de clé API du panneau de configuration du bac à sable que je vous ai présenté dans la section précédente. De toute évidence, vous remplacerez cela par le code de votre propre compte de panneau de configuration.

La prochaine chose que je veux faire est de définir l'action de formulaire afin que notre client envoie ses données sensibles directement à Braintree, ce qui est l'intérêt de l'utilisation de TR. Heureusement, la bibliothèque Braintree rend cela très facile en fournissant un objet / méthode d'assistance. Donc, modifiez simplement votre code de formulaire comme tel:

composer require braintree/braintree:*
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

La seule autre chose que nous devons faire est de créer une entrée cachée qui contient une représentation hachée de l'URL que vous souhaitez Braintree pour rediriger le client après avoir soumis le formulaire, ainsi que toutes les informations que vous ne souhaitez pas pour pouvoir spécifier. Par exemple, c'est là que vous pourriez mettre le montant de la transaction. Tout comme un style, j'aime définir l'URL de retour au formulaire de paiement lui-même afin que je puisse afficher les erreurs à l'utilisateur et leur donner la possibilité de soumettre à nouveau. C'est donc à quoi cela ressemblerait:

<span><span><!doctype html></span>
</span>	<span><span><span><html</span> lang<span>="en"</span>></span>
</span>		<span><span><span><body</span>></span>
</span>		    <span><span><span><div</span> id<span>="wrap"</span>></span>
</span>		        <span><span><span><form</span> method<span>="post"</span> action<span>=""</span> autocomplete<span>="off"</span>></span>
</span>		            <span><span><span><label</span>></span>Name on Card: <span><span><input</span> type<span>="text"</span> name<span>="transaction[credit_card][cardholder_name]"</span>></span><span><span></label</span>></span>
</span>					<span><span><span><label</span>></span>Card Number: <span><span><input</span> type<span>="text"</span> name<span>="transaction[credit_card][number]"</span>></span><span><span></label</span>></span>
</span>					<span><span><span><label</span>></span>CVV: <span><span><input</span> type<span>="text"</span> name<span>="transaction[credit_card][cvv]"</span> class<span>="short"</span>></span><span><span></label</span>></span>
</span>					<span><span><span><label</span>></span>Expiration Date (MM/YYYY): <span><span><input</span> type<span>="text"</span> name<span>="transaction[credit_card][expiration_date]"</span> class<span>="short"</span>></span><span><span></label</span>></span>
</span>					<span><span><span><input</span> type<span>="submit"</span> value<span>="submit payment"</span>></span>
</span>			    <span><span><span></form</span>></span>
</span>		    <span><span><span></div</span>></span>
</span>		<span><span><span></body</span>></span>
</span>	<span><span><span></html</span>></span></span>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Évidemment, je codant dur le montant ici, mais dans une application de production, vous généreriez cela en utilisant une logique côté serveur, ou dans le cas d'un formulaire de don avec un total non spécifié, vous créeriez un champ de formulaire et permettre à l'utilisateur d'en fournir un. Je définis également généralement l'option «Soumettre pour le règlement». Sinon, cette transaction sera simplement

Maintenant, j'ai juste besoin d'ajouter ceci comme un champ caché à ma forme comme ça:

<span><span><span><input</span> type<span>="text"</span> name<span>="transaction__credit_card__expiration_date"</span>></span></span>
Copier après la connexion
Copier après la connexion

Maintenant que nous sommes prêts à soumettre nos données à Braintree, nous devons ajouter du code pour traiter la réponse de redirection transparente réelle.

<span><span><?php 
</span></span><span>		<span>require('vendor/autoload.php');
</span></span><span>
</span><span>		<span>Braintree_Configuration<span>::</span>environment('sandbox');
</span></span><span>	    <span>Braintree_Configuration<span>::</span>merchantId('YOUR_MERCHANT_ID');
</span></span><span>	    <span>Braintree_Configuration<span>::</span>publicKey('YOUR_PUBLIC_KEY');
</span></span><span>		<span>Braintree_Configuration<span>::</span>privateKey('YOUR_PRIVATE_KEY');
</span></span><span>
</span><span>	<span>?></span></span>
Copier après la connexion

Maintenant, découvrons ce que nous venons de faire. Lorsque l'utilisateur appuie sur le bouton Soumettre, le formulaire publié directement sur Braintree et toutes les informations sensibles du client sont stockées en toute sécurité sur leurs serveurs conformes PCI CSS. Ensuite, une redirection HTTP 303 est envoyée au navigateur, qui envoie l'utilisateur à l'URL que vous avez spécifié lors de la génération de la variable $ tr_data, et ajoute plusieurs paramètres à la chaîne de requête de l'URL.

Lorsque les données sont soumises avec succès, l'un de ces paramètres sera HTTP_STATUS, et si tout fonctionne en douceur avec les serveurs de Braintree, il sera défini sur 200. De toute évidence, vous voudriez également gérer les codes de réponse non 200, non. Mais pour l'instant, nous nous assurons simplement d'exécuter le code à l'intérieur de cette déclaration si nous avons réussi à soumettre nos informations de paiement à leur système.

La prochaine chose qui se produit est que nous devons prendre la chaîne de requête de notre redirection transparente et la renvoyer à Braintree pour terminer la transaction. Nous exécutons donc une autre fonction de bibliothèque (BrainTree_TransparentRedirect :: Confirm) et lui fournissons notre chaîne de requête URL, afin de dire à Braintree d'aller de l'avant et de traiter notre paiement. Une fois que cela se produit, Braintree renvoie notre script un objet de résultat. En interne, cet objet peut être un cerveau de cervelle_result_error ou un cerveau_result_successful, mais les deux objets ont une propriété de réussite booléenne afin que vous puissiez voir si la transaction a réussi ou non.

Vous avez également probablement remarqué que j'ai enveloppé toute la confirmation dans un bloc d'essai / capture. Le seul inconvénient de l'utilisation de la même page pour afficher le formulaire et traiter les résultats est que vous ne pouvez confirmer une chaîne de requête TR qu'une seule fois. Cela signifie que si quelqu'un frappe le bouton de rechargement après une transaction échouée, votre code essaiera de reconfirmer une chaîne de requête expirée, et Braintree lancera une exception.

Maintenant que nous avons tout ce dont nous avons besoin, nous pouvons aller de l'avant et exécuter certaines transactions de test. La documentation complète sur l'utilisation du bac à sable peut être trouvée ici, mais si vous êtes vraiment excité et que vous souhaitez exécuter une transaction réussie immédiatement, allez-y et entrez votre nom dans le «nom sur carte», 41111111111111 (4 suivi de quinze) En tant que «numéro de carte», 123 dans la boîte CVV et toute date à l'avenir comme date d'expiration. Si tout se passe bien, vous devriez pouvoir retourner au bac à sable, cliquez sur «Transactions» sous «Recherche avancée», et après avoir cliqué sur le bouton «Rechercher», consultez votre première transaction réussie.

devenir fantaisie

La redirection transparente est un excellent moyen d'aider à minimiser votre charge de conformité PCI, mais il a quelques bizarreries auxquelles vous devrez vous habituer. Tout d'abord, si vous souhaitez inclure des données sur votre formulaire de paiement qui ne correspondent pas à l'une des transactions, clients ou objets de carte de crédit de Braintree, vous devez utiliser leur fonctionnalité «champ personnalisé». Disons que je voulais capturer la couleur préférée d'un utilisateur. La première chose que je ferais est de me diriger vers le panneau de configuration et de cliquer sur «Paramètres -> Traitement». Faites défiler jusqu'à la section «Fields personnalisés» et cliquez sur «Nouveau». Vous vous retrouverez sur l'écran suivant:

Redirection transparente avec Braintree

Le nom de l'API est ce que vous référerez dans l'attribut de nom de l'entrée du formulaire. Le nom d'affichage est pour votre référence, et vous pouvez spécifier si vous souhaitez stocker la valeur de votre champ personnalisé sur Braintree avec votre transaction, ou simplement la transmettre à votre serveur.

la collectionner est alors simplement une question d'ajouter le champ suivant à votre formulaire.

composer require braintree/braintree:*
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

Si vous essayez de le faire sans ajouter le champ personnalisé dans le panneau de configuration de Braintree, vous déclencheriez une erreur de validation.

En parlant de validation, TR peut compliquer la validation côté serveur de votre formulaire de paiement. Disons que je voulais exiger l'adresse e-mail de mon client. Je ne saurais pas que l'utilisateur l'avait laissé vide avant la confirmation de la transaction. La solution que j'ai trouvée est d'exécuter ma validation dans le bloc de réussite de mon script TR, puis d'annuler la transaction si mes validations ne passent pas. Cela allait donc modifier notre code comme ceci:

<span><span><!doctype html></span>
</span>	<span><span><span><html</span> lang<span>="en"</span>></span>
</span>		<span><span><span><body</span>></span>
</span>		    <span><span><span><div</span> id<span>="wrap"</span>></span>
</span>		        <span><span><span><form</span> method<span>="post"</span> action<span>=""</span> autocomplete<span>="off"</span>></span>
</span>		            <span><span><span><label</span>></span>Name on Card: <span><span><input</span> type<span>="text"</span> name<span>="transaction[credit_card][cardholder_name]"</span>></span><span><span></label</span>></span>
</span>					<span><span><span><label</span>></span>Card Number: <span><span><input</span> type<span>="text"</span> name<span>="transaction[credit_card][number]"</span>></span><span><span></label</span>></span>
</span>					<span><span><span><label</span>></span>CVV: <span><span><input</span> type<span>="text"</span> name<span>="transaction[credit_card][cvv]"</span> class<span>="short"</span>></span><span><span></label</span>></span>
</span>					<span><span><span><label</span>></span>Expiration Date (MM/YYYY): <span><span><input</span> type<span>="text"</span> name<span>="transaction[credit_card][expiration_date]"</span> class<span>="short"</span>></span><span><span></label</span>></span>
</span>					<span><span><span><input</span> type<span>="submit"</span> value<span>="submit payment"</span>></span>
</span>			    <span><span><span></form</span>></span>
</span>		    <span><span><span></div</span>></span>
</span>		<span><span><span></body</span>></span>
</span>	<span><span><span></html</span>></span></span>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Comme vous pouvez le voir, si mes validations locales ne réussissent pas, j'utilise la bibliothèque client pour annuler la transaction, en utilisant l'ID de transaction de mon objet BrainTree_Result_Success.

Enfin, dans notre exemple de base, je n'ai pas pris la peine de remplacer les champs de formulaire pour l'utilisateur, car tous nos domaines contiennent des données de carte de crédit sensibles que Braintree se cache de notre serveur. Mais maintenant que nous avons ajouté des données clients, je peux pré-remplir ces champs moins sensibles avec des données de l'objet de résultat Braintree. Vous pouvez voir le code complet dans mon échantillon GitHub, mais l'astuce pour comprendre ce qui se passe est de savoir que l'objet BrainTree_Result_Success stocke les données de formulaire soumises par l'utilisateur dans sa propriété de transaction, tandis que l'embarcation de BrainTree_Result_error le stocke dans une propriété Params. Ainsi, par exemple, la variable de prénom trouvée dans $ result-> transaction-> client ['FirstName'] lorsque la transaction a été réussie, tandis qu'une transaction échouée le stockerait dans $ result-> params ['transaction'] [' Client '] [' FirstName '].

Envelopper

La redirection transparente de Braintree est un moyen de minimiser l'exposition de votre application aux données des clients sensibles, réduisant ainsi votre charge de conformité PCI, et sa bibliothèque client PHP simplifie considérablement le processus d'intégration, mais il est plus difficile de collecter et de valider les non-non-non Informations liées au paiement sur le même formulaire que les informations de carte de crédit de votre client.

La prochaine fois, nous allons jeter un œil à leur autre solution intelligente: Braintree.js.

Les questions fréquemment posées sur les redirections transparentes

Quel est le principal objectif d'utiliser des redirections transparentes dans le traitement des paiements?

Les redirections transparentes sont utilisées dans le traitement des paiements pour améliorer la sécurité des transactions. Ils permettent aux données sensibles du client d'être envoyées directement à la passerelle de paiement, en contournant le serveur du marchand. Cela réduit le risque de violations de données et aide les commerçants à se conformer aux normes de sécurité des données de l'industrie des cartes de paiement (PCI DSS).

Comment une redirection transparente fonctionne-t-elle dans le contexte de l'optimisation du site Web?

sur le site Web L'optimisation, une redirection transparente peut aider à réduire le nombre de demandes HTTP, améliorant ainsi la vitesse de chargement du site. Lorsqu'un utilisateur visite une page Web, le serveur envoie une réponse HTTP avec un code d'état. Si le code d'état indique une redirection, le navigateur doit faire une demande HTTP supplémentaire, ce qui peut ralentir le temps de chargement. Une redirection transparente peut éliminer cette étape supplémentaire, ce qui rend le site Web plus rapide et plus efficace.

Quelle est la différence entre une redirection transparente et une redirection traditionnelle?

Une redirection traditionnelle implique le serveur du marchand dans Le processus de transaction, qui peut exposer les données des clients sensibles aux risques de sécurité potentiels. D'un autre côté, une redirection transparente contourne le serveur du marchand et envoie les données directement à la passerelle de paiement, améliorant la sécurité de la transaction.

Comment puis-je mettre en œuvre une redirection transparente sur mon site Web?

La mise en œuvre d'une redirection transparente nécessite des connaissances techniques. Vous devrez intégrer votre site Web à l'API de la passerelle de paiement. Cela implique la mise en place d'un formulaire sur votre site Web qui publie les informations de paiement du client directement sur la passerelle. La passerelle traite ensuite la transaction et renvoie une réponse à votre site Web.

Quels sont les avantages de l'utilisation d'une redirection transparente?

Les principaux avantages de l'utilisation d'une redirection transparente sont une sécurité améliorée et améliorée Performance du site Web. En contournant le serveur du marchand, une redirection transparente réduit le risque de violations de données. Cela aide également à améliorer la vitesse de chargement de votre site Web en réduisant le nombre de demandes HTTP.

Y a-t-il des inconvénients à l'utilisation d'une redirection transparente?

Un inconvénient potentiel de l'utilisation d'une redirection transparente est que Il peut être plus complexe à mettre en œuvre qu'une redirection traditionnelle. Cela nécessite une compréhension plus approfondie du développement Web et des API de la passerelle de paiement. Cependant, les avantages améliorés de sécurité et de performance l'emportent souvent sur ce défi.

Une redirection transparente est-elle compatible avec toutes les passerelles de paiement?

Toutes les passerelles de paiement ne prennent pas en charge les redirections transparentes. Il est important de vérifier auprès de votre fournisseur de passerelle de paiement pour voir s'ils offrent cette fonctionnalité. Certaines passerelles de paiement populaires qui prennent en charge les redirections transparentes incluent Braintree, BlueFin et PayPal.

Comment une redirection transparente affecte-t-elle l'expérience utilisateur?

Du point de vue d'un utilisateur, une redirection transparente est transparente. L'utilisateur entre simplement ses informations de paiement sur le site Web du marchand et clique sur «Soumettre». La redirection se produit en arrière-plan, de sorte que l'utilisateur ne remarque aucune différence par rapport à un processus de transaction traditionnel.

Une redirection transparente peut-elle aider à la conformité PCI?

Oui, une redirection transparente peut Aide à la conformité PCI. En envoyant les informations de paiement du client directement à la passerelle de paiement, une redirection transparente réduit la portée de la conformité PCI pour le marchand. Cela peut permettre aux commerçants de respecter plus facilement les normes de sécurité strictes fixées par l'industrie des cartes de paiement.

Que se passe-t-il si une redirection transparente échoue?

Si une redirection transparente échoue, la transaction ne sera pas être traité. La réponse exacte dépendra de l'API de la passerelle de paiement. Dans la plupart des cas, la passerelle renverra un message d'erreur sur le site Web du marchand, qui peut ensuite être affiché à l'utilisateur. Il est important de gérer ces erreurs gracieusement pour assurer une bonne expérience utilisateur.

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Grow A Garden - Guide de mutation complet
3 Il y a quelques semaines By DDD
<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1670
14
Tutoriel PHP
1276
29
Tutoriel C#
1256
24
Expliquez le hachage de mot de passe sécurisé dans PHP (par exemple, Password_Hash, Password_verify). Pourquoi ne pas utiliser MD5 ou SHA1? Expliquez le hachage de mot de passe sécurisé dans PHP (par exemple, Password_Hash, Password_verify). Pourquoi ne pas utiliser MD5 ou SHA1? Apr 17, 2025 am 12:06 AM

Dans PHP, Password_Hash et Password_verify Les fonctions doivent être utilisées pour implémenter le hachage de mot de passe sécurisé, et MD5 ou SHA1 ne doit pas être utilisé. 1) Password_hash génère un hachage contenant des valeurs de sel pour améliorer la sécurité. 2) Password_verify Vérifiez le mot de passe et assurez-vous la sécurité en comparant les valeurs de hachage. 3) MD5 et SHA1 sont vulnérables et manquent de valeurs de sel, et ne conviennent pas à la sécurité de mot de passe moderne.

PHP et Python: comparaison de deux langages de programmation populaires PHP et Python: comparaison de deux langages de programmation populaires Apr 14, 2025 am 12:13 AM

PHP et Python ont chacun leurs propres avantages et choisissent en fonction des exigences du projet. 1.Php convient au développement Web, en particulier pour le développement rapide et la maintenance des sites Web. 2. Python convient à la science des données, à l'apprentissage automatique et à l'intelligence artificielle, avec syntaxe concise et adaptée aux débutants.

PHP en action: Exemples et applications du monde réel PHP en action: Exemples et applications du monde réel Apr 14, 2025 am 12:19 AM

PHP est largement utilisé dans le commerce électronique, les systèmes de gestion de contenu et le développement d'API. 1) E-commerce: Utilisé pour la fonction de panier et le traitement des paiements. 2) Système de gestion du contenu: utilisé pour la génération de contenu dynamique et la gestion des utilisateurs. 3) Développement des API: Utilisé pour le développement de l'API RESTful et la sécurité de l'API. Grâce à l'optimisation des performances et aux meilleures pratiques, l'efficacité et la maintenabilité des applications PHP sont améliorées.

Comment fonctionne la résistance au type PHP, y compris les types scalaires, les types de retour, les types d'union et les types nullables? Comment fonctionne la résistance au type PHP, y compris les types scalaires, les types de retour, les types d'union et les types nullables? Apr 17, 2025 am 12:25 AM

Le type PHP invite à améliorer la qualité et la lisibilité du code. 1) Conseils de type scalaire: Depuis PHP7.0, les types de données de base sont autorisés à être spécifiés dans les paramètres de fonction, tels que INT, Float, etc. 2) Invite de type de retour: Assurez la cohérence du type de valeur de retour de fonction. 3) Invite de type d'union: Depuis PHP8.0, plusieurs types peuvent être spécifiés dans les paramètres de fonction ou les valeurs de retour. 4) Invite de type nullable: permet d'inclure des valeurs nulles et de gérer les fonctions qui peuvent renvoyer les valeurs nulles.

La pertinence durable de PHP: est-elle toujours vivante? La pertinence durable de PHP: est-elle toujours vivante? Apr 14, 2025 am 12:12 AM

PHP est toujours dynamique et occupe toujours une position importante dans le domaine de la programmation moderne. 1) La simplicité de PHP et le soutien communautaire puissant le rendent largement utilisé dans le développement Web; 2) sa flexibilité et sa stabilité le rendent exceptionnelle dans la gestion des formulaires Web, des opérations de base de données et du traitement de fichiers; 3) PHP évolue et optimise constamment, adapté aux débutants et aux développeurs expérimentés.

PHP et Python: différents paradigmes expliqués PHP et Python: différents paradigmes expliqués Apr 18, 2025 am 12:26 AM

PHP est principalement la programmation procédurale, mais prend également en charge la programmation orientée objet (POO); Python prend en charge une variété de paradigmes, y compris la POO, la programmation fonctionnelle et procédurale. PHP convient au développement Web, et Python convient à une variété d'applications telles que l'analyse des données et l'apprentissage automatique.

Comment empêchez-vous l'injection SQL en PHP? (Déclarations préparées, APD) Comment empêchez-vous l'injection SQL en PHP? (Déclarations préparées, APD) Apr 15, 2025 am 12:15 AM

L'utilisation de déclarations de prétraitement et l'APD dans PHP peut effectivement empêcher les attaques d'injection SQL. 1) Utilisez PDO pour vous connecter à la base de données et définir le mode d'erreur. 2) Créez des instructions de prétraitement via la méthode de préparation et transmettez des données à l'aide des espaces réservés et exécutez des méthodes. 3) Traitez les résultats de la requête et assurez la sécurité et les performances du code.

PHP et Python: exemples de code et comparaison PHP et Python: exemples de code et comparaison Apr 15, 2025 am 12:07 AM

PHP et Python ont leurs propres avantages et inconvénients, et le choix dépend des besoins du projet et des préférences personnelles. 1.Php convient au développement rapide et à la maintenance des applications Web à grande échelle. 2. Python domine le domaine de la science des données et de l'apprentissage automatique.

See all articles