[英]PayFort Signature using SHA256
https://docs.payfort.com/docs/in-common/build/index.html#create-signature-value
我需要一些有關生成PayFort令牌化SHA256簽名的幫助。 鏈接中的示例為您提供了有關如何標記請求的基本指南,但我需要的是有關如何使用密鑰生成SHA256簽名以及如何使用密鑰解密響應簽名的信息。 我擁有請求和響應短語密鑰所需的所有數據。 我不完全了解如何使用C#中的密鑰生成正確的SHA256簽名。 我嘗試了其他示例來生成SHA256簽名,但它返回的簽名不匹配。
PayFort文檔中的示例:
SHA Request Phrase: PASS
SHA-Type: SHA-256
PASSaccess_code=SILgpo7pWbmzuURp2qrilanguage=enmerchant_identifier=MxvOupuGmerchant_reference=MyReference0001service_command=TOKENIZATIONPASS
如何在C#中正確加密和解密它。
任何幫助表示贊賞。
編輯:
我在盲目射擊,熟悉C#的PayFort集成的任何人都可以指導我
public static String Sign(String data, String key)
{
KeyedHashAlgorithm algorithm = new HMACSHA256();
Encoding encoding = new UTF8Encoding();
algorithm.Key = encoding.GetBytes(key);
return Convert.ToBase64String(algorithm.ComputeHash(
encoding.GetBytes(data.ToCharArray())));
}
首先,您需要將您的簽名生成為字符串。 簽名包括訪問碼,語言等。然后將該簽名轉換為字節。 然后初始化一個sha256Managed對象。 將字節參數傳遞給該對象,這將返回另一個字節,但具有sha256Managed格式。 現在,您需要在foreach中設置其格式。
請找到以下代碼,這將對您有所幫助。
byte[] bytes = Encoding.UTF8.GetBytes(signature);
SHA256Managed hashstring = new SHA256Managed();
byte[] hash = hashstring.ComputeHash(bytes);
string hashString = string.Empty;
foreach (byte x in hash)
{
hashString += String.Format("{0:x2}", x);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.