Webmoney expert - autorizare ney, derivă din Twilight
Material pentru dezvoltatori și proprietarii de site-ul web.
Serviciul de lucru Principiul Login.WebMoney
Apăsați butonul [Salvare].
URL-ul apar în listă. Serviciul ia acordat o urlid specială (prima coloană), constând dintr-un set de litere și cifre. Căci ceea ce este - vom înțelege mai târziu.
URL-ul adăugate pot fi editate (importante: aceasta modifică urlid) sau șterse. Editarea este în esență același cu ștergerea vechi și adăugați o nouă adresă URL.
Odată ajuns pe site-ul Login.WebMoney, utilizatorul va vedea următoarele:
După cum puteți vedea, vom obține sistemul o mulțime de informații, dar în cazul clasic (în exemplul nostru, de asemenea), nu toate informațiile de care avem nevoie. Cel mai important lucru aici - parametrii WmLogin_Ticket și WmLogin_WMID. Prima conține biletul (amintesc bilet - este un non-repetarea unei parole unice de sesiune), iar al doilea conține WMID utilizator.
Este clar că orice atacator poate simula trimiterea la adresa URL a acestui formular cu un bilet fals și WMID. Prin urmare, nu trebuie să luați totul la valoarea nominală și este imperios necesar pentru a verifica fiabilitatea biletului. Dar acest lucru ne zaymomsya un pic mai târziu, dar acum a scrie un simplu cod în PHP, care va fi pe motive formale pentru a reduce apelurile false la URL-ul nostru, chiar și în această etapă.
Iată-ne: 1) pentru a verifica dacă parametrul WmLogin_UrlID obținut prin script-ul nostru, de fapt, coincide cu urlID, care ne-a dat sistemul (a se vedea a treia captura de ecran a articolului). 2) Asigurați-vă că biletul are formatul corect, și anume Se compune din 32 de caractere, care pot include doar litere englezești, numere, simboluri și $ /. În cazul în care sunt trecute cu succes controalele - să continue executarea script-ul; dacă nu, se afișează un mesaj de eroare.
Așa cum am spus, dupa ce a primit biletul este necesar să se verifice autenticitatea acestuia. Numai atunci când vom vedea că biletul este autentic, putem fi 100% sigur că este corectă și de utilizare WMID, am obținut cu datele de bilete.
Verificați autenticitatea biletului va fi în același script, care este doar biletul și primite. Deci, cel mai probabil, acesta va fi în cazul dumneavoastră. Verificarea durează 1-2 secunde, timp în care utilizatorul va aștepta o adresă URL de descărcare în browser.
Cererea trebuie să aibă următorul format:
Ce trebuie transmise în aceste setări:
Cererea trebuie trimisă prin metoda POST, asa ca vom folosi biblioteca libcurl (FLEXIE). De regulă, acesta este inclus în PHP construi chiar și pe virtual hosting ieftin. Verificați dacă suportul FLEXIE este activat pe serverul dvs., puteți utiliza phpinfo () sau cam asa: echo function_exists ( „curl_init“); .
Am pus această funcție la sfârșitul de script-ul nostru încă neterminat.
Fiți atenți la următoarele linii:
Pentru a (pentru securitate și protecție împotriva atacurilor DNS-) în timpul unei sesiuni FLEXIE ar putea verifica valabilitatea certificatului pe serverul Login.WebMoney, folosim argumentele și CURLOPT_CAINFO CURLOPT_SSL_VERIFYPEER. Pentru a face acest lucru, avem nevoie de a plasa Login.WebMoney certificatul rădăcină undeva pe serverul dvs. și setați calea către acesta (de la rădăcina serverului) în CURLOPT_CAINFO argumentul.
De asemenea, rețineți că în cazul unor erori atunci când se utilizează ondulație _GetAnswer () funcția de linie
Acesta indică numărul și descrierea erorii.
Permiteți-mi să vă reamintesc, ne-am oprit la care a primit un răspuns de la serverul Login.WebMoney și salvat-l în $ resxml variabila. format XML-răspuns este:
Care sunt atributele unui singur parametru de răspuns:
- retval - codul rezultat al verificării biletului. 0 - în cazul în care există un bilet, este valabil și nu a expirat.
- sval - o descriere text a rezultatului verificării biletului.
- lastAccess - ora UTC ultimului acces la scanat biletul.
- expiră - ora UTC când valabilitatea biletului verificat expiră.
Dintre toate atributele ne interesează doar în retval. În cazul în care este 0, validarea biletului este completat cu un rezultat pozitiv, biletul în sine este valabil și, în consecință, sunt primite cu ea WMID poate fi considerată confirmată. Alte coduri indică fie o eroare la verificarea biletului sau că biletul nu este autentic.
Deci, rămâne să completeze codul de php-script-ul nostru analiză XML-răspuns și retval valoarea rezultată. Acest lucru se poate face în moduri foarte diferite, în funcție de preferințe. În PHP, o mulțime de instrumente pentru XML-parsare. Mai mult decât atât, deoarece răspunsul este structura foarte simplă și clară, valoarea trage retval acestora este posibilă chiar și folosind expresii regulate. Cu toate acestea, vom folosi exemplul familiar lui pentru noi și o bibliotecă simplă SimpleXML (acceptate numai în PHP5, dar nu și în PHP4):
Și acest lucru este, de fapt, totul. În momentul de față, ai un WMID utilizator valid, iar utilizatorul se află pe site. Cum de a dispune de această bogăție - este de până la tine, în funcție de situația dumneavoastră particulară. De regulă, este necesar să fie: 1) pentru a menține WMID utilizator în baza de date, și de a efectua o acțiune odată ce utilizatorul pe site-ul, sau 2) pentru a începe sesiunea pentru vizitator, legarea WMID ei, să efectueze acțiuni suplimentare.
Complet cod de script din exemplul nostru poate fi descărcat de aici. Cum funcționează în practică, puteți verifica aici.
Ce altceva trebuie să știți