Cara melaksanakan log masuk pengimbasan kod WeChat dalam PHP: 1. Buat seketika objek melalui js 2. Tentukan div dalam HTML dan masukkan kod QR; 3. Dalam $(document).ready() Just instantiate ia.
Persekitaran pengendalian artikel ini: sistem Windows 10, PHP 7, komputer thinkpad t480.
WeChat telah menjadi bahagian yang amat diperlukan dalam kehidupan seharian kami Untuk membolehkan lebih ramai pengguna menggunakan WeChat dan produk berkaitan dengan lebih mudah, fungsi imbasan WeChat menjadi semakin biasa. Jadi apa yang perlu kita lakukan jika kita ingin melaksanakan fungsi ini sendiri?
Sebelum memberikan kod pelaksanaan khusus, mari kita analisa dahulu proses log masuk pengimbasan kod WeChat.
Mula-mula kita mesti memaparkan kod QR pada halaman Kod QR mempunyai masa tamat tempoh dan keadaan tidak sah Sebaik sahaja anda mengimbas kod QR sekali atau tidak mengimbasnya dalam tempoh masa tertentu, kod QR akan muncul pada halaman, maka kod QR ini akan menjadi tidak sah. Tapak web rasmi WeChat memberi kami dua cara untuk memaparkan kod QR Satu ialah menghantar permintaan di latar belakang untuk memulangkan halaman baharu, dan satu lagi adalah untuk membuat instantiate kod QR dalam js bahagian hadapan dan membenamkannya pada halamannya sendiri. Jelas sekali kaedah pertama adalah lebih mudah dan lebih mudah, tetapi kedua-dua kaedah akan digunakan dalam projek sebenar Dalam kes ini, kami akan menerangkan kedua-dua kaedah.
1. Hantar permintaan di latar belakang untuk mendapatkan halaman kod imbasan yang dikembalikan oleh WeChat
$redirect_uri="http://你的微信开放平台绑定域名下处理扫码事件的方法"; $redirect_uri=urlencode($redirect_uri);//该回调需要url编码 $appID="你的appid"; $scope="snsapi_login";//写死,微信暂时只支持这个值 //准备向微信发请求 $url = "https://open.weixin.qq.com/connect/qrconnect?appid=" . $appID."&redirect_uri=".$redirect_uri."&response_type=code&scope=".$scope."&state=STATE#wechat_redirect"; //请求返回的结果(实际上是个html的字符串) $result = file_get_contents($url); //替换图片的src才能显示二维码 $result = str_replace("/connect/qrcode/", "https://open.weixin.qq.com/connect/qrcode/", $result); return $result; //返回页面
Ini akan mengembalikan halaman seperti ini dan memanggil $redirect_uri selepas mengimbas
2 >
Kedua takrifkan div dalam html untuk mengandungi kod QR,
<script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>
Akhir sekali nyatakannya dalam $(document).ready():
<div id="login_container"></div>
Nota Fail css yang ditunjuk oleh href mesti diletakkan di bawah protokol https sebelum ia boleh dirujuk Jika tidak, gaya lalai akan dipaparkan pada halaman (paparan ialah kod QR yang agak besar. Anda tidak boleh melaraskan saiz dan kedudukan. kod QR itu terlalu menyakitkan. Bahagian terakhir halaman kelihatan seperti ini. Kod QR di sini hanya kira-kira 140px:
$(document).ready(function() { var obj = new WxLogin ({ id:"login_container",//div的id appid: "你的appid", scope: "snsapi_login",//写死 redirect_uri:encodeURI("你的处理扫码事件的方法") , state: "", style: "black",//二维码黑白风格 href: "https://某个域名下的css文件" }); });
Baiklah, kod QR muncul pada halaman Seterusnya kita akan bercakap secara kasar tentang logik mengimbas kod QR Keseluruhan proses dibahagikan secara kasar kepada 5 langkah:
Selepas menyelesaikan lima langkah ini, anda akan mendapat semua maklumat pengguna yang mengimbas kod QR. Kemudian tulis logik kod yang anda perlukan (seperti ubah hala atau log masuk). Proses log masuk adalah sangat jelas. Sebenarnya, ia pada asasnya hanyalah panggilan terkoordinasi berbilang antara muka WeChat.
Pembelajaran yang disyorkan:latihan php
//回调 public function codeinfo() { $code = $_GET["code"]; $appid = "你的appid"; $secret = "你的secret"; if (!empty($code)) //有code { //通过code获得 access_token + openid $url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=" . $appid . "&secret=" . $secret . "&code=" . $code . "&grant_type=authorization_code"; $jsonResult = file_get_contents($url); $resultArray = json_decode($jsonResult, true); $access_token = $resultArray["access_token"]; $openid = $resultArray["openid"]; //通过access_token + openid 获得用户所有信息,结果全部存储在$infoArray里,后面再写自己的代码逻辑 $infoUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=" . $access_token . "&openid=" . $openid; $infoResult = file_get_contents($infoUrl); $infoArray = json_decode($infoResult, true); } }
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan log masuk kod imbasan WeChat dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!