微信小程序生态4-扫普通二维码进入小程序、打开短链接进入小程序

文章导航

微信小程序生态1-初识小程序
微信小程序生态2-创建一个微信小程序
微信小程序生态3-微信小程序登录流程设计
微信小程序生态4-扫普通二维码进入小程序、打开短链接进入小程序
微信小程序生态5-微信公众号扫码登录PC端网页
微信小程序生态6-微信公众号授权登录(适用于H5小程序)
微信小程序生态7-微信公众号设置IP白名单
微信小程序生态8-基于weixin-java-mp实现微信公众号被动回复消息
微信小程序生态9-微信开放平台unionId机制介绍
微信小程序生态10-微信公众号token验证失败
微信小程序生态11-一个二维码同时支持微信、钉钉、支付宝扫码打开小程序
微信小程序生态12-微信小程序开发设置中服务器域名和业务域名
微信小程序生态13-下线已发布的小程序

大家有没有好奇过饭店扫码点餐的时候,小程序是如何打开的?商家是怎么确认桌号的?为什么有的码微信可以扫,支付宝也可以扫?

本篇文章将会给大家介绍:如何通过扫描二维码进入微信小程序。

一、扫普通二维码进入小程序

1、进入微信小程序后台管理页

2、点击开发管理-开发设置-扫普通链接二维码打开小程序-添加

3、完善配置内容

在这里插入图片描述
这里介绍一下这些配置怎么选或者怎么填。

(1)协议类型选择https

image.png

(2)选择小写

image.png

(3)二维码规则,这个看文档有些人估计会比较迷糊,简单理解一下就是一个https的路径

image.png

(4)前缀占用规则选择不占用

image.png

(5)校验文件,按照说明文档来,这个不难

image.png

(6)小程序的功能页面,这个页面就是你扫码要打开的页面

image.png

(7)测试范围

image.png

(8)测试链接(选填)

image.png

这里要注意了,刚配置的链接如果没有发布,测试规则和测试链接都要一段时间之后才生效。而且必须是使用测试链接生成的二维码才可以打开小程序,参数都不可以换,否则都打不开。

4、使用二维码生成工具生成二维码,然后扫码就可以打开了

我一般都是使用草料网生成二维码:生成二维码二维码解码
在这里插入图片描述

二、打开短链接进入小程序

短链接打开微信小程序比较简单,不需要进行特殊配置,只需要调用相应的接口生成短链接即可。
参考文档:获取 URL Scheme

1、使用AppId和AppSecret获取token

    /**
     * https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential
     * 请求参数   属性         类型       默认值    必填     说明
     * @param   appId         string                 是       小程序 appId
     * @param   secret         string                 是       小程序 appSecret

     * 返回值
     * @return  JSON 数据包
     *           属性         类型       说明
     *          access_token string      token
     *          expires_in     string      失效时间
     *
     *          errcode 的合法值
     *          值             说明                         最低版本
     *          -1             系统繁忙,此时请开发者稍候再试
     *          0             请求成功
     *          40029         code 无效
     *          45011         频率限制,每个用户每分钟100次
     */
    JSONObject getAccessToken(String appId,String secret);
    @Override
    public JSONObject getAccessToken(String appId, String secret) {
    
    
        String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appId + "&secret=" + secret;
        String str = restTemplate.getForObject(url, String.class);
        log.info("api/wx-mini/getAccessToken:" + str);
        if (StringUtils.isEmpty(str)) {
    
    
            return null;
        } else {
    
    
            return JSONObject.parseObject(str);
        }
    }

2、构建生成URL Schema的参数

JSONObject data = new JSONObject();
//设置当前链接打开的小程序页面路径
data.put("path","你的小程序页面路径");
//设置跳转到当前页面的参数,参数格式如下
data.put("query", "id=1&status=1");
//当前小程序打开的版本,develop(开发版)、trial(体验版)、release(线上版)
data.put("env_version", "develop");
//链接是否会失效,微信官方有限制永久链接的个数
data.put("is_expire", true);
//按天数过期
data.put("expire_type", 1);
//30天后过期
data.put("expire_interval", 30);

3、生成微信小程序的打开链接

    /**
     * https://api.weixin.qq.com/wxa/generate_urllink?access_token=ACCESS_TOKEN
     * 请求参数   属性             类型       默认值    必填     说明
     * @param   accessToken         string                 是       小程序 发送凭证
     * @param   data             jsonObject             是       小程序 发送数据

     * 返回值
     * @return  JSON 数据包
     *           属性         类型       说明
     *          errmsg       string      错误消息
     *          msgid         string      消息ID
     *
     *          errcode 的合法值
     *          值             说明                         最低版本
     *          -1             系统繁忙,此时请开发者稍候再试
     *          0             请求成功
     *          40029         code 无效
     *          45011         频率限制,每个用户每分钟100次
     */
    JSONObject generateUrlLink(String accessToken ,JSONObject data);
    @Override
    public JSONObject generateUrlLink(String accessToken, JSONObject data) {
    
    
        String url = "https://api.weixin.qq.com/wxa/generate_urllink?access_token=" + accessToken;
        return getResult(data, url);
    }

    private JSONObject getResult(JSONObject data, String url) {
    
    
        HttpHeaders headers = new HttpHeaders();
        HttpMethod method = HttpMethod.POST;
        // 以表单的方式提交
        headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
        //将请求头部和参数合成一个请求
        HttpEntity<JSONObject> requestEntity = new HttpEntity<>(data, headers);
        //执行HTTP请求,将返回的结构使用ResultVO类格式化
        ResponseEntity<JSONObject> response = restTemplate.exchange(url, method, requestEntity, JSONObject.class);
        return response.getBody();
    }

4. 使用说明

通过服务端接口可以获取打开小程序任意页面的 URL Scheme。适用于从短信、邮件、微信外网页等场景打开小程序。 通过 URL Scheme 打开小程序的场景值为 1065。
生成的 URL Scheme 如下所示:

weixin://dl/business/?t= TICKET

iOS系统支持识别 URL Scheme,可在短信等应用场景中直接通过 Scheme 跳转小程序。
Android系统不支持直接识别 URL Scheme,用户无法通过 Scheme 正常打开小程序,开发者需要使用 H5 页面中转,再跳转到 Scheme 实现打开小程序,跳转代码示例如下:

location.href = ‘weixin://dl/business/?t= TICKET

该跳转方法可以在用户打开 H5 时立即调用,也可以在用户触发事件后调用。

猜你喜欢

转载自blog.csdn.net/weixin_33005117/article/details/125100020