Webmoney експерт - Ней разрешаване произтичат от Сумрака
Материал за разработчици и собственици на уебсайтове.
услуга принцип на работа Login.WebMoney
Натиснете бутона [Save].
URL се появява в списъка. Service му присъжда специална urlid (първата колона), състояща се от набор от букви и цифри. За какво е - ще разберем по-късно.
Добавен URL може да се редактира (важно: това променя urlid) или изтрита. Редактирането е по същество същото като да изтриете старата и добавяне на нов URL адрес.
След като на Login.WebMoney сайт, вашето потребителско ще видите следното:
Както можете да видите, ние получаваме системата много информация, но в класическия случай (в нашия пример, също) не цялата информация, която се нуждаем. Най-важното нещо тук - на WmLogin_Ticket параметри и WmLogin_WMID. Първата има билет (спомням билета - това е уникална парола неповтарящо сесия), а втората съдържа потребителското WMID.
Ясно е, че който и да е хакер може да се симулира изпращане на вашия URL на тази форма с фалшив билет и WMID. Ето защо, не трябва да приемате всичко за чиста монета и е наложително да се проверява достоверността на билета. Но това ние zaymomsya малко по-късно, но за сега напиши прост код в PHP, който ще бъде на формални основания за намаляване на фалшивите обаждания към нашия адреса, дори и на този етап.
Ето ни: 1), за да се провери дали WmLogin_UrlID параметър, получен чрез нашия скрипт, всъщност съвпада с urlID, който ни е дал на системата (виж третата екрана на статията). 2) Уверете се, че билетът е в правилния формат, т.е. Тя се състои от 32 знака, които могат да включват само английски букви, цифри, символи и $ /. Ако проверките са преминали успешно - продължи изпълнението на сценария; ако не е, то се показва съобщение за грешка.
Както казахме, след получаване на билета е необходимо да се провери автентичността му. Само когато виждаме, че билетът е автентичен, можем да бъдем 100% сигурни, че е правилно и потребителското WMID получихме с данните за билети.
Проверка на автентичността на билета ще бъде в един и същ скрипт, който е само на билета и получи. Така че, най-вероятно, той ще бъде във вашия случай. Проверете отнема 1-2 секунди, през което време потребителят ще чакат URL за сваляне на вашия браузър.
Искането трябва да има следния формат:
Какво трябва да се предава в тези настройки:
Заявка трябва да бъдат изпратени по метода на POST, така че ние ще използваме libcurl библиотеката (CURL). Като правило, това е включено в PHP изграждане дори на евтин виртуален хостинг. Проверете дали подкрепа CURL е активирана на вашия сървър, можете да използвате phpinfo () или така: ехо function_exists ( "curl_init"); ,
Ние събрахме тази функция в самия край на нашата все още недовършен сценарий.
Обърнете внимание на следните редове:
Да (за сигурност и защита от DNS атаки) по време на CURL сесия може да се провери валидността на сертификата на сървъра Login.WebMoney, ние използваме аргументите и CURLOPT_CAINFO CURLOPT_SSL_VERIFYPEER. За да направите това, ние трябва да поставите Login.WebMoney на главния сертификат някъде на вашия сървър и да зададете пътя до нея (от корена на сървъра) в спор CURLOPT_CAINFO на.
Също така имайте предвид, че в случай на грешки при използването на CURL в _GetAnswer () функция линия
Той показва броя и описанието на грешката.
Нека ви напомня, спряхме в която е получила отговор от Login.WebMoney сървър и го записва в променливата $ resxml. XML-формат отговор е:
Какви са качествата на един-единствен отговор параметър:
- retval - резултатът кода на проверка на билета. 0 - ако има билет, то е валидно и не е изтекъл.
- sval - текстово описание на резултата от проверката на билета.
- lastAccess - UTC време на последния достъп до сканирани билета.
- изтича - UTC време, когато валидността на билета проверява изтече.
От всички атрибути ние се интересуваме само от retval. Ако е 0, валидирането на билета е приключило с положителен резултат, на самия билет важи и, съответно, са получени с него WMID може да се счита потвърдено. Други кодове показват, или грешка при проверка на билета или че билетът не е автентичен.
Така че, той остава за допълване на кода на нашия PHP-скрипт разбор на XML-отговор и retval получената стойност. Това може да стане по много различни начини, в зависимост от предпочитанията си. В PHP, много инструменти за XML-разбор. Освен това, тъй като отговорът е много прост и ясна структура, retval дърпане стойност от него е възможно дори при използване на регулярни изрази. Въпреки това, ние използваме примера на познатия си, за да ни прости и SimpleXML библиотека (поддържа само в PHP5, но не и в PHP4):
И това е, всъщност, всичко. В момента имаш валиден потребител WMID и потребителят е на вашия сайт. Как да се разпорежда с това богатство - това е до вас, в зависимост от конкретната ситуация. Като правило, е необходимо или да: 1), за да се запази потребителското WMID в базата данни, и да изпълнява някакво действие веднъж на потребителя на сайта, или 2), за да започнете сесия за тази посетител, обвързването й WMID, за извършване на по-нататъшни действия.
Напълно скриптов код от нашия пример може да бъде изтеглен от тук. Как работи на практика, можете да проверите тук.
Какво друго трябва да знаете