当前位置:  开发笔记 > 编程语言 > 正文

微信公众平台开发教程⑥ 微信开发集成类的使用图文详解

这篇文章主要介绍了微信公众平台开发之微信开发集成类的使用,结合图文形式详细分析了微信开发集成类的原理、功能、用法及相关操作注意事项,需要的朋友可以参考下

本文实例讲述了微信公众平台开发之微信开发集成类的使用。分享给大家供大家参考,具体如下:

背景

  这几天又在接触微信PHP方面的开发,认为之前写的文章确实有些乱,刚好发现了一个不错的集成类(看原始代码,出自“云知梦军哥”,不算打广告,只是尊重别人的开发成果,谢谢)里面涉及了非常全面的函数,在此针对我自己的实际使用过程简单的描述一下希望能给同道小白们一个诚恳的引导 ...

  框架:ThinkPHP 3.2.3

前期准备:

①.微信公众平台的配置

这里不赘述,具体的可以参考我前面所写的1、2章,个人认为还是比较全面的

②. 将文件 Weixin.class.php 放在对应的 library 目录中

不过本人人开发是基于 ThinkPHP 框架,如果使用了其它的方式,注意更改引用路径,相信还是较为容易的,参考截图如下:

③. 对应的数据库中需要新建一个表

当然,后期优化可以考虑去掉或自行设计,在这里个人觉得比较合理,也方便自己测试(公众号在线接口调试工具)

④. 此表是用来微信授权时自动存储公众号信息及其token 获取时间

而对应操作此表的代码位于 Weixin.class 中的 getaccesstoken()方法,

如果不是采用的 ThinkPHP 框架,可针对此方法中的 sql 语句进行替换截取部分代码可供参考

一.开发者模式配置

①. 参考配置截图

②. 注意匹配对应目录以及令牌

/**
 * 微信开发配置控制器
 * Class WeixinController
 * @package M\Controller
 */
class WeixinController extends Controller
{
 public function index()
 {
 import('Org.Wechat.Weixin');
 //参数传值 token、AppID、AppSecert
 $wechat = new \Weixin('zxxxi', 'wxxxxxxxxx89', 'efxxxxxxxxxxxxxxxxxxxxxxxb7');
 if (!isset($_GET['echostr'])) {
  //TODO 调用响应消息函数 自动回复
  $wechat->responseMsg();
 } else {
  //实现网址接入,调用验证消息函数
  $wechat->valid();
 }
 }
}

③. 必要文件上传

    微信公众平台近期发现规定需要在相应域名的根目录下上传文件,具体可从公众号下载。

 

二. 请求授权登录,获取微信用户信息

①. 代码参考

    下面是本人摘抄并精简的部分代码,具体的业务逻辑需要自己相应进行补充或删减

import('Org.Wechat.Weixin');
//参数传值 token、AppID、AppSecert
$wechat=new \Weixin('zxxxxi','wxxxxxxxxxxxxx9','efxxxxxxxxxxxxxxxxxxxxxxxxxxxx7');
//可理解为这是当下的链接地址
$url = "http://www.xxxxx.com".$_SERVER['REQUEST_URI'];
//TODO 判断 memcache是否有值,是否过期 (此处只是一个判断举例)
if(!S(session('XXXNAME').'_NAMEID')){
 if(!$_GET['code']){
 $redirect_uri = $url;
 $urls=$wechat->getOauthRedirect($redirect_uri);
 header("Location:".$urls);
 die;
 }
}
$reT=$wechat->getOauthAccessToken();
//TODO 如果获得 token值
if($reT){
 $openid = $reT['openid'];
 $user_info = $wechat->getOauthUserinfo($reT['access_token'],$openid);
 //查询数据库是否存在
 $userData = M('users')
 ->where("openid = '$openid'")
 ->Field('user_id,user_name,abnormal')
 ->find();
 if ($userData['user_id']) {
 //执行操作 或者跳转页面
 header("Location:???????");
 }else{
 //没有帐号需要转到用户名填写页面来完成授权
 $maxuid = M('users')->max('user_id');
 $user['openid'] = $openid;
 $user['nickname'] = $user_info['nickname'];
 $user['sex'] = $user_info['sex'];
 $user['reg_time'] = time();
 $user['user_img'] = $user_info['headimgurl'];
 //TODO 进行新用户的添加
 $addTag = add('users',$user);
 }
}else{
//重新跳转,或其他操作...
}

②. 手机微信端登录对应链接的结果

 

③. 补充说明

$user_info = $wechat->getOauthUserinfo($reT['access_token'],$openid);

   此处返回的$user_info 为授权用户的详细信息,可追踪方法查看源代码中 OAUTH_USERINFO_URL 的定义开发者文档有介绍其意义,之前的两篇文章里也做了简单介绍

三、微信端分享功能

①. 配置微信分享相应数据

下面的方法个人设计面向对象时是在继承的 Controller 构造函数中初始化调用的,大家可以按自己需求放置

/**
 * 配置微信分享功能
 */
public function getWxShare(){
 import('Org.Wechat.Weixin');
 $wechat=new \Weixin('zxxxxi','wxxxxxxxxxxxx9','efxxxxxxxxxxxxxxxxxxb7');
 $url = "http://www.xxxxxmi.com".$_SERVER['REQUEST_URI'];
 $res = $wechat->getJsSign($url);
 $res['wxurl'] = $url;
 $this->assign('wx',$res);
}

②. 前台页面的配置信息

多数就是 html 前台文件,补充如下的 js 代码,具体的数据可自己修改






















    
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有