首页 > 编程语言 >获取加密scheme码 and 获取加密URLLink(小程序)

获取加密scheme码 and 获取加密URLLink(小程序)

时间:2024-07-25 10:39:48浏览次数:6  
标签:URLLink map 加密 String JSONObject 获取 put new

引入依赖

<dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-http</artifactId>
            <version>5.7.6</version>
</dependency>

 

获取 scheme 

官方文档:小程序码与小程序链接 / URL Scheme / 获取加密scheme码 (qq.com)

public static String getSchemeUrl(String id, String mobile) {
        String redirectUrl = weChatConfigStatic.getRedirectUrl();
        String token = getAccessToken();
        String url = WeChatConstant.GET_SCHEME + token;
        JSONObject jumpWxa = new JSONObject();
        // scheme 码进入的小程序页面路径,必须是已经发布的小程序存在的页面,不可携带 query。path 为空时会跳转小程序主页
        // FIXME
        jumpWxa.put("path", null);
        jumpWxa.put("query", "id=" + id + "&mobile=" + mobile);
        jumpWxa.put("env_version", weChatConfigStatic.getEnvVersion());

        JSONObject reqMap = new JSONObject();
        reqMap.put("jump_wxa", jumpWxa);

        try {
            HttpRequest request = HttpUtil.createPost(url);
            request.contentType("application/json");
            request.body(reqMap.toJSONString());
            String result = request.execute().body();
            result = URLDecoder.decode(result, encoding);

            log.info("微信获取scheme请求报文 {}", JSON.toJSONString(result));
            Map map = JSONObject.parseObject(result, Map.class);
            if (map.get("errcode").equals(0)) {
                return map.get("openlink").toString();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

 

获取加密URLLink

官方文档:小程序码与小程序链接 / URL Link / 获取加密URL Link (qq.com)

public static String getUrlLink(String id, String mobile) {
        String token = getAccessToken();
        String url = WeChatConstant.GET_URL_LINK + token;
        // 构造 POST 请求
        HttpPost httpPost = new HttpPost(url);
        // 构造请求体参数
        JSONObject json = new JSONObject();
        json.put("env_version", weChatConfigStatic.getEnvVersion());
        json.put("query", "id=" + id + "&mobile=" + mobile);
        StringEntity stringEntity = new StringEntity(json.toString(), ContentType.APPLICATION_JSON);
        httpPost.setEntity(stringEntity);
        // 创建 HttpClient 对象
        try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
            // 发送请求并获取响应
            try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
                HttpEntity entity = response.getEntity();
                if (entity != null) {
                    String responseString = EntityUtils.toString(entity);
                    Map map = JSONObject.parseObject(responseString, Map.class);
                    log.info("获取urlLink结果: {}", map);
                    if (map.get("errcode").equals(0)) {
                        return map.get("url_link").toString();
                    }
                }
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return null;
    }

 

返回结果

{
    "message": "操作成功",
    "data": "https://wxaurl.cn/BxOlgzooBmk",
    "apiCode": 0,
    "faultCode": 0,
    "success": true
}

 

标签:URLLink,map,加密,String,JSONObject,获取,put,new
From: https://www.cnblogs.com/ckfeng/p/18322491

相关文章

  • 从雪花获取数据
    因此,我一直在尝试设置一个流程,以使用SnowflakePython连接器从python中的Snowflake数据库中提取数据。我已经制作了一个请求数据的方法(如下所示)importsnowflake.connectordefrequest_data(s,query):snowflake_connection=snowflake.connector.connect(user=......
  • 使用seaborn和hue绘制条形图,如何获取百分比值形式的条形标签?
    我有以下数据集(df):``source_cityclassprice0BangaloreBusiness53671.8568981班加罗尔经济6526.2944102钦奈商务54036.7498193钦奈经济6497.5686224德里商业48614.1728935德里经济6275.0931366海得拉巴业务50357.5905317海得拉巴经济6......
  • RSA加密
    前言RSA算法是1978年\(R.Rivest,A.Shamir,L.Adleman\)三位科学家提出的一种用数论构造的、也是迄今为止理论上最为成熟完善的公钥密码体制,大多用于架构非对称加密密钥的产生:选取两个保密的大素数\(p\)和\(q\)。计算\(n=p\timesq,\phi(n)=(p-1)(q-1)\),其中\(\phi(n)\)是\(......
  • 使用GG获取函数寄存器地址
    此方法是从神秘老师(一只神秘)的视频得到的灵感,分享出来也是经过其本人的同意视频如下也希望大家多多支持神秘老师捏多的不说,少的不唠,也是进入正题我们先找到需要获取的函数然后进行分配内存页,保存该地址然后在函数头进行如下的操作码修改意思就是:把该地址传给r1再......
  • Python获取list中指定元素索引的两种方法
    在平时开发过程中,经常遇到需要在数据中获取特定的元素的信息,如到达目的地最近的车站,橱窗里面最贵的物品等等。怎么办?看下面方法一:利用数组自身的特性list.index(target),其中a是你的目标list,target是你需要的下标对应的值li=[10,8,9,26,72,6,28]print(li.index(8))但是,......
  • 文档翻译成中文会麻烦吗?简单操作,快速获取翻译
    每当你工作的时候,看到一堆来自海外文档时,你的脑海中可能会出现大大的两个字:无语。跨国企业的合同、国际合作的项目报告、外国邮件等,不同语言间的沟通往往会让工作变得困难。如何快速高效地处理这些文档?让自己的工作变得轻松点?翻译文档工具,相信可以在这个时候帮上你的忙。它翻......
  • ffmpeng获取音频文件中的专辑封面图片
    一,用ffmpeg命令来操作下载后,不用做过多的配置和修改,直接使用从音频文件中提取出专辑封面图片:$./ffmpeg.exe-i黑色毛衣\-\周杰伦.mp3bb.jpgffmpegversionN-92237-g305e523105Copyright(c)2000-2018theFFmpegdevelopersbuiltwithgcc8.2.1(GCC)20181017......
  • Python实现RSA加密算法,让你的信息更加安全
    一、什么是编码    想要实现加密就必须要先了解什么是编码。    编码是信息从另一种形式或格式转换为另一种形式或格式的过程,解码则是编码的逆过程。字符编码(CharacterEncoding)是把字符集中的字符编码为指定集合中的某个对象,以便信息在计算机中传输。在密码......
  • 服务端渲染中的数据获取:结合 useRequestHeaders 与 useFetch
    title:服务端渲染中的数据获取:结合useRequestHeaders与useFetchdate:2024/7/24updated:2024/7/24author:cmdragonexcerpt:摘要:本文介绍Vue服务端渲染中使用useRequestHeaders获取请求头部信息,如cookie和authorization,示例展示了如何在SSR环境下结合useFetch进行API......
  • Linux获取线程调度策略pthread_attr_getschedpolicy
    thread_attr_getschedpolicy 函数是POSIX线程(pthread)库中用于获取线程属性对象中的调度策略的函数。在实时系统中,调度策略决定了线程如何被调度器选择来执行。pthread_attr_getschedpolicy 函数允许你查询一个已创建的线程属性对象(pthread_attr_t 类型)中设置的调度策略......