API reference
POST /api/v1/validate-license
WordPress-ის პლაგინები ამ endpoint-ს ლიცენზიის ვალიდაციისთვის, პირველადი დომენის მისაბმელად, უფლებების ლოკალური ასლის (entitlements snapshot) გასაახლებლად და მიმდინარე build ID-ის გადასაცემად იყენებენ.
- მეთოდი
POST- მისამართი
/api/v1/validate-license
მოთხოვნის ტანი (Request Body)
{
"license_key": "SMS-7X4A-9KLM-2NQR-PV5Z",
"site_url": "https://store.example.ge",
"plugin_version": "0.3.10",
"build_id": "1a8f7353-72ce-4f58-89ef-8e834f0dfc4f",
"nonce": "optional-plugin-generated-string"
}- license_key
- სავალდებულოა. უნდა აკმაყოფილებდეს CodeOn-ის საკონტროლო ჯამის (checksum) ფორმატს.
- site_url
- სავალდებულოა. ნორმალიზდება ერთ კონკრეტულ ჰოსტად და დომენის მისაბმელად გამოიყენება.
- domain
- მოძველებული ალტერნატივა (legacy alias) site_url-ისთვის. ახალმა კლიენტებმა site_url უნდა გააგზავნონ.
- plugin_version
- არასავალდებულოა. თუ ცარიელი ან 0.0.0 არ არის, დომენის ჩანაწერში ინახება.
- build_id
- არასავალდებულო UUID უნიკალური ნიშნულის მქონე (watermarked) ZIP ფაილიდან. გამოიყენება ტელემეტრიისა და დარღვევების მონიტორინგისთვის.
- nonce
- არასავალდებულოა. უცვლელად ბრუნდება ხელმოწერილ მონაცემებში (signed payload).
წარმატებული პასუხი (Response)
{
"status": "active",
"message": "ok",
"modules": ["tbc_card"],
"features": {
"tbc_card": ["refund"]
},
"expires": "2027-05-30",
"issued_at": "2026-05-30T09:12:00.000Z",
"grace_period_hours": 336,
"nonce": "optional-plugin-generated-string",
"site_url": "https://store.example.ge",
"signature": "base64-rsa-sha256"
}signature ხელს აწერს კანონიკურ JSON მონაცემებს (canonical payload) თვითონ signature ველის გარეშე. პლაგინებმა ეს ციფრული ხელმოწერა აუცილებლად უნდა შეამოწმონ, სანამ status-ს, modules-ს, features-ს ან expiry-ს ენდობიან.
სტატუსების შესაბამისობა
Domain binding
პირველი წარმატებული შემოწმებისას ლიცენზია site_url-იდან მიღებულ ნორმალიზებულ დომენზე მიებმება. იმავე დომენზე შემდგომი შემოწმებები იდემპოტენტურია. სხვა დომენი იღებს ხელმოწერილ invalid პასუხს bound_domain-ის მითითებით.