When I call the api to send the invoice without a program middleware .
But when I send the invoice through middleware , it is sent because all the security data is inside this program
This My Code
str destinationUrl = 'api.invoicing.com/.../submission' requestXml, responseXml;
System.Net.HttpWebRequest request;
System.Net.HttpWebResponse response;
CLRObject clrObj;
System.Byte[] bytes;
System.Text.Encoding utf8;
System.IO.Stream requestStream, responseStream;
System.IO.StreamReader streamReader;
System.Exception ex;
System.Net.WebHeaderCollection httpHeader;
str byteStr;
System.Byte[] byteArray;
System.IO.Stream stream;
System.IO.Stream dataStream;
System.Net.NetworkCredential credential;
str token = "xxxxxx" ; // password token
str clientID = "xxxxxxxxxx"; // clientID
str PrimarySecret = "xxxxxxxxxxx"; // clientSecret 1
str SecondSecret = "xxxxxxxxxxx"; // clientSecret 2
try
{
System.Net.ServicePointManager::set_SecurityProtocol(System.Net.SecurityProtocolType::Tls12);
new InteropPermission(InteropKind::ClrInterop).assert();
httpHeader = new System.Net.WebHeaderCollection();
clrObj = System.Net.WebRequest::Create(destinationUrl);
request = clrObj;
utf8 = System.Text.Encoding::get_UTF8();
bytes = utf8.GetBytes(requestXml);
request.set_KeepAlive(true);
request.set_ContentType("application/xml");
utf8 = System.Text.Encoding::get_UTF8();
// byteArray = utf8.GetBytes(clientID+":"+PrimarySecret);
// byteStr = System.Convert::ToBase64String(byteArray);
httpHeader.Add("client_id"+":"+ clientID);
httpHeader.Add("client_secret" +":"+ PrimarySecret);
// httpHeader.Add("client_secret" +":"+ SecondSecret);
httpHeader.Add("Authorization",'Basic' + token);
request.set_UseDefaultCredentials(true);
request.set_PreAuthenticate(true);
request.set_ContentType("application/xml; encoding='utf-8'");
request.set_ContentLength(bytes.get_Length());
request.set_Method("POST");
request.set_Accept("Accept");
request.set_Timeout(3600);
request.set_Headers(httpHeader);
requestStream = request.GetRequestStream();
requestStream.Write(bytes, 0, bytes.get_Length());
response = request.GetResponse();
responseStream = response.GetResponseStream();
streamReader = new System.IO.StreamReader(responseStream);
responseXml = streamReader.ReadToEnd();
info(responseXml);
}
catch (Exception::CLRError)
{
//bp deviation documented
ex = CLRInterop::getLastException().GetBaseException();
error(ex.get_Message());
}
requestStream.Close();
streamReader.Close();
responseStream.Close();
response.Close();