考点 线程 语言java
java后台 apiV3 对接微信app支付
因为项目中需要用到微信支付,这里对自己对接的流程做一个记录一、接入前准备1.申请应用appId与商户号,配置apiV3秘钥2.生成商户证书首先登录微信商家平台,进入"账户中心–>账户设置–>API安全",申请API证书(此证书为商户证书,跟下文的微信平台支付证书不一样),下载安装方式见官方文档经过上 ......
java 微信支付v3 —7.微信支付之申请退款
正文 不得不说,申请退款和创建订单是非常相似的,流程都一样,只是请求的数据变了,那么我们第一步就是封装请求数据成对象形式,方便后续调用。 1. 申请退款请求对象 微信支付订单号,微信支付订单号和商家订单号二选一,这个是必不可少的,原订单金额也是必填的,微信会做二次验证。 @Data public c ......
java 微信支付v3 —8.微信支付之退款成功回调
正文 还记得WxPayCallbackUtil回调接口工具类吗,当时是用于支付成功的回调,我们接下来向里面添加一个退款成功的回调方法,在添加前我们先来做一个准备操作。 退款返回数据对象 @Data @Slf4j public class WxchatCallbackRefundData { /** ......
java 微信支付v3 —9.微信支付之商家转账API
正文 这个功能就比较复杂了,首先是得有90天的资金流水才能开通,其次开通后还需要在官网进行配置,不能直接调用,并且限制了IP地址。 如下图所示,首先需要进行产品设置,将里面都设置好后才能进行开发,只开通功能是远远不够的。 商家转账设置说明及避坑指南 页面发起:即登录微信支付后,手动输入用户信息,进行 ......
java 微信支付v3 —3.订单创建准备操作
正文微信支付的下单操作分为了5种,分别是JSAPI、APP、H5以及Native支付及小程序支付,之所以将支付放在单独一个章节,而不是按照支付类型划分一个章节,是因为支付所传递的数据都是相似的,方便我们更好的封装。本章节是支付编写支付前的准备操作,发送请求需要请求地址,用户支付成功后微信会通过我们传 ......
java 微信支付v3 —5.微信支付成功回调
正文同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。 推荐的做法是,当商户系统收到通知进行处理时,先检查对应业务数据的状态,并判断该通知是否已经处理。如果未处理,则再进行处理;如果已处理,则直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免 ......
java 微信支付v3 —2.微信支付基本配置
正文 配置商户信息、证书、密钥等。将客户端对象构建到Bean中,方便后续使用。 我们可以使用官方提供的 SDK,帮助我们完成开发。实现了请求签名的生成和应答签名的验证。 <!-- 微信支付 --> <dependency> <groupId>com.github.wechatpay-apiv3</g ......
java 微信支付v3 —4.创建订单的封装及使用
正文 经过了微信支付之创建订单准备操作的准备操作,接下来我们就能够非常快速的开发出各种支付类型的创建订单接口。 商户Native支付下单接口,微信后台系统返回链接参数code_url,商户后台系统将code_url值生成二维码图片,用户使用微信客户端扫码后发起支付,也就是说后端只需要返回code_u ......
java 微信支付v3 —6.微信支付查询订单API
正文什么时候会用到这个API?常规情况下,回调接口已经足够我们使用,用户支付成功后,微信会自动调用我们的回调接口进行回调,那么还需要这个API吗?使用场景:微信服务器故障,我们的服务器故障,服务器端正在进行更新导致用户付款后端没有及时接收到微信的回调请求,那么此时我们就可以让用户点击按钮“更新支付状 ......
Java单例
/** * @Author: DengJia * @Date: 2023/3/22 * @Description: 单例 */ public class Singleton { public static void main(String[] args) { System.out.println(H ......
Java 使用 POI 导出Excel,设置同一个单元格的内容显示不同的文字颜色
要在 Java 中导出 Excel 并设置同一单元格的内容显示不同的文字颜色,可以使用 Apache POI 库来实现。下面是一个示例代码,演示如何在单元格中设置不同颜色的文本: 1 // 创建工作簿和工作表 2 Workbook workbook = new XSSFWorkbook(); 3 S ......
Java内存区域学习笔记
源码 → 二进制字节码 → 解释器 → 机器码 → CPU 程序计数器(线程私有):记住下一条jvm指令执行地址,解释器找到该条指令解释成机器码,运,如此往复 Java Virtual Machine Stacks (Java 虚拟机栈) 每个线程运行时所需要的内存,称为虚拟机栈 每个栈由多个栈帧( ......
Java第一次作业
1.定义圆形半径,求面积 package aaa; public class Text { public static void main(String[] args) { // TODO Auto-generated method stub int r=2; double b=3.14*r*r; ......
多线程知识资料记录
一、QT Qthread 1. https://zhuanlan.zhihu.com/p/52612180 2.https://zhuanlan.zhihu.com/p/53270619 3.https://zhuanlan.zhihu.com/p/411764910 ......
第一次作业java
1.定义圆形半径,求面积。Int r=5; package wen; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub double r=5; double ......
自然语言处理(三国演义)
import codecs import random import re import imageio import jieba.posseg as pseg import matplotlib.pyplot as plt import networkx as nx import wordclou ......
轻量级工具emoji-java处理emoji表情字符
转载:https://blog.csdn.net/qq_44799924/article/details/117114788 ......
C语言进阶--注释符号
编译器在编译过程中使用空格替换整个注释 字符串字面量中的//和/*....*/不代表注释符号 /*.....*/型注释不能被嵌套 注意:编译器把注释和其他程序元素看作是平等的 注释应该准确易懂,放置二义性,错误的注释有害无利 注释是对代码的提提示,避免臃肿和喧宾夺主 一目了然的代码避免加注释 不要用 ......
C语言进阶--struct和union分析
C语言中的struct可以看作变量的集合 柔性数组即数组大小待定的数组 C语言中可以有结构体产生柔性数组 struct softArray { int len; int arry[];//不占用存储空间 } union只分配最大成员的空间,所有成员共享这个空间 小结: struct中的每个数据成员有 ......
C语言进阶--enum、sizeof、typedef分析
enum用于定义离散值类型,定义的值是真正意义上的常量 sizeof是编译器的内置指示符,不参与程序的执行过程(在编译期间就会进行数组替换) typedef用于给类型重命名(重命的类型可以在typedef语句之后定义) typedef重命名的类型不能被unsigned和signed修饰 int va ......
Debian配置系统中文语言及环境
Debian配置系统中文语言及环境 1,安装语言包 sudo apt install locales 2,配置语言环境 sudo dpkg-reconfigure locales 按下空格即可选择,前面带星号(*)即被选中,通常不需要全部选择安装,选择需要的即可。 3,locale命令基本使用 查看 ......
C.UTF-8和en-US.UTF-8语言环境有什么区别
C.UTF-8和en-US.UTF-8语言环境有什么区别? 一般来说,C.utf8 是 POSIX 标准兼容的默认语言环境,中的 C 指的是计算机computer。意味着只有严格的ASCII字符才是有效的,扩展后允许基本使用UTF-8。 en_US.utf8=美式英语UTF-8语言环境。en_US指 ......
C语言填空:
#include <stdio.h> //从键盘输入一个字符串,将字符串中出现的所有大写字母循环右移5位 【1】 main() { char s[30]; int i=0,n; 【1】; n=strlen(s); while(【1】) { if(【1】) s[i]=s[i]+5; if(【1】) 【 ......
C语言:指针逆序函数
#include <stdio.h> #include <string.h> void reverse(char *str) { int len = strlen(str),i; char temp; for (i = 0; i < len / 2; i++) { temp = str[i]; st ......
C语言:理论知识点
1. && 左边表达式为0,则最后结果为0,右边的表达式不用计算 2. | 左边表达式为1,则最后结果为1,右边的表达式不用计算 3. unsigned 无符号整型 4. int a=4; //二进制: 原码 反码 补码:00000000 00000000 0000000000000100 int ......
C语言:求求e=1/1!+1/2!+1/3!+....+1/n!
#include<stdio.h> // 求e=1/1!+1/2!+1/3!+....+1/n! main() { double e=1,a,s=1; int i; for(i=1;i<=20;i++) { s*=i; a=1/s; e+=a; } printf("%f",e); } ......
java23.3.21
遍历数组所有元素 public class TestArray{ public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // 打印所有数组元素 for (double element: myL ......
java线程池相关问题
线程池有几种拒绝策略? 当线程池的线程数达到最大线程数时,需要执行拒绝策略。拒绝策略需要实现 RejectedExecutionHandler 接口,并实现 rejectedExecution(Runnable r, ThreadPoolExecutor executor) 方法。Executors ......
java异常相关问题
java中有哪些RunTimeException异常 RuntimeException 是那些可能在Java虚拟机正常运行期间抛出的异常的超类,是所有运行时异常的顶级接口。 NullPointerException 当应用程序试图访问空对象时,则抛出该异常。 IndexOutOfBoundsExce ......