tinkoff-mobile-tech / tinkoff-asdk-android

Other
55 stars 28 forks source link

"ErrorCode":"7" Покупатель не найден. #43

Closed sVoitenko closed 3 years ago

sVoitenko commented 3 years ago

PaymentOptions: AcquiringSdk.isDeveloperMode = true AcquiringSdk.isDebug = true val paymentOptions = PaymentOptions().setOptions { orderOptions { // данные заказа orderId = "topup_01" amount = Money.ofCoins(10000) title = "ПОПОЛНЕНИЕ" description = "пополнение счета" recurrentPayment = false } customerOptions { // данные покупателя customerKey = "G_355" email = "test@yandex.ru" checkType = CheckType.THREE_DS.toString() } featuresOptions { // настройки визуального отображения и функций экрана оплаты useSecureKeyboard = true localizationSource = AsdkSource(Language.RU) handleCardListErrorInSdk = true cameraCardScanner = null//CameraCardIOScanner() as CameraCardScanner darkThemeMode = DarkThemeMode.DISABLED theme = R.style.AcquiringTheme } } val tinkoffAcquiring = TinkoffAcquiring(BuildConfig.TERMINAL_KEY, BuildConfig.TERMINAL_PAS, BuildConfig.TERMINAL_OPEN_KEY) tinkoffAcquiring.openPaymentScreen(context as Activity, paymentOptions, AppConstants.PAYMENT_REQUEST_CODE)

В логе вижу такое: I/System.out: Tinkoff Acquiring SDK: === Parameters: {"CustomerKey":"G_355","TerminalKey":"1605728167790DEMO","Token":"7ce2e2f5fce8a234ef58bf7b2f84316bd08038a4ad4912ea0d35e848ec7962f5"} I/System.out: Tinkoff Acquiring SDK: === Sending POST request to https://rest-api-test.tcsbank.ru/v2/GetCardList I/System.out: Tinkoff Acquiring SDK: === Got server response: {"Success":false,"ErrorCode":"7","Message":"Неверный статус покупателя.","Details":"Покупатель не найден.","CustomerKey":"G_355"} I/System.out: Tinkoff Acquiring SDK: === Request done with fail

Как горю помочь?

MaryAPc commented 3 years ago

Здравствуйте! Такая ошибка приходит, когда клиент еще не зарегистрирован в нашей системе или не совершил ни одной операции. При этом открывается экран оплаты с формой ввода карты и кнопкой оплатить. Как только клиент введет данные карты, успешно оплатит заказ, его customerKey зарегистрируется в системе к нему привяжется карта и далее ошибка появляться не будет. Она носит информативный характер, не является критичной ошибкой, так что оплату проводить можно.

Есть дополнительные возможности обработки этого случая, для понимания их опишу, возможно понадобится: Есть возможнось вам самостоятельно обработать эту ошибку, установив handleCardListErrorInSdk = false, тогда в onActivityResult вы получите эту ошибку, наш экран не откроется, и вы сможете обработать ее самостоятельно, если нужно. Если у вас есть серверная часть магазина, то для нее у API Acquiring есть дополнительный метод AddCustomer (только для бэкенд серверов, в sdk отсутствует). Этот метод регистрирует customerId в системе, и далее при открытии экрана ошибки также не будет.

sVoitenko commented 3 years ago

Спасибо @MaryAPc Мария, но я пробую пройти тест по картам и получаю ошибки: I/System.out: Tinkoff Acquiring SDK: === Parameters: {"PaymentId":"700000050096","TerminalKey":"1605728167790DEMO","Token":"e06645b1093a528de4a97f110d6389211d88c280a9b593dafe870f76506b7c7d","CardData":"Mqqh7lSp97x+YRz1TcmKh8Hyq2NTqvz97gqmznRnApqoUFoBjxA5D2c6UC+xn6k6E9DTIvQIa8Um\nlT0z8JrMQvKcQJnDJVhtTPVNftGUJtlhTGMfD1+/ZspZBYmDKe2NNydvZFVTVmBDguvtQDV9X5Yn\niH3Xr1T2OAeHcRpw8x4oRIm7Bkrdmqae5ZGv7Ri5dJ1cBXpdTSk4FkWxrx3Mf25HRQTyengEvYqw\nWI5yGsb7iQpU/lT8mWbn03imnw6bKjXkNjQ6ruRUXPloISdpv/A5ZNs3rTOZcIOQbZE8CuHhhNZh\nLgfpoNIJuyWzK9bLOCxZqo+2rJssCxcVIE1wig\u003d\u003d"}}

I/System.out: Tinkoff Acquiring SDK: === Got server response: {"Success":false,"ErrorCode":"9999","Message":"Неверные параметры.","Details":"Неверный номер карты"}

Номер карты я беру из ваших тестовых карт 5000 0000 0000 0009

sVoitenko commented 3 years ago

что-то не так с учетной записью?

MaryAPc commented 3 years ago

а какой expire date и cvc используете с этим номером карты?

sVoitenko commented 3 years ago

image

sVoitenko commented 3 years ago

@MaryAPc есть идеи?

MaryAPc commented 3 years ago

Тесты нужно проходить на прод окружении с DEMO терминалом, вам нужно установить значение AcquiringSdk.isDeveloperMode= false

sVoitenko commented 3 years ago

@MaryAPc Спасибо! Теперь работает.

MaryAPc commented 3 years ago

Обращайтесь, если ещё нужна будет помощь!