TÀI LIỆU MÔ TẢ KẾT NỐI SMS
Thông Số Kỹ Thuật, Version 1.5
1. Mục đích
- Để các Partner (đối tác) dễ dàng kết nối các dịch vụ SMS.
- EB2B đã xây dựng cổng kết nối hai chiều (chiều MO & chiều MT) phục vụ cho việc gửi và nhận SMS (hay còn gọi là SMS Gateway. Cổng kết nối này được xây dựng trên giao thức SOAP/XML.
- EB2B cung cấp dịch vụ Brand Name SMS, Partner có thể tham khảo 1 trong các mục sau để kết nối API:
- Kết nối MT theo giao thức RESTful (EB2B cung cấp 2 tùy chọn);
- Kết nối MT theo giao thức SOAP (EB2B cung cấp 2 tùy chọn);
- Kết nối MT Send SMS Bulk API với cấu trúc JSON.
- Dữ liệu trao đổi qua cổng kết nối đều được lưu lại ở hai bên để làm cơ sở tính cước và đối soát khi có khiếu nại xảy ra.
2. Thuật ngữ
STT | Tên | Mô tả |
---|---|---|
1. | MO (Mobile Originated) | Sử dụng cho tin nhắn được gửi từ điện thoại của khách hàng đến tổng đài di động (6x89, 99x, 8x99…) |
2. | MT (Mobile Terminated) | Sử dụng cho tin nhắn trả từ tổng đài di động đến điện thoại của khách hàng |
3. | Khách hàng | Là người sử dụng điện thoại nhắn tin đến tổng đài dịch vụ |
4. | Partner (Đối tác) | Là đơn vị hợp tác với EB2B trong việc sử dụng đầu số dịch vụ di động, thực hiện tiếp nhận các tin nhắn đến (MO) từ tổng đài và trả các tin nhắn kết quả (MT) về cho khách hàng qua tổng đài |
5. | EB2B | Là công ty cung cấp cổng kết nối dịch vụ SMS Gateway |
6. | SMS Gateway | Là hệ thống phần mềm cho phép kết nối đến các tổng đài thông tin di động của các Telco, nhận các tin nhắn đến (MO) từ tổng đài của Telco và chuyển qua các đối tác xử lý đồng thời gửi các tin nhắn đi (MT) tới Telco để gửi cho khách hàng |
7. | Telcos | Các công ty cung cấp dịch vụ viễn thông di động như Mobifone, Vinaphone, Viettel, Vietnamobile, Gmobile |
3. Mô hình kết nối
Hệ thống kết nối SMS gồm có 2 chiều:
3.1. Chiều nhận MO, khách hàng nhắn tin đến đầu số dịch vụ 6089 theo cú pháp quy định trước
- Tin nhắn MO từ di động của khách hàng đến Telcos.
- Telco gửi MO sang Gateway SMS của EB2B.
- Client gửi MO của EB2B sẽ gửi MO sang Webservice nhận MO của Partner. Nếu thành công, lưu lại MO này vào hệ thống billing của EB2B; nếu không gửi được thì client tự động gửi lại sau một thời gian đặt trước.
- Webservice nhận MO tại Partner sau khi nhận được MO sẽ gửi vào hệ thống xử lý nội dung tin nhắn.
- Kết thúc chiều nhận MO.
3.2. Chiều gửi MT, tin nhắn được gửi đến di động của khách hàng
- Hệ thống xử lý SMS tạo nội dung MT theo yêu cầu và chuyển MT sang cho client gửi MT tại Partner.
- Client gửi MT tại Partner sẽ gửi MT sang Webservice nhận MT tại EB2B. Nếu Webservice nhận MT thành công thì client gửi MT tiến hành lưu MT vào Database logs, dùng cho đối soát sau này. Nếu không thành công thì thực hiện gửi lại sau một khoảng thời gian đặt trước.
- MT được Gateway SMS của EB2B gửi sang Telco, khi gửi thành công sẽ lưu MT vào hệ thống billing. Nếu không thành công thì gửi lại sau một khoảng thời gian định trước.
- Telco gửi MT đến di động của khách hàng.
- Kết thúc quá trình gửi MT.
4. Cấu trúc thông tin trao đổi giữa EB2B và Partner
4.1. Kết nối chiều MO
Kết nối đến Webservice của Partner gồm các trường sau
STT | Tên trường | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1. | User_ID | varchar(15) | Số điện thoại khách hàng |
2. | Service_ID | varchar(10) | Số dịch vụ - 6x89, 996,997,998 … |
3. | Command_Code | varchar(10) | Mã dich vụ - GO, SC, … |
4. | Info | varchar(160) | Nội dung tin nhắn khách hàng gửi đến đầu số |
5. | Request_ID | decimal(10) | Số thứ tự tin nhắn của khách hàng do hệ thống của EB2B sinh ra, tăng dần và duy nhất |
Giá trị trả về:
1: thành công
-1: thất bại
4.2. Kết nối chiều MT
- Khi Partner muốn gửi nội dung phản hồi cho khách hàng, sẽ gửi thông tin qua Web service cho EB2B qua hàm SendSMS. Chi tiết kết nối được mô tả tại địa chỉ: https://sms.etelecom.vn/Webservice/SendMT2.asmx (opens new window) (account truy cập sẽ được cấp sau, địa chỉ có thể bổ sung hoặc thay đổi sang địa chỉ khác tuỳ theo số lượng Partner kết nối và khi phân tải hệ thống)
- Đặc tả: Hàm SendSMS của Web service gồm các trường sau:
STT | Tên trường | Kiểu dữ liệu | Mô tả |
---|---|---|---|
1. | Account_name | varchar(20) | EB2B sẽ cung cấp cho Partner một tài khoản để gửi |
2. | Account_password | varchar(20) | Mật khẩu tài khoản để gửi tin |
3. | User_ID | varchar(15) | Số di động gửi đến (Theo chuẩn quốc tế, bắt đầu bằng 84, không phải là 09xxx hay 01xxx) |
4. | Content | varchar(1000) | Nội dung tin nhắn |
5. | Service_ID | varchar(10) | Số dịch vụ (Các số mà EB2B đang sở hữu: 6x89, 996, 997, 998, 19001255, …). |
6. | Command_Code | varchar(10) | Mã của dịch vụ, mã này sẽ phục vụ cho việc thống kê và quản lý MT phát sinh. Ví dụ: GO, SC … |
7. | Request_ID | decimal(10) | Số thứ tự tin nhắn của khách hàng do EB2B sinh ra. Số này sẽ do EB2B chuyển sang kèm với nội dung SMS của khách hàng ở kết nối chiều MO. Số này dùng để xác định MT này là của MO nào. Trong trường hợp bản tin phát sinh từ đối tác (không có MO) thì request_id được đặt = 0 |
8. | Message_Type | number(1) | Loại tin nhắn, giá trị số này là 0 hoặc 1. Trong đó: 0: SMS phát sinh từ dịch vụ, không tính tiền khách hàng; 1: Có trừ tiền của khách hàng. |
9. | Total_Message | number(2) | 1 (Mặc định) |
10. | Message_Index | number(2) | 1 (Mặc định) |
11. | IsMore | number(1) | 0 |
12. | Content_Type | number(1) | Loại nội dung gửi cho khách hàng (0: Text; 1: ringtone; 2: logo; 4: picture message) |
5. Kết nối chiều MT Brand Name và AlphaSMS giữa EB2B và Partner
EB2B cung cấp dịch vụ Brand Name SMS (tin nhắn thương hiệu) và Alpha SMS (0901800020), nội dung trước khi gửi phải được đăng ký dưới dạng Template với nhà mạng. Phía Partner có thể kết nối API thông qua RESTful API
Mô tả | Chi tiết |
---|---|
JSON end point | https://sms.etelecom.vn/API/Sms/SMSService.svc/ccsms/json |
- Lưu ý: nếu Partner truyền giá trị UUID trong request, EB2B sẽ dùng giá trị này trong cấu trúc Response. Ngược lại, nếu Partner không sử dụng giá trị này thì cần truyền UUID = 0 cho EB2B.
- UUID tham khảo tại: https://www.uuidgenerator.net/ (opens new window) Ví dụ: UUID: 54abc383-9fec-4dc3-aa03-02067dd4dbad
5.1. HTTP Methods
− Tất cả các request được submit thông qua phương thức HTTP POST, và phải thực hiện việc UTF-8 encoding and URL encoded cho tham số.
− Content-Type
cho phương thức POST là application/json
.
5.2. Xác thực
- Tất cả các request đều yêu cầu giá trị cho tham số "api_key" và "api_secret", các giá trị này sẽ được EB2B cung cấp.
5.3. Khách hàng gọi API EB2B để gửi SMS
JSON end point
Cấu trúc Resquest và Response cho JSON như sau:
Gửi SMS với Sender Brandname SMS hoặc AlphaSMS: https://sms.etelecom.vn/API/Sms/SMSService.svc/ccsms/json
Request data Yêu cầu truyền đầy đủ các field như mô tả bên dưới
{
"submission": {
"api_key":"${api_key}",
"api_secret":"${api_secret}",
"sms": [
{
"id":"${UUID}",
"brandname":"${brandname or AlphaSMS}",
"text":"${text}",
"to":"${recipient}",
"feetypeid": "0",
"msgcontenttypeid": "12"
}
]
}
}
// Ví dụ:
// Brandname SMS:
{
"submission": {
"api_key":"54xb216",
"api_secret":"83cz115",
"sms": [{
"id":"54abc383-9fec-4dc3-aa03-02067dd4dbad",
"brandname":"EB2B",
"text":"Hi There !",
"to":"0975783183",
"feetypeid": "0",
"msgcontenttypeid": "12"
}]
}
}
// Alpha SMS:
{
"submission": {
"api_key":"54xb216",
"api_secret":"83cz115",
"sms": [{
"id":"54abc383-9fec-4dc3-aa03-02067dd4dbad",
"brandname":"901800020",
"text":"Day la tin nhan duoc gui ra tu he thong EB2B",
"to":"0975783183",
"feetypeid": "0",
"msgcontenttypeid": "12"
}]
}
}
Mô tả giá trị các fields:
text
: Nội dung tin nhắn, đã được đăng ký template từ trướcfeetypeid
:0
: Gửi bằng brandname1
: Gửi bằng đầu số (6089) - có tính phí MO
msgcontenttypeid
:0
: Gửi tin nhắn không dấu12
: Gửi tin nhắn có dấu
Response data
{
"submission": {
"sms": [
{
"id": "54abc383-9fec-4dc3-aa03-02067dd4dbad",
"status": "",
"error_message": ""
}
]
}
}
6. Kết nối chiều MT Send SMS Bulk API
Khi Partner muốn gửi tin nhắn 1 http request với nhiều SMS có nội dung Chăm sóc khách hàng cho khách hàng, với Sender là Brandname SMS hoặc Alpha SMS, gửi thông qua API EB2B cấp. Link gọi vào
https://sms.etelecom.vn/smsapi/Service.svc/submission
. Giới hạn cho một lần request data với body truyền vào từ 1 đến 100 SMS.SMS mà Partner gửi thông qua API có cấu trúc là JSON. Với
Content-Type
cho phương thức POST làapplication/json
Tham số Mô tả api_key tham số này do EB2B cấp api_secret tham số này do EB2B cấp id mỗi SMS mà Partner truyền vào có id
là duy nhất, EB2B dựa vàoid
này để response về status tương ứng vớiid
gửi sang EB2Bbrandname là thương hiệu (Brandname) đăng ký để gửi tin hoặc Alpha SMS (0901800020) text nội dung tin nhắn cần gửi to số điện thoại nhận tin
Request Data
{
"submission": {
"api_key": "EB2B cấp",
"api_secret": "EB2B cấp",
"sms": [
{
"id": "123",
"brandname": "EB2B",
"text": "EB2B test SMS 1",
"to": "0375388376"
},
{
"id": "124",
"brandname": "EB2B",
"text": "EB2B test SMS 2",
"to": "0966118093"
},
{
"id": "125",
"brandname": "EB2B",
"text": "EB2B test SMS 3",
"to": "0966118092"
},
{
"id": "126",
"brandname": "EB2B",
"text": "EB2B test SMS 4",
"to": "09975783183"
},
{
"id": "127",
"brandname": "EB2B",
"text": "EB2B test SMS 6",
"to": "0586040215"
},
{
"id": "128",
"brandname": "EB2B",
"text": "EB2B test SMS 7",
"to": "0586040216"
},
{
"id": "129",
"brandname": "EB2B",
"text": "EB2B test SMS 8",
"to": "0586040217"
},
{
"id": "130",
"brandname": "EB2B",
"text": "EB2B test SMS 9",
"to": "0586040218"
},
{
"id": "131",
"brandname": "EB2B",
"text": "EB2B test SMS 10",
"to": "0586040219"
},
{
"id": "132",
"brandname": "PHUC",
"text": "EB2B test SMS 11",
"to": "0586040210"
}
]
}
}
Response Data
{
"submission": {
"sms": [
{
"id": "123",
"status": 0,
"error_message": "Thành công"
},
{
"id": "124",
"status": 0,
"error_message": "Thành công"
},
{
"id": "125",
"status": 0,
"error_message": " Thành công"
},
{
"id": "126",
"status": 0,
"error_message": "Thành công"
},
{
"id": "127",
"status": 0,
"error_message": "Thành công"
},
{
"id": "128",
"status": 0,
"error_message": "Thành công"
},
{
"id": "129",
"status": 0,
"error_message": "Thành công"
},
{
"id": "130",
"status": 0,
"error_message": "Thành công"
},
{
"id": "131",
"status": 0,
"error_message": "Thành công"
},
{
"id": "132",
"status": 0,
"error_message": "Thành công"
}
]
}
}
7. Các ký tự đặc biệt
Các ký tự đặc biệt sau được tính 2 ký tự:
^ { } [ ]
~
\
|
\n
8. Quy tắc tách bản tin theo nội dung tin
Khi Partner gửi tin nhắn có chiều dài > 160 ký tự thì tin nhắn được tính như sau:
- 1 SMS: từ 1 đến 160 ký tự.
- 2 SMS: từ 161 ký tự đến 306 ký tự.
- 3 SMS: từ 307 ký tự đến 459 ký tự.
9. Các trạng thái trả về chiều MT dịch vụ Brand Name SMS và Alpha SMS
ID | Mô tả |
---|---|
0 | Gửi thành công |
2 | Lỗi hệ thống |
3 | Sai user hoặc mật khẩu |
4 | IP không được phép |
5 | Chưa khai báo brandname/dịch vụ |
6 | Lặp nội dung |
7 | Thuê bao từ chối nhận tin |
8 | Không được phép gửi tin |
9 | Chưa khai báo template |
10 | Định dạng thuê bao không đúng |
11 | Có tham số không hợp lệ |
12 | Tài khoản không đúng |
13 | Gửi tin: lỗi kết nối |
14 | Tài khoản không đủ |
15 | Tài khoản hết hạn |
16 | Hết hạn dịch vụ |
17 | Hết hạn mức gửi test |
18 | Hủy gửi tin (CSKH) |
19 | Hủy gửi tin (KD) |
20 | Gateway chưa hỗ trợ Unicode |
21 | Chưa set giá trả trước |
22 | Tài khoản chưa kích hoạt |
25 | Chưa khai báo partner cho user |
26 | Chưa khai báo GateOwner cho user |
27 | Gửi tin: gate trả mã lỗi |
31 | Số điện thoại 11 số đã chuyển sang 10 số |