防止将响应值发布到支付网关以外的 asp.net 页面

Prevent posting response value to asp.net page other than payment gate way

我正在使用 c# asp.net(.NET framework 4.0) 集成支付网关 'First Atlantic Commerce'。我使用了 3dsecureAuthorize 方法。在这种方法中,支付网关 post 将响应值发送到我们的商家网站。对于创建的名为 'Success.aspx' 的页面,该页面从支付网关接收一些响应值,这些响应值在处理交易后由支付网关 post 编辑。我使用下面的代码接收响应值

request.form["responsecode"]

并将交易的支付状态更新到商家网站,这似乎任何人都可以 post 从支付网关以外的地方 'Success.aspx' 到此页面的响应值。如果发生这种情况,则有机会从其他来源向我们的网站更新支付状态,而无需通过支付网关进行支付。您能告诉我如何防止 post 将数据发送到支付网关以外的页面吗?

响应消息签名验证

Authorize3DSResponse 操作响应 return 验证散列 Signature,其中 批准和拒绝授权交易,以验证响应来自 FAC 的系统。

要使用此 Signature 作为验证,请从以下字段创建一个 BASE-64 编码的 SHA1 散列 顺序:

  • 正在处理密码 (a1B23c)
  • FAC ID (1234567890)
  • 收单方 ID (464748)
  • 订单 ID (FACTEST01)

例如: a1B23c1234567890464748FACTEST01

生成的哈希值:LOijfhLT2JO2jYaA1bXPIZNWDPg=

 using System.Security.Cryptography;

 private string ComputeHash(string Key)
 {
     SHA1CryptoServiceProvider objSHA1 = new SHA1CryptoServiceProvider();
     objSHA1.ComputeHash(System.Text.Encoding.UTF8.GetBytes(Key.ToCharArray()));
     byte[] buffer = objSHA1.Hash;
     string HashValue = System.Convert.ToBase64String(buffer);
     return HashValue;
 }

参考文献第一大西洋商业 支付网关 2 开发人员集成指南