Verifikasi token WeChat
Mundur
1. Metode akses platform publik WeChat tidak lebih dari 4 parameter (tanda tangan, stempel waktu, nonce, echostr) ditambah 1 token (sesuai dengan kedua sisi)
2. Setelah menyortir token, stempel waktu, dan kamus nonce, enkripsi sesuai dengan string "SHA1". Menghasilkan string tmpStr (dikonversi ke huruf kecil)
3. Kemudian bandingkan apakah tmpStr sama dengan tanda tangan, jika sama, berarti permintaannya berasal dari WeChat.
4. Jika Anda memastikan bahwa permintaan berasal dari WeChat, Anda telah menyelesaikan langkah besar. Sisanya, pekerjaan mentransmisikan parameter echostr ke platform publik WeChat.
Verifikasi tanda tangan saya berhasil, tetapi WeChat masih gagal mengembalikan token karena saya mengembalikan string dengan format xml, sebagai berikut:
Larutan:
Perlu ditekankan di sini bahwa mengacu pada $echoStr gema PHP, WebFrom's Response.Write(echoStr), dll. Setelah men-debug berulang kali, ditentukan bahwa metode penerimaan WeChat hanya akan diterima sebagai "application/x-www-form-urlencoded", jadi saya menggunakan HttpResponseMessage untuk menentukan metode outputnya. Akhirnya tes berhasil!
Namun, saya pribadi merasa bahwa kalimat di atas tidak salah, tetapi saya malas untuk menguji, dan seharusnya tidak apa-apa untuk mengatur "teks/polos" ke jenis yang sesuai.
POST mengembalikan
Baru-baru ini, fungsi pembayaran WeChat telah digunakan dalam pengembangan program mini WeChat, dan ASP.NET WEB API untuk pengembangan antarmuka;
Setelah pembayaran berhasil, antarmuka menerima hasil pemberitahuan pembayaran dari server WeChat, memproses data, dan mengembalikan data ke layanan WeChat.
Server WeChat tidak mengenali data yang dikembalikan, menghasilkan pemberitahuan duplikat.
Kode resolusi akhir adalah sebagai berikut:
|