Skip to content

Не получается подключить YandexPay #251

Open
danmov26 opened this issue Apr 28, 2023 · 15 comments
Open

Не получается подключить YandexPay #251

danmov26 opened this issue Apr 28, 2023 · 15 comments

Comments

@danmov26
Copy link

danmov26 commented Apr 28, 2023

Добрый день. Не получается внедрить YandexPay в Тинькофф Эквайринг. Делаю всё по инструкции здесь - https://github.com/tinkoff-mobile-tech/AcquiringSdkAndroid#yandex-pay

Ниже смотрите скриншот. То, что обвёл в зелёной рамке - Client Id.

Снимок экрана 2023-04-28 212011

Его скопировал и вставил в build.gradle.kts (mobile):

Снимок экрана 2023-04-28 212226

Далее, в активности:

Снимок экрана 2023-04-28 212338

И вот здесь terminalInfo.paymethods возвращает только SBP, нету здесь YandexPay (кстати, TinkoffPay кнопка у меня появилась в форме оплаты, но paymethods не содержит TinkoffPay почему-то).
Из-за этого terminalInfo.mapYandexPayData() равен null, и я не могу дальше вызвать createYandexPayButtonFragment

Вопрос в том, почему YandexPay недоступен? Причина? Я не понимаю. ClientID не тот?

Вот, что у меня вызывает подозрение. В документации Яндекса (https://pay.yandex.ru/ru/docs/psp/android-sdk#create-oauth-app) в 6-м пункте написано, что нужно выбрать Yandex Pay → Оплата через Yandex Pay в блоке "Какие данные вам нужны?"

Снимок экрана 2023-04-28 175835

Так дело в том, что этого же нет.

Снимок экрана 2023-04-28 210514

@jQwout
Copy link
Contributor

jQwout commented Apr 28, 2023 via email

@danmov26
Copy link
Author

danmov26 commented Apr 28, 2023

Я Яндексу всё написал, на всякий случай написал и вам, может быть, проблема где-то здесь.

А у вас с собой есть приложение, в котором YandexPay работает? Вы проверяли?

Кстати, по поводу вашего примера (он нерабочий, рекомендую его перепроверить):
Скачал весь репозиторий AcquiringSdkAndroid, установил приложение Tinkoff ASDK Sample с модуля sample (т.е. приложение-пример), так вот я там указал свой терминал, выбрал кастомное "окружение" - https://securepay.tinkoff.ru/v2, активировал YandexPay, TinkoffPay, СБП в настройках.
Но, к сожалению, ваш пример мне ничем не помог, там часто выходят диалоговые окна "Что-то пошло не так", а при попытке оплаты нет ни TinkoffPay, ни YandexPay, есть СБП, при выборе СБП выходит ошибка "Извините, проблемы с подключением к интернету" (кстати, тестовые оплаты (без списания средств) не работают - это если написать AcquiringSdk.isDeveloperMode = true)

@danmov26
Copy link
Author

danmov26 commented Apr 28, 2023

Скажите, а в консоли YandexPay регистрироваться не надо?

@jQwout
Copy link
Contributor

jQwout commented Apr 28, 2023

по поводу регистрации и тд, это вам над в поддержку личного кабинета, не сдк.
Напишите, там вам точно подскажут что делать.
Яндекс, скорее всего, отправит к нам)

По поводу кастомного окружения- коли вы работали с продом, над было прописать свой терминал, возможно вы работали с тестовым терминалом, а его на https://securepay.tinkoff.ru/v2. нету.

Доступы до тестовых урлов тоже можно попросить в поддержке, вот с картами уже посложнее, но если удасться получить доступ до тест окружения - там регулярно на терминалах зависают карты для теста.

С собой под рукой такого приложения нету, но они есть на проде.

@danmov26
Copy link
Author

danmov26 commented Apr 28, 2023

Ответили с яндекса, у них проблемы с UI, дали ссылку, по которой получается добавить YandexPay (https://oauth.yandex.ru/client/new), удалось добавить "Доступ к YandexPay".

Снимок экрана 2023-04-28 222121

Поменял в build.gradle client_id, но всё также пока что terminalInfo.paymethods не возвращает YandexPay. Время, наверное, нужно. Вроде, сделал всё правильно.

Спасибо вам, что отвечаете в такое позднее время, но у меня ещё вопрос:

В документации здесь на гитхабе (https://github.com/tinkoff-mobile-tech/AcquiringSdkAndroid#%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5) добавили новый блок текста про network-security-config.xml.
Скажите, а какую роль играет этот файл? Проблема в том, что, если я добавляю в манифесте android:networkSecurityConfig="@xml/tinkoff_security_config", то запросы к http запрещаются (выходит ошибка Cleartext HTTP traffic to ipwho.is not permitted), а в моём приложении есть сайт, к которому приходится обращаться через http, а не https.
Год назад добавил Тинькофф эквайринг в свою прогу, про security_config было ни слова, и по сей день оплата проходила успешно и без этого файла.

P.S. android:usesCleartextTraffic="true" у меня тоже стоит в манифесте внутри тэга application. Т.е. дело не в этом, а в networkSecurityConfig

@jQwout
Copy link
Contributor

jQwout commented Apr 28, 2023

ну вы можете попробовать поставить что то типо

  <base-config cleartextTrafficPermitted="true">

в конфиге, вообще вам не обязательно копировать его 1k1, достатачно будет просто положить самописные сертификаты, они нужны, если вдруг отзовут глобальные серты из за санкций. (где то уже отослали, могут быть проблемы с прохождением 3дс без них) + я бы рекомендовал запретить в прод сборке использовать пользовательские сертификаты, что бы злоумышленники не "слушали" ваш траффик.

По поводу яндекса, скорее всего, без обращение в наш саппорт не решится.

@danmov26
Copy link
Author

danmov26 commented May 1, 2023

Добрый день. Куда мне теперь обращаться? YandexPay всё ещё не появляется в форме оплаты Тинькофф Эквайринга. Потому что checkTerminalInfo не возвращает доступный метод оплаты - YandexPay.

@harcoPro
Copy link
Contributor

harcoPro commented May 2, 2023

Добрый день.
Скажите, пожалуйста, обращались ли вы в поддержку личного кабинета экваринга?
И если да, то что вам ответили?

@danmov26
Copy link
Author

danmov26 commented May 2, 2023

Да, обратился. Пока что говорят, проверяют информацию. Всё им сообщил. И в поддержку yandexpay на всякий случай сообщил, там молчат.

@danmov26
Copy link
Author

danmov26 commented May 20, 2023

Добрый день. Спустя 3 недели, наконец, мне решили эту проблему с получением YandexPayData в checkTerminalInfo(). Помогла поддержка из личного кабинета Тинькофф эквайринга.

Поскольку вы почему-то в своей форме оплаты (PaymentFragment) не добавили кнопку "Оплатить через YandexPay", я сделал это сам, вот код.
setupYandexPayButton().txt

И теперь новая проблема. Яндекс Pay просит, чтобы я вошёл в свой аккаунт циклично бесконечно.

@danmov26
Copy link
Author

danmov26 commented May 20, 2023

Вот видео
video_2023-05-20_17-32-13.zip

А вот логи сразу после того, как нажму "Войти как Danil"
logs.txt

В этих логах, я предполагаю, что проблема вот в чём:
403 Forbidden https://pay.yandex.ru/api/mobile/v1/validate
Ответ:
{"status":"fail","data":{"message":"ACCESS_DENIED","params":{"description":"client_id is not allowed"}},"code":403}

Я в поддержку YandexPay написал тоже, на всякий случай, вам тоже сразу пишу.

@harcoPro
Copy link
Contributor

Добрый день.
Можете написать какой терминал у вас? Название, id?

@danmov26
Copy link
Author

Добрый день. Рабочий. 1655904915063

@harcoPro
Copy link
Contributor

Попробуйте сейчас. Вообще лучше с такими запросами писать на почту [email protected]

@danmov26
Copy link
Author

danmov26 commented May 22, 2023

Да тоже самое вроде, без изменений. Хочет, чтобы я вошёл, повторно.

Ок, напишу на эту почту.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants