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

Ошибка при создании платежа #7

Closed debian17 closed 4 years ago

debian17 commented 6 years ago

Здравствуйте. У меня есть "<Ключ для клиентских приложений>", который я получил в тестовом магазине Яндекс.Кассы. Ключ необходим согласно документации.

Код создания платежа:

class PaymentActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_payment)
    Checkout.attach(supportFragmentManager)

    Checkout.setResultCallback(object : Checkout.ResultCallback {
        override fun onResult(paymentToken: String, type: PaymentMethodType) {
            Log.e("TOKEN", paymentToken)
        }
    })

    val paymentMethods = Collections.singleton(PaymentMethodType.BANK_CARD)
    Checkout.tokenize(this, Amount(BigDecimal("10.0"), Currency.getInstance("RUB")),
            ShopParameters(getString(R.string.app_name), getString(R.string.payment_subtitle),
                    BuildConfig.YANDEX_APP_KEY, paymentMethods, false, null, null, true))
}

override fun onDestroy() {
    super.onDestroy()
    Checkout.detach()
} }

BuildConfig.YANDEX_APP_KEY - ключ, выданный в тестовом магазине для проведения платежей в этом магазине.

При попытке выполнить данный код появляется следующая форма. Нажатие "Try again" приводит к показу загрузки и снова отображению данной формы.

Подскажите, пожалуйста, я что-то упустил или это ошибка на стороне SDK?

Дполнительная информация: Язык телефона: английский. В проекте подключен YandexAuthSdk. Без его подключения данный код приводит к закрытию приложения(см. issues#6). Авторизация с помощью YandexAuthSdk проходит без каких-либо проблем. Я могу получить объект YandexAuthToken согласно документации. Однако, в документации к SDK Яндекс.Кассы я не нашел упоминаний о необходимости самостоятельно получить авторизационный токен для дальнейшего его использования. Прошу Вашей помощи в этом вопросе.

kavorka-cat commented 6 years ago

Я получаю такую же ошибку при аналогичных условиях, но в моем случае магазин и выпускаемые ключи - нетестовые. Будут ли какие-либо комментарии от разработчиков по данной проблеме?

lynnfield commented 6 years ago

Здравствуйте. Посмотрим Ваш кейс на этой неделе, разберемся в чем может быть проблема. Пока можете проверить, что у Вас не включён тестовый режим Checkout.configureTestMode(...) и в настройках магазина в Яндекс.Кассе разрешён платёж произвольной банковской картой.

lynnfield commented 6 years ago

@debian17 @kavorka-cat можете дать applicationId ваших приложений?

z0mb1ek commented 6 years ago

@lynnfield столкнулись с такой же проблемой, com.skipz.dev appId

lynnfield commented 6 years ago

@z0mb1ek Напишите нам в поддержку. Укажите applicationId. Мы посмотрим что пошло не так. В ближайшей версии уберём обфускацию и добавим логирование, чтобы было проще разбираться с проблемами.

givotnoe commented 6 years ago

В моем случае проблема была связана с версией TLS на pre-Lollipop девайсах. Один из вариантов лечения - https://developer.android.com/training/articles/security-gms-provider