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.
247 lines
9.5 KiB
247 lines
9.5 KiB
using Common;
|
|
using Common.Helper;
|
|
using Common.Language;
|
|
using Common.Model.AutoRefund;
|
|
using Common.Model.Enum;
|
|
using Common.Model.KwangjuBank;
|
|
using Common.Model.PennyTest;
|
|
using log4net;
|
|
using Newtonsoft.Json;
|
|
using PushNotification;
|
|
using Repository.PennyTest;
|
|
using System;
|
|
using System.Runtime.Remoting.Messaging;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Business.PennyTest
|
|
{
|
|
public class PennyTestBusiness : IPennyTestBusiness
|
|
{
|
|
private readonly IPennyTestRepository _repo;
|
|
private static readonly ILog Log = LogManager.GetLogger(typeof(PennyTestBusiness));
|
|
|
|
public PennyTestBusiness(IPennyTestRepository repo)
|
|
{
|
|
_repo = repo;
|
|
}
|
|
|
|
public JsonRxResponse SavePennyTestCustomerCertificate(PennyTestCustomerCert cert)
|
|
{
|
|
return _repo.SavePennyTestCustomerCertificate(cert);
|
|
}
|
|
|
|
public JsonRxResponse RealNameCheck(RealNameRequest req)
|
|
{
|
|
var json = JsonConvert.SerializeObject(req);
|
|
Log.Debug("Real name check with parameters " + json);
|
|
JsonRxResponse response = new JsonRxResponse();
|
|
try
|
|
{
|
|
var obj = KwangjuBankApi.RealNameCheck(json);
|
|
if (obj == null || string.IsNullOrEmpty(obj))
|
|
{
|
|
Log.Debug("Returning null or empty while RealNameCheck");
|
|
response.SetResponse("1", "Error occured while RealNameCheck", null);
|
|
return response;
|
|
}
|
|
|
|
response = JsonConvert.DeserializeObject<JsonRxResponse>(obj);
|
|
if (response.ErrorCode.Equals(ErrorCode.One))
|
|
{
|
|
var kjMsg = JsonConvert.DeserializeObject<KwangjuResult>(response.Msg);
|
|
var eCode = kjMsg.error.code.ToString();
|
|
var eMessage = kjMsg.error.message.ToString();
|
|
|
|
response.Msg = "Something is wrong. " + eCode + " " + eMessage;
|
|
}
|
|
return response;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Log.Error("Something Went Wrong, Please Try Again!!", ex);
|
|
response.SetResponse("1", "Error occured while RealNameCheck", null);
|
|
return response;
|
|
}
|
|
}
|
|
|
|
public JsonRxResponse Start(string user, string reSendCode)
|
|
{
|
|
var response = new JsonRxResponse();
|
|
string certNumber = Crypto.GetRandomNumber(4);
|
|
|
|
//GET CUSTOMER DETAIL FOR REAL NAME VERIFICATION AND PENNY TEST
|
|
var model = _repo.GetPennyTestRequiredData(user);
|
|
|
|
var succesMsg = string.Format("We have sent 1 KRW to your Bank Account {0} with {1} Bank, Please check the statement and enter the 4 digit number display after GME.", model.BankAccountNo, model.BankName);
|
|
|
|
//response.ErrorCode = "0";
|
|
//response.Msg = succesMsg;
|
|
//response.Data = new { Message = succesMsg };
|
|
//return response;
|
|
//TO CHECK REAL NAME
|
|
var req = new RealNameRequest(
|
|
model.IdType,// " realNameDivision=1302:PASSPORT"
|
|
model.BankCode,//" institution=145121636083"
|
|
model.BankAccountNo.Replace("-", ""),//"no=145121636083"
|
|
model.IdNumber.Replace("-", ""),
|
|
model.Dob, model.Gender,
|
|
model.NativeCountry
|
|
);
|
|
|
|
if (model.ErrorCode == "1")
|
|
{
|
|
response.ErrorCode = "0";
|
|
response.Msg = succesMsg;
|
|
response.Data = new { Message = succesMsg };
|
|
return response;
|
|
}
|
|
else if (model.ErrorCode == "10" && reSendCode.ToLower() == "n")
|
|
{
|
|
response.ErrorCode = "0";
|
|
response.Msg = succesMsg;
|
|
response.Data = new { Message = succesMsg };
|
|
return response;
|
|
}
|
|
//FOR TESTING
|
|
//req.institution = "034";
|
|
//req.no = "145121636083";
|
|
//req.realNameDivision = "02";
|
|
//req.realNameNo = "8502046803408";
|
|
|
|
if (IsKftcOnly.IsKJRealNameCheckPossible(model.BankCode, model.IdType, model.IdNumber.Replace("-", ""), model.CustomerId))
|
|
{
|
|
var dbRes = RealNameCheck(req);
|
|
if (!dbRes.ErrorCode.Equals("0"))
|
|
{
|
|
dbRes.Data = new { Message = dbRes.Msg };
|
|
return dbRes;
|
|
}
|
|
}
|
|
|
|
//SENDING 1KRW INTO CUSTOMER PRIMARY BANK TO VERIFY BANK DETAIL
|
|
AmountTransferToBank pennyTrans = new AmountTransferToBank
|
|
{
|
|
obpId = "", // "001-90010001-000001-6000001", //GME OBPID
|
|
accountNo = "KJ",// "1107020345626", //GME ????
|
|
accountPassword = "", // "1212", //GME ????
|
|
receiveInstitution = model.BankCode.ToString(),
|
|
receiveAccountNo = model.BankAccountNo.Replace("-", ""),
|
|
amount = "1",
|
|
bankBookSummary = String.Format("PENNY-{0}", model.BankAccountNo.Replace("-", "").ToString()),
|
|
transactionSummary = String.Format("GME-{0}", certNumber)// THIS IS NARRATION FIELD
|
|
};
|
|
|
|
//FOR TESTING
|
|
//pennyTrans.receiveInstitution = "034";
|
|
//pennyTrans.receiveAccountNo = "145121636083";
|
|
|
|
/*
|
|
var body = JsonConvert.SerializeObject(pennyTrans);
|
|
var resp = KwangjuBankApi.TransferAmount(body);
|
|
var dbApiRes = JsonConvert.DeserializeObject<JsonRxResponse>(resp);
|
|
|
|
if (!dbApiRes.ErrorCode.Equals("0")) {
|
|
if (dbApiRes.ErrorCode.Equals(ErrorCode.One))
|
|
{
|
|
var kjMsg = JsonConvert.DeserializeObject<KwangjuResult>(dbApiRes.Msg);
|
|
var eCode = kjMsg.error.code.ToString();
|
|
var eMessage = kjMsg.error.message.ToString();
|
|
|
|
dbApiRes.Msg = "Something is wrong. " + eCode + " " + eMessage;
|
|
}
|
|
|
|
dbApiRes.Data = new { Message = dbApiRes.Msg };
|
|
return dbApiRes;
|
|
}
|
|
*/
|
|
var cert = new PennyTestCustomerCert()
|
|
{
|
|
CustomerId = model.CustomerId,
|
|
CertNumber = certNumber,
|
|
CertLimitCount = "",
|
|
BankCode = model.BankCode,
|
|
BankAccountNo = model.BankAccountNo.Replace("-", ""),
|
|
IdType = model.IdType,
|
|
IdNumber = model.IdNumber.Replace("-", ""),
|
|
Dob = model.Dob,
|
|
Gender = model.Gender,
|
|
NativeCountry = model.NativeCountry,
|
|
Action = "REQ"
|
|
};
|
|
|
|
var respon = _repo.SavePennyTestCustomerCertificate(cert);
|
|
if (!respon.ErrorCode.Equals("0"))
|
|
{
|
|
respon.Data = new { Message = respon.Msg };
|
|
}
|
|
else
|
|
{
|
|
respon.Msg = succesMsg;
|
|
respon.Data = new { Message = succesMsg };
|
|
}
|
|
|
|
return respon;
|
|
}
|
|
|
|
private bool CheckIbkShinanPassport(string bankCode, string idtypeId)
|
|
{
|
|
var s = ((bankCode.Equals("003") || bankCode.Equals("088")) && idtypeId.Equals("10997"));
|
|
return s;
|
|
}
|
|
|
|
public JsonRxResponse VerifyCertificate(PennyCertVerifyRequestModel model)
|
|
{
|
|
var rsp = _repo.VerifyCertificate(model.CustomerId, model.CertNumber);
|
|
if (rsp.ErrorCode.Equals("0"))
|
|
{
|
|
var fireBaseId = Convert.ToString(CallContext.GetData(Constants.FcmId));
|
|
var lang = Convert.ToString(CallContext.GetData(Constants.Language));
|
|
|
|
Task.Run(() => FcmNotifier.Notify(fireBaseId, Languages.GetMessage("pennytest_success", fireBaseId), Languages.GetTitle("pennytest", fireBaseId)));
|
|
}
|
|
rsp.Data = new { Message = rsp.Msg };
|
|
return rsp;
|
|
}
|
|
|
|
public JsonRxResponse Start_V4(string user, string reSendCode)
|
|
{
|
|
var response = new JsonRxResponse();
|
|
var model = _repo.GetPennyTestRequiredData_V4(user);
|
|
|
|
var req = new RealNameRequest(
|
|
model.IdType,// " realNameDivision=1302:PASSPORT"
|
|
model.BankCode,//" institution=145121636083"
|
|
model.BankAccountNo.Replace("-", ""),//"no=145121636083"
|
|
model.IdNumber.Replace("-", ""),
|
|
model.Dob, model.Gender,
|
|
model.NativeCountry
|
|
);
|
|
|
|
if (IsKftcOnly.IsKJRealNameCheckPossible(model.BankCode, model.IdType, model.IdNumber.Replace("-", ""), model.CustomerId))
|
|
{
|
|
var dbRes = RealNameCheck(req);
|
|
if (!dbRes.ErrorCode.Equals("0"))
|
|
{
|
|
response.ErrorCode = "1";
|
|
response.Msg = dbRes.Msg;
|
|
response.Extra = model.CustomerId;
|
|
return response;
|
|
}
|
|
else
|
|
{
|
|
response.ErrorCode = "0";
|
|
response.Msg = dbRes.Msg;
|
|
response.Extra = model.CustomerId;
|
|
return response;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
response.ErrorCode = "1";
|
|
response.Msg = "KJ Real Name Check is not possible. Please contact GME support.";
|
|
response.Extra = model.CustomerId;
|
|
return response;
|
|
}
|
|
}
|
|
}
|
|
}
|