生成小程序URL Scheme
时间:2026-04-14 07:26:00
浏览:864次

生成小程序 URL Scheme 文档
一、概述
小程序 URL Scheme 是一种可以打开特定小程序页面的链接,适用于从网页、短信等外部渠道直接跳转到指定的小程序页面。通过生成和使用小程序 URL Scheme,您可以方便地在不同平台之间实现用户引导与流量互通。
二、前提条件
- 已注册并认证的小程序:确保您已经拥有一个经过微信官方认证的小程序账号。
- 开发者权限:您需要具备小程序的开发者权限,以便能够访问小程序后台和API接口。
- HTTPS域名:用于接收URL Scheme回调通知的服务器域名需要是HTTPS协议。
三、生成步骤
步骤一:登录小程序管理后台
- 打开微信公众平台,使用您的管理员账号登录。
- 在左侧菜单栏中选择“开发”->“开发设置”。
步骤二:配置服务器域名
- 在“开发设置”页面中,找到“业务域名”、“JS接口安全域名”和“请求校验文件域名”配置项。
- 确保您的服务器域名已正确配置在这些选项中,并且使用的是HTTPS协议。
步骤三:调用API生成URL Scheme
使用小程序的开放API wxacode.getUnlimited 或 wxaopenapi.business.generateurlscheme 来生成URL Scheme。
- wxacode.getUnlimited:主要用于生成无限量的小程序代码二维码,但也可以结合其他参数生成URL Scheme(需额外处理)。
- wxaopenapi.business.generateurlscheme:专为生成URL Scheme设计的API,推荐使用该接口。
以下是一个基于wxaopenapi.business.generateurlscheme接口的示例代码(假设使用Node.js环境):
const axios = require('axios');
const crypto = require('crypto');
// 获取access_token的函数(需替换为您自己的逻辑)
async function getAccessToken(appId, appSecret) {
const url = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appId}&secret=${appSecret}`;
const response = await axios.get(url);
return response.data.access_token;
}
// 生成签名函数(需根据文档要求实现)
function generateSignature(accessToken, params) {
// 对params进行排序并拼接成字符串
const stringToBeSigned = Object.keys(params).sort().map(key => `${key}=${params[key]}`).join('&');
const secret = 'your_app_secret'; // 注意:这里不是真正的app_secret,而是用于签名的密钥,需自行定义或存储
return crypto.createHash('sha1').update(`${stringToBeSigned}${secret}`).digest('hex');
}
// 生成URL Scheme的主函数
async function generateUrlScheme() {
const appId = 'your_app_id';
const appSecret = 'your_app_secret';
const accessToken = await getAccessToken(appId, appSecret);
const path = '/pages/index/index'; // 小程序内的跳转路径
const query = { foo: 'bar' }; // 可选的查询参数
const params = {
access_token: accessToken,
jump_wxa: {
path: path,
query: JSON.stringify(query),
},
is_expire: true, // 是否失效,true表示永久有效(注意:实际使用中可能受限制)
expire_type: 1, // 失效类型,1为固定时间失效,0为永久有效(当is_expire为false时生效)
expire_interval: 7 * 24 * 60 * 60, // 失效时间间隔,单位为秒(当expire_type为1时生效)
};
const signature = generateSignature(accessToken, params);
params['signature'] = signature;
const url = `https://api.weixin.qq.com/wxa/business/generateurlscheme?access_token=${accessToken}`;
const response = await axios.post(url, params);
console.log(response.data.openlink); // 输出生成的URL Scheme
}
generateUrlScheme();
注意:上述代码中的generateSignature函数仅为示例,具体签名算法需参考微信小程序官方文档的详细要求。此外,is_expire和expire_type等参数的使用也可能受到微信官方的限制和调整,请务必查阅最新的官方文档