|
|
|
SOAP-ERROR: Parsing WSDL: Couldn load from แก้ยังไงครับ |
|
|
|
|
|
|
|
Code (PHP) ที่เขียน
<?php
try {
$wsdlUrl = 'https://insurance.com/WS_Policy.asmx?wsdl';
$local_cert = 'catca_root.cer';
$soapClientOptions = array(
'soap_version' => SOAP_1_2,
'trace' => 1,
'exceptions' => 1,
//'stream_context' => $context,
'stream_context' => stream_context_create(array(
'ssl' => array(
'cafile' => $local_cert,
),
)),
'local_cert' => $local_cert,
'cache_wsdl' => WSDL_CACHE_NONE
);
$client = new SoapClient($wsdlUrl, $soapClientOptions);
// Define a function that converts array to xml.
function arrayToXml($array, $rootElement = null, $xml = null) {
$_xml = $xml;
// If there is no Root Element then insert root
if ($_xml === null) {
$_xml = new SimpleXMLElement($rootElement !== null ? $rootElement : '<Compulsory/>');
}
// Visit all key value pair
foreach ($array as $k => $v) {
// If there is nested array then
if (is_array($v)) {
// Call function for nested array
arrayToXml($v, $k, $_xml->addChild($k));
}
else {
// Simply add child element.
$_xml->addChild($k, $v);
}
}
return $_xml->asXML();
}
$XML_Data = array(
'Policys' => array(
'AgentCode' => 'XXXXX', //รหัสตัวแทน
'ContractNo' => '2623543', //เลขที่สัญญา ต้องไม่ซ้ำกัน
'NotDate' => '20190425', //วันที่รับแจ้ง ex.= yyyyMMdd
'NotTime' => '10:45', //เวลารับแจ้ง ex.= 18:30
'CarCode' => '1.10', //รหัสรถ
'OldPolicy' => '', //เลขกรมธรรม์เดิม
'Chasis' => 'MR053HY4204447AS62', //เลขคสซี
'Engine' => '1NZX447125', //เลขเครื่อง
'CarYear' => '2013', //ปีรถ ค.ศ. yyyy
'CarProvince' => 'กท', //จังหวัดทะเบียน แบบย่อ ex.= กท
'CarLicense' => 'ฆฆ 3636', //ทะเบียนรถ(ไม่รวมจังหวัดทะเบียน) ex.= กส 1111
'CarWeight' => '1100', //น้ำหนักรถ
'CarSeatNo' => '7', //ที่นั่ง
'CarCC' => '1497', //ซีซี
'CarBrand' => 'TOYOTA', //ยี่ห้อรถ ex.= TOYOTA
'CarModel' => 'VIOS', //รุ่นรถ ex.= VIOS
'CarBody' => '',
'PreNet' => '600.00',
'PreStm' => '3',
'PreTax' => '42.21',
'PreGrs' => '645.21',
'EffFdate' => '20190425', //วันเริ่มคุ้มครอง
'EffTdate' => '20200425', //วันสิ้นสุดคุ้มครอง
'CustType' => '1',
'CustPre' => 'นาย',
'CustFname' => 'ฉลอง',
'CustLname' => 'กันใหญ่',
'CustBirthdate' => '',
'CustGender' => '',
'AddressNo' => '99/999',
'MooNo' => '',
'Moobarn' => '',
'Soi' => 'สายไหม99',
'Road' => 'สายไหม',
'Tumbon' => 'สายไหม',
'Amphur' => 'สายไหม',
'Province' => 'กรุงเทพมหานคร',
'ZipCode' => '10200',
'CustPhone' => '0954463522',
'CustIdCard' => '1310500369999',
'CustBrnNo' => '',
),
);
$params = array(
'UserName' => 'XXXXX',
'Password' => 'XXXXX',
'CompanyCode' => 'SMK',
'BatchNo' => 'CHAT003',
'ContractDate' => '201904251045',
'XML_Data' => arrayToXml($XML_Data),
);
$result = $client->Get_Policys($params);
print_r($result);
}
catch(Exception $e) {
echo $e->getMessage();
}
?>
หลังจากรัน
Error : SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://insurance.com/WS_Policy.asmx?wsdl' : failed to load external entity "https://insurance.com/WS_Policy.asmx?wsdl"
PHP ติดตั้ง 7.0.33
เปิด extension
extension=soap.dll
extension=openssl.dll
extension=curl.dll
extension=xmlrpc.dll
แล้ว
Tag : PHP, Web Services, Laravel Framework, CodeIgniter, Zend Framework, FuelPHP
|
|
|
|
|
|
Date :
2019-04-25 11:49:43 |
By :
yuranansam |
View :
1919 |
Reply :
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันนี้เดาเอานะครับ
น่าจะลอง allow cross domain ดูนะครับ
ผมก็ไม่ค่อยคล่อง soap ไม่ค่อยได้ใช้
|
|
|
|
|
Date :
2019-04-30 11:25:17 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
วิธีนี้ช่วงหลังๆ ไม่นิยมแล้วครับ ไปใช้เป็น WebApi แทนครับ
|
|
|
|
|
Date :
2019-04-30 15:19:24 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|