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

Платежи не проходят #28

Closed chepil closed 5 years ago

chepil commented 5 years ago

Прошу связаться со мной по вопросам прохождения платежей на mSDK 2.0.0

oltv00 commented 5 years ago

Хотелось бы увидеть больше подробностей, в чем проблема?

chepil commented 5 years ago

Олег, общался сегодня с тех.поддержкой. Внятно не отвечают. При переходе с mSDK 1.3.7 на 2.0.0 на запрос платежа приходит ответ canceled Конкретно, Сергей Лабаев с саппорта не может весь день ответить внятно, почему платежи не проходят Лог запросов:

----------------1----------------

Запрос 29 янв. 2019 22:06

idempotence-key: b41d8863-2895-4ce7-b259-238d405cf717 content-type: application/json user-agent: python-requests/2.21.0 { "amount": { "currency": "RUB", "value": 75 }, "confirmation": { "type": "redirect", "return_url": "https://?????.com/payment/return" }, "payment_token": "pt-23e2b807-0000-50c4-9000-09c76393ef2e" } Ответ { "id": "23e2b808-000f-5000-8000-1e0e5c44f120", "status": "canceled", "paid": false, "amount": { "value": "75.00", "currency": "RUB" }, "created_at": "2019-01-29T19:06:48.402Z", "metadata": {}, "payment_method": { "type": "bank_card", "id": "23e2b808-000f-5000-8000-1e0e5c44f120", "saved": false }, "recipient": { "account_id": "?????", "gateway_id": "446426" }, "test": false, "cancellation_details": { "party": "payment_network", "reason": "general_decline" } }

----------------2---------------- Запрос 29 янв. 2019 22:08 idempotence-key: 207be643-5b3a-41b8-aaec-f5fd39b7eb11 content-type: application/json user-agent: python-requests/2.21.0 { "amount": { "currency": "RUB", "value": 75 }, "confirmation": { "type": "redirect", "return_url": "https://?????.com/payment/return" }, "payment_token": "pt-23e2b87f-0000-50c4-9000-0b1a423a8bd2" }

Ответ { "id": "23e2b880-000f-5000-8000-14d758c1f7db", "status": "canceled", "paid": false, "amount": { "value": "75.00", "currency": "RUB" }, "created_at": "2019-01-29T19:08:48.668Z", "metadata": {}, "payment_method": { "type": "bank_card", "id": "23e2b880-000f-5000-8000-14d758c1f7db", "saved": false }, "recipient": { "account_id": "?????", "gateway_id": "446426" }, "test": false, "cancellation_details": { "party": "payment_network", "reason": "general_decline" } }

----------------3---------------- Запрос 29 января 2019 г., 22:15 idempotence-key: fde4e0d9-6bbf-4442-a3d3-02059b67cd8f content-type: application/json user-agent: python-requests/2.21.0 { "amount": { "currency": "RUB", "value": 75 }, "confirmation": { "type": "redirect", "return_url": "https://?????.com/payment/return" }, "payment_token": "pt-23e2b9ff-0000-50c4-9000-064b6bd7e5bc" }

Ответ { "id": "23e2ba00-000f-5000-a000-1a8162e36a91", "status": "canceled", "paid": false, "amount": { "value": "75.00", "currency": "RUB" }, "created_at": "2019-01-29T19:15:12.650Z", "metadata": {}, "payment_method": { "type": "bank_card", "id": "23e2ba00-000f-5000-a000-1a8162e36a91", "saved": false }, "recipient": { "account_id": "?????", "gateway_id": "446426" }, "test": false, "cancellation_details": { "party": "payment_network", "reason": "general_decline" } }

oltv00 commented 5 years ago

Сейчас разберемся.

chepil commented 5 years ago

Олег, забыл добавить, с mSDK 1.3.7 на эту же карту платежи проходят, и до и после этих запросов. А с mSDK 2.0.0 нет. Карта 5725. Спасибо большое!

oltv00 commented 5 years ago

Проблему локализовали. В ближайшее время (сегодня) выпустим фикс.

chepil commented 5 years ago

Олег! Спасибо огромное!

oltv00 commented 5 years ago

Фикс в https://github.com/yandex-money/yandex-checkout-payments-swift/releases/tag/2.0.1

chepil commented 5 years ago

Олег, большое спасибо за фикс!

3D secure успешно отработало, но перенаправление не работает Прикладываю картинку, на которой все зависает.

В логах в этот момент

2019-01-30 19:32:07.923378+0300 cinema[15034:4519028] TIC TCP Conn Failed [51:0x600005bc0b40]: 12:8 Err(-65554) 2019-01-30 19:32:07.925464+0300 cinema[15034:4516291] Task .<0> HTTP load failed (error code: -1003 [12:8]) 2019-01-30 19:32:07.925753+0300 cinema[15034:4519028] NSURLConnection finished with error - code -1003

Также, если нажать на "ссылку", что в сообщении на экране, то тоже эта ошибка.

Платеж был с токеном pt-23e3e4fe-0000-50c4-9000-06c9f7efd213 Платеж успешный.

Я сейчас включу дебаг и проверю что там внутри. Отпишусь подробней.

simulator screen shot - iphone xr - 2019-01-30 at 19 31 54

chepil commented 5 years ago

Я не уверен, но, похоже что проблема опять в CardSecInteractor

в функции func shouldProcessRequest(_ request: URLRequest) -> Bool { let path = request.url?.absoluteString ?? "" let availableRedirects = redirectPaths.filter { path.hasPrefix($0) == true } return availableRedirects.isEmpty == false }

Мне кажется, что должно чтото происходить... однако:

Printing description of path: "https://custom.redirect.url/?checksum=c14b6fb958c07979471e7c2f7aa3a835cdaca8e9&code=200&merchant_order_id=4398107036106&message=Success&order_id=4c2a705d3be1f58542fe8e562c4a5d5a&status=success"

Printing description of availableRedirects: 0 elements

Printing description of availableRedirects.isEmpty true

И на выходе функции имеем false....

мне кажется, что это не верно...

Да, забыл указать, redirectPaths имеет корректное значение (наш урл обратный ) Printing description of redirectPaths 1 element

Аналогичная проблема обсуждалась вот тут - https://github.com/yandex-money/yandex-checkout-payments-swift/issues/26

oltv00 commented 5 years ago

@chepil

Попробуйте вызывать метод func start3dsProcess(requestUrl:) вместо func start3dsProcess(requestUrl:, redirectUrl:)

redirectUrl теперь можно не использовать.

chepil commented 5 years ago

Олег, спасибо! После этого изменения все заработало так, как нужно.