我在使用 c# 代码实现签证网络源时遇到错误,我在创建项目后下载了源代码,但出现错误可能是 x-pay-token 未正确生成。有什么方法可以验证我的令牌或通过传递参数使用任何 API 生成它。下面的代码,我正在使用
string baseUri = "cybersource/";
string resourcePath = "v2/payments";
string xPayToken = GetXPayToken(resourcePath, "apikey=" + apikey, requestBodyString);static string GetXPayToken(string apiNameURI, string queryString, string requestBody)
{
string timestamp = GetTimestamp();
string sourceString = timestamp + apiNameURI + queryString + requestBody;
string hash = GetHash(sourceString);
string token = "xv2:" + timestamp + ":" + hash;
return token;
}
private static string GetHash(string data)
{
string sharedSecret = ConfigurationManager.AppSettings["VisaPaySharedSecret"];
var hashString = new HMACSHA256(Encoding.ASCII.GetBytes(sharedSecret));
var hashbytes = hashString.ComputeHash(Encoding.ASCII.GetBytes(data));
string digest = String.Empty;
foreach (byte b in hashbytes)
{
}
return digest;
}