ホームページ > WeChat アプレット > WeChatの開発 > WeChat 開発のヒント: エラー「config:invalid signal」の解決策

WeChat 開発のヒント: エラー「config:invalid signal」の解決策

巴扎黑
リリース: 2016-11-07 10:49:45
オリジナル
3661 人が閲覧しました

WeChat 開発のヒント: エラー config:invalid signal の解決策

WeChat パブリック プラットフォーム、エラー config:invalid signal の解決策がポップアップし続けます
無効な署名の署名エラーの場合。次の順序で確認することをお勧めします:
1. 署名アルゴリズムが正しいことを確認し、http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign ページを使用できるようにします。検証用のツール。
2. 構成内の nonceStr (js の標準的なキャメルケースの大文字 S) とタイムスタンプが、署名で使用されている対応する noncestr とタイムスタンプと一致していることを確認します。
3. URL が「http(s)://」を含むページの完全な URL であることを確認します (現在のページのアラート (location.href.split('#')[0]) で確認してください)。部分、そして「?」 ' 以降のパラメータ部分を GET しますが、'#' ハッシュ以降の部分は含みません。
4. config の appid が jsapi_ticket の取得に使用された appid と一致していることを確認します。
5. access_token と jsapi_ticket を必ずキャッシュします。

これが重要なポイントです:
署名用に取得する URL が動的に取得されていることを確認してください。動的ページの場合は、サンプル コードの PHP 実装を参照してください。 HTML の静的ページの場合、フロントエンドの ajax を介して署名のために URL がバックエンドに渡されます。フロントエンドは、「#」ハッシュ部分を除く現在のページのリンクを取得する必要があります。 location.href.split('#')[0] によって取得され、encodeURIComponent が必要です)。これは、ページが共有されると、現在のリンクが取得されない場合、WeChat クライアントがリンクの末尾に他のパラメーターを追加するためです。動的に、共有ページの署名は失敗します。

それが正しいかどうかを確認する方法を教えます:
URL を動的に取得する方法は次のとおりです:

$protocol = (!empty($_SERVER[HTTPS]) && $_SERVER[HTTPS] !== off || $_SERVER [SERVER_PORT] = = 443) ? "https://" : "http://";

$url = $protocol.$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI];

手順:
まず、Pagealert(location.href.split('#')[0]);
次に、動的に取得された URL がアラートのアドレスと同じかどうかを出力します。大文字と小文字の区別も含めて、それらはまったく同じである必要があります。
何か違うものを見つけた場合は、必要に応じて変更してください。とにかく、それは同じです。署名検証に合格する必要があります。


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート