小程序开发与公众号用户关联推送消息(一)

简介: 10月更文挑战第16天

最近做了一个类似于日程提醒的小程序,需要把用户语音识别出的日程或提醒按照设置的提醒日期通过微信公众号推送给对应的用户进行提醒这样子.这是需求背景.

这个项目我已经做完了,但是中间遇到很多坑,所以想出篇帖子,让大家不浪费爬坑的时间.后面我会尽量把所有需要的代码什么的,都贴上来,尽量做到拿了就能用的程度.



接下来,就是一个又一个的坑需要爬了.首先我说一下小程序与公众号开发的一个完整流程.与一些细节.

1.小程序开发首先需要appid 与secret 也就是账号密码,用来获取用户的unionid与openid.(需要根据js_code来获取)这两个名叫id的东西,都是用户的唯一标识,(以前不同的appid获取到的用户openid都是一样的,现在不一样了) unionid是干什么用的,我一会会说.

2.公众号开发也需要一个appid跟secret,这个跟小程序的不一样,具体怎么拿,跟小程序一样.有了appid与secret我们就可以获取到公众号用户的openid与unionid了(需要根据code来获取),(获取之前还需要先获取assess_token,这是一个微信的接口,用来验证身份,微信设置一个开发者账号每天可以请求200次的限制,每个token有7200s的有效时间...所以这里获取到的话,需要放到redis或者java缓存中去,然后设置一个7200s的过期时间,用的时候从缓存取,缓存里没有再请求.后面我会说怎么获取)这里的openid与小程序的openid是不一样的,但是unionid可以弄成一样的.怎么弄呢,看第三步.

3.这时候应该上微信公众平台把小程序绑定到其下.然后再注册一个微信开放平台,并且获取开发者资质,(一年好像是300).然后把你的小程序与公众号都绑定到开放平台下,这样的话,你的小程序获取到的unionid跟公众号获取到的unionid就是一样的了,这样就可以用它来进行小程序与公众号用户的关联了.

------------------------------------------------------然后进行代码------------------------------------------------------
1.根据js_code获取小程序用户的openid与unionid (js_code 是小程序在调用wx.login的时候获取到的.) 代码如下:

@RequestMapping(value = "/checkUserByOpenid", method = RequestMethod.GET)
public @ResponseBody Map checkUserByOpenid(HttpServletRequest request,HttpServletResponse response,
        @RequestParam("js_code") String js_code) throws Exception {
    response.setHeader("Access-Control-Allow-Origin", "*");
    /*星号表示所有的域都可以接受,*/
    response.setHeader("Access-Control-Allow-Methods", "GET,POST");
    HashMap<String, Object> jsonMap = new HashMap<String, Object>();

// if(js_code!=null && !"".equals(js_code)){
String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + appid + "&secret=" + secret + "&js_code=" + js_code + "&grant_type=" + grant_type;
String httpsRtn = HttpsPostUtil.doPost(url, "UTF-8");
Map json = mapper.readValue(httpsRtn, Map.class);
String openid = (String) json.get("openid");
//用openid获取unionid等敏感信息------------小程序
String unionid = (String) json.get("unionid");
//此处开始你的逻辑代码
jsonMap.put("message", "success");
// }
return jsonMap;
}

目录
相关文章
预约按摩小程序开发,为什么很多上门按摩平台根本招聘不到优秀技师?
上门按摩平台面临招不到优秀技师的问题,主要原因是平台众多,技师选择多样。为解决此问题,平台可引入技师等级制度,根据订单数量和好评率划分高、低等级技师。高等级技师可享受70%-90%的高提成及首页推荐,这不仅能激励技师的积极性,还能帮助平台筛选出优质技师,提升服务质量和口碑,形成良性循环。
|
5天前
|
小程序 云计算 Android开发
发者社区 云计算 文章 正文 小程序开发与公众号用户关联推送消息(九)
发者社区 云计算 文章 正文 小程序开发与公众号用户关联推送消息(九)
22 3
|
10天前
|
小程序 云计算 开发者
|
11天前
|
小程序
|
11天前
|
小程序
|
1月前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
216 3
|
1月前
|
小程序 API
微信小程序更新提醒uniapp
在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
48 0
微信小程序更新提醒uniapp
|
3月前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
104 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
3月前
|
小程序 前端开发 JavaScript
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
【避坑宝】是一款企业黑红名单吐槽小程序,旨在帮助打工人群体辨别企业优劣。该平台采用SpringBoot+MybatisPlus+uniapp+uview2等技术栈构建,具备丰富的注释与简洁的代码结构,非常适合实战练习与学习。通过小程序搜索“避坑宝”即可体验。
103 0
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
|
3月前
|
存储 小程序 JavaScript