电商(13)

电商第十三天
验库存:
引入库存系统:gware-manage
1. 引入库存系统到项目中,将库存系统放到项目根目录下即可!
2. 库存系统访问入口http://localhost:9001/index
配置nginx.conf
http://www.gware.com/index
3. 我们项目如何与库存建立联系 {远程调用 restful 形式}
在orderService 中写一个接口调用查询库存的接口
http://www.gware.com/hasStock
skuId : 商品skuId
num: 商品数量
功能开发:
for (OrderDetail orderDetail : orderDetailList) {
boolean res = orderService.checkStock(orderDetail.getSkuId(), orderDetail.getSkuNum());
// 表示没有足够的库存
if (!res){
request.setAttribute(“errMsg”,“库存不足!”);
return “tradeFail”;
}
}
4. 添加库存

	5.	测试:
		user-manage,passport-web,cart-service,order-service,order-web,gmall-gware.
		
		注意:验证库存的时候,并没有真正的锁定库存!当支付完成之后锁定库存!
	
验价格:
	   // 实时价格skuInfo.getPrice(); 想得到skuInfo,orderDetail.getSkuId() = skuInfo.id;
		SkuInfo skuInfo = manageService.getSkuInfo(orderDetail.getSkuId());
		if (skuInfo.getPrice()!=orderDetail.getOrderPrice()){
			request.setAttribute("errMsg",orderDetail.getSkuName()+"价格有变动,请重新下单!");
			return "tradeFail";
		}
		// 变动购物车的价格
	   cartService.loadCartCache(userId);
		// orderDetail.getOrderPrice()==skuInfo.getPrice() true: 验证通过,否则验证失败!

支付模块:
	支付宝接口
	支付流程:
		1.	用户点击生成二维码需要 带着签名,参数。
		2.	支付宝需要验证 签名,为了验证商家的真实性!
		3.	验证通过,则进行处理交易
			3.1	同步回调:给用户看
			3.2	异步回调:给商家看

	搭建支付模块 gmall-payment
		将web-util ,service-util 放入同一个pom.xml
		
		导入支付需要的sdkjar包
		1.	直接安装到本地
		2.	mvn install:install-file -DgroupId=com.alipay -DartifactId=alipay-sdk -Dversion=3.0.0  -Dpackaging=jar  -Dfile=alipay-sdk-java20180104135026.jar
		3.	将sdk 导入到项目中
		4.	修改域名
		5.	导入静态资源
			
		6.	立即支付需要完成
				1.  生成一个二维码,进行支付
					
				2.  保存一下交易记录 为什么需要记录订单信息!paymentInfo
					
				3.	了解如何保证支付的幂等性!
						一个订单,在支付宝中,只能交易成功一次!第三方交易编号outtradeNo
						当用户点击支付的时候,outtradeNo 会被记录到支付宝中!
						如果用户再次点击之后的时候,支付宝记录中已经存在 outtradeNo ,则不能支付!
		
		7.	异步回调:
			1.	先验签:boolean flag = AlipaySignature.rsaCheckV1(paramsMap, AlipayConfig.alipay_public_key, AlipayConfig.charset, AlipayConfig.sign_type); //调用SDK验证签名
			2.	flag = true 时,需要进行二次验签
				2.1	"TRADE_SUCCESS".equals(trade_status) || "TRADE_FINISHED".equals(trade_status) 并且交易记录状态PaymentStatus.PAID,PaymentStatus.ClOSED
					才是真正的验签成功!
			3.	验签成功之后:
				更新交易记录的状态PaymentStatus.PAID.
				
			4.	 // 更新订单的状态 orderStatus=PAID 应该是由OrderService。消息中间件来处理!
				
	面试题:
		使用的哪款产品?
			电脑网站支付
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值