首页 > 编程语言 >PHP后端 H5页面 打开微信小程序

PHP后端 H5页面 打开微信小程序

时间:2023-02-06 17:24:32浏览次数:50  
标签:ch 微信 H5 access token data curl PHP config

    /**
* 功能:获取小程序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;
}

标签:ch,微信,H5,access,token,data,curl,PHP,config
From: https://www.cnblogs.com/zhengkk/p/17096014.html

相关文章

  • 百度地图 PHP根据地址获取经纬度
    /***[getLoLadescription]*@Author:XuXianGang*@Method:根据地址获取经纬度*@DateTime:2023-02-06T16:01:45+0800*@param......
  • phpstudy后台管理页面存在XSS
    一、下载小皮面板官方下载地址:https://www.xp.cn/二、漏洞复现安装完成后来到登录页面,复制好相关后台连接和用户名密码后进行正常登录。在用户名处插入xss语句,验证码......
  • php去除数组中为0的元素的实例分析
    利用array_diff()函数来去除数组中为0的元素。该函数用于比较两个数组的值并返回差集,只需要使用一个包含“0”数组和原数组进行比较即可。语法格式“array_diff($arr,[0]......
  • 【微信小程序-原生开发】实用教程07 - Grid 宫格导航,详情页,侧边导航(含自定义页面顶部
    开始前,请先完成成员页的开发,详见【微信小程序-原生开发】实用教程06-轮播图、分类页签tab、成员列表(含Tdesign升级,切换调试基础库,设置全局样式,配置组件按需注入,添加图片......
  • PHP获取学生成绩的方法
    本文主要练习一下如何利用PHP完成一个简单的案例,即输入学生学号,得到相应的成绩信息。在此之前先来认识一下这个非常重要的语法GET请求:参数在URL后面,多个参数用&进行连接......
  • web之php一句话木马总结------2023.2.6
    一句话木马的原理<?php@eval($_POST['shell']);?>这是php的一句话后门中最普遍的一种。它的工作原理是:首先存在一个名为shell的变量,shell的取值为HTTP的POST方式。Web......
  • php修改word的实例方法
    将Word另存为网页。修改为默认页面视图。编写PHP代码。通过fwrite等函数修改Word内容即可。实例ob_start();//开启缓存print'';//输出头部$content=file_get_c......
  • 一次项目中Thinkphp绕过禁用函数的实战记录
    目录前言file_put_contentspcntl_execLD_PRELOAD劫持总结 前言在一次渗透测试中,手工找了许久没发现什么东西,抱着尝试的心情打开了xray果然xray还是挺给力的,一......
  • 如何解决php-fpm启动不了问题
    重新下载一个64位的“ZendGuardLoader.so”。将其放到“/usr/local/zend/”下。重新执行“lampPHP-fpmstart”即可。修复步骤用file命令查看当前的ZendGuardLoader.s......
  • php双向队列实例讲解
    双向队列是指一种具有队列和栈的性质的数据结构。双向队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。双向队列就像是一个队列,但是你可以在任何一端添......