uBill SMS — DataLife Engine
ნომრის დადასტურება კოდით, პაროლის აღდგენა SMS-ით, მასობრივი გაგზავნა და მიწოდების ქრონოლოგია — DLE 20-ისთვის, ძრავის ფაილების შეცვლის გარეშე.
პროექტის ნაწილი: uBill
რას აკეთებს
| ფუნქცია | სად | რას იძლევა |
|---|---|---|
| ნომრის დადასტურება | საიტზე | ერთჯერადი კოდი SMS-ით; ერთი ნომერი — ერთი ანგარიში |
| პაროლის აღდგენა | საიტზე | ნომრით აღდგენა მაშინაც, როცა ელფოსტაზე წვდომა აღარაა |
| მისალმების SMS | ავტომატურად | იგზავნება ნომრის დადასტურებისთანავე, ერთხელ |
| მასობრივი გაგზავნა | ადმინში | ყველას, ჯგუფს ან ერთ კონკრეტულ მომხმარებელს |
| ბალანსი და ტესტი | ადმინში | დარჩენილი SMS და სატესტო შეტყობინება ერთი ღილაკით |
| ჟურნალი | ადმინში | ყოველი გაგზავნა ქრონოლოგიითა და მიწოდების სტატუსით |
რატომ არ ტყდება DLE-ის განახლებაზე
DLE-ის პლაგინები ჩვეულებრივ ძრავის ფაილებს searchcode-ით აპატჩავენ. თუ ახალ ვერსიაში ის კოდი შეიცვალა, პაჩი ჩუმად აღარ ედება — ფუნქცია კვდება და შეცდომა არსად ჩანს.
ეს პლაგინი ძრავის არცერთ ფაილს არ ცვლის. მანიფესტში <file> ბლოკი საერთოდ არაა:
- ადმინის განყოფილება DLE-ის საკუთარ ცხრილში რეგისტრირდება;
- საიტის გვერდები შაბლონში ერთი ხაზით ერთვის — ეს DLE-ის დოკუმენტირებული გზაა მოდულების მისაერთებლად;
- ბაზის ცვლილებები მანიფესტშია და პლაგინის წაშლისას თავად სუფთავდება.
ქართული ტექსტი GSM-7-ში არ ჯდება და UCS-2-ით იგზავნება — ერთი SMS 160-ის ნაცვლად 70 სიმბოლოა. პლაგინი ყოველ შაბლონთან იქვე გიწერს კოდირებას, სიგრძესა და სეგმენტების რაოდენობას. მასობრივ გაგზავნამდე კი ჯერ მიმღებების რიცხვსა და სულ რამდენ SMS-ს ჩამოგაჭრის გაჩვენებს — დადასტურების ღილაკი მხოლოდ ამის შემდეგ ჩნდება.
uBill-ის ანგარიშის მოთხოვნა მხოლოდ სტატუსს აბრუნებს, დროის გარეშე — ოპერატორის ნამდვილი დრო callback-ში მოდის. პლაგინს თან ახლავს callback-ის მიმღები, ამიტომ ჟურნალში სამივე საფეხური თავისი დროით ჩანს:
მოთხოვნა 27.08.2026 10:00:03
ოპერატორმა გაგზავნა 27.08.2026 10:00:07 (+4 წმ)
მიუვიდა 27.08.2026 10:00:19 (+16 წმ)თუ callback ჩართული არაა, დრო მაინც ჩანს, ოღონდ ტილდით — რადგან ეს მხოლოდ ის მომენტია, როცა ცვლილება შევამჩნიეთ. მიახლოებითს ზუსტად არ ვასაღებთ.
- API გასაღები მხოლოდ სერვერზე. ინახება
engine/data/-ში, პირდაპირი გახსნისგან დაცული ფაილით; ინტერფეისში მხოლოდ ნიღბიანად ჩანს. - კოდი ბაზაში ღიად არ ინახება — მხოლოდ HMAC-SHA256 ჰეშად, თითო მცდელობაზე ახალი მარილით; შედარება დროში მუდმივია.
- ლიმიტები სერვერზე მოწმდება — კოდის ვადა, ხელახლა გაგზავნის ინტერვალი და მცდელობების რაოდენობა, არა ფორმაში.
- არსებული ნომრები არ ჟონავს — არასწორი კოდი და უცნობი ნომერი ერთსა და იმავე პასუხს იღებს.
- პაროლს პლაგინი თვითონ არ ჰეშავს — DLE-ის საკუთარ API-ს ანდობს, რომ bcrypt-ის ფორმატი არ დაირღვეს.
- SQL — ყველა მნიშვნელობა ძრავის ეკრანირებაზე ან მთელ რიცხვზე გადის.
მოთხოვნები
| რა | რამდენი |
|---|---|
| DataLife Engine | 20.0 და ზემოთ, ლიცენზირებული |
| PHP | 8.0+, გაფართოებებით curl და mbstring |
| uBill | ანგარიში API გასაღებითა და brandID-ით |
დემო-ვერსია არ გამოდგება: DLE-ს იქ პლაგინების სისტემა გამორთული აქვს, რადგან კოდი დახურულია.
- ადმინი → პლაგინები → არქივის ატვირთვა.
- ადმინი → uBill SMS → API გასაღები და brandID → შენახვა.
- ბალანსის ნახვა — თუ რიცხვი დაბრუნდა, კავშირი მუშაობს.
- შაბლონში ერთი ხაზი დადასტურების გვერდისთვის და ერთიც პაროლის აღდგენისთვის — ორივე ინსტრუქცია ადმინშივე წერია, კოპირებისთვის მზა სახით.
რა შედის არქივში
დასაყენებელი პლაგინი სრული ქართული ინტერფეისით, uBill-ის თვითკმარი კლიენტი (Composer არ სჭირდება — გაზიარებული ბიბლიოთეკა სხვა მოდულებთან კლასების შეჯახებას იწვევს), callback-ის მიმღები, unit და ინტეგრაციული ტესტები და არქივის ამწყობი სკრიპტი.
რა განახლდა — ვერსია 1.1.0
1.1.0
- მიწოდების ქრონოლოგია ჟურნალში: მოთხოვნა → ოპერატორმა გაგზავნა → მიუვიდა.
- callback-ის მიმღები — ოპერატორის ნამდვილი დროისთვის.
- პაროლის აღდგენა SMS-ით ცალკე გვერდად.
- მასობრივი გაგზავნა ჯგუფის ან ერთი მომხმარებლის მიხედვით, ხარჯის ჩვენებით.
- ადმინის განყოფილება DLE-ის სტილში, ჩანართებით.
1.0.0
- ნომრის დადასტურება ერთჯერადი კოდით, მისალმების SMS, ბალანსი, სატესტო გაგზავნა და ჟურნალი.
110.00 ₾