<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: WireShark capture of communication with test.authorize.net in Integration and Testing</title>
    <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/WireShark-capture-of-communication-with-test-authorize-net/m-p/34827#M19246</link>
    <description>&lt;P&gt;During the SSL handshake, does the Authorize.net server require the client to provide a certificate?&lt;/P&gt;</description>
    <pubDate>Mon, 01 Jul 2013 04:29:15 GMT</pubDate>
    <dc:creator>tomemedia</dc:creator>
    <dc:date>2013-07-01T04:29:15Z</dc:date>
    <item>
      <title>WireShark capture of communication with test.authorize.net</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/WireShark-capture-of-communication-with-test-authorize-net/m-p/34774#M19197</link>
      <description>&lt;P&gt;I have a test program that opens a windows socket to test.authorize.net in an effort to process a card-present test. The data are detailed with highlights to show the various parts of the SSL post.&amp;nbsp; Unfortunately, the screen capture images in my Rich Text document twill not paste into this Rich Text document. The comments associated with the screen captures are below.&amp;nbsp; They explain the sequence.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If the actual data or the test program code would be helpful,&amp;nbsp;I could email them. Do not see a way to attach them to this post.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Whatever the C# demo program is doing, I cannot seem to capture it on the LAN with wireshark. I do not observe any activity on 64.94.118.151.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;HERE IS WHERE THE SOCKET CONNECTION IS OPENED SUCCESSFULLY:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;HERE IS THE ACK FROM AUTHORIZE.NET:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;HERE IS SOME INITIAL CONTROL PROTOCOL TO PORT 443 PRIOR TO THE SSL POST:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;HERE IS THE INTERNET PROTOCOL PORTION OF THE SSL MESSAGE:&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;HERE IS THE PROTOCOL DATA HIGHLIGHTED:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;FINALLY HERE IS THE SECURE SOCKETS LAYER&amp;nbsp;HIGHLIGHTED:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;AT SOME POINT LATER, I SEND THE FOLLOWING MESSAGE TO AUTHORIZE.NET WHICH I SUSPECT CLOSES THE CONNECTION WHEN THE PROGRAM TIMES OUT OR IF I END THE DEBUG:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 25 Jun 2013 07:12:40 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/WireShark-capture-of-communication-with-test-authorize-net/m-p/34774#M19197</guid>
      <dc:creator>tomemedia</dc:creator>
      <dc:date>2013-06-25T07:12:40Z</dc:date>
    </item>
    <item>
      <title>Re: WireShark capture of communication with test.authorize.net</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/WireShark-capture-of-communication-with-test-authorize-net/m-p/34815#M19235</link>
      <description>&lt;P&gt;Can you clarify what you are actually asking here? I'm assuming that some code is failing to connect to us, but it is unclear if you are using our sample code, our SDK, or some custom code. It's also not clear what error you are receiving.&lt;/P&gt;</description>
      <pubDate>Fri, 28 Jun 2013 21:29:44 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/WireShark-capture-of-communication-with-test-authorize-net/m-p/34815#M19235</guid>
      <dc:creator>Trevor</dc:creator>
      <dc:date>2013-06-28T21:29:44Z</dc:date>
    </item>
    <item>
      <title>Re: WireShark capture of communication with test.authorize.net</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/WireShark-capture-of-communication-with-test-authorize-net/m-p/34826#M19245</link>
      <description>&lt;P&gt;It seems that I am not posting to https but http, thus there is no response from authorize .net.&amp;nbsp; I have been search for a clear-cut way to turn on SSL in a c++ environment.&amp;nbsp;&amp;nbsp;I've seen some examples and there are&amp;nbsp;several libraries out there which obscure what needs to be done to get the certificate negotiation complete.&amp;nbsp; I'm seeing the problem... but running out of time.&amp;nbsp; For now, I'm trying to figure out how to enable SSL.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#include&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;&amp;lt;string&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;#include&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;&amp;lt;iostream&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;using&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;std::string;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;using&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;namespace&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt; std; &lt;/FONT&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;//needed?&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;#define&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;WIN32_LEAN_AND_MEAN &lt;/FONT&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;// don't know what this is...&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#include&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;&amp;lt;winsock2.h&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;#include&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;&amp;lt;windows.h&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;#include&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;&amp;lt;ws2tcpip.h&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;#include&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;&amp;lt;stdlib.h&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;#include&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;&amp;lt;stdio.h&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;#include&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;&amp;lt;string.h&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;#define&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;DEFAULT_PORT &lt;/FONT&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"443"&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;#define&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;DEFAULT_BUFLEN 512&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;string authnet_server=&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"test.authorize.net"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;string authnet_path=&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"/gateway/transact.dll"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;//string authnet_server="developer.authorize.net";&lt;/P&gt;&lt;P&gt;//string authnet_path="/tools/paramdump/index.php";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;//We create our WSADATA structure which we will use to gather information from the Winsock library&lt;/P&gt;&lt;P&gt;//in this computer. wVers will be used for our version number that we want.&lt;/P&gt;&lt;P&gt;//iError will be used to check for any errors and display a message box if there is any trouble.&lt;/P&gt;&lt;P&gt;int&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;main(){&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;WSADATA t_wsa;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;// WSADATA structure&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;WORD wVers;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;// version number&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt; iError; &lt;/FONT&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;// error number&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;//____________________________________________________________________&lt;/P&gt;&lt;P&gt;// from getaddrinfo example&lt;/P&gt;&lt;P&gt;DWORD dwRetval;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;i = 1;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;struct&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;addrinfo *result = NULL;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;struct&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;addrinfo *ptr = NULL;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;struct&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;addrinfo hints;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;struct&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt; sockaddr_in *sockaddr_ipv4; &lt;/FONT&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;//defines a structure with pointer to socketaddr.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;// struct sockaddr_in6 *sockaddr_ipv6;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;// LPSOCKADDR sockaddr_ip;&lt;/P&gt;&lt;P&gt;// char ipstringbuffer[46];&lt;/P&gt;&lt;P&gt;DWORD ipbufferlength = 46;&lt;/P&gt;&lt;P&gt;//_________________________________________________________________&lt;/P&gt;&lt;P&gt;printf_s(&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"Print test/n"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;); &lt;/FONT&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;//print something...&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;// cannot get message box to work correctly?...&lt;/P&gt;&lt;P&gt;::MessageBox(NULL, (LPCTSTR)&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"message 1"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;, (LPCTSTR)&lt;/FONT&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"message 2"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;, MB_OK);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;// MessageBox(NULL, ("Open the message box "),("message"),MB_OK|MB_SYSTEMMODAL);&lt;/P&gt;&lt;P&gt;// ::MessageBox(NULL, ("message 1"), ("message 2"), MB_OK);&lt;/P&gt;&lt;P&gt;wVers = MAKEWORD(2, 2);&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;// Set the version number to 2.2&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;iError = WSAStartup(wVers, &amp;amp;t_wsa);&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;// Start the WSADATA&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;if&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;(iError != NO_ERROR || iError == 1)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;MessageBox(NULL, (LPCTSTR)&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"Error at WSAStartup()"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;, (LPCTSTR)&lt;/FONT&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"Client::Error"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;, MB_OK|MB_ICONERROR);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;WSACleanup();&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;return&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;0;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;/* Correct version? */&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;if&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;(LOBYTE(t_wsa.wVersion) != 2 || HIBYTE(t_wsa.wVersion) != 2)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;MessageBox(NULL, (LPCTSTR)&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"Error at WSAStartup()"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;, (LPCTSTR)&lt;/FONT&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"Client::Error"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;, MB_OK|MB_ICONERROR);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;WSACleanup();&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;return&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;0;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;//Now let's create our sClient SOCKET. Using socket() function we establish a TCP socket with the standard settings.&lt;/P&gt;&lt;P&gt;//Refer to the MSDN library for more options. We check for any errors and we continue.&lt;/P&gt;&lt;P&gt;SOCKET sClient;&lt;/P&gt;&lt;P&gt;sClient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;if&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;(sClient == INVALID_SOCKET || iError == 1)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;MessageBox(NULL, (LPCTSTR)&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"Invalid Socket!"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;, (LPCTSTR)&lt;/FONT&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"Client::Error"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;, MB_OK|MB_ICONERROR);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;WSACleanup();&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;return&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;0;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;//We establish a SOCKADDR_IN which is a structure used to set the settings of this socket.&lt;/P&gt;&lt;P&gt;//We first memset the sinClient to its own size.&lt;/P&gt;&lt;P&gt;//Then we use the server IP&lt;/P&gt;&lt;P&gt;//(if the server is located on another IP just change the strcpy function, 127.0.0.1 means yourself).&lt;/P&gt;&lt;P&gt;//make sure the server runs at this IP on your computer before you try and test the program.&lt;/P&gt;&lt;P&gt;//how do we set up the IP address &amp;amp; port using getaddrinfo function?&lt;/P&gt;&lt;P&gt;// e.g. set it in a string as xxx.xxx.xxx.xxx rather than the name?&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;char&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;cPORT[50];&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;char&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;cIP[50];&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ZeroMemory(&amp;amp;hints,&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;sizeof&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;(hints));&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;hints.ai_family = AF_UNSPEC;&lt;/P&gt;&lt;P&gt;hints.ai_socktype = SOCK_STREAM;&lt;/P&gt;&lt;P&gt;hints.ai_protocol = IPPROTO_TCP;&lt;/P&gt;&lt;P&gt;strcpy_s (cIP,&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"test.authorize.net"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;); &lt;/FONT&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;//??? correct???&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;// strcpy_s (cIP, "developer.authorize.net"); //??? correct???&lt;/P&gt;&lt;P&gt;strcpy_s (cPORT,&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"443"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;dwRetval = getaddrinfo(cIP,cPORT,&amp;amp;hints,&amp;amp;result);&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;if&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;(dwRetval != 0)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;{printf(&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"getaddrinfo failed error: %d\n"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;, dwRetval);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;WSACleanup();&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;return&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;1;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;for&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;(ptr=result; ptr != NULL; ptr=ptr-&amp;gt;ai_next)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;printf(&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"getaddrinfo response %d\n"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;, i++);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;printf(&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"\tFlags: 0x%x\n"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;, ptr-&amp;gt;ai_flags);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;printf(&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"\tFamily: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;switch&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;(ptr-&amp;gt;ai_family)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;case&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt; AF_UNSPEC: printf(&lt;/FONT&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"Unspecified\n"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;);&lt;/FONT&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;break&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;case&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt; AF_INET: printf(&lt;/FONT&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"AF_INET (IPvc4)\n"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;sockaddr_ipv4 = (&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;struct&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;sockaddr_in *) ptr-&amp;gt;ai_addr;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;printf(&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"\tIPv4 address %s\n"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;, inet_ntoa(sockaddr_ipv4-&amp;gt;sin_addr));&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;break&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;// we have the domain address converted to IP address.&lt;/P&gt;&lt;P&gt;SOCKADDR_IN sinClient;&lt;/P&gt;&lt;P&gt;memset(&amp;amp;sinClient, 0,&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;sizeof&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;(sinClient));&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;sinClient.sin_family = AF_INET;&lt;/P&gt;&lt;P&gt;sinClient.sin_addr.s_addr = inet_addr(inet_ntoa(sockaddr_ipv4-&amp;gt;sin_addr));&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;// Where to start server?&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;sinClient.sin_port = htons(443);&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;// Port&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*&lt;/P&gt;&lt;P&gt;Be sure to also add the sin_family, sin_addr being the IP we just set, and&lt;/P&gt;&lt;P&gt;the htons(443) which means we want to set the socket to port 443.&lt;/P&gt;&lt;P&gt;We connect our socket using our new information to that port and IP.&lt;/P&gt;&lt;P&gt;We check for errors and if everything is fine, we set a success message such as "You are connected!":&lt;/P&gt;&lt;P&gt;*/&lt;/P&gt;&lt;P&gt;// &amp;lt; put in the stuff for ssl to be activated....&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;// if(connect(sClient, (LPSOCKADDR)&amp;amp;sinClient, sizeof(sinClient)) == SOCKET_ERROR)&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;if&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;(connect(sClient, (LPSOCKADDR)&amp;amp;sinClient, &lt;/FONT&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;sizeof&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;(sinClient)) == SOCKET_ERROR)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;/* failed at starting server */&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;MessageBox(NULL, (LPCTSTR)&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"Could not connect to the server!"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;, (LPCTSTR)&lt;/FONT&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"Client::Error"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;, MB_OK|MB_ICONERROR);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;WSACleanup();&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;return&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;0;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;// Now we can send/recv data!&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt; iRet;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;// char cBuffer[600]; //not used, must have been "buffer"?&lt;/P&gt;&lt;P&gt;MessageBox(NULL, (LPCTSTR)&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"You are connected! Sending a message to the server (less than 599 characters)!"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;, (LPCTSTR)&lt;/FONT&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"Client::Server"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;, MB_OK|MB_ICONEXCLAMATION);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;//Now lets create a message for authorize.net&lt;/P&gt;&lt;P&gt;// set up the credit card data&amp;amp;colon;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;char&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;ql[20];&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;std::string querystring =&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"x_cpversion=1.0"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;querystring +=&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"&amp;amp;x_login=25Rm5bXr3"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;querystring +=&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"&amp;amp;x_tran_key=7C64yVEz7rX56658"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;querystring +=&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"x_type=AUTH_CAPTURE"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;querystring +=&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"&amp;amp;x_market_type=2"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;// querystring += "&amp;amp;x_device_type=4";&lt;/P&gt;&lt;P&gt;querystring +=&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"&amp;amp;x_cpversion=1.0"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;querystring +=&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"&amp;amp;x_response_format=1"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;querystring +=&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"&amp;amp;x_track1=%B4111111111111111^CARDUSER/JOHN^1803101000000000020000831000000?"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;querystring +=&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"&amp;amp;x_amount=1.99"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;querystring +=&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"&amp;amp;x_description=CPP Transaction"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;isize = (querystring.length())-1;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;printf(&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"\nlength = %d"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;, isize,&lt;/FONT&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"\n"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;_itoa_s (isize, ql, 10);&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;//gives wrong result....&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;printf(&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"\nql = %s"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;,ql);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;// std::string buffer[512];&lt;/P&gt;&lt;P&gt;// char * Pointer = buffer.c_str();&lt;/P&gt;&lt;P&gt;std::string buffer =&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"POST "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;buffer += authnet_path.c_str();&lt;/P&gt;&lt;P&gt;buffer +=&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;" HTTP/1.0\n"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;buffer +=&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"Host: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;buffer += authnet_server.c_str();&lt;/P&gt;&lt;P&gt;buffer +=&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"\n"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;buffer +=&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"Content-Type: application/x-www-form-urlencoded\n"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;buffer +=&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"Content-Length: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;buffer += ql;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;//querystring.length();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;buffer +=&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"\n\n"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;buffer += (querystring.c_str());&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;printf(&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"\nquerystring length = %d"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;,querystring.length(),&lt;/FONT&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"\n\n"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;printf_s(&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"\nbuffer dump:\n"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;printf(buffer.c_str());&lt;/P&gt;&lt;P&gt;printf(&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"\n"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;printf (&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"buffer length = %d"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;, buffer.length(), &lt;/FONT&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"\n\n"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;//We use send() function to send that message to our socket!&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;iRet = send(sClient, buffer.c_str(), buffer.length(), 0);&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;if&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;(iRet == SOCKET_ERROR)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;MessageBox(NULL, (LPCTSTR)&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"Could not send data!"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;, (LPCTSTR)&lt;/FONT&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"Client::Error"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;, MB_OK|MB_ICONERROR);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;WSACleanup();&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;return&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;0;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;/*&lt;/P&gt;&lt;P&gt;Now we create our cServerMessage buffer which will contain server responses&lt;/P&gt;&lt;P&gt;whenever we receive any information!&lt;/P&gt;&lt;P&gt;Using our while loop we continuously use "recv()" to get any messages the server might be sending us.&lt;/P&gt;&lt;P&gt;If bytes becomes SOCKET_ERROR in our loop, it means we had an error and&lt;/P&gt;&lt;P&gt;should display the appropriate error message.&lt;/P&gt;&lt;P&gt;If the bytes received is 0 or WSAECONNRESET,&lt;/P&gt;&lt;P&gt;we know that we have disconnected and therefore&lt;/P&gt;&lt;P&gt;we should display an error and shut down the program.&lt;/P&gt;&lt;P&gt;*/&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;bytes;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;bytes = SOCKET_ERROR;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;char&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;*cServerMessage;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;cServerMessage =&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;new&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;char&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;[600];&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;while&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;(bytes = recv(sClient, cServerMessage, 599, 0))&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;if&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;(bytes == SOCKET_ERROR)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;char&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;cError[500];&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;sprintf_s(cError,&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"Connection failed, WINSOCK error code: %d"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;, WSAGetLastError());&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;MessageBox(NULL, (LPCTSTR)cError, (LPCTSTR)&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"Client::Error"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;, MB_OK|MB_ICONERROR);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;closesocket(sClient);&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;// Shutdown Winsock&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;WSACleanup();&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;return&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;0;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;if&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;(bytes == 0 || bytes == WSAECONNRESET)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;MessageBox(NULL, (LPCTSTR)&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"Connection Disconnected!"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;, (LPCTSTR)&lt;/FONT&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"Client::Error"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;, MB_OK|MB_ICONERROR);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;closesocket(sClient);&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;// Shutdown Winsock&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;WSACleanup();&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;return&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;0;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;if&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;(bytes &amp;lt; 1)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;Sleep(300);&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;continue&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;/*&lt;/P&gt;&lt;P&gt;If everything goes well we display the message that we receive from the server&lt;/P&gt;&lt;P&gt;and we use Sleep to make sure our program doesn't waste too much CPU resources.&lt;/P&gt;&lt;P&gt;*/&lt;/P&gt;&lt;P&gt;MessageBox(NULL, (LPCTSTR)cServerMessage, (LPCTSTR)&lt;/P&gt;&lt;P&gt;&lt;FONT color="#a31515" size="2"&gt;&lt;FONT color="#a31515" size="2"&gt;"Client::Server Response"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;, MB_OK);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;delete&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;[] cServerMessage;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;cServerMessage =&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;new&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;char&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;[600];&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;Sleep(100);&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;// Don't consume too much CPU power.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;//This section is the end of our program and our clean up in case our messages are finished&lt;/P&gt;&lt;P&gt;//or we are broken out of the receiving loop. Of course there is no proper way to exit this program&lt;/P&gt;&lt;P&gt;//except via Ctrl+Alt+Delete and ending the process.&lt;/P&gt;&lt;P&gt;//The reason being we don't want to over complicate this code for a simple exit method.&lt;/P&gt;&lt;P&gt;//However, it is standard to code the ESC button to exit or create a GUI for this program using the Win32 C++ API.&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;delete&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;[] cServerMessage;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;// Cleanup&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;closesocket(sClient);&lt;/P&gt;&lt;P&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;// Shutdown Winsock&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color="#008000" size="2"&gt;&lt;FONT color="#008000" size="2"&gt;//We use WSACleanup() to make sure we don't have leaks or crashes. &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;WSACleanup();&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" size="2"&gt;&lt;FONT color="#0000ff" size="2"&gt;return&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;0;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;</description>
      <pubDate>Mon, 01 Jul 2013 03:55:58 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/WireShark-capture-of-communication-with-test-authorize-net/m-p/34826#M19245</guid>
      <dc:creator>tomemedia</dc:creator>
      <dc:date>2013-07-01T03:55:58Z</dc:date>
    </item>
    <item>
      <title>Re: WireShark capture of communication with test.authorize.net</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/WireShark-capture-of-communication-with-test-authorize-net/m-p/34827#M19246</link>
      <description>&lt;P&gt;During the SSL handshake, does the Authorize.net server require the client to provide a certificate?&lt;/P&gt;</description>
      <pubDate>Mon, 01 Jul 2013 04:29:15 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/WireShark-capture-of-communication-with-test-authorize-net/m-p/34827#M19246</guid>
      <dc:creator>tomemedia</dc:creator>
      <dc:date>2013-07-01T04:29:15Z</dc:date>
    </item>
    <item>
      <title>Re: WireShark capture of communication with test.authorize.net</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/WireShark-capture-of-communication-with-test-authorize-net/m-p/34832#M19251</link>
      <description>&lt;P&gt;During the SSL handshake, does the Authorize.net server require the client to provide a certificate?&lt;/P&gt;&lt;P&gt;no. It could be call from an application.&lt;/P&gt;</description>
      <pubDate>Mon, 01 Jul 2013 11:50:30 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/WireShark-capture-of-communication-with-test-authorize-net/m-p/34832#M19251</guid>
      <dc:creator>RaynorC1emen7</dc:creator>
      <dc:date>2013-07-01T11:50:30Z</dc:date>
    </item>
  </channel>
</rss>

