当前位置: 首页 > news >正文

(自用)Java学习-5.21(支付宝沙箱支付、Vue总结)

支付宝回调与Vue框架学习总结


一、支付宝回调参数处理
  1. 回调流程优化

    • 获取交易状态:String tradeStatus = request.getParameter("trade_status")

    • 验证交易成功:if ("TRADE_SUCCESS".equals(tradeStatus))

    • 参数收集与验签:

      Map<String, String> map = new HashMap<>();
      Map<String, String[]> parameterMap = request.getParameterMap();
      for (String key : parameterMap.keySet()) {map.put(key, request.getParameter(key));
      }
      // 支付宝验签
      boolean valid = AlipaySignature.rsaCheckV1(map, alipayTemplate.getAlipayPublicKey(),alipayTemplate.getCharset(),alipayTemplate.getSignType()
      );

  2. 关键参数提取

    if (valid) {System.out.println("订单号: " + map.get("out_trade_no"));System.out.println("金额: " + map.get("total_amount"));// 获取用户ID(从subject中解析)int uid = Integer.parseInt(map.get("subject"));User user = userService.getUserById(uid);payService.saveOrder(user.getUsername());
    }
    return "success"; // 必须返回success


二、订单展示实现
1. 前端动态渲染
function showOrders() {$.get("/orders/showOrdersInfo", function(resp) {$(resp).each(function(index, order) {// 构建订单面板var panel = `<div class="panel"><div class="panel-heading">订单号:${order.oid}</div><div class="panel-body"><table><tbody id="${order.oid}"></tbody></table><span>总金额:$${order.totalPrice}</span></div></div>`;$("#orderview").append(panel);// 渲染订单商品$(order.orderItemList).each(function(i, item) {var row = `<tr><td><img src="${item.image}"></td><td>${item.title}</td><td>$${item.price} x ${item.num}</td></tr>`;$(`#${order.oid}`).append(row);});});});
}
2. 后端数据查询
@GetMapping("/showOrdersInfo")
public List<Order> showOrdersInfo(HttpSession session) {Integer userId = getUserId(session);return orderService.getOrdersByUserId(userId);
}// MyBatis一对多查询
<resultMap id="OrderMap" type="Order"><id property="oid" column="oid"/><collection property="orderItemList" column="oid" select="com.zzst.mapper.OrderItemMapper.getByOrderId"/>
</resultMap>

三、Vue核心概念与应用
1. 基础结构
<div id="app"><p>{{ message }}</p><button @click="reverseMessage">反转</button>
</div><script>
new Vue({el: '#app',data: { message: 'Hello Vue!' },methods: {reverseMessage() {this.message = this.message.split('').reverse().join('');}}
});
</script>
2. 核心指令
指令作用示例
v-text替换文本内容<p v-text="msg"></p>
v-html插入HTML<div v-html="content">
v-if/v-show条件渲染<p v-if="isVisible">
v-for循环渲染<li v-for="item in items">
v-bind (简写 :)属性绑定<a :href="url">
v-model表单双向绑定<input v-model="name">
3. 生命周期钩子
new Vue({created() { console.log("Vue实例已创建"); },mounted() { console.log("DOM已挂载"); }
});

四、Axios异步请求
1. 基础用法
// GET请求
axios.get('/api/user', { params: { id: 1 } }).then(res => console.log(res.data)).catch(err => console.error(err));// POST请求
axios.post('/api/save', { name: 'John', age: 30 }).then(res => this.user = res.data);
2. Vue整合示例
methods: {loadUser() {axios.get('/users/getUser').then(response => {this.user = response.data;}).catch(error => {console.error("加载失败", error);});},saveUser() {axios.post('/users/saveUser', this.user).then(response => {alert('保存成功!');});}
}

http://www.lryc.cn/news/578352.html

相关文章:

  • 插入排序解析
  • sqlmap学习笔记ing(1.Easy_SQLi(时间,表单注入))
  • Django打造智能Web机器人控制平台
  • HarmonyOS应用开发高级认证知识点梳理 (一) 布局与样式
  • 记本好书:矩阵力量:线性代数全彩图解+微课+Python编程
  • 深蓝海域承建某大型保险集团产险知识库升级项目
  • 主流零信任安全产品深度介绍
  • 11OAuth2
  • 从零到一搭建远程图像生成系统:Stable Diffusion 3.5+内网穿透技术深度实战
  • 【深度学习1】ModernBert学习
  • 发布/订阅模式:解耦系统的强大设计模式
  • Spring Boot 集成 Dufs 通过 WebDAV 实现文件管理
  • 从零到一:VNC+内网穿透技术搭建企业级远程控制系统的完整路径
  • ubuntu系统安装docker 和 mongdb,YaPi(包含中间过程不能拉去依赖问题)
  • langchain从入门到精通(三十二)——RAG优化策略(八)自查询检索器实现动态数据过滤
  • 自由学习记录(66)
  • 聚观早报 | 知乎直答新升级;特斯拉V4超级充电桩首批上线;苹果将推出廉价版Macbook
  • 缓存系统-淘汰策略
  • 边缘人工智能与医疗AI融合发展路径:技术融合与应用前景(下)
  • 定时器的设计
  • 借助飞算AI新手小白快速入门Java实操记录
  • 25-7-1 论文学习(1)- Fractal Generative Models 何恺明大佬的论文
  • 分布式爬虫数据存储开发实战
  • uv介绍以及与anaconda/venv的区别
  • SVN 分支管理(本文以Unity项目为例)
  • 【Rust操作MySql】Actix Web 框架结合 MySQL 数据库进行交互
  • Gige协议 Qt版使用文档仅供个人使用
  • Mac中如何Chrome禁用更新[update chflags macos]
  • RabbitMQ简单消息发送
  • Qt自定义外观详解