การตรวจสอบหมายเลขบัตรประชาชน โดยใช้ Webservice


หน้าแรก PHP MySQL เกร็ดความรู้ การตรวจสอบหมายเลขบัตรประชาชน โดยใช้ Webservice

             เรื่องการใช้ php เชื่อมต่อระบบ web service เพื่อตรวจสอบหมายเลขบัตรประชาชนกันต่อ ความจริงยังมีบริการอื่นอีกเช่นการตรวจหมายเลขผู้เสียภาษี  สามารถเข้าไปดูรายละเอียดบริการอื่นๆได้ที่   http://www.rd.go.th/webservice/  

เป้าหมายหลักในวันนี้ก็คือการขอใช้บริการตรวจสอบหมายเลขบัตรประจำตัวประชาชน
ทีนี้ถ้าจะอธิบายการทำงานหรือพื้นฐานของ  web service คงจะว่ากันยาวเลย แนะนะให้ไปอ่านบทความได้ที่นี้นะครับ 
http://www.wsiam.com/document/abcwebservices/webservicesabc.jsp

ปกติแล้วเวลาเราทำการสร้างหรืเรียกใช้ web service นั้นเราต้องมีสิ่งต่างๆต่อไปนี้
 1.
UDDI(Universal Description, Discovery and Integration protocol)
 2.WSDL(Web Services Description Language)
 3 SOAP(Simple Object Access Protocol))
 4.XML.(The Extensible Markup Language)
 เป็นอย่างน้อยครับ ใน php  นั้นสนับสนุน การใช้งาน soap อยู่ 2 แบบ
 - SOAP object ใน php version 5
  -NUSOAP Library สามารถ DownLoad ได้ที่ 
http://cvs.sourceforge.net/viewcvs.py/nusoap/lib/nusoap.php
ในที่นี้เราจะใช้ NUSOAP ในการติดต่อ
เมื่อติดตั้ง php อยู่ในเครื่องแล้ว เราควรติดตั้ง extention เพิ่มก็คือ
  libcurl.dll
 copy ได้จาก folder php ที่ต้องการติดตั้ง เอาไปไว้ใน sytem32 แล้วเข้าไปเปิด extention ใน php.ini  (เอาเครื่องหมาย ; ออก) หน้า extension=php_curl.dll 

มาดู code กันเลย

//เรียกใช้  nusoap
include("lib/nusoap.php");
//กำหนด wsdl
$wsdl="
https://rdws.rd.go.th/ServiceRD/
CheckTINPINService.asmx?WSDL
";
//สร้าง soap action เพื่อส่งค่าไปยัง service ตัวใด ของกรมสรรมพากร
$soapaction="
https://rdws.rd.go.th/ServiceRD/
CheckTINPINService/ServicePIN
";
//สร้าง soap client

 $client=new soapclient($wsdl);
// สร้าง message request ส่งไปยัง  service กรมสรรพกร
$document='<ServicePIN xmlns="
anonymousanonymous
5809990008454'">
https://rdws.rd.go.th/ServiceRD/CheckTINPINService">
<username>anonymous</username><password>anonymous
</password>
<PIN>5809990008454</PIN></ServicePIN>'
;
$mysoapmsg=$client->serializeEnvelope($document,''
,array(),'document','literal');
// ส่ง message request 
$response=$client->send($mysoapmsg,$soapaction);
//ตรวจสอบผลการส่ง
if ($client->fault) {
   echo '<h3>Fault</h3><pre>';
   print_r($response);
echo '</pre>';
}

echo "<p>SOAP query</p>";
echo '<pre>' . htmlspecialchars($client->request,
ENT_QUOTES) . '</pre>';
echo "<p>SOAP response</p>";
echo '<pre>' . htmlspecialchars($client->response,
ENT_QUOTES) . '</pre>';
echo '<h2>result</h2><pre>';
//แสดง message response จาก กรมสรรพากร ในรูปแบบ array
print_r($response);

//เข้าถึงค่าที่ต้องการนำมาใช้งาน
if($response['ServicePINResult']['diffgram']
['NewDataSet']['Message']['Code']=="W00000"){
echo "<br>";
echo "<b>".$response['ServicePINResult']['diffgram']
['NewDataSet']['CheckingResult']['ID']."</b>";
echo "<br>";
echo "<b>".$response['ServicePINResult']['diffgram']
['NewDataSet']['CheckingResult']['DigitOk']."</b>";
echo "<br>";
 
}
echo '</pre>';

?>

ครับลองทดลองดูนะครับไม่ยาก แล้วนำมาประยุกต์ใช้งานต่อ code ตัวนี้แค่ทดสอบ
เท่านั้นแหละครับผิดพลาดประการใด ขออภัย

อันนี้ก็เป็นความรู้ที่ คัดลอกมาจาก INTERNET ขอบคุณสำหรับบทความดีๆ เหล่านี้ 



ขึ้นไปด้านบน