|
|
using Common.Models.Agent; using Common.Models.Bank; using Common.Models.RequestResponse; using Common.Models.Status; using Common.Models.TxnModel; using Common.TPService; using Common.Utility; using JMENepal.com.jmenepal; using JMENepal.Model; using log4net; using Newtonsoft.Json; using System;
namespace JMENepal.JMENepalAPIService { public class JMENepalAPI : ITPApiServices { private readonly ILog _log = LogManager.GetLogger(typeof(JMENepalAPI)); protected readonly iRemitService _jmeService = new iRemitService();
public TPResponse GetTPResponse<T>(T model, string MethodName) where T : class { switch (MethodName) { case "send": return SendTransaction(model as SendTransaction);
case "bankList": return GetBankList(model as BankRequest);
case "agentList": return GetAgentList(model as AgentRequest);
case "status": return GetTxnStatus(model as GetStatus);
case "cancelSend": return CancelTransaction(model as CancelTxn);
case "amendmentRequest": return AmendmentRequest(model as TxnAmendment);
default: return new TPResponse() { ResponseCode = "1", Msg = "Method Name Not Found !" }; } }
private TPResponse SendTransaction(SendTransaction sendTransaction) { JMESendTxn cTI = SendTransactionValidation(sendTransaction); TPResponse _response = new CustomModelValidaton().IsModelValid(cTI);
if (_response == null) { _response = new TPResponse(); string signature = GetSignatureIdForSendTxn(cTI);
cTI.SIGNATURE = signature; _log.Info("SendTransaction | REQUEST :" + JsonConvert.SerializeObject(cTI)); Return_CreateTXN _jmeResponse = _jmeService.SendTransaction ( cTI.AGENT_CODE, cTI.USER_ID, cTI.AGENT_SESSION_ID, cTI.AGENT_TXNID, cTI.LOCATION_ID, cTI.SENDER_NAME, cTI.SENDER_ADDRESS , cTI.SENDER_MOBILE, cTI.SENDER_CITY, cTI.SENDER_COUNTRY, cTI.SENDER_ID_TYPE, cTI.SENDER_ID_NUMBER, cTI.SENDER_ID_ISSUE_DATE , cTI.SENDER_ID_EXPIRE_DATE, cTI.SENDER_DATE_OF_BIRTH, cTI.RECEIVER_NAME, cTI.RECEIVER_ADDRESS, cTI.RECEIVER_CONTACT_NUMBER , cTI.RECEIVER_CITY, cTI.RECEIVER_COUNTRY, cTI.TRANSFERAMOUNT, cTI.PAYMENTMODE, cTI.BANKID, cTI.BANK_NAME, cTI.BANK_BRANCH_NAME , cTI.BANK_ACCOUNT_NUMBER, cTI.CAL_BY, cTI.AUTHORIZED_REQUIRED, cTI.OURSERVICECHARGE, cTI.TRANSACTION_EXCHANGERATE , cTI.SETTLEMENT_DOLLARRATE, cTI.REPRESENTIVE_NAME, cTI.SOURCE_OF_FUND, cTI.PURPOSE_OF_REMITTANCE, cTI.SENDER_OCCUPATION , cTI.SENDER_NATIONALITY, cTI.RELATIONSHIP_TO_BENEFICIARY, cTI.PARTNER_USERID, "", signature ); _log.Info("SendTransaction | RESPONSE :" + JsonConvert.SerializeObject(_jmeResponse).ToString());
_response.ResponseCode = _jmeResponse.CODE; if (!_jmeResponse.CODE.Equals("0")) { _response.ResponseCode = "1"; } _response.Msg = _jmeResponse.MESSAGE; _response.Id = _jmeResponse.PINNO; _response.Data = _jmeResponse; } else { _log.Info("SendTransaction | MODEL VALIDATION FAILED :" + JsonConvert.SerializeObject(cTI).ToString()); } return _response; }
private TPResponse GetAgentList(AgentRequest aR) { JMEAgent jMEAgent = JMEAgentModelConvert(aR); TPResponse _response = new CustomModelValidaton().IsModelValid(jMEAgent); if (_response == null) { _response = new TPResponse();
string signature = GetStatic.ComputeSha256Hash(jMEAgent.AGENT_CODE + jMEAgent.USER_ID + jMEAgent.AGENT_SESSION_ID + jMEAgent.PAYMENTTYPE + jMEAgent.PAYOUT_COUNTRY + jMEAgent.Ext_Bank_ID + jMEAgent.Password); Return_AGENTLIST[] _agentList = _jmeService.GetAgentList(jMEAgent.AGENT_CODE, jMEAgent.USER_ID, jMEAgent.AGENT_SESSION_ID, jMEAgent.PAYMENTTYPE, jMEAgent.PAYOUT_COUNTRY, jMEAgent.Ext_Bank_ID, signature); _response.ResponseCode = "0"; _response.Data = _agentList; } else { _log.Info("GetAgentList | MODEL VALIDATION FAILED :" + JsonConvert.SerializeObject(jMEAgent).ToString()); } return _response; }
private TPResponse GetBankList(BankRequest bR) { JMEBank jmeStatus = JMEBankModelConvert(bR); TPResponse _response = new CustomModelValidaton().IsModelValid(jmeStatus); if (_response == null) { _response = new TPResponse();
string signature = GetStatic.ComputeSha256Hash(jmeStatus.AGENT_CODE + jmeStatus.USER_ID + jmeStatus.AGENT_SESSION_ID + jmeStatus.Password);
Return_AGENTLIST[] _agentList = _jmeService.GetBankList(jmeStatus.AGENT_CODE, jmeStatus.USER_ID, jmeStatus.AGENT_SESSION_ID, signature); _response.ResponseCode = "0"; _response.Data = _agentList; } else { _log.Info("GetBankList | MODEL VALIDATION FAILED :" + JsonConvert.SerializeObject(jmeStatus).ToString()); } return _response; }
private TPResponse GetTxnStatus(GetStatus gS) { JMETxStatus jmeStatus = JMETxStatusModelConvert(gS); TPResponse _response = new CustomModelValidaton().IsModelValid(jmeStatus); if (_response == null) { _response = new TPResponse();
string signature = GetStatic.ComputeSha256Hash(jmeStatus.AGENT_CODE + jmeStatus.USER_ID + jmeStatus.PINNO + jmeStatus.AGENT_SESSION_ID + jmeStatus.AGENT_TXNID + jmeStatus.Password);
_log.Info("GetTxnStatus | REQUEST :" + JsonConvert.SerializeObject(jmeStatus).ToString()); Return_TXNStatus _statusResponse = _jmeService.QueryTXNStatus(jmeStatus.AGENT_CODE, jmeStatus.USER_ID, jmeStatus.PINNO, jmeStatus.AGENT_SESSION_ID, jmeStatus.AGENT_TXNID, signature); _log.Info("GetTxnStatus | RESPONSE :" + JsonConvert.SerializeObject(_statusResponse).ToString());
_response.ResponseCode = _statusResponse.CODE; if (!_statusResponse.CODE.Equals("0")) { _response.ResponseCode = "1"; } _response.Msg = _statusResponse.MESSAGE; _response.Id = _statusResponse.AGENT_TXNID; _response.Extra = _statusResponse.PINNO; if (_statusResponse.STATUS != null) { _response.Extra2 = _statusResponse.STATUS; } _response.Data = _statusResponse; } else { _log.Info("GetTxnStatus | MODEL VALIDATION FAILED :" + JsonConvert.SerializeObject(jmeStatus).ToString()); } return _response; }
private TPResponse CancelTransaction(CancelTxn cT) { JMECancelTransaction jC = JMECancelTransactionModelConvert(cT); TPResponse _response = new CustomModelValidaton().IsModelValid(jC); if (_response == null) { _response = new TPResponse();
string signature = GetStatic.ComputeSha256Hash(jC.AGENT_CODE + jC.USER_ID + jC.PINNO + jC.AGENT_SESSION_ID + jC.CANCEL_REASON + jC.Password);
_log.Info("CancelTransaction | REQUEST :" + JsonConvert.SerializeObject(jC).ToString()); Return_TXNCancel _cancelTxnResponse = _jmeService.CancelTransaction(jC.AGENT_CODE, jC.USER_ID, jC.PINNO, jC.AGENT_SESSION_ID, jC.CANCEL_REASON, signature); _log.Info("CancelTransaction | RESPONSE :" + JsonConvert.SerializeObject(_cancelTxnResponse).ToString());
_response.ResponseCode = _cancelTxnResponse.CODE; if (!_cancelTxnResponse.CODE.Equals("0")) { _response.ResponseCode = "1"; } _response.Msg = _cancelTxnResponse.MESSAGE; _response.Id = _cancelTxnResponse.PINNO; _response.Extra = _cancelTxnResponse.PINNO; _response.Data = _cancelTxnResponse; } else { _log.Info("CancelTransaction | MODEL VALIDATION FAILED :" + JsonConvert.SerializeObject(jC).ToString()); } return _response; }
private TPResponse AmendmentRequest(TxnAmendment tA) { JMEAmendment jA = JMEAmendmentModelConvert(tA); TPResponse _response = new CustomModelValidaton().IsModelValid(jA); if (_response == null) { _response = new TPResponse();
string signature = GetStatic.ComputeSha256Hash(jA.AGENT_CODE + jA.USER_ID + jA.AGENT_SESSION_ID + jA.PINNO + jA.AMENDMENT_FIELD + jA.AMENDMENT_VALUE + jA.Password);
_log.Info("AmendmentRequest | REQUEST :" + JsonConvert.SerializeObject(jA).ToString()); Return_TXNAMEND _txnAmendmentResponse = _jmeService.AmendmentRequest(jA.AGENT_CODE, jA.USER_ID, jA.AGENT_SESSION_ID, jA.PINNO , jA.AMENDMENT_FIELD, jA.AMENDMENT_VALUE, signature); _log.Info("SendTransaction | RESPONSE :" + JsonConvert.SerializeObject(_txnAmendmentResponse).ToString());
_response.ResponseCode = _txnAmendmentResponse.CODE; if (!_txnAmendmentResponse.CODE.Equals("0")) { _response.ResponseCode = "1"; } _response.Msg = _txnAmendmentResponse.MESSAGE; _response.Id = _txnAmendmentResponse.PINNO; _response.Extra = _txnAmendmentResponse.PINNO; _response.Data = _txnAmendmentResponse; } else { _log.Info("AmendmentRequest | MODEL VALIDATION FAILED :" + JsonConvert.SerializeObject(jA).ToString()); } return _response; }
private string GetSignatureIdForSendTxn(JMESendTxn cTI) { string decryptedString = cTI.AGENT_CODE + cTI.USER_ID + cTI.AGENT_SESSION_ID + cTI.AGENT_TXNID + cTI.LOCATION_ID + cTI.SENDER_NAME + cTI.SENDER_ADDRESS + cTI.SENDER_MOBILE + cTI.SENDER_CITY + cTI.SENDER_COUNTRY + cTI.SENDER_ID_TYPE + cTI.SENDER_ID_NUMBER + cTI.SENDER_ID_ISSUE_DATE + cTI.SENDER_ID_EXPIRE_DATE + cTI.SENDER_DATE_OF_BIRTH + cTI.RECEIVER_NAME + cTI.RECEIVER_ADDRESS + cTI.RECEIVER_CONTACT_NUMBER + cTI.RECEIVER_CITY + cTI.RECEIVER_COUNTRY + cTI.TRANSFERAMOUNT + cTI.PAYMENTMODE + cTI.BANKID + cTI.BANK_NAME + cTI.BANK_BRANCH_NAME + cTI.BANK_ACCOUNT_NUMBER + cTI.CAL_BY + cTI.AUTHORIZED_REQUIRED + cTI.OURSERVICECHARGE + cTI.TRANSACTION_EXCHANGERATE + cTI.SETTLEMENT_DOLLARRATE + cTI.REPRESENTIVE_NAME + cTI.SOURCE_OF_FUND + cTI.PURPOSE_OF_REMITTANCE + cTI.SENDER_OCCUPATION + cTI.SENDER_NATIONALITY + cTI.RELATIONSHIP_TO_BENEFICIARY + cTI.PARTNER_USERID + cTI.Password;
return GetStatic.ComputeSha256Hash(decryptedString); }
private JMESendTxn SendTransactionValidation(SendTransaction st) { JMESendTxn jMESendTxn = new JMESendTxn() { AGENT_SESSION_ID = st.SessionId, AGENT_TXNID = st.Transaction.JMEControlNo, LOCATION_ID = st.Receiver.RLocation, SENDER_NAME = st.Sender.SFullName, SENDER_ADDRESS = st.Sender.SAddress, SENDER_MOBILE = st.Sender.SMobile, SENDER_CITY = st.Sender.SCityId, SENDER_COUNTRY = st.Sender.SCountryName, SENDER_ID_TYPE = st.Sender.SIdType, SENDER_ID_NUMBER = st.Sender.SIdNo, SENDER_ID_ISSUE_DATE = st.Sender.SIdIssueDate, SENDER_ID_EXPIRE_DATE = st.Sender.SIdExpiryDate, SENDER_DATE_OF_BIRTH = st.Sender.SBirthDate, RECEIVER_NAME = st.Receiver.RFullName, RECEIVER_ADDRESS = st.Receiver.RAdd1, RECEIVER_CONTACT_NUMBER = st.Receiver.RMobile, RECEIVER_CITY = st.Receiver.RCity, RECEIVER_COUNTRY = st.Receiver.RCountry, TRANSFERAMOUNT = Convert.ToString(st.Transaction.PAmt), PAYMENTMODE = st.Transaction.PaymentType, BANKID = Convert.ToString(st.Agent.PBankId), BANK_NAME = st.Agent.PBankName, BANK_BRANCH_NAME = st.Agent.PBankBranchName, BANK_ACCOUNT_NUMBER = st.Receiver.RAccountNo, OURSERVICECHARGE = Convert.ToString(st.Transaction.ServiceCharge), TRANSACTION_EXCHANGERATE = Convert.ToString(st.Transaction.ExRate), SETTLEMENT_DOLLARRATE = Convert.ToString(st.Transaction.SettlementDollarRate), SOURCE_OF_FUND = st.Sender.SourceOfFund, PURPOSE_OF_REMITTANCE = st.Transaction.PurposeOfRemittanceName, SENDER_OCCUPATION = Convert.ToString(st.Sender.SOccuptionName), PARTNER_USERID = st.UserName, RELATIONSHIP_TO_BENEFICIARY = st.Receiver.RelWithSenderName, REPRESENTIVE_NAME = "", SENDER_NATIONALITY = st.Sender.SNativeCountry, CAL_BY = "P", AUTHORIZED_REQUIRED = "N" }; return jMESendTxn; }
private JMEAgent JMEAgentModelConvert(AgentRequest aR) { JMEAgent jMEAgent = new JMEAgent() { AGENT_SESSION_ID = aR.SessionId, Ext_Bank_ID = aR.ExternalBankId, PAYMENTTYPE = aR.PaymentType, PAYOUT_COUNTRY = aR.PayoutCountry, }; return jMEAgent; }
private JMETxStatus JMETxStatusModelConvert(GetStatus gS) { return new JMETxStatus() { AGENT_SESSION_ID = gS.SessionId, AGENT_TXNID = gS.ControlNo, PINNO = "", }; }
private JMECancelTransaction JMECancelTransactionModelConvert(CancelTxn txn) { return new JMECancelTransaction() { AGENT_SESSION_ID = txn.SessionId, CANCEL_REASON = txn.CancelReason, PINNO = txn.PartnerPinNo, }; }
private JMEAmendment JMEAmendmentModelConvert(TxnAmendment am) { return new JMEAmendment() { AGENT_SESSION_ID = am.SessionId, PINNO = am.PartnerPinNo, AMENDMENT_FIELD = am.AmendmentField, AMENDMENT_VALUE = am.AmendmentValue, }; }
private JMEBank JMEBankModelConvert(BankRequest bR) { return new JMEBank() { AGENT_SESSION_ID = bR.SessionId, }; } } }
|