官方文档:
前言:由于接到了一个需求,客户提出的需求如下
我这里做一个快速的整理思路:
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跳转)
最后
❤️❤️❤️❤️❤️❤️
🥳🥳🥳 茫茫人海千千万万,感谢这一刻你看到了我的文章,欢迎加入人工智能交流群(看我的动态),更多周边福利等你🥳🥳🥳
✨✨欢迎订阅本专栏或者关注我,大家一起努力每天一题算法题✨✨
❤️❤️❤️ 最后,希望我的这篇文章能对你的有所帮助!
愿自己还有你在未来的日子,保持学习,保持进步,保持热爱,奔赴山海! ❤️❤️❤️