今天用支付宝支付宠物商品订单
1.先通过 订单id获取到宠物商品详情,用商品详情设值;
2.通过宠物详情设值,然后把订单信息入库;
3.再把收货信息存入地址;
4.再拉起重定向到支付页面,调用第三方接口;
5.通过异步回调修改状态;
6.通过同步回调显示状态;
1.先通过 订单id获取到宠物商品详情,用商品详情设值;
@Override public JSONResult createorder(OrderAdopt orderAdopt, Long currentId) { //1.订单信息入库 //1.1 入参校验 通过用户id拿到宠物id Long petId = orderAdopt.getPetId(); if(petId==null){ return JSONResult.error("订单信息有误"); } Long id = orderAdopt.getId(); Example example = new Example(OrderAdopt.class); example.and().andEqualTo("userinfoId",id); //1.2根据宠物id拿到宠物信息 Pet pet = petMapper.selectOneByExample(example);
2.通过宠物详情设值,然后把订单信息入库
Pet pet = petMapper.selectOneByExample(example); OrderAdopt orderinfo = new OrderAdopt(); orderinfo.setCreateTime(new Date());//创建时间 orderinfo.setState(0);//修改状态 状态(0:待支付;1:支付成功;2:支付失败) orderinfo.setPrice(pet.getSaleprice());//商品售价 String orderSn = MyUtil.getOrderSn(); orderinfo.setOrderSn(orderSn);//订单编号 ~随机数 orderinfo.setUserinfoId(currentId);//用户id orderinfo.setLastPayTime(new Date());//支付时间 orderinfo.setShopId(pet.getShopId());//商品id //orderinfo.setLastConfirmTime();//todo orderAdoptMapper.insert(orderinfo);
//4.拉起订单支付页面 AlipayBean alipayBean = new AlipayBean(); alipayBean.setSubject("购买宠物名:" + pet.getName() + ";需支付金额:" + orderinfo.getPrice() + "元"); alipayBean.setTotalAmount(orderinfo.getPrice().toString()); alipayBean.setOutTradeNo(orderSn); //alipayBean.setBusinessKey(order.getId()); //alipayBean.setShopId(order.getShopId()); return alipayService.createPayUrl(alipayBean,currentId);