तो कुछ कारणों से आप साबुन का उपयोग नहीं कर सकते हैं अपने सर्वर पर (उपलब्ध नहीं है, जो कुछ भी) तो के लिए file_get_contents आपका मित्र है।
के नीचे कार्यान्वयन SOAP, कर्ल, XMLParser (सरल या नहीं) पर पर निर्भर नहीं है। यह मानक PHP कोड है जो आपके पास होने वाले किसी भी PHP संस्करण पर काम करना चाहिए।
फ़ंक्शन निम्न आइटम:
- countryCode
- VATNUMBER
- requestDate
- वैध
- नाम
- पता
ठीक है, मुझे आशा है कि यह मदद करता है :-)
<?php
DEFINE ('VIES_URL', 'http://ec.europa.eu/taxation_customs/vies/services/checkVatService');
/**
* VIES VAT number validation
*
* @author Eugen Mihailescu
*
* @param string $countryCode
* @param string $vatNumber
* @param int $timeout
*/
function viesCheckVAT($countryCode, $vatNumber, $timeout = 30) {
$response = array();
$pattern = '/<(%s).*?>([\s\S]*)<\/\1/';
$keys = array (
'countryCode',
'vatNumber',
'requestDate',
'valid',
'name',
'address'
);
$content = "<s11:Envelope xmlns:s11='http://schemas.xmlsoap.org/soap/envelope/'>
<s11:Body>
<tns1:checkVat xmlns:tns1='urn:ec.europa.eu:taxud:vies:services:checkVat:types'>
<tns1:countryCode>%s</tns1:countryCode>
<tns1:vatNumber>%s</tns1:vatNumber>
</tns1:checkVat>
</s11:Body>
</s11:Envelope>";
$opts = array (
'http' => array (
'method' => 'POST',
'header' => "Content-Type: text/xml; charset=utf-8; SOAPAction: checkVatService",
'content' => sprintf ($content, $countryCode, $vatNumber),
'timeout' => $timeout
)
);
$ctx = stream_context_create ($opts);
$result = file_get_contents (VIES_URL, false, $ctx);
if (preg_match (sprintf ($pattern, 'checkVatResponse'), $result, $matches)) {
foreach ($keys as $key)
preg_match (sprintf ($pattern, $key), $matches [2], $value) && $response [$key] = $value [2];
}
return $response;
}
print_r (viesCheckVAT ('RO', '19386256'));
?>
स्रोत
2015-04-29 22:48:24
बहुत धन्यवाद, मैंने संख्या मान्य होने पर तुलना करने के लिए $ प्रतिक्रिया पर preg_match फ़ंक्शन का उपयोग किया। अब यह वास्तव में काम करने के लिए एक वैध संख्या की आवश्यकता है। कोड: यदि (preg_match ("/ नहीं, अवैध वैट नंबर/i", "$ प्रतिक्रिया")) { गूंज "अमान्य संख्या"; } अन्य { गूंज "मान्य संख्या"; } – Minucioso
यह काफी आसान लग रहा है। हालांकि अगर उनकी वेबसाइट कभी बदलती है तो यह टूट जाएगी। क्या कोई आधिकारिक एपीआई है? – Johan
@Johan यह आलेख वर्णन करता है कि VIES वैट SOAP वेब सेवा का उपयोग कैसे करें: http://www.webmastersdiary.com/2011/12/php-vies-vat-number-validation-european.html –