WooCommerce සහ WordPress ඒකාබද්ධ කිරීම
smslenz.lk විසින් WooCommerce සඳහාම වූ ඇඩෝන් ප්ලගිනයක් ලබා දෙන බැවින්, ඔබේ WordPress වෙළඳසැලට SMS දැනුම්දීම් එක් කළ හැක. මිලදී ගැනීමේ සිදුවීම් සඳහා පාරිභෝගිකයන්ට ස්වයංක්රීය SMS යාවත්කාලීන යවා සෑම පියවරකදීම ඔවුන් දැනුවත් කරන්න.
SMSlenz for WooCommerce බාගත කර ඔබේ WordPress වෙළඳසැලෙන් අදම SMS දැනුම්දීම් යැවීම අරඹන්න.
REST API එන්ඩ්පොයින්ට් මාර්ගෝපදේශය
ඔබේ අභිරුචි සංවර්ධනය සමඟ SMSlenz.lk ඒකාබද්ධ කිරීමට අවශ්යද? අපගේ සෘජු API එන්ඩ්පොයින්ට් සඳහා සම්පූර්ණ මාර්ගෝපදේශයක් අපි ලබා දෙමු: ඔබේ යෙදුමෙන් ඒවා අමතා වහාම අපගේ SMS සේවා භාවිත කිරීම අරඹන්න.
අපගේ API එක PHP, JavaScript, Python, Java, C#, Ruby, Go සහ Node.js ඇතුළු සියලුම ප්රධාන ක්රමලේඛන භාෂාවලට සහාය දක්වයි. එය වෙබ් වේදිකාවක්, ඩෙස්ක්ටොප් මෘදුකාංගයක් හෝ ජංගම යෙදුමක් (Android හෝ iOS) වුවද, ඕනෑම ආකාරයක යෙදුමක් සමඟ ක්රියා කරයි.
smslenz.lk SMS ක්රියා සඳහා සෘජු එන්ඩ්පොයින්ට්
SMS යවන්න
POSTGETසම්බන්ධතා අංකයකට SMS යැවීමට මෙම එන්ඩ්පොයින්ට් එක සෘජුවම භාවිත කරන්න.
ඉල්ලීම
URL: https://mail.smslenz.lk/api/send-sms
පරාමිති
| යතුර | අනිවාර්යයි | අගය |
|---|---|---|
user_id |
අනිවාර්යයි | ඔබේ සැකසුම් පිටුවේ ඇති User ID. |
api_key |
අනිවාර්යයි | ඔබේ සැකසුම් පිටුවේ ඇති API key. |
sender_id |
අනිවාර්යයි | ඔබේ අනුමත Sender ID. පරීක්ෂා කිරීම සඳහා SMSlenzDEMO භාවිත කරන්න. මෙහි ලොකු/කුඩා අකුරු වෙනස සලකා බලයි. |
contact |
අනිවාර්යයි | ලබන්නා; +9476XXXXXXX ආකෘතියෙන් තිබිය යුතුය. |
message |
අනිවාර්යයි | පණිවිඩය. උපරිම: අක්ෂර 1500. |
contact_name |
විකල්ප | සම්බන්ධතාවය සමඟ සුරැකිය යුතු නම (උපරිම අක්ෂර 255). එය යොදන්නේ සම්බන්ධතාවය අලුත් නම් හෝ තවම නමක් නැති නම් පමණි, එබැවින් ඔබ dashboard එකේ සංස්කරණය කළ නම් කිසිවිටක උඩින් ලියැවෙන්නේ නැත. |
නියැදි ඉල්ලීම් අන්තර්ගතය (POST · JSON)
{
"user_id": "12",
"api_key": "YOUR_API_KEY",
"sender_id": "SMSlenzDEMO",
"contact": "+9476XXXXXXX",
"message": "Welcome to SMSlenz!",
"contact_name": "Kamal"
}
නියැදි GET ඉල්ලීම් URL
https://mail.smslenz.lk/api/send-sms?user_id=12&api_key=YOUR_API_KEY&sender_id=SMSlenzDEMO&contact=%2B9476XXXXXXX&message=Welcome%20to%20SMSlenz%21
Query අගයන් URL-encode කළ යුතුය — සම්බන්ධතා අංකයේ ඇති + ලකුණ %2B ලෙස යවන බව සලකන්න.
කේත උදාහරණ
curl -X POST "https://mail.smslenz.lk/api/send-sms" \
-d "user_id=12" \
-d "api_key=YOUR_API_KEY" \
-d "sender_id=SMSlenzDEMO" \
-d "contact=+9476XXXXXXX" \
-d "message=Welcome to SMSlenz!"
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://mail.smslenz.lk/api/send-sms");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'user_id' => '12',
'api_key' => 'YOUR_API_KEY',
'sender_id' => 'SMSlenzDEMO',
'contact' => '+9476XXXXXXX',
'message' => 'Welcome to SMSlenz!',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
fetch("https://mail.smslenz.lk/api/send-sms", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
user_id: "12",
api_key: "YOUR_API_KEY",
sender_id: "SMSlenzDEMO",
contact: "+9476XXXXXXX",
message: "Welcome to SMSlenz!"
})
})
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));
import requests
url = "https://mail.smslenz.lk/api/send-sms"
payload = {
"user_id": "12",
"api_key": "YOUR_API_KEY",
"sender_id": "SMSlenzDEMO",
"contact": "+9476XXXXXXX",
"message": "Welcome to SMSlenz!"
}
response = requests.post(url, data=payload)
print(response.json())
ප්රතිචාරය
සාර්ථක උත්සාහයකදී ඔබට JSON ප්රතිචාරයක් ලැබෙනු ඇත.
Content-Type: application/json
අන්තර්ගතය:
{
"success": true,
"message": "SMS sent successfully",
"data": {
"status": "success",
"campaign_id": 42,
"message": "Welcome to SMSlenz!",
"sender_id": "SMSlenzDEMO",
"pages": 1,
"recipient_number": "9475XXXXXXX",
"sms_credit_balance": "2,513.95",
"charged_from": "main"
}
}
sms_credit_balance යනු sender ID එක ක්රෙඩිට් ලබා ගන්නා පූලයේ ඉතිරි ශේෂයයි: sender ID එකට සක්රිය ක්රෙඩිට් වෙන් කිරීමක් ඇත්නම් එහි වෙන් කළ ක්රෙඩිට්, නැතහොත් ඔබේ ප්රධාන ශේෂය. එය කුමක්දැයි charged_from මඟින් දැක්වේ (allocation හෝ main).
තොග SMS යවන්න
POSTසම්බන්ධතා අංක කිහිපයකට SMS යැවීමට මෙම එන්ඩ්පොයින්ට් එක සෘජුවම භාවිත කරන්න.
ඉල්ලීම
URL: https://mail.smslenz.lk/api/send-bulk-sms
පරාමිති
| යතුර | අනිවාර්යයි | අගය |
|---|---|---|
user_id |
අනිවාර්යයි | ඔබේ සැකසුම් පිටුවේ ඇති User ID. |
api_key |
අනිවාර්යයි | ඔබේ සැකසුම් පිටුවේ ඇති API key. |
sender_id |
අනිවාර්යයි | ඔබේ අනුමත Sender ID. පරීක්ෂා කිරීම සඳහා SMSlenzDEMO භාවිත කරන්න. මෙහි ලොකු/කුඩා අකුරු වෙනස සලකා බලයි. |
contacts |
අනිවාර්යයි | ලබන්නන්ගේ අංක; array ආකෘතියෙන් තිබිය යුතුය["+9476XXXXXXX","+9475XXXXXXX"]. |
message |
අනිවාර්යයි | පණිවිඩය. උපරිම: අක්ෂර 1500. |
නියැදි ඉල්ලීම් අන්තර්ගතය (POST · JSON)
{
"user_id": "12",
"api_key": "YOUR_API_KEY",
"sender_id": "SMSlenzDEMO",
"contacts": ["+9476XXXXXXX", "+9475XXXXXXX"],
"message": "Welcome to bulk sms API!"
}
මෙම එන්ඩ්පොයින්ට් එක POST පමණක් පිළිගනී — අන්තර්ගතය JSON ලෙස (Content-Type: application/json) හෝ සාමාන්ය form fields ලෙස යවන්න.
කේත උදාහරණ
curl -X POST "https://mail.smslenz.lk/api/send-bulk-sms" \
-H "Content-Type: application/json" \
-d '{
"user_id": "12",
"api_key": "YOUR_API_KEY",
"sender_id": "SMSlenzDEMO",
"contacts": ["+9476XXXXXXX", "+9475XXXXXXX"],
"message": "Welcome to bulk sms API!"
}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://mail.smslenz.lk/api/send-bulk-sms");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'user_id' => '12',
'api_key' => 'YOUR_API_KEY',
'sender_id' => 'SMSlenzDEMO',
'contacts' => ['+9476XXXXXXX', '+9475XXXXXXX'],
'message' => 'Welcome to bulk sms API!',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
fetch("https://mail.smslenz.lk/api/send-bulk-sms", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
user_id: "12",
api_key: "YOUR_API_KEY",
sender_id: "SMSlenzDEMO",
contacts: ["+9476XXXXXXX", "+9475XXXXXXX"],
message: "Welcome to bulk sms API!"
})
})
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));
import requests
url = "https://mail.smslenz.lk/api/send-bulk-sms"
payload = {
"user_id": "12",
"api_key": "YOUR_API_KEY",
"sender_id": "SMSlenzDEMO",
"contacts": ["+9476XXXXXXX", "+9475XXXXXXX"],
"message": "Welcome to bulk sms API!"
}
response = requests.post(url, json=payload)
print(response.json())
ප්රතිචාරය
සාර්ථක උත්සාහයකදී ඔබට JSON ප්රතිචාරයක් ලැබෙනු ඇත.
Content-Type: application/json
අන්තර්ගතය:
{
"success": true,
"message": "SMS sent successfully",
"data": {
"status": "success",
"campaign_id": 43,
"message": "Welcome to bulk sms API!",
"sender_id": "SMSlenzDEMO",
"pages": 1,
"no_of_recipients": 2,
"sms_credit_balance": "2,512.77",
"charged_from": "main"
}
}
sms_credit_balance යනු sender ID එක ක්රෙඩිට් ලබා ගන්නා පූලයේ ඉතිරි ශේෂයයි: sender ID එකට සක්රිය ක්රෙඩිට් වෙන් කිරීමක් ඇත්නම් එහි වෙන් කළ ක්රෙඩිට්, නැතහොත් ඔබේ ප්රධාන ශේෂය. එය කුමක්දැයි charged_from මඟින් දැක්වේ (allocation හෝ main).
ගිණුමේ තත්ත්වය
POSTGETඔබේ ගිණුමේ තත්ත්වය පරීක්ෂා කිරීමට මෙම එන්ඩ්පොයින්ට් එක භාවිත කරන්න.
ඉල්ලීම
URL: https://mail.smslenz.lk/api/account-status
පරාමිති
| යතුර | අනිවාර්යයි | අගය |
|---|---|---|
user_id |
අනිවාර්යයි | ඔබේ සැකසුම් පිටුවේ ඇති User ID. |
api_key |
අනිවාර්යයි | ඔබේ සැකසුම් පිටුවේ ඇති API key. |
නියැදි ඉල්ලීම් අන්තර්ගතය (POST · JSON)
{
"user_id": "12",
"api_key": "YOUR_API_KEY"
}
නියැදි GET ඉල්ලීම් URL
https://mail.smslenz.lk/api/account-status?user_id=12&api_key=YOUR_API_KEY
කේත උදාහරණ
curl -X POST "https://mail.smslenz.lk/api/account-status" \
-d "user_id=12" \
-d "api_key=YOUR_API_KEY"
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://mail.smslenz.lk/api/account-status");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'user_id' => '12',
'api_key' => 'YOUR_API_KEY',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
fetch("https://mail.smslenz.lk/api/account-status", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
user_id: "12",
api_key: "YOUR_API_KEY"
})
})
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));
import requests
url = "https://mail.smslenz.lk/api/account-status"
payload = {
"user_id": "12",
"api_key": "YOUR_API_KEY"
}
response = requests.post(url, data=payload)
print(response.json())
ප්රතිචාරය
සාර්ථක උත්සාහයකදී ඔබට JSON ප්රතිචාරයක් ලැබෙනු ඇත.
Content-Type: application/json
අන්තර්ගතය:
{
"success": true,
"message": "Account status retrieved successfully",
"data": {
"status": "active",
"sms_credit_balance": "2,515.72",
"allocated_credit_total": "1,500.00",
"sender_id_balances": [
{
"sender_id": "YOURBRAND",
"allocated_balance": "1,500.00",
"active": true
}
],
"active_plan": "Pay As You Go",
"total_contacts": 3,115,
"total_sender_ids": 6
}
}
sms_credit_balance යනු ඔබේ ප්රධාන ශේෂයයි. sender_id_balances මඟින් ක්රෙඩිට් වෙන් කිරීමක් ඇති sender ID ලැයිස්තුගත කරයි; active වෙන් කිරීමක් ඇති sender ID එකකින් අය කරනු ලබන්නේ එහි වෙන් කළ ශේෂයෙන් පමණි.
සම්බන්ධතාවය සුරකින්න
POSTSMS එකක් නොයවා ඔබේ ගිණුමට සම්බන්ධතාවයක් එක් කිරීමට මෙම endpoint එක භාවිත කරන්න. දැනටමත් ඇති අංකයක් සුරැකීම ආරක්ෂිතයි: ඔබට පවතින සම්බන්ධතාවය නැවත ලැබේ.
ඉල්ලීම
URL: https://mail.smslenz.lk/api/save-contact
පරාමිති
| යතුර | අනිවාර්යයි | අගය |
|---|---|---|
user_id |
අනිවාර්යයි | ඔබේ සැකසුම් පිටුවේ ඇති User ID. |
api_key |
අනිවාර්යයි | ඔබේ සැකසුම් පිටුවේ ඇති API key. |
contact |
අනිවාර්යයි | ශ්රී ලංකාවේ ජංගම දුරකථන අංකයක්, උදා. +9476XXXXXXX හෝ 076XXXXXXX. |
name |
විකල්ප | සම්බන්ධතාවයේ නම (උපරිම අක්ෂර 255). එය යොදන්නේ සම්බන්ධතාවය අලුත් නම් හෝ තවම නමක් නැති නම් පමණි. |
group |
විකල්ප | සම්බන්ධතා කණ්ඩායමක නමක් (උපරිම අක්ෂර 255). සම්බන්ධතාවය එයට එක් කෙරේ; ඔබට එම කණ්ඩායම තවම නැත්නම් එය සාදනු ලැබේ. සෑම සම්බන්ධතාවයක්ම "All Contacts" වෙතද එක් කෙරේ. |
නියැදි ඉල්ලීම් අන්තර්ගතය (POST · JSON)
{
"user_id": "12",
"api_key": "YOUR_API_KEY",
"contact": "+9476XXXXXXX",
"name": "Kamal Perera",
"group": "VIP Customers"
}
කේත උදාහරණ
curl -X POST "https://mail.smslenz.lk/api/save-contact" \
-d "user_id=12" \
-d "api_key=YOUR_API_KEY" \
--data-urlencode "contact=+9476XXXXXXX" \
--data-urlencode "name=Kamal Perera" \
--data-urlencode "group=VIP Customers"
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://mail.smslenz.lk/api/save-contact");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'user_id' => '12',
'api_key' => 'YOUR_API_KEY',
'contact' => '+9476XXXXXXX',
'name' => 'Kamal Perera',
'group' => 'VIP Customers',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
fetch("https://mail.smslenz.lk/api/save-contact", {
method: "POST",
headers: { "Content-Type": "application/json", "Accept": "application/json" },
body: JSON.stringify({
user_id: "12",
api_key: "YOUR_API_KEY",
contact: "+9476XXXXXXX",
name: "Kamal Perera",
group: "VIP Customers"
})
})
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));
import requests
url = "https://mail.smslenz.lk/api/save-contact"
payload = {
"user_id": "12",
"api_key": "YOUR_API_KEY",
"contact": "+9476XXXXXXX",
"name": "Kamal Perera",
"group": "VIP Customers"
}
response = requests.post(url, data=payload)
print(response.json())
ප්රතිචාරය
නව සම්බන්ධතාවයක් සෑදූ විට HTTP 201, අංකය දැනටමත් ඔබේ සම්බන්ධතාවල තිබූ විට 200.
Content-Type: application/json
අන්තර්ගතය:
{
"success": true,
"message": "Contact saved successfully",
"data": {
"contact_id": 1024,
"name": "Kamal Perera",
"phone": "+9476XXXXXXX",
"created": true,
"groups": ["All Contacts", "VIP Customers"]
}
}
groups මඟින් සම්බන්ධතාවය අයත් සියලු කණ්ඩායම් පෙන්වයි.
දෝෂ
| HTTP තත්ත්වය | තේරුම |
|---|---|
400 |
සම්බන්ධතා අංකයේ ආකෘතිය වලංගු නැත. |
401 |
වලංගු නොවන API key හෝ user ID. |
403 |
ඔබේ ගිණුම අත්හිටුවා ඇත. |
422 |
පරාමිතියක් අස්ථානගත වී හෝ වලංගු නැත. කුමක්දැයි errors ක්ෂේත්රය පවසයි. |
429 |
ඉල්ලීම් වැඩියි. කරුණාකර වේගය අඩු කරන්න. |
ක්රෙඩිට් රීලෝඩ් කිරීම
POSTඔබේම පද්ධතියෙන් ඔබේ SMS ක්රෙඩිට් රීලෝඩ් කිරීමට මෙම එන්ඩ්පොයින්ට් එක භාවිත කරන්න. එය ගෙවීම් සබැඳියක් සාදයි; ගෙවන ඕනෑම අයෙක් (ඔබ, ඔබේ කාර්ය මණ්ඩලය හෝ ඔබේ පාරිභෝගිකයා) එය විවෘත කර PayHere හි ආරක්ෂිත checkout හරහා කාඩ්පතෙන් ගෙවයි. කාඩ්පත් විස්තර කිසිවිටෙක ඔබේ හෝ අපගේ පද්ධතිය හරහා ගමන් නොකරයි.
එය ක්රියා කරන ආකාරය
- මෙම එන්ඩ්පොයින්ට් එක අමතන්න. ඔබට
order_idඑකක් සහpayment_urlඑකක් ලැබේ. payment_urlඑක බ්රවුසරයක විවෘත කරන්න, නැතහොත් ඔබේ පරිශීලකයා එයට යොමු කරන්න. එය ඔවුන්ව කාඩ් checkout වෙත ගෙන යයි. SMSlenz පිවිසුමක් අවශ්ය නැත.- ප්රතිඵලය ලබා ගන්න:
callback_urlඑකක් ලබා දුන් විට අපි එය ඔබේ සේවාදායකයට POST කරන්නෙමු (ගෙවීම් කෝල්බැක් බලන්න), නැතහොත් ගෙවීමේ තත්ත්වය පරීක්ෂා කරන්න. ගෙවීම සම්පූර්ණ වූ වහාම ක්රෙඩිට් ඔබේ ගිණුමට එකතු වේ.
ඉල්ලීම
URL: https://mail.smslenz.lk/api/reload-credit
පරාමිති
| යතුර | අනිවාර්යයි | අගය |
|---|---|---|
user_id |
අනිවාර්යයි | ඔබේ සැකසුම් පිටුවේ ඇති User ID. |
api_key |
අනිවාර්යයි | ඔබේ සැකසුම් පිටුවේ ඇති API key. |
amount |
අනිවාර්යයි | රීලෝඩ් කළ යුතු මුදල රුපියල්වලින්, 1000 සහ 100000 අතර පූර්ණ සංඛ්යාවක් ලෙස. |
sender_id |
විකල්ප | ඔබේ අනුමත Sender ID වලින් එකක්. ගෙවූ පසු, මුළු මුදලම ඔබේ ප්රධාන ශේෂය වෙනුවට මෙම sender ID එකට වෙන් කෙරේ. ලොකු/කුඩා අකුරු වෙනස සලකා බලයි. |
client_reference |
විකල්ප | ඉන්වොයිස් අංකයක් වැනි ඔබේම යොමුවක් (උපරිම අක්ෂර 64). එම අගයම නැවත යැවූ විට නව ගෙවීම් සබැඳියක් සෑදීම වෙනුවට පවතින සබැඳිය ලැබෙන බැවින්, ඉල්ලීමක් නැවත උත්සාහ කිරීම ආරක්ෂිතයි. |
return_url |
විකල්ප | ගෙවීමෙන් හෝ අවලංගු කිරීමෙන් පසු ගෙවන්නා ආපසු යැවිය යුතු https:// පිටුවක්. එය නොමැති නම්, ඔවුන්ට SMSlenz තහවුරු කිරීමේ පිටුවක් පෙනේ. |
callback_url |
විකල්ප | ඔබේ සේවාදායකයේ ඇති පොදු https:// URL එකක්. මෙම ගෙවීම ගෙවූ විට හෝ එහි සබැඳිය කල් ඉකුත් වූ විට අපි ප්රතිඵලය එයට POST කරන්නෙමු. ගෙවීම් කෝල්බැක් බලන්න. |
නියැදි ඉල්ලීම් අන්තර්ගතය (POST · JSON)
{
"user_id": "12",
"api_key": "YOUR_API_KEY",
"amount": 5000,
"sender_id": "YOURBRAND",
"client_reference": "INV-1001",
"return_url": "https://example.com/payment-complete",
"callback_url": "https://example.com/smslenz-callback"
}
මෙම එන්ඩ්පොයින්ට් එක POST පමණක් පිළිගනී — අන්තර්ගතය JSON ලෙස (Content-Type: application/json) හෝ සාමාන්ය form fields ලෙස යවන්න.
කේත උදාහරණ
curl -X POST "https://mail.smslenz.lk/api/reload-credit" \
-H "Content-Type: application/json" \
-d '{
"user_id": "12",
"api_key": "YOUR_API_KEY",
"amount": 5000,
"client_reference": "INV-1001",
"callback_url": "https://example.com/smslenz-callback"
}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://mail.smslenz.lk/api/reload-credit");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'user_id' => '12',
'api_key' => 'YOUR_API_KEY',
'amount' => 5000,
'client_reference' => 'INV-1001',
'callback_url' => 'https://example.com/smslenz-callback',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
// Save $response['data']['order_id'], then send the payer to checkout:
header('Location: ' . $response['data']['payment_url']);
fetch("https://mail.smslenz.lk/api/reload-credit", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
user_id: "12",
api_key: "YOUR_API_KEY",
amount: 5000,
client_reference: "INV-1001",
callback_url: "https://example.com/smslenz-callback"
})
})
.then(res => res.json())
.then(data => {
// Save data.data.order_id, then open checkout
window.location.href = data.data.payment_url;
})
.catch(err => console.error(err));
import requests
url = "https://mail.smslenz.lk/api/reload-credit"
payload = {
"user_id": "12",
"api_key": "YOUR_API_KEY",
"amount": 5000,
"client_reference": "INV-1001",
"callback_url": "https://example.com/smslenz-callback"
}
data = requests.post(url, json=payload).json()
print(data["data"]["order_id"], data["data"]["payment_url"])
ප්රතිචාරය
නව සබැඳියක් සෑදූ විට 201 තත්ත්වය සමඟ, නැතහොත් client_reference පවතින එකක් හා ගැළපෙන විට 200 සමඟ ඔබට JSON ප්රතිචාරයක් ලැබේ.
Content-Type: application/json
අන්තර්ගතය:
{
"success": true,
"message": "Payment link created",
"data": {
"order_id": "PRU3FTX7HUJP8RAHY4",
"amount": "5,000.00",
"status": "pending",
"last_attempt": null,
"client_reference": "INV-1001",
"sender_id": "YOURBRAND",
"allocation_status": null,
"callback_url": "https://example.com/smslenz-callback",
"expires_at": "2026-10-08T15:30:00+05:30",
"paid_at": null,
"payment_url": "https://mail.smslenz.lk/pay/PRU3FTX7HUJP8RAHY4?signature=3f9c…"
}
}
payment_urlඑක මිනිත්තු 60 ක් (expires_atදක්වා) ක්රියාත්මක වේ. ගෙවීමක් අවලංගු කළහොත් හෝ ප්රතික්ෂේප වුවහොත්, නැවත උත්සාහ කිරීමට එම සබැඳියම නැවත විවෘත කළ හැක.return_urlඑකක් ඇති විට, ගෙවන්නා?order_id=…&status=…එකතු කර එයට ආපසු යවනු ලැබේ. එය ඉඟියක් ලෙස පමණක් සලකන්න: ඒ මත ක්රියා කිරීමට පෙර ඔබේ කෝල්බැක් හෝ ගෙවීමේ තත්ත්වය මත රඳා පවතින්න.
දෝෂ
| HTTP තත්ත්වය | තේරුම |
|---|---|
401 |
වලංගු නොවන API key හෝ user ID. |
403 |
ඔබේ ගිණුම අත්හිටුවා ඇත. |
409 |
client_reference එක දැනටමත් වෙනත් මුදලක් හෝ sender ID එකක් සඳහා භාවිත කර ඇත. |
422 |
පරාමිතියක් වලංගු නැත, ඔබේ ගිණුමට සක්රිය පැකේජයක් නැත, නැතහොත් sender ID එකට ක්රෙඩිට් ලැබිය නොහැක. කුමක්දැයි message ක්ෂේත්රයේ දැක්වේ. |
429 |
ඉල්ලීම් වැඩිය. ඔබට මිනිත්තුවකට ගෙවීම් සබැඳි 10ක් දක්වා සෑදිය හැක. |
ගෙවීමේ තත්ත්වය
POSTක්රෙඩිට් රීලෝඩ් ගෙවීමක් සම්පූර්ණ වී ඇත්දැයි පරීක්ෂා කිරීමට මෙම එන්ඩ්පොයින්ට් එක භාවිත කරන්න. ඔබ callback_url එකක් භාවිත නොකරන්නේ නම්, ගෙවන්නා checkout වෙතින් ආපසු පැමිණි පසු පරීක්ෂා කර, තත්ත්වය paid හෝ expired වන තෙක් තත්පර කිහිපයකට වරක් පරීක්ෂා කරන්න.
ඉල්ලීම
URL: https://mail.smslenz.lk/api/payment-status
පරාමිති
| යතුර | අනිවාර්යයි | අගය |
|---|---|---|
user_id |
අනිවාර්යයි | ඔබේ සැකසුම් පිටුවේ ඇති User ID. |
api_key |
අනිවාර්යයි | ඔබේ සැකසුම් පිටුවේ ඇති API key. |
order_id |
අනිවාර්යයි | ක්රෙඩිට් රීලෝඩ් මඟින් ලැබුණු order_id එක. |
නියැදි ඉල්ලීම් අන්තර්ගතය (POST · JSON)
{
"user_id": "12",
"api_key": "YOUR_API_KEY",
"order_id": "PRU3FTX7HUJP8RAHY4"
}
කේත උදාහරණ
curl -X POST "https://mail.smslenz.lk/api/payment-status" \
-d "user_id=12" \
-d "api_key=YOUR_API_KEY" \
-d "order_id=PRU3FTX7HUJP8RAHY4"
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://mail.smslenz.lk/api/payment-status");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'user_id' => '12',
'api_key' => 'YOUR_API_KEY',
'order_id' => 'PRU3FTX7HUJP8RAHY4',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
if ($response['data']['status'] === 'paid') {
// Credit has been added to your account
}
fetch("https://mail.smslenz.lk/api/payment-status", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
user_id: "12",
api_key: "YOUR_API_KEY",
order_id: "PRU3FTX7HUJP8RAHY4"
})
})
.then(res => res.json())
.then(data => console.log(data.data.status))
.catch(err => console.error(err));
import requests
url = "https://mail.smslenz.lk/api/payment-status"
payload = {
"user_id": "12",
"api_key": "YOUR_API_KEY",
"order_id": "PRU3FTX7HUJP8RAHY4"
}
response = requests.post(url, data=payload)
print(response.json()["data"]["status"])
ප්රතිචාරය
සාර්ථක උත්සාහයකදී ඔබට JSON ප්රතිචාරයක් ලැබෙනු ඇත.
Content-Type: application/json
අන්තර්ගතය:
{
"success": true,
"message": "Payment status retrieved successfully",
"data": {
"order_id": "PRU3FTX7HUJP8RAHY4",
"amount": "5,000.00",
"status": "paid",
"last_attempt": null,
"client_reference": "INV-1001",
"sender_id": "YOURBRAND",
"allocation_status": "allocated",
"callback_url": "https://example.com/smslenz-callback",
"expires_at": "2026-10-08T15:30:00+05:30",
"paid_at": "2026-10-08T14:42:10+05:30",
"callback_status": "delivered",
"sms_credit_balance": "2,515.72",
"sender_id_balance": "6,500.00"
}
}
| ක්ෂේත්රය | තේරුම |
|---|---|
status |
pending (තවම ගෙවා නැත), paid (ක්රෙඩිට් එකතු කළා), හෝ expired (සබැඳිය නොගෙවා කල් ඉකුත් විය — අලුත් එකක් සාදන්න). |
last_attempt |
pending අතරතුර: ගෙවන්නාගේ අවසන් උත්සාහය සාර්ථක නොවූයේ නම් cancelled හෝ failed, නැතහොත් null. |
allocation_status |
sender_id එකක් ලබා දී ඇති විට: allocated, නැතහොත් ගෙවීම සම්පූර්ණ වන විට sender ID එකට ක්රෙඩිට් ලැබිය නොහැකි වූයේ නම් skipped (ක්රෙඩිට් ඒ වෙනුවට ඔබේ ප්රධාන ශේෂයට ගියේය). |
callback_status |
callback_url එකක් ලබා දී ඇති විට: pending (යවමින් හෝ නැවත උත්සාහ කරමින්), delivered, හෝ failed (අවසන් උත්සාහයෙන් පසු නතර කළා). යැවීමට යමක් ඇති වන තෙක් null. |
sms_credit_balance |
ඔබේ වත්මන් ප්රධාන ශේෂය. |
sender_id_balance |
sender_id එකක් ලබා දී ඇති විට පමණි: එම sender ID එකේ වත්මන් වෙන් කළ ශේෂය. |
නොදන්නා order ID සහ වෙනත් ගිණුමකට අයත් ඇණවුම් සඳහා 404 ලැබේ.
ගෙවීම් කෝල්බැක්
POSTක්රෙඩිට් රීලෝඩ් වෙත callback_url එකක් ලබා දෙන්න, එම ගෙවීම ගෙවූ විට හෝ එහි සබැඳිය කල් ඉකුත් වූ විට අපි ප්රතිඵලය ඔබේ සේවාදායකයට POST කරන්නෙමු, එබැවින් ඔබට ගෙවීමේ තත්ත්වය නැවත නැවත පරීක්ෂා කිරීමට අවශ්ය නැත. සෑම ගෙවීමකටම වෙනස් callback_url එකක් භාවිත කළ හැක.
සිදුවීම්
| සිදුවීම | යවන්නේ කවදාද |
|---|---|
payment.paid |
ගෙවීම සම්පූර්ණ වී ක්රෙඩිට් එකතු කළා (හෝ වෙන් කළා). |
payment.expired |
ගෙවීම් සබැඳිය නොගෙවා කල් ඉකුත් විය. |
අප යවන දේ
JSON අන්තර්ගතයක් (Content-Type: application/json) සහ මෙම headers සහිත POST ඉල්ලීමක්:
| Header | අගය |
|---|---|
X-SMSlenz-Event |
සිදුවීම, උදා. payment.paid. |
X-SMSlenz-Event-Id |
සෑම සිදුවීමකටම අනන්යයි. එකම සිදුවීම නැවත යවන විට එයම භාවිත වේ. |
X-SMSlenz-Signature |
t=<unix timestamp>,v1=<signature> — පහත කෝල්බැක් එකක් තහවුරු කිරීම බලන්න. |
{
"event": "payment.paid",
"event_id": "evt_01k6ztg3m8q2v7r4c1x9n5b0wd",
"created_at": "2026-10-08T14:42:11+05:30",
"data": {
"order_id": "PRU3FTX7HUJP8RAHY4",
"amount": "5,000.00",
"status": "paid",
"last_attempt": null,
"client_reference": "INV-1001",
"sender_id": "YOURBRAND",
"allocation_status": "allocated",
"callback_url": "https://example.com/smslenz-callback",
"expires_at": "2026-10-08T15:30:00+05:30",
"paid_at": "2026-10-08T14:42:10+05:30",
"sms_credit_balance": "2,515.72",
"sender_id_balance": "6,500.00"
}
}
data හි ගෙවීමේ තත්ත්වය ප්රතිචාරයේ ඇති ක්ෂේත්රම ඇත.
ප්රතිචාර දැක්වීම
- තත්පර 10ක් ඇතුළත ඕනෑම
2xxතත්ත්වයකින් පිළිතුරු දෙන්න. කාලය ගත වන වැඩ පිළිතුරු දීමෙන් පසු කරන්න. - වෙනත් ඕනෑම ප්රතිචාරයක් මිනිත්තු 1, මිනිත්තු 5, මිනිත්තු 30, පැය 2 සහ පැය 6 කට පසු නැවත උත්සාහ කෙරේ, ඉන්පසු අපි නවත්වමු. Redirects අනුගමනය නොකෙරේ.
- එකම සිදුවීම එක් වරකට වඩා ලැබිය හැක. සෑම
event_idඑකක්ම එක් වරක් පමණක් සකසන්න. - ගෙවීමේ තත්ත්වය සැමවිටම නිවැරදි තොරතුරු මූලාශ්රය වන බැවින්, කෝල්බැක් එකක් නොලැබුණත් ඔබට එය පරීක්ෂා කළ හැක.
කෝල්බැක් එකක් තහවුරු කිරීම
v1 අත්සන යනු ඔබේ API key එක යතුර ලෙස යොදා {t}.{raw request body} හි HMAC-SHA256 අගයයි. එය ඔබම ගණනය කර සසඳන්න; t මිනිත්තු 5කට වඩා පැරණි කෝල්බැක් ද ප්රතික්ෂේප කරන්න. ඔබ API key එක අලුත් කළහොත්, ඉන් පසු යවන කෝල්බැක් නව key එකෙන් අත්සන් කෙරේ.
<?php
$body = file_get_contents('php://input');
parse_str(str_replace(',', '&', $_SERVER['HTTP_X_SMSLENZ_SIGNATURE'] ?? ''), $sig);
$expected = hash_hmac('sha256', ($sig['t'] ?? '') . '.' . $body, 'YOUR_API_KEY');
if (! hash_equals($expected, $sig['v1'] ?? '') || abs(time() - (int) ($sig['t'] ?? 0)) > 300) {
http_response_code(400);
exit;
}
$event = json_decode($body, true);
// Skip $event['event_id'] if you've already processed it, then:
if ($event['event'] === 'payment.paid') {
// $event['data']['order_id'] is paid
}
http_response_code(200);
const crypto = require("crypto");
const express = require("express");
const app = express();
// Use the raw body: the signature covers the exact bytes we sent.
app.post("/smslenz-callback", express.raw({ type: "application/json" }), (req, res) => {
const sig = Object.fromEntries(
(req.get("X-SMSlenz-Signature") || "").split(",").map(part => part.split("="))
);
const expected = crypto.createHmac("sha256", "YOUR_API_KEY")
.update(`${sig.t}.${req.body}`)
.digest("hex");
const valid = sig.v1 && sig.v1.length === expected.length
&& crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(sig.v1))
&& Math.abs(Date.now() / 1000 - Number(sig.t)) <= 300;
if (!valid) return res.sendStatus(400);
const event = JSON.parse(req.body);
// Skip event.event_id if you've already processed it, then handle event.event
res.sendStatus(200);
});
import hashlib, hmac, json, time
from flask import Flask, abort, request
app = Flask(__name__)
@app.post("/smslenz-callback")
def smslenz_callback():
body = request.get_data() # raw bytes, exactly as sent
sig = dict(part.split("=", 1) for part in request.headers.get("X-SMSlenz-Signature", "").split(",") if "=" in part)
expected = hmac.new(b"YOUR_API_KEY", f"{sig.get('t')}.".encode() + body, hashlib.sha256).hexdigest()
if not hmac.compare_digest(expected, sig.get("v1", "")) or abs(time.time() - int(sig.get("t", 0))) > 300:
abort(400)
event = json.loads(body)
# Skip event["event_id"] if you've already processed it, then handle event["event"]
return "", 200
ඔබේ user ID සහ API key එක API සැකසුම් පිටුවේ ඇත.
යමක් අඩුයිද? අප අමතා අපට දන්වන්න. ඒකාබද්ධ කිරීම් සඳහා උදව් කිරීමට අපි සැමවිටම සතුටින් සිටිමු.