yoomoney / yookassa-android-sdk

This library allows implementing payment acceptance into mobile apps on Android. It works as an extension to the YooMoney API.
https://yookassa.ru/developers/payment-forms/android-sdk
MIT License
40 stars 22 forks source link

Генерация production paymentToken #80

Closed Yadro closed 3 years ago

Yadro commented 3 years ago

Столкнулся с ошибкой - чтобы получить production token нужно удалить mockConfiguration из TestParameters.

To get production token, remove mockConfiguration from your TestParameters object, that is used in Checkout.createTokenize

Ок, заменяю new MockConfiguration() на null

tParameters = new TestParameters(showLogs, googlePayTestEnvironment, null);
try {
  Intent intent = Checkout.createTokenizeIntent(reactContext, parameters, tParameters);
  getCurrentActivity().startActivityForResult(intent, REQUEST_CODE_TOKENIZE);
} ...

Получаю ошибку Seems we've had a technical error. image

Что я делаю не так?

Yadro commented 3 years ago

Ещё проблема в том, что Android Studio не видит импорт TestParameters, и возможно я могу не видеть каких-то ошибок, хотя компилируется без проблем. image

iskandarshabaev commented 3 years ago

Подскажите пожалуйста версию msdk

Yadro commented 3 years ago

@iskandarshabaev Можете уточнить, что это? minSdkVersion?

iskandarshabaev commented 3 years ago

@Yadro Простите, имеется ввиду версия библиотеки ru.yoomoney.sdk.kassa.payments:yookassa-android-sdk

Yadro commented 3 years ago

ru.yoomoney.sdk.kassa.payments:yookassa-android-sdk:5.1.4

upd: в консоли ошибок не вижу

Yadro commented 3 years ago

Поставил

ru.yoomoney.sdk.kassa.payments:yookassa-android-sdk:6.0.2
ru.yoomoney.sdk.auth:auth:1.2.8

такая же ошибка

iskandarshabaev commented 3 years ago

@Yadro А с 6.0.2 версией логов нет? TestParameters(showLogs=true)

Yadro commented 3 years ago

Никаких ошибок нет, только варнинги Accessing hidden field, Accessing hidden method

iskandarshabaev commented 3 years ago

А других логов нет? С момента запуска sdk ничего в консоль не выводится?

Intent intent = Checkout.createTokenizeIntent(reactContext, parameters, tParameters);
getCurrentActivity().startActivityForResult(intent, REQUEST_CODE_TOKENIZE);
Yadro commented 3 years ago

Вот такие увидел

2021-06-24 18:01:47.456 2516-2516/ru.animalphone.app W/DynamiteModule: Local module descriptor class for providerinstaller not found.
2021-06-24 18:01:47.465 2516-2516/ru.animalphone.app W/ProviderInstaller: Failed to load providerinstaller module: No acceptable module found. Local version is 0 and remote version is 0.
2021-06-24 18:01:47.468 2516-2516/ru.animalphone.app W/DynamiteModule: Local module descriptor class for providerinstaller not found.
2021-06-24 18:01:47.472 2516-2516/ru.animalphone.app W/ProviderInstaller: Failed to load providerinstaller module: No acceptable module found. Local version is 0 and remote version is 0.
iskandarshabaev commented 3 years ago

@Yadro Странно, а вы на debug приложении смотрите логи? Отладка доступна? В метод передаёте showLogs=true? Checkout.createTokenizeIntent(context, parameters, TestParameters(showLogs=true))

Вижу в вашем примере reactContext - это ReactNative приложение?

Yadro commented 3 years ago

Отладка доступна, так что видимо в debug. Передаю showLogs=true. Да это RN приложение.

Yadro commented 3 years ago

Попробовал указать именованный параметр

TestParameters tParameters2 = new TestParameters(showLogs=true);

error: cannot find symbol

Если указать просто

TestParameters tParameters2 = new TestParameters(true);

то всё окей. Но логов это не прибавило :)

Yadro commented 3 years ago

Попробовал вообще не указывать TestParameters - тоже поведение. Ещё проверил работу на реальном устройстве - та же ошибка без логов.

iskandarshabaev commented 3 years ago

@Yadro Сделал exаmple приложение, где включены логи https://dropmefiles.com/dFvFy При запуске в консоли вижу вот такие запросы:

image

Можете пожалуйста попробовать запустить проект c exаmple приложением, видно ли у вас логи в консоли? Так-же запускаете токенизацию в sdk?

Yadro commented 3 years ago

@iskandarshabaev запустил, ошибки есть

2021-06-25 10:42:15.296 15555-15597/ru.yandex.money.myapplication D/OkHttp: <-- 401 https://sdk.yookassa.ru/api/frontend/v3/payment_options?amount=10&currency=RUB (890ms)
2021-06-25 10:42:15.296 15555-15597/ru.yandex.money.myapplication D/OkHttp: server: nginx
2021-06-25 10:42:15.297 15555-15597/ru.yandex.money.myapplication D/OkHttp: date: Fri, 25 Jun 2021 08:52:54 GMT
2021-06-25 10:42:15.297 15555-15597/ru.yandex.money.myapplication D/OkHttp: content-type: application/json
2021-06-25 10:42:15.299 15555-15597/ru.yandex.money.myapplication D/OkHttp: {
2021-06-25 10:42:15.299 15555-15597/ru.yandex.money.myapplication D/OkHttp:   "type" : "error",
2021-06-25 10:42:15.299 15555-15597/ru.yandex.money.myapplication D/OkHttp:   "id" : "b4d83bd4-8af6-4a84-b051-d7619b20fb91",
2021-06-25 10:42:15.299 15555-15597/ru.yandex.money.myapplication D/OkHttp:   "code" : "invalid_credentials",
2021-06-25 10:42:15.299 15555-15597/ru.yandex.money.myapplication D/OkHttp:   "description" : "Error in the secret key. Check their validity. You can reissue the key in the Merchant Profile"
2021-06-25 10:42:15.299 15555-15597/ru.yandex.money.myapplication D/OkHttp: }
2021-06-25 10:42:15.299 15555-15597/ru.yandex.money.myapplication D/OkHttp: <-- END HTTP (221-byte body)
iskandarshabaev commented 3 years ago

@Yadro Есть подозрение что логи не выводятся в react native приложении. Мы пока не тестируем наше sdk на react native, поэтому не знаем почему там может не работать логирование. Возможно у вас есть небольшой проект-пример, где можно было бы воспроизвести проблему?

Yadro commented 3 years ago

@iskandarshabaev могу создать проект пример на RN, подойдёт?

iskandarshabaev commented 3 years ago

@Yadro Да, подойдёт

Yadro commented 3 years ago

@iskandarshabaev https://github.com/Yadro/RNYookassaExample Если возникнут проблемы, то можно написать в телеграм [удалено]

Yadro commented 3 years ago

@iskandarshabaev добрый день, получилось запустить пример?

iskandarshabaev commented 3 years ago

Да, спасибо. Пример запустили, логи есть. Проблема на сколько я понял в ключе.

iskandarshabaev commented 3 years ago

@Yadro Удалось получить paymentToken?

Yadro commented 3 years ago

Уже не занимаюсь этим проектом :) issue можно закрывать.

Важная ремарка, что на тестовом магазине с токеном начинающимся на test_ не будет работать генерация paymentToken.