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

发布时间 - 2026-01-11 02:14:03    点击率:

本文实例讲述了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微信开发技巧汇总》、《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

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


# thinkPHP  # 微信  # 分享接口  # JSSDK  # 微信小程序开发之获取用户手机号码(php接口解密)  # ThinkPHP框架实现的微信支付接口开发完整示例  # php获取微信基础接口凭证Access_token  # PHP封装的微信公众平台接口开发操作类完整示例  # 详解使用php调用微信接口上传永久素材  # PHP实现微信JS-SDK接口选择相册及拍照并上传的方法  # php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)  # PHP配合微信小程序实现获取手机号码详解  # 微信小程序结合ThinkPHP5授权登陆后获取手机号  # PHP请求微信接口获取用户电话号功能示例  # 数据库中  # 符合条件  # 进阶  # 相关内容  # 令牌  # 把它  # 感兴趣  # 给大家  # 更多关于  # 第二步  # 所述  # 程序设计  # 操作技巧  # 讲述了  # expires_time  # CodeIgniter  # varchar  # ticket  # DEFAULT  # AUTO_INCREMENT 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: HTML 中动态设置元素 name 属性的正确语法详解  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  javascript基于原型链的继承及call和apply函数用法分析  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  Python结构化数据采集_字段抽取解析【教程】  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  实例解析angularjs的filter过滤器  如何用AI帮你把自己的生活经历写成一个有趣的故事?  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  网站建设整体流程解析,建站其实很容易!  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  iOS正则表达式验证手机号、邮箱、身份证号等  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  网站制作软件免费下载安装,有哪些免费下载的软件网站?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  深入理解Android中的xmlns:tools属性  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  Laravel观察者模式如何使用_Laravel Model Observer配置  如何在不使用负向后查找的情况下匹配特定条件前的换行符  打造顶配客厅影院,这份100寸电视推荐名单请查收  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  iOS发送验证码倒计时应用  实现点击下箭头变上箭头来回切换的两种方法【推荐】  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  魔方云NAT建站如何实现端口转发?  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  JavaScript数据类型有哪些_如何准确判断一个变量的类型  googleplay官方入口在哪里_Google Play官方商店快速入口指南  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  如何正确下载安装西数主机建站助手?  浅谈redis在项目中的应用  详解Android中Activity的四大启动模式实验简述  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  如何快速生成可下载的建站源码工具?  如何快速搭建高效WAP手机网站?  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  如何在云主机上快速搭建多站点网站?  如何快速搭建FTP站点实现文件共享?  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  Python面向对象测试方法_mock解析【教程】