php token 域名授权,Laravel 微信 Token 配置 与微信网页授权操作

微信开发准备工作

1、申请公众号测试账号地址,先注册账号

http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index

2、更改接口信息配置的Token与URL地址

9cb09352670683d4f8b5dd81e17380dd.png

注:该URL是直接指向到具体能访问到的地址。

3、设置JS安全域名与设置网页授权回调地址

a980c8409b7da86be9189d4bd0cdb3f3.png

功能列表 -- 网页服务

12b6921dce0b63db466351d7d81a7c80.png

1ab831cb81b8d03e5df24c691b921286.png

4、开始接入微信验证Token

namespace Test;

class TestController extends Controller

{

public function tokenSignature()

{

$timestamp = $_GET['timestamp'];

$nonce = $_GET['noonce'];

$token = 'sxs-hd'; //该处的值应该和第二条的TOKEN值一样

$signature = $_GET['signature'];

$array = array($timestamp, $nonce, $token);

sort($array);

//排序之后的数据拼接好使用sha1加密

$tmpstr = implode('', $array);

$tmpstr = sha1($tmpstr);

//将加密后的字符串与singature进行对比,判断是否来自微信请求

if ($tmpstr == $signature) {

exit($_GET['echostr']);

}

}

}

5、获取自身的access_token值

public function get_access_token()

{

$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='. self::APP_ID .'&secret=' . self::APP_SECRET;

$token = file_get_contents($url);

var_dump($token);

//正常返回

{

"access_token":"ACCESS_TOKEN",

"expires_in":7200

}

//失败返回

{

"errcode":40013,

"errmsg":"invalid appid"

}

}

6、获取用户网页身份授权

第一步:用户同意授权,获取code值

$params = http_build_query([

'appid' => '你的APPID',

'redirect_uri => urlencode('https://mm.shaxiaoseng.com/Test/code'), //获取之后回调地址

'response_type' => 'code',

'scope' => 'snsapi_base',

'state' => 123

]);

$url = 'https://open.weixin.qq.com/connect/oauth2/authorize?' . $params . '#wechat_redirect';

#把上面的url在微信客户端打开就能看到返回的code值

第二步:通过code换取网页授权access_token

//根据第一步获取到的code并回调到本方法

public function code()

{

#根据拿到的code值去访问用户的access_token令牌

$params = http_build_query([

'appid' => 'APPID',

'secret' => 'APP_SECERT',

'code' => $_GET['code'],

'grant_type' => 'authorization_code'

]);

$url = 'https://api.weixin.qq.com/sns/oauth2/access_token?' . $params;

$result = file_get_contents($url);

var_dump($result);

//正确返回

{

"access_token":"ACCESS_TOKEN",

"expires_in":7200,

"refresh_token":"REFRESH_TOKEN",

"openid":"OPENID",

"scope":"SCOPE"

}

}

第三步:刷新access_token令牌

第四步:拉取用户信息

第五步:检验授权凭证(access_token)是否有效

其它的开发可以直接查看微信官方手册 [手册地址]

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

本作品采用《CC 协议》,转载必须注明作者和本文链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHP微信网页授权是指开发者使用微信公众平台提供的接口,在PHP开发的网站中实现用户通过微信进行身份验证和登录的功能。这个过程通常包含以下几个步骤: 1. **获取授权URL**:首先,你需要在微信公众平台上注册并配置应用,获取到AppID、AppSecret。然后调用微信的`https://open.weixin.qq.com/connect/oauth2/authorize`接口,传入相应的参数(如redirect_uri、response_type等)生成一个授权页面链接。 ```php $authUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?" . "appid=" . $appID . "&redirect_uri=" . urlencode($redirectUri) . "&response_type=code" . "&scope=snsapi_userinfo" // 请求用户基础信息权限 . "&state=your_state" // 自定义状态值防止CSRF攻击 . "#wechat_redirect"; ``` 2. **用户点击授权**:用户在浏览器中打开这个链接后,会跳转到微信客户端,提示用户确认授权。如果用户同意,微信服务器会重定向回指定的redirect_uri,并附带access_token作为查询参数。 3. **验证授权码**:用户回到你的网站后,你需要从请求中解析出access_code,然后用它换取access_token。这通常涉及到HTTP POST请求到`https://api.weixin.qq.com/sns/oauth2/access_token`接口,提供AppID、AppSecret以及刚才接收到的code。 4. **刷新access_token**:为了长期有效使用,可能需要定期或在需要时刷新access_token。同样通过POST请求到`https://api.weixin.qq.com/sns/oauth2/token`,但这次需要使用refresh_token。 5. **获取用户信息**:有了access_token,你可以调用`https://api.weixin.qq.com/sns/userinfo`接口,传入access_token和openid(从code到token的过程中会得到),以获取用户的详细信息。 6. **存储用户信息**:最后,将用户的微信信息保存到数据库,以便后续操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值