谷粒商城实战(029 业务-订单支付模块-支付宝支付2)

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强

总时长 104:45:00 共408P

此文章包含第305p-第p310的内容


代码编写

前端代码

这里使用的是jsp
在这里引用之前配置的各种支付信息
在这里插入图片描述

在这里插入图片描述
在AlipayConfig.java里
在这里插入图片描述

这里是调用阿里巴巴写的一个alipayClient的返回一个页面字符串(html字符串)的方法,然后输出到页面
在这里插入图片描述
这里我们封装了一个支付工具类
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

可以跟配置文件里的以alipay开头的配置进行绑定
在这里插入图片描述
在这里插入图片描述

绑定跳转的支付页
在这里插入图片描述
编写action请求
在这里插入图片描述
在这里插入图片描述

支付宝只识别2位小数的金额 否则会报错,这里我们设置2位金额并向上取余
在这里插入图片描述

取余模式 如 四舍五入 向上取余,向下取余等
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

这里的标题我们自己设置 我们选择了商品名称
在这里插入图片描述
备注我们设置了商品的销售属性
在这里插入图片描述

在这里插入图片描述

响应的信息
在这里插入图片描述
这里的返回值设置成text/html类型 而不是 application/json
@GetMapping(value = “/payOrder”, produces = MediaType.TEXT_HTML_VALUE)
在这里插入图片描述
这个请求会跳转到支付宝给我们设置的表单 然后自动提交表单到另一页面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
跳回到成功回调页
在这里插入图片描述

在这里插入图片描述

支付成功同步回调功能

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
修改错误
在这里插入图片描述

请求写错了
在这里插入图片描述
类型错误
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

修改支付状态

支付宝推荐使用异步通知方式进行操作
同步通知如果浏览器崩溃或关闭就无法继续操作了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
*加粗样式

配置内网穿透地址

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置nginx
在这里插入图片描述

精确请求一般放在上边
在这里插入图片描述
在这里插入图片描述
这里报404 我们看一下访问日志
在这里插入图片描述
在这里插入图片描述
查看错误日志
在这里插入图片描述
找错了目录
在这里插入图片描述

在gulimail.conf里配置 添加我们的网址 使其的访问变成post请求 而不是静态网页
在这里插入图片描述

重启nginx
在这里插入图片描述
访问成功
在这里插入图片描述
在这里插入图片描述

这里直接放行此请求
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

验签 防止有人伪造 如拿postman自己发送一个数据给你

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里报错 是日期格式转换错误
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

收单

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里写我们需要的时间 我们这里测试用的是1分钟
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们也可以直接调用支付宝的异步收单功能
在这里插入图片描述

在这里插入图片描述

每晚可以调用对账功能来进行对账
在这里插入图片描述
这里可以查看订单号信息 每晚可以将当天的订单进行对账 来校验交易信息是否异常
在这里插入图片描述
这里还有退款功能
在这里插入图片描述


谷粒商城平台发布商品时,如果商品介绍图片上传失败,通常可能是由于文件存储服务(如阿里云OSS)的配置问题、网络请求异常或后端服务未正确处理请求所致。根据引用中提到的一些常见问题及解决方案,以下是可能的解决方法: ### 1. 检查OSS配置是否正确 商品图片上传通常依赖于对象存储服务(如阿里云OSS)。如果OSS的配置信息缺失或错误,会导致上传失败。例如,`ossClient`实例创建失败时会抛出类似 `Oss endpoint can't be empty` 的异常[^4]。 **解决方法:** - 确保在配置文件(如`application.yml`或`bootstrap.yml`)中正确配置了OSS的访问密钥、Endpoint、Bucket名称等信息。 - 检查是否在Nacos配置中心中正确配置了OSS相关的参数,并确保服务能够正确拉取这些配置。 ### 2. 确保Nacos服务注册与配置中心正常工作 如果网关或相关服务无法从Nacos获取配置或服务实例,可能导致请求失败。例如,引用中提到的503错误与服务未在Nacos中注册或配置名称不一致有关[^1]。 **解决方法:** - 登录Nacos控制台,确认`renren-fast`等服务已成功注册。 - 确认服务的`Data ID`和`Group`与配置文件中的名称一致。 - 如果服务配置有误,可以尝试重新引入Nacos客户端依赖并重启服务[^1]。 ### 3. 检查Spring BootSpring Cloud版本兼容性 版本不兼容也可能导致服务启动失败或某些Bean无法正确注入,从而影响图片上传功能。例如,Spring Boot版本过高可能导致与Spring Cloud组件的兼容性问题[^3]。 **解决方法:** - 确保使用的Spring BootSpring Cloud Alibaba版本兼容。 - 参考引用中使用的版本配置,例如将Spring Boot版本调整为`2.2.1.RELEASE`或`2.1.8.RELEASE`,Spring Cloud Alibaba版本为`2.1.0.RELEASE`[^3]。 ### 4. 检查网关依赖配置 在网关服务中,如果引入了不兼容的依赖或缺少必要的配置,可能导致请求被拦截或转发失败。 **解决方法:** - 确保网关服务中没有引入冲突的依赖,如引用中提到的`spring-cloud-starter-netflix-ribbon`可能导致的问题[^2]。 - 可尝试注释掉`gulimall-common`中可能导致冲突的依赖,并引入`spring-cloud-loadbalancer`以替代。 ### 5. 检查前端上传请求与后端接口匹配 商品图片上传功能依赖于前后端接口的正确对接。如果接口路径、参数名称或请求方式不匹配,也可能导致上传失败。 **解决方法:** - 使用浏览器开发者工具(F12)查看上传请求的URL、请求头、请求体是否正确。 - 确认后端Controller方法是否正确接收并处理了上传请求,例如使用了`@RequestParam("file") MultipartFile file`等注解。 ### 示例代码:OSS上传接口示例 ```java @RestController @RequestMapping("/oss") public class OssController { @Autowired private OSS ossClient; @Value("${aliyun.oss.bucket}") private String bucketName; @PostMapping("/upload") public ResponseEntity<String> uploadFile(@RequestParam("file") MultipartFile file) { if (file.isEmpty()) { return ResponseEntity.badRequest().body("File is empty"); } String fileName = UUID.randomUUID() + file.getOriginalFilename(); try { ossClient.putObject(bucketName, fileName, new ByteArrayInputStream(file.getBytes())); String fileUrl = "https://" + bucketName + "." + "oss-cn-beijing.aliyuncs.com" + "/" + fileName; return ResponseEntity.ok(fileUrl); } catch (IOException e) { return ResponseEntity.status(500).body("Upload failed"); } } } ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值