You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
432 lines
15 KiB
432 lines
15 KiB
using Business.KFTCBusiness;
|
|
using Business.SendMoney;
|
|
using Common;
|
|
using Common.KFTC;
|
|
using Common.Model;
|
|
using Common.Model.KFTCRegistration;
|
|
using JsonRx.AuthFilter;
|
|
using JsonRx.Helper;
|
|
using log4net;
|
|
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Web.Http;
|
|
|
|
namespace JsonRx.Api
|
|
{
|
|
/// <summary>
|
|
/// This is route prefix to make KFTC registration
|
|
/// </summary>
|
|
[RoutePrefix("api/v1/kftc")]
|
|
public class KftcController : ApiController
|
|
{
|
|
private readonly IKftcProcessBusiness _business;
|
|
|
|
/// <summary>
|
|
/// </summary>
|
|
public KftcController() { }
|
|
|
|
/// <summary>
|
|
/// </summary>
|
|
/// <param name="business"></param>
|
|
public KftcController(KftcProcessBusiness business)
|
|
{
|
|
_business = business;
|
|
}
|
|
|
|
private static readonly ILog Log = LogManager.GetLogger(typeof(KftcController));
|
|
|
|
/// <summary>
|
|
/// </summary>
|
|
/// <param name="user"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
[TokenAuthentication]
|
|
[Route("GetKftcParameters/{user}")]
|
|
public IHttpActionResult GetKftcParameters(string user)
|
|
{
|
|
JsonRxResponse resp = new JsonRxResponse();
|
|
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
|
|
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "GetKftcParameters";
|
|
Log.Debug("Log1 : GetKftcParameters started : header : " + Request);
|
|
if (user == null)
|
|
{
|
|
resp.ErrorCode = "1";
|
|
resp.Msg = "Invalid Parameters.";
|
|
resp.Data = new { };
|
|
return Ok(resp);
|
|
}
|
|
|
|
var email = Util.GetUsername(Request);
|
|
|
|
if (!email.ToLower().Equals(user.ToLower()))
|
|
{
|
|
resp.ErrorCode = "1";
|
|
resp.Msg = "Invalid Parameters.";
|
|
resp.Data = new { };
|
|
return Ok(resp);
|
|
}
|
|
|
|
var customerId = Util.GetCustomerId(Request);
|
|
var kftcLangauge = Util.GetKFTCLanguage(Request);
|
|
var kftcClientId = Util.GetKFTCClientId(Request);
|
|
|
|
Log.Debug("key:Kftc-GetKftcParameters process started");
|
|
|
|
resp = _business.RegistrationKFTC(customerId, kftcLangauge, kftcClientId);
|
|
Log.Debug(resp);
|
|
return Ok(resp);
|
|
}
|
|
|
|
/// <summary>
|
|
/// </summary>
|
|
/// <param name="user"></param>
|
|
/// <param name="req"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
[TokenAuthentication]
|
|
[Route("DeleteAccount/{user}")]
|
|
public IHttpActionResult DeleteAccount(string user, DeleteRequest req)
|
|
{
|
|
JsonRxResponse jxRes = new JsonRxResponse();
|
|
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
|
|
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "DeleteAccount";
|
|
|
|
Log.Debug("Log1: DeleteAccount started : header : " + Request);
|
|
|
|
if (user == null)
|
|
{
|
|
jxRes.ErrorCode = "1";
|
|
jxRes.Msg = "Invalid Parameters.";
|
|
jxRes.Data = new { };
|
|
}
|
|
|
|
var email = Util.GetUsername(Request);
|
|
|
|
//if (!email.ToLower().Equals(user.ToLower()))
|
|
//{
|
|
// jxRes.ErrorCode = "1";
|
|
// jxRes.Msg = "Invalid Parameters.";
|
|
// jxRes.Data = new {};
|
|
//}
|
|
|
|
var customerId = Util.GetCustomerId(Request);
|
|
//var fintechUseNo = Util.GetFintechUseNo(Request);
|
|
//var accessToken = Util.GetAccessToken(Request);
|
|
//var customerId = "1";
|
|
|
|
Log.Debug("key:Kftc-DeleteAccount process started(inquiry)");
|
|
jxRes = _business.CancelAccount("inquiry", req, customerId);
|
|
Log.Debug("result:Kftc-DeleteAccount process started(inquiry):" + jxRes.ErrorCode);
|
|
if (jxRes.ErrorCode == "0")
|
|
{
|
|
Log.Debug("key:Kftc-DeleteAccount process started(transfer)");
|
|
jxRes = _business.CancelAccount("transfer", req, customerId);
|
|
Log.Debug("result:Kftc-DeleteAccount process started(transfer):" + jxRes.ErrorCode);
|
|
if (jxRes.ErrorCode == "0")
|
|
{
|
|
jxRes = _business.DeleteAccount(req, customerId);
|
|
}
|
|
}
|
|
|
|
Log.Debug("result:Kftc-DeleteAccount process ended:ErrorCode=" + jxRes.ErrorCode + ",Msg=" + jxRes.Msg);
|
|
return Ok(jxRes);
|
|
}
|
|
|
|
/// <summary>
|
|
/// </summary>
|
|
/// <param name="user"></param>
|
|
/// <param name="req"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
[TokenAuthentication]
|
|
[Route("GetOTP")]
|
|
public IHttpActionResult GetOPTNumber(OTP_Request oTP)
|
|
{
|
|
JsonRxResponse jxRes = new JsonRxResponse();
|
|
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
|
|
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "GetOPTNumber";
|
|
|
|
Log.Debug("Log1: GetOPTNumber started : header : " + Request);
|
|
|
|
if (oTP.userId == null)
|
|
{
|
|
jxRes.ErrorCode = "1";
|
|
jxRes.Msg = "Invalid Parameters.";
|
|
jxRes.Data = new { Message = jxRes.Msg };
|
|
}
|
|
|
|
var email = Util.GetUsername(Request);
|
|
|
|
if (!email.ToLower().Equals(oTP.userId.ToLower()))
|
|
{
|
|
jxRes.ErrorCode = "1";
|
|
jxRes.Msg = "Invalid Parameters.";
|
|
jxRes.Data = new { Message = jxRes.Msg };
|
|
}
|
|
var customerId = Util.GetCustomerId(Request);
|
|
Log.Debug("key:Kftc-GetOPTNumber process started");
|
|
jxRes = _business.GetOPTNumber(customerId, oTP.userId, oTP.amount, oTP.kftcId);
|
|
return Ok(jxRes);
|
|
}
|
|
|
|
/// <summary>
|
|
/// </summary>
|
|
/// <param name="user"></param>
|
|
/// <param name="req"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
[TokenAuthentication]
|
|
[Route("KFTCBankList")]
|
|
public IHttpActionResult GetKFTCBankList()
|
|
{
|
|
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
|
|
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "GetKFTCBankList";
|
|
|
|
Log.Debug("Starting Get KFTCBankList");
|
|
|
|
var resp = _business.GetKFTCBankList();
|
|
return Ok(resp);
|
|
}
|
|
|
|
/// <summary>
|
|
/// </summary>
|
|
/// <param name="user"></param>
|
|
/// <param name="req"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
[TokenAuthentication]
|
|
[Route("CheckRealName")]
|
|
public IHttpActionResult CheckRealName(CheckRealNameModel model)
|
|
{
|
|
JsonRxResponse jxRes = new JsonRxResponse();
|
|
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
|
|
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "CheckRealName";
|
|
|
|
Log.Debug("Starting Real Name Checking" + JsonConvert.SerializeObject(model));
|
|
|
|
if (model == null)
|
|
{
|
|
jxRes.ErrorCode = "1";
|
|
jxRes.Msg = "Invalid parameters.";
|
|
jxRes.Data = new { Message = jxRes.Msg };
|
|
return Ok(jxRes);
|
|
}
|
|
|
|
jxRes = _business.KFTC_RealNameCheck_V2(model);
|
|
return Ok(jxRes);
|
|
}
|
|
|
|
[HttpGet]
|
|
[TokenAuthentication]
|
|
[Route("CheckKFTCAccounts/{user}")]
|
|
public IHttpActionResult CheckKFTCAccounts(string user)
|
|
{
|
|
JsonRxResponse resp = new JsonRxResponse();
|
|
LogicalThreadContext.Properties["TraceId"] = Guid.NewGuid();
|
|
LogicalThreadContext.Properties["MethodName"] = "CheckKFTCAccounts";
|
|
Log.Debug("Log1 : CheckKFTCAccounts started : header : " + Request);
|
|
if (user == null)
|
|
{
|
|
resp.ErrorCode = "1";
|
|
resp.Msg = "Invalid Parameters.";
|
|
resp.Data = new { };
|
|
return Ok(resp);
|
|
}
|
|
|
|
var email = Util.GetUsername(Request);
|
|
//email = "maxkim@gmeremit.com";
|
|
|
|
if (!email.ToLower().Equals(user.ToLower()))
|
|
{
|
|
resp.ErrorCode = "1";
|
|
resp.Msg = "Invalid Parameters.";
|
|
resp.Data = new { };
|
|
return Ok(resp);
|
|
}
|
|
|
|
var customerId = Util.GetCustomerId(Request);
|
|
var kftcLangauge = Util.GetKFTCLanguage(Request);
|
|
var kftcClientId = Util.GetKFTCClientId(Request);
|
|
|
|
//customerId = "85074";
|
|
//kftcLangauge = "ko";
|
|
//kftcClientId = "l7xx9a67eaeb6a684f15b441769931d582b3";
|
|
|
|
Log.Debug("key:Kftc-CheckKFTCAccounts process started");
|
|
|
|
resp = _business.CheckKFTCAccounts(customerId, kftcLangauge, kftcClientId);
|
|
return Ok(resp);
|
|
}
|
|
|
|
/* 2019.09 Dana */
|
|
|
|
[HttpPost]
|
|
[TokenAuthentication]
|
|
[Route("CheckBalance")]
|
|
public IHttpActionResult CheckBalance(CheckBalanceModel model)
|
|
{
|
|
JsonRxResponse jxRes = new JsonRxResponse();
|
|
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
|
|
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "CheckBalance";
|
|
|
|
Log.Debug("Starting Balance Checking" + JsonConvert.SerializeObject(model));
|
|
|
|
if (model == null)
|
|
{
|
|
jxRes.ErrorCode = "1";
|
|
jxRes.Msg = "Invalid parameters.";
|
|
|
|
return Ok(jxRes);
|
|
}
|
|
|
|
jxRes = _business.CheckBalance(model);
|
|
return Ok(jxRes);
|
|
}
|
|
|
|
/* 2019.09 Dana */
|
|
|
|
[HttpPost]
|
|
[TokenAuthentication]
|
|
[Route("DomeRemitStart")]
|
|
public IHttpActionResult DomeRemitStart(CheckRealNameModel model)
|
|
{
|
|
JsonRxResponse jxRes = new JsonRxResponse();
|
|
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
|
|
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "DomeRemitStart";
|
|
|
|
Log.Debug("Starting Domestic Remittance basic information : " + model.CustomerId);
|
|
|
|
if (model.CustomerId == null)
|
|
{
|
|
jxRes.ErrorCode = "1";
|
|
jxRes.Msg = "Invalid parameters.";
|
|
jxRes.Data = new { Message = jxRes.Msg };
|
|
return Ok(jxRes);
|
|
}
|
|
|
|
jxRes = _business.DomeRemitStart(model.CustomerId);
|
|
return Ok(jxRes);
|
|
}
|
|
|
|
/* 2019.09 Dana */
|
|
|
|
[HttpPost]
|
|
[TokenAuthentication]
|
|
[Route("GetRecipientInfo")]
|
|
public IHttpActionResult GetRecipientInfo(CheckRealNameModel model)
|
|
{
|
|
JsonRxResponse jxRes = new JsonRxResponse();
|
|
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
|
|
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "GetRecipientInfo";
|
|
|
|
Log.Debug("Starting Get Recipient Information" + JsonConvert.SerializeObject(model));
|
|
|
|
if (model == null)
|
|
{
|
|
jxRes.ErrorCode = "1";
|
|
jxRes.Msg = "Invalid parameters.";
|
|
jxRes.Data = new { Message = jxRes.Msg };
|
|
return Ok(jxRes);
|
|
}
|
|
|
|
//jxRes = _business.GetRecipientInfo(model);
|
|
|
|
//for test
|
|
Response.recipientInfo info = new Response.recipientInfo();
|
|
info.RecipientName = "홍길동";
|
|
info.RecipientPhone = "01012345678";
|
|
jxRes.ErrorCode = "0";
|
|
jxRes.Msg = "Success";
|
|
jxRes.Data = info;
|
|
|
|
return Ok(jxRes);
|
|
}
|
|
|
|
/* 2019.09 Dana */
|
|
|
|
[HttpPost]
|
|
[TokenAuthentication]
|
|
[Route("GetRecentHistories")]
|
|
public IHttpActionResult GetRecentHistories(RecentHistoryModel model)
|
|
{
|
|
JsonRxResponse jxRes = new JsonRxResponse();
|
|
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
|
|
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "GetRecentHistories";
|
|
|
|
Log.Debug("Starting Get Recent History" + JsonConvert.SerializeObject(model));
|
|
|
|
if (model == null)
|
|
{
|
|
jxRes.ErrorCode = "1";
|
|
jxRes.Msg = "Invalid parameters.";
|
|
jxRes.Data = new { Message = jxRes.Msg };
|
|
return Ok(jxRes);
|
|
}
|
|
|
|
jxRes = _business.GetRecentHistories(model);
|
|
return Ok(jxRes);
|
|
}
|
|
|
|
/* 2019.09 Dana */
|
|
|
|
[HttpPost]
|
|
[TokenAuthentication]
|
|
[Route("SendDomeRimit")]
|
|
public IHttpActionResult SendDomeRimit(DomeRimitRequestModel model)
|
|
{
|
|
DbResult _dbRes = new DbResult();
|
|
JsonRxResponse jxRes = new JsonRxResponse();
|
|
jxRes.SetResponse("1", "Invalid transaction requested", null);
|
|
|
|
LogicalThreadContext.Properties[LoggerProperty.PROCESSID] = Guid.NewGuid();
|
|
LogicalThreadContext.Properties[LoggerProperty.CREATEDBY] = model.UserId;
|
|
LogicalThreadContext.Properties[LoggerProperty.METHODNAME] = "SendDomeRimit";
|
|
|
|
Log.Debug("Starting Domestic Remittance" + JsonConvert.SerializeObject(model));
|
|
|
|
if (model == null)
|
|
{
|
|
jxRes.ErrorCode = "1";
|
|
jxRes.Msg = "Invalid parameters.";
|
|
jxRes.Data = new { Message = jxRes.Msg };
|
|
return Ok(jxRes);
|
|
}
|
|
|
|
if (ModelState.IsValid)// OTP인증
|
|
{
|
|
Log.Debug("Domestic Remittance OTP Validate Start : " + Convert.ToString(model.txnPassword));
|
|
|
|
//model.txnPassword = StringExtension.ToVirtualKeyDecryptString(model.txnPassword);
|
|
model.txnPassword = model.txnPassword;
|
|
|
|
string type = "";
|
|
if (model.type == "wallet")
|
|
{
|
|
type = "wallet";
|
|
}
|
|
else
|
|
{
|
|
type = (model.isUseBiometric) ? "wallet" : "autodebit";
|
|
}
|
|
Log.Debug("is biometric use: " + Convert.ToString(model.isUseBiometric));
|
|
|
|
_dbRes = _business.CheckLoginPassword(model.UserId, model.txnPassword, type, model.CustomerId);
|
|
if (_dbRes.ResponseCode == "0")
|
|
{
|
|
DomesticRemitModel DRModel = new DomesticRemitModel();
|
|
DRModel.SetRequestData(model);
|
|
jxRes = _business.SendDomeRimit(DRModel);
|
|
return Ok(jxRes);
|
|
}
|
|
else
|
|
{
|
|
jxRes.SetResponse("1", _dbRes.Msg, null);
|
|
return Ok(jxRes);
|
|
}
|
|
}
|
|
|
|
//jxRes = _business.SendDomeRimit(model); // for UAT Test
|
|
return Ok(jxRes);
|
|
}
|
|
}
|
|
}
|