【发布时间】:2015-09-14 12:39:12
【问题描述】:
我正在尝试按照 this 文档在 Shopify 市场上发布应用程序。而且我被困在 oauth 文档的第 3 步,您必须在其中执行“HMAC 签名验证”。
文档说明您必须使用应用程序的共享密钥通过 HMAC-SHA256 处理字符串(如下指定)。
String = "shop=some-shop.myshopify.com×tamp=1337178173"
我正在尝试使用 Java 来实现这些步骤。以下是我使用的代码的要点。
private static final String HMAC_ALGORITHM = "HmacSHA256";
String key = "hush";
String data = "shop=some-shop.myshopify.com×tamp=1337178173";
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(),HMAC_ALGORITHM);
Mac mac = Mac.getInstance(HMAC_ALGORITHM);
mac.init(keySpec);
byte[] rawHmac = mac.doFinal(data.getBytes());
System.out.println(Hex.encodeHexString(rawHmac));
代码生成以下字符串:
c2812f39f84c32c2edaded339a1388abc9829babf351b684ab797f04cd94d4c7
通过在 Shopify 开发者论坛上的一些随机搜索,我找到了指向 question 的链接。
来自@Shayne 的最后一条消息表明我们必须通过添加protocol 字段来更改data 变量。
但是没有成功:(
谁能告诉我应该做什么?我是否必须修改我的代码或文档中的流程已更改。 请帮忙。
【问题讨论】:
标签: java oauth shopify sha256 hmac