|
|
@ -1,17 +1,18 @@ |
|
|
|
using CustomerOnlineV2.Business.Business.TransactionBusiness; |
|
|
|
using CustomerOnlineV2.Common.Models.TransactionModel; |
|
|
|
using CustomerOnlineV2.Authorization; |
|
|
|
using CustomerOnlineV2.Business.Business; |
|
|
|
using CustomerOnlineV2.Business.Business.TransactionBusiness; |
|
|
|
using CustomerOnlineV2.Common.Helper; |
|
|
|
using CustomerOnlineV2.Common.Models.HomeModel; |
|
|
|
using CustomerOnlineV2.Common.Models.Notification; |
|
|
|
using CustomerOnlineV2.Common.Models.ReceiverModel; |
|
|
|
using CustomerOnlineV2.Common.Models.TransactionModel; |
|
|
|
using Microsoft.AspNetCore.Mvc; |
|
|
|
using Newtonsoft.Json; |
|
|
|
using Serilog.Context; |
|
|
|
using CustomerOnlineV2.Authorization; |
|
|
|
using System.Text; |
|
|
|
using System.Reflection; |
|
|
|
using System.Security.Cryptography; |
|
|
|
using CustomerOnlineV2.Common.Models.HomeModel; |
|
|
|
using CustomerOnlineV2.Common.Models.AccountModel; |
|
|
|
using CustomerOnlineV2.Common.Models.RegisterModel; |
|
|
|
using CustomerOnlineV2.Common.Models.ReceiverModel; |
|
|
|
|
|
|
|
using System.Text; |
|
|
|
using Notify = CustomerOnlineV2.Common.Models.Notification; |
|
|
|
namespace CustomerOnlineV2.Controllers |
|
|
|
{ |
|
|
|
public class TransactionController : Controller |
|
|
@ -30,11 +31,11 @@ namespace CustomerOnlineV2.Controllers |
|
|
|
[Authorization("DoCalculation")] |
|
|
|
public async Task<ExrateResponse> DoCalculation(SendTransactionModel calcModel) |
|
|
|
{ |
|
|
|
ExrateResponse _response = new ExrateResponse(); |
|
|
|
ExrateResponse _response = new ExrateResponse(); |
|
|
|
var loginDetails = HttpContext.GetLoginDetails(); |
|
|
|
|
|
|
|
calcModel.ProcessId = Convert.ToString(Guid.NewGuid()); |
|
|
|
using (LogContext.PushProperty("DebugId", calcModel.ProcessId)) |
|
|
|
using (LogContext.PushProperty("DebugId", loginDetails.UserName)) |
|
|
|
{ |
|
|
|
_logger.LogInformation($"TRANSACTIONSERVICE | DOCALCULATION | REQUEST | {JsonConvert.SerializeObject(calcModel)}"); |
|
|
|
_response = await _transactionBusiness.DoCalculation(calcModel, loginDetails); |
|
|
@ -59,8 +60,9 @@ namespace CustomerOnlineV2.Controllers |
|
|
|
calcModel.IpAddress = Utilities.GetIpAddressv2(HttpContext); |
|
|
|
|
|
|
|
calcModel.ProcessId = Convert.ToString(Guid.NewGuid()); |
|
|
|
using (LogContext.PushProperty("DebugId", calcModel.ProcessId)) |
|
|
|
using (LogContext.PushProperty("DebugId", loginDetails.UserName)) |
|
|
|
{ |
|
|
|
LogContext.PushProperty("ProcessId", calcModel.ProcessId); |
|
|
|
_logger.LogInformation($"TRANSACTIONSERVICE | SENDMONEY | REQUEST | {JsonConvert.SerializeObject(calcModel)}"); |
|
|
|
_response = await _transactionBusiness.SendMoney(calcModel, loginDetails); |
|
|
|
_logger.LogInformation($"TRANSACTIONSERVICE | SENDMONEY | RESPONSE | {JsonConvert.SerializeObject(_response)}"); |
|
|
@ -73,11 +75,40 @@ namespace CustomerOnlineV2.Controllers |
|
|
|
{ |
|
|
|
SendMoneySuccessModel _response = new SendMoneySuccessModel(); |
|
|
|
var loginDetails = HttpContext.GetLoginDetails(); |
|
|
|
using (LogContext.PushProperty("DebugId", id)) |
|
|
|
using (LogContext.PushProperty("DebugId", loginDetails.UserName)) |
|
|
|
{ |
|
|
|
_logger.LogInformation($"TRANSACTIONSERVICE | GETTRANSACTIONDETAILS | REQUEST | {id}"); |
|
|
|
LogContext.PushProperty("ProcessId", id); |
|
|
|
_logger.LogInformation($"TRANSACTIONSERVICE | Success | REQUEST | {id}"); |
|
|
|
_response = await _transactionBusiness.GetTransactionDetails(id, loginDetails); |
|
|
|
_logger.LogInformation($"TRANSACTIONSERVICE | GETTRANSACTIONDETAILS | RESPONSE | {JsonConvert.SerializeObject(_response)}"); |
|
|
|
|
|
|
|
List<Mapping> bodyMappings = new List<Notify.Mapping>(); |
|
|
|
|
|
|
|
bodyMappings.Add(new Notify.Mapping() { SValue = "CustomerName", SText = _response.SenderName }); |
|
|
|
bodyMappings.Add(new Notify.Mapping() { SValue = "CollectAmt", SText = Utilities.ShowDecimal(_response.CollectAmount) }); |
|
|
|
|
|
|
|
SendNotificationRequest request = new SendNotificationRequest() |
|
|
|
{ |
|
|
|
IsBulkNotification = false, |
|
|
|
UserName = loginDetails.Email, |
|
|
|
ProviderId = "BankTransferTxnPendingStatus", |
|
|
|
NotificationTypeId = NOTIFICATION_TYPE.EMAIL.ToString(), |
|
|
|
Template = Common.Models.Notification.NotifyTemplate.BANK_TRANSFER_TXN_PENDING, |
|
|
|
Recipients = new List<RecipientViewModel>() |
|
|
|
{ |
|
|
|
new RecipientViewModel() |
|
|
|
{ |
|
|
|
NotificationContent = new NotificationDTO() { |
|
|
|
Body = JsonConvert.SerializeObject(bodyMappings), |
|
|
|
//Title will be set by mapping json
|
|
|
|
}, |
|
|
|
Address= loginDetails.Email |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
var model = NotifierV2.SendNotification(request, NOTIFICATION_TYPE.EMAIL); |
|
|
|
_logger.LogInformation($"TRANSACTIONSERVICE | BankTransferTxnPendingStatus | RESPONSE | {JsonConvert.SerializeObject(model)}"); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
return View(_response); |
|
|
|
} |
|
|
@ -87,7 +118,7 @@ namespace CustomerOnlineV2.Controllers |
|
|
|
{ |
|
|
|
TransactionDetailModel _response = new TransactionDetailModel(); |
|
|
|
var loginDetails = HttpContext.GetLoginDetails(); |
|
|
|
using (LogContext.PushProperty("DebugId", id)) |
|
|
|
using (LogContext.PushProperty("DebugId", loginDetails.UserName)) |
|
|
|
{ |
|
|
|
_logger.LogInformation($"TRANSACTIONSERVICE | GETRECEIPTDATA | REQUEST | {id}"); |
|
|
|
_response = await _transactionBusiness.GetReceiptData(id, loginDetails); |
|
|
@ -100,7 +131,7 @@ namespace CustomerOnlineV2.Controllers |
|
|
|
{ |
|
|
|
TransactionDetailModel _response = new TransactionDetailModel(); |
|
|
|
var loginDetails = HttpContext.GetLoginDetails(); |
|
|
|
using (LogContext.PushProperty("DebugId", id)) |
|
|
|
using (LogContext.PushProperty("DebugId", loginDetails.UserName)) |
|
|
|
{ |
|
|
|
_logger.LogInformation($"TRANSACTIONSERVICE | GETRECEIPTDATA | REQUEST | {id}"); |
|
|
|
_response = await _transactionBusiness.GetReceiptData(id, loginDetails); |
|
|
@ -111,19 +142,26 @@ namespace CustomerOnlineV2.Controllers |
|
|
|
|
|
|
|
[Authorization("Payment")] |
|
|
|
//[ValidateAntiForgeryToken]
|
|
|
|
public async Task<IActionResult> Payment([FromQuery] string id) |
|
|
|
public async Task<IActionResult> Payment([FromQuery] string id, [FromQuery] string refid) |
|
|
|
{ |
|
|
|
TransactionDetailModel _tranresponse = new TransactionDetailModel(); |
|
|
|
TrustPaymentRequest _request = new TrustPaymentRequest(); |
|
|
|
TrustPaymentRequest _request = new TrustPaymentRequest() { refId = refid, type= "u-details" }; |
|
|
|
var loginDetails = HttpContext.GetLoginDetails(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
using (LogContext.PushProperty("DebugId", id)) |
|
|
|
|
|
|
|
using (LogContext.PushProperty("DebugId", loginDetails.UserName)) |
|
|
|
{ |
|
|
|
LogContext.PushProperty("ProcessId", id); |
|
|
|
_logger.LogInformation($"Payment | REQUEST | {id}"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_tranresponse = await _transactionBusiness.GetReceiptData(id, loginDetails); |
|
|
|
|
|
|
|
_request.orderreference = _tranresponse.ControlNo; |
|
|
|
var _response = await _transactionBusiness.UpdateTranData(_request, loginDetails); |
|
|
|
|
|
|
|
_request.tranId = id; |
|
|
|
_request.sitereference = Utilities.ReadFromAppSettings("TrustPay:siteReference"); |
|
|
|
_request.stprofile = "default"; |
|
|
@ -138,20 +176,20 @@ namespace CustomerOnlineV2.Controllers |
|
|
|
_request.billingtelephone = _tranresponse.Mobile; |
|
|
|
_request.billingcountryiso2a = "GB"; |
|
|
|
|
|
|
|
_request.customerpremise = _tranresponse.City; |
|
|
|
_request.customerpremise = _tranresponse.City; |
|
|
|
_request.customerstreet = _tranresponse.Address; |
|
|
|
_request.customerpostcode = _tranresponse.Zipcode; |
|
|
|
_request.customertown = _tranresponse.City; |
|
|
|
//_request.customertelephone = _tranresponse.Mobile;
|
|
|
|
_request.customertelephone = _tranresponse.Mobile; |
|
|
|
_request.customercountryiso2a = "GB"; |
|
|
|
_request.billingemail= _request.customeremail= loginDetails.Email; |
|
|
|
_request.billingemail = _request.customeremail = loginDetails.Email; |
|
|
|
|
|
|
|
_request.successfulurlredirect = $"{Request.Scheme}://{Request.Host}/Transaction/TranPaySuccess"; |
|
|
|
_request.declinedurlredirect = $"{Request.Scheme}://{Request.Host}/Transaction/TranDecline"; |
|
|
|
_request.sitesecuritytimestamp=DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss"); |
|
|
|
_request.sitesecuritytimestamp = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss"); |
|
|
|
|
|
|
|
_request.merchantemail = Utilities.ReadFromAppSettings("TrustPay:merchantemail"); |
|
|
|
|
|
|
|
|
|
|
|
var hash = $"GBP{_request.mainamount}{Utilities.ReadFromAppSettings("TrustPay:siteReference")}{_request.sitesecuritytimestamp}{Utilities.ReadFromAppSettings("TrustPay:SitePassword")}"; |
|
|
|
|
|
|
|
StringBuilder builder = new StringBuilder(); |
|
|
@ -170,9 +208,10 @@ namespace CustomerOnlineV2.Controllers |
|
|
|
_request.sitesecurity = $"h{builder.ToString()}"; |
|
|
|
//TempData["TrustPaymentRequest"] = _request;
|
|
|
|
|
|
|
|
_request.type = "u-details-expire"; |
|
|
|
_logger.LogInformation($"Payment | REQUEST | {JsonConvert.SerializeObject(_request)}"); |
|
|
|
|
|
|
|
var _response = await _transactionBusiness.SaveTranData(_request, loginDetails); |
|
|
|
await _transactionBusiness.UpdateTranDataFailed(_request, loginDetails); |
|
|
|
} |
|
|
|
return View(_request); |
|
|
|
} |
|
|
@ -189,21 +228,22 @@ namespace CustomerOnlineV2.Controllers |
|
|
|
//var _requestFromTempData = TempData["TrustPaymentRequest"] as TrustPaymentRequest;
|
|
|
|
var _request = new TrustPaymentRequest |
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
errorcode = errorCode.ToString(), |
|
|
|
orderreference = orderReference.ToString(), |
|
|
|
paymenttypedescription = paymentTypeDescription.ToString(), |
|
|
|
requestreference = requestReference.ToString(), |
|
|
|
responsesitesecurity = responseSiteSecurity.ToString(), |
|
|
|
settlestatus = settleStatus.ToString(), |
|
|
|
transactionreference = transactionReference.ToString() |
|
|
|
transactionreference = transactionReference.ToString(), |
|
|
|
type= "details-ControlNo" |
|
|
|
}; |
|
|
|
|
|
|
|
var loginDetails = HttpContext.GetLoginDetails(); |
|
|
|
using (LogContext.PushProperty("DebugId", loginDetails.UserName)) |
|
|
|
{ |
|
|
|
_logger.LogDebug("TranPaySuccess | REQUEST | " + JsonConvert.SerializeObject(_request)); |
|
|
|
} |
|
|
|
|
|
|
|
var _response = await _transactionBusiness.UpdateTranData(_request, loginDetails); |
|
|
|
return View(_response); |
|
|
|
} |
|
|
@ -229,12 +269,17 @@ namespace CustomerOnlineV2.Controllers |
|
|
|
requestreference = requestReference.ToString(), |
|
|
|
responsesitesecurity = responseSiteSecurity.ToString(), |
|
|
|
settlestatus = settleStatus.ToString(), |
|
|
|
transactionreference = transactionReference.ToString() |
|
|
|
transactionreference = transactionReference.ToString(), |
|
|
|
type = "u-details-fail" |
|
|
|
}; |
|
|
|
|
|
|
|
var loginDetails = HttpContext.GetLoginDetails(); |
|
|
|
using (LogContext.PushProperty("DebugId", loginDetails.UserName)) |
|
|
|
{ |
|
|
|
_logger.LogDebug("TranDecline | REQUEST | " + JsonConvert.SerializeObject(_request)); |
|
|
|
} |
|
|
|
var _response = await _transactionBusiness.UpdateTranDataFailed(_request, loginDetails); |
|
|
|
|
|
|
|
|
|
|
|
_response.transactionreference = transactionReference; |
|
|
|
return View(_response); |
|
|
|
} |
|
|
@ -262,7 +307,6 @@ namespace CustomerOnlineV2.Controllers |
|
|
|
var loginDetails = HttpContext.GetLoginDetails(); |
|
|
|
return await _transactionBusiness.GetRewardPoints(loginDetails); |
|
|
|
} |
|
|
|
|
|
|
|
[HttpGet] |
|
|
|
public async Task<ReceiverListModel> GetReceiverListDetail(string id) |
|
|
|
{ |
|
|
|