yoomoney / yookassa-payments-swift

This library allows implementing payment acceptance into mobile apps on iOS and works as an extension to the YooMoney API
https://yookassa.ru/developers
MIT License
41 stars 41 forks source link

Не работает Apple Pay в версии 2.0.6 #36

Closed mashintsev closed 5 years ago

mashintsev commented 5 years ago

При токенизации сервер кассы выдает ошибку:

response: {

    status: "400 (bad request)",

    headers: {

      Keep-Alive: "timeout=10000, max=100",

      Transfer-Encoding: "Identity",

      Connection: "close",

      Date: "Fri, 14 Jun 2019 15:57:23 GMT",

      Content-Type: "application/json;charset=UTF-8"

    },

    body: "{

  "type" : "error",

  "id" : "3e266462-9c62-49ad-a5cd-69944c5badbd",

  "code" : "invalid_request",

  "description" : "Illegal payment data",

  "parameter" : "payment_method_data.payment_data"

}

При этом сам токен в payment_data выглядит нормально.

oltv00 commented 5 years ago

На симуляторе или девайсе тестируете?

mashintsev commented 5 years ago

На девайсе. вот часть paymnet data

{"value":"69","currency":"RUB"},"payment_method_data":{"type":"apple_pay","payment_data":"eyJ2ZXJzaW9uIjoiRUNfdjEiLCJkYXRhIjoiN0pZQzFoS3ZQYlo4VDNId2NQcTV2TFI5NW1HT21LQ0F1VHh6T2NFSERnR0VJeDdYOXUwSkJZeGt0Tk5GY3Q3VVRPVFlPT1g1bWNCaGVCNHRWZEVFTXZnTnEzaE1BNWxTcFhlcGYzRDNpY3BYNHNDbVlCUDVYYnFwUnFvclV6Z25XK0VjdUFUblBMcm1jWjBodDFEYzJ1MENlR0hQY0N4WlZYT3NEbDJma2Y0NVNiSnoxaFg4bllsZW9UdmZiNzZCY0MyRzBDVmFrbmQyNVYySGJQMDhYd1F3ZTJJeGJaeXJUdGRqMk1RK3ZUbDJZNmhGbU4yMWgrVDBnRHV2TXNTcHM4NXVMS1Q4cGl2M0psM05vZU5lcVVCNURZdDBzUnE3MVRjbmY4dytvWE5TS1dKZFRTcnVGZ2lLd2V5bHhKK1BSYU9zcENyZ0NQOHl4RkZEdDA3MXgxM1ZIeTMxQm9JT21QaWFjVkxBVk9kMTlQcVpRR09aWEdBMVN3RldXTGZ1YWdtMzBkMlF3OE9PWkRTMmlnPT0iLCJzaWduYXR1cmUiOiJNSUFHQ1NxR1NJYjNEUUVIQXFDQU1JQUNBUUV4RHpBTkJnbGdoa2dCWlFNRUFnRUZBRENBQmdrcWhraUc5dzBCQndFQUFLQ0FNSUlENHpDQ0E0aWdBd0lCQWdJSVREQkJTVkdkVkR

oltv00 commented 5 years ago

@mashintsev А можете дату и время запроса прислать? Посмотрим по логам.

mashintsev commented 5 years ago

2019-06-14 15:57:23 +0000: {

request: {

url: "https://payment.yandex.net/frontend-api/v3/tokens",

method: "POST",

headers: {

  Content-Type: "application/json",

  Authorization: "**************************************************************************"

},

body: {

  {"tmx_session_id":"ebc83e2b2e934933bb42ccc20814e1d3"
mashintsev commented 5 years ago

Возможно ошибка в библиотеке для сериализации в mSDK. Так как json который формируется до отправки валидный. А то что фиксирует логгер при отправке к вам, уже не валидно - в конце тела json появляются лишнии кавычки или знаки == удаляются.

Например, для этого запроса 2019-06-20 16:15:43 +0000: "tmx_session_id":"730b3b579fc34d43b76567047dee74ae" конец json в теле запроса В логгере:

0OTA2YSJ9fQ: ""}}"

Как должно быть:

0OTA2YSJ9fQ=="}}

Мы проверили, что сериализация отрабатывает корректно и формируется правильный json. Но при передачи на сервер почему то json изменяется.

oltv00 commented 5 years ago

@mashintsev То что выводится неверный json, кажется проблема где то в логгере. Проблема самой ошибки скрыта где то в настройках магазина и нашем backend.

Я перешлю информацию нашим бэкенд разработчикам, попробую у них узнать более детально что может быть не так.