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 相关文章推荐
通过文字传递创建的图形按钮
Oct 09 PHP
php Memcache 中实现消息队列
Nov 24 PHP
php下使用strpos需要注意 === 运算符
Jul 17 PHP
深入apache host的配置详解
Jun 09 PHP
php之CodeIgniter学习笔记
Jun 17 PHP
php车辆违章查询数据示例
Oct 14 PHP
php中final关键字用法分析
Dec 07 PHP
Laravel框架中Blade模板的用法示例
Aug 30 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 PHP
Laravel框架查询构造器 CURD操作示例
Sep 04 PHP
PHP实现时间日期友好显示实现代码
Sep 08 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
Apr 23 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
海贼王:最美的悬赏令!
2020/03/02 日漫
我的论坛源代码(七)
2006/10/09 PHP
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
浅析php中如何在有限的内存中读取大文件
2013/07/02 PHP
thinkphp中memcache的用法实例
2014/11/29 PHP
smarty内置函数capture用法分析
2015/01/22 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
JavaScript调用客户端的可执行文件(示例代码)
2013/11/28 Javascript
js鼠标悬浮出现遮罩层的方法
2015/01/28 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
js运动应用实例解析
2015/12/28 Javascript
Jquery获取radio选中的值
2017/05/05 jQuery
关于ES6箭头函数中的this问题
2018/02/27 Javascript
微信小程序实现星级评分和展示
2018/07/05 Javascript
微信小程序实现手势滑动效果
2019/08/26 Javascript
Jquery使用each函数实现遍历及数组处理
2020/07/14 jQuery
react-native 实现购物车滑动删除效果的示例代码
2021/01/15 Javascript
Python基本数据类型详细介绍
2014/03/11 Python
Python设计模式之抽象工厂模式
2016/08/25 Python
Python zip()函数用法实例分析
2018/03/17 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
2019/04/29 Python
python urllib爬虫模块使用解析
2019/09/05 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
时尚的CSS3进度条效果
2012/02/22 HTML / CSS
css3实现二维码扫描特效的示例
2020/10/29 HTML / CSS
圣诞树世界:Christmas Tree World
2019/12/10 全球购物
中国京东和泰国中央集团合资的网站:JD CENTRAL
2020/08/22 全球购物
护理自荐信
2013/10/22 职场文书
银行会计业务的个人自我评价
2013/11/02 职场文书
老公爱的承诺书
2014/03/31 职场文书
教师考核评语
2014/04/28 职场文书
优秀班主任材料
2014/12/16 职场文书
三年级上册科学教学计划
2015/01/21 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL
Nginx+Tomcat负载均衡集群的实现示例
2021/10/24 Servers