import{j as e,c as u}from"./index-C0CnWKTJ.js";import{r as m}from"./vendor-animations-CsoOZIH8.js";const b="_developersPage_1ypv1_1",y="_backgroundGlow_1ypv1_29",_="_container_1ypv1_41",f="_content_1ypv1_52",T="_header_1ypv1_65",I="_sectionContainer_1ypv1_84",N="_fadeIn_1ypv1_1",l={developersPage:b,backgroundGlow:y,container:_,content:f,header:T,sectionContainer:I,fadeIn:N},S="_sidebar_ijgne_1",k="_logo_ijgne_18",v="_nav_ijgne_31",A="_separator_ijgne_43",C="_navItem_ijgne_50",E="_active_ijgne_70",q="_badge_ijgne_76",P="_supportInfo_ijgne_88",i={sidebar:S,logo:k,nav:v,separator:A,navItem:C,active:E,badge:q,supportInfo:P},H=({activeSection:r,setActiveSection:h})=>{const[x,a]=m.useState(0),p=()=>{x<10?a(n=>n+1):a(0)},g=[{id:"websockets",label:"WebSocket API",badge:"v1"},{id:"separator",type:"separator"},{id:"oauth",label:"ÐÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ OAuth2",badge:"v2"},{id:"partner-donations",label:"ПартнёрÑкие донаты",badge:"v2"},{id:"webhooks-v2",label:"Вебхуки партнёрÑких донатов",badge:"v2"},{id:"separator-2",type:"separator"},{id:"errors",label:"Коды ошибок"}];return e.jsxs("aside",{className:i.sidebar,children:[e.jsxs("div",{className:i.logo,onClick:p,style:{cursor:"pointer",userSelect:"none"},title:"Click me",children:[e.jsx("span",{children:"iHAQ"})," ",x>=10?e.jsx("span",{style:{color:"#10b981",textShadow:"0 0 10px rgba(16, 185, 129, 0.5)"},children:"Hackers"}):"Developers"]}),e.jsx("nav",{className:i.nav,children:e.jsx("ul",{children:g.map(n=>n.type==="separator"?e.jsx("li",{className:i.separator},n.id):e.jsx("li",{children:e.jsxs("button",{className:u(i.navItem,{[i.active]:r===n.id}),onClick:()=>h(n.id),children:[e.jsx("span",{children:n.label}),n.badge&&e.jsx("span",{className:i.badge,children:n.badge})]})},n.id))})}),e.jsxs("div",{className:i.supportInfo,children:[e.jsx("h4",{children:"Ðужна помощь?"}),e.jsxs("p",{children:["СвÑжитеÑÑŒ Ñ Ð½Ð°ÑˆÐµÐ¹ Ñлужбой поддержки по адреÑу ",e.jsx("a",{href:"mailto:support@ihaqdonate.com",children:"support@ihaqdonate.com"})]})]}),x>=10&&e.jsx("style",{children:`
@keyframes toxic-flash {
0% { filter: hue-rotate(0deg) contrast(200%) saturate(500%); }
33% { filter: hue-rotate(120deg) invert(100%) contrast(300%) saturate(1000%); }
66% { filter: hue-rotate(240deg) contrast(250%) saturate(800%); }
100% { filter: hue-rotate(360deg) contrast(200%) saturate(500%); }
}
@keyframes extreme-vibrate {
0% { transform: translate(2px, 2px) skewX(0deg); }
20% { transform: translate(-3px, -2px) skewX(2deg); }
40% { transform: translate(-2px, 3px) skewX(-2deg); }
60% { transform: translate(3px, -1px) skewX(1deg); }
80% { transform: translate(1px, -3px) skewX(-1deg); }
100% { transform: translate(2px, 2px) skewX(0deg); }
}
body {
animation: toxic-flash 0.15s infinite, extreme-vibrate 0.05s infinite !important;
overflow-x: hidden;
}
`})]})},O="_section_zlxey_1",w="_method_zlxey_16",R="_get_zlxey_23",D="_post_zlxey_27",$="_patch_zlxey_31",z="_wss_zlxey_35",L="_required_zlxey_77",s={section:O,method:w,get:R,post:D,patch:$,wss:z,required:L},U="_codeBlockWrapper_scsn3_1",J="_copyButton_scsn3_5",B="_pre_scsn3_29",X="_code_scsn3_1",G="_string_scsn3_44",K="_number_scsn3_47",M="_boolean_scsn3_50",W="_key_scsn3_56",c={codeBlockWrapper:U,copyButton:J,pre:B,code:X,string:G,number:K,boolean:M,null:"_null_scsn3_53",key:W},d=({code:r,language:h="json"})=>{const[x,a]=m.useState(!1),p=()=>{navigator.clipboard.writeText(r),a(!0),setTimeout(()=>a(!1),2e3)},g=t=>t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g,o=>{let j=c.number;return/^"/.test(o)?/:$/.test(o)?j=c.key:j=c.string:/true|false/.test(o)?j=c.boolean:/null/.test(o)&&(j=c.null),`<span class="${j}">${o}</span>`}),n=()=>{let t=r;return h==="json"?t=g(r):t=t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),{__html:t}};return e.jsxs("div",{className:c.codeBlockWrapper,children:[e.jsx("button",{className:c.copyButton,onClick:p,children:x?"Copied!":"Copy"}),e.jsx("pre",{className:c.pre,children:e.jsx("code",{className:c.code,dangerouslySetInnerHTML:n()})})]})},Q=()=>e.jsxs("div",{className:s.section,children:[e.jsx("h2",{children:"ÐÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ OAuth2 (API v2)"}),e.jsx("p",{children:"Платформа iHAQ иÑпользует Ñтандартный протокол OAuth2 Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ð¸. С помощью данного метода вы можете позволить пользователÑм авторизоватьÑÑ Ñ‡ÐµÑ€ÐµÐ· Ñвои аккаунты iHAQ и безопаÑно выполнÑть дейÑÑ‚Ð²Ð¸Ñ Ð¾Ñ‚ их имени."}),e.jsxs("h3",{children:[e.jsx("span",{className:`${s.method} ${s.get}`,children:"GET"}),"1. Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ð¸ (Authorization Endpoint)"]}),e.jsx("p",{children:"Перенаправьте Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¿Ð¾ данному URL Ð´Ð»Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ñ†Ð¸Ð¸ процеÑÑа OAuth2-авторизации."}),e.jsx(d,{language:"text",code:"https://ihaqdonate.com/oauth/authorize?client_id=a3f5b9d2-e64c-4178-90ca-b8e734c2f10b&redirect_uri=https://your-service.com/callback&response_type=code"}),e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Параметр"}),e.jsx("th",{children:"Тип"}),e.jsx("th",{children:"ОбÑзательно"}),e.jsx("th",{children:"ОпиÑание"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"client_id"})}),e.jsx("td",{children:"String (uuidv4)"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Уникальный идентификатор вашего Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ (Client ID)"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"redirect_uri"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"URI Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¿Ð¾Ñле уÑпешной авторизации"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"response_type"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:'Ожидаемый тип ответа. ПоддерживаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ значение "code"'})]})]})]}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Пример редиректа при уÑпешной авторизации:"})}),e.jsx(d,{language:"text",code:"https://your-service.com/callback?code=f4a8b291-76cd-4d8e-a9b0-3c2f1e5d4a97"}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Пример редиректа при возникновении ошибок:"})}),e.jsx(d,{language:"text",code:"https://your-service.com/callback?error=access_denied&error_description=User+denied+access"}),e.jsxs("h3",{style:{marginTop:"48px"},children:[e.jsx("span",{className:`${s.method} ${s.post}`,children:"POST"}),"2. Получение токена доÑтупа (Access Token)"]}),e.jsx("p",{children:"Выполните обмен полученного кода авторизации на токен доÑтупа (Access Token)."}),e.jsx(d,{language:"text",code:"POST https://ihaqdonate.com/api/v2/oauth/token"}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Параметры запроÑа:"})}),e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Параметр"}),e.jsx("th",{children:"Тип"}),e.jsx("th",{children:"ОбÑзательно"}),e.jsx("th",{children:"ОпиÑание"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"client_id"})}),e.jsx("td",{children:"String (uuidv4)"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Идентификатор клиента"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"redirect_uri"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"URI клиента, куда будет оÑущеÑтвлен редирект"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"grant_type"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:'Вариант запроÑа "authorization_code"'})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"code"})}),e.jsx("td",{children:"String (uuidv4)"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Код авторизации"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"client_secret"})}),e.jsx("td",{children:"String (uuidv4)"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Секретный токен клиента"})]})]})]}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Пример тела запроÑа:"})}),e.jsx(d,{language:"json",code:`{
"grant_type": "authorization_code",
"code": "f4a8b291-76cd-4d8e-a9b0-3c2f1e5d4a97",
"client_id": "a3f5b9d2-e64c-4178-90ca-b8e734c2f10b",
"client_secret": "c9b8a7f6-e5d4-4c3b-2a19-0f8e7d6c5b4a",
"redirect_uri": "https://your-service.com/callback"
}`}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Параметры ответа:"})}),e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Параметр"}),e.jsx("th",{children:"Тип"}),e.jsx("th",{children:"ОбÑзательно"}),e.jsx("th",{children:"ОпиÑание"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"access_token"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Access токен"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"token_type"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:'Тип access токена. ПоддерживаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ "Bearer"'})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"expires_in"})}),e.jsx("td",{children:"Number"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Ð’Ñ€ÐµÐ¼Ñ Ð¶Ð¸Ð·Ð½Ð¸ токена"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"refresh_token"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Refresh токен"})]})]})]}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Пример ответа:"})}),e.jsx(d,{language:"json",code:`{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp...",
"token_type": "Bearer",
"expires_in": 1800,
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp..."
}`}),e.jsxs("h3",{style:{marginTop:"48px"},children:[e.jsx("span",{className:`${s.method} ${s.post}`,children:"POST"}),"3. Обновление токена доÑтупа (Refresh Token)"]}),e.jsx("p",{children:"ИÑпользуйте Ñтот Ñндпоинт Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ access-токена, когда Ñрок дейÑÑ‚Ð²Ð¸Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ³Ð¾ иÑтек."}),e.jsx(d,{language:"text",code:"POST https://ihaqdonate.com/api/v2/oauth/token"}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Параметры запроÑа:"})}),e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Параметр"}),e.jsx("th",{children:"Тип"}),e.jsx("th",{children:"ОбÑзательно"}),e.jsx("th",{children:"ОпиÑание"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"client_id"})}),e.jsx("td",{children:"String (uuidv4)"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Идентификатор клиента"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"redirect_uri"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"URI клиента, куда будет оÑущеÑтвлен редирект"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"grant_type"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:'Вариант запроÑа "refresh_token"'})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"refresh_token"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"ДейÑтвующий Refresh токен"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"client_secret"})}),e.jsx("td",{children:"String (uuidv4)"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Секретный токен клиента"})]})]})]}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Пример тела запроÑа:"})}),e.jsx(d,{language:"json",code:`{
"grant_type": "refresh_token",
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp...",
"client_id": "a3f5b9d2-e64c-4178-90ca-b8e734c2f10b",
"client_secret": "c9b8a7f6-e5d4-4c3b-2a19-0f8e7d6c5b4a",
"redirect_uri": "https://your-service.com/callback"
}`}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Параметры ответа:"})}),e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Параметр"}),e.jsx("th",{children:"Тип"}),e.jsx("th",{children:"ОбÑзательно"}),e.jsx("th",{children:"ОпиÑание"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"access_token"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Ðовый Access токен"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"token_type"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:'Тип access токена. ПоддерживаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ "Bearer"'})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"expires_in"})}),e.jsx("td",{children:"Number"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Ð’Ñ€ÐµÐ¼Ñ Ð¶Ð¸Ð·Ð½Ð¸ токена"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"refresh_token"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Ðовый Refresh токен"})]})]})]}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Пример ответа:"})}),e.jsx(d,{language:"json",code:`{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp...",
"token_type": "Bearer",
"expires_in": 1800,
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp..."
}`}),e.jsxs("h3",{style:{marginTop:"48px"},children:[e.jsx("span",{className:`${s.method} ${s.get}`,children:"GET"}),"4. Получение данных пользователÑ"]}),e.jsx("p",{children:"Метод позволÑет получить базовую информацию об авторизованном пользователе."}),e.jsx(d,{language:"http",code:`GET /api/v2/user HTTP/1.1
Host: ihaqdonate.com
Authorization: Bearer {access_token}`}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Параметры ответа:"})}),e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Параметр"}),e.jsx("th",{children:"Тип"}),e.jsx("th",{children:"ОбÑзательно"}),e.jsx("th",{children:"ОпиÑание"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"id"})}),e.jsx("td",{children:"String (uuidv4)"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Идентификатор Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² ÑиÑтеме iHAQ"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"username"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Логин пользователÑ"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"api_token"})}),e.jsx("td",{children:"String (uuidv4)"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Токен Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ по WS"})]})]})]}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Пример тела ответа:"})}),e.jsx(d,{language:"json",code:`{
"id": "e1f2d3c4-b5a6-4978-80ca-9b8a7c6d5e4f",
"username": "User",
"api_token": "e1f2d3c4-b5a6-4978-80ca-9b8a7c6d5e4f"
}`})]}),F=()=>e.jsxs("div",{className:s.section,children:[e.jsx("h2",{children:"WebSocket API (v1)"}),e.jsx("p",{children:"iHAQ предоÑтавлÑет API на базе WebSockets Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ð¹ о донатах и других ÑобытиÑÑ… в реальном времени. Сервер работает на базе библиотеки Socket.IO верÑии 4.x."}),e.jsxs("h3",{children:[e.jsx("span",{className:`${s.method} ${s.wss}`,children:"WSS"}),"Подключение к Ñерверу"]}),e.jsxs("p",{children:["Ð”Ð»Ñ ÑƒÑтановки ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¸Ñпользуйте Ñледующий URL, передав ваш ",e.jsx("code",{children:"api_token"}),". Ðайти Ñвой токен можно в панели управлениÑ: ",e.jsx("a",{href:"https://ihaqdonate.com/streamer-dashboard/stream-settings",target:"_blank",rel:"noreferrer",style:{color:"#0088ff",textDecoration:"none"},children:"ÐаÑтройки Ñтрима"})," (поле «API токен»), либо получить его программно через OAuth2 API данных пользователÑ."]}),e.jsx(d,{language:"text",code:"wss://ihaqdonate.com/ws/integrations/socket.io/v1/{api_token}"}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsxs("strong",{children:["Пример Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð½Ð° Python (библиотека ",e.jsx("code",{children:"python-socketio"}),"):"]})}),e.jsx(d,{language:"python",code:`import asyncio
import socketio
iHAQ_API_TOKEN = "e1f2d3c4-b5a6-4978-80ca-9b8a7c6d5e4f"
sio_ihaq = socketio.AsyncClient()
@sio_ihaq.on('message')
async def on_message(data):
print("Получено новое Ñообщение:", data)
if data.get('type') == 'donation':
print("Ðто донат от:", data.get('message', {}).get('donatorName'))
async def main():
await sio_ihaq.connect(
"https://ihaqdonate.com",
transports=["websocket"],
socketio_path=f"ws/integrations/socket.io/v1/{iHAQ_API_TOKEN}"
)
await sio_ihaq.wait()
if __name__ == '__main__':
asyncio.run(main())`}),e.jsx("h3",{children:"Формат Ñобытий"}),e.jsxs("p",{children:["Ð’Ñе ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð¿Ñ€Ð¸Ñ…Ð¾Ð´ÑÑ‚ по WebSocket-каналу Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ ",e.jsx("code",{children:"message"}),". Внутри передаетÑÑ JSON-объект, где корневое поле ",e.jsx("code",{children:"type"})," указывает на тип ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ (например, ",e.jsx("code",{children:'"donation"'}),"), а поле ",e.jsx("code",{children:"message"})," Ñодержит Ñами данные."]}),e.jsx("h4",{style:{color:"#fff",fontSize:"1.2rem",margin:"32px 0 16px 0"},children:'Получение донатов (type: "donation")'}),e.jsx("p",{children:"Событие отправлÑетÑÑ Ð¿Ñ€Ð¸ уÑпешной оплате доната пользователем. Пример Ñтруктуры данных:"}),e.jsx(d,{language:"json",code:`{
"type": "donation",
"message": {
"id": "d8c7b6a5-4f3e-4d2c-1b0a-9e8d7c6b5a4f",
"typeId": 1,
"amount": "100.00",
"message": "ТеÑтовый донат",
"currency": "rub",
"donatorName": "User",
"videoLink": "https://youtu.be/BF3wM5Onh6..."
}
}`}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsxs("strong",{children:["Параметры объекта ",e.jsx("code",{children:"message"}),":"]})}),e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"СвойÑтво"}),e.jsx("th",{children:"Тип"}),e.jsx("th",{children:"ОбÑзательно"}),e.jsx("th",{children:"ОпиÑание"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"id"})}),e.jsx("td",{children:"String (uuidv4)"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Уникальный идентификатор транзакции"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"typeId"})}),e.jsx("td",{children:"Number"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsxs("td",{children:["Уникальный идентификатор типа доната (например, ",e.jsx("code",{children:"1"})," — message). ",e.jsx("a",{href:"#type-ids",style:{color:"#00e5ff",textDecoration:"none"},children:"См. полный ÑпиÑок кодов ниже"}),"."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"amount"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:'Сумма Ð¿Ð¾Ð¶ÐµÑ€Ñ‚Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² Ñтроковом формате (например, "100.00")'})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"message"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"ТекÑÑ‚ ÑообщениÑ, прикрепленного к донату"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"currency"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:'Буквенный код валюты (например, "rub" Ð´Ð»Ñ Ñ€Ð¾ÑÑийÑких рублей)'})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"donatorName"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Ð˜Ð¼Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»Ñ (пÑевдоним)"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"videoLink"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:"Ðет"}),e.jsx("td",{children:"СÑылка на прикрепленное медиа (видео/аудио), еÑли имеетÑÑ"})]})]})]}),e.jsx("h3",{id:"type-ids",style:{marginTop:"48px"},children:"Справочник кодов (typeId)"}),e.jsxs("p",{children:["Ðиже предÑтавлен полный ÑпиÑок идентификаторов типов Ñупер-донатов и Ñобытий, которые передаютÑÑ Ð² поле ",e.jsx("code",{children:"typeId"}),":"]}),e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{style:{width:"100px"},children:"ID"}),e.jsx("th",{children:"Внутреннее название (тип виджета)"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"1"})}),e.jsx("td",{children:"Обычное Ñообщение"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"2"})}),e.jsx("td",{children:"Я должен"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"17"})}),e.jsx("td",{children:"Викторина"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"18"})}),e.jsx("td",{children:"Пульт"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"100"})}),e.jsx("td",{children:"ПартнерÑкий Ñупер-донат"})]})]})]}),e.jsxs("h3",{children:[e.jsx("span",{className:`${s.method} ${s.get}`,children:"GET"}),"ТеÑтирование интеграции"]}),e.jsx("p",{children:"Ð”Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ð¸ теÑтового ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸ проверки работы вашего WebSocket-Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ñ‚Ðµ GET-Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¿Ð¾ Ñледующему адреÑу:"}),e.jsx(d,{language:"text",code:"https://ihaqdonate.com/api/v1/integration/test/{api_token}"})]}),V=()=>e.jsxs("div",{className:s.section,children:[e.jsx("h2",{children:"Вебхуки партнёрÑких донатов (API v2)"}),e.jsx("p",{children:"Механизм вебхуков позволÑет вашему приложению получать HTTP POST-запроÑÑ‹ от iHAQ в реальном времени при наÑтуплении Ñобытий, ÑвÑзанных Ñ Ð¿Ð°Ñ€Ñ‚Ð½Ñ‘Ñ€Ñкими Ñупер-донатами."}),e.jsxs("div",{style:{padding:"16px 24px",background:"rgba(0, 136, 255, 0.05)",borderLeft:"4px solid #0088ff",borderRadius:"8px",margin:"24px 0"},children:[e.jsx("strong",{style:{color:"#0088ff",display:"block",marginBottom:"8px"},children:"Формат доÑтавки"}),e.jsxs("span",{style:{color:"#8b92a5",fontSize:"0.95rem",lineHeight:"1.5"},children:["ЗапроÑÑ‹ отправлÑÑŽÑ‚ÑÑ Ð¼ÐµÑ‚Ð¾Ð´Ð¾Ð¼ ",e.jsx("code",{children:"POST"})," на указанный вами URL (наÑтраиваетÑÑ Ð² личном кабинете партнёра). Тело запроÑа передаетÑÑ Ð² формате ",e.jsx("code",{children:"application/json"}),". Ваш Ñервер должен отвечать ÑтатуÑом ",e.jsx("code",{children:"2xx"})," (например, ",e.jsx("code",{children:"200 OK"}),")."]})]}),e.jsx("h3",{style:{marginTop:"48px",borderTop:"1px solid rgba(255,255,255,0.1)",paddingTop:"40px"},children:"Проверка подлинноÑти (HMAC)"}),e.jsx("p",{children:"Ð”Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ñ‹ от подделки запроÑов iHAQ подпиÑывает каждый вебхук. Ð’Ñ‹ должны проверÑть подпиÑÑŒ на Ñвоей Ñтороне, чтобы убедитьÑÑ, что Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¿Ñ€Ð¸ÑˆÐµÐ» именно от наÑ."}),e.jsxs("ul",{children:[e.jsxs("li",{children:["Ð’ каждом запроÑе передаетÑÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº ",e.jsx("code",{children:"X-iHAQ-Signature"}),"."]}),e.jsxs("li",{children:["ПодпиÑÑŒ генерируетÑÑ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ алгоритма ",e.jsx("strong",{children:"HMAC SHA256"}),"."]}),e.jsxs("li",{children:["Ð’ качеÑтве ключа (secret) иÑпользуетÑÑ Ð²Ð°Ñˆ ",e.jsx("strong",{children:"client_secret"}),"."]}),e.jsxs("li",{children:["Ð’ качеÑтве данных Ð´Ð»Ñ Ñ…ÐµÑˆÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ÑпользуетÑÑ ",e.jsx("strong",{children:"Ñырое тело запроÑа"})," (raw request body)."]})]}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Пример на Node.js (Express):"})}),e.jsx(d,{language:"javascript",code:`const crypto = require('crypto');
// Важно иÑпользовать express.raw() чтобы получить Ñырое тело запроÑа до парÑинга JSON
app.post('/webhook', express.raw({ type: 'application/json' }), (req, res) => {
const signature = req.headers['x-ihaq-signature'];
const secret = 'Ð’ÐШ_CLIENT_SECRET';
// Генерируем HMAC SHA256
const hmac = crypto.createHmac('sha256', secret);
const digest = hmac.update(req.body).digest('hex');
if (signature !== digest) {
return res.status(403).json({ message: 'Invalid signature' });
}
const payload = JSON.parse(req.body.toString());
console.log('Valid webhook received:', payload.event);
res.sendStatus(200);
});`}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Пример на Python (FastAPI):"})}),e.jsx(d,{language:"python",code:`import hmac
import hashlib
from fastapi import FastAPI, Request, HTTPException, Header
app = FastAPI()
CLIENT_SECRET = "Ð’ÐШ_CLIENT_SECRET"
@app.post("/webhook")
async def handle_webhook(request: Request, x_ihaq_signature: str = Header(None)):
raw_body = await request.body()
# Генерируем HMAC SHA256
expected_signature = hmac.new(
CLIENT_SECRET.encode('utf-8'),
raw_body,
hashlib.sha256
).hexdigest()
if not hmac.compare_digest(expected_signature, x_ihaq_signature):
raise HTTPException(status_code=403, detail="Invalid signature")
payload = await request.json()
print("Valid webhook received:", payload.get("event"))
return {"status": "success"}`}),e.jsx("h3",{style:{marginTop:"48px",borderTop:"1px solid rgba(255,255,255,0.1)",paddingTop:"40px"},children:"ДоÑтупные ÑобытиÑ"}),e.jsx("p",{children:"Ð’ данный момент ÑиÑтема отправлÑет ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¾ трех оÑновных типах Ñобытий:"}),e.jsxs("ul",{children:[e.jsxs("li",{children:[e.jsx("code",{children:"donation.created"})," — Донат был уÑпешно Ñоздан (но еще не оплачен)."]}),e.jsxs("li",{children:[e.jsx("code",{children:"donation.paid"})," — Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð´Ð¾Ð½Ð°Ñ‚Ð° изменилÑÑ Ð½Ð° «Оплачен»."]}),e.jsxs("li",{children:[e.jsx("code",{children:"donation.refunded"})," — Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð´Ð¾Ð½Ð°Ñ‚Ð° изменилÑÑ Ð½Ð° «Возврат» (отмена транзакции)."]})]}),e.jsxs("h3",{style:{marginTop:"48px"},children:[e.jsx("span",{className:`${s.method} ${s.post}`,children:"EVENT"}),"Создание доната (donation.created)"]}),e.jsx("p",{children:"Событие отправлÑетÑÑ, когда зритель инициирует отправку партнёрÑкого Ñупер-доната Ñтримеру."}),e.jsx(d,{language:"json",code:`{
"event": "donation.created",
"timestamp": "2026-05-28T12:00:00Z",
"data": {
"donationId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"partnerSuperDonationId": "1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed",
"streamerId": "f4a8b291-76cd-4d8e-a9b0-3c2f1e5d4a97",
"clientId": "a3f5b9d2-e64c-4178-90ca-b8e734c2f10b",
"sid": "123456",
"typeId": 100,
"amount": "100.00",
"currency": "rub",
"status": "CREATED",
"donatorName": "Trinity",
"message": "Wake up, Neo... The Matrix has you.",
"packageId": "pkg-12345",
"bonusesCount": 149
}
}`}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"ОпиÑание параметров:"})}),e.jsxs("table",{className:s.paramsTable,children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Параметр"}),e.jsx("th",{children:"Тип"}),e.jsx("th",{children:"ОпиÑание"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"event"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsxs("td",{children:["Тип ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ (",e.jsx("code",{children:"donation.created"}),")."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"timestamp"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsx("td",{children:"Ð’Ñ€ÐµÐ¼Ñ ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð² формате ISO 8601."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.donationId"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsx("td",{children:"Уникальный идентификатор платежа (доната)."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.partnerSuperDonationId"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsxs("td",{children:[e.jsx("em",{children:"Опционально"}),". ID наÑтроенного партнёрÑкого Ñупер-доната."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.streamerId"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsx("td",{children:"ID Ñтримера, которому отправлен донат."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.clientId"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsx("td",{children:"Уникальный ID вашего партнёрÑкого приложениÑ."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.sid"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsxs("td",{children:[e.jsx("em",{children:"Опционально"}),". Session ID (идентификатор ÑеÑÑии пользователÑ)."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.typeId"})}),e.jsx("td",{children:e.jsx("code",{children:"number"})}),e.jsxs("td",{children:["СиÑтемный тип доната (вÑегда ",e.jsx("code",{children:"100"}),")."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.amount"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsx("td",{children:"Сумма к оплате."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.currency"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsxs("td",{children:["Валюта транзакции (в нижнем региÑтре, например ",e.jsx("code",{children:"rub"}),")."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.status"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsxs("td",{children:["Текущий ÑÑ‚Ð°Ñ‚ÑƒÑ Ð¿Ð»Ð°Ñ‚ÐµÐ¶Ð° (",e.jsx("code",{children:"CREATED"}),")."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.donatorName"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsx("td",{children:"Ð˜Ð¼Ñ (никнейм) отправителÑ."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.message"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsxs("td",{children:[e.jsx("em",{children:"Опционально"}),". ТекÑÑ‚ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñтримеру."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.packageId"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsxs("td",{children:[e.jsx("em",{children:"Опционально"}),". ID выбранного пакета уÑлуг, еÑли донат ÑоздавалÑÑ Ð½Ð° оÑнове пакета."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.bonusesCount"})}),e.jsx("td",{children:e.jsx("code",{children:"number"})}),e.jsxs("td",{children:[e.jsx("em",{children:"Опционально"}),". Переданное количеÑтво бонуÑов (завиÑит от наÑтроек Mixed/Dynamic тарифа)."]})]})]})]}),e.jsxs("h3",{style:{marginTop:"48px"},children:[e.jsx("span",{className:`${s.method} ${s.post}`,children:"EVENT"}),"Донат оплачен (donation.paid)"]}),e.jsx("p",{children:"Событие отправлÑетÑÑ Ð¿Ð¾Ñле уÑпешного Ð¿Ñ€Ð¾Ñ…Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð»Ð°Ñ‚ÐµÐ¶Ð° от зрителÑ. Ðто оÑновной Ñигнал Ð´Ð»Ñ Ð²Ñ‹Ð´Ð°Ñ‡Ð¸ цифровых товаров или начиÑÐ»ÐµÐ½Ð¸Ñ Ð²Ð°Ð»ÑŽÑ‚Ñ‹ на Ñтороне партнёра."}),e.jsx(d,{language:"json",code:`{
"event": "donation.paid",
"timestamp": "2026-05-28T12:05:00Z",
"data": {
"donationId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"status": "PAID",
"amount": "100.00",
"currency": "rub",
"packageId": "pkg-12345",
"bonusesCount": 149
}
}`}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"ОпиÑание параметров:"})}),e.jsxs("table",{className:s.paramsTable,children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Параметр"}),e.jsx("th",{children:"Тип"}),e.jsx("th",{children:"ОпиÑание"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"event"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsxs("td",{children:["Тип ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ (",e.jsx("code",{children:"donation.paid"}),")."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"timestamp"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsx("td",{children:"Ð’Ñ€ÐµÐ¼Ñ ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð² формате ISO 8601."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.donationId"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsx("td",{children:"Уникальный идентификатор платежа. ИÑпользуйте его Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка доната в вашей базе."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.status"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsxs("td",{children:["Ðовый ÑÑ‚Ð°Ñ‚ÑƒÑ Ð¿Ð»Ð°Ñ‚ÐµÐ¶Ð° (",e.jsx("code",{children:"PAID"}),")."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.amount"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsx("td",{children:"Ð˜Ñ‚Ð¾Ð³Ð¾Ð²Ð°Ñ Ð¾Ð¿Ð»Ð°Ñ‡ÐµÐ½Ð½Ð°Ñ Ñумма."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.currency"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsxs("td",{children:["Валюта транзакции (например ",e.jsx("code",{children:"rub"}),")."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.packageId"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsxs("td",{children:[e.jsx("em",{children:"Опционально"}),". ID выбранного пакета уÑлуг, еÑли донат ÑоздавалÑÑ Ð½Ð° оÑнове пакета."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.bonusesCount"})}),e.jsx("td",{children:e.jsx("code",{children:"number"})}),e.jsxs("td",{children:[e.jsx("em",{children:"Опционально"}),". КоличеÑтво бонуÑов."]})]})]})]}),e.jsxs("h3",{style:{marginTop:"48px"},children:[e.jsx("span",{className:`${s.method} ${s.post}`,children:"EVENT"}),"Донат возвращен (donation.refunded)"]}),e.jsx("p",{children:"Событие отправлÑетÑÑ, еÑли произошла отмена платежа (чарджбÑк или возврат ÑредÑтв). Партнёру Ñледует откатить выданные бонуÑÑ‹/валюту, ÑвÑзанные Ñ Ñтим донатом."}),e.jsx(d,{language:"json",code:`{
"event": "donation.refunded",
"timestamp": "2026-05-28T15:30:00Z",
"data": {
"donationId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"status": "REFUNDED",
"refundReason": "Отмена пользователем"
}
}`}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"ОпиÑание параметров:"})}),e.jsxs("table",{className:s.paramsTable,children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Параметр"}),e.jsx("th",{children:"Тип"}),e.jsx("th",{children:"ОпиÑание"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"event"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsxs("td",{children:["Тип ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ (",e.jsx("code",{children:"donation.refunded"}),")."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"timestamp"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsx("td",{children:"Ð’Ñ€ÐµÐ¼Ñ ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð² формате ISO 8601."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.donationId"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsx("td",{children:"Уникальный идентификатор платежа."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.status"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsxs("td",{children:["Ðовый ÑÑ‚Ð°Ñ‚ÑƒÑ Ð¿Ð»Ð°Ñ‚ÐµÐ¶Ð° (",e.jsx("code",{children:"REFUNDED"}),")."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"data.refundReason"})}),e.jsx("td",{children:e.jsx("code",{children:"string"})}),e.jsx("td",{children:"Причина возврата ÑредÑтв или отмены транзакции."})]})]})]})]}),Z=()=>e.jsxs("div",{className:s.section,children:[e.jsx("h2",{children:"ПартнёрÑкие донаты (API v2)"}),e.jsx("p",{children:"Ðндпоинты Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ñ‚Ð½Ñ‘Ñ€Ñкими Ñупер-донатами. С помощью Ñтих методов вы можете Ñоздавать каÑтомные донаты Ð´Ð»Ñ Ñтримеров, обновлÑть их наÑтройки, получать ÑпиÑок доÑтупных донатов, а также управлÑть привÑзкой донатов к конкретным Ñтримерам."}),e.jsxs("div",{style:{padding:"16px 24px",background:"rgba(0, 136, 255, 0.05)",borderLeft:"4px solid #0088ff",borderRadius:"8px",margin:"24px 0"},children:[e.jsx("strong",{style:{color:"#0088ff",display:"block",marginBottom:"8px"},children:"ÐвторизациÑ"}),e.jsxs("span",{style:{color:"#8b92a5",fontSize:"0.95rem",lineHeight:"1.5"},children:["Ð’Ñе Ñндпоинты в Ñтом разделе требуют передачи ",e.jsx("strong",{children:"Ñекретного ключа интеграции"})," (Client Secret). Ð’Ñ‹ можете передать его одним из двух ÑпоÑобов:",e.jsx("br",{}),"1. Ð’ заголовке ",e.jsx("code",{children:"X-API-Key: <secret>"}),e.jsx("br",{}),"2. Ð’ заголовке ",e.jsx("code",{children:"Authorization: Bearer <secret>"}),e.jsx("br",{}),"Идентификатор клиента (",e.jsx("code",{children:"clientId"}),") определÑетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки на оÑнове Ñекрета, передавать его в теле запроÑа не нужно."]})]}),e.jsxs("h3",{style:{marginTop:"48px"},children:[e.jsx("span",{className:`${s.method} ${s.post}`,children:"POST"}),"Создание партнёрÑкого доната"]}),e.jsx("p",{children:"Создает новый партнёрÑкий донат (Ñупер-донат), который в дальнейшем можно привÑзать к Ñтримеру."}),e.jsx(d,{language:"text",code:`POST /api/v2/partner-super-donations HTTP/1.1
Host: ihaqdonate.com
X-API-Key: Ð’ÐШ_CLIENT_SECRET
Content-Type: application/json`}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Параметры тела запроÑа (JSON):"})}),e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Параметр"}),e.jsx("th",{children:"Тип"}),e.jsx("th",{children:"ОбÑзательно"}),e.jsx("th",{children:"ОпиÑание"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"name"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Ðазвание доната"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"price"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Цена доната"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"description"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:"Ðет"}),e.jsx("td",{children:"ОпиÑание доната"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"image"})}),e.jsx("td",{children:"String (URL)"}),e.jsx("td",{children:"Ðет"}),e.jsx("td",{children:"URL Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð´Ð¾Ð½Ð°Ñ‚Ð°"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"isActive"})}),e.jsx("td",{children:"Boolean"}),e.jsx("td",{children:"Ðет"}),e.jsx("td",{children:"Ðктивен ли донат (по умолчанию true)"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"pricingConfig"})}),e.jsx("td",{children:"Object"}),e.jsx("td",{children:"Ðет"}),e.jsx("td",{children:"Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ñ†ÐµÐ½Ð¾Ð¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ (JSON)"})]})]})]}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Пример ответа (УÑпех — 200 OK):"})}),e.jsx(d,{language:"json",code:`{
"id": "1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed",
"clientId": "a3f5b9d2-e64c-4178-90ca-b8e734c2f10b",
"name": "Золотой Ñундук",
"price": "100.00",
"description": "Сундук Ñ Ñ€ÐµÐ´ÐºÐ¸Ð¼Ð¸ предметами",
"image": "https://example.com/chest.png",
"isActive": true,
"pricingConfig": null
}`}),e.jsxs("h3",{style:{marginTop:"48px"},children:[e.jsx("span",{className:`${s.method} ${s.patch}`,children:"PATCH"}),"Обновление партнёрÑкого доната"]}),e.jsx("p",{children:"ОбновлÑет данные ÑущеÑтвующего партнёрÑкого доната."}),e.jsx(d,{language:"text",code:`PATCH /api/v2/partner-super-donations/{id} HTTP/1.1
Host: ihaqdonate.com
X-API-Key: Ð’ÐШ_CLIENT_SECRET
Content-Type: application/json`}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Параметры пути (Path):"})}),e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Параметр"}),e.jsx("th",{children:"Тип"}),e.jsx("th",{children:"ОбÑзательно"}),e.jsx("th",{children:"ОпиÑание"})]})}),e.jsx("tbody",{children:e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"id"})}),e.jsx("td",{children:"String (uuidv4)"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Идентификатор доната"})]})})]}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Параметры тела запроÑа (опциональные полÑ):"})}),e.jsxs("p",{style:{fontSize:"0.95rem",color:"#8b92a5"},children:["Любой из параметров ",e.jsx("code",{children:"name"}),", ",e.jsx("code",{children:"price"}),", ",e.jsx("code",{children:"description"}),", ",e.jsx("code",{children:"image"}),", ",e.jsx("code",{children:"isActive"}),", ",e.jsx("code",{children:"pricingConfig"}),"."]}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Пример ответа (УÑпех — 200 OK):"})}),e.jsx(d,{language:"json",code:`{
"id": "1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed",
"clientId": "a3f5b9d2-e64c-4178-90ca-b8e734c2f10b",
"name": "Платиновый Ñундук",
"price": "200.00",
"description": "Сундук Ñ ÑпичеÑкими предметами",
"image": "https://example.com/chest-plat.png",
"isActive": false,
"pricingConfig": null
}`}),e.jsxs("h3",{style:{marginTop:"48px"},children:[e.jsx("span",{className:`${s.method} ${s.get}`,children:"GET"}),"Получение ÑпиÑка донатов"]}),e.jsx("p",{children:"Возвращает ÑпиÑок партнёрÑких донатов, принадлежащих авторизованному клиенту (на оÑнове токена)."}),e.jsx(d,{language:"text",code:`GET /api/v2/partner-super-donations HTTP/1.1
Host: ihaqdonate.com
X-API-Key: Ð’ÐШ_CLIENT_SECRET`}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Пример ответа (УÑпех — 200 OK):"})}),e.jsx(d,{language:"json",code:`{
"partnerSuperDonationsList": [
{
"id": "1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed",
"clientId": "a3f5b9d2-e64c-4178-90ca-b8e734c2f10b",
"name": "Золотой Ñундук",
"price": "100.00",
"description": "Сундук Ñ Ñ€ÐµÐ´ÐºÐ¸Ð¼Ð¸ предметами",
"image": "https://example.com/chest.png",
"isActive": true,
"pricingConfig": null
}
]
}`}),e.jsxs("h3",{style:{marginTop:"48px"},children:[e.jsx("span",{className:`${s.method} ${s.post}`,children:"POST"}),"ПривÑзка доната к Ñтримеру"]}),e.jsx("p",{children:"Ðктивирует партнёрÑкий донат Ð´Ð»Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð½Ð¾Ð³Ð¾ Ñтримера."}),e.jsx(d,{language:"text",code:`POST /api/v2/partner-super-donations/link HTTP/1.1
Host: ihaqdonate.com
X-API-Key: Ð’ÐШ_CLIENT_SECRET
Content-Type: application/json`}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Параметры тела запроÑа (JSON):"})}),e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Параметр"}),e.jsx("th",{children:"Тип"}),e.jsx("th",{children:"ОбÑзательно"}),e.jsx("th",{children:"ОпиÑание"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"streamerId"})}),e.jsx("td",{children:"String (uuidv4)"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Идентификатор Ñтримера"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"partnerSuperDonationId"})}),e.jsx("td",{children:"String (uuidv4)"}),e.jsx("td",{children:e.jsx("span",{className:s.required,children:"Да"})}),e.jsx("td",{children:"Идентификатор партнёрÑкого доната"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"currencyName"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:"Ðет"}),e.jsx("td",{children:"Ðазвание валюты доната"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"currencyIcon"})}),e.jsx("td",{children:"String (URL)"}),e.jsx("td",{children:"Ðет"}),e.jsx("td",{children:"URL иконки валюты доната"})]})]})]}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Пример ответа (УÑпех — 200 OK):"})}),e.jsx(d,{language:"json",code:`{
"id": "e2f1b4c3-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
"streamerId": "f4a8b291-76cd-4d8e-a9b0-3c2f1e5d4a97",
"partnerSuperDonationId": "1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed",
"isEnabled": true
}`}),e.jsxs("h3",{style:{marginTop:"48px"},children:[e.jsx("span",{className:`${s.method} ${s.patch}`,children:"PATCH"}),"Обновление параметров привÑзки доната"]}),e.jsx("p",{children:"ОбновлÑет дополнительные параметры (например, валюту) Ð´Ð»Ñ ÑƒÐ¶Ðµ привÑзанного доната."}),e.jsx(d,{language:"text",code:`PATCH /api/v2/partner-super-donations/link HTTP/1.1
Host: ihaqdonate.com
X-API-Key: Ð’ÐШ_CLIENT_SECRET
Content-Type: application/json`}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Параметры тела запроÑа (JSON):"})}),e.jsxs("p",{style:{fontSize:"0.95rem",color:"#8b92a5"},children:["Те же параметры, что и Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð²Ñзки: ",e.jsx("code",{children:"streamerId"}),", ",e.jsx("code",{children:"partnerSuperDonationId"}),", ",e.jsx("code",{children:"currencyName"}),", ",e.jsx("code",{children:"currencyIcon"}),"."]}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Пример ответа (УÑпех — 200 OK):"})}),e.jsx(d,{language:"json",code:`{
"id": "e2f1b4c3-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
"streamerId": "f4a8b291-76cd-4d8e-a9b0-3c2f1e5d4a97",
"partnerSuperDonationId": "1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed",
"isEnabled": true
}`}),e.jsxs("h3",{style:{marginTop:"48px"},children:[e.jsx("span",{className:`${s.method} ${s.post}`,children:"POST"}),"ОтвÑзка доната от Ñтримера"]}),e.jsx("p",{children:"Деактивирует партнёрÑкий донат Ð´Ð»Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð½Ð¾Ð³Ð¾ Ñтримера."}),e.jsx(d,{language:"text",code:`POST /api/v2/partner-super-donations/unlink HTTP/1.1
Host: ihaqdonate.com
X-API-Key: Ð’ÐШ_CLIENT_SECRET
Content-Type: application/json`}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Параметры тела запроÑа (JSON):"})}),e.jsxs("p",{style:{fontSize:"0.95rem",color:"#8b92a5"},children:["Те же параметры, что и Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð²Ñзки: ",e.jsx("code",{children:"streamerId"}),", ",e.jsx("code",{children:"partnerSuperDonationId"}),"."]}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Пример ответа (УÑпех — 200 OK):"})}),e.jsx(d,{language:"json",code:`{
"id": "e2f1b4c3-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
"streamerId": "f4a8b291-76cd-4d8e-a9b0-3c2f1e5d4a97",
"partnerSuperDonationId": "1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed",
"isEnabled": false
}`}),e.jsx("h3",{style:{marginTop:"64px",borderTop:"1px solid rgba(255,255,255,0.1)",paddingTop:"40px"},children:"Структура объекта pricingConfig"}),e.jsxs("p",{children:["Поле ",e.jsx("code",{children:"pricingConfig"})," позволÑет наÑтроить гибкое ценообразование Ð´Ð»Ñ Ð´Ð¾Ð½Ð°Ñ‚Ð°, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¿Ð°ÐºÐµÑ‚Ð½Ñ‹Ðµ Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ динамичеÑкий раÑчет ÑтоимоÑти за единицу (например, за количеÑтво Ñимволов, дейÑтвий и Ñ‚.д.)."]}),e.jsx(d,{language:"json",code:`{
"type": "FIXED" | "DYNAMIC" | "PACKAGES" | "MIXED",
"currencyName": "Золото", // Опционально
"currencyIcon": "https://example.com/coin.png", // Опционально
"packages": [ // Опционально (Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð¾Ð² PACKAGES и MIXED)
{
"id": "gold_pack_100", // Произвольный идентификатор пакета (опционально)
"amount": 100,
"price": 50
}
],
"dynamicRules": [ // Опционально (Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð¾Ð² DYNAMIC и MIXED)
{
"minAmount": 1,
"maxAmount": 1000, // Опционально
"pricePerUnit": 0.5
}
]
}`}),e.jsx("p",{style:{marginTop:"24px"},children:e.jsx("strong",{children:"Параметры:"})}),e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Поле"}),e.jsx("th",{children:"Тип"}),e.jsx("th",{children:"ОпиÑание"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"type"})}),e.jsx("td",{children:"String"}),e.jsxs("td",{children:["Тип ценообразованиÑ. ДопуÑтимые значениÑ: ",e.jsx("code",{children:"FIXED"}),", ",e.jsx("code",{children:"DYNAMIC"}),", ",e.jsx("code",{children:"PACKAGES"}),", ",e.jsx("code",{children:"MIXED"}),"."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"currencyName"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:'Ðазвание внутренней валюты или единицы Ð¸Ð·Ð¼ÐµÑ€ÐµÐ½Ð¸Ñ (например, "Монеты", "СообщениÑ").'})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"currencyIcon"})}),e.jsx("td",{children:"String"}),e.jsx("td",{children:"URL иконки Ð´Ð»Ñ Ð²Ð°Ð»ÑŽÑ‚Ñ‹/единицы измерениÑ."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"packages"})}),e.jsx("td",{children:"Array"}),e.jsxs("td",{children:["МаÑÑив объектов ",e.jsx("code",{children:"{ amount: number, price: number }"}),". ИÑпользуетÑÑ Ð´Ð»Ñ Ð¿Ð°ÐºÐµÑ‚Ð½Ñ‹Ñ… предложений (например, 100 монет за 50 рублей)."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"dynamicRules"})}),e.jsx("td",{children:"Array"}),e.jsxs("td",{children:["МаÑÑив правил динамичеÑкого Ñ†ÐµÐ½Ð¾Ð¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ ",e.jsx("code",{children:"{ minAmount: number, maxAmount?: number, pricePerUnit: number }"}),". ПозволÑет задать цену за одну единицу Ñ ÑƒÑ‡ÐµÑ‚Ð¾Ð¼ диапазонов."]})]})]})]})]}),Y=()=>e.jsxs("div",{className:s.section,children:[e.jsx("h2",{children:"Коды ошибок"}),e.jsx("p",{children:"Платформа iHAQ иÑпользует Ñтандартные HTTP-коды ÑоÑтоÑÐ½Ð¸Ñ Ð´Ð»Ñ Ð¸Ð½Ð´Ð¸ÐºÐ°Ñ†Ð¸Ð¸ уÑпешноÑти или неудачи API-запроÑа. Ð’ Ñлучае Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¸ Ñервер вÑегда возвращает тело ответа в формате JSON Ñ Ð¿Ð¾Ð´Ñ€Ð¾Ð±Ð½Ñ‹Ð¼ опиÑанием причины."}),e.jsx("h3",{style:{marginTop:"48px"},children:"Формат возвращаемой ошибки"}),e.jsx("p",{children:"Стандартный ответ при любой ошибке (например, неверные входные данные, отÑутÑтвие прав или отÑутÑтвие реÑурÑа) выглÑдит Ñледующим образом:"}),e.jsx(d,{language:"json",code:`{
"message": "ОпиÑание ошибки (например, 'ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° Ñервера')"
}`}),e.jsx("h3",{style:{marginTop:"48px"},children:"HTTP-коды ÑоÑтоÑниÑ"}),e.jsxs("table",{className:s.paramsTable,children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Код"}),e.jsx("th",{children:"Ðазвание"}),e.jsx("th",{children:"ОпиÑание"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"200 - 299"})}),e.jsx("td",{children:"УÑпех"}),e.jsx("td",{children:"Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð±Ñ‹Ð» уÑпешно обработан Ñервером. Тело ответа Ñодержит запрошенные данные."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{style:{color:"#ef4444"},children:"400"})}),e.jsx("td",{children:"Bad Request"}),e.jsx("td",{children:"Ðеверный запроÑ. Обычно означает, что переданы некорректные параметры или тело запроÑа не прошло валидацию."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{style:{color:"#ef4444"},children:"401"})}),e.jsx("td",{children:"Unauthorized"}),e.jsxs("td",{children:["ОтÑутÑтвует или недейÑтвителен токен авторизации. УбедитеÑÑŒ, что передаете правильный ",e.jsx("code",{children:"Authorization: Bearer <token>"}),"."]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{style:{color:"#ef4444"},children:"403"})}),e.jsx("td",{children:"Forbidden"}),e.jsx("td",{children:"У Ð²Ð°Ñ Ð½ÐµÑ‚ прав на выполнение данного дейÑÑ‚Ð²Ð¸Ñ Ð¸Ð»Ð¸ доÑтуп к указанному реÑурÑу запрещен."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{style:{color:"#ef4444"},children:"404"})}),e.jsx("td",{children:"Not Found"}),e.jsx("td",{children:"Запрашиваемый реÑÑƒÑ€Ñ Ð½Ðµ найден (например, неверный ID доната)."})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{style:{color:"#ef4444"},children:"500"})}),e.jsx("td",{children:"Internal Server Error"}),e.jsx("td",{children:"ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° Ñервера. Возникает редко из-за непредвиденных Ñбоев на Ñтороне iHAQ."})]})]})]})]}),re=()=>{const[r,h]=m.useState("websockets");return e.jsxs("div",{className:l.developersPage,children:[e.jsx("div",{className:l.backgroundGlow}),e.jsxs("div",{className:l.container,children:[e.jsx(H,{activeSection:r,setActiveSection:h}),e.jsxs("main",{className:l.content,children:[e.jsx("header",{className:l.header,children:e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e.jsxs("div",{children:[e.jsx("h1",{children:"Ð”Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÐ¾Ð²"}),e.jsx("p",{children:"Интегрируйте возможноÑти iHAQ в ваши приложениÑ"})]}),e.jsx("div",{style:{fontSize:"0.85rem",color:"#8b92a5",background:"rgba(255,255,255,0.05)",padding:"6px 12px",borderRadius:"6px"},children:"Обновлено: 15 Ð¸ÑŽÐ½Ñ 2026 г."})]})}),e.jsxs("div",{className:l.sectionContainer,children:[r==="oauth"&&e.jsx(Q,{}),r==="websockets"&&e.jsx(F,{}),r==="errors"&&e.jsx(Y,{}),r==="partner-donations"&&e.jsx(Z,{}),r==="webhooks-v2"&&e.jsx(V,{})]})]})]})]})};export{re as DevelopersPage};