Braintree, возвращающий 91569 paymentMethodNonce, не содержит действительного типа платежного средства для ApplePay. Почему?

Недавно я перенес свой сервер и все его файлы на новую машину. В процессе что-то изменилось в моей настройке, и у меня возникли проблемы с оплатой 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:.


person Ethan Allen    schedule 25.08.2016    source источник
comment
Пожалуйста, закрой. Маловероятно, что вопрос будет актуален для других, поскольку проблема была на стороне Брейнтри.   -  person Ethan Allen    schedule 26.08.2016
comment
Спасибо за публикацию. Я знаю, что это было давно, но сейчас у нас та же проблема. Мы отладили все, что могли придумать, и думаем, что это может происходить с нами... Можете ли вы поделиться каким-либо пониманием того, каково было решение или что Braintree пришлось сделать, чтобы исправить?   -  person turing_machine    schedule 11.03.2018
comment
Свяжитесь с Брейнтри. Это была проблема с их стороны для моей конкретной ситуации.   -  person Ethan Allen    schedule 14.03.2018


Ответы (1)


Полное раскрытие информации: я работаю в Braintree. Если у вас есть дополнительные вопросы, обращайтесь в поддержку.

У вас настроена среда песочницы? Если это так, и если ваша песочница имеет ту же проблему, вы можете попробовать обойти свой сервер для выполнения транзакций с fake-apple-pay-visa-nonce, а не одноразовый номер, который вы получаете от своего клиента, чтобы помочь изолировать проблему от взаимодействия клиент-сервер, а не от взаимодействия сервер-Braintree .

Возможно, также стоит выяснить, совпадает ли одноразовый номер, который ваш клиент получает от Braintree, с одноразовым номером, который ваш сервер получает от вашего клиента. Если ваш сервер получает одноразовый номер nil или по умолчанию, это может объяснить ошибку недопустимого одноразового номера.

Наконец, дважды проверьте, что Apple Pay все еще включен в вашем шлюзе. Существует процесс сертификации, связанный с функциональностью точки доступа, который может быть прерван или не прерван миграцией сервера.

Поскольку это проблема в рабочей среде, я настоятельно рекомендую обратиться в поддержку Braintree независимо от результатов устранения неполадок.

person jellenberger    schedule 25.08.2016
comment
nonce не равен нулю на сервере и показывает, что ему передает клиент. Только что проверил ПОСТ. Apple Pay по-прежнему включен в шлюзе. Сейчас я провожу тестирование в песочнице и поддельный Apple-Pay-Visa-Nonce и опубликую еще один комментарий с тем, что найду. Я написал в поддержку по электронной почте, но еще не слышал от них. - person Ethan Allen; 25.08.2016
comment
Песочница прекрасно работает, используя обычный одноразовый номер с фиктивной кредитной картой Apple Pay. Вернулся к производству и снова получил ошибку с моей личной кредитной картой в моем Apple Wallet. - person Ethan Allen; 25.08.2016
comment
Все, что я переключаю, это environment, merchantId, publicKey и privateKey на стороне PHP и clientToken и merchantIdentifier на стороне iOS между производством/песочницей. Песочница работает, продакшен нет. - person Ethan Allen; 25.08.2016
comment
Вернулся к той же версии PHP и платежному каталогу файлов, что и мой исходный сервер, но все та же проблема. - person Ethan Allen; 25.08.2016
comment
Обратитесь в службу поддержки, проблема была на вашей стороне, сейчас исправлено. - person Ethan Allen; 26.08.2016