获取微信公众号的openid并发送模板消息之前后端

如今的开发感觉已经离不开微信了,虽然相关的文章已经比微信官网还要多了,但是别人家的再好也是别人家的,自己走一遍还是挺有意义的。

如果是开发环境,还没有审核的微信公众号,那自然是不能发送模板消息的,只能获取到微信用户信息。需要申请个测试的公众号,官网免费申请。申请好以后,需要在"网页服务"->"网页账号"里配置一下oauth2.0的授权回调地址。

测试号

后面的操作就跟下面我正式的开发者平台一样了。

作为前端小白,有机会从零开始申请公众号,开发公众号,自然要学到什么记录什么。
本篇记录下开发环境怎么获取openid并且发送模板消息的。

参考
微信网页开发授权官方文档
微信公众平台,微信网页授权,redirect_uri参数错误,解决方法

获取微信用户信息

1、关注微信公众号
2、绑定微信号称为网页开发者


image.png

3、修改微信网页授权
关于网页授权回调域名的说明

  • 在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 http:// 等协议头;

  • 授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq.com,配置以后此域名下面的页面http://www.qq.com/music.htmlhttp://www.qq.com/login.html 都可以进行OAuth2.0鉴权。但http://pay.qq.comhttp://music.qq.comhttp://qq.com无法进行OAuth2.0鉴权

  • 如果公众号登录授权给了第三方开发者来进行管理,则不必做任何设置,由第三方代替公众号实现网页授权即可。

先配置服务器,保证根域名下可以访问到微信提供的测试文件。
如果您没有可用的域名,或许这篇文章可以祝您一臂之力。
配置好以后是这样的:

image.png

配置授权域名
image.png

image.png

  • 注意:这一步如果是tomcat做的容器,将txt文件放在tomcat/webapps/ROOT/下即可。
    如果用的nginx转发的,将文件放在根目录即可。
    比如:nginx如下:
    location / {
        root   /opt/site/alk-patient;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;
    }
目录

image.png

如果这一步没有配置,域名是加不上去的。


image.png

这一步要是有问题不会配,只能说这位后台适合去买庆丰包子。

4、获取code
回调url要用urlencode处理,比如我的回调地址是https%3a%2f%2fxhapp.3vyd.com%2fMP_verify_5J1FbKvfyqtzU26N.txt
设置在微信api里如下
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=https%3a%2f%2fxhapp.3vyd.com%2fMP_verify_5J1FbKvfyqtzU26N.txt&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect

将该URL用微信开发者工具访问后


image.png

同意授权,跳转成功后,想要的code在url里


code

5、获取微信用户信息
获取到了code以后,调用服务端的接口,获取用户信息:

user-info

服务端看微信官网API,出问题概率太小,不再贴代码。粘一下服务端打出来的log:

=============== REQUEST START ===============
 request-id:d0ae146d-86fa-4dfb-8224-f0f90b234e4a
 request-uri: /api/public/weixin/authorized/001g4LGs0ns6xf1qaPGs0kS1Hs0g4LG4
 request-method: :get
 request-query: 
 request-body:  
2019-06-22 15:54:16,796 [XNIO-1 task-2] INFO  alk-wxapi.routes.weixin - 请求微信access-token的 url: %s https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=001g4LGs0ns6xf1qaPGs0kS1Hs0g4LG4&grant_type=authorization_code 
2019-06-22 15:54:17,056 [XNIO-1 task-2] INFO  alk-wxapi.routes.weixin - ====== 请求微信access-token返回结果 ===== :  {:access_token 22_laqOVUrxrg5URkqS18gzDqdvgsHlkl5tXxBU6pbaqI9kIqdAdDVMk7zw0gMmoUlR2F1uQnhyzfdlmyixsP3qLA, :expires_in 7200, :refresh_token 22_eHVuzmK9VGxgQsxQV0qwCx9eNoECv7506YXsaXQH9LxEMifD5KwXkTRKAG2WxdlIkj9ZthbSC2wFbtaYGfNClg, :openid oIzsW5sck7l9kmtwDb66_RAvdepY, :scope snsapi_userinfo} 
2019-06-22 15:54:17,057 [XNIO-1 task-2] INFO  alk-wxapi.routes.weixin - 请求微信用户信息的 url: %s https://api.weixin.qq.com/sns/userinfo?access_token=22_laqOVUrxrg5URkqS18gzDqdvgsHlkl5tXxBU6pbaqI9kIqdAdDVMk7zw0gMmoUlR2F1uQnhyzfdlmyixsP3qLA&openid=oIzsW5sck7l9kmtwDb66_RAvdepYlang=zh_CN 
2019-06-22 15:54:17,256 [XNIO-1 task-2] INFO  alk-wxapi.routes.weixin - ====== 请求微信用户信息user-info返回结果 ===== :  {:sex 1, :nickname 马海强, :city Qingdao, :headimgurl http://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTLqxGWwK3lTGAffuGickR7V1VjAiawaAicIsoxGGAD0yWf2toLUZGAiaFHwS8QDMvZ2vLW3QJloKTnIPQ/132, :openid oIzsW5sck7l9kmtwDb66_RAvdepY, :language zh_CN, :province Shandong, :country CN, :privilege []} 
2019-06-22 15:54:38,673 [XNIO-1 task-2] INFO  jdbc.sqlonly - SELECT * FROM `t_patient` p WHERE p.`deleted` = FALSE AND p.`openid` = 'oIzsW5sck7l9kmtwDb66_RAvdepY'; 
 
2019-06-22 15:54:38,834 [XNIO-1 task-2] INFO  jdbc.sqlonly - batching 1 statements: 1: INSERT INTO `t_patient`(`patient_id`, `nick_name`, `gender`, `openid`, 
`province`, `city`, `country`, `headimgurl`, `unionid`, `create_time`, `status`) values ('a8dfb64eb45549b0b109e7170ac131e0', 
'马海强', '男', 'oIzsW5sck7l9kmtwDb66_RAvdepY', 'Shandong', 'Qingdao', 'CN', 'http://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTLqxGWwK3lTGAffuGickR7V1VjAiawaAicIsoxGGAD0yWf2toLUZGAiaFHwS8QDMvZ2vLW3QJloKTnIPQ/132', 
NULL, NOW(), 20); 
 
2019-06-22 15:54:38,841 [XNIO-1 task-2] INFO  alk-wxapi.routes.weixin - 微信公众号注册新用户,用户信息:%s  {:sex 1, :nickname 马海强, :city Qingdao, :headimgurl http://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTLqxGWwK3lTGAffuGickR7V1VjAiawaAicIsoxGGAD0yWf2toLUZGAiaFHwS8QDMvZ2vLW3QJloKTnIPQ/132, :openid oIzsW5sck7l9kmtwDb66_RAvdepY, :language zh_CN, :province Shandong, :country CN, :privilege []} 
2019-06-22 15:54:38,843 [XNIO-1 task-2] INFO  alk-wxapi.middleware.log-interceptor - response: {:code 1, :message "操作成功", :data {:sex 1, :nickname "马海强", :city "Qingdao", :headimgurl "http://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTLqxGWwK3lTGAffuGickR7V1VjAiawaAicIsoxGGAD0yWf2toLUZGAiaFHwS8QDMvZ2vLW3QJloKTnIPQ/132", :openid "oIzsW5sck7l9kmtwDb66_RAvdepY", :language "zh_CN", :province "Shandong", :country "CN", :privilege []}}
 request-id:d0ae146d-86fa-4dfb-8224-f0f90b234e4a 
2019-06-22 15:54:38,853 [XNIO-1 task-2] INFO  alk-wxapi.middleware.log-interceptor - 
=============== response END ===============

到此,获得用户信息。

公众平台配置模板消息

官方文档

1、从模板库中选择适合自己的模板,添加称为自己的模板,获取的模板id


模板

2、查看模板消息详情,确认字段内容


模板详情

3、公众号里基本配置->IP白名单配置当前网络外网地址IP

image.png

4、postman调用发消息

image.png
  • 发送模板消息


    image.png

收到的消息


收到消息

完美!
收关!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343