tinkoff-mobile-tech / tinkoff-asdk-android

Other
55 stars 28 forks source link

Списание средств при включенном холдировании #62

Closed hryst closed 3 years ago

hryst commented 3 years ago

Здравствуйте,

Для терминала включена опция холдирования, т.е. средства не должны списываться сразу, а подтверждаться вручную для каждой сделки. Однако после оплаты вижу в консоли такой результат:

I/System.out: Tinkoff Acquiring SDK: === Sending POST request to https://securepay.tinkoff.ru/v2/GetCardList
I/System.out: Tinkoff Acquiring SDK: === Got server response: [{"CardId":"99437981","Pan":"427668******0414","Status":"A","RebillId":"***","CardType":0,"ExpDate":"0322"}]
I/System.out: Tinkoff Acquiring SDK: === Request done with success, sent for processing
I/System.out: Tinkoff Acquiring SDK: === Parameters: {"Description":"Стирка (6 кг)","Receipt":{"Email":"***@***","Items":[{"Amount":100000,"Name":"Стирка (6 кг)","Price":100000,"Quantity":1.0,"Tax":"none"}],"Taxation":"usn_income_outcome"},"Language":"RU","DATA":{"chargeFlag":"true"},"Amount":"100000","CustomerKey":"481","TerminalKey":"1623140385974","Token":"***","Recurrent":"Y","OrderId":"2106-1"}
I/System.out: Tinkoff Acquiring SDK: === Sending POST request to https://securepay.tinkoff.ru/v2/Init
I/System.out: Tinkoff Acquiring SDK: === Got server response: {"Success":true,"ErrorCode":"0","TerminalKey":"1623140385974","Status":"NEW","PaymentId":"703701302","OrderId":"2106-1","Amount":100000}
I/System.out: Tinkoff Acquiring SDK: === Request done with success, sent for processing
I/System.out: Tinkoff Acquiring SDK: === Parameters: {"PaymentId":"703701302","TerminalKey":"1623140385974","Token":"***","RebillId":"***"}
I/System.out: Tinkoff Acquiring SDK: === Sending POST request to https://securepay.tinkoff.ru/v2/Charge
I/System.out: Tinkoff Acquiring SDK: === Got server response: {"Success":true,"ErrorCode":"0","TerminalKey":"1623140385974","Status":"CONFIRMED","PaymentId":"703701302","OrderId":"2106-1","Amount":100000}
I/System.out: Tinkoff Acquiring SDK: === Request done with success, sent for processing

Получается, что SDK после метода Init сразу вызывает Charge, и средства в этот момент списываются. При этом, если в опциях не указывать customerKey, то все работает как ожидается. Смущает тот факт, что при запросе Init в параметрах помимо "Recurrent":"Y" передается сразу "chargeFlag":"true". Как этого можно избежать?

hryst commented 3 years ago

После обращения в техподдержку проблема была исправлена.