วันนี้จะมาเขียนถึงวิธีการเขียนต่อกับ AIS CDG ผ่านภาษา PHP นะครับ
สาเหตุที่เขียนเพราะผมต้องการทำ paper online ไว้ด้วย เวลาที่ผมลืม จะได้ย้อนกลับมาดูได้ด้วย

ขั้นตอนที่เราต้องใช้ คือเราต้องมี firsthop_MM7 ก่อน สามารถหาดาวน์โหลดได้จากในหน้า VMAP ของ AIS CP นะครับ
เมื่อเรา extract file .zip ออกมาแล้ว คุณจะพบกับ 5 Folders ดังนี้

อธิบายตาม Folder นะครับ
1. firsthop_MM7 เป็น folder ที่เก็บ class library สำหรับใช้ต่อเข้า AIS CDG ทั้งหมดครับ
2. fs เป็น folder  ที่เอาไว้ save DeliveryReport ครับ
3. inbox อันนี้ผมคิดว่าไม่ได้ใช้นะครับ
4. libext เป็น 3rd Party library ครับ
5. tpls เป็น template สำหรับ SOAP request ครับ

เอาล่ะ มาดูกัน ในขั้นตอนการส่ง MT ไปยัง AIS CDG นั้น คุณต้องกำหนด Parameter ดังนี้

  // create sender Identification
  $si = new firsthop_MM7_SenderIdentification();
  $si->setVASPId(‘xxxxxx’);
  $si->setVASId(‘xxxxx’);
  $si->setPassword(‘yyyyyy’);
  $si->setSenderAddress(‘zzzzz’);

 โดย x คือ เลข 3 ตัว ที่คุณใช้ login เข้า vsmap ครับ เช่น service number คุณคือ 4896666 ก็ต้องตัดตัวหน้าออก คือ 4 จะเหลือ 896666 ให้เราใช้แค่ 3 ตัวหน้าครับ คือ 896 ใส่แทน xxxxx ครับ
และ y ก็คือรหัสผ่านที่ได้มาที่ใช้สำหรับ authorize เข้า AIS CDG ครับ
z ก็คือ service number คุณครับ เช่น 4896666

จากนั้นต้องกำหนดตัว Recipicents คือ ผู้รับข้อความครับ สำหรับ AIS CDG ถ้าเป็น subscription คุณใส่เลขอะไรไปก็ได้ครับ 1 เบอร์ ที่เหลือทั้งหมดใน set group มันจะส่งให้เองครับ แต่ถ้าเป็นการส่ง MT แบบ MO/MT คุณต้องระบุเป็นเบอร์ๆไปครับ แตก array ได้นะครับ

  // create Recipient List
  $recipients = new firsthop_MM7_Recipients();
  $recipients->setTo(array(new firsthop_MM7_Address(‘Number’,$sender)));

จากนั้น ให้คุณ initialize เพื่อจะส่ง SMS ครับ

  // create SMS message object————————————————————————————————
  $msg = new firsthop_MM7_SMS();
  $msg->setSenderIdentification($si);
  $msg->setRecipientAddress($recipients);

จากนั้นกำหนด Parameter ที่จำเป็นสำหรับการส่ง SMS ครับ

  $msg->setSMSText(‘TEST SMS’);
  $msg->setExtraData(‘UserDataEncoding’,'UTF-8′);
หากคุณส่งเป็นภาษาไทย ต้อง set DataEncoding เป็น UNICODE นะครับอย่าลืม แต่ถ้าส่งภาษาอังกฤษให้ใช้ UTF-8 ครับ 
 $msg->setSubject(‘TEST’);
  $msg->setReadReply(‘false’);
กำหนดให้ผู้อ่านต้องกดรับว่าอ่านแล้ว 
  $msg->setDeliveryReport(‘true’);
  $msg->setTransactionID($transactionID);
  $msg->setLinkedID($LinkedID);
  $msg->setExtraData(‘AISVersion’, ’1.0′);
  $msg->setExtraData(‘CCT’, ’10′);
  $msg->setExtraData(‘sender_name’,$sender_name);

ยังมี parameter ที่แถมมานะครับ เช่น ส่ง sms free , กำหนดเลข call center
  //$msg->setExtraData(‘RouterID’,$RouterID);
  //$msg->setExtraData(‘ContentURL’, ‘http://abc.com/image.jpg’);
  //$msg->setExtraData(‘WAPPushText’, ‘ทดสอบบริการ’);
  //$msg->setExtraData(‘call_center_no’, ’029999999′);
  //$msg->setExtraData(‘free_text’,'test free SMS’);

จากนั้นให้ submit เข้าระบบครับ

  $url=’http://10.104.129.229:9500/mm7adapter’;
  // create SOAPClient
  $client =& new firsthop_MM7_SOAPClient($url);
  $mylogger->debug(‘send req to ‘.$url);

  // submit Request
  $res = $client->submitReq($msg); 
  $mylogger->debug(‘message request submited’);
  if(isset($res)) {
    if($client->isFault()) {
   $f = $client->getFault();
   $mylogger->debug(‘Fault Detail: ‘ .$f->getFaultDetail());
    }
    else {
   $mylogger->debug(‘DeliverRespond Status Details: ‘ .$res->getStatusDetails());
   /*$mylogger->debug(‘Message ID: ‘.$res->getMessageID());
   $mylogger->debug( ‘Status Code: ‘.$res->getStatusCode());
   $mylogger->debug( ‘Status Text: ‘.$res->getStatusText());
   $mylogger->debug( ‘Status Details: ‘.$res->getStatusDetails());*/
   return $res->getStatusDetails();
   }
  }

โดย Error กับ Success log จะอยู่ที่ SMSLogs.txt ครับ ลองดูนะครับ ไม่ยากเลย