L'intégration de PayPal avec iframe panier
Nous utilisons PayPal paiement Pro de l'API NVP pour fournir une carte de crédit et de traitement de paypal sur notre site. Nous avons créé une iframe widget panier à nos clients de mettre sur leur site afin que leurs utilisateurs peuvent acheter des articles et de les payer via notre compte Paypal.
Tandis que les transactions par carte de crédit, beau travail, nous assistons à des problèmes lorsqu'un utilisateur essaie de payer avec leur compte PayPal. L'API utilise une redirection en cliquant sur le logo PayPal mais alors PayPal code semble fonctionner un framebusting script et que la transaction ne peut pas continuer.
Je suis à la recherche de suggestions ou un exemple de code pour savoir comment gérer les utilisateurs qui souhaitent PayPal pour leur paiement via l'iframe. Une option est de faire apparaître une nouvelle fenêtre, mais alors il laisse de la conception ouverte de questions car l'utilisateur peut basculer entre la fenêtre et la fenêtre contenant l'iframe et théoriquement obtenir la commande de synchronisation avec ce que l'PayPal fenêtre affiche.
OriginalL'auteur SteveL | 2011-09-03
Vous devez vous connecter pour publier un commentaire.
Les deux réponses ci-dessus sont correctes. Cependant, PayPal support technique fourni un ensemble plus complet d'instructions que j'ai fournis ci-dessous. Espérons qu'ils vont aider quelqu'un d'autre.
Modifier votre SetExpressCheckout appels afin que le RETURNURL et CANCELURL paramètres point d'une déclaration spéciale à la page qui va gérer la fermeture de la fenêtre pop-up pour vous et la poursuite de la normale du processus de commande (plus sur cela plus tard).
Ensuite, modifiez le script qui redirige l'acheteur sur le site web de PayPal. Normalement, ce script doit retourner une “302 Found” (ou similaire) en réponse au navigateur, qui dit au navigateur qu'il doit suivre une redirection vers une autre page. (En PHP, ceci est habituellement réalisé avec la “tête” de la fonction – par exemple,
header(“Location: https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=$token”);
.) Au lieu de cela, ce script doit émettre le code HTML suivant/code JavaScript (en remplacement de “JETON” avec le jeton que vous avez reçu de PayPal). Cela va ouvrir une fenêtre pop-up où l'acheteur peut poursuivre le processus de paiement sur PayPal. Vous pouvez insérer du texte supplémentaire, que vous le souhaitez, pour indiquer à l'acheteur qu'ils devraient être à l'aide de la fenêtre pop-up de terminer leur commande. Pour éviter les problèmes avec les bloqueurs de pop-up, vous pouvez créer un lien ou un bouton sur votre page, en indiquant à l'acheteur qu'ils doivent cliquer sur le lien/bouton pour continuer, et utilisez ce code pour l'objet “onClick” gestionnaire.<script type="text/javascript">
window.open("https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=TOKEN","_blank","width=1024,height=768,location=1,resizable=1,scrollbars=1,status=1",true);
</script>
Maintenant, créez une nouvelle page qui exécute le code suivant (ou similaire – ce code est basé sur PHP, de faire les ajustements nécessaires pour la langue que vous utilisez). Ce code permet de fermer la fenêtre pop-up et continuer le processus de commande dans votre iframe. Le RETURNURL paramètre de votre SetExpressCheckout appel doit pointer vers cette page. Remplacer “paypalreturn.php” avec le script que vous utilisez actuellement pour gérer les acheteurs revenir à votre panier d'achat PayPal.
Enfin, répétez cette étape pour votre CANCELURL gestionnaire.
• L'achat se termine à l'intérieur de l'iframe, et l'ID de transaction pour l'achat est indiqué.
OriginalL'auteur SteveL
PayPal Express Checkout /"Payer avec PayPal" dans Pro Hébergées ne supporte pas les iframes pour des raisons de sécurité. L'ouverture d'une fenêtre pop-up (ou paramètre target=_parent) est la seule façon pour les traiter correctement.
OriginalL'auteur Robert
Définir votre forme cible à - target="_top"
OriginalL'auteur onepiece