前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式电商系统的设计与实现⑥-2

分布式电商系统的设计与实现⑥-2

原创
作者头像
会洗碗的CV工程师
发布2024-06-20 21:46:21
1120
发布2024-06-20 21:46:21
举报
文章被收录于专栏:毕业设计

1.1 购物车功能详细设计与实现

购物车关键功能在于当后台用户更新了商品信息,那么购物车商品信息也应得到及时的更新。这里就需要传入商品信息,并且更新购物车的redis缓存数据详细代码如下:首先通过redisTemplate.boundHashOps("cartList")方法获取redis中所有购物车商品,然后再进行遍历,如果缓存中有商品id和更新的商品id相同,则进行更新。详细代码如下图5-11所示:

图 5-11

因此用程序流程图描述如下图5-12所示:

图 5-12 更新购物车商品程序流程图

1.2 订单功能详细设计与实现

在该服务的关键功能在于添加订单的功能,当创建订单时,需要将订单对象状态设为1(未付款状态),并且通过购物车商品数量和商品价格,计算总数。最后将订单保存到数据库中,详细代码如下图5-13所示:

图 5-13

程序流程图如下图5-14所示:

图 5-14 添加订单程序流程图

1.3 支付功能详细设计与实现

该支付功能使用了支付宝沙箱支付,用来模拟真实支付,因为真实支付需要个体工商户备案和上传经营执照等相关文件,因此只能使用沙箱环境模拟支付。该功能需要有一个支付宝账号,且需要登录支付宝开发平台进行实名验证,申请个人的沙箱账号并根据支付宝密钥工具生成个人密钥和应用公钥。且按照官方文档完成沙箱控制台及接口调用配置。配置格式如下图5-15所示:

图 5-15

这里生成支付二维码之前需要先验证支付宝客户端,代码如下所示:

代码语言:java
复制
 @Bean
 public AlipayClient setAlipayClient(){
 return new DefaultAlipayClient(gateway, appId, privateKey, "json", "UTF-8", publicKey, "RSA2");
 }

意思就是返回一个DefaultAlipayClient Bean,且DefaultAlipayClient创建时需要传入支付宝网关地址,应用id,支付宝私钥,应用公钥,加密方式等参数。如果都匹配的上则支付宝客户端配置成功。

然后就是生成支付二维码,需要设置请求内容,如下代码,把订单标题,订单编号,订单金额等数据设置到请求内容里面去,然后通过alipayClient.execute(request)方法向支付宝客户端请求,并如果成功响应,则会生成一个response.getQrCode()二维码链接。代码如下图5-16所示:

图 5-16

使用支付宝沙箱版支付完成之后,会跳转到一个成功回调接口,跳转之后做的第一件事就是进行验签,根据请求参数Map集合来验证生成二维码和完成之后的请求参数和应用公钥是否有效来确认是否成功支付。通过AlipaySignature.rsaCertCheckV1(resultMap,alipayPublicKey, "UTF-8", "RSA2")方法,传入请求参数Map集合和应用公钥,以及编码方式和加密方式等参数确认是否验证成功,如下代码:

// 1.获取支付宝post发送过来的信息

代码语言:java
复制
 Map<String, String> resultMap = new HashMap<>();
 for (Object v : requestParameterMap.entrySet()){
 Map.Entry<String, String[]> item = (Map.Entry<String, String[]>) v;
 resultMap.put(item.getKey(), item.getValue()[0]);
 }
  try {
 return AlipaySignature.rsaCertCheckV1(resultMap,alipayPublicKey, "UTF-8", "RSA2");
 }

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 购物车功能详细设计与实现
  • 1.2 订单功能详细设计与实现
  • 1.3 支付功能详细设计与实现
相关产品与服务
ICP备案
在中华人民共和国境内从事互联网信息服务的网站或APP主办者,应当依法履行备案手续。腾讯云为您提供高效便捷的 ICP 备案服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档