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

  1. using Newtonsoft.Json;
  2. using Swift.API.Common;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Data;
  6. using System.IO;
  7. using System.Linq;
  8. using System.Net;
  9. using System.Text;
  10. using System.Web.Script.Serialization;
  11. namespace Swift.API.TPAPIs.KFTC
  12. {
  13. public class KFTCAccountCancel : IKFTCAccountCancel
  14. {
  15. protected readonly string _baseURL;
  16. public KFTCAccountCancel()
  17. {
  18. _baseURL = Utility.ReadWebConfig("coreApiBaseURL", "");
  19. }
  20. public DbResult CancelAccount(DataTable dt)
  21. {
  22. DbResult _dbRes = new DbResult();
  23. List<account_cancel> _lst = new List<account_cancel>();
  24. foreach (DataRow item in dt.Rows)
  25. {
  26. account_cancel cancel = new account_cancel();
  27. cancel.scope = "transfer";//Request.Form["Scope"];
  28. cancel.fintech_use_num = item["fintech_use_num"].ToString(); //핀테크번호
  29. _lst.Add(cancel);
  30. }
  31. request_main_data _requestMain = new request_main_data();
  32. _requestMain._cancelURL = @"account/cancel";
  33. _requestMain.access_token = dt.Rows[0]["access_token"].ToString();
  34. _requestMain.postData = _lst;
  35. SendTxnRequest _requestData = new SendTxnRequest();
  36. _requestData.provider = "kftc";
  37. _requestData.requestJSON = new JavaScriptSerializer().Serialize(_requestMain);
  38. var _request = new JavaScriptSerializer().Serialize(_requestData);
  39. //log request
  40. string id = Utility.LogRequestKFTC(dt.Rows[0]["customerId"].ToString(), "Core: CancelAccount", _request).Id;
  41. try
  42. {
  43. HttpWebRequest _httpRequest = (HttpWebRequest)WebRequest.Create(_baseURL + "/api/CancelTransaction");
  44. _httpRequest.ContentType = "application/json";
  45. _httpRequest.Method = "POST";
  46. _httpRequest.Headers.Add("HeaderToken", "C1A2E2774D4158A909CC4B727C412E95595E8731E10FEFDFC931AE8123BF4F51");
  47. _httpRequest.Headers.Add("Authorization", "E3B8C3C55A6FB072E458D21DF2DD7CA7CFE176FB28D6047603B07B1B3C92749D");
  48. using (var _streamWriter = new StreamWriter(_httpRequest.GetRequestStream()))
  49. {
  50. _streamWriter.Write(_request);
  51. _streamWriter.Flush();
  52. _streamWriter.Close();
  53. }
  54. var _httpResponse = (HttpWebResponse)_httpRequest.GetResponse();
  55. using (var _streamReader = new StreamReader(_httpResponse.GetResponseStream()))
  56. {
  57. _dbRes = new JavaScriptSerializer().Deserialize<DbResult>(_streamReader.ReadToEnd());
  58. }
  59. _httpResponse.Close();
  60. //log response
  61. Utility.LogResponseKFTC(id, Utility.ObjectToXML(_dbRes), _dbRes.ErrorCode, _dbRes.Msg);
  62. }
  63. catch (Exception e)
  64. {
  65. //log response
  66. Utility.LogResponseKFTC(id, "Exception occured!", "999", e.Message);
  67. _dbRes.SetError("999", e.Message, null);
  68. return _dbRes;
  69. }
  70. return _dbRes;
  71. }
  72. public class account_cancel
  73. {
  74. public string scope { get; set; } //inquiry, transfer
  75. public string fintech_use_num { get; set; }
  76. }
  77. public class request_main_data
  78. {
  79. public string _cancelURL { get; set; } //inquiry, transfer
  80. public string access_token { get; set; }
  81. //public string postData { get; set; }
  82. public List<account_cancel> postData { get; set; }
  83. }
  84. }
  85. }