การตรวจสอบหมายเลขบัตรประชาชน โดยใช้ 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 ขอบคุณสำหรับบทความดีๆ เหล่านี้
ขึ้นไปด้านบน
