- เครดิต
- 27
- เพื่อน
- ทักทาย
- บล็อก
- อัลบั้ม
- โพสต์
- กระทู้
- แชร์
- สำคัญ
- สิทธิ์อ่าน
- 10
- จำนวนผู้ติดตาม
- จำนวนผู้กำลังติดตาม
- เพศ
- ไม่บอก
|
แก้ไขครั้งสุดท้ายโดย bitsCAD เมื่อ 2013-3-30 07:59
sms gateway คือผู้ให้บริการส่ง sms ผ่านระบบ internet โดยที่ผู้ให้บริการจะคิดค่าบริการต่อการส่ง 1 sms อยู่ที่ไม่เกิน 1 บาท โดยที่หลายๆเจ้าเปิดให้เราสามารถใช้โค้ดจากเว็บของเราส่งค่าบางอย่างเข้าไปยังเซิฟเวอร์ของผู้ให้บริการ ด้วยวิธีการ GET หรือ POST ไปยัง url ที่ผู้ให้บริการระบุบางเจ้าอาจจะมีโค้ดตัวอย่างเป็นฟังก์ชั่นให้เอามาใช้กันได้เลย เรียกกันติดปากว่า API บางเจ้าก็ให้แค่รูปแบบ url มา ปัญหาของผมอยู่ตรงนี้แหละคับ เพราะลูกค้าของผมดันไปซื้อแพคเกจจากผู้ให้บริการที่มีแต่รูปแบบ url มาให้เท่านั้นครับ
เข้าเรื่องซะที เนื่องจากเค้าไม่มี api ให้ใช้ เอทำไงดีหว่า...สุดท้ายก็เลยรวบรวมความรู้ทั้งหมด(อันมีอยู่น้อยนิด) เขียน api ขึ้นมาใช้งานเองคับ
ตอนนี้ผมมีรูปแบบของ url ที่ผู้ให้บริการให้มาดังนี้
http://mailbit.co.th/Scripts/mgrqispi.dll?Appname=Port2SMS&prgname=HTTP_SimpleSMS1&AccountID=<AccountID>&UserID=<UserID>&UserPass=<UserPass>&Phone=<PhoneNumber>&Text=<Text>&Sender=<Sender>
*ขออนุญาติโพส url จริง(เจ้านี้ราคาถูกมาก)ไม่ได้เกี่ยวข้องอะไรกะผมนะคับลูกค้าซื้อมาให้ใช้เลยยกตัวอย่างเฉยๆใครจะใช้บริการเจ้าใหนก็แล้วแต่นะครับผมเพียงนำเสนอหลักการเท่านั้น
จากที่ผมทำสีแดงไว้นั้นคือตัวแปรทั้งหมดที่เราจะต้องที่เราจะต้องแทนค่าลงไป
<AccountID>,<UserID>,<UserPass> เราจะได้รับหลังจากทำการซื้อแพคเกจแล้ว(เจ้าอื่นอาจจะมีแค่ Username,Password)
<PhoneNumber> คือหมายเลขโทรศัพท์ของผู้รับ sms
<Text> คือเนื้อหาที่เราต้องการส่ง
<Sender> คือชื่อที่จะแสดงให้ผู้รับเห็นว่าใครส่งมา(บางเจ้า/บางแพคเกจ จะไม่มีตัวเลือกนี้แต่จะแสดงเป็นหมายเลขโทรศัพท์ของ gateway ที่ส่งออกไป)
ตัวอย่าง url ที่ส่งได้จริงๆ เพียงแค่ก็อปแล้ววางลงในช่อง address bar หรือทำเป็นลิงค์ก็สมารถส่งได้เลย
http://mailbit.co.th/Scripts/mgrqispi.dll?Appname=Port2SMS&prgname=HTTP_SimpleSMS1&AccountID=1234&UserID=5678&UserPass=91011&Phone=66876543210&Text=Test Send Message From sms gateway&Sender=M_IScyber
เจ้าของหมายเลข 0876543210 ก็จะได้รับ sms ข้อความว่า Test Send Message From sms gateway และเห็นชื่อผู้ส่งเป็น M_IScyber
*เฉพาะเจ้านี้จะต้องกรอก 66 แทน 0 ตัวหน้าครับ(ซึ่ง 66 ก็คือรหัสประเทศของไทยครับ)
การที่เราจะทำลิงค์หรือ redirect ไปที่ url ข้างต้นจะทำให้สมาชิกของเว็บเราสามารถมองเห็นค่าทั้งหมดที่เราส่งให้กับเกทเวย์ สำหรับคนที่พอมีความรู้ก็จะเดาได้ว่าแค่เปลี่ยนเบอร์โทร,เนื้อหา ก็สามารถส่งข้อความให้ใครก็ได้ ซึ่งแบบนี้ถือว่าความปลอดภัยเป็น 0 วันดีคืนดีเครดิตที่เราซื้อมาเป็นร้อยเป็นพัน อาจจะลดฮวบๆทั้งๆที่เวปไม่มีการเคลื่อนไหวเลยก็เป็นได้
ดังนั้นเราจะต้องแอบเปิด url ข้างบนแบบลับเฉพาะคนรู้ใจ (ว่าไปนั่น 555) ด้วยโค้ดด้านล่างนี้ครับ (หลอกให้อ่านมาตั้งยืดยาวเนื้อหาจริงๆมีแค่นี้แหละ 555)- [size=5]<?php
- //ฟังก์ชั่นสำหรับส่ง sms
- function sendsms($AccountID,$UserID,$UserPass,$Phone,$Text,$Sender){
- $url="http://mailbit.co.th/Scripts/mgrqispi.dll?Appname=Port2SMS&prgname=HTTP_SimpleSMS1&AccountID=$AccountID&UserID=$UserID&UserPass=$UserPass&Phone=$Phone&Text=$Text&Sender=$Sender";
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_URL, $url);
- $ressult=curl_exec($ch);
- return $result;
- }
- //วิธีเรียกใช้
- $AccountID="1234";
- $UserID="5678";
- $UserPass="91011";
- $Phone="66876543210";
- $Text="Test Send Message From sms gateway";
- $Sender="M_IScyber";
- $result=sendsms($AccountID,$UserID,$UserPass,$Phone,$Text,$Sender);
- echo $result;
- /*
- ตัวอย่างผลลัพธ์ที่ได้จากการใช้ฟังก์ชั่น :
- OK: RequestID=123456 ผ่าน
- Error: Authentication พิสูจน์ตัวตนไม่ผ่าน
- Error: Account is not active แอคเคาท์ยังไม่แอคทีพ
- Error: empty Phone_Number ไม่ได้ส่งหมายเลขโทรศัพท์ของผู้รับ
- Error: empty Text ไม่ได้ส่งเนื้อหา
- Error: Credit หมดโควตาแพคเกจที่ซื้อมาแล้ว
- */
- ?>[/size]
คัดลอกไปที่คลิปบอร์ด |
คะแนน
-
ดูบันทึกคะแนน
|
|
|
|
|
|