0

0

php+微信接口开发的微信分销平台拆分讲解(一)微信oauth2接口

php中文网

php中文网

发布时间:2016-07-30 13:30:26

|

1248人浏览过

|

来源于php中文网

原创

本人一IT民工一枚,不是高手更不是大神但希望能成为雷锋。没有神马文笔,只会发牢骚,讲解不清楚可以继续提问在时间允许的情况下我会尽量去回答。

本文不提供整套系统源码,只会开放部分源码,讲诉开发的经历、思路、问题解答,希望对新手有帮助,至于高手和大神一下而过或留下宝贵意见在此谢过。


废话不多说了开始进入正题。

基础篇

php当前主流WEB开发语言毋庸置疑不用多说。微信接口主要用到微信授权登录接口、微信JSSDK分享接口、微信支付接口,对于微信的一系列接口必须要牢骚一下到处是坑啊。分销系统是一种营销模式以后会解释。首先说一下第一步微信登录(oauth2第三方授权接口),个人认为比较重要的一部,优点用户体验高、安全性高、为后边做分销系统打下便利的基础,缺点只能在微信内置浏览器中访问对于微信外其他方式宣传推广不便利,只能用二维码的方式(生成链接形式的二维码网上第三方工具很多,也可以用程序来实现,有兴趣可以留言)。

 

首先看一下传说中的微信API接口文档吧,官网文档地址http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html

用该接口必须需要一个认证的服务号、没有的情况下可以申请一个测试账号体验一下但不能宣传推广

关于网页授权回调域名的说明

文档写的比较清楚,在不用第三方平台的情况下,需要配置一下项目需要获取微信用户信息的路径,一二.....级域名都可以。这个比较明朗

再往下看第一遍没看懂,第二遍没看懂。。。。。。项目是一年前开始开发的当时的文档比现在还简陋而且网上可参考的资料很少官方没有实例,还好最后从一篇文章找到蛛丝马迹算是做出来了,牢骚一下

 

其他说明

先介绍几个参数appid和appsecret在微信公众平台中可以找到很多接口的调用都会用到这两个参数。

最重要的一个参数也是调用授权接口的目的,openid,它是一个微信号对应该公众平台的唯一标示,获取到它就可以认为用户已经微信登录了,后边一切业务流程和数据库记录都是围绕它来建立的。

下面说说如何获取openid和用户基本信息比如头像昵称城市性别等,这是一个比较蛋疼的过程,这么多步骤玩我们呢是吧?给你找个理由是为了安全性考虑吧。我又发牢骚了不好意思。

分三步

1获取code,啥是code???不知道反正获取到它才能进行下一步

接口地址:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&resp/span>

appid刚才提高过在公众平台里可以找到,redirect_uri是重点它是再用户通过上述的接口地址发出请求到微信的服务器,微信服务器通过GET方式传递一个参数code返回到redirect_uri,$_GET方式接受一下就可以。scope也是个比较重要的参数他有两种类型snsapi_basesnsapi_userinfo,说说区别如果只想实现微信登录也就是只需要openid那么使用snsapi_base,它的好处是用户在访问时并不知晓你抓取了他的openid。使用snsapi_userinfo除了可以抓取openid以外,还能抓取到更多很多微信用户信息,现在很多微信应用都需要头像和昵称那么直能使用snsapi_userinfo,缺点为会首先弹出微信授权是否允许的页面需经过用户同意才可以进行下一步的操作

如图:


 

2.获取openidaccess_token

通过刚才获取到的code以及appidappsecret

接口:https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

返回的是json格式的数据

 

3获取头像昵称等...

通过openidaccess_token

接口:https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

返回的是json格式的数据

参数lang不写的时候默认返回英文数据

 

实例代码片段

a.php

$url='http://www.xxx.com/b.php';

$url=urlencode($url);

$href="https://open.weixin.qq.com/connect/oauth2/authorize?appid=xxx&redirect_uri=$url&resp/span>

@header("location:$href");

 

b.php

$code=$_GET['code'];

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

$js/span>

$jsonstr = json_decode($jsonstr,true); 

$access_token= $jsonstr['access_token'];

$openid=$jsonstr['openid'];

$userurl='https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid;

$userinfo=file_get_contents($userurl); 

$userinfo = json_decode($userinfo,true); 

 

好吧勉强算是实现了。。。。。。。。。。但是经过一段时间的运行抓取信息并不稳定会出现一部分用户没有获取到头像和昵称琢磨了很久不知道问题出现在哪里,在哪里?????

噢出现在 file_get_contents这个函数的问题上,用file_get_contents虽然可以实现但表现的效果极不稳定,后来改用curl就稳定多了但是不会达到100%抓取多方面因素造成的,但基本在可接受范围内。

 

 

今天时间有限,分销系统的定义、获取微信用户头像昵称等信息还有另一种方式不需要弹出授权界面、unionid多公众平台开发的时候需要用到、实现持久登录状态需要cookie、以及分销系统用户端的商城部分的购物车实现等内容会在第二次进行讲解。

 

附系统访问路径二维码一个,大家可以先看一下只能用微信访问,可以提问包括系统架构、前端JS脚本和一系列功能模块的实现问题,我会根据大多数人的需求更改下次更新的内容

 

 



 

 


版权声明:本文为博主原创文章,未经博主允许不得转载。

LHT蓝海豚团购导航
LHT蓝海豚团购导航

Lht蓝海豚(大维)团购导航系统是一套开源程序,采用PHP+MySql平台开发,具有强大的多规则API采集功能、精确化引导消费功能,卓越的负载能力和访问速度,全面支持第三方整合(微博、短信等)前台功能团购名站:显示分类下的所有团购网站,点击团购站,可直接进行查看、推荐、收藏精品商城:为网民推荐展示非团购网站的网上商城今日团购:显示各团购网站正在进行的团购团购排行:今日团购商品可按价格、行业、折扣、

下载

以上就介绍了php+微信接口开发的微信分销平台拆分讲解(一)微信oauth2接口,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

相关文章

微信app下载
微信app下载

微信是一款手机通信软件,支持通过手机网络发送语音短信、视频、图片和文字。微信可以单聊及群聊,还能根据地理位置找到附近的人,带给大家全新的移动沟通体验,有需要的小伙伴快来保存下载体验吧!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

37

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

37

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

45

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

9

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 3.4万人学习

PHP代码整洁之道
PHP代码整洁之道

共7课时 | 6.6万人学习

http状态码大全
http状态码大全

共47课时 | 107.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号