|
|
@@ -67,7 +67,12 @@ namespace Essensoft.AspNetCore.Payment.QPay
|
|
|
|
|
|
var parser = new QPayXmlParser<T>();
|
|
|
var rsp = parser.Parse(body);
|
|
|
- CheckResponseSign(rsp, options);
|
|
|
+
|
|
|
+ if (request.IsCheckResponseSign())
|
|
|
+ {
|
|
|
+ CheckResponseSign(rsp, options);
|
|
|
+ }
|
|
|
+
|
|
|
return rsp;
|
|
|
}
|
|
|
}
|
|
|
@@ -106,7 +111,12 @@ namespace Essensoft.AspNetCore.Payment.QPay
|
|
|
|
|
|
var parser = new QPayXmlParser<T>();
|
|
|
var rsp = parser.Parse(body);
|
|
|
- CheckResponseSign(rsp, options);
|
|
|
+
|
|
|
+ if (request.IsCheckResponseSign())
|
|
|
+ {
|
|
|
+ CheckResponseSign(rsp, options);
|
|
|
+ }
|
|
|
+
|
|
|
return rsp;
|
|
|
}
|
|
|
}
|
|
|
@@ -122,15 +132,17 @@ namespace Essensoft.AspNetCore.Payment.QPay
|
|
|
throw new Exception("sign check fail: Body is Empty!");
|
|
|
}
|
|
|
|
|
|
- if (response.Parameters.TryGetValue("sign", out var sign))
|
|
|
+ if (!response.Parameters.TryGetValue("sign", out var sign))
|
|
|
+ {
|
|
|
+ throw new Exception("sign check fail: sign is Empty!");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (response.Parameters["return_code"] == "SUCCESS" && !string.IsNullOrEmpty(sign))
|
|
|
{
|
|
|
- if (response.Parameters["return_code"] == "SUCCESS" && !string.IsNullOrEmpty(sign))
|
|
|
+ var cal_sign = QPaySignature.SignWithKey(response.Parameters, options.Key);
|
|
|
+ if (cal_sign != sign)
|
|
|
{
|
|
|
- var cal_sign = QPaySignature.SignWithKey(response.Parameters, options.Key);
|
|
|
- if (cal_sign != sign)
|
|
|
- {
|
|
|
- throw new Exception("sign check fail: check Sign and Data Fail!");
|
|
|
- }
|
|
|
+ throw new Exception("sign check fail: check Sign and Data Fail!");
|
|
|
}
|
|
|
}
|
|
|
}
|