微信相关接口
来源:互联网 发布:qq当前网络质量不佳 编辑:程序博客网 时间:2024/05/29 10:57
先列出来需要用到的函数吧
function fetchUrl($url, $time=120)
{
$curl_opt = array(
CURLOPT_URL => $url,
CURLOPT_AUTOREFERER => TRUE,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CONNECTTIMEOUT => 0,
CURLOPT_TIMEOUT => $time,
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_SSL_VERIFYHOST => FALSE
);
$ch = curl_init();
curl_setopt_array($ch, $curl_opt);
$contents = curl_exec($ch);
curl_close($ch);
return $contents;
}
1、获取当前用户是否关注该公众号,如果有关注还可以获取其他用户信息(详情见:微信公众平台开发者文档----用户管理----获取 用户基本信息)
这里我直接写例子:
$url2 = "https://api.weixin.qq.com/cgi-bin/user/info?access_token={$access_token}&openid={$openid}&lang=zh_CN";
$res2 = fetchUrl($url2);
$data2 = (array)json_decode($res2); //微信会返回下述JSON数据包给公众号
$subscribe = $data2['subscribe'];
$openid = $data2['openid'];
(注意:如果用户没有关注该公众号,微信只会返回两个值:subscribe、openid,如果subscribe为0,则表示没有关注,否则会返回更多用户详细信息)
可以看到这个接口里面需要用到 $access_token 和 {$openid}这两个值,那么调用这个接口前,就需要先获取这两个值,这就需要调用其他微信接口。
2、获取access_token(详情见:网页授权获取用户基本信息)
$url1 = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$secret}";
$res1 = fetchUrl($url1);
$data1 = (array)json_decode($res1);
$access_token = $data1['access_token'];
(注意:这个接口里面用到的两个值appid和secret在微信公众号后台----开发者中心--配置项--开发者ID 可以看到)
3、获取openid(详情见:网页授权获取用户基本信息----通过code换取网页授权access_token)
$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={$appid}&secret={$secret}&code={$code}&grant_type=authorization_code";
$data = (array)json_decode(fetchUrl($url));
$openid = $data['openid'];
(注意:这个接口用到的openid和secret和上个接口一样,在公众号后台拿到,另外一个code还需要用另个接口获取)
4、获取code(详情见:网页授权获取用户基本信息----用户同意授权,获取code)
这个接口需要引导关注者打开如下页面
我是在模板页面这么做的:
function goHome(){
var url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx2ae54a94c0b2fe8a&redirect_uri=http://zhuanti.49you.com/wxjb150427/ajax_action.php&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
window.location.href=url;
}
然后一进入页面就执行这个函数
页面将跳转至 redirect_uri/?code=CODE&state=STATE(在这里获取code就好)
5、最后获取结果后,如果用户没有关注,想直接跳转至关注页面,用js:
window.location.href="weixin://profile/gh_44bbe5b7146c";
(注意:gh_44bbe5b7146c是微信公众号原始ID)
6、还有一项需要注意:
有时候会出现错误:redirect_uri参数错误,要检查下后台配置:
开发者中心----接口权限表-----网页授权获取用户基本信息 ,这里配置的域名和redirect_uri参数跳转的域名是否一致,当然也可能是其他原因。
域名格式:zhuanti.49you.com(不需要带http://)
- 微信相关接口
- 微信支付宝扫码支付相关接口
- 微信app开发支付接口相关
- 微信服务号相关接口开发
- 微信接口 请求 编码 utf-8 相关设置
- 使用retrofit实现微信登录的相关接口
- 微信接口
- 微信接口开发
- 微信素材接口
- 微信支付接口
- 微信分享接口
- 微信JS接口
- 微信接口备忘
- 微信图像接口
- 微信接口整理
- 微信接口封装
- 微信接口开发
- 微信接口尝试
- 在servlet中批量获取表单元素的值
- 剑指offer 面试题33—把数组排成最小的数
- 互联网将是中小创业者的最后一棵救命稻草
- Python urllib2模块
- python基础学习总结2——类与对象
- 微信相关接口
- (备忘)Android Studio快捷键
- fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h
- 运营商战争日渐激烈 催生“免费打电话”
- Web数据挖掘在电子商务中的应用研究
- 2013年山东省第四届ACM大学生程序设计竞赛——Rescue The Princess
- about substring usage
- 正则表达式
- hdu1754 I Hate It(线段树)