Bom dia a todos
Aqui na minha cidade a prefeitura disponibilizou um serviço de entrega da NFse via WS.
Foi disponibilizado um exemplo em PHP e estou tentado modificar para vba
Gostaria da ajuda dos colegas pra saber é possivel.
A resposta que eu obtive da ws é "9999 - Arquivo XML não enviado"
Ex PHP Disponibilizado:
<?php
$URL = 'https://cascavel.atende.net/atende.php?pg=rest&service=WNERestServiceNFSe&cidade=padrao';
$cfile = curl_file_create('c:\arquivo\nf.xml','text/xml','arquivo');
$xmldata = array('xml' => $cfile);
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL, $URL);
curl_setopt_array($curl, Araay(
CURLOPT_URL_POST =>true,
CURLOPT_URL_HEADER =>true,
CURLOPT_URL_RETURNTRANSFER =>true,
CURLOPT_SSL_VERIFYPEER =>true,
CURLOPT_CUSTOMREQUES =>'POST',
curl_setopt($curl,CURLOPT_HTTPHEADER, array(
'Authorization: Basic ' . base64_encode(''11.111.111/1111-11:SENHA1234567'),
'Content-Type: multipar/form-data',
//'Cookie:
));
curl_setopt($curl,CURLOPT_POSTFIELDS, $xmldata);
if (curl_erro($curl)){
echo curl_errno($curl);
echo curl_error($curl);
}
else {
$response = curl_exec($curl);
preg_match_all('')
$cookies = array();
foreach($matchs[1] as $item) {
parse_str($item,$cookie );
$cookies = array_merge($cookies, $cookie);
}
echo $cookies['PHPSESSIID'];
print_r($response);
curl_close($url);
}
?>
O Codigo que estou adaptando:
Function fncEnviarNFse(Xml)
Dim objDom As Object
Dim objXmlHttp As Object
Dim strRet As String
Dim strUrl As String
strUrl = "https://cascavel.atende.net/atende.php?pg=rest&service=WNERestServiceNFSe&cidade=padrao"
Set objDom = CreateObject("MSXML2.DOMDocument")
Set objXmlHttp = CreateObject("MSXML2.XMLHTTP")
' Load XML
objDom.async = False
objDom.LoadXML Xml
' Open the webservice
objXmlHttp.Open "POST", strUrl, False
' Create headings
objXmlHttp.setRequestHeader "Content-Type", "multipar/form-data"
objXmlHttp.setRequestHeader "Authorization", "Basic " + Base64Encode("11.111.111/1111-11:SENHA1234567")
' Send XML command
objXmlHttp.send objDom.Xml
' Get all response text from webservice
strRet = objXmlHttp.responseText
Debug.Print strRet
' Close object
Set objXmlHttp = Nothing
End Function
Aqui na minha cidade a prefeitura disponibilizou um serviço de entrega da NFse via WS.
Foi disponibilizado um exemplo em PHP e estou tentado modificar para vba
Gostaria da ajuda dos colegas pra saber é possivel.
A resposta que eu obtive da ws é "9999 - Arquivo XML não enviado"
Ex PHP Disponibilizado:
<?php
$URL = 'https://cascavel.atende.net/atende.php?pg=rest&service=WNERestServiceNFSe&cidade=padrao';
$cfile = curl_file_create('c:\arquivo\nf.xml','text/xml','arquivo');
$xmldata = array('xml' => $cfile);
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL, $URL);
curl_setopt_array($curl, Araay(
CURLOPT_URL_POST =>true,
CURLOPT_URL_HEADER =>true,
CURLOPT_URL_RETURNTRANSFER =>true,
CURLOPT_SSL_VERIFYPEER =>true,
CURLOPT_CUSTOMREQUES =>'POST',
curl_setopt($curl,CURLOPT_HTTPHEADER, array(
'Authorization: Basic ' . base64_encode(''11.111.111/1111-11:SENHA1234567'),
'Content-Type: multipar/form-data',
//'Cookie:
));
curl_setopt($curl,CURLOPT_POSTFIELDS, $xmldata);
if (curl_erro($curl)){
echo curl_errno($curl);
echo curl_error($curl);
}
else {
$response = curl_exec($curl);
preg_match_all('')
$cookies = array();
foreach($matchs[1] as $item) {
parse_str($item,$cookie );
$cookies = array_merge($cookies, $cookie);
}
echo $cookies['PHPSESSIID'];
print_r($response);
curl_close($url);
}
?>
O Codigo que estou adaptando:
Function fncEnviarNFse(Xml)
Dim objDom As Object
Dim objXmlHttp As Object
Dim strRet As String
Dim strUrl As String
strUrl = "https://cascavel.atende.net/atende.php?pg=rest&service=WNERestServiceNFSe&cidade=padrao"
Set objDom = CreateObject("MSXML2.DOMDocument")
Set objXmlHttp = CreateObject("MSXML2.XMLHTTP")
' Load XML
objDom.async = False
objDom.LoadXML Xml
' Open the webservice
objXmlHttp.Open "POST", strUrl, False
' Create headings
objXmlHttp.setRequestHeader "Content-Type", "multipar/form-data"
objXmlHttp.setRequestHeader "Authorization", "Basic " + Base64Encode("11.111.111/1111-11:SENHA1234567")
' Send XML command
objXmlHttp.send objDom.Xml
' Get all response text from webservice
strRet = objXmlHttp.responseText
Debug.Print strRet
' Close object
Set objXmlHttp = Nothing
End Function