微信环境外打开小程序方案_微信小程序明文scheme校验在哪里
微信环境外打开小程序方案
根据微信官方文档,以下是微信环境外打开小程序方案,可使用明文或者加密URL Scheme的
1. 固定场景使用明文Scheme
weixin://dl/business/?appid=您的APPID&path=页面路径&query=参数&env_version=环境
适用场景:
- 长期固定的页面跳转(如首页、活动页)
- 无需动态参数的场景
- 非敏感信息传递
参数说明:
appid
(必填):小程序IDpath
(必填):URL编码后的页面路径(如pages%2Findex%2Findex
)query
:URL编码后的参数(如id%3D123%26type%3D1
)env_version
:环境版本(develop
开发版/trial
体验版/release
正式版)
安全建议:在[小程序后台-设置-隐私与安全]中启用「明文Scheme校验」,防止恶意调用。
2. 动态场景使用加密Scheme
weixin://dl/business/?t=加密票据&cq=自定义参数
适用场景:
- 需要时效性控制的场景(如限时活动)
- 传递敏感参数(如用户ID、订单号)
- 需要防篡改的安全场景
生成方式(服务端API):
POST https://api.weixin.qq.com/wxa/generatescheme?access_token=TOKEN
请求体:
{ \"jump_wxa\": { \"path\": \"/pages/index/index\", \"query\": \"id=123\", \"env_version\": \"release\" }, \"is_expire\": true, \"expire_time\": 1606737600}
参数说明:
t
:接口返回的加密票据(有效期30天)cq
:自定义透传参数(URL编码)
优势:支持设置过期时间,防止长期滥用。
最佳实践建议
1. 跨平台兼容处理
<a href=\"weixin://...\">直接打开小程序</a><script>// 备用方案:微信未安装时跳转应用商店setTimeout(() => { window.location.href = \"https://apps.apple.com/app/id414478124\";}, 300);</script>
2. 参数规范
path
格式:以/
开头(如/pages/home
)query
规范:采用key1=val1&key2=val2
格式- 特殊字符处理:使用
encodeURIComponent()
编码
3. 安全增强措施
- 小程序后台启用「明文Scheme校验」
- 敏感参数走加密Scheme
- 服务端校验来源域名(HTTP Referer)
4. 监测方案
// 前端跳转埋点trackEvent(\'scheme_launch\', { type: \'encrypted\', page: \'checkout\'});
注意事项:
- 加密Scheme每日限额:50万次(超量需申请)
- iOS系统需配置通用链接(Universal Link)
- Android 9+ 需添加
intent-filter
处理
方案选择指南
通过组合使用两种Scheme,可实现安全可控的外部跳转流程,建议关键操作(如支付)务必采用加密Scheme。
最后推荐
使用虾果、C1N短网址等短链平台,填写appid和秘钥自动生成跳转小程序的短链,优点方便简洁。