public IPaymentResponse IciciResponseHandler(IGatewayCharge gatewayResponse) { NameValueCollection nvcResponseQueryString = HttpUtility.ParseQueryString(gatewayResponse.QueryString); try { var secureHash = nvcResponseQueryString["VPC_SECUREHASH"]; var txnResponseCode = nvcResponseQueryString["VPC_TXNRESPONSECODE"]; var orderInfo = nvcResponseQueryString["VPC_ORDERINFO"]; var merchTxnRef = nvcResponseQueryString["VPC_MERCHTXNREF"]; var transactionNo = nvcResponseQueryString["VPC_TRANSACTIONNO"]; var amount = nvcResponseQueryString["vpc_Amount"]; txnResponseCode = txnResponseCode != null && txnResponseCode.Length > 0 ? txnResponseCode : "Unknown"; var paymentConfirmationNumber = transactionNo != null && transactionNo.Length > 0 ? transactionNo : "Unknown"; amount = amount != null && amount.Length > 0 ? amount : "0.00"; if (txnResponseCode.Equals("0")) { return(GetPaymentResponse(true, PaymentGatewayError.None)); } else { return(GetPaymentResponse(false, GetPaymentGatewayErrorCode(txnResponseCode))); } } catch (Exception ex) { _logger.Log(LogCategory.Error, new Exception("Failed to process transaction", ex)); return(GetPaymentResponse(false, GetPaymentGatewayErrorCode(ex.Message))); } }
public IPaymentResponse AmazonPayResponseHandler(IGatewayCharge gatewayCharge) { NameValueCollection nvcResponseQueryString = HttpUtility.ParseQueryString(gatewayCharge.QueryString); var sellerOrderId = nvcResponseQueryString["sellerOrderId"]; var orderTotalAmount = nvcResponseQueryString["orderTotalAmount"]; var reasonCode = nvcResponseQueryString["reasonCode"]; var paymentConfirmationNumber = nvcResponseQueryString["amazonOrderId"]; var status = nvcResponseQueryString["status"]; var description = nvcResponseQueryString["description"]; if (status.ToString().ToUpper() == "SUCCESS") { if (paymentConfirmationNumber.ToUpper().Equals("FAIL") || string.IsNullOrWhiteSpace(paymentConfirmationNumber)) { return(GetPaymentResponse(false, GetPaymentGatewayErrorCode(reasonCode))); } else { return(GetPaymentResponse(true, PaymentGatewayError.None)); } } else { return(GetPaymentResponse(false, GetPaymentGatewayErrorCode(reasonCode))); } }
public IPaymentResponse AmexResponseHandler(IGatewayCharge gatewayCharge) { NameValueCollection nvcResponseQueryString = HttpUtility.ParseQueryString(gatewayCharge.QueryString); VpcRequest vpcRequest = new VpcRequest(_settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Amex.VpcPaymentCaptureServerUrl), _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Amex.SecureSecret)); vpcRequest.AddVpcResponseFields(nvcResponseQueryString); string vpcTxnResponseCode = vpcRequest.GetResultField("vpc_TxnResponseCode", "Unknown"); string vpc3DSstatus = vpcRequest.GetResultField("vpc_3DSstatus", "Unknown"); string vpcTransactionNo = vpcRequest.GetResultField("vpc_TransactionNo", "Unknown"); string vpcMerchTxnRef = vpcRequest.GetResultField("vpc_MerchTxnRef", "Unknown"); string vpcAmount = vpcRequest.GetResultField("vpc_Amount", "Unknown"); if (vpcTxnResponseCode.Equals("0") && vpc3DSstatus.Equals("Y")) { try { VpcRequest vpcCaptureRequest = new VpcRequest(_settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Amex.VpcPaymentCaptureServerUrl), _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Amex.SecureSecret)); vpcCaptureRequest.AddVpcRequestFields("vpc_Version", _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Amex.VpcVersion)); vpcCaptureRequest.AddVpcRequestFields("vpc_Command", _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Amex.VpcCommand)); vpcCaptureRequest.AddVpcRequestFields("vpc_AccessCode", _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Amex.AccessKey)); vpcCaptureRequest.AddVpcRequestFields("vpc_Merchant", _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Amex.MerchantId)); vpcCaptureRequest.AddVpcRequestFields("vpc_TransNo", vpcTransactionNo); vpcCaptureRequest.AddVpcRequestFields("vpc_MerchTxnRef", vpcMerchTxnRef); vpcCaptureRequest.AddVpcRequestFields("vpc_Amount", vpcAmount); vpcCaptureRequest.AddVpcRequestFields("vpc_User", _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Amex.UserName)); vpcCaptureRequest.AddVpcRequestFields("vpc_Password", _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Amex.Password)); vpcCaptureRequest.SendVpcCaptureRequest(); string vpcCaptureTxnResponseCode = vpcRequest.GetResultField("vpc_TxnResponseCode", "Unknown"); string paymentConfirmationNumber = vpcRequest.GetResultField("vpc_TransactionNo", "Unknown"); string vpcCaptureMerchTxnRef = vpcRequest.GetResultField("vpc_MerchTxnRef", "Unknown"); if (vpcCaptureTxnResponseCode.Equals("0")) { return(GetPaymentResponse(true, PaymentGatewayError.None)); } else { return(GetPaymentResponse(false, GetPaymentGatewayErrorCode(vpcCaptureTxnResponseCode))); } } catch (Exception ex) { _logger.Log(LogCategory.Error, new Exception("Failed to process transaction", ex)); return(GetPaymentResponse(false, GetPaymentGatewayErrorCode(ex.Message))); } } else { return(GetPaymentResponse(false, GetPaymentGatewayErrorCode(vpcTxnResponseCode))); } }
public IPaymentResponse CcavenueResponseHandler(IGatewayCharge gatewayResponse) { //NameValueCollection nvcResponseQueryString = HttpUtility.ParseQueryString(gatewayResponse.QueryString); try { CCACrypto ccaCrypto = new CCACrypto(); NameValueCollection nvcEncResponse = HttpUtility.ParseQueryString(gatewayResponse.QueryString); var encResponseValue = nvcEncResponse["encResp"]; string encResponse = ccaCrypto.Decrypt(encResponseValue, _settings.GetConfigSetting <string>(SettingKeys.PaymentGateway.Ccavenue.WorkingKey)); NameValueCollection nvcResponseQueryString = new NameValueCollection(); string[] segments = encResponse.Split('&'); foreach (string seg in segments) { string[] parts = seg.Split('='); if (parts.Length > 0) { string Key = parts[0].Trim(); string Value = parts[1].Trim(); nvcResponseQueryString.Add(Key, Value); } } var orderId = nvcResponseQueryString["order_id"]; var paymentConfirmationNumber = nvcResponseQueryString["tracking_id"]; var orderStatus = nvcResponseQueryString["order_status"]; var statusMessage = nvcResponseQueryString["status_message"]; var amount = nvcResponseQueryString["amount"]; var paymentMode = nvcResponseQueryString["payment_mode"]; bool payStatus = orderStatus.ToUpper().Equals("SUCCESS") && !paymentConfirmationNumber.ToUpper().Equals("FAIL") && !string.IsNullOrWhiteSpace(paymentConfirmationNumber); if (payStatus) { _transactionStatusUpdater.UpdateTranscationStatus(Convert.ToInt64(orderId)); } _transactionPaymentDetailRepository.Save(new TransactionPaymentDetail { TransactionId = Convert.ToInt64(orderId), PaymentOptionId = paymentMode == "Net Banking" ? PaymentOptions.NetBanking : PaymentOptions.CashCard, PaymentGatewayId = PaymentGateway.CCAvenue, RequestType = "Charge Recieved", Amount = amount != null ? amount.ToString() : "", PayConfNumber = paymentConfirmationNumber, PaymentDetail = "{\"Response\":" + Newtonsoft.Json.JsonConvert.SerializeObject(nvcResponseQueryString.AllKeys.ToDictionary(k => k, k => nvcResponseQueryString[k])) + ",\"encRepsonse\":" + encResponseValue + "}", }); return(GetPaymentResponse(payStatus, payStatus ? PaymentGatewayError.None : GetPaymentGatewayErrorCode(string.IsNullOrWhiteSpace(statusMessage) ? "Transaction declined" : statusMessage))); } catch (Exception ex) { _logger.Log(LogCategory.Error, new Exception("Failed to process transaction", ex)); return(GetPaymentResponse(false, GetPaymentGatewayErrorCode(ex.Message))); } }
public async Task <IPaymentResponse> NabTransactResponseHandler(IGatewayCharge gatewayResponse) { NameValueCollection nvcResponseQueryString = HttpUtility.ParseQueryString(gatewayResponse.QueryString); try { var resultText = nvcResponseQueryString["restext"]; var summaryCode = nvcResponseQueryString["summarycode"]; var resultCode = nvcResponseQueryString["rescode"]; var paymentConfirmationNumber = nvcResponseQueryString["txnid"]; var fingerPrint = nvcResponseQueryString["fingerprint"]; var orderId = nvcResponseQueryString["refid"]; _transactionPaymentDetailRepository.Save(new TransactionPaymentDetail { TransactionId = Convert.ToInt64(orderId), PaymentOptionId = PaymentOptions.None, PaymentGatewayId = PaymentGateway.NabTransact, RequestType = "Charge Recieved", Amount = "", PayConfNumber = paymentConfirmationNumber, PaymentDetail = "{\"Response\":" + Newtonsoft.Json.JsonConvert.SerializeObject(nvcResponseQueryString.AllKeys.ToDictionary(k => k, k => nvcResponseQueryString[k])) + "}", }); if (summaryCode.Equals("1")) { if (resultCode.Equals("00") || resultCode.Equals("08") || resultCode.Equals("11")) { await _mediator.Publish(new TransactionEvent { TransactionStatus = TransactionStatus.Success, TransactionId = Convert.ToInt64(orderId) }); return(GetPaymentResponse(true, PaymentGatewayError.None, PaymentGateway.NabTransact)); } else { return(GetPaymentResponse(false, GetPaymentGatewayErrorCode(resultCode), PaymentGateway.NabTransact)); } } else { return(GetPaymentResponse(false, GetPaymentGatewayErrorCode(resultCode), PaymentGateway.NabTransact)); } } catch (Exception ex) { _logger.Log(LogCategory.Error, new Exception("Failed to handle response", ex)); return(GetPaymentResponse(false, GetPaymentGatewayErrorCode(ex.Message), PaymentGateway.NabTransact)); } }
public IPaymentResponse HdfcResponseHandler(IGatewayCharge gatewayResponse) { NameValueCollection nvcResponseQueryString = HttpUtility.ParseQueryString(gatewayResponse.QueryString); var paymentId = nvcResponseQueryString["MD"]; var paymentAuthenticationResponse = nvcResponseQueryString["PaRes"]; try { string response = gatewayResponse.Response;//HdfcChargerHelper.HttpWebRequestHandler(_settings.GetConfigSetting<string>(SettingKeys.PaymentGateway.Hdfc.PayerAuthenticationUrl), GetHdfcEnrolledRequest(paymentId, paymentAuthenticationResponse)); string result = HdfcChargerHelper.GetResultField(response, "result"); string error = HdfcChargerHelper.GetResultField(response, "error_text"); var amount = HdfcChargerHelper.GetResultField(response, "amt"); paymentId = HdfcChargerHelper.GetResultField(response, "paymentid"); string paymentConfirmationNumber = HdfcChargerHelper.GetResultField(response, "tranid"); var transactionId = HdfcChargerHelper.GetResultField(response, "trackid"); bool payStatus = result.ToUpper().Equals("CAPTURED") ? true : false; if (payStatus) { if (transactionId != null) { _transactionStatusUpdater.UpdateTranscationStatus(Convert.ToInt64(transactionId)); _transactionPaymentDetailRepository.Save(new TransactionPaymentDetail { TransactionId = Convert.ToInt64(transactionId), PaymentOptionId = PaymentOptions.CreditCard, PaymentGatewayId = PaymentGateway.HDFC, RequestType = "Enrolled Recieved", Amount = amount.ToString(), PayConfNumber = paymentConfirmationNumber, PaymentDetail = "{\"QueryString\":" + JsonConvert.SerializeObject(nvcResponseQueryString.AllKeys.ToDictionary(k => k, k => nvcResponseQueryString[k])) + ",\"Response\":{\"Result\":\"" + result + "\",\"Error\":\"" + error + "\",\"Amount\":\"" + amount + "\",\"PaymentConfirmationNumber\":\"" + paymentConfirmationNumber + "\",\"PaymentId\":\"" + paymentId + "\",\"TrackId\":\"" + transactionId + "\"}}" }); } } return(GetPaymentResponse(payStatus ? true : false, payStatus ? PaymentGatewayError.None : HdfcChargerHelper.GetPaymentGatewayErrorCode(string.IsNullOrWhiteSpace(error) ? "Transaction declined" : error))); } catch (Exception ex) { _logger.Log(LogCategory.Error, new Exception("Failed to process transaction", ex)); return(GetPaymentResponse(false, HdfcChargerHelper.GetPaymentGatewayErrorCode(ex.Message))); } }
public IPaymentResponse PaypalResponseHandler(IGatewayCharge gatewayCharge) { NameValueCollection nvcResponseQueryString = HttpUtility.ParseQueryString(gatewayCharge.QueryString); var token = nvcResponseQueryString["TOKEN"]; var payerId = nvcResponseQueryString["PAYERID"]; try { if (token != null && payerId != null) { NVPCodec encoder = new NVPCodec(); NVPCodec decoder = new NVPCodec(); encoder["METHOD"] = "DoExpressCheckoutPayment"; encoder["TOKEN"] = token; encoder["PAYMENTREQUEST_0_PAYMENTACTION"] = "Sale"; encoder["PAYERID"] = payerId; encoder["PAYMENTREQUEST_0_AMT"] = gatewayCharge.Amount.ToString(); encoder["PAYMENTREQUEST_0_CURRENCYCODE"] = "USD"; string nvpRequest = encoder.ConvertToNvpString(); string nvpResponse = HttpNvpRequestHandler(nvpRequest); decoder.ConvertToNameValueCollection(nvpResponse); string acknowledgementStatus = decoder["ACK"].ToLower(); if (acknowledgementStatus != null && (acknowledgementStatus == "success" || acknowledgementStatus == "successwithwarning")) { string paypalEmail = GetExpressCheckoutDetails(token, payerId); var paymentConfirmationNumber = string.Empty; if (decoder["PAYMENTINFO_0_TRANSACTIONID"] != null) { paymentConfirmationNumber = decoder["PAYMENTINFO_0_TRANSACTIONID"].ToLower(); } if (!string.IsNullOrWhiteSpace(paymentConfirmationNumber)) { if (!string.IsNullOrWhiteSpace(paypalEmail)) { paymentConfirmationNumber = paypalEmail + "~" + paymentConfirmationNumber; } } else { paymentConfirmationNumber = paypalEmail; } return(GetPaymentResponse(true, PaymentGatewayError.None)); } else { return(GetPaymentResponse(false, GetPaymentGatewayErrorCode(decoder["L_ERRORCODE0"].ToString()))); } } else { return(token != null?GetPaymentResponse(false, PaymentGatewayError.InvalidToken) : GetPaymentResponse(false, PaymentGatewayError.InvalidPayerId)); } } catch (Exception ex) { _logger.Log(LogCategory.Error, new Exception("Failed to handle response", ex)); return(GetPaymentResponse(false, GetPaymentGatewayErrorCode(ex.Message))); } }