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 相关文章推荐
基于mysql的bbs设计(一)
Oct 09 PHP
php 应用程序安全防范技术研究
Sep 25 PHP
Ajax+PHP边学边练 之五 图片处理
Dec 03 PHP
php中的观察者模式
Mar 24 PHP
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
Sep 23 PHP
json的键名为数字时的调用方式(示例代码)
Nov 15 PHP
php中文字符串截取方法实例总结
Sep 30 PHP
php实现比较两个文件夹异同的方法
Jun 18 PHP
php注册登录系统简化版
Dec 28 PHP
PHP错误处理函数
Apr 03 PHP
ThinkPHP打水印及设置水印位置的方法
Oct 14 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
Nov 05 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接受文件并获得其后缀名的方法
2015/08/05 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
2016/03/17 PHP
浅析Yii2中GridView常见操作
2016/04/22 PHP
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
流量统计器如何鉴别C#:WebBrowser中伪造referer
2015/01/07 Javascript
使用javascript实现判断当前浏览器
2015/04/14 Javascript
JS实现Fisheye效果动感放大菜单代码
2015/10/21 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
2016/03/19 Javascript
JavaScript获取键盘按键的键码(参照表)
2017/01/10 Javascript
jquery,js简单实现类似Angular.js双向绑定
2017/01/13 Javascript
angularjs2中父子组件的数据传递的实例代码
2017/07/05 Javascript
Angular2.0实现modal对话框的方法示例
2018/02/18 Javascript
vue 组件使用中的一些细节点
2018/04/25 Javascript
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
在vue项目中promise解决回调地狱和并发请求的问题
2020/11/09 Javascript
微信小程序实现页面左右滑动
2020/11/16 Javascript
token 机制和实现方式
2020/12/15 Javascript
Python中if __name__ == '__main__'作用解析
2015/06/29 Python
详解python string类型 bytes类型 bytearray类型
2017/12/16 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
Python函数生成器原理及使用详解
2020/03/12 Python
python中format函数如何使用
2020/06/22 Python
Python环境搭建过程从安装到Hello World
2021/02/05 Python
HTML5注册页面示例代码
2014/03/27 HTML / CSS
美国南部最大的家族百货公司:Belk
2017/01/30 全球购物
Pretty You London官网:英国拖鞋和睡衣品牌
2019/05/08 全球购物
白血病募捐倡议书
2014/05/14 职场文书
旅游与环境专业求职信
2014/06/05 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
教师优秀党员事迹材料
2014/08/14 职场文书
幸福中国演讲稿
2014/09/12 职场文书
化妆品促销活动总结
2015/05/07 职场文书
千与千寻观后感
2015/06/04 职场文书
交通处罚决定书
2015/06/24 职场文书
导游词之镇江焦山
2019/11/21 职场文书
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB