public static DebitResponse DoDebit(DebitRequest req) { var bankRef = Utils.RandomString(50); //do prop validation // waiting for bank debit service to do debit Repository.SaveDebitTransactionLog(new DataAccess.DebitTransactionLog() { Amount = req.amount, ChannelId = 1, DateCreated = DateTime.Now, DestinationAccount = req.destinationAccount, DestinationAccountName = req.destinationAccountName, DestinationBankCode = req.destinationBankCode, InterswitchTransactionId = req.transactionId, SourceAccount = req.sourceAccount, SourceAccountName = req.sourceAccountName, BankRequestReference = bankRef }); return(new DTO.DebitResponse() { amount = req.amount, requestReference = bankRef, responseCode = "00", responseMessage = "Succesful", transactionDate = DateTime.Now, transactionId = req.transactionId }); }
public static DebitRequest CreateDebitRequest(string pPath, string pAPIKey, DebitRequest pDebitRequest) { try { return(ApiRestServices.CreateObject <DebitRequest>(pPath + "/debit-request", pAPIKey, "debit_request", pDebitRequest)); } catch (ApplicationException ae) { throw new ApplicationException(ae.Message); } }
public static BaseResponse <BaseWalletResponseData> ProcessBetDebit(DebitRequest request) { dynamic requestData = new ExpandoObject(); requestData.Token = request.SessionToken; requestData.UID = request.UserUID; requestData.TransactionID = request.TransactionID; requestData.EventId = request.EventID; requestData.EventName = request.EventName; requestData.DebitAmount = request.Amount; requestData.betDetail = request.BetDetail; dynamic serviceData = new ExpandoObject(); CallService(ConfigurationHelper.GetConfigurationItem("DebitServiceEndpoint"), requestData, out serviceData); BaseWalletResponseData data = new BaseWalletResponseData(); JavaScriptSerializer serializer = new JavaScriptSerializer(); data.TransactionID = serviceData.TransactionID; data.Balance = (decimal)serviceData.Balance; data.errorCode = (WalletErrorCode)Enum.ToObject(typeof(WalletErrorCode), serviceData.ErrorCode); data.ErrorMessage = serviceData.ErrorDescription; data.SessionToken = serviceData.Token; DateTime outputDate = DateTime.Now; if (DateTime.TryParse(serviceData.Date.ToString(), out outputDate)) { data.Date = outputDate; } else { if (serviceData.Date.GetType().Equals(typeof(System.DateTime))) { data.Date = serviceData.Date; } else { data.Date = DateTime.UtcNow; } } if (data.errorCode.Equals(WalletErrorCode.Success)) { return(new BaseResponse <BaseWalletResponseData>(data, ResponseStatus.OK)); } else { return(new BaseResponse <BaseWalletResponseData>(data, ResponseStatus.Fail, string.Format("Service error: {0} - {1}", data.errorCode, data.ErrorMessage))); } }
private bool IsSignatureValid(string signature, DebitRequest req) { var isValid = false; try { Utils.LogInfo("IsSignatureValid : " + signature); if (Utils.Base64StringDecoder(signature).Trim().Equals(Utils.Sha512Hash(string.Format("{0}{1}{2}", req.amount, req.transactionId, Utils.InterswitchRequestSecretKey), true))) { isValid = true; } } catch (Exception e) { Utils.LogError(e, ""); } return(isValid); }
public IHttpActionResult DoDebit(DebitRequest req) { string bearerAccessToken = string.Empty; string signature = string.Empty; System.Net.Http.Headers.HttpRequestHeaders headers = this.Request.Headers; if (headers.Contains("Authorization")) { bearerAccessToken = headers.GetValues("Authorization").First(); if (!bearerAccessToken.Trim().StartsWith("Bearer ")) { return(Unauthorized()); } ; if (!Utils.IsAccessTokenValid(bearerAccessToken.Replace("Bearer ", ""))) { return(Unauthorized()); } ; } else { return(Unauthorized()); } if (headers.Contains("signature")) { signature = headers.GetValues("signature").First(); if (!IsSignatureValid(signature, req)) { return(Unauthorized()); } ; } else { return(Unauthorized()); } var response = NameEnquiryLogic.DoDebit(req); return(Ok(response)); }
public CommonApiResponse Hold(DebitRequest request, [FromServices] SessionManagerService sessionManager, [FromServices] OperationManagerService operationManager) { var merchant = (Merchant)HttpContext.Items["Merchant"]; var session = sessionManager.Create(merchant, new SessionCreateRequest { Amount = request.Amount, Currency = request.Currency, OrderDescription = request.OrderDescription, OrderId = request.OrderId, SessionType = SessionType.TwoStep }); var paymentData = new PaymentData(request.Pan, request.Year, request.Month, request.Cvv); var result = operationManager.Hold(merchant, session, paymentData); return(new DebitResponse { Status = result.OperationStatus, Auth = result.AdditionalAuth }); }
public static DebitRequest CreateDebitRequest(string pPath, string pAPIKey, DebitRequest pDebitRequest) { return(ApiRestServices.CreateObject <DebitRequest>(pPath + "/debit-request", pAPIKey, "debit_request", pDebitRequest)); }