private PeruPaymentGateWayInvoker(string paymentMethod, decimal amount) : base("PeruPaymentGateway", paymentMethod, amount) { CreditPayment_V01 payment = HttpContext.Current.Session[PaymentGatewayInvoker.PaymentInformation] as CreditPayment_V01; if (null != payment) { string invokerType = string.Empty; switch (payment.Card.IssuerAssociation) { case IssuerAssociationType.Visa: { invokerType = "MultiMerchantVisaNetPaymentGatewayInvoker"; HttpContext.Current.Session.Remove(PaymentGatewayInvoker.PaymentInformation); break; } case IssuerAssociationType.MasterCard: { invokerType = "PuntoWebPaymentGatewayInvoker"; break; } } object[] args = new object[] { paymentMethod, amount }; Type type = Type.GetType(string.Concat(RootNameSpace, invokerType), true, true); _theInvoker = Activator.CreateInstance(type, BindingFlags.NonPublic | BindingFlags.Instance, null, args, null) as PaymentGatewayInvoker; } }
/// <summary>Creates a PaymentGateway Invoker for the appropriate agency</summary> /// <param name="paymentMethod"></param> /// <param name="amount"></param> /// <returns></returns> public static PaymentGatewayInvoker Create(string paymentMethod, decimal amount) { string locale = Thread.CurrentThread.CurrentCulture.Name; PaymentGatewayInvoker invoker = null; var config = HLConfigManager.Configurations.PaymentsConfiguration; try { if (config.HasPaymentGateway && !string.IsNullOrEmpty(config.PaymentGatewayInvoker)) { var args = new object[] { paymentMethod, amount }; string invokerType = config.PaymentGatewayInvoker; var type = Type.GetType(string.Concat(RootNameSpace, invokerType), true, true); invoker = Activator.CreateInstance(type, BindingFlags.NonPublic | BindingFlags.Instance, null, args, null) as PaymentGatewayInvoker; } else { //LogBlindError(string.Empty, string.Format(ErrorMissingGateWayConfigInfo, locale, paymentMethod)); LoggerHelper.Error(string.Format(ErrorMissingGateWayConfigInfo, locale, paymentMethod)); } invoker.GetOrderNumber(); return(invoker); } catch (Exception ex) { //LogBlindError((null != invoker) ? invoker._gatewayName : config.PaymentGatewayInvoker.Replace("Invoker", string.Empty), ex.Message); LoggerHelper.Error(string.Format(ErrorFailedToInstantiateGatewayInvoker, config.PaymentGatewayInvoker, ex.Message)); throw ex; } }
public override void Submit() { string redirectUrl = _configHelper.GetConfigEntry("paymentGatewayUrl"); // string returnUrl = string.Concat(RootUrl, _config.PaymentGatewayReturnUrlApproved, "?Agency=PagoSeguro"); string merchantId = _configHelper.GetConfigEntry("paymentGatewayMerchantId"); //MerchantId string orderNumber = this._orderNumber; string pagoSeguroRedirectUrl = string.Empty; pagoSeguroRedirectUrl = GenerateUrl(redirectUrl, merchantId, orderNumber); // Post and redirect to PagoSeguro website HttpContext.Current.Response.Clear(); StringBuilder sb = new StringBuilder(); sb.Append("<html>"); sb.AppendFormat(@"<body onload='document.forms[""form""].submit()'>"); sb.AppendFormat("<form name='frmSolicitudPago' action='{0}' method='post'>", pagoSeguroRedirectUrl); sb.Append("</form>"); sb.Append("</body>"); sb.Append("</html>"); string response = sb.ToString(); PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Request, this.OrderNumber, this._distributorId, this._gatewayName, PaymentGatewayRecordStatusType.Unknown, response); HttpContext.Current.Response.Write(response); HttpContext.Current.Response.End(); }
public string GetConfigEntry(string entryName, bool isRequired) { string entry = string.Empty; try { entry = _configEntries[entryName]; if (string.IsNullOrEmpty(entry) && isRequired) { throw new ApplicationException(string.Format(ErrorConfigEntryFoundButHadNoData, entryName)); } } catch (Exception ex) { if (isRequired) { string error = string.Format(ErrorMissingGateWayExternalConfigInfo, Thread.CurrentThread.CurrentCulture.Name, entryName, ex.Message); PaymentGatewayInvoker.LogBlindError(error); //LoggerHelper.Error(error, LoggingSource); LoggerHelper.Error(error); //write to eventlog anyway. throw; } } return(entry); }
private string GetResult() { string cert = string.Empty; cert = GetConfigEntry("paymentGatewayCertificate"); var sortedDict = new SortedDictionary <string, string>(StringComparer.Ordinal); NameValueCollection nvc = new NameValueCollection(); foreach (string keyItem in PostedValues.AllKeys) // We need to change to post for testing in BETA { string value = PostedValues[keyItem]; string key = keyItem.ToString(); if (key.Contains("vads_")) { sortedDict.Add(key, value); } } string resultToCompare = string.Empty; string signedResultToCompare = string.Empty; // retrieve values: foreach (KeyValuePair <string, string> kvp in sortedDict) { resultToCompare = resultToCompare + kvp.Value + "+"; } resultToCompare = resultToCompare + cert; PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Response, OrderNumber, string.Empty, "PF_OsbPaymentGateWay", PaymentGatewayRecordStatusType.Unknown, String.Format("Unsigned..{0}", resultToCompare)); signedResultToCompare = GetSHA1(resultToCompare); PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Response, OrderNumber, string.Empty, "PF_OsbPaymentGateWay", PaymentGatewayRecordStatusType.Unknown, String.Format("signed..{0}", signedResultToCompare)); return(signedResultToCompare); }
protected void SetOcaConfirmation(string xmlConfirmation) { XDocument xmlToSend = XDocument.Parse(xmlConfirmation); XElement xmlResponse = xmlToSend.Element("presentacion"); string statusTransaction = xmlResponse.Element("Rsp").Value; string codeTransaction = xmlResponse.Element("Nrorsv").Value; string extraInfo = xmlResponse.Element("Info").Value; PaymentGatewayInvoker.LogMessage( PaymentGatewayLogEntryType.Response, this.OrderNumber, string.Empty, GatewayName, PaymentGatewayRecordStatusType.Unknown, String.Format("1 Deserialize response confirmation from the service= {0} ", xmlToSend.ToString())); if (statusTransaction == "0") { IsApproved = true; AuthorizationCode = codeTransaction; TransactionCode = PostedValues[AgencyTransactionCode]; CardType = IssuerAssociationType.Oca; } else { IsApproved = false; AuthorizationCode = "0"; TransactionCode = PostedValues[AgencyTransactionCode]; } }
public override void Submit() { string redirectUrl = _configHelper.GetConfigEntry("paymentGatewayUrl"); string returnUrl = string.Concat(RootUrl, _config.PaymentGatewayReturnUrlApproved); string storeId = _configHelper.GetConfigEntry("paymentGatewayApplicationId"); string orderNumber = this._orderNumber.Substring(2); string amount = this._orderAmount.ToString().Replace(",", string.Empty); // Post and redirect to MultipMerchantVisaNet website HttpContext.Current.Response.Clear(); StringBuilder sb = new StringBuilder(); sb.Append("<html>"); sb.AppendFormat(@"<body onload='document.forms[""form""].submit()'>"); sb.AppendFormat("<form name='form' action='{0}' method='post'>", redirectUrl); sb.AppendFormat("<input type='hidden' name='CODTIENDA' value='{0}'>", storeId); sb.AppendFormat("<input type='hidden' name='NUMORDEN' value='{0}'>", orderNumber); sb.AppendFormat("<input type='hidden' name='MOUNT' value='{0}'>", amount); sb.Append("</form>"); sb.Append("</body>"); sb.Append("</html>"); string response = sb.ToString(); PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Request, this.OrderNumber, this._distributorId, this._gatewayName, PaymentGatewayRecordStatusType.Unknown, response); HttpContext.Current.Response.Write(response); HttpContext.Current.Response.End(); }
private ChilePaymentGateWayInvoker(string paymentMethod, decimal amount) : base("ChilePaymentGateway", paymentMethod, amount) { var payment = HttpContext.Current.Session[PaymentGatewayInvoker.PaymentInformation] as CreditPayment_V01; if (null != payment) { string invokerType = string.Empty; switch (payment.Card.IssuerAssociation) { case IssuerAssociationType.Visa: case IssuerAssociationType.MasterCard: case IssuerAssociationType.AmericanExpress: case IssuerAssociationType.GenericDebitCard: { invokerType = "WebPayPaymentGatewayInvoker"; HttpContext.Current.Session.Remove(PaymentGatewayInvoker.PaymentInformation); break; } case IssuerAssociationType.PaymentGateway: { invokerType = "CL_ServiPagPaymentGatewayInvoker"; break; } } var args = new object[] { paymentMethod, amount }; var type = Type.GetType(string.Concat(RootNameSpace, invokerType), true, true); this._theInvoker = Activator.CreateInstance(type, BindingFlags.NonPublic | BindingFlags.Instance, null, args, null) as PaymentGatewayInvoker; } }
private void generateDataCSVFile(string[] datos) { if (null != datos) { var sb = new StringBuilder(); //fecha sb.Append(DateTime.Now.ToString("yyyyMMdd")); sb.Append(","); //hora sb.Append(DateTime.Now.ToLongTimeString()); sb.Append(","); //referencia sb.Append(datos[10]); sb.Append(","); //ttar sb.Append(datos[4]); sb.Append(","); //subtotal sb.Append(datos[5]); sb.Append(","); //iva sb.Append(datos[6]); sb.Append(","); //ice sb.Append(datos[7]); sb.Append(","); //intereses sb.Append(datos[8]); sb.Append(","); //total sb.Append(datos[9]); sb.Append(","); //autorizacion sb.Append(datos[1]); sb.Append(","); //RUC sb.Append("RUC"); sb.Append(","); //TipoDEcredito sb.Append(datos[2]); sb.Append(","); //Meses sb.Append(datos[3]); sb.Append(","); //Estado P o R sb.Append(datos[12].Substring(5)); sb.Append(","); //status --vacio sb.Append(string.Empty); sb.Append(","); //informacion referencial string dataCSV = sb.ToString(); PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Response, datos[10].Substring(4), string.Empty, GatewayName, PaymentGatewayRecordStatusType.Unknown, dataCSV); } }
public override void Submit() { //Dictionary<string, string> _configEntries = GetConfigEntries("HSBCPaymentGateway"); string SECURE_SECRET = _configHelper.GetConfigEntry("PaymentGatewayEncryptionKey"); string gatewayUrl = _config.PaymentGatewayUrl; string vpc_Merchant = _configHelper.GetConfigEntry("MerchantAccountName"); string vpc_AccessCode = _configHelper.GetConfigEntry("PaymentGatewayPassword"); string vpc_ReturnURL = string.Concat(RootUrl, _config.PaymentGatewayReturnUrlApproved); string vpc_Command = "pay"; string vpc_Locale = "en"; string vpc_Version = "1"; string vpc_Amount = (_configHelper.GetConfigEntry("RoundTotals", false) == "true") ? (Convert.ToInt32(_orderAmount) * 100).ToString() : Convert.ToInt32((_orderAmount * 100)).ToString(); string vpc_MerchTxnRef = "HSBC"; string vpc_OrderInfo = _orderNumber; // Generate secure hash // Notice the variables of vpc_ must follow this particular order, as well as the Form hidden variables below string md5HashData = SECURE_SECRET + vpc_AccessCode + vpc_Amount + vpc_Command + vpc_Locale + vpc_MerchTxnRef + vpc_Merchant + vpc_OrderInfo + vpc_ReturnURL + vpc_Version; MD5 md5Hasher = MD5.Create(); byte[] secureHashByte = md5Hasher.ComputeHash(Encoding.Default.GetBytes(md5HashData)); StringBuilder secureHashString = new StringBuilder(); for (int i = 0; i < secureHashByte.Length; i++) { secureHashString.Append(secureHashByte[i].ToString("x2")); } string secrueHash = secureHashString.ToString().ToUpper(); StringBuilder sb = new StringBuilder(); sb.Append("<html>"); sb.AppendFormat(@"<body onload='document.forms[""form""].submit()'>"); sb.AppendFormat("<form name='form' action='{0}' method='post'>", gatewayUrl); sb.AppendFormat("<input type='hidden' name='vpc_AccessCode' value='{0}'>", vpc_AccessCode); sb.AppendFormat("<input type='hidden' name='vpc_Amount' value='{0}'>", vpc_Amount); sb.AppendFormat("<input type='hidden' name='vpc_Command' value='{0}'>", vpc_Command); sb.AppendFormat("<input type='hidden' name='vpc_Locale' value='{0}'>", vpc_Locale); sb.AppendFormat("<input type='hidden' name='vpc_MerchTxnRef' value='{0}'>", vpc_MerchTxnRef); sb.AppendFormat("<input type='hidden' name='vpc_Merchant' value='{0}'>", vpc_Merchant); sb.AppendFormat("<input type='hidden' name='vpc_OrderInfo' value='{0}'>", vpc_OrderInfo); sb.AppendFormat("<input type='hidden' name='vpc_ReturnURL' value='{0}'>", vpc_ReturnURL); sb.AppendFormat("<input type='hidden' name='vpc_Version' value='{0}'>", vpc_Version); sb.AppendFormat("<input type='hidden' name='vpc_SecureHash' value='{0}'>", secrueHash); sb.Append("</form>"); sb.Append("</body>"); sb.Append("</html>"); string response = sb.ToString(); PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Request, this.OrderNumber, this._distributorId, this._gatewayName, PaymentGatewayRecordStatusType.Unknown, response); HttpContext.Current.Response.Write(response); HttpContext.Current.Response.End(); }
protected void LogJsonWarningSerialization(string paymentGateway, string jsondata) { PaymentGatewayInvoker.LogBlindError( paymentGateway, string.Format( "JsonWarningSerialization: Json Serialization fail :\r\nPosted:{0}\r\nQueryString: {1}\r\nJson: {2}", this.GetFormData(), HttpContext.Current.Request.QueryString, jsondata)); }
protected void LogJsonWarning(string paymentGateway) { PaymentGatewayInvoker.LogBlindError( paymentGateway, string.Format( "JsonWarning: Json Posted data are null :\r\nPosted:{0}\r\nQueryString: {1}", this.GetFormData(), HttpContext.Current.Request.QueryString)); }
protected void LogResponseFromGateway(string gatewayName) { string webResponse = String.Join(";", (from string name in HttpContext.Current.Request.Params let element = name where element != null let value = HttpContext.Current.Request.Params[element] where value != null select String.Concat(name, ":=", HttpUtility.UrlDecode(value))).ToArray()); PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Response, OrderNumber, string.Empty, gatewayName, PaymentGatewayRecordStatusType.Unknown, webResponse); }
private void sendUrl() { string returnUrl; string returnUrlPrefix = "REDIRECT="; string buildreturnUrl = string.Concat(RootUrl, GetConfigEntry("paymentGatewayReturnUrlApproved")); returnUrl = buildreturnUrl.Contains("https") ? buildreturnUrl : buildreturnUrl.Replace("http", "https"); string returnUrlApproved = returnUrlPrefix + (string.Format("{0}?Agency=Bankart&OrderNumber={1}&Redirect=Yes", returnUrl, OrderNumber)); PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Response, OrderNumber, string.Empty, "MK_TutunskaPaymentGateway", PaymentGatewayRecordStatusType.Unknown, String.Format("Url redirect..{0}", returnUrlApproved)); this.SpecialResponse = returnUrlApproved; }
public override void Submit() { string redirectUrl = _config.PaymentGatewayUrl; string mode = _configHelper.GetConfigEntry("paymentGatewayMode") == "0" ? "Y" : "N"; // Y means test, N means live int price = Convert.ToInt32(_orderAmount * 100); string merchantId = _configHelper.GetConfigEntry("merchantAccount"); string language = _config.PaymentGatewayStyle; // "PL"; string ip = _config.PaymentGatewayApplicationId; // "63.192.82.30"; MyHLShoppingCart myCart; SessionInfo sessionInfoMyCart = SessionInfo.GetSessionInfo(this._distributorId, this._locale); myCart = sessionInfoMyCart.ShoppingCart ?? ShoppingCartProvider.GetShoppingCart(this._distributorId, this._locale); var address = myCart.DeliveryInfo.Address.Address; string email = (null != myCart && !string.IsNullOrEmpty(myCart.EmailAddress)) ? myCart.EmailAddress.ToString() : string.Empty; HttpContext.Current.Response.Clear(); StringBuilder sb = new StringBuilder(); sb.Append("<html>"); sb.AppendFormat(@"<body onload='document.forms[""form""].submit()'>"); sb.AppendFormat("<form name='form' action='{0}' method='post'>", redirectUrl); sb.AppendFormat("<input type='hidden' name='pos_id' value='{0}'>", merchantId); sb.AppendFormat("<input type='hidden' name='order_id' value='{0}'>", this.OrderNumber); sb.AppendFormat("<input type='hidden' name='amount' value='{0}'>", price); sb.AppendFormat("<input type='hidden' name='test' value='{0}'>", mode); sb.AppendFormat("<input type='hidden' name='language' value='{0}'>", language); sb.AppendFormat("<input type='hidden' name='client_ip' value='{0}'>", ip); sb.AppendFormat("<input type='hidden' name='street' value='{0}'>", address.Line1); sb.AppendFormat("<input type='hidden' name='street_n1' value='{0}'>", address.Line2 ?? string.Empty); sb.AppendFormat("<input type='hidden' name='street_n2' value='{0}'>", address.Line3 ?? string.Empty); sb.AppendFormat("<input type='hidden' name='phone' value='{0}'>", ""); sb.AppendFormat("<input type='hidden' name='city' value='{0}'>", address.City); sb.AppendFormat("<input type='hidden' name='postcode' value='{0}'>", address.PostalCode); sb.AppendFormat("<input type='hidden' name='country' value='{0}'>", address.Country); sb.AppendFormat("<input type='hidden' name='email' value='{0}'>", email); // sb.AppendFormat("<input type='submit' value='Pay'>"); sb.Append("</form>"); sb.Append("</body>"); sb.Append("</html>"); string response = sb.ToString(); PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Request, this.OrderNumber, this._distributorId, this._gatewayName, PaymentGatewayRecordStatusType.Unknown, response); HttpContext.Current.Response.Write(response); HttpContext.Current.Response.End(); }
public override void Submit() { // string redirectUrl = string.Concat(GetConfigEntry("paymentGatewayUrl"), "?process_id="); string redirectUrl = _configHelper.GetConfigEntry("paymentGatewayUrl"); string redirectUrlProcessId = _configHelper.GetConfigEntry("paymentGatewayProcessIdUrl"); string returnUrlApproved = string.Concat(RootUrl, _configHelper.GetConfigEntry("paymentGatewayReturnUrlApproved")); string approvedUrl = string.Format("{0}?Agency=Bancard&OrderId={1}&rsp=rsprdtc", returnUrlApproved, this.OrderNumber); string returnUrlDeclined = string.Concat(RootUrl, _configHelper.GetConfigEntry("paymentGatewayReturnUrlCanceled")); string declinedUrl = string.Format("{0}?Agency=Bancard&OrderId={1}", returnUrlDeclined, this.OrderNumber); string publicKey = _configHelper.GetConfigEntry("public_key"); string privateKey = _configHelper.GetConfigEntry("private_Key"); string dataProcessId = string.Empty; string processId = string.Empty; string token = string.Empty; NumberFormatInfo nfi = new NumberFormatInfo(); nfi.NumberDecimalSeparator = "."; nfi.NumberGroupSeparator = ""; string amount = this._orderAmount.ToString("0.00", nfi); token = GenetateMD5(privateKey, OrderNumber.Remove(0, 2).TrimStart('0'), amount); dataProcessId = PrepareProcessIdData(publicKey, token, OrderNumber.Remove(0, 2).TrimStart('0'), amount, approvedUrl, declinedUrl); processId = getProcessId(dataProcessId); // Post and redirect to WebPay website HttpContext.Current.Response.Clear(); StringBuilder sb = new StringBuilder(); sb.Append("<html>"); sb.AppendFormat(@"<body onload='document.forms[""form""].submit()'>"); sb.AppendFormat("<form name='form' action='{0}' method='get'>", redirectUrl); sb.AppendFormat("<input type='hidden' name='process_id' value='{0}'>", processId); sb.Append("</form>"); sb.Append("</body>"); sb.Append("</html>"); string response = sb.ToString(); PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Request, this.OrderNumber, this._distributorId, this._gatewayName, PaymentGatewayRecordStatusType.Unknown, response); HttpContext.Current.Response.Write(response); HttpContext.Current.Response.End(); }
private CN_99BillPaymentGatewayInvoker(string paymentMethod, decimal amount) : base("CN_99BillPaymentGateway", paymentMethod, amount) { var payment = HttpContext.Current.Session[PaymentInformation] as CreditPayment_V01; if (payment != null && payment.TransactionType == "QP") { string invokerType = "CN_99BillQuickPayInvoker"; var args = new object[] { paymentMethod, amount }; var type = Type.GetType(string.Concat(RootNameSpace, invokerType), true, true); this._theInvoker = Activator.CreateInstance(type, BindingFlags.NonPublic | BindingFlags.Instance, null, args, null) as PaymentGatewayInvoker; } }
public override void Submit() { string redirectUrl = _config.PaymentGatewayUrl; string successfulUrl = string.Concat(RootUrl, _config.PaymentGatewayReturnUrlApproved, "?Agency=ChronoPay&Status=Approved"); string failedUrl = string.Concat(RootUrl, _config.PaymentGatewayReturnUrlDeclined, "?Agency=ChronoPay&Status=Declined"); string callbackUrl = string.Concat(RootUrl, _config.PaymentGatewayReturnUrlApproved); string productId = _configHelper.GetConfigEntry("productId"); string shareSec = _config.PaymentGatewayEncryptionKey; string orderNumber = _orderNumber.ToString(); string price = _orderAmount.ToString().Replace(",", "."); string language = _config.PaymentGatewayStyle; string hash = GenerateHash(productId, price, shareSec); ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true); // Post and redirect to ChronoPay website HttpContext.Current.Response.Clear(); StringBuilder sb = new StringBuilder(); sb.Append("<html>"); sb.AppendFormat(@"<body onload='document.forms[""form""].submit()'>"); sb.AppendFormat("<form name='form' action='{0}' method='post'>", redirectUrl); sb.AppendFormat("<input type='hidden' name='product_id' value='{0}'>", productId); sb.AppendFormat("<input type='hidden' name='product_price' value='{0}'>", price); sb.AppendFormat("<input type='hidden' name='cs1' value='{0}'>", orderNumber); sb.AppendFormat("<input type='hidden' name='cs2' value='{0}'>", price); sb.AppendFormat("<input type='hidden' name='cs3' value='{0}'>", "ChronoPay"); sb.AppendFormat("<input type='hidden' name='language' value='{0}'>", language); sb.AppendFormat("<input type='hidden' name='cb_type' value='{0}'>", "P"); sb.AppendFormat("<input type='hidden' name='cb_url' value='{0}'>", callbackUrl); sb.AppendFormat("<input type='hidden' name='success_url' value='{0}'>", successfulUrl); sb.AppendFormat("<input type='hidden' name='decline_url' value='{0}'>", failedUrl); sb.AppendFormat("<input type='hidden' name='sign' value='{0}'>", hash); //sb.AppendFormat("<input type='submit' value='Pay via ChronoPay'/>"); sb.Append("</form>"); sb.Append("</body>"); sb.Append("</html>"); string response = sb.ToString(); PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Request, this.OrderNumber, this._distributorId, this._gatewayName, PaymentGatewayRecordStatusType.Unknown, response); HttpContext.Current.Response.Write(response); HttpContext.Current.Response.End(); }
public override void Submit() { string redirectUrl = string.Empty; string responseId = string.Empty; string returnUrl = string.Concat(RootUrl, _configHelper.GetConfigEntry("paymentGatewayReturnUrlApproved")); string returnUrlDeclined = string.Concat(RootUrl, _configHelper.GetConfigEntry("paymentGatewayReturnUrlApproved")); string paymentGatewayAlias; string orderNumber = this._orderNumber; string amount = this._orderAmount.ToString().Replace(",", "."); paymentGatewayAlias = _configHelper.GetConfigEntry("paymentGatewayAlias"); string redirectUrlList; redirectUrlList = GetRedirectUrl(returnUrl, returnUrlDeclined, paymentGatewayAlias, amount, orderNumber); responseId = getIdFromAgencyResponse(redirectUrlList); redirectUrl = getUrlFromAgencyResponse(redirectUrlList); redirectUrl = redirectUrl + "&?PaymentID=" + responseId; // Post and redirect to Tutunska website HttpContext.Current.Response.Clear(); var sb = new StringBuilder(); sb.Append("<html>"); sb.AppendFormat(@"<body onload='document.forms[""form""].submit()'>"); sb.AppendFormat("<form name='form' action='{0}' method='post'>", redirectUrl); // sb.AppendFormat("<input type='hidden' name='PaymentID' value='{0}'>", responseId); sb.Append("</form>"); sb.Append("</body>"); sb.Append("</html>"); HttpContext.Current.Session["declinedOrderNumberMK"] = OrderNumber; string response = sb.ToString(); PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Request, this.OrderNumber, this._distributorId, this._gatewayName, PaymentGatewayRecordStatusType.Unknown, response); HttpContext.Current.Response.Write(response); HttpContext.Current.Response.End(); }
public override void Submit() { string xmlrequest; try { string redirectUrl = _configHelper.GetConfigEntry("paymentGatewayUrl"); string key = _configHelper.GetConfigEntry("paymentGatewayEncryptionKey"); string password = _configHelper.GetConfigEntry("paymentGatewayPassword"); string returnUrl = string.Concat(RootUrl, _config.PaymentGatewayReturnUrlApproved); xmlrequest = GenerateXmlRequest(returnUrl, key, password); if (RootUrl.Contains("local") || RootUrl.Contains("qa") || RootUrl.Contains("uat")) { System.Net.ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true; } HttpContext.Current.Response.Clear(); StringBuilder sb = new StringBuilder(); sb.AppendFormat(@"<html><body onload='document.forms[""form""].submit()'>"); sb.AppendFormat("<form name='form' action='{0}' method='post'>", redirectUrl); sb.AppendFormat("<input type='hidden' name='CHAVE' value='{0}' >", key); sb.AppendFormat("<input type='hidden' name='SENHA' value='{0}' >", password); sb.AppendFormat("<input type='hidden' name='ORDEM' value='{0}' >", HttpUtility.HtmlEncode(xmlrequest)); //HttpContext.Current.Server.HtmlEncode(xmlrequest)); sb.AppendFormat("</form></body></html>"); string response = sb.ToString(); PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Request, this.OrderNumber, this._distributorId, this._gatewayName, PaymentGatewayRecordStatusType.Unknown, response); HttpContext.Current.Response.Write(response); HttpContext.Current.Response.End(); } catch (Exception ex) { LoggerHelper.Error(string.Format("Itau Electronic Transfer Payment Gateway Invoker exception for: order number {0}, DS ID {1}, {2} ", this.OrderNumber, this._distributorId, ex.Message)); } }
public override void Submit() { string redirectUrl = _config.PaymentGatewayUrl; string merchantId = _config.MerchantAccountName; string applicationId = _config.PaymentGatewayApplicationId; string mode = _configHelper.GetConfigEntry("PaymentGatewayMode"); // 0 means test, 1 means live string price = _orderAmount.ToString(); string currency = _currency; string successfulUrl = _config.PaymentGatewayReturnUrlApproved; string failedUrl = _config.PaymentGatewayReturnUrlDeclined; // Post and redirect to HSBC website HttpContext.Current.Response.Clear(); StringBuilder sb = new StringBuilder(); sb.Append("<html>"); sb.AppendFormat(@"<body onload='document.forms[""form""].submit()'>"); sb.AppendFormat("<form name='form' action='{0}' method='post'>", redirectUrl); sb.AppendFormat("<input type='hidden' name='Mode' value='{0}'>", mode); sb.AppendFormat("<input type='hidden' name='txtMerchantID' value='{0}'>", merchantId); sb.AppendFormat("<input type='hidden' name='txtApplicationID' value='{0}'>", applicationId); sb.AppendFormat("<input type='hidden' name='txtMerchantReference' value='{0}'>", this.OrderNumber); sb.AppendFormat("<input type='hidden' name='txtPrice' value='{0}'>", price); sb.AppendFormat("<input type='hidden' name='txtCurrencyCode' value='{0}'>", currency); sb.AppendFormat("<input type='hidden' name='txtRedirectSuccessfulURL' value='{0}{1}'>", RootUrl, successfulUrl); sb.AppendFormat("<input type='hidden' name='txtRedirectFailedURL' value='{0}{1}'>", RootUrl, failedUrl); sb.AppendFormat("<input type='hidden' name='txtOrderNumber' value='{0}'>", this.OrderNumber); sb.AppendFormat("<input type='hidden' name='Variable1' value='{0}'>", this.OrderNumber); sb.Append("<input type='hidden' name='Variable2' value='MyGate'>"); sb.Append("</form>"); sb.Append("</body>"); sb.Append("</html>"); string response = sb.ToString(); PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Request, this.OrderNumber, this._distributorId, this._gatewayName, PaymentGatewayRecordStatusType.Unknown, response); HttpContext.Current.Response.Write(response); HttpContext.Current.Response.End(); }
/// <summary> /// Put the requisite data elements into the authorization request /// </summary> /// <param name="requestLineItem">The request line item.</param> /// <returns></returns> private string PrepareProcessIdData(string public_key, string token, string orderNumber, string amount, string urlapproved, string urldeclined) { StringBuilder json = new StringBuilder(); json.Append("{ \"public_key\""); json.AppendFormat(":\"{0}\",", public_key); json.Append("\"operation\": { "); json.AppendFormat("\"token\": \"{0}\",", token); json.AppendFormat("\"shop_process_id\": \"{0}\",", orderNumber); json.AppendFormat("\"amount\": \"{0}\",", amount); json.Append("\"currency\": \"PYG\","); json.Append("\"additional_data\": \"\","); json.Append("\"description\": \"Herbalife Paraguay\","); json.AppendFormat("\"return_url\": \"{0}\",", urlapproved); json.AppendFormat("\"cancel_url\": \"{0}\"", urldeclined); json.Append("}}"); PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Request, this.OrderNumber, this._distributorId, this._gatewayName, PaymentGatewayRecordStatusType.Unknown, json.ToString()); return(json.ToString()); }
public override void Submit() { try { string redirectUrl = _configHelper.GetConfigEntry("paymentGatewayUrl"); string id_Loja = _configHelper.GetConfigEntry("paymentGatewayIdLoja"); string paymentGatewayTransactionType = _configHelper.GetConfigEntry("paymentGatewayTransactionType"); string paymentGatewayWebServiceBankSlipCallEnable = _configHelper.GetConfigEntry("paymentGatewayWebServiceBankSlipCallEnable"); string returnUrlApproved = string.Concat(RootUrl, _configHelper.GetConfigEntry("paymentGatewayReturnUrlApproved")); string returnUrl = string.Format("{0}?Agency=BankSlipBrasPag&Order={1}&Status=1", returnUrlApproved, OrderNumber); string dataToEncrypt = string.Empty; string dataEcnrypted = string.Empty; dataToEncrypt = BuildInfo(paymentGatewayTransactionType); PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Request, this.OrderNumber, this._distributorId, this._gatewayName, PaymentGatewayRecordStatusType.Unknown, dataToEncrypt); dataEcnrypted = OrderProvider.SendBrasPagEncryptServiceRequest("1", id_Loja, dataToEncrypt); HttpContext.Current.Response.Clear(); StringBuilder sb = new StringBuilder(); sb.AppendFormat(@"<html><body onload='document.forms[""form""].submit()'>"); sb.AppendFormat("<form name='form' action='{0}' method='post'>", redirectUrl); sb.AppendFormat("<input type='hidden' name='Id_Loja' value='{0}' >", id_Loja); sb.AppendFormat("<input type='hidden' name='crypt' value='{0}' >", dataEcnrypted); sb.AppendFormat("<input type='hidden' name='EXTRADYNAMICURL' value='{0}' >", returnUrl); sb.AppendFormat("</form></body></html>"); string response = sb.ToString(); PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Request, this.OrderNumber, this._distributorId, this._gatewayName, PaymentGatewayRecordStatusType.Unknown, response); HttpContext.Current.Response.Write(response); HttpContext.Current.Response.End(); } catch (Exception ex) { LoggerHelper.Error(string.Format("Bank Slip Payment Gateway Invoker exception for: order number {0}, DS ID {1} {2}", this.OrderNumber, this._distributorId, ex.Message)); } }
private UruguayPaymentGateWayInvoker(string paymentMethod, decimal amount) : base("UruguayPaymentGateWay", paymentMethod, amount) { var payment = HttpContext.Current.Session[PaymentInformation] as CreditPayment_V01; if (null != payment) { string invokerType = string.Empty; switch (payment.Card.IssuerAssociation) { case IssuerAssociationType.Visa: { invokerType = "UY_VpaymentPaymentGateWayInvoker"; HttpContext.Current.Session.Remove(PaymentGatewayInvoker.PaymentInformation); break; } case IssuerAssociationType.Oca: { invokerType = "UY_OcaPaymentGateWayInvoker"; break; } default: { invokerType = "UY_VpaymentPaymentGateWayInvoker"; HttpContext.Current.Session.Remove(PaymentGatewayInvoker.PaymentInformation); break; } } var args = new object[] { paymentMethod, amount }; var type = Type.GetType(string.Concat(RootNameSpace, invokerType), true, true); this._theInvoker = Activator.CreateInstance(type, BindingFlags.NonPublic | BindingFlags.Instance, null, args, null) as PaymentGatewayInvoker; } }
private BrazilPaymentGatewayInvoker(string paymentMethod, decimal amount) : base("BrazilPaymentGateway", paymentMethod, amount) { var payment = HttpContext.Current.Session[PaymentInformation] as WirePayment_V01; if (null != payment) { string invokerType = string.Empty; switch (payment.PaymentCode) { case "TB": { invokerType = "BradescoElectronicTransferPaymentGatewayInvoker"; HttpContext.Current.Session.Remove(PaymentInformation); break; } case "BB": { invokerType = "BancodoBrazilElectronicTransferPaymentGatewayInvoker"; HttpContext.Current.Session.Remove(PaymentInformation); break; } case "ET": { invokerType = "ItauBoldCronElectronicTransferPaymentGatewayInvoker"; HttpContext.Current.Session.Remove(PaymentInformation); break; } case "BT": { if (HLConfigManager.Configurations.PaymentsConfiguration.TurnOnBrasPagBankSlip) { invokerType = "BankSlipBrasPagPaymentGatewayInvoker"; HttpContext.Current.Session.Remove(PaymentInformation); break; } else { if (HLConfigManager.Configurations.PaymentsConfiguration.TurnOnTivitBankSlip) { invokerType = "BankSlipPaymentGatewayInvoker"; HttpContext.Current.Session.Remove(PaymentInformation); break; } else { invokerType = "BankSlipBoldCronPaymentGatewayInvoker"; HttpContext.Current.Session.Remove(PaymentInformation); break; } } } case "VE": { invokerType = "PGHPaymentGatewayInvoker"; HttpContext.Current.Session.Remove(PaymentInformation); break; } } var args = new object[] { paymentMethod, amount }; var type = Type.GetType(string.Concat(RootNameSpace, invokerType), true, true); _theInvoker = Activator.CreateInstance(type, BindingFlags.NonPublic | BindingFlags.Instance, null, args, null) as PaymentGatewayInvoker; } }
public override void Submit() { string redirectUrl = _configHelper.GetConfigEntry("paymentGatewayUrl"); string returnUrl = string.Concat(RootUrl, _config.PaymentGatewayReturnUrlApproved); string terminal = _configHelper.GetConfigEntry("paymentGatewayTerminal"); string merchantId = _config.PaymentGatewayApplicationId; string merchantName = _config.MerchantAccountName; string merchantUrl = "https://ro.myherbalife.com"; string currency = "RON"; string transactionType = "0"; // 0 for pre-auth, 21 for Sales Completion string encryptionKey = _config.PaymentGatewayEncryptionKey; string gmt_offset = string.Empty; string country = string.Empty; string email = "*****@*****.**"; string timeStamp = System.DateTime.Now.ToUniversalTime().ToString("yyyyMMddHHmmss"); string nonce = GenerateNonce(32); string orderNum = _orderNumber.Substring(1, _orderNumber.Length - 1); // Romcard only takes numeric for order # string amount = _orderAmount.ToString(".00").Replace(",", "."); // generate the mac and PSign string mac = string.Concat(amount.Length.ToString(), amount, currency.Length.ToString(), currency, orderNum.Length.ToString(), orderNum, orderNum.Length.ToString(), orderNum, merchantName.Length.ToString(), merchantName, merchantUrl.Length.ToString(), merchantUrl, merchantId.Length.ToString(), merchantId, terminal.Length.ToString(), terminal, email.Length.ToString(), email, transactionType.Length.ToString(), transactionType, "--", timeStamp.Length.ToString(), timeStamp, nonce.Length.ToString(), nonce, returnUrl.Length.ToString(), returnUrl); string pSign = Generate_PSign(encryptionKey, mac); // Post and redirect to Decidir website HttpContext.Current.Response.Clear(); StringBuilder sb = new StringBuilder(); sb.Append("<html>"); sb.AppendFormat(@"<body onload='document.forms[""form""].submit()'>"); sb.AppendFormat("<form name='form' action='{0}' method='post'>", redirectUrl); sb.AppendFormat("<input type='hidden' name='AMOUNT' value='{0}'>", amount); sb.AppendFormat("<input type='hidden' name='CURRENCY' value='{0}'>", currency); sb.AppendFormat("<input type='hidden' name='ORDER' value='{0}'>", orderNum); sb.AppendFormat("<input type='hidden' name='DESC' value='{0}'>", orderNum); sb.AppendFormat("<input type='hidden' name='MERCH_NAME' value='{0}'>", merchantName); sb.AppendFormat("<input type='hidden' name='MERCH_URL' value='{0}'>", merchantUrl); sb.AppendFormat("<input type='hidden' name='MERCHANT' value='{0}'>", merchantId); sb.AppendFormat("<input type='hidden' name='TERMINAL' value='{0}'>", terminal); sb.AppendFormat("<input type='hidden' name='EMAIL' value='{0}'>", email); sb.AppendFormat("<input type='hidden' name='TRTYPE' value='{0}'>", transactionType); sb.AppendFormat("<input type='hidden' name='COUNTRY' value='{0}'>", country); sb.AppendFormat("<input type='hidden' name='MERCH_GMT' value='{0}'>", gmt_offset); sb.AppendFormat("<input type='hidden' name='TIMESTAMP' value='{0}'>", timeStamp); sb.AppendFormat("<input type='hidden' name='NONCE' value='{0}'>", nonce); sb.AppendFormat("<input type='hidden' name='BACKREF' value='{0}'>", returnUrl); sb.AppendFormat("<input type='hidden' name='P_SIGN' value='{0}'>", pSign); sb.Append("</form>"); sb.Append("</body>"); sb.Append("</html>"); string response = sb.ToString(); PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Request, this.OrderNumber, this._distributorId, this._gatewayName, PaymentGatewayRecordStatusType.Unknown, response); HttpContext.Current.Response.Write(response); HttpContext.Current.Response.End(); }
protected void LogSecurityWarning(string paymentGateway) { PaymentGatewayInvoker.LogBlindError(paymentGateway, string.Format("Securtity Warning: Posted data did not match querystring:\r\nPosted:{0}\r\nQueryString: {1}", GetFormData(), HttpContext.Current.Request.QueryString)); }
public static void LogBlindError(string paymentGatewayName, string errorMessage) { PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Error, string.Empty, string.Empty, paymentGatewayName, PaymentGatewayRecordStatusType.InError, errorMessage); }
public override void Submit() { string redirectUrl = _configHelper.GetConfigEntry("paymentGatewayUrl"); string orderNum = this.OrderNumber; string commercialCode = _configHelper.GetConfigEntry("paymentGatewayApplicationId"); string amount = this._orderAmount.ToString().Replace(",", string.Empty); string currency = this._currency; string transactionDate = System.DateTime.Today.ToString("yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture); string tradeTime = System.DateTime.Now.ToString("HHMMss", System.Globalization.CultureInfo.InvariantCulture); string timeStamp = System.DateTime.Now.ToString("yyyyMMddHHmmssffff"); string countryCode = this._country == "PE" ? "PER" : this._country; string clientCode = "REG0001"; // Distributor ID ? string Key = _configHelper.GetConfigEntry("paymentGatewayEncryptionKey"); string[] data = new string[10]; data[0] = commercialCode; data[1] = orderNum; data[2] = amount; data[3] = currency; data[4] = transactionDate; data[5] = tradeTime; data[6] = timeStamp; data[7] = clientCode; data[8] = countryCode; data[9] = Key; string dataToConvert = string.Join("", data); string signature = PuntoWebSignature.GenerateSignature(dataToConvert, Key); HttpContext.Current.Response.Clear(); StringBuilder sb = new StringBuilder(); sb.Append("<html>"); sb.AppendFormat(@"<body onload='document.forms[""form""].submit()'>"); sb.AppendFormat("<form name='form' action='{0}' method='post'>", redirectUrl); sb.AppendFormat("<input type='hidden' name='I1' value='{0}'>", commercialCode); sb.AppendFormat("<input type='hidden' name='I2' value='{0}'>", orderNum); sb.AppendFormat("<input type='hidden' name='I3' value='{0}'>", amount); sb.AppendFormat("<input type='hidden' name='I4' value='{0}'>", currency); sb.AppendFormat("<input type='hidden' name='I5' value='{0}'>", transactionDate); sb.AppendFormat("<input type='hidden' name='I6' value='{0}'>", tradeTime); sb.AppendFormat("<input type='hidden' name='I7' value='{0}'>", timeStamp); sb.AppendFormat("<input type='hidden' name='I8' value='{0}'>", clientCode); sb.AppendFormat("<input type='hidden' name='I9' value='{0}'>", countryCode); sb.AppendFormat("<input type='hidden' name='I10' value='{0}'>", HttpContext.Current.Server.UrlEncode(signature)); sb.Append("</form>"); sb.Append("</body>"); sb.Append("</html>"); string response = sb.ToString(); PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Request, this.OrderNumber, this._distributorId, this._gatewayName, PaymentGatewayRecordStatusType.Unknown, response); HttpContext.Current.Response.Write(response); HttpContext.Current.Response.End(); }
public override void Submit() { string redirectUrl = _configHelper.GetConfigEntry("paymentGatewayUrl"); string returnUrl = string.Concat(RootUrl, _configHelper.GetConfigEntry("paymentGatewayReturnUrlApproved"), "?Agency=psepayment"); string confirmationUrl = string.Concat(RootUrl, _configHelper.GetConfigEntry("paymentGatewayReturnUrlApproved"), "?Agency=psepayment"); string userId = _configHelper.GetConfigEntry("paymentGatewayApplicationId"); string description = "Herbalife"; string currency = this._currency.ToString(); string isTest = _configHelper.GetConfigEntry("PaymentGatewayMode") == "0" ? "1" : "0"; MyHLShoppingCart myCart; SessionInfo SessionInfoMyCart = SessionInfo.GetSessionInfo(this._distributorId, this._locale); myCart = SessionInfoMyCart.ShoppingCart; if (myCart == null) { myCart = ShoppingCartProvider.GetShoppingCart(this._distributorId, this._locale); } string email = (null != myCart && !string.IsNullOrEmpty(myCart.EmailAddress)) ? myCart.EmailAddress.ToString() : string.Empty; OrderTotals_V01 totals = myCart.Totals as OrderTotals_V01; decimal tax = (null != myCart && null != totals) ? totals.TaxAmount : 0; string orderNumber = this.OrderNumber; string amount = string.Format("{0:0.00}", this._orderAmount).Replace(",", "."); string refundbase = string.Format("{0:0.00}", this._orderAmount - tax).Replace(",", "."); string taxString = string.Format("{0:0.00}", tax).Replace(",", "."); string hash = generateSignature(userId, amount, orderNumber, currency); // Post and redirect to Pagos Online website HttpContext.Current.Response.Clear(); StringBuilder sb = new StringBuilder(); sb.Append("<html>"); sb.AppendFormat(@"<body onload='document.forms[""form""].submit()'>"); sb.AppendFormat("<form name='form' action='{0}' method='post'>", redirectUrl); sb.AppendFormat("<input type='hidden' name='usuarioId' value='{0}'>", userId); sb.AppendFormat("<input type='hidden' name='refVenta' value='{0}'>", orderNumber); sb.AppendFormat("<input type='hidden' name='descripcion' value='{0}'>", description); sb.AppendFormat("<input type='hidden' name='valor' value='{0}'>", amount); sb.AppendFormat("<input type='hidden' name='iva' value='{0}'>", taxString); sb.AppendFormat("<input type='hidden' name='moneda' value='{0}'>", currency); sb.AppendFormat("<input type='hidden' name='baseDevolucionIva' value='{0}'>", refundbase); sb.AppendFormat("<input type='hidden' name='emailComprador' value='{0}'>", email); sb.AppendFormat("<input type='hidden' name='firma' value='{0}'>", hash); sb.AppendFormat("<input type='hidden' name='prueba' value='{0}'>", isTest); sb.AppendFormat("<input type='hidden' name='url_respuesta' value='{0}'>", returnUrl); sb.AppendFormat("<input type='hidden' name='url_confirmacion' value='{0}'>", confirmationUrl); sb.Append("</form>"); sb.Append("</body>"); sb.Append("</html>"); string response = sb.ToString(); PaymentGatewayInvoker.LogMessage(PaymentGatewayLogEntryType.Request, this.OrderNumber, this._distributorId, this._gatewayName, PaymentGatewayRecordStatusType.Unknown, response); HttpContext.Current.Response.Write(response); HttpContext.Current.Response.End(); }