Java版微信支付
一、微信支付接入与介绍
1、微信支付产品介绍
付款码支付
用户展示微信钱包内的“付款码”给商家,商家扫描后直接完成支付,适用于线下面对面收银的场景。
JSAPI支付
- 线下场所:商户展示一个支付二维码,用户使用微信扫描二维码后,输入需要支付的金额,完成支 付。
- 公众号场景:用户在微信内进入商家公众号,打开某个页面,选择某个产品,完成支付。
- PC网站场景:在网站中展示二维码,用户使用微信扫描二维码,输入需要支付的金额,完成支付。
特点:用户在客户端输入支付金额
付款码支付
用户展示微信钱包内的“付款码”给商家,商家扫描后直接完成支付,适用于线下面对面收银的场景。
JSAPI支付
特点:用户在客户端输入支付金额
MyBatis官方文档:https://mybatis.org/mybatis-3/zh/
对于MyBatis,其工作流程实际上分为两部分:第一,构建,也就是解析我们写的xml配置,将其变成它所需要的对象。第二,执行,在构建完成的基础上,去执行我们的SQL,完成与Jdbc的交互
内置工具类一般位于org.springframework.util
下,另外可以一个工具类org.apache.commons
适合程序员,不过需要引入依赖
1 | <dependency> |
在docker run
创建并运行容器的时候,可以通过-p
指定端口映射规则。但是容器一旦生成,就没有一个命令可以直接修改。一般情况下,有两种方式进行映射端口新增或者修改,这里环境是Ubuntu20.04
Random 类用于生成伪随机数的流。 该类使用48位种子,其使用线性同余公式进行修改
Math.random()
使用起来相对更简单,但不是线程安全的;java.util.Random
的Random类是线程安全的。 但是跨线程的同时使用java.util.Random
实例可能会遇到争用,从而导致性能下降。 在多线程设计中考虑使用ThreadLocalRandom
类;java.util.Random
的Random不是加密安全的。 考虑使用SecureRandom
获取一个加密安全的伪随机数生成器,供安全敏感应用程序使用。
SpringBoot可以有两种方式实现定时任务,schedule和schedule,这两种组件都可以和Spring进行整合,区别如下表所示
组件名称 | cron | 持久化 | 开发难以程度 |
---|---|---|---|
schedule | 支持 | 不支持 | 非常简单 |
quartz | 支持 | 支持 | 复杂 |
缓存(Cache)在代码世界中无处不在。从底层的CPU多级缓存,到客户端的页面缓存,处处都存在着缓存的身影。缓存从本质上来说,是一种空间换时间的手段,通过对数据进行一定的空间安排,使得下次进行数据访问时起到加速的效果。就Java而言,其常用的缓存解决方案有很多,例如数据库缓存框架EhCache,分布式缓存Memcached等,这些缓存方案实际上都是为了提升吞吐效率,避免持久层压力过大。
对于常见缓存类型而言,可以分为本地缓存以及分布式缓存两种,Caffeine就是一种优秀的本地缓存,而Redis可以用来做分布式缓存
set
命令是 Bash 脚本的重要环节,却常常被忽视,导致脚本的安全性和可维护性出问题。Bash 执行脚本的时候,会创建一个新的 Shell,若执行过程有错误,Bash 会忽略这个错误,继续往下执行,Bash 只是显示有错误,并没有终止执行。直接运行set
,会显示所有的环境变量和 Shell 函数
1 | #显示所有的环境变量 |
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true
<br/><br/><br/>心怀天下<br/>只认真生活<br/>自信微笑面对未来