Što je jedinstveni identifikator za plaćanje? Kako mogu saznati jedinstveni identifikator plaćanja? Operacija "Zahtjev za primanje rezultata zahtjeva za izjavu pravne osobe na temelju prethodno primljenog identifikatora zahtjeva Opis ulaznih parametara
Provjera se provodi kako bi se osiguralo da se račun i naknadna uplata mogu ispravno obraditi na strani Projekta.
Uz pojednostavljenu integraciju, korisnički ID i narudžba provjeravaju se dva puta: pri prelasku na obrazac za plaćanje i pri odabiru načina plaćanja.
Za projekt je potrebno:
- Korisnički ID ili URL za provjeru narudžbe(navedite u Tehničkim postavkama na osobnom računu);
- Rukovatelj sposoban prihvatiti i prepoznati parametre zahtjeva od Sustava i odgovoriti kako Sustav očekuje.
Ako je provjera identifikatora nakon izdavanja računa završila s pogreškom, tada se račun neće izdati, a korisnik će biti preusmjeren na stranicu s pogreškom u plaćanju koju je projekt naveo pomoću parametra return_url_fail ili u tehničkim postavkama (ako stranica nije navedena, slična stranica koristi se na strani sustava). Na stranicu s pogreškom pri plaćanju primjenom metode GET parametar se automatski šalje err_msg sa značenjem "Ovaj lik ne postoji.".
Zatražite parametre od sustava do projekta
Sustav šalje Projektu zahtjev za URL radi provjere identifikatora ili korisničkog reda navedenog u Tehničkim postavkama na osobnom računu.
- način prijenosa - POST;
- kodiranje - UTF-8.
Parametar |
Opis parametara |
Format parametara |
Obavezni parametar |
---|---|---|---|
korisnički ID | Identifikator korisnika ili narudžbe (jednak vrijednosti parametra nadimak v) | niz (256) | Da |
userid_extra | Dodatne informacije potrebne za plaćanje ili prikupljanje statistike na strani projekta (jednake vrijednosti parametra nick_extra ) | niz (500) | Ne |
ključ |
Potvrdni potpis zahtjeva. Formira se kao raspršivanje prema md5 algoritmu iz spajanja sljedećih parametara:
|
md5 (0userid0 tajna projekta) | Da |
iznos | 0 | Da | |
paymentid | Provjera zahtjeva za provjeru. Prihvaća samo nulu (iznos = 0) | 0 | Da |
orderid | ID plaćanja u računovodstvenom sustavu Projekta (jednak vrijednosti parametra order_id v) | varchar (64) | Ne |
Parametri odgovora projekta
Projekt bi trebao dobiti odgovor na zahtjev Sustava.
Za prosljeđivanje parametara upita koriste se sljedeća pravila:
- format - XML;
- kodiranje - UTF-8.
Parametar |
Opis parametara |
Format parametara |
Obavezni parametar |
---|---|---|---|
kodirati |
Kôd odgovora na zahtjev.
|
(osjetljivo na velika i mala slova) |
Da |
komentar | Dekodiranje koda odgovora na zahtjev. Primjeri teksta:
|
niz (400) | Ne |
Primjer odgovora na zahtjev za provjeru korisničkog ID -a ili narudžbe
DA
Primjer minimalnog rukovatelja sistemskim zahtjevima pri provjeri korisnika ili identifikatora narudžbe
// Generiranje funkcije odgovora sendResponse ($ status, $ message = "") ($ response = ""." \ n "; $ response. =" ". $ status."
"." \ n "; $ response. ="
Opće informacije
Opis ulaznih parametara
Opis izlaznih parametara
ili
Izlaz: XML dokument prema WS_ULIPOTVID_2_311_09_04_02_01.XSD shemi
Parametri složenog tipa opisani su u Dodatku "Opis općih struktura podataka" (u odredbama 10, 6, 9).
Povratni kodovi
№ | Povratni kod | Opis povratnog koda | Uvjeti pojavljivanja | Komentar |
1 | 01 | Tražene informacije nisu pronađene. | Događa se pod uvjetom da se podaci o pravnoj osobi ne nalaze u Jedinstvenom državnom registru pravnih osoba | |
2 | 51 | Zahtjev prihvaćen za obradu | Događa se kada se zahtjev uspješno primi na obradu | |
3 | 52 | Odgovor nije spreman | Javlja se u slučaju nedostupnosti odgovora na zahtjev uspješno prihvaćen za obradu | Koristi se prilikom upućivanja asinkronog zahtjeva |
4 | 53 | Nije moguće dostaviti podatke o pravnoj osobi / individualnom poduzetniku u elektroničkom formatu | Događa se kada je nemoguće formirati odgovor na zahtjev u elektroničkom obliku | |
5 | 82 | Format-logička pogreška kontrole | Događa se kada dokument (zahtjev) ne odgovara xsd-shemi | Rezerva, ne smije se koristiti |
6 | 83 | Ne postoji zahtjev s navedenim ID -om zahtjeva i vrstom traženih informacija od ovog tijela | Događa se u situaciji kada je netočan (nepoznat) identifikator zahtjeva naveden u zahtjevu za dobivanje rezultata za izjavu izjave pravne osobe i (ili) zahtjev s takvim identifikatorom nije primljen od ovog tijela | Koristi se s asinkronim zahtjevom (pri primanju rezultata zahtjeva za izvod za pravnu osobu) |
9 | 99 | Pogreška sustava | Događa se kada postoje interne greške u softveru IS Federalne porezne službe Rusije |
Testni slučajevi
Odgovor na zahtjev za dobivanje rezultata zahtjeva za izjavu pravne osobe, u slučaju da zahtjev još nije obrađen
Odgovor na zahtjev za dobivanje rezultata zahtjeva za izjavu pravne osobe s povratnom šifrom 53
Odgovor na zahtjev za dobivanje rezultata zahtjeva za izjavu pravne osobe s greškom (čija šifra obrade nije rezervirana)
(vrijednosti atributa se mijenjaju i)
|
Napomena: Uvjeti za ovu pogrešku u testnom okruženju umjetno su pokrenuti. Ovaj primjer opisuje opću logiku i strukturu odgovora na pogrešku. Prilikom testiranja na produktivnom okruženju, vraćanje potpuno istog odgovora bez osiguravanja potrebnih uvjeta nije moguće.
- Sučelje mora prihvatiti zahtjeve preko HTTPS -a s IP adresa podmreža:
- 79.142.16.0, maska 255.255.240.0 (20)
- 91.232.230.0, maska 255.255.254.0 (23)
- Sučelje mora obraditi parametre koje je sustav proslijedio pomoću HTTP GET metode.
- Sučelje mora tvoriti odgovor sustavu u XML formatu u UTF-8 kodiranju.
- Razmjena informacija vrši se u načinu "zahtjev-odgovor", dok brzina odgovora ne smije biti veća od 60 sekundi, u protivnom sustav prekida vezu do isteka vremena.
- Ako se očekuje da će očekivani broj plaćanja usluga povezanog davatelja biti intenzivan (do 10 plaćanja po minuti ili više), potrebno je da sučelje podržava komunikaciju s više niti do 10-15 istovremenih veza.
- Sučelje mora prihvatiti zahtjeve putem HTTPS -a na jednom od sljedećih TCP portova: 80, 81, 443, 8008, 8080, 8081, 8090, 8443, 4433. Korištenje drugih portova nije dopušteno.
Osnovni principi sučelja
Svi zahtjevi se prosljeđuju metodom GET, parametri se prosljeđuju u stazi zahtjeva.
Prijenos podataka o plaćanju pružatelju usluga provodi se putem QIWI Wallet sustava u dvije faze - provjera statusa pretplatnika i izravno izvršavanje plaćanja. Također se može dodati preliminarna faza dobivanja dodatnih parametara plaćanja od pružatelja usluga koji pretplatniku pruža nekoliko usluga radi informiranja platitelja i dodavanja parametara plaćanja po izboru platitelja.
Vrstu zahtjeva sustav QIWI Wallet prenosi u naredbenu varijablu - niz koji preuzima vrijednosti check, pay ili getInfo:
Parametri upita
Svi su parametri potrebni u upitima u kojima se koriste.
Parametar | Format | Opis | U kojima se koriste upiti |
---|---|---|---|
txn_id | Cijeli broj do 20 znakova | Jedinstveni identifikator plaćanja u QIWI sustavu. Ovaj se identifikator koristi za rješavanje kontroverznih pitanja. | ček, plaćanje |
iznos | Razlomljeni broj točan do stotina, koristi se kao separator. (točka). Ako je zbroj cijeli broj, tada je i dalje pun točaka i nula, na primjer - 152,00. | Iznos plaćanja | ček, plaćanje |
ccy | Oznaka valute Alpha-3 ISO 4217 | Valuta plaćanja | ček, plaćanje |
txn_date | GGGGMMDDHHMMSS | Datum plaćanja (datum plaćanja u sustavu znači datum primitka zahtjeva od klijenta). Do tog datuma provodi se daljnje usklađivanje poravnanja između QIWI Novčanika i davatelja usluga. Na primjer, klijent je 31. 12. 2010. u 23:59:59 poslao zahtjev sustavu QIWI Wallet, a sustav QIWI Novčanik svom je davatelju zahtjev poslao 01. 01. 2011. u 00:00:05. To može dovesti do problema usklađivanja plaćanja ako sustav davatelja transakcije postavi u sljedeće obračunsko razdoblje. Kako bi izbjegli takve probleme, QIWI Wallet pružatelju pruža izvorni datum plaćanja. |
platiti |
račun | Niz koji sadrži slova, brojeve i posebne znakove, do 200 znakova | ID pretplatnika. Davatelj identificira svog pretplatnika jedinstvenim identifikatorom (broj osobnog računa, telefonski broj, prijava itd.). Prije nego što se pošalje davatelju, identifikator se provjerava u odnosu na regularni izraz koji. | ček, plaćanje, getInfo |
ekstra | Dopušteni su brojevi (0-9), donja crta (_) i mala latinična slova (a-z) | Dodatni detalji plaćanja (dodatna polja). Ti se parametri mogu koristiti ako se plaćanje ne može izvršiti bez dodatnih podataka (jedan korisnički ID u sustavu davatelja usluga nije dovoljan). Na primjer, vaš korisnički ID je broj vaše kreditne kartice, ali također morate navesti datum isteka kartice da biste izvršili plaćanje. Popis potrebnih polja za prijenos davatelju usluga mora biti naveden u. |
ček, plaćanje |
prvId | Cijeli broj | ID usluge u zajednički sustav davatelj. | dobiti informacije |
ime_parametra | Format naziva i vrijednosti parametara davatelj usluga navodi u. | Dodatni parametri za identifikaciju pretplatnika | dobiti informacije |
Kako bi se podržala proširivost i održala uslužnost pružatelja usluga tijekom razdoblja kada su omogućene različite funkcije predviđene protokolom (na primjer, omogućavanje prijenosa novih podataka o plaćanju), pretpostavlja se da davatelj ne sprječava pojavljivanje novih parametara HTTP u zahtjev.
Jamči se da pojavljivanje novih parametara u zahtjevu neće dovesti do potrebe za promjenom obrade zahtjeva od strane davatelja, osim ako je takva promjena logike dogovorena s davateljem.
Format odgovora
Davatelj mora vratiti odgovor na zahtjeve sustavu u XML formatu. Opća struktura odgovora prikazana je na kartici s desne strane.
Ako bilo koji od zahtjeva davatelju usluga ne uspije, davatelj vraća kôd pogreške u skladu s.
Informacijski sustav pružatelja usluga ne bi trebao sadržavati dvije uspješne uplate s istim txn_id brojem. Ako sustav ponovno pošalje zahtjev s identifikatorom txn_id koji već postoji u informacijskom sustavu davatelja usluga, davatelj mora vratiti rezultat obrade prethodnog zahtjeva.
U odgovoru mogu biti prisutne sljedeće oznake:
Na primjer, postoji situacija: klijent je 31. 12. 2010. u 23:59:59 poslao zahtjev sustavu. Uzimajući u obzir kašnjenje u obradi podataka i slanju informacija komunikacijskim kanalima, davatelj će uplatu primiti 01.01.2011. 00:00:05 te će, sukladno tome, biti zabilježen u sustavu davatelja usluga u drugom izvještajnom razdoblju. Kako bi se izbjegli problemi s različitim razdobljima izvješćivanja pri usklađivanju, potrebno je da davatelj usluge vrati datum na koji se vodi računovodstvo u njegovom sustavu.
Primjer zahtjeva za provjeru statusa računa pretplatnika i registraciju plaćanja
Primjeri uvjeta:
Aplikacija za plaćanje pružatelja usluga payment_app nalazi se na adresi yourservice.prv.ru, poslužitelj podržava HTTPS veze na portu 8443.
Kako bi provjerio status pretplatnika, sustav QIWI Wallet generira zahtjev (pogledajte karticu s desne strane).
DOBITI / payment_app? command = check & txn_id = 1234567 & account = 4957835959 & sum = 10.45 & ccy = RUBZahtjev sadrži parametre:
- naredba = provjera - identifikator zahtjeva za provjeru statusa pretplatnika;
Uspješan odgovor davatelja usluga (pogledajte karticu s desne strane).
Vraćeni rezultat = 0 na zahtjev za provjeru označava da se osobni račun pretplatnika s odgovarajućim brojem u polju računa može nadopuniti iznosom navedenim u zahtjevu u polju zbroja. Nakon uspješne provjere statusa računa pretplatnika, sustav nastavlja s formiranjem i slanjem zahtjeva za dopunu stanja (zahtjev za plaćanje).
Primjer zahtjeva za dopunu osobnog računa
Primjeri uvjeta:
Za potvrdu plaćanja sustav QIWI Wallet generira zahtjev (pogledajte karticu s desne strane).
DOBITI / payment_app? command = pay & txn_id = 1234567 & txn_date = 20110815120133 & account = 4957835959 & sum = 10.45 & ccy = RUB HTTP / 1.1 Domaćin: yourservice.prv.ru:8443 Odgovor pružatelja uslugaZahtjev sadrži parametre:
- naredba = plati - identifikator zahtjeva za dopunu salda pretplatnika;
- txn_id = 1234567 - interni broj plaćanja u QIWI sustavu;
- txn_date = 20090815120133 - datum obračuna plaćanja u QIWI sustavu;
- account = 4957835959 - identifikator pretplatnika u informacijskom sustavu davatelja usluga;
- zbroj = 10,45 - iznos koji se uplaćuje na osobni račun pretplatnika;
- ccy = RUB - valuta iznosa uplaćenog na osobni račun pretplatnika.
Vraćajući rezultat = 0 za zahtjev za plaćanje, pružatelj usluge obavještava o uspješnom završetku operacije nadopune stanja. Sustav u potpunosti dovršava obradu ove transakcije.
Izborno polje komentara sadrži komentar usluge.
Primjer zahtjeva za primanje dodatnih podataka o plaćanju
Primjeri uvjeta:
Aplikacija za plaćanje pružatelja usluga payment_app nalazi se na adresi yourservice.prv.ru, poslužitelj podržava HTTPS veze na portu 8443.
Za dobivanje dodatnih podataka o plaćanju sustav QIWI Novčanik generira zahtjev (pogledajte karticu s desne strane).
DOBITI / payment_app? command = getInfo & prvId = 12345 & account = 4957835959 & name1 =% 26% 30AB & name2 = 0 HTTP / 1.1 Domaćin: yourservice.prv.ru:8443 Odgovor pružatelja uslugaZahtjev sadrži parametre:
- naredba = getInfo - identifikator zahtjeva za primanje dodatnih podataka o plaćanju za pretplatnika;
- prvId = 12345 - identifikator za identifikaciju davatelja usluga;
- account = 4957835959 - identifikator pretplatnika u informacijskom sustavu davatelja usluga;
- name1, name2 - dodatni identifikatori pretplatnika.
Za odgovor pružatelja usluga pogledajte karticu s desne strane.
Vraćanje rezultata = 0 u zahtjev getInfo znači da je zahtjev uspješno dovršen i da su primljeni dodatni podaci za prikaz pretplatniku.
Izborno polje komentara sadrži komentar usluge.
Svakodnevno pomirenje
Do 10:00 po moskovskom vremenu sustav generira i šalje na navedenu adresu elektronički registar uplata primljenih za prethodni dan.
Registar ima sljedeću strukturu:
Datum transakcije (Moskva); Datum izvješća; Vrsta; Broj transakcije; ID valute transakcije; Iznos transakcije; Komentar trgovca; Broj transakcije / računa trgovca; Datum izdavanja računa; QW ID; Račun; ID povrata
Polja su odvojena znakom; , razlomačni dio zbroja odvojen je točkom, datum / vrijeme - Moskva, unos linije može se sastojati od oba znaka x0D x0A, i jednostavno od x0D.
Na primjer:
31.02.2005 00:04:00;31.02.2005
00: 00: 00; Plaćanje; 3464968222; USD; 5,00 ;;;;; 0957835959 ;;
31.02.2005 00: 04: 00; 31.02.2005 00: 00: 00; Plaćanje; 3464968912; RUB; 10,34 ;;;;; [zaštićena e -pošta];;
31.02.2005 00: 11: 00; 02/31/2005 00: 00: 00; Plaćanje; 3464974548; EUR; 4,72 ;;;;; ABC-12345 ;;
Sustav uključuje samo uspješne uplate u registar.
Potvrđena plaćanja smatraju se uplatama koje su stigle i putem internetske razmjene poruka i u registru.
Ako registar ne sadrži plaćanja koja su izvršena u bazi podataka davatelja usluga, ili sadrži plaćanja koja se ne nalaze u bazi podataka davatelja usluga, ili ako registar nije primljen, morate se obratiti QIWI kontakt osobi navedenoj u ugovoru do 12:00 razjasniti situaciju i donijeti odluku.
Dodatne mogućnosti za autorizaciju zahtjeva
U zahtjevu za povezivanje davatelj usluge može navesti identifikator (prijavu) i tajnu lozinku, koja se koristi za autorizaciju prilikom podnošenja zahtjeva iz QIWI -a.
Ove autorizacijske podatke prenosi standardna pravila osnovna provjera autentičnosti za HTTP (S) zahtjeve. HTTP zaglavlje autorizacije dodaje se zahtjevu. Zaglavlje sadrži redak Basic (s razmakom na kraju) i par "login: password", kodiran u BASE64:
Ovlaštenje: Osnovno ***
BASE64 ("Prijava: Lozinka") = "***"
Aplikacija za povezivanje (uzorak)
Popis kodova završetka
Prilikom obrade zahtjeva iz sustava, davatelj mora sve pogreške koje se pojave u njegovoj aplikaciji uskladiti s donjim popisom i vratiti odgovarajuće kodove u elementu.
Znak + u stupcu "fatality" označava znak fatalne greške. Za sustav QIWI Novčanik, fatalna pogreška znači da će ponovno slanje zahtjeva s istim parametrima rezultirati 100% ponavljanjem iste pogreške - stoga sustav prestaje obrađivati zahtjev klijenta i završava s pogreškom.
Greška koja nije fatalna znači za sustav da ponavljanje zahtjeva s istim parametrima nakon određenog vremenskog razdoblja može dovesti do uspjeha. Sustav će pokušati ponoviti zahtjeve koji ne uspiju s greškom koja nije fatalna, neprestano povećavajući interval sve dok operacija ne uspije ili ne uspije, ili dok zahtjev ne istekne - 24 sata.
Neuspjeh u komunikaciji s poslužiteljem pružatelja pogreška je koja nije fatalna.
Nedostatak elementa u odgovoru (nevažeći XML, usluga privremeno nedostupna stranica itd.) Također je pogreška koja nije fatalna.
Kodirati |
---|