Wenn ein Benutzer einen Status seiner Zahlung anfordert API und dieser Dienst rufen dann einen Payment Gateway -Dienst an, um den Zahlungsstatus abzurufen, und das Ausgabeergebnis kehrt an den Benutzer zurück. < /P>
Wenn ich versuche, dies zu integrieren, erhalte ich diesen Fehler: < /p>
net :: err_connection_reset 200 (OK)
core.js:5967 Fehler Unbekannter Fehler < /p>
< /blockquote>
In diesem obigen Problem wird nicht angezeigt, wenn ich versuche, den Dienst nach dem Einlegen eines Haltepunkts zu treffen. Es gibt auch das Ergebnis zurück. < /p>
Code: Select all
this.dataservice.postFeed(method, JSON.stringify(this.initsearch)).subscribe(result => {
var response = result.body["data"];
console.log(response);
});
< /code>
< /li>
[*] Server -Seitencode sieht aus wie < /p>
[HttpPost]
public async Task Post([FromBody] ObjectModel searchValue)
{
ApiResponse response = new ApiResponse();
IBaseResult result = await _adlerBo.GetPaymentStatus(searchValue);
response.Success = result.success;
response.Data = result.Data;
return Ok(response);
}
In BusinessObject.cs :
public async Task GetPaymentStatus(PaymentSearchModel requestModel){
string apiResponse = await PaymentStatusCheckUsingAPI(requestModel.orderid);
return apiResponse ;
}
private async Task PaymentStatusCheckUsingAPI(string orderNumber)
{
string message = await PostPaymentRequestToGateway(statusApiUrl, authQueryUrlParam);
NameValueCollection param = await GetResponseMap(message);
string status = "";
string encResJson = "";
if (param != null && param.Count == 2)
{
for (int i = 0; i < param.Count; i++)
{
if ("status".Equals(param.Keys))
{
status = param;
}
if ("enc_response".Equals(param.Keys))
{
encResJson = param;
}
}
if (!"".Equals(status) && status.Equals("0"))
{
resJson = crypto.Decrypt(encResJson, workingKey);
}
else if (!"".Equals(status) && status.Equals("1"))
{
Console.WriteLine("failure response: " + encResJson);
}
}
return resJson;
}
private async Task PostPaymentRequestToGateway(string queryUrl, string urlParam)
{
string message = "";
try
{
StreamWriter myWriter = null;// it will open a http connection with provided url
WebRequest objRequest = WebRequest.Create(queryUrl);//send data using objxmlhttp object
objRequest.Method = "POST";
//objRequest.ContentLength = TranRequest.Length;
objRequest.ContentType = "application/x-www-form-urlencoded";//to set content type
myWriter = new System.IO.StreamWriter(objRequest.GetRequestStream());
myWriter.Write(urlParam);//send data
myWriter.Close();//closed the myWriter object
// Getting Response
System.Net.HttpWebResponse objResponse = (System.Net.HttpWebResponse)objRequest.GetResponse();//receive the responce from objxmlhttp object
using (System.IO.StreamReader sr = new System.IO.StreamReader(objResponse.GetResponseStream()))
{
message = await sr.ReadToEndAsync();
//Response.Write(message);
}
}
catch (Exception exception)
{
Console.Write("Exception occurred while connection." + exception);
}
return message;
}
private async Task GetResponseMap(string message)
{
//await Task.Delay(2000); I did this with no Luck
NameValueCollection Params = new NameValueCollection();
if (message != null || !"".Equals(message))
{
string[] segments = message.Split('&');
foreach (string seg in segments)
{
string[] parts = seg.Split('=');
if (parts.Length > 0)
{
string Key = parts[0].Trim();
string Value = parts[1].Trim();
Params.Add(Key, Value);
}
}
}
return await Task.FromResult(Params);
}
< /code>
Irgendeine Idee, wie ich das beheben kann? Warum funktioniert es, wenn ich Breakpoint und nicht sonst einsetze.>