开发者社区> 思梦php> 正文

纵里寻她千百度,暮然回首,那人却在灯火阑珊处(微信三方登陆)

简介: 小插曲就是app做微信三方登陆是很久之前,后面又添加了PC的微信三方登陆,而文档上说unionid是同一个账号下不同应用统一的,但是app拿的是 uid,导致pc拿的unionid始终对不上,导致浪费了一天的时间都在需找资料统一的问题,还有问题是解决了...
+关注继续查看

小插曲就是app做微信三方登陆是很久之前,后面又添加了PC的微信三方登陆,而文档上说unionid是同一个账号下不同应用统一的,但是app拿的是

uid,导致pc拿的unionid始终对不上,导致浪费了一天的时间都在需找资料统一的问题,还有问题是解决了!希望小伙伴们做app的和pc微信三方

登陆的时候一定要注意,app和pc都要拿unionid!好了下面就开始教大家怎么整合PC的微信三方登陆了:

1、申请时候所填写的信息,主要网站信息登记表扫描件是客户提供意外其他都是自己填写,注意的是授权回调域要写一级域名,和调用的时候recudirt_url保持一致

调用接口的步骤

(1):

注意了这个微信的小图标就是微信登陆的链接了,也就是a标签,href是这个值(官方文档1号店的微信登陆)

https://open.weixin.qq.com/connect/qrconnect?appid=wxbdc5610cc59c1631&redirect_uri=https://passport.yhd.com/wechat/callback.do&response_type=code&scope=snsapi_login&state=3d6be0a4035d839573b04816624a415e#wechat_redirect

(2)上面的链接会返回一个code的参数,这个是换取access_token和openid值的媒介,之后呢就逻辑判断了

if(isset($_GET['code'])&&$_GET['state']

=='3d6be0a4035d839573b04816624a415e')

{

//调用的是获取用户的个人信息的方法

$res

=

$this->message_request($code);

}

public functionmessage_request($code){

//修改自己的

$appid =

"wx16a15ed57ec7333d";

$appsecret =

"fc4b2b999787c31733c4bf85f295742b";

//修改自己的

$url =

"https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$appsecret&code=$code&grant_type=authorization_code";

$output =

$this->httpsRequest($url);

$jsoninfo =

json_decode($output,true);

$openid =

$jsoninfo["openid"];

$access_token =

$jsoninfo['access_token'];

$url =

"https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";

$output =

$this->httpsRequest($url);

$message =

json_decode($output,true);

return$message;

}

public functionhttpsRequest($url,$data

=null){

$curl =

curl_init();

curl_setopt($curl,CURLOPT_URL, $url);

curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);

curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);

if(!empty($data)){

curl_setopt($curl,CURLOPT_POST, 1);

curl_setopt($curl,CURLOPT_POSTFIELDS, $data);

}

curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);

$output =

curl_exec($curl);

curl_close($curl);

return$output;

}

重要:

access_token和微信公众平台用户授权登陆不一样,微信公众平台的有限制一天,开放平台的没有限制,而且必须是同时生成,不能过期,app和PC用户的信息保持同步就都用["unionid"]

这个是同一个开放平台下的不同应用["unionid"] 是唯一的,app和PC都要拿这个

得到的结果

array(10) {  ["openid"] =>

string(28) "oD5XQwgVj1gLb3_zgjP72uDgESYk"

["nickname"] => string(6) "刘柱"

//用户的昵称  ["sex"]

=> int(1)  //性别 1:男

["language"] => string(5) "zh_CN"

["city"] => string(6) "南开"

//区  ["province"]

=> string(7) "天津"  //省

["country"] => string(2) "天津" //市

["headimgurl"] => string(129)

"http://wx.qlogo.cn/mmopen

/aQVS6rQD9yJTTHTcyb0AqLOQ3rBoyNL3CyEJleogBib53Y6xiaibZvfZ6quDApeKuPG10sCYKkDvPwkiayUj3dMXjNicOVkV73x1k

/0"

//用户的头像  ["privilege"]

=> array(0) {  }

["unionid"] => string(28)

"o2VJ4xEUwd51_7F2bhisYBhF3fVk"  //unionid

app和pc信息保持一致的基准 }

联系我们:

思梦PHP官方交流1群 466388300

思梦PHP官方交流2群 527490769

作者QQ:476319748

微信公众平台:思梦PHP​

以上联系方式备注:微信公众平台思梦PHP

我们会定期给大家推送项目实战中非常有用的小技巧以及好的思维和小功能的案例!微信搜索思梦PHP就可以找到我们了

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
怎么在电脑上同时登陆两个微信
怎么在电脑上同时登陆两个微信
63 0
面试官问我:如何设计 QQ、微信等第三方账号登陆 ?还要我说出数据库表设计!
面试官问我:如何设计 QQ、微信等第三方账号登陆 ?还要我说出数据库表设计!
80 0
微信扫码登陆网站类似 58同城(基于微信开发生成带参数的二维码的讲解)
微信扫码登陆网站类似 58同城(基于微信开发生成带参数的二维码的讲解)
112 0
微信二维码登陆
Created by Wang, Jerry, last modified on Dec 10, 2014
184 0
laravel 5.6接入微信第三方授权登陆的主要步骤
这方面,php已很成熟了, 综合下面这个链接,基本上调试一下就可以搞定了。
2885 0
微信OAuth2网页授权登陆接口
微信OAuth2网页授权登陆接口,微信OAuth2网页授权登陆接口,在你的网站上放上可以扫码登陆,会不会吸引更多用户去注册,现在你只需要简单的配制一下就可以轻松实现,还不快点拿走,微信扫码登陆接口开发你只要需要把配制文件中的APPid、KEY等修改为你自己中你申请的时的就可以,傻瓜式操作,无论你是技术大神还是刚入门的小白,只需修改一下配制文件,便可帮助你实现各种网站登陆。
1022 0
PC 微信扫码登陆
1、注册微信开发平台 官网网址 自行注册,需要注意的是注册邮箱号不用与腾讯其他产品同号。 2、微信开发平台添加网站应用 以上资料提交之后等待TX审核,审核时间大概2天左右,审核通过之后就可以查看AppID AppSecret以及申请微信登录。
1615 0
QQ和微信同步登陆,AppStore审核被拒4次的坑路
最近应用加入了微信和QQ同步登陆,结果被拒绝了4次!!下面就让我带大家回顾这坑路~ 第一次最拒绝 第一次以为是苹果测试手机没有安装QQ导致,所以写了代码判断手机是否安装QQ,如果没有安装就隐藏掉QQ登陆图标。
1332 0
+关注
思梦php
思梦PHP公益讲师!热衷PHP技术,热爱技术分享!
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
微信高效运维之路
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载