PHP后端 H5页面 打开微信小程序
/**
* 功能:获取小程序access_token
* Author:郑康凯
* Date: 2023/2/6 0006 15:14
*/
public function hhsGetAccessToken()
{
// access_token 应该全局存储与更新,以下代码以写入到文件中做示例
// 如果是企业号用以下URL获取access_token
// $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$this->appId&corpsecret=$this->appSecret";
$SCHOOL_HOST=CD('SCHOOL_HOST');
//if($_SERVER['SERVER_NAME']==$SCHOOL_HOST){
if(1){
$where['config_name'] = array('eq', 'H_Access_Token');
$access_token_info = M('config')->where($where)->find();
$thetime = $access_token_info['config_time'] + 7000;
if ($thetime < time() || empty($access_token_info['config_value'])) {
//获取小程序access_token方法
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . CD('H_AppID') . "&secret=" . CD('H_AppSecret');
$res = json_decode(httpPost($url));
$access_token = $res->access_token;
// 保存tocken
$data['config_value'] = $access_token;
$data['config_time'] = time();
if (empty($access_token_info)) {
$data['config_name'] = 'H_Access_Token';
M('config')->add($data);
} else {
M('config')->where($where)->save($data);
}
return $access_token;
} else {
return $access_token_info['config_value'];
}
}else{
return false;
}
}
//获取小程序生成短链
public function getUrlLInk(){
$url = 'https://api.weixin.qq.com/wxa/generate_urllink?access_token='.$this->hhsGetAccessToken();
$data='{"path": "/pages/tabbars/main/main","query": "","is_expire":true,"expire_type":0,"expire_interval":1,"env_version": "release"} ';
$res = json_decode($this->httpPost($url,true,'POST',$data),true);
$href_url=$res['url_link'];
Header("HTTP/1.1 303 See Other");
Header("Location:$href_url ");
exit;
}
/**
* 发送httpPost
* @param $curl
* @param bool $https
* @param string $method
* @param null $data
* @return mixed
*/
function httpPost($curl, $https = true, $method = 'GET', $data = null)
{
$ch = curl_init(); // 初始化curl
curl_setopt($ch, CURLOPT_URL, $curl); //设置访问的 URL
curl_setopt($ch, CURLOPT_HEADER, false); //放弃 URL 的头信息
// curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); //请求时间限制(s)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //返回字符串,而不直接输出
if ($https) { //判断是否是使用 https 协议
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不做服务器的验证
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //做服务器的证书验证
}
if ($method == 'POST') { //是否是 POST 请求
curl_setopt($ch, CURLOPT_POST, true); //设置为 POST 请求
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //设置POST的请求数据
curl_setopt($ch,CURLOPT_HTTPHEADER,array(
'Content-Type:application/json'
));
}
$content = curl_exec($ch); //开始访问指定URL
$request_header = curl_getinfo( $ch, CURLINFO_HEADER_OUT);
curl_close($ch); //关闭 cURL 释放资源
return $content;
}
PHP后端 H5页面 打开微信小程序的更多相关文章
- 自家APP打开微信小程序,可行吗?
小程序的通用解决方案,今天为大家介绍一下FinClip.它的最大特点,就是能够让任何 App 运行小程序. 只需要在你的 App 里面,引入它的 SDK,就能加载运行外部小程序了.除了 SDK,它还提 ...
- h5内嵌微信小程序,调用微信支付功能
在小程序中不能使用之前在浏览器中配置的支付功能,只能调用小程序专属的api进行支付. 因为需要在现在实现的基础上,再添加在小程序中调用微信支付功能,所以我的思路是这样的 1.在点击支付按钮时,判断是不 ...
- 绑定bindchange事件的微信小程序swiper闪烁,抖动问题解决,(将微信小程序切换到后台一段时间,再打开微信小程序,会出现疯狂循环轮播,造成抖动现象)
微信小程序开发文档-组件-swiper后面追加的新闻如上图所示: 如果在bindchange事件给swiper的current属性对应的值{{current}}赋值,就会造成抖动现象. bindcha ...
- 判断H5页面是在小程序的webview环境中,还是在微信环境中,还是不在微信
<script src="https://res2.wx.qq.com/open/js/jweixin-1.6.0.js" type="text/javascrip ...
- PHP微信公共号H5页面跳转小程序。
1.H5跳转小程序. function myfun(){ var openid = "<?=$_SESSION['openid']?>"; wx.miniProgram ...
- h5页面跳转小程序
2020年以前, 只能通过 web-view内嵌h5跳转小程序,现在 可以直接跳了!!!!!! 官方文档:https://developers.weixin.qq.com/doc/offiacco ...
- 微信小程序web-view(webview) 嵌套H5页面 唤起微信支付的实现方案
场景:小程序页面有一个web-view组件,组件嵌套的H5页面,要唤起微信支付. 先讲一下我的项目,首先我是自己开发的一个H5触屏版的商城系统,里面含有购物车,订单支付等功能.然后刚开始,我们公众号里 ...
- [转]微信小程序、微信公众号、H5之间相互跳转
本文转自:https://www.cnblogs.com/colorful-paopao1/p/8608609.html 转自慕课网 一.小程序和公众号 答案是:可以相互关联. 在微信公众号里可以添加 ...
- 微信小程序、微信公众号、H5之间相互跳转
转自慕课网 一.小程序和公众号 答案是:可以相互关联. 在微信公众号里可以添加小程序. 图片有点小,我把文字打出来吧: 可关联已有的小程序或快速创建小程序.已关联的小程序可被使用在自定义菜单和模版消息 ...
- 微信小程序和公众号和H5之间相互跳转
参考链接:https://www.imooc.com/article/22900 一.小程序和公众号 答案是:可以相互关联. 在微信公众号里可以添加小程序. 可关联已有的小程序或快速创建小程序.已关联 ...
随机推荐
- Winform DataGridViewTextBoxCell 编辑添加右键菜单,编辑选中文本
如上是我们使用DataGridView时,编辑单元格右键会出现系统菜单.现在我们添加自己的右键菜单,并可以操作选中文字. DataGridViewTextBoxCell: DataGridViewTe ...
- 请务必注意精度不一样,就不相等(float 与double)
即使两个小数显示的值是一样的,但是类型不一要样,精度不一样实际上是不一样的 就比如下面这段代码: #include <iostream> #include <cstring> ...
- Array.from的9大优美用途!!!看了不后悔哦~~~~
纯手工打印调试~~~~ 九种用途~~~超赞的哦~~~~~ <!DOCTYPE html> <html lang="en"> <head> < ...
- 基于遗传算法的地图四色原理绘图上色的Python代码
本文介绍利用Python语言,实现基于遗传算法(GA)的地图四色原理着色操作. 1 任务需求 首先,我们来明确一下本文所需实现的需求. 现有一个由多个小图斑组成的矢量图层,如下图所示. ...
- git02 IDEA使用git
1 定位 Git 程序 2 初始化本地库 选择要创建 Git 本地仓库的工程. 3 添加项目到暂存区 右键点击项目选择 Git -> Add 将项目添加到暂存区 4 提交到本地库 5 切换版本 ...
- 计算机网络基础02-Internet结构,网络核心的数据交换,计算机网络性能几个参数
1 计算机网络的结构 1.1 网路边缘 主机.应用(软件.网站) 1.2 接入网络 1.3 网络核心 转发设备,路由器.交换机.关键功能就是路由+转发达到数据交换. 2 Internet的结构 2.1 ...
- JAVA虚拟机08--垃圾回收--HotSpot的算法实现细节
1 stop the world 2 减少stop the world的时间-OopMap 3 OopMap数据结构的维护-安全点-安全区域 3.1安全点 3.2在垃圾回收时如何让所有线程到达最近的安 ...
- 本地python环境安装kylin项目依赖时报认证错误信息
问题描述:项目需要连接kylin数据库查询数据,本地安装kylin项目的依赖环境后报认证错误 python版本3.7 32位 pycharm版本 2022版 成功方法: 更换解释器选择无解释器,创建虚 ...
- JuiceFS 在火山引擎边缘计算的应用实践
火山引擎边缘云是以云计算基础技术和边缘异构算力结合网络为基础,构建在边缘大规模基础设施之上的云计算服务,形成以边缘位置的计算.网络.存储.安全.智能为核心能力的新一代分布式云计算解决方案. 01- 边 ...
- 记一次使用tika解析文件文本导致的内存溢出问题
背景 笔者曾供职于某信息安全公司,接到过一个需求,提取文档中的文本以供后续分析.tika是apache开源的解析文档内容的组件,应用十分广泛.tika几乎支持你能想到的所有文档格式,docx , pp ...