![](https://img-blog.csdnimg.cn/7c6557ea730647bbb8ad705bbebe9c20.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
项目支付功能实战专栏
文章平均质量分 93
wechatpay-java来进行讲解与剖析,并对其中加签、加密、解密、验签等方法的深度解读与说明。对redis缓存、分布式锁、事务细节处理、异步队列、安全认证、微信接口的封装、业务异常处理以项目应用场景进行说明,诚推订阅,有不对的地方也麻烦大佬批评指正
senda66
行业深耕13年程序员,java高级开发工程师、系统架构师、Android开发者、ai探索者。分享编程经验、落地方案等
展开
-
第十节、项目支付功能实战-加餐篇:springboot+redisson分布式锁+定时job实现高性能竞拍系统
竞拍系统也称竞价系统,指的是多人在线同时对某一商品或多个商品进行出价报价,在竞拍结束之前、限时竞价时长内如果有人出价就会延长竞拍结束时间。一般来说,要实现一个竞拍系统,首先要发布商品,商品发布后就会进入等待竞价状态。等待竞价的这段时间内,用户可浏览商品,并添加关注等操作。待竞价开始时,用户即可参与报价(中间省略了很多业务概念,比如缴纳保证金、出价时冻结用户的金额等,这里不展开叙述,只讨论系统的实现方案)。关键点就在于从出价开始到出价结束这段时间内如何控制系统不出现异常出价。原创 2024-02-27 15:59:58 · 308 阅读 · 0 评论 -
第九节、项目支付功能实战-spring事务、数据库事务、事务失效的场景、事务与锁
spring事务的概念、数据库事务、原理、事务为什么会失效、事务与锁、隔离机制、传播特性、嵌套事务等原创 2024-02-27 15:44:27 · 184 阅读 · 0 评论 -
第八节、项目支付功能实战-定时任务查退款单、订单状态退款状态枚举、保证金相关表的更新(余额)
**目前的业务逻辑有两种,一种是支付要更新保证金相关的表,一个是退款也要更新保证金相关的表。而支付和退款本身也有更新订单状态和退款单或支付流水的业务。为了保证更新业务数据和微信支付退款的业务隔离开来,在`this.updateBusiDataByPayInfo(tradeInfoInVo);`中使用了开启异步任务的方式来处理业务数据,因为使用异步任务后就会涉及多线程,而多线程时事务不共享的。这里需要注意的是要保证下游的数据库能支撑住,因为异步任务越多越会对数据库造成压力。**原创 2024-01-03 18:05:02 · 1023 阅读 · 0 评论 -
第七节、项目支付功能实战-定时任务查单、关单、保证金提现(退款)
定时任务查单、关单、保证金退款的逻辑基本实现完成,下一节,再补充一下保证金退款定时查询退款单,以及支付和退款过程中缺失的一些枚举代码。这里需要说明一下:为了方便开发和阅读在表的实体上添加了Deposit前缀,含义为保证金。原创 2024-01-03 14:51:19 · 1005 阅读 · 2 评论 -
第六节、项目支付功能实战-保证金支付、支付回调
**`handleNotifyPay` 方法中使用了声明式事务方式,这里选择了将锁放到了事务的外面,就是为了让锁完美的生效,减少失效的概率。此方法中会根据微信给的明文解析微信的支付状态,并将实际的状态更新到订单表中,并插入支付流水记录。如果支付成功会处理业务数据,这里的业务数据就是更新保证金相关的表。更新业务数据时为了和微信支付事务隔离开,使用的是异步线程池,目的是业务数据处理的结果不影响更新订单相关的操作。**原创 2024-01-02 15:10:38 · 971 阅读 · 0 评论 -
第五节、项目支付功能实战-证书获取、微信支付集成初始化配置、sdk统一下单、api安全源码解读
本节首先会讲解商户证书、私钥、微信平台证书的获取、APIv3密钥的生成。然后将我们微信支付需要的参数配置信息初始化出来,为后面的业务代码使用。结合微信平台证书下载案例和微信统一下单api来讲解请求和响应都做了什么操作。上一节中我们提到的那些证书又是如何应用在接口中的。最后再讲一下如何做内外网穿透。原创 2023-12-26 17:42:06 · 1517 阅读 · 0 评论 -
第四节、项目支付功能实战-集成微信支付sdk、微信支付流程、微信支付API安全原理
**证书种类**- **商户API证书:** API证书,是指由商户申请的,用来证实商户身份的证书。API证书由证书授权机构Certificate Authority(简称CA)颁发。证书中包含商户的商户号、公司名称、公钥等信息。此API证书就是指商户的公钥文件,是`商户用来进行对消息加密使用`或`微信平台用来对消息进行验证签名`的。具体的申请方式 [商户API证书申请步骤](https://kf.qq.com/faq/161222NneAJf161222U7fARv.html)。商户号注册后,需要商户自原创 2023-12-18 15:36:01 · 207 阅读 · 0 评论 -
第三节、项目支付功能实战-微信支付平台接入流程,小程序账号注册、商户注册
本篇介绍小程序的注册流程、商户平台的注册流程、以及小程序和商户平台如何进行绑定。原创 2023-12-11 16:41:41 · 291 阅读 · 0 评论 -
第二节、项目支付功能实战-信息安全、支付安全、接口安全详解
(1)信息发送者A要向B 发送一份信息,A 先按双方约定的散列算法对该信息进行散列运算,得到一个该信息特有的消息摘要H,从前面所述可以知道,只要改动信息中任何一位,重新计算出的消息摘要值就会与原先的值不相符。这样就保证了信息的不可更改性。(2)接着把该消息摘要用A 自己的私钥加密,得到A 对该信息的数字签名S。(3)然后A 把信息原文与数字签名S 一起发送给B。(4)当B 收到后,先用A 的公钥对数字签名S 解密得到A 的消息摘要H。(5)再用同样的散列算法对收到的信息进行散列运算,得到消息摘要H'原创 2023-12-11 11:59:39 · 152 阅读 · 0 评论 -
第一节、项目支付功能实战-微信支付项目功能设计及库表脚本
本篇文章主要介绍了保证金相关的业务概念、项目需求、保证金系统架构和充值、提现等流程,最后并贴出了功能设计的代码和脚本。下一节,我们将介绍系统架构中的安全架构设计。原创 2023-12-04 15:54:08 · 263 阅读 · 0 评论 -
2023最新微信支付(小程序、H5等)项目wechatpay-java实战,一步一步带你完成项目前后端逻辑
微信支付项目实战功能专栏介绍,主要包括十大章节的一一介绍,其中涵盖了redis缓存、分布式锁、事务、异步队列、安全认证、微信接口的封装、业务异常处理等技术栈。并对每一章节的内容进行专门的分解。这篇文章属于专栏的介绍。本专栏不仅教大家如何合理的调用微信的api(支付、退款等),还涉及到了各个技术栈的穿插实战内容。支付和退款的sdk的源码解读,加签、加密、解密、验签安全认证的主要流程。原创 2023-12-01 11:07:38 · 796 阅读 · 0 评论