wechat

微信公众号本地开发流程

我只是一个虾纸丫 提交于 2020-07-29 06:25:50
1.建立测试号 直接打开链接,微信扫码登录即可测试号管理页面 https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index ,如下图所示 2.在测试号中的【网 页授权 获取用户基本信息】中,设置回调地址IP( localhost,127.0.0.1均不能使用,请使用局域网IP或域名,测试 号回调地址支持域名和ip,正式公众号回调地址只支持域名。 ) 3.下载微信开发者工具,选择公众号网页开发 4.填写要测试的地址,修改 rediect_uri 回调地址, 访问腾讯服务器url规则如下: https://open.weixin.qq.com/connect/oauth2/authorize?appid= 你当前测试号的 appid &redirect_uri= 你的接口路径 ( 记得 uri 码 ) &response_type=code&scope=snsapi_userinfo#wechat_redirect 5.访问以上地址的话,微信服务器会转发到另一个地址,地址中包含code,可以通过code获取到用户的openId(openId是微信用户唯一凭证) 例如:http://www.baidu.com/spic&code

万物皆可 Serverless 之使用云函数 SCF+COS 免费运营微信公众号

孤人 提交于 2020-07-29 05:00:53
是的,你没听错,这一次我来带大家直接上手运营微信公众号。 本文来自 Serverless 社区用户「乂乂又又」供稿 震惊,Awesome ,哼,我才不信捏,所谓无图无真相 ~ 效果展示 更多的体验,可以关注我的微信公众号: 乂乂又又 (仅供测试,不要乱搞哈~) 嗯,这次我信了,快点教一下我吧,嘤嘤嘤~ 操作步骤 在上一篇 《万物皆可Serverless之使用SCF+COS快速开发全栈应用》 教程中, 我们用腾讯云无服务器云函数 SCF 和 对象存储 实现了一个后端云函数,这个云函数可以根据我们的请求返回对应的结果。 现在我们将尝试在这个云函数的基础上解析微信 XML 消息,实现公众号消息的自动回复,关键词回复,文字菜单等功能。 第一步:添加相关依赖 为了快速完成开发,这里我们选择 python 第三方开源库 wechatpy 来接入微信公众平台。 wechatpy 支持以下功能 普通公众平台被动响应和主动调用 API 企业微信 API 微信支付 API 第三方平台代公众号调用接口 API 小程序 云开发 API 可见功能是十分完整的,不仅支持普通公众平台主被动调用,企业微信和微信支付,甚至还支持第三方平台代公众号调用接口,拿来运营微信公众号是十分绰绰有余的~ 由于腾讯云函数的运行环境中缺少第三方库,需要我们自己手动上传添加依赖,这里我们需要添加的第三方依赖有: wechatpy 、

超好看的博客园皮肤 Sakura~

二次信任 提交于 2020-07-29 03:58:34
(。・∀・)ノ゙嗨,我的博客又更新了!(其实可能已经被我改回去了) 点这儿点这儿,传送门吖~ 注:网页有时候要刷新一遍才能显示出来哦,不知道为啥🌚 是不是很好看? 但是很多东西还在研究中,(才被我改回去的)所以代码不三不四的,先放上来吧,也欢迎提修改意见哟~ 上代码 : css样式 .cnblogs-markdown .hljs { display : block ; color : #333 ; overflow-x : auto ; background : #F2F4F5 !important ; border : none !important ; font-family : Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace !important ; padding : 1em !important ; font-size : 14px !important } .hljs-comment, .hljs-meta { color : #969896 } .hljs-emphasis, .hljs-quote, .hljs-string, .hljs-strong, .hljs-template-variable, .hljs-variable { color : #df5000 } .hljs-keyword

14个Java并发容器,Java高手都知道!

江枫思渺然 提交于 2020-07-29 02:37:34
作者:acupt https://blog.csdn.net/Design407/article/details/100084673 不考虑多线程并发的情况下,容器类一般使用ArrayList、HashMap等线程不安全的类,效率更高。 在并发场景下,常会用到ConcurrentHashMap、ArrayBlockingQueue等线程安全的容器类,虽然牺牲了一些效率,但却得到了安全。 上面提到的线程安全容器都在java.util.concurrent包下,这个包下并发容器不少,今天全部翻出来鼓捣一下。 仅做简单介绍,后续再分别深入探索。 并发容器介绍 ConcurrentHashMap:并发版HashMap CopyOnWriteArrayList:并发版ArrayList CopyOnWriteArraySet:并发Set ConcurrentLinkedQueue:并发队列(基于链表) ConcurrentLinkedDeque:并发队列(基于双向链表) ConcurrentSkipListMap:基于跳表的并发Map ConcurrentSkipListSet:基于跳表的并发Set ArrayBlockingQueue:阻塞队列(基于数组) LinkedBlockingQueue:阻塞队列(基于链表) LinkedBlockingDeque:阻塞队列(基于双向链表)

Spring Boot 项目如何做性能监控?

情到浓时终转凉″ 提交于 2020-07-28 20:08:51
作者:zhaoyh http://zhaoyh.com.cn/ Spring Boot特别适合团队构建各种可快速迭代的微服务,同时为了减少程序本身监控系统的开发量, Spring Boot 提供了 actuator 模块,可以很方便的对你的 Spring Boot 程序做监控。 1. actuator接口说明 Spring Boot 应用中加入监控很简单,只需要在pom.xml文件中加入以下依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> 为了保证actuator接口的敏感性,在配置文件中,开放安全属性配置: management.security.enabled=false 这样就能允许你查看 Spring Boot 进程的actuator信息了。 启动Spring Boot程序,在启动日志里看到可访问的actuator接口: 通过这些,我们可以实时的获取应用的各项监控指标。另外,关注微信公众号:Java技术栈,在后台回复:boot,可以获取我整理的 N 篇 Spring Boot 教程,都是干货。 actuator的接口分为原生接口和用户自定义接口。 原生接口主要有如下几个

Logback 配置文件这么写,TPS 提高 10 倍!

|▌冷眼眸甩不掉的悲伤 提交于 2020-07-28 19:48:31
作者:何甜甜在吗 juejin.im/post/5d4d61326fb9a06aff5e5ff5 通过阅读本篇文章将了解到: 1.日志输出到文件并根据 LEVEL 级别将日志分类保存到不同文件 2.通过异步输出日志减少磁盘 IO 提高性能 3.异步输出日志的原理 1、配置文件logback-spring.xml Spring Boot 工程自带 logback 和 slf4j 的依赖,所以重点放在编写配置文件上,需要引入什么依赖,日志依赖冲突统统都不需要我们管了。 logback 框架会默认加载 classpath 下命名为 logback-spring 或 logback 的配置文件。 将所有日志都存储在一个文件中文件大小也随着应用的运行越来越大并且不好排查问题,正确的做法应该是将 error 日志和其他日志分开,并且不同级别的日志根据时间段进行记录存储。 <?xml version="1.0" encoding="utf-8"?> <configuration> <property resource="logback.properties"/> <appender name="CONSOLE-LOG" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic

Mybatis 框架下 SQL 注入攻击的 3 种方式,真是防不胜防!

梦想与她 提交于 2020-07-28 18:54:02
本文授权转载自FreeBuf.COM 链接: https://www.freebuf.com/vuls/240578.html 前言 SQL注入漏洞作为WEB安全的最常见的漏洞之一,在java中随着预编译与各种ORM框架的使用,注入问题也越来越少。 新手代码审计者往往对Java Web应用的多个框架组合而心生畏惧,不知如何下手,希望通过 Mybatis 框架使用不当导致的SQL注入问题为例,能够抛砖引玉给新手一些思路。 一、Mybatis的SQL注入 Mybatis的SQL语句可以基于注解的方式写在类方法上面,更多的是以xml的方式写到xml文件。 Mybatis中SQL语句需要我们自己手动编写或者用generator自动生成。编写xml文件时,Mybatis支持两种参数符号,一种是#,另一种是$。比如: <select id="queryAll" resultMap="resultMap"> SELECT * FROM NEWS WHERE ID = #{id} </select> 使用预编译,$使用拼接SQL。 Mybatis 框架下易产生SQL注入漏洞的情况主要分为以下三种: 1、模糊查询 Select * from news where title like ‘%#{title}%’ 在这种情况下使用#程序会报错,新手程序员就把#号改成了$

四笔钱

我们两清 提交于 2020-07-28 18:33:35
https://mp.weixin.qq.com/s?__biz=MzIxOTYxNTY4MQ==&mid=2247492014&idx=1&sn=7a6b69d6263296af0b2dbf5ffd29d57e&scene=21#wechat_redirect 来源: oschina 链接: https://my.oschina.net/u/4319747/blog/4341660

微服务设计 10 大反模式和陷阱!

故事扮演 提交于 2020-07-28 17:11:50
作者:飒然Hang rowkey.me/blog/2018/06/02/microservice-pitfall/ O’Reilly的电子书《Microservices AntiPatterns and Pitfalls》讲述了在微服务设计实现时十种最常见的反模式和陷阱。本文基于此书,将这十个点列出。 数据驱动迁移反模式(Data-Driven Migration) 如上图所示,此种反模式的问题在于微服务的粒度没有最终确定之前就做了数据迁移,如此当不断的调整服务粒度时,那么数据库就免不了频繁迁移,带来极大的成本。更好的方式如下图所示: 即先分离功能,数据库先保持之前的单体,等到服务粒度最终确定之后,再分离数据库。 前后端分离与不分离的本质区别 ,推荐看下。 超时反模式(The Timeout) 微服务架构是由一系列分离的服务组成的,这些服务之间通过一些远程协议进行互相之间的通信。其中牵扯到了服务的可用性和响应性问题。如下图所示: 可用性:服务消费方能够连接服务方,并可以向其发送请求。 响应性:服务方能够在消费方期望时间内给予请求响应。 为了防止服务的不可用和无法响应,通常的做法就是设置一个调用超时。此种做法表面上看是没问题的,但是试想一下如下情景:发起一个购买100个商品的请求,请求成功返回一个确认号。如果当请求超时但是请求在服务端已经成功执行了,此时这个交易实际是完成的

YYYY-MM-DD 的黑锅,我们不背!

落爺英雄遲暮 提交于 2020-07-28 13:33:07
作者:兔子托尼啊 https://zhuanlan.zhihu.com/p/101150248 写这篇博文是记录下跨年的bug。 去年隔壁组的小伙伴就是计算两个日期之间间隔的天数,因为跨年的原因计算有误。 当时测试组的小姐姐也没有模拟出来这种场景,导致上生产环境直接影响线上的数据。 今天逛技术论论坛正好遇到 Java 日期的操作bug。 1 yyyy 和 YYYY 别看字,看代码 @Test public void testWeekBasedYear() { Calendar calendar = Calendar.getInstance(); // 2019-12-31 calendar.set(2019, Calendar.DECEMBER, 31); Date strDate1 = calendar.getTime(); // 2020-01-01 calendar.set(2020, Calendar.JANUARY, 1); Date strDate2 = calendar.getTime(); // 大写 YYYY SimpleDateFormat formatYYYY = new SimpleDateFormat("YYYY/MM/dd"); System.out.println("2019-12-31 转 YYYY/MM/dd 格式: " + formatYYYY