PHP WeChatログイン41001エラーの問題を解決する方法

藏色散人
リリース: 2023-03-14 19:04:01
オリジナル
4387 人が閲覧しました

php WeChat ログイン 41001 エラーの解決策: 1. ログを確認します; 2. ストリップスラッシュを使用してバックスラッシュを削除します; 3. json_decode を使用してデコードします。

PHP WeChatログイン41001エラーの問題を解決する方法

この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

方法PHP WeChatログイン41001エラーの問題を解決しますか?

ミニ プログラムのログインでユーザー データの暗号化が解除される暗号化データ -41001: エンコーディング AesKey が不正です

ミニ プログラムの WeChat 認証ログイン時に遭遇した落とし穴、問題はついに解決されました

共有ここで問題解決のためのアイデアをいくつか紹介します。

質問:

ミニ プログラムに対して WeChat 認証ログインを行うには、まずコードを取得し、次に session_key と open_id を取得し、次に encryptedData を取得して渡します。サーバーに送信して復号化します ユーザー情報は取得できますが、成功する場合と-41001エラーが返される場合があります ログを見るとsession_keyが取得されているのですが原因と解決方法は何ですか?

解決策:

session_key の有効期限がわからなかったため、最初に検討した方向は session_key の有効期限でした。多くのテストの後、これが次のとおりであることがわかりました。理由ではありません。結果として

#その後、さまざまな関連ブログを参照し、関連する問題を検索し始めましたが、最終的には解決策が見つかりませんでした。おそらく、この問題は不適切すぎるため、この分野には多くの問題はありません

最後に、復号化された SDK ソース コードを調べ始めたところ、-41001 の理由は session_key の長さを確認するためであることがわかりました。

if (strlen($this->sessionKey) != 24) {
 return ErrorCode::$IllegalAesKey;
}
//public static $IllegalAesKey = -41001;
//>-41001: encodingAesKey 非法
ログイン後にコピー

最後に、ログを注意深く調べました (以前に session_key も詳細に比較しましたが、値、長い文字列文字があることを確認しただけで、深い意味はわかりません。成功するものと失敗するものがあることだけがわかり、パターンが見つかりませんsession_key の長さに注意すると、トリックがわかります

PHP の json 文字列が追加されることがあります バックスラッシュ "\" を使用してエスケープします PHP で処理する場合は、最初にバックスラッシュを削除する必要がありますを使用し、json_decode

$str = stripslashes($json); 
$arr = json_decode($str,true);
ログイン後にコピー

でstripslashes() 関数を使用します。問題は解決されました。

#*これは小さな質問です。記録して長い記憶に残してください。

推奨学習: 「

PHP ビデオ チュートリアル

以上がPHP WeChatログイン41001エラーの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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