调用微信API获取小程序URL Link

本文介绍了如何利用微信小程序API版本4.1.8.B获取URLLink的步骤,包括在项目中引入依赖,构建切面获取Service接口,以及详细说明了请求参数如access_token、path和query的获取和使用。通过调用微信API生成的小程序URLLink通常默认为永久有效,但也可添加额外参数设定有效期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

过程

需要的微信小程序API版本

现在微信开源的API,从版本为4.1.8.B开始才提供了获取URL Link的API,所以在我们的项目中需要引进版本为4.1.8.B的maven依赖,在pom.xml中加入对应的依赖即可:

  <dependency>
            <groupId>com.github.binarywang</groupId>
            <artifactId>weixin-java-miniapp</artifactId>
            <version>4.1.8.B</version>
        </dependency>

构建一个切面获取微信小程序API提供的Service接口

因为微信小程序官方Service中是没有添加远程调用的注解,所以我们的项目中使用@Resource注解调用他们的服务进行build会显示找不到对应Service的bean,也就是无法注入对应Service的bean,所以我们选择通过反射构建一个切面去获取微信小程序官方提供的Service

首先通过得到的小程序的配置信息去获取切点,再使用ReflectUtil工具类去获取JoinPoint的声明类型,再通过stream.filter()对获取到的声明类型进行过滤,最后只剩下我们需要的Service和它的父类的类型,可以调用 class.isAssignableFrom(item.getType())去实现。最后使用ReflectUtil.getObjFieldVal()就可以获取到对应的Service了

创建一个从微信API获取URL Link的Service接口

请求参数

首先微信API的请求参数有这些:
在这里插入图片描述
微信小程序官方开发文档链接: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-link/urllink.generate.html.
有兴趣的可以自行去微信小程序官方开发文档看一下。
一般来说我们只需要access_token、path和query这三个参数就可以了,调用微信API生成的URL Link一般默认为永久有效的,如果想对URL Link做一个时间限制,可以把后面几个参数加上去。

access_token
微信官方的API会提供一个getAccessToken()的方法去获取接口调用的权限,直接调用对应服务的方法就可以了

path
这个参数是小程序页面跳转的路由地址,确保对应的页面生成对应的URL LinkLink

query
这个是对页面里存在的东西查询的一个参数,例如对应用户的id,这样就能查询到该用户的详情信息,形式为"id=xxxxxx"

 GenerateUrlLinkRequest request = GenerateUrlLinkRequest.builder()
                    .path(urlLinkPath)
                    .query("id=" + id)
                    .build();
            return wxMaService.getLinkService().generate(request);

将这些参数组装一下,构建到POST请求里,对微信小程序服务器发起POST请求就可以获得小程序的URL Link了

微信小程序中生成URL Scheme可以通过以下步骤实现: 1. **获取小程序的AppID和AppSecret**: - 在“设置” -> “开发设置”中可以找到AppID和AppSecret。 2. **获取用户的OpenID**: - 通过微信的登录接口获取用户的OpenID。具体的登录流程可以参考微信官方文档。 3. **生成URL Scheme**: - 使用微信提供的接口生成URL Scheme。微信提供了专门的API来生成URL Scheme。 - 接口地址为:`https://api.weixin.qq.com/wxa/generatescheme` - 请求方式为POST,参数包括`access_token`、`jump_wxa`和`is_expire`等。 4. **调用API生成URL Scheme**: - 发送POST请求到上述接口,携带必要的参数。 - 示例代码(使用Node.js): ```javascript const axios = require('axios'); async function generateURLScheme(appId, appSecret) { // 获取access_token const tokenResponse = await axios.get(`https://api.weixin.qq.com/cgi-bin/token`, { params: { grant_type: 'client_credential', appid: appId, secret: appSecret } }); const accessToken = tokenResponse.data.access_token; // 生成URL Scheme const schemeResponse = await axios.post(`https://api.weixin.qq.com/wxa/generatescheme`, { jump_wxa: { path: 'pages/index/index', // 跳转的小程序页面路径 query: '' // 传递的参数 }, is_expire: false // 是否指定过期时间 }, { params: { access_token: accessToken } }); return schemeResponse.data.openlink; } // 使用示例 generateURLScheme('your_app_id', 'your_app_secret').then(urlScheme => { console.log('生成的URL Scheme:', urlScheme); }); ``` 5. **使用生成的URL Scheme**: - 将生成的URL Scheme用于分享、推送消息或其他需要跳转到小程序的场景。 通过以上步骤,你可以在微信小程序中生成URL Scheme,从而实现从外部跳转到小程序的功能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值