public TopUpResponse TopUp(TopUpRequest topUpRequest) { Log(Logger.LogMessageType.Info, "-> -------------------- Comienza la ejecución del método Stock.TopUp", Logger.LoggingLevelType.Medium); TopUpRequestInternal internalObject = new TopUpRequestInternal() { Amount = topUpRequest.Request.Amount, DeviceType = topUpRequest.Request.DeviceType, HostTransRef = topUpRequest.Request.HostTransRef, MNO = topUpRequest.Request.MNO, MNODefinedID = topUpRequest.Request.MNODefinedID, Recipient = topUpRequest.Request.Recipient, SessionID = topUpRequest.Request.SessionID }; TopUpResponseInternal internalResponse = TopUpProvider.TopUpInternal(internalObject); TopUpResponse response = new TopUpResponse(); TopUpResponseBody responseBody = new TopUpResponseBody() { ResponseCode = internalResponse.ResponseCode, ResponseMessage = internalResponse.ResponseMessage, TransactionID = internalResponse.TransactionID, HostTransRef = internalResponse.HostTransRef, Fee = internalResponse.Fee, BalanceStock = internalResponse.BalanceStock }; response.Response = responseBody; Log(Logger.LogMessageType.Info, "-> -------------------- Termina la ejecución del método Stock.TopUp", Logger.LoggingLevelType.Medium); return(response); }
public TopUpResponse TopUp(TopUpRequest request) { return(WrapResponse <TopUpResponse, TopUpResponseBody>( new ServiceExecutionDelegator <TopUpResponseBody, TopUpRequestBody>().ResolveRequest(request.Request, (request.Request.Platform ?? ConfigurationManager.AppSettings["DefaultPlatform"]), ApiServiceName.TopUp))); // return WrapResponse<TopUpResponse, TopUpResponseBody>( // new ServiceExecutionDelegator<TopUpResponseBody, TopUpRequestBody>().ResolveRequestService(request.Request, (request.Request.Platform ?? ConfigurationManager.AppSettings["DefaultPlatform"]), ApiServiceName.TopUp)); }
public async Task <Card> TopUp(TopUpRequest topUpRequest) { var card = await _unitOfWork.GetRepository <Card>().FindAsync(x => x.CardNumber == topUpRequest.CardNumber && x.Status == 1); if (card == null) { throw new Exception("Thẻ không tồn tại hoặc bị từ chối"); } card.Money += topUpRequest.Money; card.ExpiredDate = DateTime.Now.AddYears(1); _unitOfWork.GetRepository <Card>().Update(card); await _unitOfWork.CommitAsync(); return(card); }
/// <summary> /// Extension method to simplify adding money to a savings goal. /// </summary> /// <param name="http"></param> /// <param name="goalId"></param> /// <param name="minorUnits"></param> /// <returns></returns> public static Task <HttpResponseMessage> SavingsGoalsAddMoney(this HttpClient http, string goalId, long minorUnits) { Guard.AgainstNullArgument(nameof(http), http); Guard.AgainstNullOrWhitespaceArgument(nameof(goalId), goalId); if (minorUnits < 0) { return(null); } var req = new TopUpRequest { Amount = new CurrencyAndAmount { Currency = "GBP", MinorUnits = minorUnits } }; return(http.StarlingPutAsync($"v1/savings-goals/{goalId}/add-money/{Guid.NewGuid()}", req)); }
public async Task <IActionResult> Add(string cardId, [FromBody] TopUpRequest topUpRequest) { if (!_cachingPin.IsPinCached(cardId)) { return(Unauthorized()); } try { var result = await _cardRepository.UpdateBalance(cardId, topUpRequest.TopUpAmount); return(Ok(new TopUpResponse(topUpRequest.TopUpAmount, result.Balance))); } catch (DbException e) { if (e.Message.Contains(ErrorMessage).Equals(true)) { return(StatusCode(StatusCodes.Status400BadRequest, e)); } return(StatusCode(StatusCodes.Status500InternalServerError, "Database Failure")); } }
public async Task <IHttpActionResult> PostTopUpRequest(TopUpRequest topUpRequest) { //return NotFound(); Guid fiId = Guid.Parse(fiIdString); TopUpResponse topUpResponse = new TopUpResponse(); Helpers.Transfer_Light transfer = new Helpers.Transfer_Light(); switch (topUpRequest.CarrierID) { case "Digicel": string userId = User.Identity.GetUserId(); var userAccounts = db.AssociatedAccounts.Where(p => p.UserID.Equals(userId)); var fromAcct = userAccounts.Where(p => p.AssociatedAccountID == topUpRequest.AssociatedAccountID).FirstOrDefault(); var minorAcct = userAccounts.Where(p => p.Description2.Equals("EPAY DIGICEL TOPUP")).FirstOrDefault(); if (fromAcct == null) { topUpResponse.Message = "Invalid source account specified."; topUpResponse.Successful = false; } //if(minorAcct != null) //{ ////################################################### //// Set maximum TopUps to a single number ////################################################### //int totalTopUps = db.Transfers.Where(p => p.BillerAccountNumber.Equals(topUpRequest.MobileNumber)).Count(); //if (totalTopUps > 2) //{ // topUpResponse.Message = "Test credit has been depleted."; // topUpResponse.Successful = false; //} //else //{ // topUpRequest.Amount = 5; // //return Ok(DigicelTopUp.TopUp(topUpRequest.MobileNumber, topUpRequest.Amount)); // DigicelTopUpResponse digicelTopUpResponse = DigicelTopUp.TopUp(topUpRequest.Territory, topUpRequest.MobileNumber, topUpRequest.Amount); // topUpResponse.Successful = digicelTopUpResponse.Code == "0"; // topUpResponse.Message = digicelTopUpResponse.Message; // topUpResponse.TransactionID = digicelTopUpResponse.TransactionID; //} ////############################################## //################################################ // LIVE CODE //################################################ //DigicelTopUpResponse digicelTopUpResponse = DigicelTopUp.TopUp(topUpRequest.Territory, topUpRequest.MobileNumber, topUpRequest.Amount); //topUpResponse.Successful = digicelTopUpResponse.Code == "0"; //topUpResponse.Message = digicelTopUpResponse.Message; //topUpResponse.TransactionID = digicelTopUpResponse.TransactionID; //################################################ //################################################ // TEST CODE //################################################ DigicelTopUpResponse digicelTopUpResponse = new DigicelTopUpResponse { Code = "0", Message = "TopUp to " + topUpRequest.MobileNumber + " Successful", TransactionID = Guid.NewGuid().ToString() }; topUpResponse.Successful = digicelTopUpResponse.Code == "0"; topUpResponse.Message = digicelTopUpResponse.Message; topUpResponse.TransactionID = digicelTopUpResponse.TransactionID; //################################################ //} //else //{ // topUpResponse.Message = "Your account has not been provisioned for this transaction."; // topUpResponse.Successful = false; //} if (!topUpResponse.Successful) { return(Ok(topUpResponse.Message)); } //################################################ // LIVE CODE //################################################ //string encryptedPin = db.PINs.Where(p => p.FinancialInstitutionID == fiId && p.UserID == userId).Select(p => p.Pin).First(); //string decryptedPin = Helpers.StringCipher.Decrypt(encryptedPin, userId); //transfer.fromAcct = fromAcct.AccountNumber; //transfer.amount = (double)topUpRequest.Amount; //transfer.toAccountNumber = minorAcct.AccountNumber; //transfer.memid = fromAcct.MemberID; //transfer.pin = decryptedPin; //string transferResponse = await COB.TransferFunds(transfer); //string[] transferResponseArray = transferResponse.Split(new string[] { "ITC" }, StringSplitOptions.RemoveEmptyEntries)[0].Split(new char[] { '\t' }, StringSplitOptions.RemoveEmptyEntries); //if (transferResponseArray[1][0] != '1') //{ // //topUpResponse.Successful = false; // topUpResponse.Message = transferResponseArray[1]; // //return Ok(topUpResponse); //} //################################################ break; case "Ozone": BillPaymentResponse response = await MiddleWare.Ozone.OzoneBillPaymentProxy.PayBill(new BillPaymentRequest { Amount = topUpRequest.Amount, AssociatedAccountID = topUpRequest.AssociatedAccountID, BillerAccountNumber = topUpRequest.MobileNumber, BillerID = "869cd85f-c155-429e-8ded-b92f41b61ec1" }); topUpResponse.Successful = response.Successful; topUpResponse.Message = response.Message; topUpResponse.TransactionID = response.TransactionID; break; default: topUpResponse.Successful = false; topUpResponse.Message = "Invalid Mobile Provider"; break; } AssociatedAccount account = db.AssociatedAccounts.Where(p => p.AssociatedAccountID == topUpRequest.AssociatedAccountID).First(); Guid billerId = db.Billers.Where(p => p.Name.Equals(topUpRequest.CarrierID)).Select(p => p.BillerID).First(); db.Transfers.Add(new E_Pay_Web_API.Models.Transfer { SourceTransactionID = DateTime.Now.ToString("yyyyMMdd-mmss"), SourceAccountNumber = account.AccountNumber, SourceAccountID = account.AssociatedAccountID, SourceInstitutionID = account.FinancialInstitutionID, MinorAccountNumber = transfer.toAccountNumber, BillerID = billerId, //BillerID = Guid.Parse(topUpRequest.CarrierID), BillerAccountNumber = topUpRequest.MobileNumber, BillerTransactionID = topUpResponse.TransactionID, TransferAmount = topUpRequest.Amount, TransferDescription = topUpRequest.CarrierID + " - TopUp", Status = topUpResponse.Successful ? "Successful" : "Error", StatusDescription = topUpResponse.Message, Created = DateTime.Now }); db.SaveChanges(); if (topUpResponse.Successful) { MailSender.SendMessage( User.Identity.GetUserName(), "E-Pay Top Up Confirmation and Receipt of Mobile Top Up Sent", "Congratulations your order has been completed successfully.\r\n\r\n" + "1 successful\r\n\r\n" + "Order ID: " + topUpResponse.TransactionID + "\r\n" + "Product: Mobile Top Up\r\n" + "Number: " + topUpRequest.MobileNumber + "\r\n" + "Country: Barbados\r\n" + "Top-up Amount: BBD $" + topUpRequest.Amount.ToString() + "\r\n" + "Receive Amount: BBD $" + topUpRequest.Amount.ToString() + "\r\n\r\n\r\n" + "Date & Time: " + DateTime.Now.ToString() + "\r\n\r\n" + "Amount Paid: BBD $" + topUpRequest.Amount.ToString() + "\r\n\r\n" + "From Account: " + account.Description + ": " + account.Description3 + " - " + account.AccountNumber + "\r\n\r\n" + "If you have any queries, please contact our customer care team.\r\n" + "Thanks,\r\n" + "The E-Pay Team" ); } return(Ok(topUpResponse)); //return NotFound(); }
public async Task <IActionResult> TopUp(TopUpRequest topUpRequest) { var response = await _cardService.TopUp(topUpRequest); return(Ok(new ApiOkResponse(response))); }
public Task <(HttpStatusCode status, CreateOrUpdateSavingsGoalResponse response)> AddMoney(Guid goalId, TopUpRequest topup) { var transferId = Guid.NewGuid(); return(this.RequestBuilder .WithUrl($"{this.BaseUrl}v1/savings-goals/{goalId}/add-money/{transferId}") .WithMethod(HttpMethod.Put) .WithHeader("Authorization", $"Bearer {this.AccessToken}") .WithBody(topup) .SendAsync <CreateOrUpdateSavingsGoalResponse>()); }