微信jssdk接口(php)_wxjssdk.php-程序员宅基地

技术标签: 微信  php  

<?php 
//微信jssdk接口
function weixinsdk(){ 
//公众号查看appid跟secret分别填入
$appid = 'your appid';
$secret = 'your secret';


$ticketData =json_decode(file_get_contents("jsapi_ticket.json"));
if($ticketData->expire_time < time() || !$ticketData->jsapi_ticket){
$token='https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$secret;

$token = json_decode(http_get($token));


$jsapi_ticket = json_decode(http_get('https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token='.$token->access_token.'&type=jsapi'));
if ($jsapi_ticket) {
$ticketData->expire_time = time() + 7000;
$ticketData->jsapi_ticket = $jsapi_ticket->ticket;
$fp = fopen("jsapi_ticket.json", "w");
fwrite($fp, json_encode($ticketData));
fclose($fp);
}
}
$jsapi_ticket = $ticketData->jsapi_ticket;


$timestamp = time();


$url = "http://".$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI];

$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
   
   $nonceStr = "";
   
   for ($i = 0; $i < 16; $i++){
     $nonceStr .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
   }


$string = "jsapi_ticket=$jsapi_ticket&noncestr=$nonceStr&timestamp=$timestamp&url=$url";
$signPackage = array(
'appId' => $appid,
'timestamp' => $timestamp,
'nonceStr' => $nonceStr,
'signature' => sha1($string),
);
return $signPackage;


}
/**
* GET 请求
* @param string $url
*/
function http_get($url){
$oCurl = curl_init();
if(stripos($url,"https://")!==FALSE){
curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, FALSE);
}
curl_setopt($oCurl, CURLOPT_URL, $url);
curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1 );
$sContent = curl_exec($oCurl);
$aStatus = curl_getinfo($oCurl);
curl_close($oCurl);
if(intval($aStatus["http_code"])==200){
return $sContent;
}else{
return false;
}
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cpt0518/article/details/44978043

智能推荐

小样本学习综述||阿里巴巴_小样本学习 图像分类 阿里-程序员宅基地

文章浏览阅读948次。元学习论文总结||小样本学习论文总结2017-2019年计算机视觉顶会文章收录 AAAI2017-2019 CVPR2017-2019 ECCV2018 ICCV2017-2019 ICLR2017-2019 NIPS2017-2019https://baijiahao.baidu.com/s?id=1629626559555746572&wfr=spider&..._小样本学习 图像分类 阿里

centos7源码方式安装zabbix-4.0_centos7从源代码安装zabbix4.0-程序员宅基地

文章浏览阅读1.3k次。1.关闭防火墙systemctl stop firewalld.service #临时关闭firewallsystemctl disable firewalld.service #禁止firewall开机启动2.替换yum源mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupwg..._centos7从源代码安装zabbix4.0

Hbase安装及配置_hbase配置步骤-程序员宅基地

文章浏览阅读8.6k次,点赞11次,收藏82次。实验目的:(1)熟悉Hadoop相关操作。(2)掌握虚拟机上Hbase的安装方法并可以熟练安装Hbase。实验要求:(1)根据Hadoop版本安装合适的Hbase。(2)安装好hbase后进入hbase熟悉数据库相关操作。(1)在官网下载Hadoop对应的Hbase的版本,下载完成之后,进行解压,并将其解压之后的结果传输到虚拟机内/opt/modules文件夹下。这些截图是我第一次装的时候的版本,建议大家换成高一些的版本,这个版本有点低了。其中,把hbase-重命名为hbase,方便后续._hbase配置步骤

springBoot集成redisCluster-程序员宅基地

文章浏览阅读94次。本文主要内容:springBoot简介,在SpringBoot中如何集成Redis,可配置Redis集群。关于SpringBoot你想要的,这里都有:https://spring.io/projects/spring-boot 这是SpringBoot的官方文档,开发者已经将你需要的东西都给你了。SpringBoot是一个大的容器,可以在这里很轻松地创建各种Spring应用,并且轻..._springboot 2.0.5 release redis cluser

Transformer新型神经网络在机器翻译中的应用 | 公开课笔记-程序员宅基地

文章浏览阅读2.1k次。嘉宾 | 于恒来源 | AI科技大本营在线公开课编辑 | Jane于恒:直播间的朋友大家好!欢迎大家来到本次AI科技大本营公开课,我是本次讲师于恒。在讲课开始之前先简短..._transformer 多卡

ReactNative NodeJs v5.7.0稳定版官方下载_native.js下载-程序员宅基地

文章浏览阅读1.2k次。Windows 32-bit Installer: https://nodejs.org/dist/v5.2.0/node-v5.2.0-x86.msiWindows 64-bit Installer: https://nodejs.org/dist/v5.2.0/node-v5.2.0-x64.msiWindows 32-bit Binary: https://nodejs.org/di_native.js下载

随便推点

springboot【19】日志管理之使用AOP统一处理Web请求日志-程序员宅基地

文章浏览阅读3.4k次。AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是Spring框架中的一个重要内容,它通过对既有程序定义一个切入点,然后在其前后切入不同的执行内容,比如常见的有:打开数据库连接/关闭数据库连接、打开事务/关闭事务、记录日志等。基于AOP不会破坏原来程序逻辑,因此它可以很好的对业务逻辑的各

Python——列表排序和赋值_python 列表赋值-程序员宅基地

文章浏览阅读4.4k次,点赞2次,收藏4次。(x, y表达式) for x in 列表1 for y in 列表2 if 条件表达式]根据可迭代对象参数iterable,返回一个新的排序后的列表。[x表达式for x in 列表if 条件表达式][x表达式for x in 列表if 条件表达式][x表达式for x in 列表if 条件表达式][x表达式for x in 列表if 条件表达式]返回一个将序列seq中的元素顺序反转的迭代器对象。根据一个列表中的每个元素通过某种运算或筛选得到另。不比较元素大小,直接将列表ls中的元素逆序。_python 列表赋值

Codeforces990 E. Post Lamps(复杂度分析)-程序员宅基地

文章浏览阅读121次。题意:解法:暴力跳的复杂度是O(n/1+n/2+....)=O(n*log).但是有m个位置被禁止了,每次遇到被禁止的位置,我们需要回退到左边第一个未被禁止的位置,然后放路灯,回退造成的额外复杂度大概是O(m/1+m/2....)=O(m*log)?总复杂度在可接受范围内.code:#include<bits/stdc++.h>#define int long longusing namespace std;const int maxm=2e6+5;int mark_e. post lamps

python3怎么调用百度搜索推广API,最新能成功的方法_百度api高级搜索-程序员宅基地

文章浏览阅读914次。最近需要用到百度竞价后台的关键词规划师,后台虽然也能查,但是只能单次查1000个,有时候有很大量词需要查的时候就感觉工作量那个巨大。。所以为了以后工作方便,想做一个工具,方便使用。查看百度营销api官方文档,找到你需要的api,例如我需要查的关键词规划师就是在辅助里面,当然你也可以用postman测试。这些调试工具测试通了以后就开始转成python吧,特别推荐postman里面可以直接把内容转化成代码,但是我就是在这个地方遇到了个大坑,我看别的作者也是用这个转代码的,结果没问题,但是我需要的_百度api高级搜索

How&nbsp;to&nbsp;Set&nbsp;Alert&nbsp;Thresholds_threshold must be numeric and non-nan, try sys.max-程序员宅基地

文章浏览阅读654次。Setting Alert ThresholdsFor each tablespace, you can setjust percent-full thresholds, just free-space-remaining thresholds,or both types of thresholds simultaneously. Setting either type ofthresho_threshold must be numeric and non-nan, try sys.maxsize for untruncated repre

noteexpress如何不生成校对报告_noteexpress校对报告-程序员宅基地

文章浏览阅读3.1k次。word----->noteexpress------>格式化--------》不打勾生成校对报告即可。Good luck. _noteexpress校对报告