Ошибка проверки 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
Другие вопросы по тегам