Closed StIch0 closed 1 year ago
Привет!
Вероятно ошибка в переданных параметрах - не хватает аргумента customerKey
(идентификатор покупателя в системе продавца).
Попробуй так:
let customerKey: String
uiSdk.presentPaymentView(
on: viewController,
customerKey: customerKey,
acquiringPaymentStageConfiguration: paymentStageConfiguration,
configuration: acquiringViewConfiguration(
cartItems: cartItems,
email: email,
phone: phone),
tinkoffPayDelegate: nil)
@akhaman Спасибо помогло. но столкнулся с другой ошибкой. Error: The operation couldn’t be completed. (Запрашиваемое состояние транзакции является неверным. Изменение статуса недопустимо. error 4.)
не подскажете, в чем тут может быть ошибка ?
Ошибка с бекенда эквайринга. Есть возможность прислать цепочку отправленных запросов и полученных ответов? Можно прям экспортировать сессию Charles / Proxyman или любым другим удобным способом. Передам коллегам
@akhaman притом, что paymentId создался на сервере 2090150772 let paymentStageConfiguration = AcquiringPaymentStageConfiguration(paymentStage: .finish(paymentId: paymentId))
URL | https://securepay.tinkoff.ru/v2/GetCardList |
---|
URL | https://securepay.tinkoff.ru/v2/Check3dsVersion
request { "CardData": "GwovC0JkXW+L5hyTPCL544cIdGtluePq4X7\/lGqjnEj73O3JP4pv3MuUri\/A7X8LB6o7Lk6vF4igYD\/o9jE5ZZIKjSngsgXNFJN0IFXDCvC\/yMbwbI3fZhcSwj0SujzlmGfmJeEHQOklKoWxVLilS3bXS7wlb8\/mjTedsqzpzDzRbfo683zc4iQvqWCGzcZtqPV6\/72nHbj2uz6Cnivbn3DTRYWbTSs1qinm4t5+dzT7eR1k7Z5rZA68UZ36alxiBz+6PpiFXYB8HJHnWtYrsGdbMBmLNidcjs48xTRRag3GL0K7cvwOmmxAodeb1ZB3eWGwgOT\/Y2bq6IDQyR2swQ==", "PaymentId": "2090186400", "TerminalKey": "1668154831496DEMO", "Token": "52edf7fe368b10a4b241b4b4462a20a3e54e3ad3aff35cffa6a65afcc35fed2b" }
response { "Success": true, "ErrorCode": "0", "Message": "OK", "Version": "1" } -- | --
URL | https://securepay.tinkoff.ru/v2/FinishAuthorize
request { "CardData": "Ulegy2p+u\/9nrYwgoWQMoplI43Zo1tp4YCzDj0o68nqxXBSj4rFClx8dSWfD2jn7nnAcW0629o\/0bEtRssp10OeZ3kk2HeF4nsaY9QAA4zGqp2VOipqDT2\/fm0ltYHnIb8RGC\/27mQt+3f8OEq8wpqMH2qlFGre2o8QOV0e0msWXP12U3+64NwxmMgRO+MGUO5zeu4ZkeQgn7XNEj7TWK4tzDe5XDFYTE8+G8tCIqlU0T46GsnacU9+9kKkTrAbZpjVcsr\/PKiW\/2+zaWTKJBPwMHYks32FN5xTOxcuv35GGq+WSPQ3g9SAJ0uCA8f0W+ZLvgP7B\/6UpB1IE\/nXt9Q==", "InfoEmail": "loluich@gmail.com", "PaymentId": "2090186400", "SendEmail": true, "TerminalKey": "1668154831496DEMO", "Token": "1ed55023ae34747ecfe753ec9ac1dd9f60d12504ba56e2ec65664828a1114988" }
response { "Success": false, "ErrorCode": "4", "Message": "Запрашиваемое состояние транзакции является неверным.", "Details": "Изменение статуса недопустимо." } -- | --
@StIch0
Тут в рамках одного сообщения разные paymentId
:
притом, что paymentId создался на сервере 2090150772
"PaymentId": "2090186400"
Может в этом причина?
@akhaman может быть но я передаю в AcquiringPaymentStageConfiguration paymentId с сервера let paymentStageConfiguration = AcquiringPaymentStageConfiguration(paymentStage: .finish(paymentId: paymentId))
uiSdk.presentPaymentView(
on: viewController,
customerKey: userId,
acquiringPaymentStageConfiguration: paymentStageConfiguration,
configuration: acquiringViewConfiguration(
cartItems: cartItems,
email: email,
phone: phone)
)
{ result in
self.responseReviewing(result,
resolver: resolve,
rejecter: reject)
}
}
Окей, выясняем
@akhaman если что отправляю сессию тут цепочки из 2 разных заказов
Еще разбираемся)
Есть возможность прислать сюда скринкаст с воспроизведением этой проблемы?
И еще вопрос, коллеги на андроиде тоже сталкиваются с этой проблемой или она только на iOS?
@akhaman на Андройд такая же проблема там также прокидываю paymentId
tinkoffAcquiring?.openPaymentScreen( this.currentActivity!!, paymentOptions, 1, SelectCardAndPayState((paymentId.toLong())) )
return PaymentOptions()
.setOptions {
orderOptions {
orderId = id
amount = Money.ofCoins((totalPrice*100).toLong())
title = "Оплата"
description = desc
recurrentPayment = false
receipt = myReceipt
}
customerOptions {
customerKey = userId
checkType = CheckType.NO.toString()
email = userEmail
}
featuresOptions {
localizationSource = AsdkSource(Language.RU)
handleCardListErrorInSdk = false
useSecureKeyboard = true
validateExpiryDate = false
cameraCardScanner = null
fpsEnabled = false
tinkoffPayEnabled = false
darkThemeMode = DarkThemeMode.AUTO
userCanSelectCard = false
duplicateEmailToReceipt = false
emailRequired = true
}
asdkState = SelectCardAndPayState(paymentId.toLong());
}
Описанная выше ошибка вероятно связана с беком, мобильный SDK получает некорректный ответ в v2/FinishAuthorize
Направь пожалуйста обращение в поддержку, ребята разберутся
@akhaman хорошо, спасибо написал в поддержку прикрепил ссылку на этот issues
Хорошо. Этот issue я закрываю, поскольку он был изначально связан с проблемой бесконечной загрузки, а ее мы решили. Если появятся новые вопросы/проблемы с мобильным SDK, заведи новое обращение)
подскажите, в чем может быть ошибка ?