public TransactionResult SubmitPaymentTransaction(CheckoutDetails details) { //init result structure TransactionResult ret = new TransactionResult(); //create request content string data = GetRequestData(details); // create webrequest instance HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(ServiceUrl); webRequest.Method = "POST"; webRequest.ContentLength = data.Length; webRequest.ContentType = "application/x-www-form-urlencoded"; // send service request StreamWriter sw = null; try { sw = new StreamWriter(webRequest.GetRequestStream()); sw.Write(data); } finally { if (sw != null) { sw.Close(); } } // read service response AIMResponse aimResponse = null; HttpWebResponse webResponse = null; try { // get response webResponse = (HttpWebResponse)webRequest.GetResponse(); // emit new response aimResponse = new AIMResponse(webResponse.GetResponseStream(), DELIMITER_CHAR); } finally { webResponse.Close(); webRequest.Abort(); } // copy raw service response ret.RawResponse = aimResponse.RawResponse; // read service response status switch (aimResponse[AIMField.ResponseCode]) { case "1": //This transaction has been approved. case "4": //This transaction is being held for review. // check MD5 signature if (!CheckResponseSignature(Username, MD5_Hash, aimResponse[AIMField.TransactionId], details[CheckoutKeys.Amount], aimResponse[AIMField.ResponseSignature])) { throw new Exception(MD5_INVALID_MSG); } // ret.Succeed = true; // ret.TransactionId = aimResponse[AIMField.TransactionId]; // mark transaction as a completed ret.TransactionStatus = TransactionStatus.Approved; // break; case "2": // This transaction has been declined. case "3": // There has been an error processing this transaction. // ret.StatusCode = String.Concat(AuthorizeNetKeys.ErrorPrefix, aimResponse[AIMField.ResponseCode], aimResponse[AIMField.ResponseReasonCode]); // ret.Succeed = false; // ret.TransactionStatus = TransactionStatus.Declined; // break; } // return result return(ret); }
public TransactionResult SubmitPaymentTransaction(CheckoutDetails details) { //init result structure TransactionResult ret = new TransactionResult(); //create request content string data = GetRequestData(details); // create webrequest instance HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(ServiceUrl); webRequest.Method = "POST"; webRequest.ContentLength = data.Length; webRequest.ContentType = "application/x-www-form-urlencoded"; // send service request StreamWriter sw = null; try { sw = new StreamWriter(webRequest.GetRequestStream()); sw.Write(data); } finally { if (sw != null) sw.Close(); } // read service response AIMResponse aimResponse = null; HttpWebResponse webResponse = null; try { // get response webResponse = (HttpWebResponse)webRequest.GetResponse(); // emit new response aimResponse = new AIMResponse(webResponse.GetResponseStream(), DELIMITER_CHAR); } finally { webResponse.Close(); webRequest.Abort(); } // copy raw service response ret.RawResponse = aimResponse.RawResponse; // read service response status switch (aimResponse[AIMField.ResponseCode]) { case "1": //This transaction has been approved. case "4": //This transaction is being held for review. // check MD5 signature if (!CheckResponseSignature(Username, MD5_Hash, aimResponse[AIMField.TransactionId], details[CheckoutKeys.Amount], aimResponse[AIMField.ResponseSignature])) { throw new Exception(MD5_INVALID_MSG); } // ret.Succeed = true; // ret.TransactionId = aimResponse[AIMField.TransactionId]; // mark transaction as a completed ret.TransactionStatus = TransactionStatus.Approved; // break; case "2": // This transaction has been declined. case "3": // There has been an error processing this transaction. // ret.StatusCode = String.Concat(AuthorizeNetKeys.ErrorPrefix, aimResponse[AIMField.ResponseCode], aimResponse[AIMField.ResponseReasonCode]); // ret.Succeed = false; // ret.TransactionStatus = TransactionStatus.Declined; // break; } // return result return ret; }