Co to jest unikalny identyfikator płatności? Jak mogę znaleźć unikalny identyfikator płatności? Operacja „Wniosek o otrzymanie wyniku wniosku o oświadczenie osoby prawnej na podstawie otrzymanego wcześniej identyfikatora wniosku Opis parametrów wejściowych
Weryfikacja jest przeprowadzana w celu upewnienia się, że faktura i późniejsza płatność mogą być prawidłowo przetworzone po stronie Projektu.
Dzięki uproszczonej integracji identyfikator użytkownika i zamówienie są weryfikowane dwukrotnie: przy przejściu na formę płatności i przy wyborze metody płatności.
Projekt potrzebuje:
- Identyfikator użytkownika lub adres URL weryfikacji zamówienia(określić w Ustawieniach Technicznych w Koncie Osobistym);
- Program obsługi zdolny do akceptowania i rozpoznawania parametrów żądania z Systemu i reagowania zgodnie z oczekiwaniami Systemu.
Jeżeli weryfikacja identyfikatora po zakończeniu faktury z błędem, to faktura nie zostanie wystawiona, a użytkownik zostanie przekierowany na stronę błędu płatności określoną przez projekt za pomocą parametru return_url_fail lub w ustawieniach technicznych (jeśli strona nie jest określona, podobna strona jest używana po stronie Systemu). Do strony błędu płatności przy użyciu metody GET parametr jest wysyłany automatycznie err_msg ze znaczeniem „Ta postać nie istnieje”..
Zażądaj parametrów z Systemu do Projektu
System wysyła do Projektu zapytanie o adres URL do sprawdzenia identyfikatora lub kolejności użytkownika określonej w Ustawieniach Technicznych w Koncie Osobistym.
- metoda transferu - POCZTA;
- kodowanie - UTF-8.
Parametr |
Opis parametrów |
Format parametrów |
Obowiązkowy parametr |
---|---|---|---|
identyfikator użytkownika | Identyfikator użytkownika lub zamówienia (równy wartości parametru) przezwisko v) | sznurek (256) | tak |
userid_extra | Dodatkowe informacje wymagane do dokonania płatności lub zebrania statystyk po stronie Projektu (równe wartości parametru) nick_dodatkowy ) | sznurek (500) | Nie |
klucz |
Podpis weryfikacyjny wniosku. Powstaje jako hash zgodnie z algorytmem md5 z połączenia następujących parametrów:
|
md5 (0userid0 tajny projekt) | tak |
ilość | 0 | tak | |
identyfikator płatności | Sprawdzam żądanie czeku. Akceptuje tylko zero (ilość = 0) | 0 | tak |
identyfikator zamówienia | Identyfikator płatności w systemie księgowym Projektu (równy wartości parametru) identyfikator_zamówienia v) | warchar (64) | Nie |
Parametry odpowiedzi projektu
Projekt powinien otrzymać odpowiedź na żądanie Systemu.
Do przekazywania parametrów zapytania używane są następujące reguły:
- format - XML;
- kodowanie - UTF-8.
Parametr |
Opis parametrów |
Format parametrów |
Obowiązkowy parametr |
---|---|---|---|
kod |
Poproś o kod odpowiedzi.
|
(wielkość liter ma znaczenie) |
tak |
komentarz | Dekodowanie kodu odpowiedzi na żądanie. Przykłady tekstu:
|
sznurek (400) | Nie |
Przykład odpowiedzi na prośbę o weryfikację identyfikatora użytkownika lub zamówienia
TAK
Przykład minimalnej obsługi żądania systemowego podczas sprawdzania identyfikatora użytkownika lub zamówienia
// Wygeneruj funkcję odpowiedzi sendResponse ($ status, $ message = "") ($ response = ""." \ n "; odpowiedź $. =" ". $ status."
"." \ n "; odpowiedź $. ="
Informacje ogólne
Opis parametrów wejściowych
Opis parametrów wyjściowych
lub
Wyjście: Dokument XML wg schematu WS_ULIPOTVID_2_311_09_04_02_01.XSD
Parametry typu złożonego są opisane w Dodatku „Opis ogólnych struktur danych” (w punktach 10, 6, 9).
Kody zwrotne
№ | Kod powrotu | Opis kodu zwrotnego | Warunki wystąpienia | Komentarz |
1 | 01 | Żądane informacje nie zostały znalezione. | Występuje pod warunkiem, że informacji o osobie prawnej nie ma w Jednolitym Państwowym Rejestrze Osób Prawnych | |
2 | 51 | Żądanie przyjęte do przetworzenia | Występuje, gdy żądanie zostanie pomyślnie odebrane do przetworzenia | |
3 | 52 | Odpowiedź nie jest gotowa | Występuje w przypadku braku odpowiedzi na żądanie pomyślnie przyjęte do przetworzenia | Używane podczas wykonywania asynchronicznego żądania |
4 | 53 | Informacje dotyczące osoby prawnej / przedsiębiorcy indywidualnego nie mogą być przekazywane w formie elektronicznej | Występuje, gdy nie można sformułować odpowiedzi na żądanie w formie elektronicznej | |
5 | 82 | Błąd kontroli formatu logicznego | Występuje, gdy dokument (żądanie) nie pasuje do schematu xsd | Rezerwa, nie może być używana |
6 | 83 | Brak żądania o określonym identyfikatorze żądania i rodzaju żądanych informacji od tego organu | Występuje w sytuacji, gdy we wniosku o uzyskanie wyniku na oświadczenie o osobie prawnej wskazano błędny (nieznany) identyfikator wniosku i (lub) nie otrzymano wniosku z takim identyfikatorem z tego organu | Używany z żądaniem asynchronicznym (podczas odbierania wyniku żądania zestawienia dla podmiotu prawnego) |
9 | 99 | Błąd systemu | Występuje, gdy w oprogramowaniu IS Federalnej Służby Podatkowej Rosji występują błędy wewnętrzne |
Przypadki testowe
Odpowiedź na wniosek o otrzymanie wyniku wniosku o oświadczenie osoby prawnej, w przypadku gdy wniosek nie został jeszcze rozpatrzony
Odpowiedź na prośbę o otrzymanie wyniku wniosku o oświadczenie osoby prawnej z kodem zwrotnym 53
Odpowiedź na żądanie otrzymania wyniku wniosku o oświadczenie osoby prawnej z błędem (którego kod przetwarzania nie jest zastrzeżony)
(zmiana wartości atrybutów i)
|
Uwaga: warunki dla tego błędu w środowisku testowym zostały sztucznie wywołane. Ten przykład opisuje ogólną logikę i strukturę reakcji na błąd. Podczas testowania w środowisku produktywnym zwrócenie dokładnie tej samej odpowiedzi bez podania niezbędnych warunków nie jest możliwe.
- Interfejs musi akceptować żądania przez HTTPS z adresów IP podsieci:
- 79.142.16.0, maska 255.255.240.0 (20)
- 91.232.230.0, maska 255.255.254.0 (23)
- Interfejs musi przetwarzać parametry przekazywane przez system za pomocą metody HTTP GET.
- Interfejs musi stanowić odpowiedź do systemu w formacie XML w kodowaniu UTF-8.
- Wymiana informacji odbywa się w trybie „żądanie-odpowiedź”, przy czym czas odpowiedzi nie powinien przekraczać 60 sekund, w przeciwnym razie system zerwie połączenie po przekroczeniu limitu czasu.
- Jeśli spodziewana liczba płatności za usługi podłączonego dostawcy ma być intensywna (do 10 płatności za minutę lub więcej), interfejs musi obsługiwać komunikację wielowątkową do 10-15 jednoczesnych połączeń.
- Interfejs musi akceptować żądania HTTPS na jednym z następujących portów TCP: 80, 81, 443, 8008, 8080, 8081, 8090, 8443, 4433. Korzystanie z innych portów jest niedozwolone.
Podstawowe zasady interfejsu
Wszystkie żądania przekazywane są metodą GET, parametry przekazywane są w ścieżce żądania.
Przekazanie informacji o płatności do dostawcy realizowane jest przez system QIWI Wallet w dwóch etapach – sprawdzenie statusu abonenta oraz bezpośrednie dokonanie płatności. Można również dodać wstępny etap uzyskiwania dodatkowych parametrów płatności od dostawcy świadczącego abonentowi kilka usług, aby poinformować płatnika i dodać parametry płatności według wyboru płatnika.
Typ zapytania przekazywany jest przez system QIWI Wallet w zmiennej command - ciągu znaków, który przyjmuje wartości check, pay lub getInfo:
Parametry zapytania
Wszystkie parametry są wymagane w zapytaniach, w których są używane.
Parametr | Format | Opis | W jakich zapytaniach są używane |
---|---|---|---|
txn_id | Liczba całkowita do 20 znaków | Unikalny identyfikator płatności w systemie QIWI. Ten identyfikator służy do rozwiązywania kontrowersyjnych problemów. | sprawdź, zapłać |
suma | Liczba ułamkowa z dokładnością do setnych, używana jako separator. (punkt). Jeśli suma reprezentuje liczbę całkowitą, to nadal jest uzupełniona kropką i zerami, na przykład - 152,00. | Kwota płatności | sprawdź, zapłać |
ccy | Kod waluty Alfa-3 ISO 4217 | Waluta płatności | sprawdź, zapłać |
txn_date | RRRRMMDDGGMMSS | Data płatności (data płatności w systemie oznacza datę otrzymania zapytania od klienta). Do tego dnia następuje dalsze uzgadnianie rozliczeń pomiędzy QIWI Wallet a dostawcą. Na przykład klient wysłał żądanie do systemu QIWI Wallet w dniu 31.12.2010 o godzinie 23:59:59, a system QIWI Wallet wysłał żądanie do dostawcy w dniu 01.01.2011 o godzinie 00:00:05. Może to prowadzić do problemów z uzgadnianiem płatności, jeśli system dostawcy umieści transakcję w kolejnym okresie rozliczeniowym. Aby uniknąć takich problemów, QIWI Wallet zapewnia dostawcy pierwotną datę płatności. |
płacić |
konto | Ciąg zawierający litery, cyfry i znaki specjalne o długości do 200 znaków | ID Subskrybera. Dostawca identyfikuje swojego abonenta za pomocą unikalnego identyfikatora (numer konta osobistego, numer telefonu, login itp.). Przed wysłaniem do dostawcy identyfikator jest sprawdzany pod kątem wyrażenia regularnego. | sprawdź, zapłać, zdobądź informacje |
dodatkowy | Dozwolone są cyfry (0-9), podkreślenie (_) i małe litery łacińskie (a-z) | Dodatkowe szczegóły płatności (dodatkowe pola). Parametry te można wykorzystać, jeśli nie można dokonać płatności bez dodatkowych danych (jeden identyfikator użytkownika w systemie dostawcy nie wystarczy). Na przykład identyfikator użytkownika to numer karty kredytowej, ale aby dokonać płatności, musisz również określić datę ważności karty. Należy podać listę pól wymaganych do przesłania do dostawcy. |
sprawdź, zapłać |
prvId | Liczba całkowita | Identyfikator usługi w wspólny system dostawca. | zdobyć informacje |
Nazwa parametru | Format nazwy i wartości parametrów jest określony przez dostawcę w pliku. | Dodatkowe parametry do identyfikacji abonenta | zdobyć informacje |
W celu wsparcia rozszerzalności i utrzymania sprawności usługodawcy w okresie, w którym włączone są różne funkcje udostępniane przez protokół (np. umożliwienie przesyłania nowych szczegółów płatności), przyjmuje się, że usługodawca nie uniemożliwia pojawiania się nowych parametrów HTTP w prośba.
Gwarantuje się, że pojawienie się nowych parametrów w żądaniu nie spowoduje konieczności zmiany sposobu obsługi żądań przez dostawcę, chyba że taka zmiana logiki została uzgodniona z dostawcą.
Format odpowiedzi
Dostawca musi zwrócić odpowiedź na żądania do systemu w formacie XML. Ogólna struktura odpowiedzi jest pokazana w zakładce po prawej stronie.
Jeśli którekolwiek z żądań do dostawcy nie powiedzie się, dostawca zwraca kod błędu zgodnie z.
System informacyjny dostawcy nie powinien zawierać dwóch udanych płatności o tym samym numerze txn_id. Jeżeli system ponownie wyśle żądanie z identyfikatorem txn_id już istniejącym w systemie informacyjnym dostawcy, dostawca musi zwrócić wynik przetworzenia poprzedniego żądania.
W odpowiedzi mogą znajdować się następujące tagi:
Na przykład jest taka sytuacja: klient wysłał żądanie do systemu w dniu 31.12.2010 o godzinie 23:59:59. Biorąc pod uwagę opóźnienie w przetwarzaniu danych i przesyłaniu informacji kanałami komunikacji, dostawca otrzyma płatność w dniu 01.01.2011 00:00:05 i odpowiednio zostanie odnotowany w systemie dostawcy w kolejnym okresie sprawozdawczym. Aby uniknąć problemów z różnymi okresami rozliczeniowymi podczas uzgadniania, konieczne jest, aby dostawca zwracał w jego systemie datę dokonania rozliczenia.
Przykład prośby o sprawdzenie stanu konta subskrybenta i zarejestrowanie wpłaty
Przykładowe warunki:
Aplikacja płatnicza dostawcy payment_app znajduje się pod adresem yourservice.prv.ru, serwer obsługuje połączenia HTTPS na porcie 8443.
Aby sprawdzić status abonenta, system QIWI Wallet generuje zapytanie (patrz zakładka po prawej).
DOSTWAĆ / payment_app? command = check & txn_id = 1234567 & account = 4957835959 & sum = 10.45 & ccy = RUBŻądanie zawiera parametry:
- komenda = check - identyfikator żądania do sprawdzenia statusu abonenta;
Pomyślna odpowiedź dostawcy (patrz zakładka po prawej).
Zwrócenie wyniku = 0 do żądania sprawdzenia oznacza, że konto osobiste subskrybenta o odpowiednim numerze w polu konta może zostać uzupełnione o kwotę podaną we wniosku w polu sumy. Po pomyślnej weryfikacji stanu konta subskrybenta system przystępuje do tworzenia i wysyłania prośby o uzupełnienie salda (pay request).
Przykład prośby o doładowanie konta osobistego
Przykładowe warunki:
Aby potwierdzić płatność, system QIWI Wallet generuje żądanie (patrz zakładka po prawej).
DOSTWAĆ / payment_app? command = pay & txn_id = 1234567 & txn_date = 20110815120133 & account = 4957835959 & sum = 10.45 & ccy = RUB Host HTTP / 1.1: yourservice.prv.ru:8443 Odpowiedź dostawcyŻądanie zawiera parametry:
- polecenie = zapłać - identyfikator żądania uzupełnienia salda abonenta;
- txn_id = 1234567 - wewnętrzny numer płatności w systemie QIWI;
- txn_date = 20090815120133 - data rozliczenia płatności w systemie QIWI;
- account = 4957835959 - identyfikator abonenta w systemie informacyjnym dostawcy;
- suma = 10,45 - kwota do zasilenia osobistego konta subskrybenta;
- ccy = RUB - waluta kwoty zaksięgowanej na koncie osobistym subskrybenta.
Zwracając wynik = 0 dla żądania zapłaty, dostawca informuje o pomyślnym zakończeniu operacji uzupełnienia salda. System całkowicie kończy przetwarzanie tej transakcji.
Opcjonalne pole komentarza zawiera komentarz serwisowy.
Przykład prośby o dodatkowe dane do płatności
Przykładowe warunki:
Aplikacja płatnicza dostawcy payment_app znajduje się pod adresem yourservice.prv.ru, serwer obsługuje połączenia HTTPS na porcie 8443.
Aby uzyskać dodatkowe dane dotyczące płatności, system QIWI Wallet generuje żądanie (patrz zakładka po prawej).
DOSTWAĆ / payment_app? command = getInfo & prvId = 12345 & account = 4957835959 & name1 =% 26% 30AB & name2 = 0 Host HTTP / 1.1: yourservice.prv.ru:8443 Odpowiedź dostawcyŻądanie zawiera parametry:
- command = getInfo - identyfikator żądania otrzymania dodatkowych danych płatniczych dla subskrybenta;
- prvId = 12345 - identyfikator identyfikujący usługodawcę;
- account = 4957835959 - identyfikator abonenta w systemie informacyjnym dostawcy;
- name1, name2 - dodatkowe identyfikatory abonenta.
Zobacz kartę po prawej stronie, aby uzyskać odpowiedź dostawcy.
Zwrócenie wyniku = 0 do żądania getInfo oznacza, że żądanie zostało zakończone pomyślnie i otrzymano dodatkowe dane do wyświetlenia subskrybentowi.
Opcjonalne pole komentarza zawiera komentarz serwisowy.
Dzienne pojednanie
Do godziny 10:00 czasu moskiewskiego system generuje i wysyła na wskazany adres elektroniczny rejestr wpłat otrzymanych za dzień poprzedni.
Rejestr ma następującą strukturę:
Data transakcji (Moskwa); Data raportu; Typ; Numer transakcji; Identyfikator waluty transakcji; Kwota transakcji; Komentarz sprzedawcy; Numer transakcji / faktury sprzedawcy; Data wystawienia faktury; Identyfikator QW; Konto; Identyfikator zwrotu
Pola są oddzielone znakiem; , część ułamkowa sumy jest oddzielona kropką, data / godzina - Moskwa, nowy wiersz może składać się zarówno ze znaków x0D x0A, jak i po prostu z x0D.
Na przykład:
31.02.2005 00:04:00;31.02.2005
00: 00: 00; Płatność; 3464968222; USD; 5,00;;;;; 0957835959;;
31.02.2005 00:04:00;31.02.2005 00:00:00;Płatność;3464968912;RUB;10.34;;;;;; [e-mail chroniony];;
31.02.2005 00: 11: 00; 31.02.2005 00: 00: 00; Płatność; 3464974548; EUR; 4,72 ;;;;; ABC-12345 ;;
System uwzględnia tylko udane płatności w rejestrze.
Potwierdzone płatności są uważane za płatności, które przyszły zarówno w ramach wymiany wiadomości online, jak i w rejestrze.
Jeżeli rejestr nie zawiera płatności, które są dokonywane w bazie dostawcy lub zawiera płatności, których nie ma w bazie dostawcy lub jeśli rejestr nie został odebrany, należy skontaktować się z osobą kontaktową QIWI określoną w umowie do godziny 12:00 do godz. wyjaśnij sytuację i podejmij decyzję.
Dodatkowe opcje autoryzacji wniosków
We wniosku o połączenie dostawca może ustawić do niego identyfikator (login) oraz tajne hasło, które służą do autoryzacji przy składaniu żądań z QIWI.
Te dane autoryzacyjne są przesyłane przez standardowe zasady podstawowe uwierzytelnianie dla żądań HTTP (S). Do żądania dołączony jest nagłówek HTTP Authorization. Nagłówek zawiera linię Basic (ze spacją na końcu) oraz parę „login:hasło”, zakodowane w BASE64:
Autoryzacja: Podstawowa ***
BASE64 („Login: Hasło”) = „***”
Aplikacja połączenia (przykład)
Lista kodów ukończenia
Podczas przetwarzania żądań z systemu dostawca musi dopasować wszystkie błędy występujące w jego aplikacji do poniższej listy i zwrócić odpowiednie kody w elemencie.
Znak + w kolumnie krytycznej oznacza znak błędu krytycznego. Dla systemu QIWI Wallet błąd krytyczny oznacza, że ponowne wysłanie żądania z tymi samymi parametrami spowoduje 100% powtórzenie tego samego błędu – w związku z tym system przestaje przetwarzać żądanie klienta i kończy je z błędem.
Błąd niekrytyczny oznacza dla systemu, że powtórzenie żądania z tymi samymi parametrami po określonym czasie może prowadzić do sukcesu. System będzie ponawiać żądania, które kończą się niepowodzeniem z błędem niekrytycznym, stale zwiększając interwał do momentu powodzenia lub niepowodzenia operacji lub do wygaśnięcia żądania — 24 godziny.
Brak komunikacji z serwerem dostawcy jest błędem niekrytycznym.
Brak elementu w odpowiedzi (nieprawidłowy kod XML, strona chwilowo niedostępna usługi itp.) również jest błędem niekrytycznym.
Kod |
---|