URL scheme实现携带数据打开小程序

简介: URL scheme实现携带数据打开小程序

官方文档:

链接地址

前言:由于接到了一个需求,客户提出的需求如下

我这里做一个快速的整理思路:

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跳转)

最后

❤️❤️❤️❤️❤️❤️

🥳🥳🥳 茫茫人海千千万万,感谢这一刻你看到了我的文章,欢迎加入人工智能交流群(看我的动态),更多周边福利等你🥳🥳🥳

✨✨欢迎订阅本专栏或者关注我,大家一起努力每天一题算法题✨✨

❤️❤️❤️ 最后,希望我的这篇文章能对你的有所帮助!

愿自己还有你在未来的日子,保持学习,保持进步,保持热爱,奔赴山海! ❤️❤️❤️

相关文章
|
小程序 前端开发
uniapp 小程序接入友盟 ,自定义事件携带参数
uniapp 小程序接入友盟 ,自定义事件携带参数
296 0
|
缓存 小程序 前端开发
【Uniapp】小程序携带Token请求接口+无感知登录方案2.0
【Uniapp】小程序携带Token请求接口+无感知登录方案2.0
554 0
|
11月前
|
消息中间件 数据采集 数据库
小说爬虫-03 爬取章节的详细内容并保存 将章节URL推送至RabbitMQ Scrapy消费MQ 对数据进行爬取后写入SQLite
小说爬虫-03 爬取章节的详细内容并保存 将章节URL推送至RabbitMQ Scrapy消费MQ 对数据进行爬取后写入SQLite
162 1
|
小程序 开发工具
app跳转微信小程序,使用明文scheme拉起
app跳转微信小程序,使用明文scheme拉起
2458 4
|
移动开发 JSON 小程序
明文scheme拉起此小程序
明文scheme拉起此小程序
719 4
|
移动开发 小程序 前端开发
php + h5使用 scheme页面跳转微信小程序-其他浏览器一键跳转到微信并打开小程序
php + h5使用 scheme页面跳转微信小程序-其他浏览器一键跳转到微信并打开小程序
326 0
|
小程序 开发者
【经验分享】支付宝小程序如何获取外部链接携带的参数
【经验分享】支付宝小程序如何获取外部链接携带的参数
835 7
|
小程序
【经验分享】如何生成支付宝小程序scheme链接
【经验分享】如何生成支付宝小程序scheme链接
3486 2
|
JavaScript 前端开发 Java
50dwr - 从其他的 URL 读取数据
50dwr - 从其他的 URL 读取数据
70 0
|
5月前
|
监控 前端开发 小程序
陪练,代练,护航,代打小程序源码/前端UNIAPP-VUE2.0开发 后端Thinkphp6管理/具备家政服务的综合型平台
这款APP通过技术创新,将代练、家政、娱乐社交等场景融合,打造“全能型生活服务生态圈”。以代练为切入点,提供模块化代码支持快速搭建平台,结合智能匹配与技能审核机制,拓展家政服务和商业管理功能。技术架构具备高安全性和扩展性,支持多业务复用,如押金冻结、录屏监控等功能跨领域应用。商业模式多元,包括交易抽成、增值服务及广告联名,同时设计跨领域积分体系提升用户粘性,实现生态共生与B端赋能。
416 12

热门文章

最新文章