- 博客(3122)
- 收藏
- 关注
原创 微信支付---基础支付APlv3---关闭订单APl---用户取消订单
弹出二维码之后,用户未支付在我的订单中有一个产生的未支付的订单点击取消之后,出现了订单已取消的提示在WxPayController中编写一个订单取消的接口之后为前端创建成功的提示之后创建业务方法创建业务方法创建业务方法订单号和订单状态进行更新这是微信支付的关单接口传一个OrderNum进入,之后创建closeOrder这个方法在当前的impl中进行创建就好了给关单接口写一个注释接收一个url地址,
2024-10-03 21:19:18
375
原创 微信支付55---基础支付APlv3--商户定时查单,前端系统如何判断,用户已经扫完码,并且已经支付成功了,前端系统如何判断,用户已经扫完码,并且已经支付成功了,已经扫完码并支付成功就不能一直展现在这
写一个order_number,try it out。
2024-10-03 20:30:52
322
转载 3D建模,一根笔,3维,立体空间图资料
数学上,零维空间可以被看作是所有空间和时间的起点,如同宇宙大爆炸前的奇点一般,它不占据任何物理空间,但却代表了所有空间和时间的起源。一维空间在数学上是一个理想化的概念,帮助我们理解从点到线的扩展,但在现实世界中,一维空间的存在仍然是个谜题。而四维空间,则是在三维空间的基础上增加一个额外的空间维度(注意不是时间维度,如果是时间,那就是四维时空),但这多出来的维度究竟在哪里?维度,在数学和物理学中是描述空间属性的关键术语,涵盖从零维到更高维度的各个层面,每一维度都拥有其独特的特性和定义。四维空间真的存在吗?
2024-10-02 21:36:55
72
原创 微信支付48----基础支付APlv3--支付通知---接收通知和返回应答,明确的指出了,微信给我们发请求是以post的方式发送的,出现500的意思,代表着错误情况,接收请求,处理请求参数,成功应答
实现异步通知的接收,第一步,启动ngrok把内网穿透的链接放到这个位置之后在controller层中创建一个接口,因为我们的通知接口,响应的是JSON字符串的形式,给他起个名,nativeNotify(),这里是异步通知,这里编写的是通知接口给微信返回响应也要创建出来明确的指出了,微信给我们发请求是以post的方式发送的把这个参数下载在了下单参数当中,当支付成功之后,向那个地址发送结果通知这个地址是/native/notify这个地址,再加上整个一外网
2024-10-02 20:46:00
339
原创 微信支付49----基础支付Aplv3--支付通知---应答异常和应答超时
通过通知接口将用户成功的消息通知给了商户这里处理了通知参数,成功的进行了一个应答不符合规范,或者超时,就会将其归为通知失败,通知失败,微信会根据一定的策略,定期的重新发起请求会在这个时间内,不断的给商户端发起请求如果,我们想要返回一个正常的通知,返回一个200就可以了先展示一个二维码出来支付成功之后,因为微信没有接收到我们给他返回成功的一个提示,因此不断请求400或者500响应码开头的时候,标记这部分,使用try catch弄一个成功的应答,
2024-10-02 20:43:20
254
原创 微信支付50----签名验证处理
如果这里是商户端,向微信支付发送的话,微信支付端会给一个响应第一种应用场景,商户端向微信进行发送,微信支付端会给一个响应第二种应用场景,微信会发送一种通知第一种应用对象接收是response对象,第二种应用对象接收的是request对象这个validate是进行签名验证的这个方法对参数,进行一系列的处理平台证书序列号和平台证书携带的签名最后调用,verify方法来调用一个签名的验证第一步,创建util工具类,WechatPay2Valida
2024-10-02 20:39:14
557
原创 微信支付47,基础支付APlv3--支付通知--内网穿透,接收结果通知地址在wxpay.properties里面
这张图,橙色的部分都是由商户后台完成的,绿色的部分都是由其他角色完成的支付成功之后,微信会向用户端和客户端,均发送请求微信的服务器端,如何给商户系统发送请求,使用内网穿透技术,使用ngrok.com这个先注册一个账号,然后使用账号进行登录第一步,根据操作系统下载桌面软件工具已经存放到了压缩包里了双击打开,有一个.exe文件,使用cmd的方式,在当前的形式打开一个命令行在这个命令行当中,要做的第一件事情是为计算机做授权,做一个身份把这个命令复制一
2024-10-02 07:50:48
197
1
原创 微信支付46,基础支付APlv3---生成订单---显示订单列表,Order.vue是订单页面
之后在生命周期函数中调用,确保一启动就调用相关的函数。
2024-10-02 07:30:38
309
原创 微信支付45,生成订单,存储二维码地址,已经做了数据处理,用户每次点击的时候,可以从数据库当中查询已经存储的订单,code_url二维码可以保存2个小时,存储订单二维码
上文优化了生成订单的方法已经做了数据处理,用户每次点击的时候,可以从数据库当中查询已经存储的订单code_url存储起来,因为如果,用户频繁的下单,就会频繁的调用接口code_url二维码可以保存2个小时,用户仍旧可以扫码的接下来先做一个接口方法,在这个接口方法当中,先将二维码的地址存储起来,这个方法接受一个订单号,和二维码的地址在OrderInfoServiceImpl中将方法实现出来根据查询条件去更新数据记录update语句后面也可以写where,
2024-10-02 05:44:10
306
原创 微信支付44,修正重复点击,产生多次订单,生成订单---获取已存在的订单,如果用户没有创建支付,完全可以把用户之前的创建的订单,如果用户没有创建支付,完全可以把用户之前的创建的订单,获取出来,然后把二
第一步,进入到相应方法,当第一步,查找已存在,但未支付的订单先写一个辅助方法在这个过程返回一个订单如果不等于null,就创建orderInfo如果用户没有创建支付,完全可以把用户之前的创建的订单,获取出来,然后把二维码展示给用户先创建一个用户的辅助方法在这个方法当中,创建一个getNoPayOrderByProductId就可以了因为它自己用,所以不用在接口当中调用,抽象方法了,调用私有方法就可以了这里可以通过面前对象的方式组装成查询语句
2024-10-02 03:17:30
167
原创 微信支付43---基础支付APlv3---生成订单----存入数据库,现在已经完成了生成订单,调统一下单API(),返回预支付交易链接(code_url)
现在已经完成了生成订单,调统一下单API(),返回预支付交易链接(code_url)此时用户就可以打开,手机扫描生成的二维码了先把日志级别修改为info先找到统一下单的API调用方法找到生成订单这个方法因此会在OrderInfo当中做一个生成订单的业务这个方法是创建一个生成的订单接下来生成一个实现类先用商品id,查询我们的商品信息这句话的意思是获取商品信息的意思生成订单的过程可以参考这个生成订单的过程title,从pro
2024-10-02 02:41:33
205
原创 微信支付42---正常验签流程分析
接下来分析正常的流程重新执行确认支付的按钮在响应中可以明确的看到Wechatpay-Signature第一步,构造签名串,目的是从应答中,获取响应信息这个地方就是应答返回来的时间戳在应答当中,他也会给一个随机串我们要得到这个code_url,应答消息要组装成这样的一个字符串某个http请求的报文是这个样子的这个是应答消息主体对于我们来说这就是二维码的超链接了要把这个,Wechatpay-Signature给获取出来
2024-10-02 02:06:50
315
原创 mybatisplus,使用错误,Impl结构没写对,SperingBoot,mybatisplus,添加状态筛选条件,排除 state 为 0 记录写法,遗忘,Impl层要 extends Serv
【代码】mybatisplus,使用错误,Impl结构没写对。
2024-10-01 23:45:00
352
原创 微信支付39----APlv3--验签原理----平台证书的作用,从平台中我们可以获取到微信支付的公钥
上文讲的是商户私钥计算签名的过程这一节课程讲的是商户接受请求,怎样进行验签签名的过程仍然看一下在微信支付开发文档中签名认证的内容点击签名验证的内容这一步叫做验证应答的签名回调是微信主动的向我们发送请求,没有发送请求,主动的向我们发送请求支付成功的时候也要进行一个签名的认证,支付成功了,也要进行进行验证签名这句话是根据我们的请求说的SDK默认是已经对我们进行签名了在回调的过程中是必须验证签名的请求和响应的过程,要求是验证签名的
2024-10-01 23:45:00
112
原创 微信支付40---基础支付APlv3--验签原理---平台证书下载的源码分析
它的底层是如何获取平台证书的呢?找到后台代码一个是签名验证器,一个是获取http请求对象,签名验证器主要的作用是做签名验证,签名验证的前提就是获取平台的证书这个地方设置一个断点,用debug的方法用debug的模式去运行第85行进入到了debug的位置进入到了,ScheduledUpdateC....的位置传入了两个参数,一个是身份证验证对象身份验证对象封装了商户号还有一个是商户加密密钥接下来进行执行这一块是获取一把
2024-10-01 23:45:00
148
原创 微信支付41---验签原理,源码分析---响应超时的情况
1、当我们已经成功的下载了平台证书的时候,如果我们能够拿到微信的响应的话我们可以从已有的微信平台当中,解析出微信的公钥,发送过来的签名,我们用公钥进行签名在应用平台当中,以debug的形式启动再找到验签的源码这里就是验签源代码这个就是validate,这个方法就是验签方法这个地方设置一个断点在我们的后台,控制台在网站端,点击一下确认支付会进去到确认支付的源代码当中点击了方法之后,一定来到了controller层的方法当中,接下来调用
2024-10-01 23:45:00
173
原创 idea报错之命名冲突,添加了@RequestParam,import com.ruoyi.web.bean.part.RequestParam;类之后,导致controller层中,@Request
我添加了@RequestParam,import com.ruoyi.web.bean.part.RequestParam;类之后,导致controller层中,@RequestParam 注解失效,出现了Annotation type expected如何解决在 Java 中,是一个标准的 Spring MVC 注解,用于从 HTTP 请求中获取请求参数。如果出现错误,通常是因为编译器无法识别。
2024-09-30 23:45:00
516
原创 mybatisplus,1,12,state为1
首先定义一个 Service 接口,声明我们所需的服务方法。java深色版本通过以上步骤,您可以确保查询逻辑正确,并且返回的数据满足state = 1的条件,并且不包含code字段。Service 接口:定义了服务方法。Service 实现(ServiceImpl):实现了业务逻辑。Mapper 接口:定义了 Mapper 方法。Mapper XML 文件:实现了 SQL 查询逻辑。Controller:负责调用 Service 方法并返回响应。DTO 类:用于封装分页结果。
2024-09-30 23:45:00
482
原创 SpringBoot使用基本流程,Impl和service要配置注解@Service
*************************** Description: Field CodeDTOService in com.ruoyi.web.controller.part.ContentController required a bean of type 'com.ruoyi.web.service.CodeDTOService' that could not be found. The injection point has the following annotations: - @o
2024-09-29 23:45:00
133
原创 移动App存在隐私不合规行为,导致下架案例
个人信息处理者向其他个人信息处理者提供其处理的个人信息的,未向个人告知接收方的名称或者姓名、联系方式、处理目的、处理方式和个人信息的种类,未取得个人的单独同意。国家计算机病毒应急处理中心提醒广大手机用户谨慎下载使用以上违规移动App,同时要注意认真阅读其用户协议和隐私政策说明,不随意开放和同意不必要的隐私权限,不随意输入个人隐私信息,定期维护和清理相关数据,避免个人隐私信息被泄露。02、隐私政策未逐一列出App(包括委托的第三方或嵌入的第三方代码、插件)收集使用个人信息的目的、方式、范围等。
2024-09-29 21:34:15
283
原创 起火,电容干涉
本次召回范围内的部分车辆因电动助力转向管柱总成(CEPS)控制器制造工艺原因,设备工装上盖板关闭时与控制器电路板上的电容器干涉,导致电容器产生微裂纹。车辆使用中,电容器微裂纹可能扩大引发短路,造成电容器过热烧蚀,甚至起火,存在安全风险。比亚迪汽车工业有限公司、比亚迪汽车有限公司将委托比亚迪授权经销商为召回范围内的车辆免费加装控制器绝缘垫片,以消除安全隐患。
2024-09-29 21:22:39
120
原创 mybatisplus分页资料,插件配置注解资料
都有分页接口功能,它里面接受两个参数Wrapper是查询条件的意思泛型E是前面定义好的内容是Ipage及其接口及子类类型Ipage有两个子类,一个是Page,一个是pageDtopage里面包含页码和每页的大小,排序的字段,等等基本信息怎样创建page对象,怎样解析page结果,提前准备好了页码和每页大小紧接着创建,page对象了OrderItem用来指定排序的字段true是升序,false是降序调分页的方法,直接把page传过
2024-09-26 23:45:00
388
原创 mybatisPlus构建查询条件,LambdaQueryWrapper不想让你传入字段,想传一个不固定的函数
UpdateWrapper和LambdaUpdateWrapper通常只有在set语句比较特殊的时候才时候。
2024-09-26 23:45:00
210
原创 mybatisPlus,new QueryWrapper<User>().in()是什么意思,new QueryWrapper<User>().in() 表示创建一个新的 QueryWrapper匹配
表,里面存储了一些用户的详细信息。现在你想根据一组用户 ID 来查询这些用户的信息。在这种情况下,你可以使用。方法时,你需要提供一个参数列表,这个列表通常是你要查询的值的集合。查询条件,即在指定的列中查找特定值集合中的记录。对象,并向其中添加一个。类型的变量,代表了一组。值,你希望查询数据库中。
2024-09-26 23:45:00
300
原创 mybatisplus的IService接口基本用法,新增接口写法,它的新增都是以save开头,saveOrUpdate,
第一个save是新增的意思,只不过只能接收一个参数,泛型saveBatch(Collection<T>)是批量新增的意思saveOrUpdate是增或改的意思,会检测你是否有id,如果有,就是一个更新的操作没有id就执行
2024-09-26 23:45:00
381
原创 mybatisplus之删除接口,使用removerBatchByids的就是where,不用in,然后id一一匹配,它会采用JDBC批量处理的方式,来批量提交,实现批量删除,在数据量非常大的情况,这
resmoveById根据id删除removerByIds批量删除的意思使用removeByIds底层是delete,然后是一堆id使用removerBatchByids的就是where,不用in,然后id一一匹配,它会采用JDBC批量处理的方式,来批量提交,实现批量删除,在数据量非常大的情况,这种批量提交性能更佳
2024-09-26 23:45:00
305
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅