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

2025-05-29 0 52

本文实例讲述了thinkPHP微信分享接口JSSDK用法。分享给大家供大家参考,具体如下:

首先在数据库中添加access_token表:

?

1

2

3

4

5

6

7

8

9

10

11

12

13
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缓存表';

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23
/**

* 添加微信分享接口

* 第一步: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;

}

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32
/**

* 添加微信分享接口

* 第二步:用第一步拿到的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程序设计有所帮助。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 thinkPHP微信分享接口JSSDK用法实例 https://www.kuaiidc.com/93975.html

相关文章

发表评论
暂无评论