汕头网站优化公司沈阳电商网站建设

news/2025/9/22 21:16:07/文章来源:
汕头网站优化公司,沈阳电商网站建设,自己做的网站如何盈利,带产品展示的个人网站模板本章主要讲解微信公众号自定义菜单、微信网页开发、模板消息推送等功能的实现#xff1b;发福利了#xff0c;下方关注公众号#xff0c;就能免费获取项目源码1、自定义菜单开发前需要了解以下几点#xff1a;1、微信公众号的自定义菜单最多包括3个一级菜单#xff0c;每个… 本章主要讲解微信公众号自定义菜单、微信网页开发、模板消息推送等功能的实现发福利了下方关注公众号就能免费获取项目源码1、自定义菜单开发前需要了解以下几点1、微信公众号的自定义菜单最多包括3个一级菜单每个一级菜单最多包含5个二级菜单。2、一级菜单最多4个汉字二级菜单最多7个汉字多出来的部分将会以“...”代替。3、自定义菜单接口可实现多种类型按钮本教程主要实现以下两个按钮更多按钮参照官方文档click点击推事件按钮view跳转URL按钮创建自定义菜单接口调用请求说明http请求方式POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_tokenACCESS_TOKENclick和view的请求示例如下所示{button:[ { type:click,name:今日歌曲,key:V1001_TODAY_MUSIC }, {name:菜单,sub_button:[ { type:view,name:搜索,url:http://www.soso.com/ }, {type:miniprogram,name:wxa,url:http://mp.weixin.qq.com,appid:wx286b93c14bbf93aa,pagepath:pages/lunar/index }, {type:click,name:赞一下我们,key:V1001_GOOD }] }] }下面我们基于mp框架创建公众号菜单需要项目源码的请下方关注公众号获取现在我们要实现如图所示的菜单我们应该如何去实现我们只用调用WxMpService的getMenuService()方法获取WxMpMenuService该类下封装了菜单的查询、删除、创建等方法调用menuCreate方法可以创建自定义菜单方法如下WxMenu menu new WxMenu();WxMenuButton button1 new WxMenuButton();button1.setType(WxConsts.MenuButtonType.CLICK);button1.setName(今日热点);button1.setKey(V1001_TODAY_MUSIC);WxMenuButton button2 new WxMenuButton();button2.setType(WxConsts.MenuButtonType.CLICK);button2.setName(发布信息);button2.setKey(V1001_TODAY_MUSIC);WxMenuButton button3 new WxMenuButton();button3.setName(用户中心);menu.getButtons().add(button1);menu.getButtons().add(button2);menu.getButtons().add(button3);WxMenuButton button31 new WxMenuButton();button31.setType(WxConsts.MenuButtonType.VIEW);button31.setName(搜索);button31.setUrl(http://www.soso.com/);WxMenuButton button32 new WxMenuButton();button32.setType(WxConsts.MenuButtonType.VIEW);button32.setName(视频);button32.setUrl(http://v.qq.com/);WxMenuButton button33 new WxMenuButton();button33.setType(WxConsts.MenuButtonType.CLICK);button33.setName(个人信息);button33.setKey(V1001_GOOD);WxMenuButton button34 new WxMenuButton();button34.setType(WxConsts.MenuButtonType.VIEW);button34.setName(获取用户信息);ServletRequestAttributes servletRequestAttributes (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();if (servletRequestAttributes ! null) { HttpServletRequest request servletRequestAttributes.getRequest(); URL requestURL new URL(request.getRequestURL().toString()); String url this.wxService.switchoverTo(appid).getOAuth2Service().buildAuthorizationUrl( String.format(%s://%s/wx/redirect/%s/greet, requestURL.getProtocol(), requestURL.getHost(), appid), WxConsts.OAuth2Scope.SNSAPI_USERINFO, null); button34.setUrl(url);}button3.getSubButtons().add(button31);button3.getSubButtons().add(button32);button3.getSubButtons().add(button33);button3.getSubButtons().add(button34);this.wxService.switchover(appid);return this.wxService.getMenuService().menuCreate(menu);2、微信网页开发我们现在要实现这么一个功能用户点击菜单进入到我们自己开发的H5页面同时要获取用户的信息应该如何去实现下面我看一个官方文档如果用户在微信客户端中访问第三方网页公众号可以通过微信网页授权机制来获取用户基本信息进而实现业务逻辑。步骤如下1 第一步用户同意授权获取code2 第二步通过code换取网页授权access_token3 第三步刷新access_token(如果需要)4 第四步拉取用户信息(需scope为 snsapi_userinfo)5 附检验授权凭证(access_token)是否有效2.1、获取code应用授权作用域有两种方式snsapi_base (不弹出授权页面直接跳转只能获取用户openid)snsapi_userinfo (弹出授权页面可通过openid拿到昵称、性别、所在地。并且 即使在未关注的情况下只要用户授权也能获取其信息 )我们只需要按照字段顺序组装如下url地址redirect_uri为你自己服务端的回调地址scope可以选择snsapi_base或者snsapi_userinforesponse_type固定填写codestate重定向后会带上state参数开发者可以填写a-zA-Z0-9的参数值#wechat_redirect 无论直接打开还是做页面302重定向时候必须带此参数https://open.weixin.qq.com/connect/oauth2/authorize?appidwx520c15f417810387redirect_urihttps%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdapter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60response_typecodescopesnsapi_basestate123#wechat_redirect我们在微信端访问该地址会通过回调地址把code带过来后端代码实现如下所示:HttpServletRequest request servletRequestAttributes.getRequest();URL requestURL new URL(request.getRequestURL().toString());String url this.wxService.switchoverTo(appid).getOAuth2Service().buildAuthorizationUrl( String.format(%s://%s/wx/redirect/%s/greet, requestURL.getProtocol(), requestURL.getHost(), appid), WxConsts.OAuth2Scope.SNSAPI_USERINFO, null);2.2、通过code换取网页授权access_token请求方法:https://api.weixin.qq.com/sns/oauth2/access_token?appidAPPIDsecretSECRETcodeCODEgrant_typeauthorization_code后端代码实现比较简单通过以下方法就能获取到用户信息WxMpOAuth2AccessToken accessToken wxService.getOAuth2Service().getAccessToken(code);WxMpUser user wxService.getOAuth2Service().getUserInfo(accessToken, null);2.3、刷新access_token由于access_token拥有较短的有效期当access_token超时后可以使用refresh_token进行刷新refresh_token有效期为30天当refresh_token失效之后需要用户重新授权。获取第二步的refresh_token后请求以下链接获取access_tokenhttps://api.weixin.qq.com/sns/oauth2/refresh_token?appidAPPIDgrant_typerefresh_tokenrefresh_tokenREFRESH_TOKEN我们只用调用wxService.getOAuth2Service().refreshAccessToken(refresh_token)方法就可以实现刷新token是不是非常的简单。2.4、拉取用户信息如果网页授权作用域为snsapi_userinfo则可以通过access_token和openid获取用户信息。httpGET(请使用https协议) https://api.weixin.qq.com/sns/userinfo?access_tokenACCESS_TOKENopenidOPENIDlangzh_CN同样后端方法也非常简单只用调用wxService.getOAuth2Service().getUserInfo();即可。3、模板消息推送我们需要实现一个功能公众号平台需要给用户主动推送消息例如支付的通知、通知、公告等如下图所示我需要给用户推送如下信息该如何实现首先我们进入到公众平台创建模板消息点击新增测试模板进入模板添加页面后需要填写模板标题和内容标题就是上图所示的重要通知而模板内容我们想写成动态如何实现我们只用按{{first.DATA}}这样的格式就可以通过后端传入我们需要的内容我们模板方法中有两个动态参数分别是{{first.DATA}}和{{remark.DATA}}后端代码实现如下GetMapping(/send)public void testSendTemplateMsg() throws WxErrorException { SimpleDateFormat dateFormat new SimpleDateFormat(yyyy-MM-dd HH:mm:ss.SSS); WxMpTemplateMessage templateMessage WxMpTemplateMessage.builder() .toUser(oiAsTwtKx4qzbwuRozjSO7NvXD_A) .templateId(-sJvjdzIpKyH4MTi-c0A5HAfrxgWCyvmrHhcQB1fk-Q) .url( ) .build(); templateMessage.addData(new WxMpTemplateData(first, dateFormat.format(new Date()), #FF00FF)) .addData(new WxMpTemplateData(remark, 公众号上线啦, #FF00FF)); String msgId this.wxService.getTemplateMsgService().sendTemplateMsg(templateMessage);}其中.toUser为发送给哪个用户参数为openId如何获取openId就需要通过上面的网页授权获取了.templateId()为模板id我们在传教了模板之后会有一个id把该id填入到该参数里面first模板中的{{first.DATA}}参数同理remark为模板中的{{remark.DATA}}参数可以把{{XX.DATA}}理解为占位符调用以上方法就会把内容通知到用户的公众号。本章内容就讲解到这微信公众号更多的个性化开发查看官方文档以及开源框架文档下一期带大家学习如何通过mq实现消息的阶梯式通知。4、学习交流QQ群【883210148】5、关注微信公众号免费获取文档及资源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/910398.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深圳网站建设与设计制作笑话小网站模板html

它们都是对表达式的记法,因此也被称为前缀记法、中缀记法和后缀记法。它们之间的区别在于运算符相对与操作数的位置不同:前缀表达式的运算符位于与其相关的操作数之前;中缀和后缀同理。举例:(3 4) 5 - 6 就是中缀表达式- 3 4 …

dell公司网站设计特色石油 技术支持 东莞网站建设

上篇文章介绍了如何利用pyhook模块监听鼠标键盘的事件,接下来如果需要通过监听的事件内容,来做对应的操作,需要对event的内容进行相应的判断。 如果仅仅通过event.key来进行判断,可以写成str(evnet.key) F12等,如果需…

佛山网站开发公司秦皇岛微信公众号

2019双11,支付宝参战的第十一年。 与十一年前相比,双11的许多东西都改变了。比如金额——2684亿,差不多是十一年前的5000倍;比如流量——订单峰值54.4万笔/秒,曾经是想都不敢想的数字;再比如层出不穷的新技…

国外域名查询网站装修设计公司哪个好

前言 今天我们来做个小试验,用PHP和RabbitMQ实现消息队列功能。 前期准备,需要安装好docker、docker-compose的运行环境。 如何使用docker部署php服务_php如何使用docker发布-CSDN博客 一、安装RabbitMQ 1、创建相关目录,执行如下命令。…

代码随想录算法训练营第五天 |242.有效的字母异位词、349. 两个数组的交集、第202题. 快乐数、1. 两数之和

242.有效的字母异位词思路:想到的是分别遍历两个数组,然后用map统计值,一个数组遍历的时候对值++,一个--,如果value没有能消除完,那就不一样。 优化:其实一次遍历就可以做完。func isAnagram(s string, t string…

Python - GaussDB table sync to Hive

Python - GaussDB table sync to Hive import psycopg2 from datetime import date, datetimeSRC_TABLE = "aaa" TARGET_TABLE = "bbb"# ---------------------------- # Step 1: Connect to Gaus…

淄博网站开发恶意代码 wordpress

下载地址:网盘下载 基本介绍 编辑内容简介 到底是本什么书,拥有这样一份作序推荐人列表:阿里集团章文嵩博士|新浪TimYang|去哪网吴永强|丁香园冯大辉|蘑菇街岳旭强|途牛汤峥嵘|豆瓣洪强宁|某电商陈皓/林昊…… 这本书出自某电商技术部总监之手…

Photoshop 2025 v26.0(PS2025)下载安装教程(含一键安装包下载)

目录一、PS2025 软件介绍:学 Photoshop 2025 v26.0 下载安装教程前,先懂它为啥好用二、Photoshop 2025 v26.0 下载方法三、Photoshop 2025 v26.0 安装教程详细步骤步骤 1:解压安装包 ——Photoshop 2025 v26.0 下载…

装修设计公司网站腾讯企业邮箱登录入口免费版

文章目录[toc]第一章 面试流程1.1 面试官谈面试1.2 面试3种形式1.3 面试的3个环节第一章 面试流程 1.1 面试官谈面试 初级的程序员谈算法和数据结构,高级的程序员谈项目经验要对公司近况和项目情况了解不要紧张,不要马上上手写代码 1.2 面试3种形式 …

成都市金牛区建设和交通局网站手机软件下载大全

背景 最近遇到了一个问题,在使用rabbitmq的时候出现了丢消息、消息重复消费等一系列的问题,使用的是.net框架,背景是高并发压力下的mq消费,按理说即使队列中堆了几百条消息,我客户端可以同处理5个消息。 原因是多线程…

宁夏网站建设报价毕业设计代写网站

SNAP软件下载与安装 一、下载地址 首先进入网站 找到DOWNLOAD下载页, 安装完成后,界面如下 还需要再装一个Sen2cor下载好之后,解压到用户文件夹下 然后打开L2A_Process.bat文件 打开CMD,输入 cd C:\Users\lenovo\AppData\L…

网站一般怎么维护企业的网站建设费用

字节数组转为二进制数 c#低延迟系统需要高性能的消息处理和传递。 由于在大多数情况下,数据必须通过有线传输或序列化才能保持持久性,因此编码和解码消息已成为处理管道的重要组成部分。 高性能数据编码的最佳结果通常涉及应用程序数据细节的知识。 本文…

做外贸网站市场分析金华 网站建设

Bug(俗称"八阿哥") 是软件开发绕不过的一道坎,因此调试便成了每位程序员一项必备的核心技能。调试不仅有助于理解程序的运行流程,还能改进代码质量,最终提高开发者解决问题的能力以及交付软件的品质。本文旨在讨论 Java 调试关键技…

2345网站入口大数据网络营销

Python 语言的基本语法和编码规范 Python 编程教程教师 : 工作 :Python 语言的基本语法和编码标 准课程描述本章将介绍 Python 语言的基本语法和编码标准,重点介 绍 Python 语言的基本知识,如数据类型、运算符、常量、变量、表 达式和常用语句&#xff0…

上海网站建设-新闻动态金融培训网站源码

引言 曾想过轻松获取亚马逊上的商品图片用于项目或研究吗?是否曾面对网络速度慢或被网站反爬虫机制拦截而无法完成数据采集任务?如果是,那么本文将为您介绍如何用OkHttp和Kotlin构建一个高效的Amazon图片爬虫解决方案。 背景介绍 亚马逊&a…

动力 网站建设广州市网站搭建制作

AI绘画图生图是指通过人工智能技术生成的具有艺术价值的图像。它可以根据用户提供的参考图像或描述,自动生成具有艺术风格的新图像。这些图像可以是风景、人物、抽象画等各种形式。那么ai绘画图生图到底怎么样? AI绘画图生图的优点在于它可以快速、高效地…

网络加速原理

GA的核心原理:不是单纯靠Anycast,而是“Anycast + 智能DNS + 四层代理转发”三位一体 虽然常说“GA使用Anycast”,但更准确地说:✅ GA的本质是:通过智能DNS将用户导向最近的Anycast接入点,再经由阿里云高质量骨干…

无意中在应用层瞥见了一个微内核的操作系统调度器

你好呀,我是歪歪。 最近遇到一个业务上的问题,在网上看到一个对应场景下的解决方案,我感觉这个场景还挺有通用性的,分享一下。 以后遇到类似问题,或者当它以面试场景题出现的时候,你可以拿去就用。事情是这样的。…

数据结构思维题选做(长期更新)

到处乱找的. 用到的数据结构在 NOIP 考纲内,主要是学习、锻炼各种处理思路. 代码的实现都不算困难. 倍增思想 P10198 [USACO24FEB] Infinite Adventure P Hint:跳的步数明显提示倍增. 根据 \(\sum T_i\) 的限制直接预…

龙泉公路建设投资有限公司网站网站到期怎么续费

Prometheus是一款基于时序数据库的开源监控告警系统,非常适合Kubernetes集群的监控。Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做…