tinkoff-mobile-tech / tinkoff-asdk-ios-old

Tinkoff Acquiring SDK for iOS
Other
36 stars 17 forks source link

Ошибка «The given id must not be null!» #48

Closed dmitriykotenko closed 4 years ago

dmitriykotenko commented 4 years ago

Пытаюсь сохранить карту с помощью ASDKPaymentFormStarter.

Сервер падает с IllegalArgumentException:

2020-03-24 21:05:34.710014+0300 tinkoff-asdk-importer[2501:35547] URL: https://securepay.tinkoff.ru/v2/AddCard
Paramaters:
{
    CheckType = NO;
    CustomerKey = "testCustomerKey1@gmail.com";
    TerminalKey = ***;
    Token = ***;
}
Response:
{
    CustomerKey = "testCustomerKey1@gmail.com";
    ErrorCode = 0;
    PaymentURL = "8a923cf3-1811-4fd8-abe4-36d836a52577";
    RequestKey = "83e1ecad-84d9-49a9-9912-15167f044562";
    Success = 1;
    TerminalKey = ***;
}
2020-03-24 21:05:34.728216+0300 tinkoff-asdk-importer[2501:35547] CARD DATA: PAN=4343434343434345;ExpDate=1134;CVV=000
2020-03-24 21:05:34.728567+0300 tinkoff-asdk-importer[2501:35547] ENCRYPTED CARD DATA: Qqksv1LXr5D3bhrv/k/65O80FWdMm4ZA2mrOLhBzYY73KzUO9YLnoIyxvrydIqCr+ZBz7EhkEkDVypPaxnoV99hSjosNTOZaZz1zRoockPDN4ylj6RrsHjBgWADBeAUclKbjQNV2WMLKNL14CcExgWRODklkan7NRmyiBvWyyPsY44BAw2n7lV71gpAnrMowwXTgpnGZOHVF8DqAQpk2vusqcKKbT46uLbiXhz5ET6vXwEpsK7vQJNDPwl1qXbzleB5qzcS0w102jmmbl7w3JA5hxFjEhb3Hdx6vynadp90ejBEGLgwJwxj0epU9pCb/Ly+hiqjQAA6m0vPepzcD9g==
2020-03-24 21:05:34.860509+0300 tinkoff-asdk-importer[2501:35547] URL: https://securepay.tinkoff.ru/v2/AttachCard
Paramaters:
{
    CardData = "Qqksv1LXr5D3bhrv/k/65O80FWdMm4ZA2mrOLhBzYY73KzUO9YLnoIyxvrydIqCr+ZBz7EhkEkDVypPaxnoV99hSjosNTOZaZz1zRoockPDN4ylj6RrsHjBgWADBeAUclKbjQNV2WMLKNL14CcExgWRODklkan7NRmyiBvWyyPsY44BAw2n7lV71gpAnrMowwXTgpnGZOHVF8DqAQpk2vusqcKKbT46uLbiXhz5ET6vXwEpsK7vQJNDPwl1qXbzleB5qzcS0w102jmmbl7w3JA5hxFjEhb3Hdx6vynadp90ejBEGLgwJwxj0epU9pCb/Ly+hiqjQAA6m0vPepzcD9g==";
    DATA =     {
        "E-mail" = "test@tinkoff.ru";
    };
    RequestKey = "83e1ecad-84d9-49a9-9912-15167f044562";
    TerminalKey = ***;
    Token = ***;
}
Response:
Error Domain=ru.tcsbank.asdk Code=3 "(null)" UserInfo={errorDetails=org.springframework.dao.InvalidDataAccessApiUsageException: The given id must not be null!; nested exception is java.lang.IllegalArgumentException: The given id must not be null!, errorMessage=Внутренняя ошибка системы интернет эквайринга., acquringResponse=ASDKAcquiringResponse object with data:
{
    Details = "org.springframework.dao.InvalidDataAccessApiUsageException: The given id must not be null!; nested exception is java.lang.IllegalArgumentException: The given id must not be null!";
    ErrorCode = 3;
    Message = "\U0412\U043d\U0443\U0442\U0440\U0435\U043d\U043d\U044f\U044f \U043e\U0448\U0438\U0431\U043a\U0430 \U0441\U0438\U0441\U0442\U0435\U043c\U044b \U0438\U043d\U0442\U0435\U0440\U043d\U0435\U0442 \U044d\U043a\U0432\U0430\U0439\U0440\U0438\U043d\U0433\U0430.";
    Success = 0;
}}

Что я делаю не так?

konstructor1 commented 4 years ago

Пытаюсь сохранить карту с помощью ASDKPaymentFormStarter.

Сервер падает с IllegalArgumentException:

2020-03-24 21:05:34.710014+0300 tinkoff-asdk-importer[2501:35547] URL: https://securepay.tinkoff.ru/v2/AddCard
Paramaters:
{
    CheckType = NO;
    CustomerKey = "testCustomerKey1@gmail.com";
    TerminalKey = ***;
    Token = ***;
}
Response:
{
    CustomerKey = "testCustomerKey1@gmail.com";
    ErrorCode = 0;
    PaymentURL = "8a923cf3-1811-4fd8-abe4-36d836a52577";
    RequestKey = "83e1ecad-84d9-49a9-9912-15167f044562";
    Success = 1;
    TerminalKey = ***;
}
2020-03-24 21:05:34.728216+0300 tinkoff-asdk-importer[2501:35547] CARD DATA: PAN=4343434343434345;ExpDate=1134;CVV=000
2020-03-24 21:05:34.728567+0300 tinkoff-asdk-importer[2501:35547] ENCRYPTED CARD DATA: Qqksv1LXr5D3bhrv/k/65O80FWdMm4ZA2mrOLhBzYY73KzUO9YLnoIyxvrydIqCr+ZBz7EhkEkDVypPaxnoV99hSjosNTOZaZz1zRoockPDN4ylj6RrsHjBgWADBeAUclKbjQNV2WMLKNL14CcExgWRODklkan7NRmyiBvWyyPsY44BAw2n7lV71gpAnrMowwXTgpnGZOHVF8DqAQpk2vusqcKKbT46uLbiXhz5ET6vXwEpsK7vQJNDPwl1qXbzleB5qzcS0w102jmmbl7w3JA5hxFjEhb3Hdx6vynadp90ejBEGLgwJwxj0epU9pCb/Ly+hiqjQAA6m0vPepzcD9g==
2020-03-24 21:05:34.860509+0300 tinkoff-asdk-importer[2501:35547] URL: https://securepay.tinkoff.ru/v2/AttachCard
Paramaters:
{
    CardData = "Qqksv1LXr5D3bhrv/k/65O80FWdMm4ZA2mrOLhBzYY73KzUO9YLnoIyxvrydIqCr+ZBz7EhkEkDVypPaxnoV99hSjosNTOZaZz1zRoockPDN4ylj6RrsHjBgWADBeAUclKbjQNV2WMLKNL14CcExgWRODklkan7NRmyiBvWyyPsY44BAw2n7lV71gpAnrMowwXTgpnGZOHVF8DqAQpk2vusqcKKbT46uLbiXhz5ET6vXwEpsK7vQJNDPwl1qXbzleB5qzcS0w102jmmbl7w3JA5hxFjEhb3Hdx6vynadp90ejBEGLgwJwxj0epU9pCb/Ly+hiqjQAA6m0vPepzcD9g==";
    DATA =     {
        "E-mail" = "test@tinkoff.ru";
    };
    RequestKey = "83e1ecad-84d9-49a9-9912-15167f044562";
    TerminalKey = ***;
    Token = ***;
}
Response:
Error Domain=ru.tcsbank.asdk Code=3 "(null)" UserInfo={errorDetails=org.springframework.dao.InvalidDataAccessApiUsageException: The given id must not be null!; nested exception is java.lang.IllegalArgumentException: The given id must not be null!, errorMessage=Внутренняя ошибка системы интернет эквайринга., acquringResponse=ASDKAcquiringResponse object with data:
{
    Details = "org.springframework.dao.InvalidDataAccessApiUsageException: The given id must not be null!; nested exception is java.lang.IllegalArgumentException: The given id must not be null!";
    ErrorCode = 3;
    Message = "\U0412\U043d\U0443\U0442\U0440\U0435\U043d\U043d\U044f\U044f \U043e\U0448\U0438\U0431\U043a\U0430 \U0441\U0438\U0441\U0442\U0435\U043c\U044b \U0438\U043d\U0442\U0435\U0440\U043d\U0435\U0442 \U044d\U043a\U0432\U0430\U0439\U0440\U0438\U043d\U0433\U0430.";
    Success = 0;
}}

Что я делаю не так?

Сталкивался с такой проблемой, по-моему это происходит в случае если по данному пользователю еще не проходили транзакции, и вроде только на demo терминале..

slavabuv commented 4 years ago

попробуйте CheckType = ASDKCardCheckType_3DS в этом случае карта проверяется списывается и возвращается 1р. и CustomerKey инициализируется и привязывается

dmitriykotenko commented 4 years ago

@slavabuv, спасибо, что ответили. Но почему сразу же закрыли вопрос? И почему ответили только через 5 месяцев?

slavabuv commented 4 years ago

этот кейс на сервере ещё не исправили. можно и нужно пользоваться обходными путями