tinkoff-mobile-tech / tinkoff-asdk-android

Other
56 stars 28 forks source link

Объект receipt == null при прохождении теста формирования чека для онлайн кассы #57

Closed kx30 closed 3 years ago

kx30 commented 3 years ago

Следуя из документации, чтобы сформировать чек для онлайн-кассы, необходимо передать параметр receipt в paymentOptions.

Скриншот, где показано как формируется информация об оплате image

На том же экране на дебаггере показано, что мы передаём receipt в paymentOptions image

Внутри класса Fragment Tinkoff sdk передаёт intent, который содержит в себе объект receipt image

Во время прохождения тестов формирования чека для онлайн кассы поддержка показывала, что receipt им приходит null:

Лог метода Init

Controller 'PurchaseInitControllerImpl' method 'init'. Request: '{"userAgent":"Dalvik/2.1.0 (Linux; U; Android 10; Redmi Note 8 Pro MIUI/V12.0.8.0.QGGRUXM)","acceptHeader":null,"sessionTypeEnum":"STANDARD","url":"http://securepay.tinkoff.ru","amount":1500000,"ord... минут иначеонабудетотменена","currency":null,"payForm":null,"customerKey":"408","redirect":false,"data":{"chargeFlag":"false"},"payType":null,"recurrent":false,"bill":false,"locale":"RU","cardId":null,"receipt":null,"receipts":null,"apiVersion":"2","language":"RU","successURL":null,"failURL":null,"notificationURL":null,"descriptor":null,"TerminalKey":"1617969562936DEMO","merchant_api_cookieId":"258cc977-04e1-4ed9-a705-168b9aad47cf","Token":"c1bcd926c94e58448793cd929669d4fdda04ae3a4805b6045dda611118795846","IP":"93.90.82.246","Route":null,"RedirectDueDate":null,"Shops":null,"EPD":null,"parametersMap":"{Description=Успейтеоплатитьброньза5 минут иначеонабудетотменена, Language=RU, Amount=1500000, CustomerKey=408, TerminalKey=1617969562936DEMO, OrderId=47320}"}'

Вопрос в том что я делаю не так, ведь в sdk объект receipt передаётся?

kx30 commented 3 years ago

Ожидаю информации

MaryAPc commented 3 years ago

Здравствуйте! Чтобы убедиться, что объект действительно отправляется на сервер, можно включить логирование запросов AcquiringSdk.isDebug = true и попробовать повторить отправку. тогда можно будет узнать на чьей стороне проблема

kx30 commented 3 years ago

Включил логи в приложении, собственно вот:

{
   "Description":"Успейте оплатить бронь за 15 минут, иначе она будет отменена.",
   "Receipt":{
      "Email":"sjakaksskskskskksk@gmail.com",
      "Items":[
         {
            "Amount":870000,
            "Name":"Название тарифа",
            "PaymentMethod":"advance",
            "PaymentObject":"service",
            "Price":870000,
            "Quantity":1.0,
            "Tax":"vat20"
         }
      ],
      "Phone":"79990000000",
      "Taxation":"osn"
   },
   "Language":"RU",
   "DATA":{
      "chargeFlag":"false"
   },
   "Amount":"870000",
   "CustomerKey":"653",
   "OrderId":"Booking 47502"
}

Может ли быть проблема в том, что у нас отключена тестовая среда (AcquiringSdk.isDeveloperMode = false)?

kx30 commented 3 years ago

Ожидаю информации

MaryAPc commented 3 years ago

Со стороны SDK нет разницы отключена ли тестовая среда, SDK всегда отправляет данные одинаково. Скорее всего проблема где то на бекенде. Можете прислать paymentId и orderId операции, в которая отправляется с чеком?

kx30 commented 3 years ago

Отправлю все логи, которые проходят после оплаты. Терминал ID: 1617969562936DEMO Token: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv5yse9ka3ZQE0feuGtemYv3IqOlLck8zHUM7lTr0za6lXTszRSXfUO7jMb+L5C7e2QNFs+7sIX2OQJ6a+HG8kr+jwJ4tS3cVsWtd9NXpsU40PE4MeNr5RqiNXjcDxA+L4OsEm/BlyFOEOh2epGyYUd5/iO3OiQFRNicomT2saQYAeqIwuELPs1XpLk9HLx5qPbm8fRrQhjeUD5TLO8b+4yCnObe8vy/BMUwBfq+ieWADIjwWCMp2KTpMGLz48qnaD9kdrYJ0iyHqzb2mkDhdIzkim24A3lWoYitJCBrrB2xM05sm9+OdCI1f7nPNJbl5URHobSwR94IRGT7CJcUjvwIDAQAB

 Tinkoff Acquiring SDK: === Sending POST request to https://securepay.tinkoff.ru/v2/GetCardList
 Tinkoff Acquiring SDK: === Got server response: [
   {
      "CardId":"77623036",
      "Pan":"430000******0777",
      "Status":"A",
      "RebillId":"",
      "CardType":0,
      "ExpDate":"1122"
   },
   {
      "CardId":"95275474",
      "Pan":"400000******0119",
      "Status":"A",
      "RebillId":"",
      "CardType"0,
      "ExpDate":"1122"
   },
   {
      "CardId":"92183150",
      "Pan":"400000******0101",
      "Status":"A",
      "RebillId":"",
      "CardType":0,
      "ExpDate":"1122"
   }
]
 Tinkoff Acquiring SDK: === Request done with success, sent for processing
 per: updateByCheckExcludeList: pkg: ru.webant.sanatorium activity: ru.tinkoff.acquiring.sdk.ui.activities.PaymentActivity@2037dda
 per: updateByCheckExcludeList: pkg: ru.webant.sanatorium activity: ru.tinkoff.acquiring.sdk.ui.activities.PaymentActivity@2037dda
 per: updateByCheckExcludeList: pkg: ru.webant.sanatorium activity: ru.tinkoff.acquiring.sdk.ui.activities.PaymentActivity@2037dda
 per: updateByCheckExcludeList: pkg: ru.webant.sanatorium activity: ru.tinkoff.acquiring.sdk.ui.activities.PaymentActivity@2037dda
 per: updateByCheckExcludeList: pkg: ru.webant.sanatorium activity: ru.tinkoff.acquiring.sdk.ui.activities.PaymentActivity@2037dda
 Tinkoff Acquiring SDK: === Parameters: 
 [
   {
      "Description":"Успейте оплатить бронь за 15 минут, иначе она будет отменена.",
      "Receipt":{
         "Email":"sjakaksskskskskksk@gmail.com",
         "Items":[
            {
               "Amount":870000,
               "Name":"Название тарифа",
               "PaymentMethod":"advance",
               "PaymentObject":"service",
               "Price":870000,
               "Quantity":1.0,
               "Tax":"vat20"
            }
         ],
         "Phone":"79990000000",
         "Taxation":"osn"
      },
      "Language":"RU",
      "DATA":{
         "chargeFlag":"false"
      },
      "Amount":"870000",
      "CustomerKey":"653",
      "OrderId":"Booking 47510"
   }
]
 Tinkoff Acquiring SDK: === Sending POST request to https://securepay.tinkoff.ru/v2/Init
 Tinkoff Acquiring SDK: === Got server response: [
   {
      "Success":true,
      "ErrorCode":"0",
      "Status":"NEW",
      "PaymentId":"684585074",
      "OrderId":"Booking 47510",
      "Amount":870000
   }
]
 Tinkoff Acquiring SDK: === Request done with success, sent for processing
 Tinkoff Acquiring SDK: === Parameters: [
   {
      "PaymentId":"684585074",
      "CardData":"VA77AzHz8BOLp+fGa592MuwJIoQMKXgAXXuI6EsFqZ0tnYOXLp9MTjZdwXe/FMRRiuQwSiNNRVM8\nVv7Odrcy84dvkL2u3tVTLb5RrNajbrpU/A3om67y8yQnziIf5+vnS5+5ELoc3NxNw1EchSoUSpAE\nj+tHJP5UTdm0kznfiVnbEI2nH2LSEtqBWE7i2HZR6kbbmf4kR0DNCfACTGcOs9+doez7LpAH0PgQ\nSo8tI4bVmjXIIUDofhCaZvyzBI8LUbC9WD+SGNyi8xz6DTwJds0TH+OGj3t0bxdkBVcm7Y/XN3h0\nYYX3vhvfi8W123QXR48GRyeFFtIX6UMpeRBqdg\u003d\u003d"
   }
]
 Tinkoff Acquiring SDK: === Sending POST request to https://securepay.tinkoff.ru/v2/Check3dsVersion
 Tinkoff Acquiring SDK: === Got server response: 
 [
   {
      "Success":true,
      "ErrorCode":"0",
      "Message":"OK",
      "Version":"1.0.0"
   }
]
 Tinkoff Acquiring SDK: === Request done with success, sent for processing
 Tinkoff Acquiring SDK: === Parameters: [
   {
      "InfoEmail":"sjakaksskskskskksk@gmail.com",
      "PaymentId":"684585074",
      "SendEmail":true,
      "CardData":"QdjZHQ2UHqH9zo/EJnRVqqqrvfpcHs88Odn4YXohW3hL7h5ws+Gn00uMT1uzhwotAi4FlPi7DAkQ\nYIwtwsjdLptfUh+WCgJ1DFIEpCXo4lYOADWY4osULTgQCGorczMxAiO2TafR54kutLZ2GsEatg++\nPLpl9ddk1QMLNv8q0psW7uMiEDyjZYCKBnKiicS8OyXr63f1RLCeXpijiQZpkXRogo0k1oxEpQJw\nlqS6fHem89Dpe4ZwBmI2c28GejqM/ADo48cHjAJThwzuWEpMAt/TbgvpMN0PJfDBEgyBwf5zBNI2\nUJgp0T1j6l812/XSBEPB+0W8BfWo2wKMpNU1cQ\u003d\u003d"
   }
]
 Tinkoff Acquiring SDK: === Sending POST request to https://securepay.tinkoff.ru/v2/FinishAuthorize
 Tinkoff Acquiring SDK: === Got server response: [
   {
      "Success":true,
      "ErrorCode":"0",
      "Status":"CONFIRMED",
      "PaymentId":"684585074",
      "OrderId":"Booking 47510",
      "Amount":870000
   }
]
MaryAPc commented 3 years ago

Коллеги говорят что им на бекенд пришел этот чек

Controller 'PurchaseInitControllerImpl' method 'init'. Request: 
{
   "userAgent":"Dalvik/2.1.0 (Linux; U; Android 10; M2003J15SC MIUI/V12.0.4.0.QJORUXM)",
   "acceptHeader":null,
   "sessionTypeEnum":"STANDARD",
   "url":"http://securepay.tinkoff.ru",
   "amount":870000,
   "orderId":"Booking 47510",
   "description":"Успейте оплатить бронь за 15 минут, иначе она будет отменена.",
   "currency":null,
   "payForm":null,
   "customerKey":"653",
   "redirect":false,
   "data":{
      "chargeFlag":"false"
   },
   "payType":null,
   "recurrent":false,
   "bill":false,
   "locale":"RU",
   "cardId":null,
   "receipt":{
      "AgentData":null,
      "SupplierInfo":null,
      "Items":[
         {
            "AgentData":null,
            "SupplierInfo":null,
            "Name":"Название тарифа",
            "Price":870000,
            "Quantity":1,
            "Amount":870000,
            "Tax":"vat20",
            "Ean13":null,
            "PaymentMethod":"advance",
            "PaymentObject":"service",
            "MeasurementUnit":null
         }
      ],
      "Email":"sjakaksskskskskksk@gmail.com",
      "Phone":"79990000000",
      "Taxation":"osn",
      "EmailCompany":null,
      "Customer":null,
      "CustomerInn":null,
      "Payments":null
   },
   "receipts":null,
   "apiVersion":"2",
   "language":"RU",
   "successURL":null,
   "failURL":null,
   "notificationURL":null,
   "descriptor":null,
   "TerminalKey":"1617969562936DEMO",
   "merchant_api_cookieId":"778be873-4ca5-4bcc-a8cf-f8710e7bcbbc",
   "Token":"157f301517494f2a97c44be6b2c51dd12e2d40b3b3396db637903bf4b29b0ed9",
   "IP":"188.168.215.13",
   "Route":null,
   "RedirectDueDate":null,
   "Shops":null,
   "EPD":null,
   "parametersMap":"{Description=Успейте оплатить бронь за 15 минут, иначе она будет отменена., Language=RU, Amount=870000, CustomerKey=653, TerminalKey=1617969562936DEMO, OrderId=Booking 47510}"
}
kx30 commented 3 years ago

Собственно чек приходит на бэк, но из-за чего тогда онлайн касса не может пройти тесты?

MaryAPc commented 3 years ago

Коллеги сообщили что тесты в личном кабинете на Формирование чека пройдены. Или вы имеете в виду какие то другие тесты?

kx30 commented 3 years ago

Мы пробовали пройти тест с андроида, но получали ошибку, что чек не отправлен. Поэтому попробовали отправить чек с ios и тест был успешно пройден. Мы ничего не меняли с момента теста и беспокоимся, что в проде он также не будет отправляться

MaryAPc commented 3 years ago

Скорее всего когда вы первый раз тестировали на андроид отправку чека, что то было не корректно настроено. Но сейчас мы проверили, что на бекенде чек приходит, поэтому предполагаем что сейчас всё настроено верно и на проде чек тоже должен приходить.

kx30 commented 3 years ago

Хорошо, спасибо большое