Ошибка проверки Shopify
Я пытаюсь создать общедоступное приложение в Shopify. Я могу установить рамки, необходимые для нашего приложения. Во время установки он запрашивает проверку Shopify. Я сослался на этот документ https://shopify.dev/tutorials/authenticate-with-oauth. Я передал сообщение как code=%code-from-shopify%&shop=%shop.myshopify.com%&state=%state-from-shopify%×tamp=%timestamp-from-shopify% с секретом в качестве секретного ключа приложения Shopify, но это никогда не совпадать с hmac, присутствующим в URL-адресе в качестве параметра.
Я создал приложение 3 года назад, оно работает нормально, как я уже упоминал выше, но когда я создал приложение 9 дней назад, оно не работает, и секретный ключ для этого нового приложения начинается как shpss_
Как это исправить?
1 ответ
- Первым делом проверьте, правильно ли вы указали SHOPIFY_KEY и SHOPIFY_SECRET и используете ли вы то же самое в своем коде.
- После перенаправления с shopify на ваш call backUrl вы получите hmac и код из запроса.
Вот код для получения токена доступа от hmac
foreach ($_REQUEST as $key => $value) {
if ($key !== "hmac" && $key != "signature") {
$hashArray[] = $key . "=" . $value;
}
}
$hashString = implode($hashArray, "&");
$hashedString = hash_hmac("sha256", $hashString, 'YOUR_SHOPIFY_SECRET');
/* compare resulting hashed string with hmac parameter */
if ($_REQUEST['hmac'] !== $hashedString) {
return 403;
}
$shopUrl = "https://" . $_REQUEST["shop"] . "/admin/oauth/access_token.json";
$postData = http_build_query(
array(
"client_id" => 'YOUR_SHOPIFY_KEY',
"client_secret" => 'YOUR_SHOPIFY_SECRET',
"code" => $_REQUEST["code"],
)
);
/* Call using curl post you will get Access token in JSON */
$result = shop_auth_curl_request_call($shopUrl, $postData);
$tokenResponse = json_decode($result, true);
$tokenResponse['access_token'] // In JSON you will get access token