当前位置:首页 > 后端 > php > 正文内容

php实现微信公众号扫码登录

hxing6414周前 (03-31)php1977

服务器配置

登录微信公众平台,左侧点开设置与开发 -> 基本设置,如图所示:

image.png

设置好按照指示设置好配置,服务端代码如下:

<?php
// 微信token认证
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$echostr = $_GET["echostr"];
// 你在微信公众号后台的设置的Token
$token = "yourtoken";// 1)将token、timestamp、nonce三个参数进行字典序排序
$tmpArr = array($nonce, $token, $timestamp);
sort($tmpArr, SORT_STRING);// 2)将三个参数字符串拼接成一个字符串进行sha1加密
$str = implode($tmpArr);
$sign = sha1($str);// 3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
if ($sign == $signature) {
    echo $echostr;
}


token必须和微信公众号配置中保持一致,点击“提交”按钮,看是否成功


生成微信登录二维码

1. 先获取access_token

地址:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={APPID}&secret={APPSECRET}

其中 APPID 和 APPSECRET 分别是在微信开放平台创建应用后获取的应用 ID 和应用密钥。将该 URL 地址进行 url encode,然后发送 GET 请求即可获取 access_token。


2. 获取登录二维码的 ticket

使用上传图片素材接口(media/upload)获取二维码 Ticket ,该接口的请求 URL 地址为:

POST   https://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=image


3. 将获取到的 Ticket 通过以下 URL 地址生成登录二维码:

https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET

其中 TICKET 是在上一步取到的 Ticket。将以上 URL 地址拼接起来,即可生成二维码,二维码有效期为 5 分钟。需要注意二维码中必须携带正确的参数,以保证登录成功。

扫描二维码推送至手机访问。

版权声明:本文由星星博客发布,如需转载请注明出处。

本文链接:http://xingxinghan.cn/?id=526

分享给朋友:

“php实现微信公众号扫码登录” 的相关文章

php运行报错:Using $this when not in object context

php运行报错:Using $this when not in object context以下是我的代码:错误代码实例:public static function getInfo() {     // ....

php获取下个月,下一年此刻的时间戳

获取当前时间戳:$now = time();获取下个月此刻的时间戳:$nextMonth = strtotime('+1 month');获取下一年此刻的时间戳$nextYear = strtotime('+1 year');...

php字符串压缩工具

判断字符串是否需要压缩,然后再进行压缩,需要优化的地方很多,比如把压缩结果保存起来,避免执行2次,判断是依赖于压缩的结果大小和原始字符串的大小来判断的,懒得处理了。代码如下/**  * 字符串压缩工具  */ class CompressStrUtil...

php es 报错 No alive nodes. All the 1 nodes seem to be down

php连接es时报错No alive nodes. All the 1 nodes seem to be down,原因是Elasticsearch开启了安全认证,查看服务器端响应信息为:received plaintext http traffic on&n...

php nginx实现文件下载

配置nginxserver {         listen        80;    &nb...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。