1、計算された署名は WeChat が提供するサンドボックスと一致しています: http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign
2. 問題を解決するために 2 つの方法を使用しようとしましたが、同じエラーが発生しました。 1) URL をローカルからサーバーに渡し、ajax を通じてサーバーの json データを取得し、wx のコンテンツを入力します。 .config; 2)、サーバーから取得します この訪問へのリンク
3. nginx をリバース ドメイン名プロキシとして使用しますが、アップストリーム用に処理されています
結論: WeChat の JSSDK にはバグがある疑いがあります
確認が必要な場合があります
1) WeChat の jsticket をサーバー上でグローバルにキャッシュしますか? 新しい jsticket が取得された後、元の jsticket (access_token を含む) が更新されます
2) クエリ文字列などを含め、URL が一貫しているかどうか
3) nonceStr と timestamp が署名と一致しているかどうか
また、バグがあるのではないかと思います。無効な署名は Android では無効ですが、iOS では正しいです。そしてそれは公式のデバッグページに渡されますが、元の投稿者は現在それを解決しているのでしょうか?
おそらく
はバックグラウンドで生成され、フォアグラウンドに書き込まれます。
私のようなurl
传入的问题,建议wx.config
リーリー
それではリーリー リーリー
投稿者の問題は解決しましたか? 私も同じ問題を抱えています。WeChat のテスト ツールと比較するためにインターフェイスもテストしましたが、無効な署名が表示され続けます。
署名は公式のものと同じで、URLもlocation.href.split('#')[0]で取得されます。 。 また、公式アカウントの JS インターフェイス セキュリティ ドメイン名も正常に構成されていますが、動作しません。 。 神様に助けを求めてください
テストアドレス: http://weixin.zhjckx.com/ApiWeiXin/JsSdk
他の人からの私の返信をチェックしてください:
/q/1010000002502269/a-1020000002549180X2X
私が遭遇した状況は、署名生成時に現在のURLを取得する際に、laravelフレームワークのURL:full()メソッドが使用されていたということでした。その結果、このメソッドは URL 内のクエリ文字列の順序を並べ替えます。たとえば、アクセスしたときの URL は
リーリー、URL:full() を使用して得られた結果は
リーリー正直で実用的な WeChat 公式サンプルに変更されました:
リーリー大丈夫です。
自分で修正してテストしましたが、問題ありませんでした。理由は公式のhttpGet関数が使えないからです。
jssdk.phpのこれら2つの文を教えてください
リーリー