text
hello kentico dev i create a new web part in kentico for form to pass data to authorize.net and it works but i want save the data in custom table too what is the methode thanks
protected void Submit(object sender, EventArgs e)
{
//String post_url = "https://test.authorize.net/gateway/transact.dll";
String post_url = "https://secure.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", AuthorizeNetLoginName);
post_values.Add("x_tran_key", AuthorizeNetTransactionKey);
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", Credit.Text);
//Expiration Date Card Number
string expire = month.SelectedValue + "" + year.SelectedValue;
post_values.Add("x_exp_date", expire);
//Order Amount
post_values.Add("x_amount", AmountText.Text);
string SelectedEndPoint = currentRadioButtonList.SelectedItem.Value.ToString();
string Description = SelectedEndPoint + " - " + comment.Text;
post_values.Add("x_description", Description);
// comment = Fund + comment
post_values.Add("x_first_name", First.Text);
post_values.Add("x_last_name", Last.Text);
post_values.Add("x_address", Address1.Text);
post_values.Add("x_state", State.Text);
post_values.Add("x_email", Email.Text);
post_values.Add("x_Country", Country.SelectedValue);
post_values.Add("x_Phone", Phone.Text);
post_values.Add("x_city", City.Text);
post_values.Add("x_zip", Postal.Text);
Random r = new Random();
int n = r.Next();
string InvoiceNumber = n + " - " + DateTime.Now.ToString("dd MM yyyy").Replace(" ","");
post_values.Add("x_invoice_num", InvoiceNumber);
post_values.Add("x_card_type", Card.SelectedValue);
post_values.Add("x_card_code", Security.Text);
var id = First.Text + Last.Text + Postal.Text;
post_values.Add("x_cust_id", id);
// 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
const SslProtocols _Tls12 = (SslProtocols)0x00000C00;
const SecurityProtocolType Tls12 = (SecurityProtocolType)_Tls12;
ServicePointManager.SecurityProtocol = Tls12;
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
}