App中使用微信公众号的模版消息来进行消息推送

开发背景


        省钱,保活、高大上。

环境准备


  • 申请公众号;
  • 开通微信认证(300元/年);
  • 申请微信开放平台;
  • 购买一个域名并备案(100元左右/3年);
  • 购买一台服务器并将域名解析到服务器上来(299元/3年);

实现原理


  1. 用户下载app并使用微信登录,获取微信openid;
  2. 将openid、手机号、设备IMEI、以及用户信息post到后台进行保存;
  3. 当触发消息推送时(如设备报警),根据openid向指定用户推送相关信息;

实践中的坑


一、申请公众号

        一开始没注意看,直接将公众号申请成订阅号去了,进去才发现怎么也找不到模版消息,二个是也没办法进行微信认证;
        解决:从新申请服务号;

二、开通微信认证

        上传营业执照时要选择工商营业**(有点忘了),一开始选择三证合一,审核不通过;二个是会收到腾讯这边往公账上打个0.01元,然后接到工作人员电话时会问这笔钱是多少,什么时间等,需要提前看一下;
        由于上面两个问题我已经错了两次,工作人员会提示说如果再错将需要重新提交申请,意思是重新交300块钱的认证费,重新认证;

三、申请微信开发者帐号

        进入微信开放平台进行账户申请时,换哪个邮箱都提示已经被使用了,但是用来找回密码时又提示没有注册过。
        最后各种社区里面了解到,这个邮箱必须是没有绑定腾讯任何一个产品的才行。
        解决:建议解绑重新申请,我的解决方法是我直接不用了,转用网页授权模式进行获取openid;

四、获取openid(代码传送门)

        由于申请不了微信开放平台帐号,所以只能用网页授权模式进行获取openid,到这里就已经掉入大坑了,一大推文档,也不知道哪里是哪里,只能一步步的来试;
        首先是获取code时需要一个appid和redirect_uri回调地址,这个appid倒是很容易看出来在 (开发》基本配置》公众号开发信息) 里可以设置。可是这个回调地址就让我冒火了,这下面还有一个服务器配置,一直以为这个就是回调地址配置的地方,弄了一早上都是token认证失败(主要是在官网找相关说明文档);
在这里插入图片描述
       实在在官网找不到相关解决办法了就开始问度娘,还好有万能的网友分享出了解决办法,这TM的压根不是在这里配置啊,具体在哪里的看下图。
在这里插入图片描述
       从这里去把业务域名、JS接口安全域名、网页授权域名都给配置上,这个问题才算是了解;

六、消息模版推送

       要说前面获取openid的接口说明文档太多太散了,那模版消息推送接口倒是简洁了好多,简洁到我又得重新翻了一遍所有的文档才发现此ACCESS_TOKEN北非彼ACCESS_TOKEN;
       直接用网页授权获取到的ACCESS_TOKEN进行模板消息推送请求会报40001的错误;
在这里插入图片描述
       那么具体ACCESS_TOKEN又是哪个呢?看这里应该是我眼见放皮包里了,前面这懵逼还挺有后劲,到这里了都还没有醒过来;
在这里插入图片描述

七、对于酒量不行的人来说懵逼也有后劲

       到这里原以为万事俱备了,没想到一上代码发现这股懵逼劲既然还在。那么具体在哪里呢?在于咱没有添加IP白名单,这玩意一旦掌握不好也可以让你后劲无穷,下面看看具体哪里设置吧。
在这里插入图片描述

放在结尾

在这里插入图片描述
       失败不是成功他妈,顶多算是他前女友,最后我们来算一笔账,这个公众号消息推送他到底划不划算。

花费项目花费金额/元项目时长/年
微信认证3001
域名1003
服务器2993
总计12993

       从账面上来看还是比较划算的,毕竟现在的第三方推送都不太便宜啊,希望能对有相关需求的你有所帮助,我撤了。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
要将Java应用程序连接到微信公众号推送消息,您需要使用微信公众平台提供的API和Java的HTTP客户端库。以下是一些步骤: 1. 在微信公众平台上注册并获取应用程序的appID和appSecret。 2. 在Java应用程序使用HTTP客户端库发送HTTP请求来获取access_token,该token是访问API的凭证。 3. 通过微信公众平台提供的模板消息接口,构建一个消息模板。 4. 在Java应用程序使用HTTP客户端库发送HTTP请求,将模板消息发送到微信公众号。 下面是一个示例代码片段,演示如何使用Java和OkHttp库来发送一个简单的文本消息: ```java OkHttpClient client = new OkHttpClient(); String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET"; Request request = new Request.Builder() .url(url) .build(); Response response = client.newCall(request).execute(); JSONObject jsonObject = new JSONObject(response.body().string()); String access_token = jsonObject.getString("access_token"); String postUrl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + access_token; String json = "{\"touser\":\"OPENID\",\"template_id\":\"TEMPLATE_ID\",\"data\":{\"content\":{\"value\":\"Hello World\"}}}"; RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), json); Request postRequest = new Request.Builder() .url(postUrl) .post(body) .build(); Response postResponse = client.newCall(postRequest).execute(); ``` 在上面的代码,您需要将APPID和APPSECRET替换为您的应用程序的实际值。您还需要将OPENID替换为要发送消息的用户的openid,以及TEMPLATE_ID替换为您的消息模板的实际ID。 希望这可以帮助您开始将Java应用程序连接到微信公众号推送消息

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玉念聿辉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值