Penyelesaian kepada ralat log masuk php WeChat 41001: 1. Periksa log 2. Keluarkan garis sebatan ke belakang melalui jalur sebatan 3. Nyahkod melalui json_decode.
Persekitaran pengendalian artikel ini: sistem windows7, versi PHP7.1, komputer DELL G3
Cara untuk selesaikan masalah ralat log masuk php WeChat 41001?
Log Masuk Program Mini Menyahsulit Data Pengguna encryptedData -41001: pengekodanAesKey Haram
Perangkap yang dihadapi semasa melakukan log masuk yang dibenarkan WeChat untuk Program Mini, masalah itu akhirnya diselesaikan
Kongsi sekarang Berikut ialah beberapa idea untuk menyelesaikan masalah.
Masalah:
Untuk membenarkan log masuk WeChat untuk program mini, mula-mula dapatkan kod, kemudian dapatkan session_key dan open_id, kemudian dapatkan encryptedData, dan hantarkannya ke pelayan untuk penyahsulitan maklumat pengguna diperolehi, tetapi kadangkala ia berjaya dan kadangkala ia mengembalikan ralat -41001, session_key diperolehi.
Penyelesaian:
Arah yang saya pertimbangkan pada mulanya ialah tamat tempoh session_key, kerana saya tidak tahu tamat tempoh session_key Selepas banyak ujian, saya mendapati bahawa ini adalah bukan sebabnya.
Saya kemudian mula melayari pelbagai blog yang berkaitan dan mencari masalah yang berkaitan, tetapi akhirnya tidak menemui penyelesaian mungkin, jadi tidak banyak masalah di kawasan ini
Akhirnya, saya mula melihat melalui kod sumber SDK yang dinyahsulit, dan kemudian mendapati bahawa sebab untuk -41001 adalah untuk mengesahkan panjang session_key
if (strlen($this->sessionKey) != 24) { return ErrorCode::$IllegalAesKey; } //public static $IllegalAesKey = -41001; //>-41001: encodingAesKey 非法
Akhirnya, saya melihat log dengan teliti (Saya juga membandingkan session_key secara terperinci sebelum ini, hanya untuk melihat sama ada terdapat sebarang nilai. Rentetan aksara yang besar, tetapi saya tidak memahami maksud yang mendalam. Saya tahu ada yang berjaya dan ada yang gagal, dan saya tidak dapat mencari corak sama sekali.) Beri perhatian kepada panjang session_key dan anda boleh melihat helah di dalamnya
Rentetan json PHP mempunyai Apabila menambahkan garisan ke belakang "" untuk melarikan diri, anda perlu mengalih keluar garisan ke belakang terlebih dahulu semasa memproses dalam PHP, dan kemudian gunakan fungsi stripslashes() dalam json_decode
$str = stripslashes($json); $arr = json_decode($str,true);
, masalahnya selesai!
*Ini soalan kecil, rekodkan untuk memberikan ingatan yang panjang kepada diri anda
Kajian yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah ralat log masuk php WeChat 41001. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!