2017-07-27 2 views
0

serveur: Windows Server 2012 Cold Fusion: 9,0,1,274733 Mise à jour niveau: hf901-00011.jar Fonctionnant sur la version java: 1.7. 0_79 La maison de Java pointe vers le bon chemin.ColdFusion9: Impossible de se connecter à PayPal Sandbox (NVP classique)

Tous les certificats (pour live et sandbox) sont importés dans le magasin de clés de ce JDK 1.7.0_79. Je l'ai testé et renommer le fichier cacerts entraîne une erreur lors de la connexion à l'API live.

Le test du fichier cacerts à l'aide de l'outil keytool indique que les certificats appropriés sont correctement importés.

Une petite application de commande fournit le paiement en utilisant PayPal.

La première étape est une connexion à PayPal en utilisant la méthode "setExpressCheckout". La connexion à l'API active à l'aide de NVP à l'adresse URL https://api-3t.paypal.com/nvp fonctionne et transmet la chaîne d'URL de jeton. La connexion à l'API Sandbox à l'aide NVP à l'adresse https://api-3t.sandbox.paypal.com/nvp échoue avec la réponse d'erreur:

I/O Exception: peer not authenticated 
Connection Failure 
Unable to determine MIME type of file. 
Connection Failure. Status code unavailable. 

Appeler l'URL https://api-3t.sandbox.paypal.com/nvp des travaux du serveur.

Essai 1

  • importé le certificat de bac à sable pour api-3t.sandbox.paypal.com
  • restart test de connexion de service CF
  • a échoué avec la même erreur

Test 2

  • rebaptisés le fichier cacerts à cacerts.bak
  • copié le fichier cacerts de jre1.8.0_31 \ lib \ security au 1.7.0_79 \ lib \ security
  • il n'y a pas cert PayPal spécifique dans le fichier cacerts
  • redémarrer le service CF
  • connexion vivre API fonctionne
  • connexion
  • à api sandbox échoue avec la même erreur

la chose étrange est que le c La connexion à l'API en direct fonctionne sans importer le certificat spécifique dans le fichier de clés lors de l'utilisation du fichier cacerts 1.8xx.

Je n'arrive pas à comprendre pourquoi la connexion au bac à sable échoue. Peut-être que je peux obtenir de nouveaux indices ici? S'il y a plus d'informations nécessaires s'il vous plaît faites le moi savoir. Merci d'avance.

+0

J'ai reçu des notifications de PayPal qu'ils vont désactiver les chiffrements TLS 1.1 et plus anciens (le 01/09/2017 je pense). Peut-être que le sandbox a déjà désactivé les anciens chiffrements et que le JRE que vous utilisez échoue car il n'utilise pas TLS 1.2. Cet article peut avoir de meilleures infos: https://superuser.com/questions/747377/enable-tls-1-1-and-1-2-for-clients-on-java-7 –

+0

@Scott merci. J'étudie maintenant la session sortante en utilisant -Djavax.net.debug = tous dans les arguments de démarrage de la JVM. Peut-être que votre réponse me mène dans une meilleure direction. –

+0

Notez également que la méthode d'intégration NVP/SOAP de Paypal Express Checkout est obsolète à compter du 1er janvier 2017, ce qui pourrait expliquer pourquoi le sandbox ne fonctionne plus (j'utilise TLS 1.2 et ne peux toujours pas me connecter) –

Répondre

1

Problème résolu! Scott Jibben (voir son commentaire ci-dessus) a mentionné que le sandbox PayPal peut déjà décliner les connexions TLS1 afin d'effectuer le changement à venir dans l'API live de PayPal. Tout à fait raison. Mais alors que dans CF11 ce n'est pas un problème car CF11 et son JRE utilisent déjà TLSv1.2, CF8-10 utilisent le protocole par défaut de leur JRE. Sinon, on peut forcer CF à utiliser TLSv1.2 avec l'argument JVM

-Dhttps.protocols=TLSv1.2 

court:

CF8-10 utilisent TLSv1 en cours d'exécution avec JDK1.70_79 et au-dessous, peu importe ce que le L'argument de démarrage de la machine virtuelle Java -Dhttps.protocols a été défini sur. Ceci est dû au fait que le protocole par défaut de ces versions Java est TLSv1 et CF8-10 ignorent simplement l'argument de démarrage JVM -Dhttps.protocols et utilisent toujours le protocole par défaut du JDK. Cela a changé avec CF11 donc il fonctionne très bien avec elle.

informations détaillées Lire un poste de Wil Genovese à: https://www.trunkful.com/index.cfm/2014/12/8/Preventing-SSLv3-Fallback-in-ColdFusion

Ce que je ne

J'ai installé le JDK1.8.0_144 et mis en place Cold Fusion 9 d'utiliser celui-ci. Depuis, la connexion à l'API sandbox PayPal sur api-3t.sandbox.paypal.com fonctionne plutôt bien.

Espérons que cela puisse aider les autres avec ce CF9 vieux et maintenant un peu étrange.