gpt4 book ai didi

asp.net - MIGS VPC 集成 E5000 : Cannot form a matching secure hash based on the merchant's request using either of the two merchant's secrets

转载 作者:行者123 更新时间:2023-12-01 03:48:44 27 4
gpt4 key购买 nike

我正在使用 Migs 虚拟支付客户端集成和使用 2 方(API 方法)。

错误: E5000 : 无法根据商家的请求使用两个商家的 secret 中的任何一个来形成匹配的安全哈希

在引用指南中,声明使用 HMac Sha256 生成在请求中发送的 SecureHash 参数,并且 MIGS 将相应地对该请求进行解码。

问题:

一)我想知道我创建的请求是否正确(即所有传递的参数都按正确的顺序排列)。

b) 还要让我知道,如果我在创建 SecureHash 的请求和最终请求中缺少一些要发送的参数。

c) 还要检查用于生成 的函数。安全哈希 是否合适。

如果我犯了一些错误,请告诉我。

以下是相关详情。

1) 请求生成 SecureHash :"vpc_AccessCode=XXXXXXXX&vpc_Amount=100&vpc_CardExp=1810&vpc_CardNum=5313581000123430&vpc_Command=pay&vpc_MerchTxnRef=TC_2014712466141&vpc_Merchant=TESTMXXXXXXXX&vpc_OrderInfo=TC_2014_712466"

2) 演示 SecureHashSecret =“CD14026NOT5E91GG5D1MOM4972440CDE”

3) 从上面生成的安全哈希 请求 SecureHashSecret

“CCD0D0113315403E375791E99AFA3F8906EE47C0ED6818464368420048DC541E”

4) 测试网址 :“https://migs.mastercard.com.au/vpcdps

5) 在上述 URL 上发送的最终请求

"vpc_AccessCode=XXXXXXXX&vpc_Amount=100&vpc_CardExp=1310&vpc_CardNum=5313581000123430&vpc_Command=pay&vpc_MerchTxnRef=TC_2014712466141&vpc_Merchant=TESTMXXXXXXXX&vpc_OrderInfo=TC_2014712466141&vpc_Version=1&vpc_SecureHash=CCD0D0113315403E375791E99AFA3F8906EE47C0ED6818464368420048DC541E&vpc_SecureHashType=SHA256"

6) 我正在使用以下代码发送请求并获取响应。

System.Net.WebClient webClient = new System.Net.WebClient();

        webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");

byte[] response = webClient.UploadData(hfVirtualPaymentClientURL.Value.Trim(), "POST", Encoding.ASCII.GetBytes(strRequest));



string responseData = System.Text.Encoding.ASCII.GetString(response, 0, response.Length);

7) 功能 用于生成 安全哈希

公共(public)静态字符串 ToHMACSHA256(字符串输入,字符串键)
{

ASCIIEncoding encoding = new ASCIIEncoding();

byte[] keyByte = encoding.GetBytes(key);

byte[] inputBytes = encoding.GetBytes(input);

HMACSHA256 hmacsha256 = new HMACSHA256(keyByte);

byte[] hashmessage;

hashmessage = hmacsha256.ComputeHash(inputBytes);

return ByteToString(hashmessage);

}

私有(private)静态字符串 ByteToString(byte[] buff)
{

string sbinary = "";

for (int i = 0; i < buff.Length; i++)
{
sbinary += buff[i].ToString("X2"); // hex format
}

return (sbinary);

}

请尽快给我上述错误的解决方案。提前致谢

感谢和问候

阳光明媚的帕泰

最佳答案

我在 PHP 中遇到了同样的问题,但我成功地纠正了它。
该错误似乎是由于在散列我的数据时出错而发生的。
=> 见 capturing error messages from migs payment

为了纠正这个问题,我使用这些类
https://github.com/Tmeister/banamexgateway/blob/master/VPCPaymentConnection.php
(而且你必须将这个也导入到你的库中 https://github.com/Tmeister/banamexgateway/blob/master/PaymentCodesHelper.php )

$conn = new VPCPaymentConnection();
$secureSecret = '';
// Set the Secure Hash Secret used by the VPC connection object
$conn->setSecureSecret($secureSecret);
// Instanciate your VPC post data
$paymentdata = array(
"vpc_AccessCode" => '',
"vpc_Amount" => '',
"vpc_Command" => '',
"vpc_Locale" => '',
"vpc_MerchTxnRef" => '',
"vpc_Merchant" => '',
"vpc_OrderInfo" =>'',
"vpc_ReturnURL" => '',
"vpc_Version" => ''
);
// Add VPC post data to the Digital Order
foreach ($paymentdata as $key => $value) {
$conn->addDigitalOrderField($key, $value);
}
// Obtain a one-way hash of the Digital Order data and add this to the Digital Order
$secureHash = $conn->hashAllFields();
$conn->addDigitalOrderField("vpc_SecureHash", $secureHash);
$conn->addDigitalOrderField("vpc_SecureHashType", "SHA256");
// Obtain the redirection URL and redirect the web browser
$link_to_mastercard = $conn->getDigitalOrder('https://migs.mastercard.com.au/vpcpay');

关于asp.net - MIGS VPC 集成 E5000 : Cannot form a matching secure hash based on the merchant's request using either of the two merchant's secrets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24690062/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com