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 相关文章推荐
用php实现百度网盘图片直链的代码分享
Nov 01 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
Jan 13 PHP
深入PHP异步执行的详解
Jun 03 PHP
php class中public,private,protected的区别以及实例分析
Jun 18 PHP
ThinkPHP3.1查询语言详解
Jun 19 PHP
PH P5.2至5.5、5.6的新增功能详解
Jul 14 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
Apr 21 PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
Nov 14 PHP
PHP数据库处理封装类实例
Dec 24 PHP
php中Redis的应用--消息传递
Mar 28 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
php-fpm超时时间设置request_terminate_timeout资源问题分析
Sep 27 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后门URL的防范
2013/11/12 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
php和asp语法上的区别总结
2019/05/12 PHP
一个不错的用JavaScript实现的UBB编码函数
2007/03/09 Javascript
JS 密码强度验证(兼容IE,火狐,谷歌)
2010/03/15 Javascript
JavaScript对象、属性、事件手册集合方便查询
2010/07/04 Javascript
两个listbox实现选项的添加删除和搜索
2013/03/01 Javascript
正负小数点后两位浮点数实现原理及代码
2013/09/06 Javascript
DOM基础教程之使用DOM控制表单
2015/01/20 Javascript
jQuery ajax动态生成table功能示例
2017/06/14 jQuery
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
angularjs数组判断是否含有某个元素的实例
2018/02/27 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
详解Ubuntu安装angular-cli遇到的坑
2018/09/08 Javascript
简单了解TypeScript中如何继承 Error 类
2019/06/21 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
Vue常用API、高级API的相关总结
2021/02/02 Vue.js
Python模块文件结构代码详解
2018/02/03 Python
基于循环神经网络(RNN)实现影评情感分类
2018/03/26 Python
Python基于dom操作xml数据的方法示例
2018/05/12 Python
python模式 工厂模式原理及实例详解
2020/02/11 Python
基于python-pptx库中文文档及使用详解
2020/02/14 Python
Python对wav文件的重采样实例
2020/02/25 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
详解Java中一维、二维数组在内存中的结构
2021/02/11 Python
西班牙国家航空官方网站:Iberia
2017/11/16 全球购物
澳大利亚最大的在线美发和美容零售商之一:My Hair Care & Beauty
2019/08/24 全球购物
上级检查欢迎词
2014/01/18 职场文书
关于倡议书的范文
2015/04/29 职场文书
正规借条模板
2015/05/26 职场文书
校园安全主题班会
2015/08/12 职场文书
大学军训口号大全
2015/12/24 职场文书
php双向队列实例讲解
2021/11/17 PHP
MySQL磁盘碎片整理实例演示
2022/04/03 MySQL