官方文档:
链接地址
前言:由于接到了一个需求,客户提出的需求如下
我这里做一个快速的整理思路:
1、鉴权调用接口凭证(access_token)
2、
HTTPS 调用
POST 请求地址:
https://api.weixin.qq.com/wxa/generatescheme?access_token=ACCESS_TOKEN
请求参数:
{
"jump_wxa":
{
"path": "/pages/index/index",
"query": "id=23"
},
"expire_type":1,
"expire_interval":2
}
php文件
<?php
header('Content-type: text/html; charset=utf-8');
//引用加密文件
jump();
/**
* 跳转小程序
*/
function jump()
{
// $access_token = '58_q01a3N7-VZBHL5rQJPHISBJNbCmr0NNgl1EBCjDTseV6T20oY1ZA7H6pP2TCgAHdR7QjFD6-vnkQ9dgLJUETQ2u0rqGfenLJg-7j1AxyHc5i5IVpcIlF_BB9vrppfZ9PNZ67sELVhhyL4gD9KYXiAFANBA';
$access_token = getAccessToken();
$url = 'https://api.weixin.qq.com/wxa/generatescheme?access_token=' . $access_token . '';
$token = $_GET['token'];
$jump_wxa = [
'path' => 'pages/receive/receive',
'query' => 'data=' . trim($token) . '',
'env_version' => 'trial'
];
$params = [
'jump_wxa' => (object)$jump_wxa,
'expire_type' => 0,
'expire_time' => time() + 1000
];
$res = curl_post($url, $params);
$res = json_decode($res);
// var_dump($res);
if ($res->errcode == 0) {
echo json_encode(['url' => $res->openlink, 'code' => 1]);
}
}
function curl_get($url){
$header = array(
'Accept: application/json',
'isOpenSecret: 1'
);
$curl = curl_init();
//设置抓取的url
curl_setopt($curl, CURLOPT_URL, $url);
//设置头文件的信息作为数据流输出
curl_setopt($curl, CURLOPT_HEADER, 0);
// 超时设置,以秒为单位
curl_setopt($curl, CURLOPT_TIMEOUT, 1);
// 超时设置,以毫秒为单位
// curl_setopt($curl, CURLOPT_TIMEOUT_MS, 500);
// 设置请求头
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
//设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
//执行命令
$data = curl_exec($curl);
// 显示错误信息
if (curl_error($curl)) {
print "Error: " . curl_error($curl);
} else {
// 打印返回的内容
// print_r($data);
return $data;
curl_close($curl);
}
}
/**
* 获取accessToken
*/
function getAccessToken()
{
//20220709
$appid = 'wxht';
$sign = '97d003f59c98d41d1c7887c8c44f0a56';
$url = 'https://gsgy.yunzhi.co/api/cloud2.member.api/outer/getAccessToken?app_id='.$appid.'&sign='.$sign.'';
$res=curl_get("$url");
$sm4_access_token = json_decode($res, true)['data'];
//echo $sm4_access_token;
//echo $sm4_access_token;
//解密
$key = "gsgy8C5wA3wlMfs2";
$sm4 = new Sm4Helper();
$data = $sm4_access_token;
$decdata = $sm4->decrypt($key, $data);
//echo $decdata;
return $decdata;
}
/**
* @param string $url post请求地址
* @param array $params
* @return mixed
*/
function curl_post($url, array $params = array())
{
$data_string = json_encode($params);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt(
$ch,
CURLOPT_HTTPHEADER,
array(
'Content-Type: application/json'
)
);
$data = curl_exec($ch);
curl_close($ch);
return ($data);
}
上面的代码流程是对的,可以正常使用,接口由于第三方给的所以与原文档有点出入,自己改一下,通过php请求后返回一个链接🔗(该链接不能在微信打开,可以使用h5跳转)
最后
❤️❤️❤️❤️❤️❤️
🥳🥳🥳 茫茫人海千千万万,感谢这一刻你看到了我的文章,欢迎加入人工智能交流群(看我的动态),更多周边福利等你🥳🥳🥳
✨✨欢迎订阅本专栏或者关注我,大家一起努力每天一题算法题✨✨❤️❤️❤️ 最后,希望我的这篇文章能对你的有所帮助!
愿自己还有你在未来的日子,保持学习,保持进步,保持热爱,奔赴山海! ❤️❤️❤️