Authorize.net is very easy to use. All you need to do to process maps is send an https message in XML format. Authorize.net has a few examples. For card readers, most card readers emulate keystrokes. The selected map looks something like this:
'%B5500692805076849^SMITH/STEPHEN A^12041010000000 00969000000?;5500692805076849=12041010000000969?`
Then analyze the card number "5500692805076849", "SMITH / STEPHEN A" and the expiration date "1204", and transfer them to Authorize.net
Private Sub cmdCharge_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCharge.Click ' By default, this sample code is designed to post to our test server for ' developer accounts: https://test.authorize.net/gateway/transact.dll ' for real accounts (even in test mode), please make sure that you are ' posting to: https://secure.authorize.net/gateway/transact.dll cmdCharge.Enabled = False lblResponse.Text = "Processing....." Application.DoEvents() Dim post_url post_url = "https://test.authorize.net/gateway/transact.dll" Dim post_values As New Dictionary(Of String, String) 'the API Login ID and Transaction Key must be replaced with valid values post_values.Add("x_login", "XXXXXXX") post_values.Add("x_tran_key", "XXXXXXXXX") 'post_values.Add("x_test_request", "TRUE") post_values.Add("x_delim_data", "TRUE") post_values.Add("x_delim_char", "|") post_values.Add("x_relay_response", "FALSE") post_values.Add("x_type", "AUTH_CAPTURE") post_values.Add("x_method", "CC") post_values.Add("x_card_num", txtCard.Text) post_values.Add("x_exp_date", txtExp.Text) post_values.Add("x_amount", txtAmount.Text) 'post_values.Add("x_description", "Sample Transaction") post_values.Add("x_first_name", txtFirst.Text) post_values.Add("x_last_name", txtLast.Text) 'post_values.Add("x_address", "1234 Street") 'post_values.Add("x_state", "WA") post_values.Add("x_zip", txtZip.Text) post_values.Add("x_card_code", txt3CV.Text) ' Additional fields can be added here as outlined in the AIM integration ' guide at: http://developer.authorize.net ' This section takes the input fields and converts them to the proper format ' for an http post. For example: "x_login=username&x_tran_key=a1B2c3D4" Dim post_string As String = "" For Each field As KeyValuePair(Of String, String) In post_values post_string &= field.Key & "=" & field.Value & "&" Next ' post_string = Left(post_string, Len(post_string) - 1) post_string = post_string.Substring(0, Len(post_string) - 1) ' create an HttpWebRequest object to communicate with Authorize.net Dim objRequest As HttpWebRequest = CType(WebRequest.Create(post_url), HttpWebRequest) objRequest.Method = "POST" objRequest.ContentLength = post_string.Length objRequest.ContentType = "application/x-www-form-urlencoded" ' post data is sent as a stream Dim myWriter As StreamWriter = Nothing myWriter = New StreamWriter(objRequest.GetRequestStream()) myWriter.Write(post_string) myWriter.Close() ' returned values are returned as a stream, then read into a string Dim objResponse As HttpWebResponse = CType(objRequest.GetResponse(), HttpWebResponse) Dim responseStream As New StreamReader(objResponse.GetResponseStream()) Dim post_response As String = responseStream.ReadToEnd() responseStream.Close() ' the response string is broken into an array Dim response_array As Array = Split(post_response, post_values("x_delim_char"), -1) ' the results are output to the screen in the form of an html numbered list. Select Case response_array(0) Case "1" 'Approved lblResponse.Text = "Transaction Approved. " & vbCrLf & response_array(4) Case "2" 'Declined lblResponse.Text = "Transaction Declined. " & vbCrLf & response_array(3) Case "3" 'Error lblResponse.Text = "Transaction Error. " & vbCrLf & response_array(3) Case "4" 'Held for Review lblResponse.Text = "Transaction Held. " & vbCrLf & response_array(3) End Select ' individual elements of the array could be accessed to read certain response ' fields. For example, response_array(0) would return the Response Code, ' response_array(2) would return the Response Reason Code. ' for a list of response fields, please review the AIM Implementation Guide cmdCharge.Enabled = True End Sub