2016-08-25 1 views
0

J'ai récemment migré mon serveur et tous ses fichiers vers une nouvelle machine. Dans le processus, quelque chose a changé avec ma configuration et j'ai quelques problèmes de paiement avec Braintree.Braintree retournant "91569 paymentMethodNonce ne contient pas un type d'instrument de paiement valide" pour ApplePay - Pourquoi?

J'ai un client iOS qui accepte PayPal, carte de crédit et ApplePay et se connecte à mon serveur via PHP au besoin. Cela fonctionne parfaitement bien avant de server la migration. Maintenant, PayPal et la carte de crédit fonctionne toujours bien dans la production, mais ApplePay ne fonctionne plus.

Quand je passe un nonce à la payments.php avec payment_method_nonce = lors de l'utilisation ApplePay, j'obtiens l'erreur suivante retourné:

[0] => Braintree\Error\Validation Object 
     (
      [_attribute:Braintree\Error\Validation:private] => paymentMethodNonce 
      [_code:Braintree\Error\Validation:private] => 91569 
      [_message:Braintree\Error\Validation:private] => paymentMethodNonce does not contain a valid payment instrument type. 
     ) 

Je sais pertinemment la question n'est pas dans l'iOS code, car il a été en direct depuis un certain temps maintenant et a fonctionné très bien. J'utilise une carte de crédit réelle valide dans Apple Wallet sur un appareil iPhone de production normale. J'ai remarqué depuis la migration du serveur que j'ai eu zéro ventes ApplePay à cause de ce problème.

Cette erreur a commencé à se produire lorsque j'ai migré le serveur et donc il doit y avoir une erreur de configuration du côté PHP d'une manière ou d'une autre. J'ai fait l'installation avec composer.phar et juste copié sur ma page payments.php de mon autre serveur, donc il n'y a aucun changement à tout ce que je peux dire.

Des idées? Pourquoi un paiement non ApplePay "ne contient-il pas un type d'instrument de paiement valide"? Évidemment toute transaction ApplePay inclurait un type de paiement valide (tel que Visa) ... alors que se passe-t-il?

Le changement majeur entre les deux serveurs était l'ancien était sur PHP 5.4 et le nouveau est sur 5.6. J'ai aussi tous les fichiers web (y compris payments.php) sur un lecteur D: plutôt que sur un lecteur C: maintenant.

+0

Veuillez fermer. Question est très peu susceptible d'être pertinent pour les autres que la question était du côté de Braintree. –

+0

Merci d'avoir posté un message. Je sais que c'était il y a longtemps, mais nous avons le même problème maintenant. Nous avons débogué tout ce que nous pouvons penser, et pense que cela pourrait nous arriver ... pouvez-vous partager un aperçu de ce que la résolution était, ou ce que Braintree avait à faire pour réparer? –

Répondre

0

Description complète: Je travaille chez Braintree. Si vous avez d'autres questions, n'hésitez pas à contacter support.

Avez-vous configuré un environnement de bac à sable? Si oui, et si votre sandbox a le même problème, vous pouvez essayer de court-circuiter votre serveur pour exécuter des transactions sur un fake-apple-pay-visa-nonce plutôt que sur le nonce que vous recevez de votre client pour isoler le problème de l'interaction client-serveur plutôt que le serveur-Braintree interaction. Il peut également être utile d'examiner si le nonce que votre client reçoit de Braintree est le même que celui que votre serveur reçoit de votre client - si votre serveur reçoit un nil ou un nonce par défaut, cela peut expliquer une erreur nonce invalide.

Enfin, vérifiez que Apple Pay est toujours enabled in your gateway. Il existe un processus de certification associé à la fonctionnalité AP, qu'une migration de serveur peut ou ne peut pas interrompre.

Comme il s'agit d'un problème en production, je vous recommande vivement de contacter Braintree support, quel que soit le résultat de votre dépannage.

+0

nonce n'est pas nul sur le serveur et montre ce que le client lui passe.Juste vérifié le POST. Apple Pay toujours activé dans la passerelle. Je fais le test de Sandbox et fake-apple-pay-visa-nonce maintenant et posterai un autre commentaire avec ce que je trouve. J'ai envoyé un e-mail mais je n'ai pas encore reçu de nouvelles. –

+0

Sandbox fonctionne très bien en utilisant un nonce généré normalement avec une carte de crédit Apple Pay factice. Redémarré à la production et j'ai retrouvé l'erreur avec ma carte de crédit personnelle dans mon Apple Wallet. –

+0

Tout ce que je suis en train de changer est le 'environnement',' merchantId', 'publicKey', et' privateKey' du côté PHP et 'clientToken' et' merchantIdentifier' du côté iOS entre production/sandbox. Sandbox fonctionne, la production ne fonctionne pas. –