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 相关文章推荐
用IE远程创建Mysql数据库的简易程序
Oct 09 PHP
用PHPdig打造属于你自己的Google[图文教程]
Feb 14 PHP
php xml留言板 xml存储数据的简单例子
Aug 24 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
Nov 02 PHP
PHP cdata 处理(详细介绍)
Jul 05 PHP
Drupal读取Excel并导入数据库实例
Mar 02 PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
Jan 28 PHP
thinkphp3.x中display方法及show方法的用法实例
May 19 PHP
php 二维数组时间排序实现代码
Nov 19 PHP
PHP使用imagick扩展实现合并图像的方法
Apr 25 PHP
PHP封装cURL工具类与应用示例
Jul 01 PHP
php的对象传值与引用传值代码实例讲解
Feb 26 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 生成饼图 三维饼图
2009/09/28 PHP
PHP之数组学习
2011/05/29 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
PHP实现冒泡排序的简单实例
2016/05/26 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
JavaScript类库D
2010/10/24 Javascript
Javascript的getYear、getFullYear、getUTCFullYear异同分享
2011/11/30 Javascript
window.parent与window.openner区别介绍
2012/04/12 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
2014/06/06 Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
2015/03/13 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
2015/12/03 Javascript
js命名空间写法示例
2015/12/18 Javascript
JavaScript自学笔记(必看篇)
2016/06/23 Javascript
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
对angular 监控数据模型变化的事件方法$watch详解
2018/10/09 Javascript
layer.open组件获取弹出层页面变量、函数的实例
2019/09/25 Javascript
vue中destroyed方法的使用说明
2020/07/21 Javascript
[05:59]带你看看DPC的台前幕后
2021/03/11 DOTA
Python3实现并发检验代理池地址的方法
2016/09/18 Python
Python正则表达式使用范例分享
2016/12/04 Python
Python循环结构的应用场景详解
2019/07/11 Python
如何解决django-celery启动后迅速关闭
2019/10/16 Python
python实现的汉诺塔算法示例
2019/10/23 Python
Python使用微信接入图灵机器人过程解析
2019/11/04 Python
Python *args和**kwargs用法实例解析
2020/03/02 Python
Python绘制数码晶体管日期
2021/02/19 Python
html5中的input新属性range使用记录
2014/09/05 HTML / CSS
党的群众路线教育实践活动总结报告
2014/04/28 职场文书
禁毒宣传工作方案
2014/05/23 职场文书
村安全生产责任书
2014/08/25 职场文书
个园导游词
2015/02/04 职场文书
《棉鞋里的阳光》教学反思
2016/02/20 职场文书
Python基础之元编程知识总结
2021/05/23 Python
pytorch中的model=model.to(device)使用说明
2021/05/24 Python