thinkPHP微信分享接口JSSDK用法实例


Posted in PHP onJuly 07, 2017

本文实例讲述了thinkPHP微信分享接口JSSDK用法。分享给大家供大家参考,具体如下:

首先在数据库中添加access_token表:

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for access_token
-- ----------------------------
DROP TABLE IF EXISTS `access_token`;
CREATE TABLE `access_token` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `access_token` char(64) NOT NULL COMMENT '令牌-唯一标识',
 `expires_time` varchar(64) DEFAULT NULL COMMENT '过期时间',
 `ticket` char(64) NOT NULL COMMENT '临时票据',
 `ticket_expires_time` varchar(64) DEFAULT NULL COMMENT '过期的票据时间',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COMMENT='token缓存表';
/**
* 添加微信分享接口
* 第一步:access token
*/
public function getAccessToken(){
  $appid = '你的appid'; //获取用户唯一凭证
  $secret = '你的secret'; //用户唯一凭证密钥
  $time = time()+7000; //当前时间+2小时等于过期时间
  if (!$token) {
    $res = file_get_contents('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' .$appid.'&secret='. $secret);
    $res = json_decode($res, true);
    $token = $res['access_token'];
    $model = D('access_token'); //把获取的token存储到数据库中
    if($token){
      $data = array(
      'access_token' => $token,
      'expires_time' => $time
      );
      $data = $model->add($data); //把获得的token存储到数据库中
    }
  }
  return $token;
}
/**
* 添加微信分享接口
* 第二步:用第一步拿到的access_token 采用http GET方式请求获得jsapi_ticket
*/
public function getJsapiTicket(){
  $time = time()+7000; //当前时间+2小时等于过期时间
  $map['ticket_expires_time'] = array('gt',time());
  $res = D('access_token')->where('ticket_expires_time')->field('ticket')->find();
  if($res){
    $ticket = $res['ticket'];
    $result['result'] = $ticket; //没查询到符合条件的
    jsonpReturn($result);
  } else{
    $token = $this->getAccessToken();
    $res = file_get_contents("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".$token."&type=jsapi");
    $res = json_decode($res, true);
    $ticket = $res['ticket'];
    // ticket不能频繁的访问接口来获取,在每次获取后,我们把它保存到数据库中。
    $model = D('access_token'); //把获取的ticket存储到数据库中
    if($ticket){
      $data = array(
      'access_token' => $token,
      'expires_time' => $time,
      'ticket' => $ticket,
      'ticket_expires_time' => $time
      );
      $data = $model->add($data); //把获得的token存储到数据库中
    }
    $result['result'] = $ticket; //没查询到符合条件的
    jsonpReturn($result);
  }
}

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
基于Windows下Apache PHP5.3.1安装教程
Jan 08 PHP
解析MySql与Java的时间类型
Jun 22 PHP
PHP检测移动设备类mobile detection使用实例
Apr 14 PHP
linux下编译安装memcached服务
Aug 03 PHP
跟我学Laravel之视图 & Response
Oct 15 PHP
php计算函数执行时间的方法
Mar 20 PHP
PHP实现的简单缓存类
Jul 29 PHP
详解PHP执行定时任务的实现思路
Dec 21 PHP
php实现的读取CSV文件函数示例
Feb 07 PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
Apr 27 PHP
php 数组元素快速去重
May 05 PHP
Laravel 不同生产环境服务器的判断实践
Oct 15 PHP
微信开发之获取JSAPI TICKET
Jul 07 #PHP
Yii2第三方类库插件Imagine的安装和使用
Jul 06 #PHP
一个实用的php验证码类
Jul 06 #PHP
万能的php分页类
Jul 06 #PHP
PHP 实现从数据库导出到.csv文件方法
Jul 06 #PHP
php文件上传类的分享
Jul 06 #PHP
PHP图片水印类的封装
Jul 06 #PHP
You might like
随机头像PHP版
2006/10/09 PHP
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
2012/04/09 PHP
smarty基础之拼接字符串的详解
2013/06/18 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
数组Array进行原型prototype扩展后带来的for in遍历问题
2010/02/07 Javascript
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
2013/11/18 Javascript
推荐JavaScript实现继承的最佳方式
2014/11/11 Javascript
js实现背景图片感应鼠标变化的方法
2015/02/28 Javascript
JS控制表格实现一条光线流动分割行的方法
2015/03/09 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
2015/12/24 Javascript
ES6的新特性概览
2016/03/10 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
2016/05/12 Javascript
node.js学习之交互式解释器REPL详解
2016/12/08 Javascript
JS简单获取当前年月日星期的方法示例
2017/02/07 Javascript
JSONP跨域请求
2017/03/02 Javascript
JavaScript实现短信倒计时60s
2017/10/09 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
2019/01/23 Javascript
python进程类subprocess的一些操作方法例子
2014/11/22 Python
python实现堆栈与队列的方法
2015/01/15 Python
python实现提取COCO,VOC数据集中特定的类
2020/03/10 Python
巧用CSS3 border实现图片遮罩效果代码
2012/04/09 HTML / CSS
让IE9以下版本的浏览器兼容HTML5的方法
2014/03/12 HTML / CSS
Willer台湾:日本高速巴士/夜行巴士预约
2017/07/09 全球购物
Coggles美国/加拿大:高级国际时装零售商
2018/10/23 全球购物
印度在线购买电子产品网站:Croma
2020/01/02 全球购物
建筑专业毕业生推荐信
2013/11/21 职场文书
班组安全员工作职责
2014/02/01 职场文书
机关党员2014全国两会学习心得体会
2014/03/10 职场文书
环保建议书
2014/03/12 职场文书
生物工程专业求职信
2014/09/03 职场文书
2014教师党员自我评议(5篇)
2014/09/20 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书
纪检监察立案决定书
2015/06/24 职场文书
婚宴主持词
2015/06/30 职场文书
解决golang post文件时Content-Type出现的问题
2021/05/02 Golang
Vue和Flask通信的实现
2021/05/19 Vue.js