Authorize.Net Credit Card Processing Integration in ASP.NET
Authorize.Net Credit card processing Integration in ASP.NET
In this post, we will learn how to integrate Authorize.Net credit card processing in ASP.NET.
Prerequisites
Create a sandbox account in Authorize.Net https://developer.authorize.net/sandbox/. After you registered, you will get the API Credentials
- API Login ID
- Transaction Key
- Secret Question
Authorize.Net Test API Credentials
Login URL for Sandbox Account
public class AuthorizePaymentController : Controller
{
//
// GET: /AuthorizePayment/
public ActionResult Index()
{
// 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
String post_url = "https://test.authorize.net/gateway/transact.dll";
Dictionary<string, string> post_values = new Dictionary<string, string>();
//the API Login ID and Transaction Key must be replaced with valid values
post_values.Add("x_login", "API_LOGIN_ID");
post_values.Add("x_tran_key", "TRANSACTION_KEY");
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");
//Credit Card Number
post_values.Add("x_card_num", "4007000000027");
//Expiration Date Card Number
post_values.Add("x_exp_date", "1234");
//Order Amount
post_values.Add("x_amount", "19.99");
post_values.Add("x_description", "Sample Transaction");
post_values.Add("x_first_name", "John");
post_values.Add("x_last_name", "Doe");
post_values.Add("x_address", "1234 Street");
post_values.Add("x_state", "WA");
post_values.Add("x_zip", "98004");
// 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"
String post_string = "";
foreach (KeyValuePair<string, string> post_value in post_values)
{
post_string += post_value.Key + "=" +
HttpUtility.UrlEncode(post_value.Value) + "&";
}
post_string = post_string.TrimEnd('&');
// The following section provides an example of how to add line item details to
// the post string. Because line items may consist of multiple values with the
// same key/name, they cannot be simply added into the above array.
//
// This section is commented out by default.
/*
string[] line_items = {
"item1<|>golf balls<|><|>2<|>18.95<|>Y",
"item2<|>golf bag<|>Wilson golf carry bag, red<|>1<|>39.99<|>Y",
"item3<|>book<|>Golf for Dummies<|>1<|>21.99<|>Y"};
foreach( string value in line_items )
{
post_string += "&x_line_item=" + HttpUtility.UrlEncode(value);
}
*/
// create an HttpWebRequest object to communicate with Authorize.net
HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(post_url);
objRequest.Method = "POST";
objRequest.ContentLength = post_string.Length;
objRequest.ContentType = "application/x-www-form-urlencoded";
// post data is sent as a stream
StreamWriter myWriter = null;
myWriter = new StreamWriter(objRequest.GetRequestStream());
myWriter.Write(post_string);
myWriter.Close();
// returned values are returned as a stream, then read into a string
String post_response;
HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();
using (StreamReader responseStream = new StreamReader(objResponse.GetResponseStream()))
{
post_response = responseStream.ReadToEnd();
responseStream.Close();
}
// the response string is broken into an array
// The split character specified here must match the delimiting character specified above
Array response_array = post_response.Split('|');
// the results are output to the screen in the form of an html numbered list.
var result = "<OL> \n";
foreach (string value in response_array)
{
result = result + "<LI>" + value + " </LI> \n";
}
result = result + "</OL> \n";
// 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
return View();
}
}
The post Authorize.Net Credit card processing Integration in ASP.NET appeared first on Venkat Baggu Blog.