我正在尝试在OAUTH请求期间验证Shopify HMAC,但我生成的哈希值与请求中提供的不匹配。
我找到了一些其他的线程,但它们要么过时(either outdated),因为文档现在声明使用GET请求而不是POST,要么在Java中没有得到回答(unanswered)。
我的C#代码如下:
我猜测信息构建有误,但是我已经按照官方文档的指导操作了,但没有成功。
请问有人可以帮忙吗?
我找到了一些其他的线程,但它们要么过时(either outdated),因为文档现在声明使用GET请求而不是POST,要么在Java中没有得到回答(unanswered)。
我的C#代码如下:
string key = "mysecretkey";
string message = string.Format("shop={0}×tamp={1}", shop, timestamp);
System.Text.ASCIIEncoding encoding = new ASCIIEncoding();
byte[] keyBytes = encoding.GetBytes(key);
byte[] messageBytes = encoding.GetBytes(message);
System.Security.Cryptography.HMACSHA256 cryptographer = new System.Security.Cryptography.HMACSHA256(keyBytes);
byte[] bytes = cryptographer.ComputeHash(messageBytes);
string digest = BitConverter.ToString(bytes).Replace("-", "");
bool valid = digest == hmac.ToUpper();
我猜测信息构建有误,但是我已经按照官方文档的指导操作了,但没有成功。
请问有人可以帮忙吗?
code
&shop=shop
&state=state
×tamp=timestamp
; 这对我有用。 - Parag Jadhav