ব্যবহার · অর্ডার নোটিফিকেশন
অর্ডার নিশ্চিতকরণ ও ডেলিভারি আপডেট এসএমএস, স্বয়ংক্রিয়ভাবে
অর্ডার নিশ্চিত হলো, পাঠানো হলো বা ডেলিভারিতে বের হলো — সঙ্গে সঙ্গে গ্রাহককে জানান, বাংলা বা ইংরেজিতে। প্রতিটি এসএমএসের ডেলিভারি রিপোর্ট আছে, আর সাইনড ওয়েবহুক আপনার সিস্টেমকে হালনাগাদ রাখে।
সমস্যাটা কোথায়
অর্ডারের খবর না পেলে গ্রাহক ফোন করেন। প্রতিটি "আমার পার্সেল কোথায়?" কলে টিমের সময় যায়, আর যে গ্রাহক কুরিয়ারের অপেক্ষায় নেই, তিনি ডেলিভারি মিস করেন বা ক্যাশ অন ডেলিভারি পার্সেল ফিরিয়ে দেন বেশি।
নিজের কোড থেকে অর্ডার এসএমএস পাঠাতে গেলেও ঝামেলা আছে। টাইমআউট হলে সার্ভার আবার চেষ্টা করে, আর গ্রাহক একই মেসেজ দুবার পান। কোনো মেসেজ নীরবে ব্যর্থ হয়, কেউ জানতেও পারে না। আর একই সময়ে বড় প্রমোশন গেলে অর্ডার আপডেট লাইনের পেছনে পড়ে যায়।
BitSMS যেভাবে সমাধান করে
প্রতিটি অর্ডার ইভেন্টে একটি কল
আবার চেষ্টাতেও ডাবল এসএমএস নয়
ডেলিভারি রিপোর্ট ও সাইনড ওয়েবহুক
কিউতে প্রমোশনের আগে
আপনার কোডে
শিপিং আপডেট পাঠান
প্রতি মেসেজে একটি HTTPS রিকোয়েস্ট। এসএমএস নিরাপদে কিউতে উঠলেই এপিআই উত্তর দেয় এবং ট্র্যাক করার জন্য একটি মেসেজ আইডি দেয়।
- Idempotency-Key-এ অর্ডার নম্বর ও ইভেন্ট রাখুন, যেমন order-5521-shipped।
- একবার ওয়েবহুক রেজিস্টার করলেই প্রতিটি মেসেজের ডেলিভার্ড ও ফেইলড আপডেট পাবেন।
- যেকোনো বাংলাদেশি মোবাইল নম্বরে পাঠান, ০১৭… বা +৮৮০১৭… যেকোনো ফরম্যাটে।
curl https://sms-api.bitcommerz.com/v1/messages \
-H "Authorization: Bearer $BITSMS_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-5521-shipped" \
-d '{"to": "01712345678", "text": "Your order #5521 has shipped."}'// Node.js 18+ (built-in fetch)
const res = await fetch("https://sms-api.bitcommerz.com/v1/messages", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.BITSMS_API_KEY}`,
"Content-Type": "application/json",
// Same key on a retry = no duplicate SMS, no double charge.
"Idempotency-Key": "order-5521-shipped",
},
body: JSON.stringify({ to: "01712345678", text: "Your order #5521 has shipped." }),
});
const msg = await res.json();
console.log(res.status, msg.id, msg.status); // 202 "0192…" "queued"<?php
$ch = curl_init("https://sms-api.bitcommerz.com/v1/messages");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer " . getenv("BITSMS_API_KEY"),
"Content-Type: application/json",
"Idempotency-Key: order-5521-shipped",
],
CURLOPT_POSTFIELDS => json_encode([
"to" => "01712345678",
"text" => "আপনার অর্ডার #5521 পাঠানো হয়েছে।",
]),
]);
$body = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE); // 202
echo $body["id"], " ", $body["parts"], " part(s)\n";import os, requests
res = requests.post(
"https://sms-api.bitcommerz.com/v1/messages",
headers={
"Authorization": f"Bearer {os.environ['BITSMS_API_KEY']}",
"Idempotency-Key": "order-5521-shipped",
},
json={"to": "01712345678", "text": "Your order #5521 has shipped."},
timeout=10,
)
msg = res.json()
print(res.status_code, msg["id"], msg["status"]) # 202 ... queuedbody, _ := json.Marshal(map[string]string{
"to": "01712345678",
"text": "Your order #5521 has shipped.",
})
req, _ := http.NewRequest("POST", "https://sms-api.bitcommerz.com/v1/messages", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer "+os.Getenv("BITSMS_API_KEY"))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Idempotency-Key", "order-5521-shipped")
res, err := http.DefaultClient.Do(req)
if err != nil {
log.Fatal(err) // safe to retry with the same Idempotency-Key
}
defer res.Body.Close()
var msg struct{ ID, Status string }
json.NewDecoder(res.Body).Decode(&msg)
fmt.Println(res.StatusCode, msg.ID, msg.Status) // 202 ... queuedসাধারণ প্রশ্ন
অর্ডার কনফার্মেশন এসএমএস কি বাংলায় পাঠানো যায়?
হ্যাঁ। বাংলায় লিখুন, BitSMS ইউনিকোডে পাঠাবে। একটি বাংলা এসএমএসে ৭০ অক্ষর ধরে, লম্বা হলে প্রতি পার্টে ৬৭। পাঠানোর আগে ফিচার পাতার ক্যালকুলেটরে গুনে নিন।
ডেলিভারি আপডেট এসএমএস গ্রাহকের কাছে পৌঁছাল কি না কীভাবে জানব?
প্রতিটি মেসেজের জন্য অপারেটর থেকে ডেলিভারি রিপোর্ট আসে। ড্যাশবোর্ডে দেখতে পারেন, মেসেজ আইডি দিয়ে খুঁজতে পারেন, অথবা সাইনড ওয়েবহুকে পেতে পারেন।
আমার সার্ভার একই অর্ডার এসএমএস দুবার পাঠালে কী হবে?
প্রতিটি রিকোয়েস্টে একটি Idempotency-Key দিন। একই কি আবার এলে BitSMS ডুপ্লিকেট না পাঠিয়ে প্রথম মেসেজটাই ফেরত দেয়, আর চার্জ হয় একবারই।