Недавно я перенес свой сервер и все его файлы на новую машину. В процессе что-то изменилось в моей настройке, и у меня возникли проблемы с оплатой Braintree.
У меня есть клиент iOS, который принимает PayPal, кредитные карты и ApplePay и при необходимости подключается к моему серверу через PHP. Он работал отлично до миграции сервера. Теперь PayPal и кредитная карта все еще нормально работают в производстве, но ApplePay больше не работает.
Когда я передаю одноразовый номер в файл payment.php с помощью payment_method_nonce= при использовании ApplePay, я получаю следующую ошибку:
[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.
)
Я точно знаю, что проблема не в коде iOS, потому что он уже давно работает и работает нормально. Я использую действующую настоящую кредитную карту в Apple Wallet на обычном серийном устройстве iPhone. Я заметил, что с момента миграции сервера я получил нулевые продажи ApplePay из-за этой проблемы.
Эта ошибка начала происходить, когда я перенес сервер, поэтому должна быть какая-то ошибка конфигурации на стороне PHP. Я выполнил установку с помощью composer.phar и просто скопировал свою страницу Payments.php с моего другого сервера, так что никаких изменений я не могу сказать.
Идеи? Почему одноразовый номер платежа ApplePay не может «не содержать действительный тип платежного инструмента»? Очевидно, что любая транзакция ApplePay будет включать действительный тип платежа (например, Visa)... так что же происходит?
Единственным существенным изменением между двумя серверами было то, что старый был на PHP 5.4, а новый — на 5.6. У меня также есть все веб-файлы (включая платежи.php) на диске D:, а не на диске C:.