using System; using Swift.DAL.BL.Remit.Transaction; using Swift.web.Library; using System.Text; using Swift.DAL.Common; using Swift.DAL.SwiftDAL; using System.Web.Script.Serialization; namespace Swift.web.Remit.Transaction.Cancel { public partial class CancelReceipt : System.Web.UI.Page { private readonly RemittanceLibrary _sl = new RemittanceLibrary(); private CancelTransactionDao _obj = new CancelTransactionDao(); private const string ViewFunctionId = "20121400"; protected void Page_Load(object sender, EventArgs e) { Authenticate(); LoadReceipt(); } private void Authenticate() { _sl.CheckAuthentication(ViewFunctionId); } private long GetTranId() { return GetStatic.ReadNumericDataFromQueryString("tranId"); } private void LoadReceipt() { var dr = _obj.LoadReceipt(GetStatic.GetUser(), GetTranId().ToString()); if (dr == null) return; controlNo.Text = dr["controlNo"].ToString(); postedBy.Text = dr["postedBy"].ToString(); sender.Text = dr["sender"].ToString(); receiver.Text = dr["receiver"].ToString(); rContactNo.Text = dr["rContactNo"].ToString(); collCurr.Text = dr["collCurr"].ToString(); cAmt.Text = GetStatic.FormatData(dr["cAmt"].ToString(), "M"); serviceCharge.Text = GetStatic.FormatData(dr["serviceCharge"].ToString(), "M"); pAmt.Text = GetStatic.FormatData(dr["pAmt"].ToString(), "M"); cancelCharge.Text = GetStatic.FormatData(dr["cancelCharge"].ToString(), "M"); returnAmt.Text = GetStatic.FormatData(dr["returnAmt"].ToString(), "M"); sendDate.Text = dr["createdDate"].ToString(); cancelDate.Text = dr["cancelDate"].ToString(); if (!string.IsNullOrWhiteSpace(dr["BankName"].ToString())) { autoDebitTR.Visible = true; accName.Text = dr["AccName"].ToString(); accNo.Text = dr["AccNo"].ToString(); bankName.Text = dr["BankName"].ToString(); // REQUEST FOR KFCT AUTO REFUND TRANSACTION KJAutoRefundModel postData = new KJAutoRefundModel() { flag = "Autodebit_REQ", customerId = dr["customerId"].ToString(), customerSummary = "", amount = GetStatic.RemoveComaFromMoney(dr["returnAmt"].ToString()), action = "REQ", actionBy = GetStatic.GetUser(), bankCode = dr["bankCode"].ToString(), bankAccountNo = dr["AccNo"].ToString() }; // REFUNDING KFTC AUTO DEBIT TRANSACTION var Response = RefundAutodebitTxnAmount(postData); if (Response.ErrorCode == "1") { SendEmail(); } } } private DbResult RefundAutodebitTxnAmount(KJAutoRefundModel postData) { DbResult dbResult = new DbResult() { ErrorCode = "1", Msg = "Fail!" }; /* 1. KFTC AUTO REFUND LOG 입금이체 데이타 추가 * */ dbResult = _obj.SendAutoRefund(postData); postData.rowId = dbResult.Id; if (dbResult.ErrorCode != "0") { return dbResult; } /* * 3. KJ API FOR AUTO REFUND 라이브러리 사용 * */ AccountTransferToBank req = new AccountTransferToBank() { obpId = "", // "001-90010001-000001-6000001", //GME OBPID accountNo = "",// "1107020345626", //GME 계좌코드 accountPassword = "", // "1212", //GME 패스워드 receiveInstitution = postData.bankCode, receiveAccountNo = postData.bankAccountNo, //receiveInstitution = data.Msg, //receiveAccountNo = data.Id, amount = Convert.ToString(postData.amount), bankBookSummary = String.Format("REFUND{0}", postData.bankAccountNo), transactionSummary = "GME Refund" }; var baseUrl = GetStatic.ReadWebConfig("KJURL", ""); var kjSecretKey = GetStatic.ReadWebConfig("KJsecretKey", ""); var clientId = GetStatic.ReadWebConfig("client_id", ""); string body = new JavaScriptSerializer().Serialize((req)); // KJ BANK API CALLING FOR AMOUNT REFUND IN BANK var apiResponse = KJBankAPIConnection.AccountTransferKJBank(body, baseUrl, kjSecretKey, clientId); if (apiResponse.ErrorCode != "0") { postData.flag = "Autodebit_FAIL"; postData.action = "FAIL"; } else { postData.flag = "SUCCESS"; postData.action = "SUCCESS"; } dbResult = _obj.SendAutoRefund(postData); return apiResponse; } private void SendEmail() { StringBuilder sb = new StringBuilder(); sb.AppendLine("KFTC auto refund process has failed!."); sb.AppendLine("Kindly refund JPY " + returnAmt.Text + " to customer's account for cancelled auto debit transaction " + controlNo.Text); sb.AppendLine("
"); sb.AppendLine("Account Name: " + accName.Text + ""); sb.AppendLine("
"); sb.AppendLine("Account Number: " + accNo.Text + ""); sb.AppendLine("
"); sb.AppendLine("Bank Name: " + bankName.Text + ""); sb.AppendLine("Regards,"); sb.AppendLine("JME Remittance
, Japan"); SmtpMailSetting mail = new SmtpMailSetting { MsgBody = sb.ToString(), MsgSubject = "AUTODEBIT CANCELLATION REFUND", ToEmails = "atit.pandey@gmeremit.com", CcEmails = "itsupport@gmeremit.com" }; mail.SendSmtpMail(mail); } } }