赞
踩
今天在写苍穹外卖项目时,写到微信支付时发现个人无法获取商户号,那么今天我就在这里分享一个方法,可以绕过微信支付实现订单支付的功能。本方法仅仅是绕过微信支付,没有进行真正的微信支付,如果想要体验真正的微信支付环节,可以搜其他方法。对于没有微信支付的环节,我们仅需要做一个大致了解即可。
步骤1:我们根据老师提供的代码,将代码复制到我们自己的项目中,
我们主要修改的代码有两部分,第一部分是微信小程序的代码,第二部分是OrderServiceImpl
中的代码。
步骤2:修改微信小程序中的代码:
我们来到pay/index.js
中
将大概220
行左右的代码进行修改,具体的修改方法如下:
将箭头所指的代码放开,老师给的代码原本是注释着的。
步骤3:修改OrderServiceImpl
中的代码
我们将原本的payment
代码替换为以下代码:
/** * 订单支付 * * @param ordersPaymentDTO * @return */ public OrderPaymentVO payment(OrdersPaymentDTO ordersPaymentDTO) throws Exception { // 当前登录用户id Long userId = BaseContext.getCurrentId(); User user = userMapper.getByid(userId); // //调用微信支付接口,生成预支付交易单 // JSONObject jsonObject = weChatPayUtil.pay( // ordersPaymentDTO.getOrderNumber(), //商户订单号 // new BigDecimal(0.01), //支付金额,单位 元 // "苍穹外卖订单", //商品描述 // user.getOpenid() //微信用户的openid // ); // // if (jsonObject.getString("code") != null && jsonObject.getString("code").equals("ORDERPAID")) { // throw new OrderBusinessException("该订单已支付"); // } JSONObject jsonObject = new JSONObject(); jsonObject.put("code", "ORDERPAID"); OrderPaymentVO vo = jsonObject.toJavaObject(OrderPaymentVO.class); vo.setPackageStr(jsonObject.getString("package")); // 替代微信支付成功后的数据库订单状态更新,直接在这里更新了 // 根据订单号查询当前用户的该订单 Orders ordersDB = orderMapper.getByNumberAndUserId(ordersPaymentDTO.getOrderNumber(), userId); // 根据订单id更新订单的状态、支付方式、支付状态、结账时间 Orders orders=new Orders(); orders.setId(ordersDB.getId()); orders.setStatus(Orders.TO_BE_CONFIRMED); orders.setPayStatus(Orders.PAID); orders.setCheckoutTime(LocalDateTime.now()); // Orders orders = Orders.builder() // .id(ordersDB.getId()) // .status(Orders.TO_BE_CONFIRMED) // 订单状态,待接单 // .payStatus(Orders.PAID) // 支付状态,已支付 // .checkoutTime(LocalDateTime.now()) // 更新支付时间 // .build(); orderMapper.update(orders); return vo; }
orderMapper.getByNumberAndUserId:
@Select("select * from orders where number = #{orderNumber} and user_id= #{userId}")
Orders getByNumberAndUserId(String orderNumber, Long userId);
payment
方法中的update
方法和getbyid
方法老师都已经讲过。这里不再进行提供。
之后将小程序重新编译,进行下单支付
实验结果如下:
数据库中的数据也更新成功:
至此,本次分享到此全部结束,希望对你有帮助,如果觉得博主写的博客对你有帮助的话,希望给个小小的3连谢谢(●’◡’●)!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。