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.
 
 
 
 
 

104 lines
3.7 KiB

using Newtonsoft.Json;
using Swift.API.Common;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Web.Script.Serialization;
namespace Swift.API.TPAPIs.KFTC
{
public class KFTCAccountCancel : IKFTCAccountCancel
{
protected readonly string _baseURL;
public KFTCAccountCancel()
{
_baseURL = Utility.ReadWebConfig("coreApiBaseURL", "");
}
public DbResult CancelAccount(DataTable dt)
{
DbResult _dbRes = new DbResult();
List<account_cancel> _lst = new List<account_cancel>();
foreach (DataRow item in dt.Rows)
{
account_cancel cancel = new account_cancel();
cancel.scope = "transfer";//Request.Form["Scope"];
cancel.fintech_use_num = item["fintech_use_num"].ToString(); //핀테크번호
_lst.Add(cancel);
}
request_main_data _requestMain = new request_main_data();
_requestMain._cancelURL = @"account/cancel";
_requestMain.access_token = dt.Rows[0]["access_token"].ToString();
_requestMain.postData = _lst;
SendTxnRequest _requestData = new SendTxnRequest();
_requestData.provider = "kftc";
_requestData.requestJSON = new JavaScriptSerializer().Serialize(_requestMain);
var _request = new JavaScriptSerializer().Serialize(_requestData);
//log request
string id = Utility.LogRequestKFTC(dt.Rows[0]["customerId"].ToString(), "Core: CancelAccount", _request).Id;
try
{
HttpWebRequest _httpRequest = (HttpWebRequest)WebRequest.Create(_baseURL + "/api/CancelTransaction");
_httpRequest.ContentType = "application/json";
_httpRequest.Method = "POST";
_httpRequest.Headers.Add("HeaderToken", "C1A2E2774D4158A909CC4B727C412E95595E8731E10FEFDFC931AE8123BF4F51");
_httpRequest.Headers.Add("Authorization", "E3B8C3C55A6FB072E458D21DF2DD7CA7CFE176FB28D6047603B07B1B3C92749D");
using (var _streamWriter = new StreamWriter(_httpRequest.GetRequestStream()))
{
_streamWriter.Write(_request);
_streamWriter.Flush();
_streamWriter.Close();
}
var _httpResponse = (HttpWebResponse)_httpRequest.GetResponse();
using (var _streamReader = new StreamReader(_httpResponse.GetResponseStream()))
{
_dbRes = new JavaScriptSerializer().Deserialize<DbResult>(_streamReader.ReadToEnd());
}
_httpResponse.Close();
//log response
Utility.LogResponseKFTC(id, Utility.ObjectToXML(_dbRes), _dbRes.ErrorCode, _dbRes.Msg);
}
catch (Exception e)
{
//log response
Utility.LogResponseKFTC(id, "Exception occured!", "999", e.Message);
_dbRes.SetError("999", e.Message, null);
return _dbRes;
}
return _dbRes;
}
public class account_cancel
{
public string scope { get; set; } //inquiry, transfer
public string fintech_use_num { get; set; }
}
public class request_main_data
{
public string _cancelURL { get; set; } //inquiry, transfer
public string access_token { get; set; }
//public string postData { get; set; }
public List<account_cancel> postData { get; set; }
}
}
}