tinkoff-mobile-tech / tinkoff-asdk-ios

Tinkoff Acquiring SDK
https://tinkoff.ru/kassa
45 stars 34 forks source link

После подтверждения СБП в банковском приложении и возврате в приложение не скрывается шторка "ожидается оплата" #223

Closed rmurad93 closed 1 year ago

rmurad93 commented 1 year ago

Описание бага

После подтверждения СБП в банковском приложении и возврате в приложение не скрывается шторка "ожидается оплата"

После каких действий возникает ошибка

  1. В приложении ввожу сумму
  2. Нажимаю "оплатить по СБП"
  3. В списке банков, выбираю Тинькофф
  4. Перехожу в приложение Тинькофф банка и подтверждаю платеж
  5. Возвращаюсь в приложение

Ожидаемое поведение

После подтверждения платежа и возврате в приложение шторка "ожидается оплата" скрылась и произошел переход на результирующий экран

Что происходит на деле

Происходит переход на результирующий экран но отображается шторка "ожидается оплата"

Окружение и настройки:

akhaman commented 1 year ago

Привет! Уточни пожалуйста, кнопка СБП располагается на платежной форме эквайринга или на экране вашего приложения?

VNGXR commented 1 year ago

Привет! Уточни пожалуйста, кнопка СБП располагается на платежной форме эквайринга или на экране вашего приложения?

Привет. У нас аналогичная проблема. Кнопка СБП располагается на экране нашего приложения, вызывает urlSBPPaymentViewController(acquiringPaymentStageConfiguration....

rmurad93 commented 1 year ago

Привет! Уточни пожалуйста, кнопка СБП располагается на платежной форме эквайринга или на экране вашего приложения?

Располагается на экране моего приложения.

akhaman commented 1 year ago

Принято! Взяли в работу

akhaman commented 1 year ago

Посмотрели информацию по данному платежу. Он не оплачен, соответственно SDK находится в ожидании и показывает лоадер.

Почему платеж не прошел - лучше обратиться в поддержку, они подробнее проконсультируют

akhaman commented 1 year ago

Если посмотреть на запрос v2/GetState, отправляемый периодически после возвращения из банковского приложения, то можно увидеть, что статус платежа FORM_SHOWED. Это означает, что экран с формой оплаты в банковском приложении отобразился пользователю, но оплаты не было

VNGXR commented 1 year ago

Нет, v2/GetState сменяется с FORM_SHOWED на CONFIRMED, отрабатывает результирующий колбек, а боттомшит "Ожидаем подтверждения платежа" остаётся висеть.

До оплаты:

{
    "Amount": 2400,
    "ErrorCode": "0",
    "Message": "OK",
    "OrderId": "АЗС32-16/12/22-53483",
    "Params": [
        {
            "Key": "Route",
            "Value": "ACQ"
        }
    ],
    "PaymentId": "2107559751",
    "Status": "FORM_SHOWED",
    "Success": true,
    "TerminalKey": "нашКлюч"
}

После оплаты:

{
    "Amount": 2400,
    "ErrorCode": "0",
    "Message": "OK",
    "OrderId": "АЗС32-16/12/22-53483",
    "Params": [
        {
            "Key": "Route",
            "Value": "QR"
        },
        {
            "Key": "Source",
            "Value": "qrsbp"
        }
    ],
    "PaymentId": "2107559751",
    "Status": "CONFIRMED",
    "Success": true,
    "TerminalKey": "нашКлюч"
}
akhaman commented 1 year ago

Здесь недопонимание вышло, теперь все ясно) Если вызывается каллбек, вам нужно самостоятельно вызвать dismiss у полученного ранее контроллера и обработать соответствующим образом полученный статус.

Сейчас ведутся работы по редизайну флоу оплаты СБП, добавим отдельную точку входа. Там избавим вас от необходимости самостоятельно управлять навигацией

akhaman commented 1 year ago

@rmurad93 Вероятно сообщение выше и вам должно помочь

ivanglushko commented 1 year ago

Закрываю issue по истечению сроков, если проблема актуальна просьба открыть новый issue.