Webhook PHP примери

20. април 2022.

Уколико си упознат са Jotform Webhook, ево су примери неких скрипта које можеш да пробаш.

Не заборави да измениш имена поља на скриптама са именима поља из твог обрасца.

Тренутна имејл обавештења – Примај тренутна имејл обавештења користећи сопствени сервер за слање.

<?php
// конвертује json податке за php
$result = $_REQUEST['rawRequest'];
$obj = json_decode($result, true);
// Подеси сопствена имејл подешавања
$emailfrom = "marko@primer.com"; // Пошаљилац
$emailto = "jasmina@primer.com"; // Прималац, можеш користити константну вредност или користити вредност поља, на пример $obj['q4_imejl']
$subject = "Примљена је нова пријава"; // Тема имејла
// Следеће линије скрипте не мењај
$id = $_POST['submissionID']; // Преузима идентификатор пријаве
$submissionURL = 'https://jotform.claystructures.co/submission/' . $id; // Креира URL пријаве
$headers = "From: ".$emailfrom."rn";
$headers. = "Reply-To: ".$emailfrom."rn"; // Опционо
$headers. = "MIME-Version: 1.0rn";
$headers. = "Content-Type: text/html; charset=utf-8rn";
// Нова метода, преузимање података са стране пријаве
$html = new DOMDocument;
$html->loadHTML(file_get_contents($submissionURL));
$body = $html->getElementsByTagName('body')->item(0);
// Преузима HTML код након „body“ тага
foreach ($body->childNodesas$child){
    $html->appendChild($html->importNode($child, true));
}
// Следеће линије чине табелу прилагођеним за различите уређаје
$body=$html->getElementsByTagName('table');
foreach ($bodyas$width) {
    $width->setAttribute('width', '100%');
}
$body=$html->saveHTML();
// Слање мејла
@mail($emailto, $subject, $body, $headers);
?>
Webhook PHP примери Image-1

SMS Обавештење – Слање SMS поруке након примања пријаве користећи API твог пружаоца услуге

<?php
// Преузимање вредности поља
$result = $_REQUEST['rawRequest'];
$obj=json_decode($result, true);
// Замени свој API кључ и приступне податке
$authKey = "tvojAPIkljuc";
$senderId = "102234";
$route = "default";
// Замени имена поља са својима
$mobileNumber = $obj['q1_brTelefona']; // Број телефона преузет из пријаве
$message=urlencode($obj['q2_poruka']); // Порука преузета из пријаве
// Припрема података за слање
$postData = array(
'authkey' => $authKey,
'mobiles' => $mobileNumber,
'message' => $message,
'sender' => $senderId,
'route' => $route
);
// Замени крајњу тачку са својом
$url = "http://tvojsmsprovajder.com/slanje.php";
// покрени ресурсе
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $postData
//,CURLOPT_FOLLOWLOCATION => true
));
// Игнорише верификацију SSL филтера
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
// преузимање одговора
$output = curl_exec($ch);
// Испис грешака уколико постоје
if(curl_errno($ch)){
    echo 'Грешка: ' . curl_error($ch);
}
curl_close($ch);
echo $output;
?>

Код: https://pastebin.com/embed_iframe/bcEZx8mD

Образац у MySQL – Слање примљене пријаве у твоју MySQL Базу података

<?php
// Замени следће са подацима своје базе
$servername = "localhost";
$username = "tvoje_korisnicko_ime";
$password = "tvoja_lozinka";
$dbname = "ime_tvoje_baze";
$dbtable = "ime_tvoje_tabele";
// Креирање везе
$mysqli = new mysqli($servername, $username, $password, $dbname);
// Провера везе
if ($mysqli->connect_error) {
    die("Повезивање није успешно: ".$mysqli->connect_error);
}
// Преузимање вредности из обрасца
// Преузимање јединственог идентификатора пријаве - не треба мењати ништа
$sid = $mysqli->real_escape_string($_REQUEST['submissionID']);
// Преузимање вредности поља - не треба мењати ништа
$fieldvalues = $_REQUEST['rawRequest'];
$obj = json_decode($fieldvalues, true);
// Замени имена поља са именима оз твог обрасца овде
$fname = $mysqli->real_escape_string($obj['q14_tvojeIme'][first]);
$lname = $mysqli->real_escape_string($obj['q14_tvojeIme'][last]);
$email = $mysqli->real_escape_string($obj['q16_tvojImejl']);
$message = $mysqli->real_escape_string($obj['q17_tvojaPoruka']);
$result = $mysqli->query("SELECT * FROM $dbtable WHERE sid = '$sid'");
// Уколико идентификатор пријаве постоји, вредности ће бити замењене
if ($result->num_rows>0) {
    $result = $mysqli->query("UPDATE $dbtable SET firstname = '$fname', lastname = '$lname', email = '$email', message = '$message' WHERE sid = '$sid'");
    echo "Постојећа вредност измењена";
}
// Уколико је пријава нова, сачуваће се
else {
    $result=$mysqli->query("INSERT IGNORE INTO $dbtable (sid, firstname, lastname, email, message) VALUES ('$sid', '$fname', '$lname','$email','$message')");
    echo "Нов ред додат!";
    if ($result===false) {echo "SQL грешка: ".$mysqli->error;}
}
$mysqli->close();
?>

Обавештење о испоручености – Буди обавештен када пријава не успе да буде послата на твој имејл

Следећи код користи подразумевани SMTP за слање имејлова. Побрини се да твој сајт подржава ово, иначе опција за слање мејлова неће успети.

<?php
include "JotForm.php";
$jotformAPI = new JotForm("TVOJ_JOTFORM_API_KLJUC"); // Додај свој Jotform API кључ овде
$history = $jotformAPI->getHistory("emails", "lastWeek");
$subid = $_REQUEST['submissionID'];
$submissionURL = 'https://jotform.claystructures.co/submission/'.$subid; // Градња URL-а пријаве
$limit = 1; // Слање последњег неуспелог обавештења - повећај број уколико имаш више имејл обавештења
$results = array();
// Упиши имејлове овде
$to = "marko@primer.com"; // Додај имејл примаоца овде
$from = "petar@primer.com"; // Додај имејл пошаљиоца овде
// Промени тему имејла уколико желиш
$subject = "Имејл није успешно послат";
// Не мењај следеће
$headers="MIME-Version: 1.0"."rn";
$headers.="Content-type:text/html;charset=UTF-8"."rn";
$headers.='From: <'.$from.'>'."rn";
// Уреди додатну поруку овде (опционо)
$msg1 = "Следећа пријава није успешно послата на твој мејл.";
// Нова метода, подаци се преузимају са стране пријаве
$html = new DOMDocument;
$html->loadHTML(file_get_contents($submissionURL));
$body = $html->getElementsByTagName('body')->item(0);
// Преузимање HTML кода након „body“ тага
foreach ($body->childNodesas$child){
    $html->appendChild($html->importNode($child, true));
}
// Следеће линије чине табелу прилагођеним за различите уређаје
$body = $html->getElementsByTagName('table');
foreach ($bodyas$width) {
    $width->setAttribute('width', '100%');
}
// Следеће линије кода немој мењати осим уколико ниси упућен
foreach ($historyas$key=>$value) {        
    if ($value['status'] =="IN BOUNCE/BLOCK LIST"||$value['status'] =="FAILED"&&$value['submissionID'] ==$subid){
        if ($key==$limit-1) {
            $body=    $msg1."<br>";
            $body.=$html->saveHTML();                
            @mail($to, $subject, $body, $headers);
        }
    }
}
?>
Webhook PHP примери Image-2

Повремено ћемо постављати нове примере. Уколико имаш предлоге или ти је потребна додатна помоћ, јави нам у коментарима испод.

Контактирај подршку:

Наш тим подршке је доступан 24/7 и просечно време одговора је до 2 сата.
Можеш контактирати наш тим путем:

Форум подршке: https://www.jotform.com/answers/

Контактирај Jotform подршку: https://www.jotform.com/contact/

Пошаљи коментар:

Jotform Avatar
Овај сајт је заштићен reCAPTCHA-ом, а важе и Google правила о приватности и услови коришћења.

Podo Comment Буди први који ће прокоментарисати