Exemple #1
0
        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));
            }
        }
Exemple #2
0
        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));
            }
        }
Exemple #3
0
        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));
            }
        }
Exemple #4
0
        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));
            }
        }