Rumah > Artikel > applet WeChat > Ringkasan masalah kehilangan Perujuk (pembayaran WeChat H5)
Baru-baru ini, syarikat telah memohon pembayaran H5 WeChat Dokumen pembayaran yang berkaitan boleh didapati di sini https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_4. Selepas keluaran, pembayaran telah dimulakan 商家参数格式有误,请联系商家解决
Menurut dokumen WeChat rasmi, mesej ralat sepatutnya referer
Jadi saya menemui masalah yang hilang dan mendapati ia memang referer
proses penyelesaian.
Perujuk HTTP adalah sebahagian daripada HTTP
permintaanheader
maklumat pengepala apabila penyemak imbas menghantar permintaan ke pelayan web, ia biasanya membawanya Perujuk
memberitahu pelayan halaman mana saya dipautkan, supaya pelayan boleh mendapatkan beberapa maklumat untuk diproses.
Sebagai contoh, dalam Chrome
konsol penyemak imbas, kita boleh melihat maklumat yang serupa dengan yang berikut di bawah Request Headers
Provisional headers are shown Accept: / Origin: local.test5.show Referer: local.test5.show/test/show User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36
di mana Referer
ialah atribut
Perujuk ialah perujuk. Disebabkan ralat ejaan dalam spesifikasi HTTP awal, adalah satu kesilapan untuk mengekalkan keserasian ke belakang
Sebagai contoh, jika anda mendapati anda memuatkan sumber anda sendiri tetapi perujuknya bukan tapak anda sendiri, anda boleh menyekatnya
Ini sama seperti di atas
Sebagai contoh, pembayaran WeChat H5 juga memerlukan ini, saya tidak tahu untuk apa mereka menggunakannya (hhh
Berkenaan masalah kehilangan Referer
, pertama sekali, perujuk dihantar ke pelayan oleh pelayar pelanggan, dan boleh diperolehi oleh pelanggan melalui document.referrer
, yang bermaksud bahawa penghantaran perujuk sebenarnya adalah tingkah laku penyemak imbas, sama ada ia dihantar atau tidak Keputusan terletak pada penyemak imbas, tetapi protokol HTTP mempunyai peraturan yang ketat tentang masa penyemak imbas harus menghantarnya dan apabila ia tidak sepatutnya menghantarnya tidak menghantar perujuk
4 Gunakan Skim URI Data Dipautkan, pelayar tidak akan menghantar perujuk
5. Gunakan Dasar Keselamatan Kandungan, anda juga boleh menghalang pelayar daripada menghantar perujuk
6 Gunakan tag meta dalam pengepala html untuk mengawal tidak membenarkan Penyemak imbas menghantar perujuk
untuk menjana pautan URL HTTPS ke HTTP secara automatik
Kadangkala perlu menjana beberapa pautan URL dalam projek API untuk kembali, tetapi pelayan telah dikonfigurasikan untuk menyokong HTTPS URL yang dijana apabila diakses melalui HTTPS masih HTTP
Kembali ke penjejakan isu pembayaran WeChat yang saya temui Selepas satu pusingan pelayar melompat, saya mendapati bahawa atribut berada di bahagian kedua. kes. Apabila melompat dari tapak HTTPS ke tapak HTTP, Perujuk hilang [ps: sebaliknya, tiada masalah untuk pergi dari HTTP ke HTTPS tanpa kehilangan Perujuk]. Sudah tentu, saya tidak menyedari masalah ini pada mulanya kerana tiada masalah dari permintaan bahagian hadapan kepada API Semua projek telah menggunakan HTTPS di seluruh papan, dan maklumat Perujuk juga dibawa URL permintaan pembayaran WeChat dicapai dalam langkah terakhir .
Kemudian saya mendapati bahawa apabila meminta projek API, projek API mengembalikan URL ke bahagian hadapan URL ini dijana oleh kod bahagian belakang kepada peraturan (fungsi pembantu tindakan dalam Laravel tidak ada yang salah dengan fungsi ini sendiri, tetapi pautan URL yang dijana ialah HTTP, menyebabkan masalah lagi). ! ! Projek API dikonfigurasikan untuk permintaan HTTPS tetapi URL yang dijana ialah HTTP Masalahnya di sini saya meminta bantuan daripada saudara operasi dan penyelenggaraan dan akhirnya mendapati bahawa ia adalah masalah yang dikonfigurasikan dalam proksi terbalik Nginx .
Serpihan konfigurasi pelayan nginx adalah seperti berikut :
Anda boleh melihat bahawa parameter proxy_pass menghala ke protokol HTTP, jadi URL yang diperoleh di latar belakang adalah semua protokol HTTP. Tetapkan proksi kepadadan masalah akan diselesaikan
Disyorkan: "location / { proxy_pass http://114.114.114.114:80; }Tutorial Pembangunan WeChat
"
Atas ialah kandungan terperinci Ringkasan masalah kehilangan Perujuk (pembayaran WeChat H5). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!