Webhook: Деректерді пішіндерден Сценарийге алу

Деректерді пішіндерден сценарийге жіберу үшін Webhook деректер қабылдағышын пайдалануға болады. Деректер POST әдісімен жіберілетін болады.
Вебхокты белсендіру үшін Сайт параметрлері → пішіндер → Webhook бөліміне өтіңіз
Скрипттің мекенжайын көрсетіңіз. Cookie файлдарын жібергіңіз келсе, құсбелгі қойыңыз. Сақтаңыз.
Webhook қосылғаннан кейін test=test (POST әдісі) арқылы сұрау жіберіледі және Webhook 200 OK кодын қайтарады деп күтілуде.
Маңыздысы: сценарийге сілтеме қол жетімді болуы тиіс және сценарий бес секунд ішінде жауап беруі тиіс. Әйтпесе деректер жіберілмейді де, жүйе оны жіберуге тағы екі талпыныс жасайды, әрқайсысы бір минутта.

Сондай-ақ, сценарийде қорғалған HTTPS хаттамасын пайдалану қажет.
Пішіні бар блоктың бетке және «Мазмұн» мәзіріне өтіп, Webhook деректерді қабылдау қызметін таңдаңыз.

Бетті сақтап, жариялаңыз. Нысанды толтыру кезінде деректер POST әдісін пайдаланып параметрлерде көрсетілген сценарий мекенжайына жіберіледі.
Деректерді электрондық поштаға жіберетін сценарийдің мысалы
Сценарийді серверге қойып, Webhook қабылдағышының параметрлерінде сценарий мекенжайын көрсетіңіз. Нәтижесінде ол webhook арқылы келетін деректерді поштаға жібереді.
<?php

header('Access-Control-Allow-Origin: *');

$headers = "From: from@webhookservesite.ru";​ 
/* замените электронную почту на действующую почту,  с которой вам будет приходить письмо  */
​
 $message = print_r($_POST,true);
 @mail('to@mail.ru', 'Tilda TEST', $message, $headers);
/* замените электронную почту на вашу действующую почту,  на которую вам будет приходить письмо  */

echo"ok";

?>
Өнім туралы деректерді беру
Webhook қызметінің параметрлерінде өнім деректерін сценарийге көшірудің қосымша параметрлері бар: өнім туралы деректерді массив ретінде ретке келтіру және өнімдегі басқа жүйелерден экстернидті (сыртқы кодты) көшіру.
Өнімнің сыртқы көрінісін көшіруге арналған құсбелгі өнім деректерін массивке көшіру параметрін таңдаған жағдайда ғана қол жетімді болады. Оны белсендірген кезде бұл өнімді сыртқы жүйемен байланыстыру үшін каталогтан сыртқы өнім коды беріледі (мысалы, MoySklad немесе 1С).
API кілт деректерін Webhook арқылы өткізу
Деректерді Webhook арқылы бергенде API пернесін пайдаланып пайдаланушыларды анықтау қажет болуы мүмкін. Қабылдағыш параметрлерінде кілттің атауын және оның мәнін көрсетуге, сондай-ақ беру әдісін көрсетуге болады (POST немесе transfer in the headers).

Қосымша ақпарат және PHP бағдарламасында айнымалыларды алу
Барлық өрістер мен мәндерді өзгеріссіз алу үшін $ _POST айнымалысына сілтеме жасау керек. $_POST — деректердің ассошиэйтед массиві, мысалы:
Email=test%40email.com 
Name=test+атауы 
Телефон=0123456789 
Комментарийлер=мысал+комментарий 
Таңдау жәшігі=қызыл 
Құсбелгі=иә 
Date=25-03-2017 
Time=17% 3A59 
Саны=124 
Url=website.com
Белгілі бір өріс туралы ақпаратты алу үшін массив элементіне аты бойынша сілтеме жасау керек, мысалы, $_POST["Күн"], мұнда күннің орнына пішіндегі өріс үшін көрсетілген айнымалы атау орналасқан.

Өрістерге өз түсініктемелеріңізді қосу қажет болса, мына мысалды пайдаланып жасай аласыз:
<?php

header('Access-Control-Allow-Origin: *');

$headers = "From: from@webhookservesite.ru";​

$message = "";

foreach($_POST as $key => $value) {
  if($key == "Date") {
    $message .= "Дата выезда из гостиницы"; 
  } else { 
    $message .= $key; 
  }
  $message .= ": " . $value . "\n"; 
} 

$message = ​print_r($message, true);

@mail('to@mail.ru', 'Tilda TEST', $message, $headers);

echo "ok";

?> 
Егер өрістердің «ауыспалы атауларын» өзгертпесеңіз, онда ақпарат жоғарғы әріпте бірінші әріпі бар өрістердің атауларымен бірге келеді.

Өріс үшін басқа «айнымалы атау» орнатсаңыз, олар келесі түрде келеді:
реттелетін атауы=сары
Қосымшадан өрістерден басқа келесі өрістер алынады:
tranid=467251% 3A8442970
пішін=пішін48844953
мұндағы трандиция «Билеттер» бөлімінен Қорғасын идентификаторына (бірегей билет нөміріне) сәйкес келеді, ал формуляр Блок идентификаторына (ұсыну жүргізілген блоктың нөміріне) сәйкес келеді.

Кейбір таңбалар талап-арыздарды тапсырар алдында қашып кетеді (мысалы @ (ит) % 40, орнына: (қос нүкте) % 3a). Бұл таңбаларды декодтау үшін urldecode (http://php.net/manual/ru/function.urldecode.php) функциясын пайдалану керек.

Өтініш келіп түскен мекенжайды алу

$_SERVER["HTTP_REFERER"] айнымалысынан Webhook сұрауы келген мекенжайды алуға болады.

Қосымша: «Cookie» файлдарын қабылдау

Егер « Cookie файлдарын жіберу» қосымша параметрі Webhook параметрлерінде таңдалса, cookie файлдары болса, бағдарлама өрістерімен қатар COOKIES өрісі де болады, мысалы:
COOKIES=_ga% 3DGA1.2.1861016115.1519204131%3B+_ym_uid% 3D2021810468765220932 
Ең бастысы! Егер пайдаланушы сайтыңызға бұрын кірмеген болса, онда cookie файлдары болмайды және бағдарламамен бірге келмейді. Егер пайдаланушы сайтыңызға UTM тегімен бұрын келіп, 30 күннен кешіктірілмей қайтып келсе, онда cookie файлында UTM тегтері туралы ақпарат болады, мысалы:
COOKIES=TILDAUTM%3Dutm_source%253Dyandex%257C%257C%257Cutm_medium%253Dcpc%257С%257С%257Cutm_campaign%253Dpromo%257С%257С%257Cutm_content%253Dblocktext%257С%257С%257Cutm_term%253Dpoisk%257С%257С%257С 
Тапсырыстардан келетін өрістердің қандай болатынын тексеру үшін келесі қызметтерді пайдаланыңыз:
http://requestcatcher.com
https://webhook.site
Өкінішке орай, сіздің кодыңыздың жұмыс істеуіне байланысты мәселелерге қолдау көрсетпейміз.
20__ жылғы «___» __________
Тильда