d, Giải pháp sử dụng sóng di động GSM/GPRS
2.2.3.2 Mô tả Webpage nhận MO và trả về MT
Đối tác sẽ xây dựng một trang web để nhận thông tin từ FiboSMSGateway chuyển qua. Các thông tin này bao gồm:
- message: Nội dung tin nhắn của khách hàng. - phone: Số điện thoại của khách hàng nhắn tin.
- service: Mã số dịch vụ của đối tác tại FiboSMSGateway. - port: Đầu số.
- main: Keyword chính .
- sub: Keyword phụ (Tiếp đầu ngữ trong phần “cấu hình tin nhắn đến”).
- guid: ID sms của hệ thống FiboSMSGateway. Được sử dụng để cho đối tác so sánh. Đối tác sẽ lưu ID này vào trong database của mình. Trong trường hợp FiboSMSGateway gọi lại website khách hàng do bị lỗi, khách hàng sẽ dựa vào guid này để biết mình đã insert và xử lý thông tin này vào database của đối tác chưa.
Sau khi nhận các thông tin này, trang web của đối tác sẽ tự xử lý thông tin và trả về nội dung phản hồi cho khách hàng bằng cách in ra trang web đó nội dung theo chuẩn XML document do FiboSMSGateway đặt ra:
<ClientResponse> <Message>
<PhoneNumber>So dien thoai phan hoi</PhoneNumber> <Message>Noi dung phan hoi cho khachhang</Message>
<SMSID> -1</SMSID> <ServiceNo></ServiceNo> <ContentType></ContentType> </Message>
</ClientResponse>
Trong đó, mỗi một phần tử trong thẻ message có chức năng như sau:
- PhoneNumber: Số điện thoại sẽ trả tin phản hồi về (theo chuẩn international, bắt đầu bằng 84)
- ContentType: Loại nội dung gửi cho khách hàng (0: Text; 1: ringtone; 2: logo; 4: picture message, 8: wappush ...). Nếu không cung cấp, mặc định là 0.
Ví dụ:
Trong trường hợp trang web của đối tác có địa chỉ là
http://www.fibosms.com/testservice/smsty.php thì khi có SMS từ khách hàng có số điện thoại 849756XXXXX gửi nội dung “Fibo DL” tới đầu số 8XXX, FiboSMSGateway sẽ gọi trang web xử lý của khách hàng với URL như sau: http://www.fibosms.com/testservice/smsty.php?message=Fibo
DL&phone=849756XXXXX&service=1&port=8XXX
Sau khi xử lý xong, trang web đối tác sẽ in ra nội dung sau: <ClientResponse>
<Message>
<PhoneNumber>849756XXXXX</PhoneNumber>
<Message>Noi dung phan hoi cho khach hang</Message> <SMSID>- 1</SMSID>
<ServiceNo> 1</ServiceNo> <ContentType>0</ContentType> </Message>
</ClientResponse>
FiboSMSGateway sẽ lấy nội dung này và trả về cho khách hàng
Trường hợp gửi tin nhắn dạng wappush:
<ClientResponse> <Message>
<PhoneNumber>849756XXXXX</PhoneNumber>
<Message>Tieu de: http://www.fibosms.com/hinh.jpg</Message> <SMSID>- 1</SMSID>
<ContentType>8</ContentType> </Message>
</ClientResponse>
Mô tả:
- ContentType = 8
- Message: Sẽ có cấu trúc: title:url - Title: là tiêu đề hiển thị.
- Url: đường dẫn đến file cần tải.
- Trong trường hợp trả về nhiều tin, cấu trúc trả về như sau: <ClientResponse> <Message>
<PhoneNumber>849756XXXXX</PhoneNumber>
<Message>Noi dung phan hoi cho khach hang</Message> <SMSID>- 1</SMSID> <ServiceNo> 1</ServiceNo> <ContentType>0</ContentType> </Message> <Message> <PhoneNumber>849756XXXXX</PhoneNumber>
<Message>Noi dung phan hoi cho khach hang</Message> <SMSID>- 1</SMSID> <ServiceNo> 1</ServiceNo> <ContentType>0</ContentType> </Message> <Message> <PhoneNumber>849756XXXXX</PhoneNumber>
<SMSID>- 1</SMSID> <ServiceNo> 1</ServiceNo> <ContentType>0</ContentType>
</Message> </ClientResponse>
Ta sẽ lấy một ví dụ cụ thể để mô tả cách hoạt động của tổng đài:
Ví dụ trong tháng 03 năm 2015, khách hàng có mã khách hàng là khi có nhu cầu tra cứu giá điện thì sẽ nhắn tin theo cú pháp như sau: SMS giadien kh1 03 2015 rồi gửi đến 8085. Trong cú pháp tin nhắn trên thì:
- SMS: cú pháp (bắt buộc).
- Giadien: tiền tố (có thể có hoặc không, nên có). - Kh1: mã khách hàng là kh1.
- 03: tháng 3. - 2015: năm 2015.
Với cú pháp trên khi tin nhắn được gửi đi, tổng đài của fibo sẽ đưa nội dung tin nhắn đến cho trang web xử lý tin nhắn của chúng ta, chúng ta sẽ lấy ra những thông tin cần (mã khách hàng, tháng, năm), sau đó dựa vào những thông tin lấy được, truy vấn giá điện của khách hàng này rồi trả về cho khách hàng. Nội dung trả về phải tuân thủ cú pháp như ở trên.
Để lấy được các giá trị là kh1 03 2015, chúng ta khai báo 1 biến string và request biến message về: string message = Request.QueryString.Get("message"); như vây biến message đã chứa chuỗi SMS tracuu kh1 03 2015, tiếp theo tách chuỗi này cách nhau bởi dấu cách: string[] tach = message.split(‘ ‘); mảng tach bây giờ sẽ chứa giá trị là: tach[0] = SMS, tach[1] = tracuu, tach[2] = kh1, tach[3] = 03, tach[4] = 2015.