protected override async Task <IPaymentHtmlPostResponse> PaymentHtmlPostChargeGenerator(ICcavenueCharge ccavenueCharge) { try { Dictionary <string, string> formFields = new Dictionary <string, string>(); formFields.Add("encRequest", GetCcavenueEncryptedChargeRequest(ccavenueCharge, _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Ccavenue.MerchantId), _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Ccavenue.WorkingKey), ccavenueCharge.ChannelId == Channels.Feel ? _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Ccavenue.FeelReturnUrl) : _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Ccavenue.ReturnUrl))); formFields.Add("access_code", _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Ccavenue.AccessKey)); IHtmlPostRequest htmlPostRequest = new HtmlPostRequest(); htmlPostRequest.Method = "POST"; htmlPostRequest.Action = $"{_settings.GetConfigSetting<string>(SettingKeys.PaymentGateway.Ccavenue.PostUrl)}"; htmlPostRequest.FormFields = formFields; string returnUrl = ccavenueCharge.ChannelId == Channels.Feel ? _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Ccavenue.FeelReturnUrl) : _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Ccavenue.ReturnUrl); _transactionPaymentDetailRepository.Save(new TransactionPaymentDetail { TransactionId = Convert.ToInt64(ccavenueCharge.TransactionId), PaymentOptionId = ccavenueCharge.PaymentOption == PaymentOptions.CashCard ? PaymentOptions.CashCard : PaymentOptions.NetBanking, PaymentGatewayId = PaymentGateway.CCAvenue, UserCardDetailId = ccavenueCharge.UserCardDetailId, RequestType = "Charge Posting", Amount = ccavenueCharge.Amount.ToString(), PayConfNumber = "", PaymentDetail = "{\"Request\":" + Newtonsoft.Json.JsonConvert.SerializeObject(htmlPostRequest) + ",\"ReturnUrl\":\"" + returnUrl + "\"}", }); return(GetPaymentHtmlPostResponse(htmlPostRequest)); } catch (Exception ex) { _logger.Log(LogCategory.Error, new Exception("Failed to generate html post request", ex)); return(GetPaymentHtmlPostResponse(null, ex.Message)); } }
protected override async Task <IPaymentHtmlPostResponse> PaymentHtmlPostChargeGenerator(IIciciCharge iciciCharge) { try { Dictionary <string, string> formFields = new Dictionary <string, string>(); formFields.Add("virtualPaymentClientURL", "https://migs.mastercard.com.au/vpcpay"); formFields.Add("vpc_Version", "1"); formFields.Add("vpc_Command", "pay"); formFields.Add("vpc_AccessCode", JsonConvert.DeserializeObject <Dictionary <string, string> >(_settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Icici.AccessKey))[iciciCharge.Currency.ToLower()]); formFields.Add("vpc_MerchTxnRef", iciciCharge.TransactionId.ToString()); formFields.Add("vpc_Merchant", JsonConvert.DeserializeObject <Dictionary <string, string> >(_settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Icici.MerchantId))[iciciCharge.Currency.ToLower()]); formFields.Add("vpc_OrderInfo", "Transaction charge for " + iciciCharge.TransactionId.ToString()); formFields.Add("vpc_Amount", (Convert.ToDouble(iciciCharge.Amount) * (100)).ToString()); formFields.Add("vpc_ReturnURL", _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Icici.ReturnUrl)); formFields.Add("vpc_Locale", "en"); formFields.Add("vpc_gateway", "ssl"); formFields.Add("vpc_card", iciciCharge.PaymentCard.CardType.ToString()); formFields.Add("vpc_CardNum", iciciCharge.PaymentCard.CardNumber); formFields.Add("vpc_CardExp", iciciCharge.PaymentCard.ExpiryYear.ToString().Substring(2, 2) + iciciCharge.PaymentCard.ExpiryMonth); formFields.Add("vpc_CardSecurityCode", iciciCharge.PaymentCard.Cvv); formFields.Add("vpc_TicketNo", ""); IHtmlPostRequest htmlPostRequest = new HtmlPostRequest(); htmlPostRequest.Method = "Post"; htmlPostRequest.Action = $"{_settings.GetConfigSetting<string>(SettingKeys.PaymentGateway.Icici.PostUrl)}/{JsonConvert.DeserializeObject<Dictionary<string, string>>(_settings.GetConfigSetting<string>(SettingKeys.PaymentGateway.Icici.AspUrl))[iciciCharge.Currency.ToLower()]}"; htmlPostRequest.FormFields = formFields; return(GetPaymentHtmlPostResponse(htmlPostRequest, null)); } catch (Exception ex) { _logger.Log(LogCategory.Error, new Exception("Failed to generate html post request", ex)); return(GetPaymentHtmlPostResponse(null, ex.Message)); } }
protected override async Task <IPaymentHtmlPostResponse> PaymentHtmlPostChargeGenerator(IHdfcEnrolledCharge hdfcEnrolledCharge) { try { Dictionary <string, string> formFields = new Dictionary <string, string>(); formFields.Add("TermUrl", _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Hdfc.ReturnUrl)); formFields.Add("PaReq", hdfcEnrolledCharge.PaymentAuthenticationRequest); formFields.Add("MD", hdfcEnrolledCharge.PaymentId); formFields.Add("TransId", hdfcEnrolledCharge.TransactionId.ToString()); formFields.Add("TransAmt", hdfcEnrolledCharge.Amount.ToString()); IHtmlPostRequest htmlPostRequest = new HtmlPostRequest(); htmlPostRequest.Method = "POST"; htmlPostRequest.Action = $"{hdfcEnrolledCharge.AcsUrl}"; htmlPostRequest.FormFields = formFields; _transactionPaymentDetailRepository.Save(new TransactionPaymentDetail { TransactionId = Convert.ToInt64(hdfcEnrolledCharge.TransactionId), PaymentOptionId = PaymentOptions.CreditCard, PaymentGatewayId = PaymentGateway.HDFC, RequestType = "Enrolled Charge Posting", Amount = hdfcEnrolledCharge.Amount.ToString(), PayConfNumber = "", PaymentDetail = "{\"Request\":" + JsonConvert.SerializeObject(htmlPostRequest) + "}", }); return(GetPaymentHtmlPostResponse(htmlPostRequest, null)); } catch (Exception ex) { _logger.Log(LogCategory.Error, new Exception("Failed to create html post request", ex)); return(GetPaymentHtmlPostResponse(null, ex.Message)); } }
protected override async Task <IPaymentHtmlPostResponse> PaymentHtmlPostChargeGenerator(INabTransactCharge nabTransactCharge) { try { string timeStamp = DateTime.UtcNow.ToString("yyyyMMddHHmmss"), txnType = "6"; Dictionary <string, string> formFields = new Dictionary <string, string>(); var settingKey = _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.NabTransact.MerchantId); var price = nabTransactCharge.Amount.ToString("0.00"); /* if (settingKey == "XYZ0010") // NAB test bed * { * var splitprice = price.Split("."); * price = splitprice[0] + ".00"; * price = Convert.ToDecimal(price).ToString("0.00"); * }*/ formFields.Add("EPS_MERCHANT", _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.NabTransact.MerchantId)); formFields.Add("EPS_TXNTYPE", txnType); formFields.Add("EPS_REFERENCEID", nabTransactCharge.TransactionId.ToString()); formFields.Add("EPS_AMOUNT", price); formFields.Add("EPS_TIMESTAMP", timeStamp); //FingurePrint using SHA1 Hash formFields.Add("EPS_FINGERPRINT", GenerateSHA1Hash($"{_settings.GetConfigSetting<string>(SettingKeys.PaymentGateway.NabTransact.MerchantId)}|{_settings.GetConfigSetting<string>(SettingKeys.PaymentGateway.NabTransact.Password)}|{txnType}|{nabTransactCharge.TransactionId.ToString()}|{nabTransactCharge.Amount.ToString("0.00")}|" + timeStamp)); formFields.Add("EPS_RESULTURL", _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.NabTransact.ReturnUrl)); formFields.Add("EPS_CALLBACKURL", _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.NabTransact.ReturnUrl)); formFields.Add("EPS_REDIRECT", "TRUE"); formFields.Add("EPS_CURRENCY", nabTransactCharge.Currency.ToString()); //Card details formFields.Add("EPS_CARDNUMBER", nabTransactCharge.PaymentCard.CardNumber); formFields.Add("EPS_EXPIRYMONTH", nabTransactCharge.PaymentCard.ExpiryMonth.ToString()); formFields.Add("EPS_EXPIRYYEAR", nabTransactCharge.PaymentCard.ExpiryYear.ToString()); formFields.Add("EPS_CCV", nabTransactCharge.PaymentCard.Cvv); formFields.Add("3D_XID", timeStamp + nabTransactCharge.TransactionId.ToString("000000").Substring(0, 6)); formFields.Add("EPS_MERCHANTNUM", "22123456"); formFields.Add("EPS_EMAILADDRESS", nabTransactCharge.User.Email.ToString()); formFields.Add("EPS_IP", nabTransactCharge.IPAddress); IHtmlPostRequest htmlPostRequest = new HtmlPostRequest(); htmlPostRequest.Method = "Post"; htmlPostRequest.Action = $"{_settings.GetConfigSetting<string>(SettingKeys.PaymentGateway.NabTransact.PostUrl)}"; htmlPostRequest.FormFields = formFields; _transactionPaymentDetailRepository.Save(new TransactionPaymentDetail { TransactionId = Convert.ToInt64(nabTransactCharge.TransactionId), PaymentOptionId = nabTransactCharge.PaymentOption, PaymentGatewayId = PaymentGateway.NabTransact, UserCardDetailId = nabTransactCharge.UserCardDetailId, RequestType = "Charge Posting", Amount = price, PayConfNumber = "", PaymentDetail = "{\"Request\":" + Newtonsoft.Json.JsonConvert.SerializeObject(htmlPostRequest) + "}", }); /* update final transcation status */ _transactionStatusUpdater.UpdateTranscationStatus(Convert.ToInt64(nabTransactCharge.TransactionId)); await _mediator.Publish(new TransactionEvent { TransactionStatus = TransactionStatus.UnderPayment, TransactionId = Convert.ToInt64(nabTransactCharge.TransactionId), EmailId = nabTransactCharge.User.Email, ZipCode = nabTransactCharge.BillingAddress.Zipcode }); return(GetPaymentHtmlPostResponse(htmlPostRequest, null)); } catch (Exception ex) { _logger.Log(LogCategory.Error, new Exception("Failed to generate html post request", ex)); return(GetPaymentHtmlPostResponse(null, ex.Message)); } }