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.

130 lines
5.6 KiB

  1. using Swift.API.Common;
  2. using Swift.API.Common.ExRate;
  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.MerchatradePushAPI
  12. {
  13. public class MerchantradeAPIService : IMerchantradeAPIService
  14. {
  15. private string logId = "";
  16. private string _baseURL = "http://10.15.18.150:9091/";
  17. public DbResult SendTxnMtrade(string user, MtradePushDetail _txnDetail, string provider)
  18. {
  19. DbResult _dbResult = new DbResult();
  20. SendTxnRequest _requestData = new SendTxnRequest();
  21. _requestData.provider = provider;
  22. _requestData.requestJSON = new JavaScriptSerializer().Serialize(_txnDetail);
  23. var _request = new JavaScriptSerializer().Serialize(_requestData);
  24. _dbResult = Utility.LogRequest(user, "Merchantrade", "SendTxnMtrade", _txnDetail.controlNo, _request);
  25. logId = _dbResult.Id;
  26. _requestData.processId = _dbResult.Extra;
  27. var _requestMain = new JavaScriptSerializer().Serialize(_requestData); //this contains the processId from log request
  28. try
  29. {
  30. HttpWebRequest _httpRequest = (HttpWebRequest)WebRequest.Create(_baseURL + "/api/SendAPITxn");
  31. _httpRequest.ContentType = "application/json";
  32. _httpRequest.Method = "POST";
  33. _httpRequest.Headers.Add("HeaderToken", "C1A2E2774D4158A909CC4B727C412E95595E8731E10FEFDFC931AE8123BF4F51");
  34. _httpRequest.Headers.Add("Authorization", "E3B8C3C55A6FB072E458D21DF2DD7CA7CFE176FB28D6047603B07B1B3C92749D");
  35. using (var _streamWriter = new StreamWriter(_httpRequest.GetRequestStream()))
  36. {
  37. _streamWriter.Write(_requestMain);
  38. _streamWriter.Flush();
  39. _streamWriter.Close();
  40. }
  41. var _httpResponse = (HttpWebResponse)_httpRequest.GetResponse();
  42. using (var _streamReader = new StreamReader(_httpResponse.GetResponseStream()))
  43. {
  44. _dbResult = new JavaScriptSerializer().Deserialize<DbResult>(_streamReader.ReadToEnd());
  45. }
  46. Utility.LogResponse(logId, _dbResult.Extra2, _dbResult.ErrorCode, _dbResult.Msg);
  47. _httpResponse.Close();
  48. }
  49. catch (Exception e)
  50. {
  51. _dbResult.ErrorCode = "999";
  52. _dbResult.Msg = e.Message.ToString();
  53. Utility.LogResponse(logId, "Core: Exception Occured", _dbResult.ErrorCode, _dbResult.Msg);
  54. return _dbResult;
  55. }
  56. return _dbResult;
  57. }
  58. public DbResult GetExRate(string user, string provider, string pAgentCode)
  59. {
  60. DbResult _retResult = new DbResult();
  61. ExRateResponse _exRateResponse = new ExRateResponse();
  62. DbResult _dbResult = new DbResult();
  63. MtradeGetExRate _exRate = new MtradeGetExRate();
  64. _exRate.payoutAgentCode = pAgentCode;
  65. SendTxnRequest _requestData = new SendTxnRequest();
  66. _requestData.provider = provider;
  67. _requestData.requestJSON = new JavaScriptSerializer().Serialize(_exRate);
  68. var _request = new JavaScriptSerializer().Serialize(_requestData);
  69. _dbResult = Utility.LogRequest(user, "Merchantrade", "GetExRate", "", _request);
  70. logId = _dbResult.Id;
  71. _requestData.processId = _dbResult.Extra;
  72. var _requestMain = new JavaScriptSerializer().Serialize(_requestData); //this contains the processId from log request
  73. try
  74. {
  75. HttpWebRequest _httpRequest = (HttpWebRequest)WebRequest.Create(_baseURL + "/api/GetExRate");
  76. _httpRequest.ContentType = "application/json";
  77. _httpRequest.Method = "POST";
  78. _httpRequest.Headers.Add("HeaderToken", "C1A2E2774D4158A909CC4B727C412E95595E8731E10FEFDFC931AE8123BF4F51");
  79. _httpRequest.Headers.Add("Authorization", "E3B8C3C55A6FB072E458D21DF2DD7CA7CFE176FB28D6047603B07B1B3C92749D");
  80. using (var _streamWriter = new StreamWriter(_httpRequest.GetRequestStream()))
  81. {
  82. _streamWriter.Write(_requestMain);
  83. _streamWriter.Flush();
  84. _streamWriter.Close();
  85. }
  86. var _httpResponse = (HttpWebResponse)_httpRequest.GetResponse();
  87. using (var _streamReader = new StreamReader(_httpResponse.GetResponseStream()))
  88. {
  89. _exRateResponse = new JavaScriptSerializer().Deserialize<ExRateResponse>(_streamReader.ReadToEnd());
  90. }
  91. _httpResponse.Close();
  92. var responseXml = Utility.ObjectToXML(_exRateResponse);
  93. Utility.LogResponse(logId, responseXml, _exRateResponse.ErrorCode, _exRateResponse.ErrorMsg);
  94. _retResult.ErrorCode = _exRateResponse.mirsErrCode;
  95. _retResult.Msg = _exRateResponse.ErrorMsg;
  96. _retResult.Extra = _exRateResponse.mirsPayoutAgentRate;
  97. _retResult.Extra2 = _exRateResponse.mirsPayoutCurrency;
  98. }
  99. catch (Exception e)
  100. {
  101. _retResult.ErrorCode = "999";
  102. _retResult.Msg = e.Message.ToString();
  103. Utility.LogResponse(logId, "Core: Exception Occured", _retResult.ErrorCode, _retResult.Msg);
  104. return _dbResult;
  105. }
  106. return _retResult;
  107. }
  108. }
  109. }