小程序页面生成链接通过短信发送

一、背景

        有一个活动页面需要通过短信将页面链接发送出去,链接里面有公众号二维码,用户扫描企业微信二维码可以添加老师领取资料。

二、实现分析

分析:因为是企业微信二维码所以需要在微信里面打开才行。实现方式最初经过分析可能有以下几种:

  1. 点击短信中活动页面链接拉起微信,然后在微信中打开H5页面。页面中放企业微信二维码然后用户长按识别。
  2. 点击短信中活动页面链接拉起微信小程序,在小程序中可以跳转h5,然后用户可以长按识别企业微信二维码。

经过分析第一种方式没有找到实现方案,第二种小程序官方给出了三种实现方式:

通过URL Scheme实现

通过服务端接口或在小程序管理后台生成URL Scheme后,自行开发中转H5页面。

将带有中转H5链接的短信内容通过开发者自有的短信发送能力或服务商的短信服务进行投放,实现短信打开小程序。

通过URL Link实现

通过服务端接口生成URL Link

直接将带有URL Link的短信内容通过开发者自有的短信发送能力或服务商的短信服务进行投放,实现短信打开小程序。

通过云开发静态网站实现

可以参考「云开发」-「静态网站」-「短信跳小程序」。

经过分析以后决定采用通过url link 方式来实现。

三、业务实现

1.首先开发一个H5页面将包含有企业微信的二维码放在h5页面中。

这个页面只要按照UI设计正常开发即可。

2.将页面放到小程序中

在小程序中新建一个页面,然后使用web-view标签嵌套h5页面

 此时小程序页面如下:

3.将当前小程序页面根据文档生成url link.

此时页面路径为“pages/index/index”

根据官方文档说明生成URL Link 

urllink.generate | 微信开放文档微信开发者平台文档https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-link/urllink.generate.html

 public static final String URL_LINK_GENE_URL = "https://api.weixin.qq.com/wxa/generate_urllink?access_token=ACCESS_TOKEN";



/**
     * description: getAccessToken 获取微信公众号<br>
     * version: 1.0 <br>
     * @date: 2021/7/30 0030 下午 2:18 <br>
     * @author: William <br>
     * @param appId      微信AppID
     * @param appSecret  微信授权秘钥
     * @return java.lang.String
     */
    public static String getAccessToken(String appId,String appSecret) {
        String token = null;
        Lock lock = new ReentrantLock();
        lock.lock();
        try {
            String requestTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET";
            requestTokenUrl = requestTokenUrl.replace("APPID", appId);
            requestTokenUrl = requestTokenUrl.replace("SECRET", appSecret);
            WxTokenVo parse = JsonUtils.parse(HttpClientUtil.doGet(requestTokenUrl), WxTokenVo.class);
            if(parse != null && StringUtils.isNotBlank(parse.getAccess_token())){
                token = parse.getAccess_token();
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            lock.unlock();
        }
        return  token;
    }




public static void main(String[] args) {
        String accessToken = getAccessToken(WxtkConfig.LIVE_APP_ID, WxtkConfig.LIVE_APP_SECRET);
        String requestUrl = URL_LINK_GENE_URL.replace("ACCESS_TOKEN",accessToken);
        Map<String,Object> map = new HashMap<>();
        map.put("path","pages/index/index");
        map.put("query","");
        map.put("env_version","release");
        map.put("is_expire",true);
        map.put("expire_type",1);
        map.put("expire_interval",180);
        //需要引入hutool包或者自己封装一个http请求工具类也行
        String post = HttpUtil.post(requestUrl, JsonUtils.serialize(map));
        System.out.println("post = " + post);
    }

请求成功以后会返回url路径,然后将路径放入到短信模板中进行发送就好了。

4.将小程序页面的url link 放到短信模板,然后调用模板发送即可。

OK。以上就是整个实现思路了。有更好思路的或者想法的可以加微信交流

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值