发布时间:2017年12月15日 17:28:29编辑:admin阅读(5379)评论(0)
很多微信开发初学者为什么一窍不通,只能啃文档
而有些人即使拼命啃文档也不一定能弄出效果呢,
其实微信开发很简单,只不过微信开发的门槛不简单,
微信登录还简单,但是微信支付就必须要花300大洋了。
而且你还必须是企业资质才能做微信支付开发,个人是不能做微信支付的。只能做做简单的微信授权登录,
我自己之前也打算弄个微信授权登录的,网页授权登录去申请了一个微信开放号,but,申请的时候明明勾选了个人,但是就是不知道为什么要我盖企业公章,我是个人啊大哥,不知道是账号问题还是个人微信开放号不能申请。。。咳咳,跑题了
回归正题,直接上一段代码 LoginController .php
<?php
namespace Home\Controller;
use Think\Controller;
class LoginController extends Controller {
Public function login(){
/*
find_model('wx_open','id=1');
个人封装方法,
内容
return M('wx_open')->where('id=1')->find();
直接把微信的openID,appsecret 等参数 存在数据库,便于后台操作控制,
C("WX_PAY_CONFIG");
把openID,appsecret http_url 参数配置在config.php里
*/
$wx = find_model('wx_open','id=1');
//$wx=C("WX_PAY_CONFIG");
$appid = $wx["appid"];
$secret = $wx["appsecret"];
$http_url = $wx["http_url"];
/*http%3A%2F%2F'.$http_url.'/%2Findex.php%2FHome%2FLogin%2Flogin
$http_url 授权域名
Home 模块名
Login 控制器
login 接口
简单的理解就是当前接口路径地址,
is_null($_GET["code"]) 判断当前路径请求有没有带code参数,没有就去请求微信,获取code并带code参数返回
*/
if (is_null($_GET["code"])){
$url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$appid.'&redirect_uri=http%3A%2F%2F'.$http_url.'/%2Findex.php%2FHome%2FLogin%2Flogin&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect';
header("Location:".$url);
}else{
//json_decode 返回数据转换成json
//拿到code参数
$code = $_GET["code"];
$get_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code';
//get_curl($get_token_url) 获取access_token
$json_obj = json_decode($this->get_curl($get_token_url),true);
//根据openid和access_token查询用户信息
$access_token = $json_obj['access_token'];
$openid = $json_obj['openid'];
$get_user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN';
//解析json
$user_obj = json_decode($this->get_curl($get_user_info_url),true);
//$user_obj 到这里授权登录拿到的数据都在这里了,我这是存在cookies,哪里需要哪里获取
//你们自己也可以不存cookies,直接差数据库openID判断存不存在,没存在就添加一条数据,存在就获取id保存,登录完成
cookie("wx_user",$user_obj,9999999);
}
}
//封装curl 请求
public function get_curl($get_url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $get_url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
}接口就这么简简单单,直接复制就可以了,
,方便你(便宜你)了。
然后就是域名的问题

这个地方配置授权域名,添加的是不带任何小尾巴的域名,且域名备案通过来了,小伙伴们明白了吗
最后一点,官方文档可能好多不懂,不懂可以看我的,或者分享给别人的,或者@我。这里添加域名授权的时候回叫你下个文件,你放到你的项目下,然后域名+文件名,能访问到就可以了,
既然网页域名授权都能添加成功了,这步肯定是已经通过来了。
最后再说一遍,开发的时候,使用的域名一定要是备案通过来得,然后项目必须放在服务器上,不是放在开发者的本地环境,必须服务器,必须服务器,必须服务器,必须备案了的,必须备案了的,必须备案了的。
好了,说完了,不懂得@我,留言我。谢谢
关键字: 微信
上一篇: 新手简单发送邮件
8168
5380
5395