Skip to main content

Scenariusze testowe PIS

Maxime avatar
Written by Maxime
Updated over 4 months ago

Testy inicjowania płatności (PIS)

ID

Krok

Test

Rezultat oczekiwany

Dodatkowe sprawdzenia

Komentarz

1

Utworzenie użytkownika APIHub

Wywołanie metody

POST /##{{api_url}}/user

z podaniem nowego unikalnego api-userId = userId

User zostaje dodany w LDS.

Metoda GET/##{{api_url}}/user/userId

gdzie {userId} to identyfikator podany w metodzie POST zwraca dane użytkownika (HTTP 200)

Sprawdzenie w bazie LDS

SELECT * FROM aspnetusers WHERE ExternalUserId = userId

zwraca 1 rekord

2

Usunięcie użytkownika APIHub

Wywołanie metody

DELETE ​/##{{api_url}}​/user

z podaniem api-userId = userId użytego w kroku 3

User zostaje usunięty z LDS.

Metoda GET/##{{api_url}}/user/userId

gdzie userId to identyfikator podany w metodzie DELETE zwraca brak użytkownika (HTTP 200) i komunikat:

{

"data": null,

"success": true

}

Sprawdzenie w bazie LDS

SELECT * FROM aspnetusers WHERE ExternalUserId = userId

zwraca 0 rekordów

3

Pobranie listy wspieranych metod płatności dla wskazanego ASPSPS

4

Inicjacja pojedynczej płatności (single payment)

Wywołanie metody

POST ##{{api_url}}/bank/swiftCode/##{{swiftCode}}/payment

z podaniem api-userId= userId z kroku 1

Płatność zostaje zainicjowana, w rezultacie otrzymujemy link do SCA z ASPSP, dla nowo stworzonej płatności

Sprawdzenie w bazie LDS

SELECT * FROM payment.payment WHERE transactionId = transactionId

zwraca 1 rekord

5

SCA

-

callback od ASPSP o poprawnie wykonanym SCA

SELECT * FROM apisession WHERE id = sessionId

zmiana statusu z Authentication na status = inProgress,

6

Pobranie statusu płatności

GET ##{{api_url}}/bank/SwiftCode/##{{swiftCode}}/payment/##{{transactionId}}

Informacja o statusie danej płatności enum :

Created
Completed
Pending
Completed

Sprawdzenie w bazie LDS

SELECT [Status] FROM payment.Payment WHERE id = transactionId

Odpytywanie o status płatności może zadziać się też samoistnie poprzez heurystykę schedulera, gdzie każdy payment jest odświeżany o wcześniej zdefiniowane interwały czasowe [5s, 20s, 60s, 5min, 1h, 6h*].

7

Pobranie listy zainicjowanych płatności

GET ##{{api_url}}/payment?PageNumber=1&PageSize=10

z podaniem api-userId= userId z kroku 1

Zwrócone wszystkie płatności danego usera

Sprawdzenie w bazie LDS

SELECT * FROM payment.Payment WHERE userId = (select id from aspnetusers where externalId = userId)

Did this answer your question?