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.
131 lines
5.6 KiB
131 lines
5.6 KiB
using Swift.API.Common;
|
|
using Swift.API.Common.ExRate;
|
|
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.MerchatradePushAPI
|
|
{
|
|
public class MerchantradeAPIService : IMerchantradeAPIService
|
|
{
|
|
private string logId = "";
|
|
private string _baseURL = "http://10.15.18.150:9091/";
|
|
|
|
public DbResult SendTxnMtrade(string user, MtradePushDetail _txnDetail, string provider)
|
|
{
|
|
DbResult _dbResult = new DbResult();
|
|
|
|
SendTxnRequest _requestData = new SendTxnRequest();
|
|
_requestData.provider = provider;
|
|
_requestData.requestJSON = new JavaScriptSerializer().Serialize(_txnDetail);
|
|
|
|
var _request = new JavaScriptSerializer().Serialize(_requestData);
|
|
|
|
_dbResult = Utility.LogRequest(user, "Merchantrade", "SendTxnMtrade", _txnDetail.controlNo, _request);
|
|
|
|
logId = _dbResult.Id;
|
|
_requestData.processId = _dbResult.Extra;
|
|
var _requestMain = new JavaScriptSerializer().Serialize(_requestData); //this contains the processId from log request
|
|
try
|
|
{
|
|
HttpWebRequest _httpRequest = (HttpWebRequest)WebRequest.Create(_baseURL + "/api/SendAPITxn");
|
|
_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(_requestMain);
|
|
_streamWriter.Flush();
|
|
_streamWriter.Close();
|
|
}
|
|
|
|
var _httpResponse = (HttpWebResponse)_httpRequest.GetResponse();
|
|
using (var _streamReader = new StreamReader(_httpResponse.GetResponseStream()))
|
|
{
|
|
_dbResult = new JavaScriptSerializer().Deserialize<DbResult>(_streamReader.ReadToEnd());
|
|
}
|
|
|
|
Utility.LogResponse(logId, _dbResult.Extra2, _dbResult.ErrorCode, _dbResult.Msg);
|
|
_httpResponse.Close();
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
_dbResult.ErrorCode = "999";
|
|
_dbResult.Msg = e.Message.ToString();
|
|
|
|
Utility.LogResponse(logId, "Core: Exception Occured", _dbResult.ErrorCode, _dbResult.Msg);
|
|
return _dbResult;
|
|
}
|
|
return _dbResult;
|
|
}
|
|
|
|
public DbResult GetExRate(string user, string provider, string pAgentCode)
|
|
{
|
|
DbResult _retResult = new DbResult();
|
|
ExRateResponse _exRateResponse = new ExRateResponse();
|
|
DbResult _dbResult = new DbResult();
|
|
MtradeGetExRate _exRate = new MtradeGetExRate();
|
|
_exRate.payoutAgentCode = pAgentCode;
|
|
|
|
SendTxnRequest _requestData = new SendTxnRequest();
|
|
_requestData.provider = provider;
|
|
_requestData.requestJSON = new JavaScriptSerializer().Serialize(_exRate);
|
|
|
|
var _request = new JavaScriptSerializer().Serialize(_requestData);
|
|
|
|
_dbResult = Utility.LogRequest(user, "Merchantrade", "GetExRate", "", _request);
|
|
|
|
logId = _dbResult.Id;
|
|
_requestData.processId = _dbResult.Extra;
|
|
var _requestMain = new JavaScriptSerializer().Serialize(_requestData); //this contains the processId from log request
|
|
try
|
|
{
|
|
HttpWebRequest _httpRequest = (HttpWebRequest)WebRequest.Create(_baseURL + "/api/GetExRate");
|
|
_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(_requestMain);
|
|
_streamWriter.Flush();
|
|
_streamWriter.Close();
|
|
}
|
|
|
|
var _httpResponse = (HttpWebResponse)_httpRequest.GetResponse();
|
|
using (var _streamReader = new StreamReader(_httpResponse.GetResponseStream()))
|
|
{
|
|
_exRateResponse = new JavaScriptSerializer().Deserialize<ExRateResponse>(_streamReader.ReadToEnd());
|
|
}
|
|
_httpResponse.Close();
|
|
|
|
var responseXml = Utility.ObjectToXML(_exRateResponse);
|
|
Utility.LogResponse(logId, responseXml, _exRateResponse.ErrorCode, _exRateResponse.ErrorMsg);
|
|
|
|
_retResult.ErrorCode = _exRateResponse.mirsErrCode;
|
|
_retResult.Msg = _exRateResponse.ErrorMsg;
|
|
_retResult.Extra = _exRateResponse.mirsPayoutAgentRate;
|
|
_retResult.Extra2 = _exRateResponse.mirsPayoutCurrency;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
_retResult.ErrorCode = "999";
|
|
_retResult.Msg = e.Message.ToString();
|
|
|
|
Utility.LogResponse(logId, "Core: Exception Occured", _retResult.ErrorCode, _retResult.Msg);
|
|
return _dbResult;
|
|
}
|
|
return _retResult;
|
|
}
|
|
}
|
|
}
|