Oʻzgartirish amallari
Mijoz tasdigʻi va egasining roziligidan soʻng yozuvni oʻzgartiring va haqiqiy natijani kuzating.
Mijoz tasdigʻi va egasining roziligidan soʻng yozuvni oʻzgartiring va haqiqiy natijani kuzating.
Oʻzgartirish amalini yarating#
Oʻz tizimingizdagi yozuvni oʻzgartirish, masalan buyurtmani bekor qilish uchun foydalaning. Agent → Amallarda Tizimga kirgan mijozlar maxfiy kalitini sozlang, keyin Oʻzgartirish amalini qoʻshing: noyob nom, qachon ishlatilishi tavsifi, ochiq HTTPS endpointi va satr koʻrinishidagi kirishlar. cancel_order modeli uchun change_cancel_order vositasiga aylanadi. Mavjud maydonlar avtomatik saqlanadi; saqlanganlik belgisini kuting.
Maxfiy yozuvlar uchun Tizimga kirgan mijoz talab qilinadini yoqilgan holda qoldiring. Endpoint yozuv shu tasdiqlangan mijoz ID siga tegishli ekanini ham tekshirishi shart. Chatda yozilgan ism, email yoki buyurtma raqami shaxsni tasdiqlamaydi. Sozlamani oʻchirsangiz, customer null boʻlishi mumkin: faqat anonim tashrifchiga mos oʻzgartirishlarni ruxsat eting. Toʻlovlar bu funksiyaga kirmaydi.
Egasining roziligini tanlang#
Har bir rejimda avval mijoz tasdigʻi kerak:
| Rejim | Mijoz tasdigʻidan keyin |
|---|---|
Rozilik talab qilinmaydi (none) | Egasining alohida qarorisiz bajariladi. |
Har doim rozilik (always) | Egasining qarori kutiladi. |
Chegaradan oshganda (over_limit) | Eʼlon qilingan sonli kirish chegaradan qatʼiy katta boʻlsa kutiladi; teng boʻlsa rozilik kerak emas. Son boʻlmagan qiymat rad etiladi. |
Agent → Amallar → Tasdiqlash soʻrovlarida sayt egasi rozilik berishi yoki rad etishi mumkin. Shaxsiy Telegram egasi bildirishnomalari ulangan boʻlsa, xabarda Tasdiqlash / Rad etish tugmalari ham bor. Faqat ulangan egasining shaxsiy chati ulardan foydalana oladi; eskirgan yoki takroriy bosish qayta bajarmaydi. Mijoz tasdigʻidan 24 soat oʻtgach soʻrov muddati tugaydi. Mijoz rad etish yoki muddat tugashi haqidagi natijani ham oladi. Oxirgi bajarishlar holat, vaqt, havola raqami va mijoz ID sini koʻrsatadi.
Endpoint qanday soʻrov oladi#
Model taklif berganda soʻrov yuborilmaydi. Mijoz tasdigʻi va kerakli egasining roziligidan keyin Make Agent Fast quyidagini yuboradi:
POST /agent/cancel-order HTTP/1.1
Content-Type: application/json
x-maf-timestamp: <unix-seconds>
x-maf-signature: v1=<64-lowercase-hex-characters>
x-maf-idempotency-key: c5c1d94b-e88f-4bf6-8023-2dcd1e7ac67b{
"version": 1,
"action": "cancel_order",
"runId": "c5c1d94b-e88f-4bf6-8023-2dcd1e7ac67b",
"requestId": "c5c1d94b-e88f-4bf6-8023-2dcd1e7ac67b",
"siteId": "YOUR_SITE_ID",
"input": { "order_id": "A128" },
"customer": { "id": "customer_123", "email": "customer@example.com" }
}actionda change_ prefiksi yoʻq. Ikkala ID va idempotentlik sarlavhasi qayta urinishlarda oʻzgarmaydi. input faqat eʼlon qilingan, chetlaridagi boʻshliqlar olib tashlangan satrlardan iborat. customer null yoki tekshirilgan id va ixtiyoriy email/name obyektidir.
Lookup imzosini tekshirish usulini qoʻllang: agent maxfiy kaliti bilan "maf-webhook-v1:" + timestamp + "." + rawBody uchun HMAC-SHA256 hisoblanadi; kichik harfli hex oldiga v1= qoʻyiladi. Yozishdan oldin asl baytlar, vaqtning yangiligi, sayt/amal va mijozning yozuvga huquqini tekshiring. x-maf-idempotency-key boʻyicha takrorni tekshirish va oʻzgartirishni atomar bajaring, natijani saqlang. Takroriy soʻrov yozuvni yana oʻzgartirmay saqlangan natijani qaytarishi kerak. Platforma qulfi tizimingizdagi takrorni bartaraf qilish oʻrnini bosmaydi.
Natijani qaytaring#
Majburiy status (done, pending yoki failed) va ixtiyoriy message, reference, card bilan 2xx JSON qaytaring:
{
"status": "done",
"message": "Order cancelled.",
"reference": "A128",
"card": {
"kind": "status",
"title": "Order A128",
"fields": [{ "label": "Order", "value": "A128" }]
}
}Ixtiyoriy holat kartasiga title va fields kerak; kind: "status" shart emas. Lookup kabi status: { label, tone }, reference, asOf va link: { label, url } qoʻllanadi. tone: neutral, success, warning yoki danger; havola xavfsiz HTTPS boʻlishi kerak. Sxemada yoʻq maydonlar rad etiladi. Matn qisqa va oddiy boʻlsin. Natijani tashqi status belgilaydi; karta matni kutilayotgan amalni muvaffaqiyatli qila olmaydi.
Faqat oʻzgartirish tugagach done, jarayonda pending, aniq xatoda failed yuboring. Vaqt tugashi, tarmoq xatosi, 5xx yoki yaroqsiz javob unknown hisoblanadi. Xuddi shu kalit bilan 1 daqiqadan, keyin 5 daqiqadan soʻng qayta uriniladi; jami koʻpi bilan 3 ta bajarish urinishi. Navbat sababli vaqt choʻzilishi mumkin. HTTP 4xx qayta urinishsiz muvaffaqiyatsiz yakunlanadi. Noaniq natijada urinishlar tugasa, xato qayd etilib egasiga xabar beriladi, ammo bu tizimingizda oʻzgarish boʻlmaganini isbotlamaydi. Yangi ish boshlashdan oldin tekshiring. pending qayta bajarishni boshlamaydi.
Imzolangan yakuniy callback yuboring#
pending yoki unknown natija aniqlangach, https://makeagent.fast/api/agent/actions/RUN_ID/callback manziliga POST yuboring. Xuddi shu javob shartnomasida status: "done" yoki "failed" boʻlsin; bu yerda pending qabul qilinmaydi.
Callback shartnomasi 2026-10-14 da yangilandi: maf-callback-v1: + runId + : + timestamp + . + rawBody ni imzolang. Tanada runId boʻlsa, u yoʻldagi run ID bilan bir xil boʻlishi kerak; aks holda 400 qaytadi. Boshqa run uchun yoki eski formatda yaratilgan imzo 403 qaytaradi.
import { createHmac } from "node:crypto";
const body = JSON.stringify({ status: "done", reference: "A128" });
const timestamp = String(Math.floor(Date.now() / 1000));
const signature = createHmac("sha256", agentSecret)
.update(`maf-callback-v1:${runId}:${timestamp}.${body}`)
.digest("hex");
const response = await fetch(
`https://makeagent.fast/api/agent/actions/${encodeURIComponent(runId)}/callback`,
{
method: "POST",
headers: {
"content-type": "application/json",
"x-maf-timestamp": timestamp,
"x-maf-signature": `v1=${signature}`,
},
body,
},
);Serverdagi agent maxfiy kaliti va asl soʻrovdagi run ID dan foydalaning. Callback prefiksi chiqish soʻrovidan farq qiladi: maf-callback-v1:. Vaqt farqi 5 daqiqadan oshmasin. Notoʻgʻri imzo 403, notoʻgʻri tana 400, tugagan yoki mos kelmagan holat 409 qaytaradi. Takroriy callback yakuniy natijani almashtirmaydi. Kalitni almashtirganda shaxsni aniqlash va endpoint imzolash sozlamalarini ham yangilang.
Mijoz tasdigʻi va natija kartalari#
Mijoz aniq kirishlarni koʻrib Tasdiqlash yoki Bekor qilishni bosadi. Taklif 15 daqiqada eskiradi; shu amal va suhbatdagi yangi taklif oldingisini almashtiradi. Tasdiqlash tokeni aynan run, sayt va tashrifchiga bogʻlangan. “Ha” deb yozish yoki oddiy tasdiqlash kartasini bosish oʻzgartirishga ruxsat bermaydi. Repetitsiya tugmalari faol emas va endpointni chaqirmaydi.
Ochiq veb-vidjet yakunlanmagan natijalarni avval har 5 soniyada, keyin har 30 soniyada, koʻpi bilan 24 soat davomida soʻraydi. Soʻralgan, egasi kutilmoqda, bajarilmoqda, jarayonda, nomaʼlum natija tekshirilmoqda, bajarildi, xato, rad etildi, bekor qilindi yoki muddati tugadi holatlari koʻrsatiladi. Faqat done tugaganini tasdiqlaydi.
Kanallarda takliflar faqat shaxsiy chatlarda ishlaydi, guruh yoki kanallarda emas. Kechikkan natijalar doimiy navbat orqali yuboriladi: oddiy Telegram bot shaxsiy chatlari qoʻllanadi; WhatsApp, Messenger, Instagram va Telegram Business uchun oxirgi 24 soatda kiruvchi xabar qaydi kerak. Bu shart yuborishda yana tekshiriladi. Telegram mehmon soʻrovlari, Discord va KakaoTalk uchun kechikkan natija yetkazilmaydi. Oyna yopilishi yoki ulanish oʻchishi yetkazishni toʻxtatsa ham run tarixida natija qoladi.
Chegaralar va sinov#
| Narsa | Chegara |
|---|---|
| Oʻzgartirish amallari | Har agentga 5 ta; nomlar lookup va oʻzgartirishlar orasida ham noyob |
| Nomlar | Amal: ^[a-z][a-z0-9_]{2,39}$; kirish: ^[a-z][a-z0-9_]{1,31}$; band qilingan amal nomlari mumkin emas |
| Tavsiflar | 300 belgi |
| Kirishlar | 3 ta eʼlon qilingan satr, har biri 200 belgigacha |
| Endpoint | Ochiq HTTPS, 500 belgigacha; URL ichida hisob maʼlumoti, ichki manzil yoki redirect yoʻq |
| Bajarish vaqti / javob / callback tanasi | 8 soniya / 32 KiB / 32 KiB |
| Holat kartasi sarlavhasi / yorliq / qiymat / maydonlar | 80 / 40 / 200 belgi / 8 maydon |
| Taklif / rozilik muddati | 15 daqiqa / mijoz tasdigʻidan 24 soat |
Nazorat qilinadigan endpointda tasdiqlash, bekor qilish, rozilik, vaqt tugashi, takroriy kalit va yakuniy callbackni tekshiring. Faqat karta matnini emas, yozuvlarni ham koʻring. Repetitsiya tashqi yozuv qilmaydi; u endpoint bajarilishi sinovi emas. Natijalarga tayanishdan oldin har bir kerakli shaxsiy kanalni tekshiring.