{"id":50781,"date":"2026-06-05T15:16:23","date_gmt":"2026-06-05T15:16:23","guid":{"rendered":"https:\/\/bsolution.me\/he\/?page_id=50781"},"modified":"2026-06-05T15:16:23","modified_gmt":"2026-06-05T15:16:23","slug":"webhook-test","status":"publish","type":"page","link":"https:\/\/bsolution.me\/he\/webhook-test\/","title":{"rendered":"\ud83e\ude9d \u05d1\u05d5\u05d3\u05e7 \u05d5\u05d5\u05d1\u05d4\u05d5\u05e7"},"content":{"rendered":"\n\n<style>\n\/* Perfected Futuristic Design System by Bsolution *\/\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Heebo:wght@300;400;500;700;800&display=swap');\n\n:root {\n    --f-bg: #F5F5F7;\n    --f-card: rgba(255, 255, 255, 0.85);\n    --f-text: #1d1d1f;\n    --f-muted: #86868b;\n    --f-accent: #0066cc;\n    --f-border: rgba(0, 0, 0, 0.08);\n    --f-shadow: 0 8px 30px rgba(0,0,0,0.04);\n}\n\n.dark-theme {\n    --f-bg: #000000;\n    --f-card: rgba(28, 28, 30, 0.85);\n    --f-text: #f5f5f7;\n    --f-muted: #86868b;\n    --f-accent: #2997ff;\n    --f-border: rgba(255, 255, 255, 0.12);\n    --f-shadow: 0 8px 40px rgba(0,0,0,0.6);\n}\n\n.futur-layout {\n    max-width: 900px;\n    margin: 0 auto;\n    padding: 60px 20px;\n    font-family: 'Heebo', -apple-system, system-ui, sans-serif;\n    direction: rtl;\n    color: var(--f-text);\n    background-color: transparent;\n    transition: color 0.3s ease;\n}\n\n\/* Global Background override when tool is active *\/\nbody.tool-active {\n    background-color: var(--f-bg) !important;\n}\n\n.futur-glass-card {\n    background: var(--f-card);\n    backdrop-filter: saturate(180%) blur(20px);\n    -webkit-backdrop-filter: saturate(180%) blur(20px);\n    border: 1px solid var(--f-border);\n    border-radius: 22px;\n    padding: 40px;\n    box-shadow: var(--f-shadow);\n    margin-bottom: 40px;\n}\n\n.futur-layout h1.wp-block-heading {\n    font-size: clamp(2.5rem, 5vw, 3.5rem);\n    font-weight: 800;\n    color: var(--f-text);\n    margin-bottom: 12px;\n    letter-spacing: -0.02em;\n    text-align: center;\n}\n\n.futur-layout .tool-card {\n    width: 80%;\n    margin: 0 auto 40px auto;\n}\n@media (max-width: 900px) {\n    .futur-layout .tool-card { width: 100%; }\n}\n\n.futur-layout header {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    text-align: center;\n    gap: 12px;\n    margin-bottom: 34px;\n    max-width: 800px;\n    margin-left: auto;\n    margin-right: auto;\n}\n.futur-layout header h1, \n.futur-layout header h2.main-title,\n.futur-layout header .title-wrap .main-title {\n    margin: 0;\n    font-size: clamp(2rem, 4vw, 2.7rem);\n    font-weight: 800;\n    letter-spacing: -0.02em;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 10px;\n    color: var(--f-text);\n}\n.futur-layout header h2.main-title span.icon { font-size: 1.25em; }\n.futur-layout header .subtitle,\n.futur-layout header p.subtitle {\n    margin: 0;\n    font-size: 1.05rem;\n    color: var(--f-muted);\n    line-height: 1.6;\n}\n.futur-layout header .badge-local,\n.futur-layout header .free-badge {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    font-size: 0.78rem;\n    padding: 6px 14px;\n    border-radius: 999px;\n    border: 1px solid var(--f-border);\n    background: var(--f-card);\n    color: var(--f-text);\n    box-shadow: 0 4px 10px rgba(0,0,0,0.02);\n}\n.futur-layout header .badge-dot,\n.futur-layout header .free-dot {\n    width: 8px;\n    height: 8px;\n    border-radius: 999px;\n    background: #22c55e;\n    box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.25);\n}\n\n.futur-layout .page-hook {\n    font-size: 1.25rem;\n    color: var(--f-muted);\n    text-align: center;\n    margin-bottom: 50px;\n    max-width: 700px;\n    margin-left: auto;\n    margin-right: auto;\n}\n\n.futur-layout h2.wp-block-heading {\n    font-size: 1.7rem;\n    font-weight: 700;\n    margin: 40px 0 20px;\n}\n\n.futur-layout p {\n    font-size: 1.15rem;\n    color: var(--f-text);\n    opacity: 0.9;\n    margin-bottom: 24px;\n    line-height: 1.7;\n}\n\n\/* Theme Toggle Button *\/\n.theme-toggle-wrap {\n    display: flex;\n    justify-content: flex-end;\n    margin-bottom: 20px;\n}\n.theme-btn {\n    background: var(--f-card);\n    border: 1px solid var(--f-border);\n    color: var(--f-text);\n    padding: 8px 16px;\n    border-radius: 999px;\n    cursor: pointer;\n    font-size: 0.9rem;\n    font-weight: 600;\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    box-shadow: var(--f-shadow);\n}\n\n\/* Input & Button Styles for Tools *\/\n.futur-input {\n    width: 100%;\n    padding: 12px 16px;\n    border-radius: 12px;\n    border: 1px solid var(--f-border);\n    background: rgba(0,0,0,0.03);\n    color: var(--f-text);\n    font-size: 1rem;\n    margin-bottom: 16px;\n    transition: all 0.2s ease;\n}\n.dark-theme .futur-input { background: rgba(255,255,255,0.05); }\n\n.futur-btn {\n    background: var(--f-accent);\n    color: #fff;\n    border: none;\n    padding: 14px 28px;\n    border-radius: 12px;\n    font-weight: 700;\n    font-size: 1.1rem;\n    cursor: pointer;\n    transition: transform 0.2s ease;\n}\n.futur-btn:hover { transform: scale(1.02); }\n\n@media (max-width: 600px) {\n    .futur-layout { padding: 40px 16px; }\n    .futur-glass-card { padding: 24px; }\n}\n<\/style>\n<script>\n(function() {\n    var applyTheme = function(theme) {\n        if (theme === 'dark') {\n            document.documentElement.classList.add('dark-theme');\n        } else {\n            document.documentElement.classList.remove('dark-theme');\n        }\n        localStorage.setItem('bsolution-theme', theme);\n    };\n    \n    \/\/ Apply saved theme immediately\n    document.body.classList.add('tool-active');\n    var saved = localStorage.getItem('bsolution-theme') || 'light';\n    applyTheme(saved);\n    \n    \/\/ Bind theme toggle button (with retry since it may not exist yet)\n    function bindToggle() {\n        var btn = document.getElementById('globalThemeToggle');\n        if (!btn) { setTimeout(bindToggle, 100); return; }\n        if (btn.dataset.bound) return;\n        btn.dataset.bound = '1';\n        btn.addEventListener('click', function() {\n            var isDark = document.documentElement.classList.contains('dark-theme');\n            applyTheme(isDark ? 'light' : 'dark');\n        });\n    }\n    bindToggle();\n})();\n<\/script>\n\n<div class=\"futur-layout\">\n<div class=\"theme-toggle-wrap\"><button class=\"theme-btn\" id=\"globalThemeToggle\">\ud83c\udf19 \u05de\u05e6\u05d1 \u05dc\u05d9\u05dc\u05d4<\/button><\/div>\n\n\n\n<header>\n<h2 class=\"main-title\">\u05d1\u05d5\u05d3\u05e7 \u05d5\u05d5\u05d1\u05d4\u05d5\u05e7 <span class=\"icon pill\">\ud83e\ude9d<\/span><\/h2>\n<p class=\"subtitle\">\u05d1\u05d5\u05e0\u05d9\u05dd Payload \u05de\u05d5\u05ea\u05d0\u05dd, \u05e9\u05d5\u05de\u05e8\u05d9\u05dd \u05d1\u05d3\u05e4\u05d3\u05e4\u05df \u05d5\u05e9\u05d5\u05dc\u05d7\u05d9\u05dd \u05d1\u05e7\u05e9\u05d5\u05ea \u05d1\u05d3\u05d9\u05e7\u05d4 \u05d1\u05e6\u05d5\u05e8\u05d4 \u05d1\u05d8\u05d5\u05d7\u05d4 (\u05e2\u05dd \u05e7\u05d9\u05e8\u05d5\u05e8 \u05e0\u05d2\u05d3 \u05e1\u05e4\u05d0\u05dd).<\/p>\n<div class=\"free-badge\"><span class=\"free-dot\"><\/span> \u05d7\u05d9\u05e0\u05dd \u05dc\u05d7\u05dc\u05d5\u05d8\u05d9\u05df<\/div>\n<\/header>\n\n\n\n<div class=\"futur-glass-card tool-card\">\n<div id=\"bnet-tool-webhook-test\">\n<style>\n\n    #bnet-tool-webhook-test{\n      \/* Light (\u05d1\u05e8\u05d9\u05e8\u05ea \u05de\u05d7\u05d3\u05dc) *\/\n      --bg:#f6f8fb;\n      --bg2:#ffffff;\n      --card:rgba(255,255,255,.92);\n      --muted:#55657a;\n      --text:#0b1220;\n      --accent:#2563eb;\n      --accent2:#9333ea;\n      --ok:#10b981;\n      --warn:#f59e0b;\n      --err:#ef4444;\n      --border: rgba(15, 23, 42, .10);\n      --shadow: 0 12px 30px rgba(2, 8, 23, .10);\n      --inputBg:#ffffff;\n      --chipBg: rgba(2, 6, 23, .04);\n      --chipText:#445166;\n      --focus:#2563eb33;\n\n      --radius:16px;\n    }\n    .dark-theme #bnet-tool-webhook-test{\n      --bg:#0b0f14;\n      --bg2:#0b0f14;\n      --card: rgba(255,255,255,.03);\n      --muted:#8aa0b4;\n      --text:#e7f0f7;\n      --accent:#4cc9f0;\n      --accent2:#b5179e;\n      --border:#1f2937;\n      --shadow: 0 10px 30px rgba(0,0,0,.25);\n      --inputBg:#0e1520;\n      --chipBg:#0e1520;\n      --chipText:#8aa0b4;\n      --focus:#2a3b56;\n    }\n\n    *{box-sizing:border-box}\n    html,body{height:100%}\n    body{\n      margin:0;\n      font-family: ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", Roboto, Helvetica, Arial;\n      background:\n        radial-gradient(1200px 800px at 90% -10%, rgba(37,99,235,.12) 0%, rgba(147,51,234,.08) 45%, transparent 70%),\n        linear-gradient(180deg, var(--bg) 0%, var(--bg2) 100%);\n      color:var(--text);\n      overflow-x:hidden;\n      -webkit-text-size-adjust:100%;\n    }\n    a{color:var(--accent)}\n    .container{max-width:980px;margin:40px auto;padding:0 16px}\n\n    \/* \u05db\u05d5\u05ea\u05e8\u05ea *\/\n    .app-title{display:flex;align-items:center;gap:12px;margin-bottom:18px}\n    .logo{\n      width:34px;height:34px;border-radius:12px;\n      background:linear-gradient(135deg,var(--accent),var(--accent2));\n      box-shadow:var(--shadow)\n    }\n    .title h1{margin:0;font-size:1.35rem;line-height:1.2}\n    .subtitle{margin:6px 0 0;color:var(--muted);font-size:.95rem}\n\n    \/* Cards *\/\n    .card{\n      background: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.06));\n      border:1px solid var(--border);\n      border-radius: var(--radius);\n      box-shadow: var(--shadow);\n      backdrop-filter: blur(8px);\n      overflow:hidden;\n    }\n    .dark-theme #bnet-tool-webhook-test .card{\n      background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01));\n      backdrop-filter:none;\n    }\n\n    .card-header{\n      padding:16px 18px;\n      border-bottom:1px solid var(--border);\n      display:flex;align-items:center;justify-content:space-between;gap:10px;\n      flex-wrap:wrap;\n    }\n    .card-header h2{margin:0;font-size:1.05rem}\n    .card-body{padding:18px}\n\n    \/* Layout *\/\n    .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}\n    .row-3{display:grid;grid-template-columns:1.2fr .9fr .9fr;gap:12px}\n    .row-1{display:grid;grid-template-columns:1fr;gap:12px}\n\n    @media (max-width: 860px){\n      .row{grid-template-columns:1fr}\n      .row-3{grid-template-columns:1fr}\n      .container{margin:24px auto}\n    }\n\n    \/* Fields *\/\n    label{font-size:.85rem;color:var(--muted);display:block;margin:0 0 6px}\n    input[type=\"text\"], input[type=\"url\"], select, textarea, input[type=\"number\"]{\n      width:100%;\n      padding:12px 12px;\n      border-radius:12px;\n      border:1px solid var(--border);\n      background: var(--inputBg);\n      color:var(--text);\n      outline:none;\n      transition:border .15s ease, box-shadow .15s ease, transform .05s ease;\n      box-shadow: inset 0 0 0 1px transparent;\n    }\n    textarea{min-height:110px;resize:vertical}\n    input:focus, select:focus, textarea:focus{\n      border-color: rgba(37,99,235,.45);\n      box-shadow: 0 0 0 4px var(--focus);\n    }\n    .dark-theme #bnet-tool-webhook-test input:focus,\n    .dark-theme #bnet-tool-webhook-test select:focus,\n    .dark-theme #bnet-tool-webhook-test textarea:focus{\n      border-color: var(--focus);\n      box-shadow: inset 0 0 0 1px var(--focus);\n    }\n\n    \/* Buttons *\/\n    .btn{\n      appearance:none;border:none;\n      padding:11px 14px;border-radius:12px;\n      background: rgba(2, 6, 23, .06);\n      color:var(--text);\n      cursor:pointer;\n      display:inline-flex;align-items:center;gap:8px;\n      font-weight:700;\n      user-select:none;\n      -webkit-tap-highlight-color: transparent;\n    }\n    .dark-theme #bnet-tool-webhook-test .btn{background:#1b2433}\n    .btn:hover{filter:brightness(1.03)}\n    .btn:active{transform:translateY(1px)}\n    .btn.primary{background:linear-gradient(135deg,var(--accent),#3a86ff); color:#fff}\n    .btn.ghost{background:transparent;border:1px solid var(--border)}\n    .btn.warn{background:linear-gradient(135deg,#f97316,#f43f5e); color:#fff}\n    .btn.ok{background:linear-gradient(135deg,#22c55e,#0ea5e9); color:#fff}\n    .btn:disabled{opacity:.6;cursor:not-allowed;transform:none}\n\n    .toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}\n\n    .pill{\n      display:inline-flex;align-items:center;gap:6px;\n      background: var(--chipBg);\n      border:1px solid var(--border);\n      border-radius:999px;\n      padding:8px 12px;\n      color: var(--chipText);\n      font-size:.85rem\n    }\n\n    .field-row{\n      display:grid;\n      grid-template-columns: 1.2fr .9fr .9fr auto;\n      gap:10px;align-items:end;\n      margin-bottom:10px\n    }\n    .field-row .btn.del{padding:10px 11px}\n\n    @media (max-width: 860px){\n      .field-row{grid-template-columns:1fr 1fr;align-items:stretch}\n      .field-row > div{min-width:0}\n      .field-row .btn.del{grid-column:1 \/ -1; justify-content:center}\n    }\n\n    .hidden{display:none}\n    .status{\n      margin-top:12px;padding:12px;border-radius:12px;\n      border:1px solid var(--border);\n      background: var(--chipBg);\n      color: var(--chipText);\n      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n      white-space:pre-wrap;\n      overflow-wrap:anywhere;\n    }\n    .divider{height:1px;background:var(--border);margin:12px 0}\n    .flex{display:flex;gap:10px;flex-wrap:wrap;align-items:center}\n    .right{margin-right:auto} \/* RTL *\/\n    .badge{font-size:.75rem;border:1px solid var(--border);padding:4px 8px;border-radius:999px;color:var(--muted)}\n    .footer-note{margin:26px 0;color:var(--muted);font-size:.85rem;line-height:1.6}\n    .hint{color:var(--muted);font-size:.85rem;line-height:1.6}\n    code.inline{background: var(--chipBg);border:1px solid var(--border);padding:2px 6px;border-radius:6px}\n\n    \/* \u05db\u05e4\u05ea\u05d5\u05e8 \u05de\u05e6\u05d1 \u05db\u05d4\u05d4 *\/\n    .theme-btn{display:inline-flex;align-items:center;gap:8px}\n    .theme-dot{\n      width:10px;height:10px;border-radius:999px;\n      background: var(--accent);\n      box-shadow: 0 0 0 4px rgba(37,99,235,.12);\n    }\n    .dark-theme #bnet-tool-webhook-test .theme-dot{\n      box-shadow:none;\n    }\n\n    \/* \u05d0\u05d6\u05d5\u05e8 \u05de\u05d0\u05de\u05e8 SEO *\/\n    .seo{\n      margin-top:18px;\n      padding:18px;\n      border-radius: var(--radius);\n      border:1px solid var(--border);\n      background: rgba(255,255,255,.70);\n      box-shadow: var(--shadow);\n    }\n    .dark-theme #bnet-tool-webhook-test .seo{\n      background: rgba(255,255,255,.02);\n      box-shadow: var(--shadow);\n    }\n    .seo h2{margin:0 0 8px;font-size:1.1rem}\n    .seo h3{margin:14px 0 6px;font-size:1rem}\n    .seo p{margin:0 0 10px;color:var(--muted);line-height:1.7}\n    .seo ul{margin:0 0 10px;color:var(--muted);line-height:1.7;padding-inline-start:18px}\n\n    \/* \u05d2\u05dc\u05d9\u05dc\u05d4 \u05ea\u05e7\u05d9\u05e0\u05d4 \u05d1\u05de\u05d5\u05d1\u05d9\u05d9\u05dc + safe-area *\/\n    .container{padding-bottom: max(24px, env(safe-area-inset-bottom))}\n  \n  <\/style>\n<div class=\"calculator-container\">\n<section class=\"card\" id=\"builder\">\n<div class=\"card-header\">\n<h2>1) \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea<\/h2>\n<div class=\"toolbar\">\n<span class=\"pill\" id=\"persist-indicator\">\u05e9\u05de\u05d9\u05e8\u05d4 \u05d0\u05d5\u05d8\u05d5\u05de\u05d8\u05d9\u05ea <strong>\u05e4\u05e2\u05d9\u05dc\u05d4<\/strong><\/span>\n<button class=\"btn ghost\" id=\"resetBtn\" title=\"\u05e0\u05d9\u05e7\u05d5\u05d9 \u05d5\u05d4\u05ea\u05d7\u05dc\u05d4 \u05de\u05d7\u05d3\u05e9\" type=\"button\">\u05d0\u05d9\u05e4\u05d5\u05e1<\/button>\n<\/div>\n<\/div>\n<div class=\"card-body\">\n<div class=\"row\">\n<div>\n<label for=\"endpoint\">\u05db\u05ea\u05d5\u05d1\u05ea Webhook<\/label>\n<input id=\"endpoint\" inputmode=\"url\" placeholder=\"https:\/\/example.com\/webhook\" required=\"\" type=\"url\"\/>\n<p class=\"hint\">\n              \u05d7\u05d9\u05d9\u05d1\u05ea \u05dc\u05d4\u05d9\u05d5\u05ea \u05db\u05ea\u05d5\u05d1\u05ea \u05ea\u05e7\u05d9\u05e0\u05d4. \u05d7\u05dc\u05e7 \u05de\u05d4\u05e9\u05e8\u05ea\u05d9\u05dd \u05d7\u05d5\u05e1\u05de\u05d9\u05dd \u05d1\u05e7\u05e9\u05d5\u05ea \u05de\u05d4\u05d3\u05e4\u05d3\u05e4\u05df \u05d1\u05d2\u05dc\u05dc CORS.\n              \u05d0\u05dd \u05de\u05ea\u05e7\u05d1\u05dc\u05ea \u05e9\u05d2\u05d9\u05d0\u05ea CORS \u2014 \u05e0\u05e1\u05d5 \u05e0\u05e7\u05d5\u05d3\u05ea \u05e7\u05e6\u05d4 \u05d0\u05d7\u05e8\u05ea \u05d0\u05d5 \u05e9\u05d9\u05e8\u05d5\u05ea \u05d1\u05d3\u05d9\u05e7\u05d4 \u05d7\u05d9\u05e6\u05d5\u05e0\u05d9.\n            <\/p>\n<\/div>\n<div>\n<label for=\"method\">\u05e9\u05d9\u05d8\u05ea HTTP<\/label>\n<select id=\"method\">\n<option value=\"POST\">POST<\/option>\n<option value=\"GET\">GET<\/option>\n<option value=\"PUT\">PUT<\/option>\n<option value=\"PATCH\">PATCH<\/option>\n<option value=\"DELETE\">DELETE<\/option>\n<\/select>\n<\/div>\n<\/div>\n<div class=\"row-3\" style=\"margin-top:12px\">\n<div>\n<label for=\"encoding\">\u05e7\u05d9\u05d3\u05d5\u05d3 Body<\/label>\n<select id=\"encoding\">\n<option value=\"json\">JSON (application\/json)<\/option>\n<option value=\"form\">\u05d8\u05d5\u05e4\u05e1 (application\/x-www-form-urlencoded)<\/option>\n<\/select>\n<\/div>\n<div>\n<label for=\"cooldown\">\u05e7\u05d9\u05e8\u05d5\u05e8 \u05e0\u05d2\u05d3 \u05e1\u05e4\u05d0\u05dd (\u05e9\u05e0\u05d9\u05d5\u05ea)<\/label>\n<input id=\"cooldown\" inputmode=\"numeric\" min=\"3\" step=\"1\" type=\"number\" value=\"10\"\/>\n<\/div>\n<div>\n<label for=\"rate\">\u05de\u05e7\u05e1\u05d9\u05de\u05d5\u05dd \u05e9\u05dc\u05d9\u05d7\u05d5\u05ea \u05dc\u05d3\u05e7\u05d4<\/label>\n<input id=\"rate\" inputmode=\"numeric\" min=\"1\" step=\"1\" type=\"number\" value=\"8\"\/>\n<\/div>\n<\/div>\n<div class=\"divider\"><\/div>\n<h3 style=\"margin:8px 0 8px\">\u05e9\u05d3\u05d5\u05ea \u05de\u05d5\u05ea\u05d0\u05de\u05d9\u05dd \u05d0\u05d9\u05e9\u05d9\u05ea<\/h3>\n<div id=\"fields\"><\/div>\n<div class=\"flex\">\n<button class=\"btn\" id=\"addFieldBtn\" title=\"\u05d4\u05d5\u05e1\u05e4\u05ea \u05e9\u05d3\u05d4\" type=\"button\">\n<svg aria-hidden=\"true\" fill=\"none\" height=\"16\" viewbox=\"0 0 24 24\" width=\"16\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M12 5v14M5 12h14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-width=\"2\"><\/path>\n<\/svg>\n            \u05d4\u05d5\u05e1\u05e3 \u05e9\u05d3\u05d4\n          <\/button>\n<span class=\"badge\">\u05e1\u05d5\u05d2\u05d9\u05dd: \u05d8\u05e7\u05e1\u05d8, \u05de\u05e1\u05e4\u05e8, \u05d1\u05d5\u05dc\u05d9\u05d0\u05e0\u05d9<\/span>\n<\/div>\n<div class=\"divider\"><\/div>\n<div class=\"flex\">\n<div class=\"pill\" id=\"validityMsg\">\u05de\u05d5\u05db\u05df.<\/div>\n<div class=\"right\"><\/div>\n<button class=\"btn primary\" id=\"toSenderBtn\" type=\"button\">\u05d4\u05d1\u05d0: \u05de\u05d9\u05dc\u05d5\u05d9 \u05d5\u05e9\u05dc\u05d9\u05d7\u05d4 \u2190<\/button>\n<\/div>\n<\/div>\n<\/section>\n<section aria-hidden=\"true\" class=\"card hidden\" id=\"sender\" style=\"margin-top:16px\">\n<div class=\"card-header\">\n<h2>2) \u05de\u05d9\u05dc\u05d5\u05d9 \u05d5\u05e9\u05dc\u05d9\u05d7\u05d4<\/h2>\n<div class=\"toolbar\">\n<span class=\"badge\" id=\"endpointBadge\"><\/span>\n<button class=\"btn ghost\" id=\"backToBuilderBtn\" type=\"button\">\u05e2\u05e8\u05d9\u05db\u05ea \u05e9\u05d3\u05d5\u05ea<\/button>\n<\/div>\n<\/div>\n<div class=\"card-body\">\n<form class=\"row-1\" id=\"payloadForm\"><\/form>\n<div class=\"flex\" style=\"margin-top:10px\">\n<button class=\"btn ok\" id=\"sendBtn\" type=\"button\">\u05e9\u05dc\u05d7 \u05dc-Webhook<\/button>\n<button class=\"btn ghost\" id=\"copyCurlBtn\" title=\"\u05d4\u05e2\u05ea\u05e7\u05d4 \u05db-cURL\" type=\"button\">\u05d4\u05e2\u05ea\u05e7 cURL<\/button>\n<span class=\"right pill\" id=\"cooldownBadge\">\u05e7\u05d9\u05e8\u05d5\u05e8: \u05d0\u05d9\u05df<\/span>\n<\/div>\n<div aria-live=\"polite\" class=\"status\" id=\"status\" role=\"status\"><\/div>\n<\/div>\n<\/section>\n<p class=\"footer-note\">\n      \u05d4\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05d5\u05d4\u05e2\u05e8\u05db\u05d9\u05dd \u05d4\u05d0\u05d7\u05e8\u05d5\u05e0\u05d9\u05dd \u05e0\u05e9\u05de\u05e8\u05d9\u05dd \u05d0\u05e6\u05dc\u05da \u05d1\u05d3\u05e4\u05d3\u05e4\u05df \u05d1\u05dc\u05d1\u05d3 (localStorage). \u05e0\u05d9\u05e7\u05d5\u05d9 \u05e0\u05ea\u05d5\u05e0\u05d9 \u05d4\u05d0\u05ea\u05e8 \u05d9\u05de\u05d7\u05e7 \u05d0\u05d5\u05ea\u05dd.\n      \u05d4\u05db\u05dc\u05d9 \u05e4\u05d5\u05e2\u05dc \u05d1\u05e6\u05d3 \u05dc\u05e7\u05d5\u05d7 \u05d1\u05dc\u05d1\u05d3 \u2014 \u05dc\u05dc\u05d0 \u05d4\u05e2\u05dc\u05d0\u05d4 \u05d0\u05d5 \u05e9\u05de\u05d9\u05e8\u05ea \u05de\u05d9\u05d3\u05e2 \u05d1\u05e9\u05e8\u05ea.\n    <\/p>\n<\/div>\n<script>\n    document.addEventListener(\"DOMContentLoaded\", () => {\n      \n  (function(){\n    const $ = (sel, root=document.getElementById('bnet-tool-webhook-test')) => root.querySelector(sel);\n    const $$ = (sel, root=document.getElementById('bnet-tool-webhook-test')) => Array.from(root.querySelectorAll(sel));\n\n    const stateKey = 'webhookTesterState.v1';\n    const sendLogKey = 'webhookTesterSendLog.v1';\n    const themeKey = 'bnetTheme.v1';\n\n    const builder = $('#builder');\n    const sender = $('#sender');\n\n    const endpointInput = $('#endpoint');\n    const methodSel = $('#method');\n    const encodingSel = $('#encoding');\n    const cooldownInput = $('#cooldown');\n    const rateInput = $('#rate');\n    const fieldsWrap = $('#fields');\n    const validityMsg = $('#validityMsg');\n\n    const toSenderBtn = $('#toSenderBtn');\n    const backBtn = $('#backToBuilderBtn');\n    const resetBtn = $('#resetBtn');\n\n    const payloadForm = $('#payloadForm');\n    const endpointBadge = $('#endpointBadge');\n    const statusBox = $('#status');\n    const sendBtn = $('#sendBtn');\n    const copyCurlBtn = $('#copyCurlBtn');\n    const cooldownBadge = $('#cooldownBadge');\n\n    \n    \n\n    \/\/ Utilities\n    const isValidUrl = (s)=>{ try{ new URL(s); return true }catch{ return false } };\n    const now = ()=> Date.now();\n\n    function defaultState(){\n      return {\n        endpoint: '', method: 'POST', encoding: 'json', cooldown: 10, ratePerMin: 8,\n        fields: [\n          {name:'event', type:'text', required:true},\n          {name:'userId', type:'number', required:false},\n          {name:'confirmed', type:'boolean', required:false}\n        ],\n        values: {}\n      };\n    }\n\n    \/\/ Theme (Light default + toggle)\n    \n    \n\n    \/\/ Persistence\n    function loadState(){\n      const raw = localStorage.getItem(stateKey);\n      if(!raw){ return defaultState(); }\n      try{ return Object.assign(defaultState(), JSON.parse(raw)); } catch{ return defaultState(); }\n    }\n    function saveState(s){ localStorage.setItem(stateKey, JSON.stringify(s)); }\n\n    function loadSendLog(){\n      const raw = localStorage.getItem(sendLogKey);\n      try{ return JSON.parse(raw)||[] } catch{ return [] }\n    }\n    function saveSendLog(arr){ localStorage.setItem(sendLogKey, JSON.stringify(arr)); }\n\n    \/\/ UI builders\n    function renderFieldRow(idx, field){\n      const row = document.createElement('div');\n      row.className = 'field-row';\n      row.dataset.idx = idx;\n      row.innerHTML = `\n        <div>\n          <label>\u05de\u05e4\u05ea\u05d7 (Key)<\/label>\n          <input type=\"text\" class=\"f-name\" placeholder=\"\u05dc\u05de\u05e9\u05dc: event\" value=\"${(field.name||'').replace(\/\"\/g,'&quot;')}\">\n        <\/div>\n        <div>\n          <label>\u05e1\u05d5\u05d2<\/label>\n          <select class=\"f-type\">\n            <option value=\"text\" ${field.type==='text'?'selected':''}>\u05d8\u05e7\u05e1\u05d8<\/option>\n            <option value=\"number\" ${field.type==='number'?'selected':''}>\u05de\u05e1\u05e4\u05e8<\/option>\n            <option value=\"boolean\" ${field.type==='boolean'?'selected':''}>\u05d1\u05d5\u05dc\u05d9\u05d0\u05e0\u05d9<\/option>\n          <\/select>\n        <\/div>\n        <div>\n          <label>\u05d7\u05d5\u05d1\u05d4?<\/label>\n          <select class=\"f-req\">\n            <option value=\"false\" ${!field.required?'selected':''}>\u05dc\u05d0<\/option>\n            <option value=\"true\" ${field.required?'selected':''}>\u05db\u05df<\/option>\n          <\/select>\n        <\/div>\n        <button type=\"button\" class=\"btn del\" title=\"\u05d4\u05e1\u05e8 \u05e9\u05d3\u05d4\">\ud83d\uddd1\ufe0f<\/button>\n      `;\n\n      row.querySelector('.f-name').addEventListener('input', syncStateFromBuilder);\n      row.querySelector('.f-type').addEventListener('change', syncStateFromBuilder);\n      row.querySelector('.f-req').addEventListener('change', syncStateFromBuilder);\n      row.querySelector('.btn.del').addEventListener('click', ()=>{\n        st.fields.splice(idx,1);\n        renderBuilder();\n      });\n      return row;\n    }\n\n    function renderBuilder(){\n      endpointInput.value = st.endpoint;\n      methodSel.value = st.method;\n      encodingSel.value = st.encoding;\n      cooldownInput.value = st.cooldown;\n      rateInput.value = st.ratePerMin;\n\n      fieldsWrap.innerHTML = '';\n      st.fields.forEach((f, i)=> fieldsWrap.appendChild(renderFieldRow(i, f)));\n      checkBuilderValidity();\n      saveState(st);\n    }\n\n    function syncStateFromBuilder(){\n      st.endpoint = endpointInput.value.trim();\n      st.method = methodSel.value;\n      st.encoding = encodingSel.value;\n      st.cooldown = Math.max(3, (parseInt(cooldownInput.value,10)||10));\n      st.ratePerMin = Math.max(1, (parseInt(rateInput.value,10)||8));\n      st.fields = $$('.field-row').map(r=>({\n        name: r.querySelector('.f-name').value.trim(),\n        type: r.querySelector('.f-type').value,\n        required: r.querySelector('.f-req').value === 'true'\n      })).filter(f=>f.name);\n      saveState(st);\n      checkBuilderValidity();\n    }\n\n    function checkBuilderValidity(){\n      const msg = [];\n      if(!st.endpoint) msg.push('\u05e0\u05d0 \u05dc\u05d4\u05d6\u05d9\u05df \u05db\u05ea\u05d5\u05d1\u05ea Webhook.');\n      else if(!isValidUrl(st.endpoint)) msg.push('\u05db\u05ea\u05d5\u05d1\u05ea \u05d4-Webhook \u05d0\u05d9\u05e0\u05d4 \u05ea\u05e7\u05d9\u05e0\u05d4.');\n      if(st.fields.length===0) msg.push('\u05e0\u05d0 \u05dc\u05d4\u05d5\u05e1\u05d9\u05e3 \u05dc\u05e4\u05d7\u05d5\u05ea \u05e9\u05d3\u05d4 \u05d0\u05d7\u05d3.');\n\n      if(msg.length){\n        validityMsg.textContent = '\u2022 ' + msg.join(' ');\n        toSenderBtn.disabled = true;\n      } else {\n        validityMsg.textContent = '\u05de\u05d5\u05db\u05df.';\n        toSenderBtn.disabled = false;\n      }\n    }\n\n    \/\/ Sender view\n    function renderSender(){\n      endpointBadge.textContent = st.method + ' ' + st.endpoint;\n      payloadForm.innerHTML = '';\n\n      st.fields.forEach(f=>{\n        const wrap = document.createElement('div');\n        const label = `${f.name}${f.required ? ' *' : ''}`;\n\n        wrap.innerHTML = `\n          <label>${label}<\/label>\n          ${\n            f.type==='boolean'\n            ? `<select data-name=\"${f.name}\" data-type=\"${f.type}\">\n                 <option value=\"\">(\u05dc\u05d0 \u05d4\u05d5\u05d2\u05d3\u05e8)<\/option>\n                 <option value=\"true\" ${st.values[f.name]==='true'?'selected':''}>true<\/option>\n                 <option value=\"false\" ${st.values[f.name]==='false'?'selected':''}>false<\/option>\n               <\/select>`\n            : `<input ${f.type==='number'?'type=\"number\" step=\"any\" inputmode=\"decimal\"':'type=\"text\"'} data-name=\"${f.name}\" data-type=\"${f.type}\" value=\"${(st.values[f.name]??'').toString().replace(\/\"\/g,'&quot;')}\">`\n          }\n        `;\n        payloadForm.appendChild(wrap);\n      });\n\n      updateCooldownBadge();\n      saveState(st);\n    }\n\n    function gatherPayload(){\n      const obj = {};\n      const missing = [];\n\n      $$('#payloadForm [data-name]').forEach(el=>{\n        const name = el.dataset.name;\n        const type = el.dataset.type;\n        let val = (el.tagName==='SELECT') ? el.value : el.value.trim();\n\n        if(val===''){\n          if(st.fields.find(x=>x.name===name && x.required)) missing.push(name);\n          return;\n        }\n\n        if(type==='number'){\n          const num = Number(val);\n          obj[name] = Number.isFinite(num) ? num : val;\n        } else if(type==='boolean'){\n          obj[name] = (val === 'true');\n        } else {\n          obj[name] = val;\n        }\n      });\n\n      return {obj, missing};\n    }\n\n    function toQuery(params){\n      const usp = new URLSearchParams();\n      Object.entries(params).forEach(([k,v])=> usp.append(k, String(v)));\n      return usp.toString();\n    }\n\n    \/\/ Anti-spam: cooldown + rate limit window per minute\n    function lastSendTs(){ return Number(localStorage.getItem('lastSendTs')||0); }\n    function setLastSendTs(ts){ localStorage.setItem('lastSendTs', String(ts)); }\n\n    function canSend(){\n      const cd = st.cooldown * 1000;\n      const elapsed = now() - lastSendTs();\n\n      if(elapsed < cd){\n        return {ok:false, reason:`\u05e7\u05d9\u05e8\u05d5\u05e8 \u05e4\u05e2\u05d9\u05dc: \u05e0\u05e9\u05d0\u05e8\u05d5 ${Math.ceil((cd - elapsed)\/1000)} \u05e9\u05e0\u05f3`};\n      }\n\n      const log = loadSendLog().filter(t => now()-t < 60*1000);\n      if(log.length >= st.ratePerMin){\n        return {ok:false, reason:`\u05de\u05d2\u05d1\u05dc\u05ea \u05e7\u05e6\u05d1: \u05d4\u05d2\u05e2\u05ea \u05dc-${st.ratePerMin} \u05e9\u05dc\u05d9\u05d7\u05d5\u05ea \u05dc\u05d3\u05e7\u05d4. \u05e0\u05e1\u05d4 \u05e9\u05d5\u05d1 \u05de\u05d0\u05d5\u05d7\u05e8 \u05d9\u05d5\u05ea\u05e8.`};\n      }\n\n      return {ok:true};\n    }\n\n    function noteSend(){\n      setLastSendTs(now());\n      const log = loadSendLog().filter(t => now()-t < 60*1000);\n      log.push(now());\n      saveSendLog(log);\n      updateCooldownBadge();\n    }\n\n    function updateCooldownBadge(){\n      const cd = st.cooldown * 1000;\n      const elapsed = now() - lastSendTs();\n\n      if(elapsed >= cd){\n        cooldownBadge.textContent = '\u05e7\u05d9\u05e8\u05d5\u05e8: \u05de\u05d5\u05db\u05df';\n        sendBtn.disabled = false;\n        return;\n      }\n\n      const left = Math.ceil((cd - elapsed)\/1000);\n      cooldownBadge.textContent = `\u05e7\u05d9\u05e8\u05d5\u05e8: ${left} \u05e9\u05e0\u05f3`;\n      sendBtn.disabled = true;\n    }\n\n    let cooldownTimer = null;\n    function startCooldownTimer(){\n      if(cooldownTimer) clearInterval(cooldownTimer);\n      cooldownTimer = setInterval(updateCooldownBadge, 1000);\n    }\n\n    function setStatus(txt, tone='info'){\n      statusBox.textContent = txt;\n\n      \/\/ \u05e6\u05d1\u05e2\u05d9\u05dd \u05e2\u05d3\u05d9\u05e0\u05d9\u05dd \u05e9\u05de\u05ea\u05d0\u05d9\u05de\u05d9\u05dd \u05dc\u05e9\u05e0\u05d9 \u05d4\u05de\u05e6\u05d1\u05d9\u05dd\n      const borderOk = 'rgba(16,185,129,.45)';\n      const borderWarn = 'rgba(245,158,11,.45)';\n      const borderErr = 'rgba(239,68,68,.45)';\n\n      statusBox.style.borderColor =\n        tone==='ok' ? borderOk :\n        tone==='warn' ? borderWarn :\n        tone==='err' ? borderErr :\n        'var(--border)';\n\n      statusBox.style.color =\n        tone==='ok' ? (getComputedStyle(document.getElementById('bnet-tool-webhook-test')).getPropertyValue('--ok') || '#10b981') :\n        tone==='warn' ? (getComputedStyle(document.getElementById('bnet-tool-webhook-test')).getPropertyValue('--warn') || '#f59e0b') :\n        tone==='err' ? (getComputedStyle(document.getElementById('bnet-tool-webhook-test')).getPropertyValue('--err') || '#ef4444') :\n        'var(--chipText)';\n    }\n\n    async function sendOnce(){\n      const gate = canSend();\n      if(!gate.ok){\n        setStatus(gate.reason, 'warn');\n        updateCooldownBadge();\n        return;\n      }\n\n      const {obj, missing} = gatherPayload();\n\n      st.values = Object.assign(\n        {},\n        st.values,\n        Object.fromEntries(\n          $$('#payloadForm [data-name]').map(el=>[\n            el.dataset.name,\n            (el.tagName==='SELECT' ? el.value : el.value)\n          ])\n        )\n      );\n      saveState(st);\n\n      if(missing.length){\n        setStatus('\u05d7\u05e1\u05e8\u05d9\u05dd \u05e9\u05d3\u05d5\u05ea \u05d7\u05d5\u05d1\u05d4: ' + missing.join(', '), 'warn');\n        return;\n      }\n\n      let url = st.endpoint;\n      const headers = { 'Accept': 'application\/json, text\/plain, *\/*' };\n      let body = null;\n\n      if(['GET','DELETE'].includes(st.method)){\n        const qs = toQuery(obj);\n        url += (url.includes('?') ? '&' : '?') + qs;\n      } else {\n        if(st.encoding==='json'){\n          headers['Content-Type'] = 'application\/json';\n          body = JSON.stringify(obj);\n        } else {\n          headers['Content-Type'] = 'application\/x-www-form-urlencoded;charset=UTF-8';\n          body = toQuery(obj);\n        }\n      }\n\n      setStatus('\u05e9\u05d5\u05dc\u05d7\u2026');\n      sendBtn.disabled = true;\n\n      try{\n        const res = await fetch(url, {method: st.method, headers, body, mode:'cors'});\n        const text = await res.text();\n\n        const line1 = `\u05e1\u05d8\u05d8\u05d5\u05e1: ${res.status} ${res.statusText}`;\n        const corsHint =\n          (res.status === 0 || res.type === 'opaque')\n          ? '\\n(\u05d9\u05d9\u05ea\u05db\u05df \u05e9\u05d4\u05d3\u05e4\u05d3\u05e4\u05df \u05e0\u05d7\u05e1\u05dd \u05d1\u05d2\u05dc\u05dc CORS. \u05e9\u05e7\u05d5\u05dc \u05d1\u05d3\u05d9\u05e7\u05d4 \u05d3\u05e8\u05da \u05e4\u05e8\u05d5\u05e7\u05e1\u05d9\/\u05e9\u05d9\u05d8\u05d4 \u05d0\u05d7\u05e8\u05ea.)'\n          : '';\n\n        setStatus(line1 + `\\n\\n` + text.slice(0, 5000) + corsHint, res.ok ? 'ok' : 'warn');\n        noteSend();\n      } catch(err){\n        setStatus(\n          '\u05d4\u05d1\u05e7\u05e9\u05d4 \u05e0\u05db\u05e9\u05dc\u05d4: ' + (err && err.message ? err.message : '\u05e9\u05d2\u05d9\u05d0\u05d4 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2\u05d4') +\n          '\\n\u05d9\u05d9\u05ea\u05db\u05df \u05e9\u05d6\u05d5 \u05d1\u05e2\u05d9\u05d9\u05ea CORS. \u05e0\u05e1\u05d4 \u05e0\u05e7\u05d5\u05d3\u05ea \u05e7\u05e6\u05d4 \u05d0\u05d7\u05e8\u05ea \u05d0\u05d5 \u05d1\u05d3\u05d9\u05e7\u05d4 \u05d3\u05e8\u05da \u05e4\u05e8\u05d5\u05e7\u05e1\u05d9\/\u05e9\u05d9\u05d8\u05d4 \u05d0\u05d7\u05e8\u05ea.',\n          'err'\n        );\n      } finally {\n        startCooldownTimer();\n      }\n    }\n\n    function toCurl(){\n      const {obj} = gatherPayload();\n      const m = st.method;\n      const url = st.endpoint;\n\n      if(['GET','DELETE'].includes(m)){\n        const qs = toQuery(obj);\n        return `curl -X ${m} '${url}${url.includes('?')?'&':'?'}${qs}' -H 'Accept: application\/json'`;\n      } else if(st.encoding==='json'){\n        const data = JSON.stringify(obj).replace(\/'\/g, \"'\\\\''\");\n        return `curl -X ${m} '${url}' -H 'Content-Type: application\/json' -d '${data}'`;\n      } else {\n        const qs = toQuery(obj).replace(\/'\/g, \"'\\\\''\");\n        return `curl -X ${m} '${url}' -H 'Content-Type: application\/x-www-form-urlencoded' -d '${qs}'`;\n      }\n    }\n\n    \/\/ Navigation\n    function show(view){\n      if(view==='sender'){\n        builder.classList.add('hidden');\n        sender.classList.remove('hidden');\n        sender.setAttribute('aria-hidden','false');\n        renderSender();\n        startCooldownTimer();\n        \/\/ \u05d2\u05dc\u05d9\u05dc\u05d4 \u05e0\u05e2\u05d9\u05de\u05d4 \u05dc\u05e8\u05d0\u05e9 \u05d4\u05d0\u05d6\u05d5\u05e8\n        try { sender.scrollIntoView({behavior:'smooth', block:'start'}); } catch(e){}\n      } else {\n        sender.classList.add('hidden');\n        builder.classList.remove('hidden');\n        sender.setAttribute('aria-hidden','true');\n        renderBuilder();\n        try { builder.scrollIntoView({behavior:'smooth', block:'start'}); } catch(e){}\n      }\n    }\n\n    \/\/ Wire events\n    endpointInput.addEventListener('input', syncStateFromBuilder);\n    methodSel.addEventListener('change', syncStateFromBuilder);\n    encodingSel.addEventListener('change', syncStateFromBuilder);\n    cooldownInput.addEventListener('input', syncStateFromBuilder);\n    rateInput.addEventListener('input', syncStateFromBuilder);\n\n    $('#addFieldBtn').addEventListener('click', ()=>{\n      st.fields.push({name:'newField', type:'text', required:false});\n      renderBuilder();\n    });\n\n    toSenderBtn.addEventListener('click', ()=> show('sender'));\n    backBtn.addEventListener('click', ()=> show('builder'));\n\n    sendBtn.addEventListener('click', sendOnce);\n\n    copyCurlBtn.addEventListener('click', ()=>{\n      const c = toCurl();\n      navigator.clipboard.writeText(c)\n        .then(()=> setStatus('cURL \u05d4\u05d5\u05e2\u05ea\u05e7 \u05dc\u05dc\u05d5\u05d7.\\n\\n' + c, 'ok'))\n        .catch(()=> setStatus('\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05e2\u05ea\u05d9\u05e7 cURL. \u05d4\u05e0\u05d4 \u05d4\u05e4\u05e7\u05d5\u05d3\u05d4:\\n\\n' + c, 'warn'));\n    });\n\n    resetBtn.addEventListener('click', ()=>{\n      if(!confirm('\u05dc\u05de\u05d7\u05d5\u05e7 \u05d0\u05ea \u05d4\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05d4\u05e0\u05d5\u05db\u05d7\u05d9\u05d5\u05ea \u05d5\u05dc\u05d4\u05ea\u05d7\u05d9\u05dc \u05de\u05d7\u05d3\u05e9?')) return;\n      const fresh = defaultState();\n      Object.assign(st, fresh);\n      saveState(st);\n      renderBuilder();\n      setStatus('', 'info');\n    });\n\n    \n\n    \/\/ Init\n    \n    const st = loadState();\n    renderBuilder();\n  })();\n  \n    });\n  <\/script>\n<\/div>\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"WebApplication\",\n  \"name\": \"\u05d1\u05d5\u05d3\u05e7 \u05d5\u05d5\u05d1\u05d4\u05d5\u05e7\",\n  \"applicationCategory\": \"BusinessApplication\",\n  \"operatingSystem\": \"All\",\n  \"description\": \"\u05d1\u05d5\u05e0\u05d9\u05dd Payload \u05de\u05d5\u05ea\u05d0\u05dd, \u05e9\u05d5\u05de\u05e8\u05d9\u05dd \u05d1\u05d3\u05e4\u05d3\u05e4\u05df \u05d5\u05e9\u05d5\u05dc\u05d7\u05d9\u05dd \u05d1\u05e7\u05e9\u05d5\u05ea \u05d1\u05d3\u05d9\u05e7\u05d4 \u05d1\u05e6\u05d5\u05e8\u05d4 \u05d1\u05d8\u05d5\u05d7\u05d4 (\u05e2\u05dd \u05e7\u05d9\u05e8\u05d5\u05e8 \u05e0\u05d2\u05d3 \u05e1\u05e4\u05d0\u05dd).\",\n  \"offers\": {\n    \"@type\": \"Offer\",\n    \"price\": \"0\",\n    \"priceCurrency\": \"ILS\"\n  }\n}\n<\/script>\n<\/div>\n\n\n\n<div class=\"futur-glass-card seo-card\">\n\n\n\n<h2 class=\"wp-block-heading\">\u05d1\u05d5\u05d3\u05e7 \u05d5\u05d5\u05d1\u05d4\u05d5\u05e7 &#8211; \u05d4\u05de\u05d3\u05e8\u05d9\u05da \u05d4\u05de\u05dc\u05d0 \u05dc\u05d1\u05d3\u05d9\u05e7\u05d5\u05ea \u05d1\u05d8\u05d5\u05d7\u05d5\u05ea \u05dc\u05e4\u05e0\u05d9 \u05e4\u05e8\u05d5\u05d3\u05e7\u05e9\u05df<\/h2>\n\n\n\n<p>\u05db\u05e9\u05de\u05d7\u05d1\u05e8\u05d9\u05dd \u05de\u05e2\u05e8\u05db\u05d5\u05ea \u05d1\u05e2\u05e1\u05e7 (CRM, \u05d8\u05e4\u05e1\u05d9\u05dd, \u05d0\u05d5\u05d8\u05d5\u05de\u05e6\u05d9\u05d5\u05ea, \u05d7\u05e0\u05d5\u05ea \u05d0\u05d5\u05e0\u05dc\u05d9\u05d9\u05df \u05d5\u05e2\u05d5\u05d3), Webhook \u05d4\u05d5\u05d0 \u05d4\u05d3\u05e8\u05da \u05d4\u05e4\u05e9\u05d5\u05d8\u05d4 \u05dc\u05d4\u05e2\u05d1\u05d9\u05e8 \u05d0\u05d9\u05e8\u05d5\u05e2\u05d9\u05dd \u05d1\u05d6\u05de\u05df \u05d0\u05de\u05ea.\n        \u05dc\u05e4\u05e0\u05d9 \u05e9\u05de\u05d7\u05d1\u05e8\u05d9\u05dd \u05d0\u05ea \u05d4\u05db\u05d5\u05dc \u2013 \u05db\u05d3\u05d0\u05d9 \u05dc\u05d5\u05d5\u05d3\u05d0 \u05e9\u05d4\u05db\u05ea\u05d5\u05d1\u05ea \u05de\u05e7\u05d1\u05dc\u05ea \u05d0\u05ea \u05d4\u05e0\u05ea\u05d5\u05e0\u05d9\u05dd \u05d1\u05e4\u05d5\u05e8\u05de\u05d8 \u05d4\u05e0\u05db\u05d5\u05df. \u05db\u05d0\u05df \u05e0\u05db\u05e0\u05e1 \u05dc\u05ea\u05de\u05d5\u05e0\u05d4 <strong>\u05d1\u05d5\u05d3\u05e7 \u05d5\u05d5\u05d1\u05d4\u05d5\u05e7<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u05de\u05d4 \u05d0\u05e4\u05e9\u05e8 \u05dc\u05e2\u05e9\u05d5\u05ea \u05e2\u05dd \u05d4\u05db\u05dc\u05d9?<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u05dc\u05d1\u05e0\u05d5\u05ea Payload \u05de\u05d5\u05ea\u05d0\u05dd \u05e2\u05dd \u05e9\u05d3\u05d5\u05ea \u05dc\u05e4\u05d9 \u05d4\u05e6\u05d5\u05e8\u05da (\u05d8\u05e7\u05e1\u05d8\/\u05de\u05e1\u05e4\u05e8\/\u05d1\u05d5\u05dc\u05d9\u05d0\u05e0\u05d9).<\/li>\n\n<li>\u05dc\u05d1\u05d7\u05d5\u05e8 \u05e9\u05d9\u05d8\u05ea HTTP (POST\/GET\/PUT\/PATCH\/DELETE).<\/li>\n\n<li>\u05dc\u05e9\u05dc\u05d5\u05d7 \u05e0\u05ea\u05d5\u05e0\u05d9\u05dd \u05db-JSON \u05d0\u05d5 \u05db-Form.<\/li>\n\n<li>\u05dc\u05d4\u05e2\u05ea\u05d9\u05e7 \u05d1\u05e7\u05e9\u05d4 \u05de\u05d5\u05db\u05e0\u05d4 \u05db-cURL \u05dc\u05e6\u05d5\u05d5\u05ea\/\u05ea\u05d9\u05e2\u05d5\u05d3\/\u05d1\u05d3\u05d9\u05e7\u05d5\u05ea \u05e0\u05d5\u05e1\u05e4\u05d5\u05ea.<\/li>\n\n<li>\u05dc\u05de\u05e0\u05d5\u05e2 \u05e9\u05dc\u05d9\u05d7\u05d5\u05ea \u05db\u05e4\u05d5\u05dc\u05d5\u05ea \u05d1\u05d8\u05e2\u05d5\u05ea \u05e2\u05dd \u05e7\u05d9\u05e8\u05d5\u05e8 (Cooldown) \u05d5\u05de\u05d2\u05d1\u05dc\u05ea \u05e9\u05dc\u05d9\u05d7\u05d4 \u05dc\u05d3\u05e7\u05d4.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u05d8\u05d9\u05e4 \u05d7\u05e9\u05d5\u05d1 \u05e2\u05dc CORS<\/h3>\n\n\n\n<p>\u05de\u05d0\u05d7\u05e8 \u05d5\u05d4\u05e9\u05dc\u05d9\u05d7\u05d4 \u05de\u05ea\u05d1\u05e6\u05e2\u05ea \u05de\u05ea\u05d5\u05da \u05d4\u05d3\u05e4\u05d3\u05e4\u05df, \u05d9\u05d9\u05ea\u05db\u05df \u05e9\u05d7\u05dc\u05e7 \u05de\u05d4\u05e9\u05e8\u05ea\u05d9\u05dd \u05d9\u05d7\u05d6\u05d9\u05e8\u05d5 \u05d7\u05e1\u05d9\u05de\u05d4 (CORS).\n        \u05d1\u05de\u05e7\u05e8\u05d4 \u05db\u05d6\u05d4, \u05d1\u05d3\u05e7\u05d5 \u05e9\u05d4\u05e9\u05e8\u05ea \u05de\u05d0\u05e4\u05e9\u05e8 \u05d1\u05e7\u05e9\u05d5\u05ea \u05de\u05d4\u05d3\u05e4\u05d3\u05e4\u05df \u05d0\u05d5 \u05d4\u05e9\u05ea\u05de\u05e9\u05d5 \u05d1\u05e9\u05d9\u05d8\u05ea \u05d1\u05d3\u05d9\u05e7\u05d4 \u05d0\u05d7\u05e8\u05ea \u05d1\u05e6\u05d3 \u05e9\u05e8\u05ea\/\u05e4\u05e8\u05d5\u05e7\u05e1\u05d9.<\/p>\n\n\n\n<p>\u05de\u05d7\u05e4\u05e9\u05d9\u05dd \u05e2\u05d5\u05d3 \u05db\u05dc\u05d9\u05dd \u05d7\u05d9\u05e0\u05de\u05d9\u05d9\u05dd \u05dc\u05e2\u05e1\u05e7\u05d9\u05dd? \u05d1-Bnet Solutions \u05ea\u05de\u05e6\u05d0\u05d5 \u05db\u05dc\u05d9\u05dd \u05e4\u05e8\u05e7\u05d8\u05d9\u05d9\u05dd \u05e9\u05e2\u05d5\u05d6\u05e8\u05d9\u05dd \u05dc\u05d7\u05e1\u05d5\u05da \u05d6\u05de\u05df \u05d5\u05db\u05e1\u05e3 \u2013 \u05d1\u05dc\u05d9 \u05d4\u05e8\u05e9\u05de\u05d4 \u05d5\u05d1\u05dc\u05d9 \u05d4\u05ea\u05e7\u05e0\u05d5\u05ea.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u05e9\u05d0\u05dc\u05d5\u05ea \u05e0\u05e4\u05d5\u05e6\u05d5\u05ea<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">\u05de\u05d4 \u05d6\u05d4 Webhook (\u05d5\u05d5\u05d1\u05d4\u05d5\u05e7)?<\/h4>\n\n\n\n<p>Webhook \u05d4\u05d5\u05d0 \u05de\u05e0\u05d2\u05e0\u05d5\u05df \u05e9\u05de\u05d0\u05e4\u05e9\u05e8 \u05dc\u05d9\u05d9\u05e9\u05d5\u05de\u05d9\u05dd \u05e9\u05d5\u05e0\u05d9\u05dd \u05dc\u05e9\u05dc\u05d5\u05d7 \u05e0\u05ea\u05d5\u05e0\u05d9\u05dd \u05d0\u05d5\u05d8\u05d5\u05de\u05d8\u05d9\u05d9\u05dd \u05dc\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d5\u05ea \u05d0\u05d7\u05e8\u05d5\u05ea \u05d1\u05d6\u05de\u05df \u05d0\u05de\u05ea \u05d1\u05ea\u05d2\u05d5\u05d1\u05d4 \u05dc\u05d0\u05d9\u05e8\u05d5\u05e2 \u05db\u05dc\u05e9\u05d4\u05d5, \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05d1\u05e7\u05e9\u05ea HTTP \u05d9\u05e9\u05d9\u05e8\u05d4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u05d4\u05d0\u05dd \u05d4\u05e0\u05ea\u05d5\u05e0\u05d9\u05dd \u05e9\u05dc\u05d9 \u05e0\u05e9\u05de\u05e8\u05d9\u05dd \u05d1\u05e9\u05e8\u05ea?<\/h4>\n\n\n\n<p>\u05dc\u05d0, \u05d1\u05d5\u05d3\u05e7 \u05d4\u05d5\u05d5\u05d1\u05d4\u05d5\u05e7 \u05e9\u05dc\u05e0\u05d5 \u05e4\u05d5\u05e2\u05dc \u05d1\u05de\u05dc\u05d5\u05d0\u05d5 \u05d1\u05e6\u05d3 \u05d4\u05dc\u05e7\u05d5\u05d7 (\u05d1\u05d3\u05e4\u05d3\u05e4\u05df \u05e9\u05dc\u05da). \u05d4\u05e0\u05ea\u05d5\u05e0\u05d9\u05dd \u05e9\u05d0\u05ea\u05d4 \u05de\u05d6\u05d9\u05df \u05e0\u05e9\u05de\u05e8\u05d9\u05dd \u05d1\u05d0\u05d5\u05e4\u05df \u05de\u05e7\u05d5\u05de\u05d9 \u05d1\u05d3\u05e4\u05d3\u05e4\u05df (localStorage) \u05d5\u05d0\u05d9\u05e0\u05dd \u05de\u05d5\u05e2\u05d1\u05e8\u05d9\u05dd \u05d0\u05d5 \u05e0\u05e9\u05de\u05e8\u05d9\u05dd \u05d1\u05e9\u05e8\u05ea\u05d9\u05dd \u05e9\u05dc\u05e0\u05d5 \u05d1\u05e9\u05d5\u05dd \u05e9\u05dc\u05d1.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u05dc\u05de\u05d4 \u05d0\u05e0\u05d9 \u05de\u05e7\u05d1\u05dc \u05e9\u05d2\u05d9\u05d0\u05ea CORS?<\/h4>\n\n\n\n<p>\u05e9\u05d2\u05d9\u05d0\u05ea CORS (Cross-Origin Resource Sharing) \u05de\u05d5\u05e4\u05d9\u05e2\u05d4 \u05db\u05d0\u05e9\u05e8 \u05d4\u05e9\u05e8\u05ea \u05e9\u05dc \u05e0\u05e7\u05d5\u05d3\u05ea \u05d4\u05e7\u05e6\u05d4 (\u05d4-Webhook \u05d0\u05dc\u05d9\u05d5 \u05d0\u05ea\u05d4 \u05de\u05e0\u05e1\u05d4 \u05dc\u05e9\u05dc\u05d5\u05d7) \u05d7\u05d5\u05e1\u05dd \u05d1\u05e7\u05e9\u05d5\u05ea \u05e9\u05de\u05e7\u05d5\u05e8\u05df \u05d1\u05d3\u05e4\u05d3\u05e4\u05df \u05de\u05e1\u05d9\u05d1\u05d5\u05ea \u05d0\u05d1\u05d8\u05d7\u05d4. \u05db\u05d3\u05d9 \u05dc\u05e2\u05e7\u05d5\u05e3 \u05d6\u05d0\u05ea, \u05db\u05d3\u05d0\u05d9 \u05dc\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05e9\u05e8\u05ea \u05ea\u05d9\u05d5\u05d5\u05da (Proxy) \u05d0\u05d5 \u05dc\u05e9\u05dc\u05d5\u05d7 \u05d0\u05ea \u05d4\u05e0\u05ea\u05d5\u05e0\u05d9\u05dd \u05d3\u05e8\u05da \u05e7\u05dc\u05d9\u05d9\u05e0\u05d8 \u05e4\u05d9\u05ea\u05d5\u05d7 \u05db\u05de\u05d5 Postman. \u05d1\u05d5\u05d3\u05e7 \u05d4\u05d5\u05d5\u05d1\u05d4\u05d5\u05e7 \u05e9\u05dc\u05e0\u05d5 \u05de\u05e2\u05d5\u05dc\u05d4 \u05e2\u05d1\u05d5\u05e8 \u05de\u05e2\u05e8\u05db\u05d5\u05ea \u05e9\u05de\u05e7\u05d1\u05dc\u05d5\u05ea \u05d1\u05e7\u05e9\u05d5\u05ea \u05d1\u05d3\u05e4\u05d3\u05e4\u05df \u05dc\u05dc\u05d0 \u05d7\u05e1\u05d9\u05de\u05d5\u05ea \u05d0\u05dc\u05d5.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u05d4\u05d0\u05dd \u05d9\u05e9 \u05d4\u05d2\u05d1\u05dc\u05ea \u05e9\u05dc\u05d9\u05d7\u05ea \u05e0\u05ea\u05d5\u05e0\u05d9\u05dd \u05d1\u05db\u05dc\u05d9?<\/h4>\n\n\n\n<p>\u05db\u05d3\u05d9 \u05dc\u05de\u05e0\u05d5\u05e2 \u05e9\u05dc\u05d9\u05d7\u05d5\u05ea \u05e1\u05e4\u05d0\u05dd \u05d5\u05dc\u05e9\u05de\u05d5\u05e8 \u05e2\u05dc \u05d9\u05e6\u05d9\u05d1\u05d5\u05ea, \u05d4\u05db\u05dc\u05d9 \u05db\u05d5\u05dc\u05dc \u05de\u05e0\u05d2\u05e0\u05d5\u05df &quot;\u05e7\u05d9\u05e8\u05d5\u05e8&quot; (Cooldown) \u05e9\u05de\u05d5\u05e0\u05e2 \u05e9\u05dc\u05d9\u05d7\u05ea \u05d1\u05e7\u05e9\u05d5\u05ea \u05d1\u05e7\u05e6\u05d1 \u05d2\u05d1\u05d5\u05d4 \u05de\u05d9\u05d3\u05d9, \u05d1\u05e0\u05d5\u05e1\u05e3 \u05dc\u05de\u05d2\u05d1\u05dc\u05ea \u05db\u05de\u05d5\u05ea \u05e9\u05dc\u05d9\u05d7\u05d5\u05ea \u05db\u05d5\u05dc\u05dc\u05ea \u05dc\u05d3\u05e7\u05d4 \u05d4\u05e0\u05d9\u05ea\u05e0\u05ea \u05dc\u05d4\u05d2\u05d3\u05e8\u05d4 \u05d1\u05de\u05de\u05e9\u05e7.<\/p>\n\n\n\n<p><strong>\u05d4\u05d1\u05d4\u05e8\u05d4:<\/strong> \u05d1\u05d5\u05d3\u05e7 \u05d4\u05d5\u05d5\u05d1\u05d4\u05d5\u05e7 \u05de\u05d9\u05d5\u05e2\u05d3 \u05dc\u05e6\u05e8\u05db\u05d9 \u05e4\u05d9\u05ea\u05d5\u05d7 \u05d5\u05d1\u05d3\u05d9\u05e7\u05d4 \u05d1\u05dc\u05d1\u05d3. \u05d0\u05e0\u05d5 \u05dc\u05d0 \u05e0\u05d5\u05e9\u05d0\u05d9\u05dd \u05d1\u05d0\u05d7\u05e8\u05d9\u05d5\u05ea \u05dc\u05e9\u05d9\u05de\u05d5\u05e9 \u05dc\u05e8\u05e2\u05d4 \u05d0\u05d5 \u05dc\u05de\u05d7\u05d9\u05e7\u05ea\/\u05e4\u05d2\u05d9\u05e2\u05d4 \u05d1\u05e0\u05ea\u05d5\u05e0\u05d9\u05dd \u05d1\u05de\u05e2\u05e8\u05db\u05ea \u05e9\u05d0\u05dc\u05d9\u05d4 \u05de\u05d5\u05e4\u05e0\u05d9\u05dd \u05d4\u05e0\u05ea\u05d5\u05e0\u05d9\u05dd.<\/p>\n\n\n\n<\/div>\n\n\n\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u05d1\u05d5\u05e0\u05d9\u05dd Payload \u05de\u05d5\u05ea\u05d0\u05dd, \u05e9\u05d5\u05de\u05e8\u05d9\u05dd \u05d1\u05d3\u05e4\u05d3\u05e4\u05df \u05d5\u05e9\u05d5\u05dc\u05d7\u05d9\u05dd \u05d1\u05e7\u05e9\u05d5\u05ea \u05d1\u05d3\u05d9\u05e7\u05d4 \u05d1\u05e6\u05d5\u05e8\u05d4 \u05d1\u05d8\u05d5\u05d7\u05d4 (\u05e2\u05dd \u05e7\u05d9\u05e8\u05d5\u05e8 \u05e0\u05d2\u05d3 \u05e1\u05e4\u05d0\u05dd).<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_yoast_wpseo_metadesc":"\u05d1\u05d5\u05e0\u05d9\u05dd Payload \u05de\u05d5\u05ea\u05d0\u05dd, \u05e9\u05d5\u05de\u05e8\u05d9\u05dd \u05d1\u05d3\u05e4\u05d3\u05e4\u05df \u05d5\u05e9\u05d5\u05dc\u05d7\u05d9\u05dd \u05d1\u05e7\u05e9\u05d5\u05ea \u05d1\u05d3\u05d9\u05e7\u05d4 \u05d1\u05e6\u05d5\u05e8\u05d4 \u05d1\u05d8\u05d5\u05d7\u05d4 (\u05e2\u05dd \u05e7\u05d9\u05e8\u05d5\u05e8 \u05e0\u05d2\u05d3 \u05e1\u05e4\u05d0\u05dd).","tool_emoji":"\ud83e\ude9d","tool_category":"\u05db\u05dc\u05d9\u05dd \u05dc\u05d1\u05d5\u05e0\u05d9 \u05d0\u05ea\u05e8\u05d9\u05dd","tool_featured":"no","footnotes":""},"class_list":["post-50781","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\ud83e\ude9d \u05d1\u05d5\u05d3\u05e7 \u05d5\u05d5\u05d1\u05d4\u05d5\u05e7 - \u05db\u05dc\u05d9\u05dd \u05d1\u05d7\u05d9\u05e0\u05dd \u05dc\u05e2\u05e1\u05e7\u05d9\u05dd<\/title>\n<meta name=\"description\" content=\"\u05d1\u05d5\u05e0\u05d9\u05dd Payload \u05de\u05d5\u05ea\u05d0\u05dd, \u05e9\u05d5\u05de\u05e8\u05d9\u05dd \u05d1\u05d3\u05e4\u05d3\u05e4\u05df \u05d5\u05e9\u05d5\u05dc\u05d7\u05d9\u05dd \u05d1\u05e7\u05e9\u05d5\u05ea \u05d1\u05d3\u05d9\u05e7\u05d4 \u05d1\u05e6\u05d5\u05e8\u05d4 \u05d1\u05d8\u05d5\u05d7\u05d4 (\u05e2\u05dd \u05e7\u05d9\u05e8\u05d5\u05e8 \u05e0\u05d2\u05d3 \u05e1\u05e4\u05d0\u05dd).\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/bsolution.me\/he\/webhook-test\/\" \/>\n<meta property=\"og:locale\" content=\"he_IL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\ud83e\ude9d \u05d1\u05d5\u05d3\u05e7 \u05d5\u05d5\u05d1\u05d4\u05d5\u05e7 - \u05db\u05dc\u05d9\u05dd \u05d1\u05d7\u05d9\u05e0\u05dd \u05dc\u05e2\u05e1\u05e7\u05d9\u05dd\" \/>\n<meta property=\"og:description\" content=\"\u05d1\u05d5\u05e0\u05d9\u05dd Payload \u05de\u05d5\u05ea\u05d0\u05dd, \u05e9\u05d5\u05de\u05e8\u05d9\u05dd \u05d1\u05d3\u05e4\u05d3\u05e4\u05df \u05d5\u05e9\u05d5\u05dc\u05d7\u05d9\u05dd \u05d1\u05e7\u05e9\u05d5\u05ea \u05d1\u05d3\u05d9\u05e7\u05d4 \u05d1\u05e6\u05d5\u05e8\u05d4 \u05d1\u05d8\u05d5\u05d7\u05d4 (\u05e2\u05dd \u05e7\u05d9\u05e8\u05d5\u05e8 \u05e0\u05d2\u05d3 \u05e1\u05e4\u05d0\u05dd).\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bsolution.me\/he\/webhook-test\/\" \/>\n<meta property=\"og:site_name\" content=\"\u05db\u05dc\u05d9\u05dd \u05d1\u05d7\u05d9\u05e0\u05dd \u05dc\u05e2\u05e1\u05e7\u05d9\u05dd\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bsolution.me\\\/he\\\/webhook-test\\\/\",\"url\":\"https:\\\/\\\/bsolution.me\\\/he\\\/webhook-test\\\/\",\"name\":\"\ud83e\ude9d \u05d1\u05d5\u05d3\u05e7 \u05d5\u05d5\u05d1\u05d4\u05d5\u05e7 - \u05db\u05dc\u05d9\u05dd \u05d1\u05d7\u05d9\u05e0\u05dd \u05dc\u05e2\u05e1\u05e7\u05d9\u05dd\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bsolution.me\\\/he\\\/#website\"},\"datePublished\":\"2026-06-05T15:16:23+00:00\",\"description\":\"\u05d1\u05d5\u05e0\u05d9\u05dd Payload \u05de\u05d5\u05ea\u05d0\u05dd, \u05e9\u05d5\u05de\u05e8\u05d9\u05dd \u05d1\u05d3\u05e4\u05d3\u05e4\u05df \u05d5\u05e9\u05d5\u05dc\u05d7\u05d9\u05dd \u05d1\u05e7\u05e9\u05d5\u05ea \u05d1\u05d3\u05d9\u05e7\u05d4 \u05d1\u05e6\u05d5\u05e8\u05d4 \u05d1\u05d8\u05d5\u05d7\u05d4 (\u05e2\u05dd \u05e7\u05d9\u05e8\u05d5\u05e8 \u05e0\u05d2\u05d3 \u05e1\u05e4\u05d0\u05dd).\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bsolution.me\\\/he\\\/webhook-test\\\/#breadcrumb\"},\"inLanguage\":\"he-IL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bsolution.me\\\/he\\\/webhook-test\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bsolution.me\\\/he\\\/webhook-test\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bsolution.me\\\/he\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\ud83e\ude9d \u05d1\u05d5\u05d3\u05e7 \u05d5\u05d5\u05d1\u05d4\u05d5\u05e7\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bsolution.me\\\/he\\\/#website\",\"url\":\"https:\\\/\\\/bsolution.me\\\/he\\\/\",\"name\":\"\u05db\u05dc\u05d9\u05dd \u05d1\u05d7\u05d9\u05e0\u05dd \u05dc\u05e2\u05e1\u05e7\u05d9\u05dd\",\"description\":\"\u05d0\u05d5\u05d8\u05d5\u05de\u05e6\u05d9\u05d5\u05ea \u05e9\u05d9\u05d5\u05d5\u05e7, \u05de\u05d7\u05e9\u05d1\u05d5\u05e0\u05d9\u05dd, \u05de\u05d7\u05d5\u05dc\u05dc\u05d9 \u05e7\u05d9\u05e9\u05d5\u05e8\u05d9\u05dd\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/bsolution.me\\\/he\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"he-IL\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\ud83e\ude9d \u05d1\u05d5\u05d3\u05e7 \u05d5\u05d5\u05d1\u05d4\u05d5\u05e7 - \u05db\u05dc\u05d9\u05dd \u05d1\u05d7\u05d9\u05e0\u05dd \u05dc\u05e2\u05e1\u05e7\u05d9\u05dd","description":"\u05d1\u05d5\u05e0\u05d9\u05dd Payload \u05de\u05d5\u05ea\u05d0\u05dd, \u05e9\u05d5\u05de\u05e8\u05d9\u05dd \u05d1\u05d3\u05e4\u05d3\u05e4\u05df \u05d5\u05e9\u05d5\u05dc\u05d7\u05d9\u05dd \u05d1\u05e7\u05e9\u05d5\u05ea \u05d1\u05d3\u05d9\u05e7\u05d4 \u05d1\u05e6\u05d5\u05e8\u05d4 \u05d1\u05d8\u05d5\u05d7\u05d4 (\u05e2\u05dd \u05e7\u05d9\u05e8\u05d5\u05e8 \u05e0\u05d2\u05d3 \u05e1\u05e4\u05d0\u05dd).","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/bsolution.me\/he\/webhook-test\/","og_locale":"he_IL","og_type":"article","og_title":"\ud83e\ude9d \u05d1\u05d5\u05d3\u05e7 \u05d5\u05d5\u05d1\u05d4\u05d5\u05e7 - \u05db\u05dc\u05d9\u05dd \u05d1\u05d7\u05d9\u05e0\u05dd \u05dc\u05e2\u05e1\u05e7\u05d9\u05dd","og_description":"\u05d1\u05d5\u05e0\u05d9\u05dd Payload \u05de\u05d5\u05ea\u05d0\u05dd, \u05e9\u05d5\u05de\u05e8\u05d9\u05dd \u05d1\u05d3\u05e4\u05d3\u05e4\u05df \u05d5\u05e9\u05d5\u05dc\u05d7\u05d9\u05dd \u05d1\u05e7\u05e9\u05d5\u05ea \u05d1\u05d3\u05d9\u05e7\u05d4 \u05d1\u05e6\u05d5\u05e8\u05d4 \u05d1\u05d8\u05d5\u05d7\u05d4 (\u05e2\u05dd \u05e7\u05d9\u05e8\u05d5\u05e8 \u05e0\u05d2\u05d3 \u05e1\u05e4\u05d0\u05dd).","og_url":"https:\/\/bsolution.me\/he\/webhook-test\/","og_site_name":"\u05db\u05dc\u05d9\u05dd \u05d1\u05d7\u05d9\u05e0\u05dd \u05dc\u05e2\u05e1\u05e7\u05d9\u05dd","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/bsolution.me\/he\/webhook-test\/","url":"https:\/\/bsolution.me\/he\/webhook-test\/","name":"\ud83e\ude9d \u05d1\u05d5\u05d3\u05e7 \u05d5\u05d5\u05d1\u05d4\u05d5\u05e7 - \u05db\u05dc\u05d9\u05dd \u05d1\u05d7\u05d9\u05e0\u05dd \u05dc\u05e2\u05e1\u05e7\u05d9\u05dd","isPartOf":{"@id":"https:\/\/bsolution.me\/he\/#website"},"datePublished":"2026-06-05T15:16:23+00:00","description":"\u05d1\u05d5\u05e0\u05d9\u05dd Payload \u05de\u05d5\u05ea\u05d0\u05dd, \u05e9\u05d5\u05de\u05e8\u05d9\u05dd \u05d1\u05d3\u05e4\u05d3\u05e4\u05df \u05d5\u05e9\u05d5\u05dc\u05d7\u05d9\u05dd \u05d1\u05e7\u05e9\u05d5\u05ea \u05d1\u05d3\u05d9\u05e7\u05d4 \u05d1\u05e6\u05d5\u05e8\u05d4 \u05d1\u05d8\u05d5\u05d7\u05d4 (\u05e2\u05dd \u05e7\u05d9\u05e8\u05d5\u05e8 \u05e0\u05d2\u05d3 \u05e1\u05e4\u05d0\u05dd).","breadcrumb":{"@id":"https:\/\/bsolution.me\/he\/webhook-test\/#breadcrumb"},"inLanguage":"he-IL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bsolution.me\/he\/webhook-test\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/bsolution.me\/he\/webhook-test\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bsolution.me\/he\/"},{"@type":"ListItem","position":2,"name":"\ud83e\ude9d \u05d1\u05d5\u05d3\u05e7 \u05d5\u05d5\u05d1\u05d4\u05d5\u05e7"}]},{"@type":"WebSite","@id":"https:\/\/bsolution.me\/he\/#website","url":"https:\/\/bsolution.me\/he\/","name":"\u05db\u05dc\u05d9\u05dd \u05d1\u05d7\u05d9\u05e0\u05dd \u05dc\u05e2\u05e1\u05e7\u05d9\u05dd","description":"\u05d0\u05d5\u05d8\u05d5\u05de\u05e6\u05d9\u05d5\u05ea \u05e9\u05d9\u05d5\u05d5\u05e7, \u05de\u05d7\u05e9\u05d1\u05d5\u05e0\u05d9\u05dd, \u05de\u05d7\u05d5\u05dc\u05dc\u05d9 \u05e7\u05d9\u05e9\u05d5\u05e8\u05d9\u05dd","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bsolution.me\/he\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"he-IL"}]}},"_links":{"self":[{"href":"https:\/\/bsolution.me\/he\/wp-json\/wp\/v2\/pages\/50781","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bsolution.me\/he\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bsolution.me\/he\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bsolution.me\/he\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bsolution.me\/he\/wp-json\/wp\/v2\/comments?post=50781"}],"version-history":[{"count":1,"href":"https:\/\/bsolution.me\/he\/wp-json\/wp\/v2\/pages\/50781\/revisions"}],"predecessor-version":[{"id":50782,"href":"https:\/\/bsolution.me\/he\/wp-json\/wp\/v2\/pages\/50781\/revisions\/50782"}],"wp:attachment":[{"href":"https:\/\/bsolution.me\/he\/wp-json\/wp\/v2\/media?parent=50781"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}