YYGH-BUG-05

整合微信支付


image-20220629223332580

在这里插入图片描述

80行报错空指针异常
证明
这里一直显示失败
今天在整合微信支付的时候遇到一个bug,更新订单状态的时候我们需要根据订单号查询相对应的订单同时更改订单的状态为已支付
在这里插入图片描述
证明没有查到orderinfo这时我们发现getid是不行的应该getOrderid
在这里插入图片描述
改完之后重启项目
这时我们发现
现在已经是预约成功了
在这里插入图片描述
那么为什么我们改了这里就支付成功了呢,无需再次支付是这样的.

1.前端调用接口,生成二维码,返回一个map

image-20220629223504113

map里面最重要的就是一个url存放二维码

2.前端解析map,显示二维码,同时前端每3秒检查支付状态

3.查询支付状态,当支付成功时更改项目数据库的支付状态

image-20220629223812292

4.将更新完成的结果返回给前端,自动跳转详情页面

//更新订单状态
@Override
public void paySuccess(String tradeNo, Map<String, String> resultMap) {
    //1.根据订单编号得到支付记录
    QueryWrapper<PaymentInfo> queryWrapper = new QueryWrapper<>();
    queryWrapper.eq("out_trade_no", tradeNo);
    queryWrapper.eq("payment_type", PaymentTypeEnum.WEIXIN.getStatus());
    PaymentInfo paymentInfo = baseMapper.selectOne(queryWrapper);

    //2.更新支付信息
    paymentInfo.setPaymentStatus(PaymentStatusEnum.PAID.getStatus());
    paymentInfo.setCallbackTime(new Date());
    paymentInfo.setTradeNo(resultMap.get("transaction_id"));
    paymentInfo.setCallbackContent(resultMap.toString());
    baseMapper.updateById(paymentInfo);

    //3.根据订单号得到订单信息
    log.info(String.valueOf(paymentInfo.getOrderId()));
    OrderInfo orderInfo = orderService.getById(paymentInfo.getOrderId());
    orderInfo.setOrderStatus(OrderStatusEnum.PAID.getStatus());

    //4.更新订单信息
    orderService.updateById(orderInfo);

    //5.调用医院接口,更新支付信息
    hospApi(orderInfo);

}

private void hospApi(OrderInfo orderInfo) {
    SignInfoVo signInfoVo = hospitalFeignClient.getSignInfoVo(orderInfo.getHoscode());
    if (null == signInfoVo) {
        throw new YyghException(ResultCodeEnum.PARAM_ERROR);
    }
    Map<String, Object> reqMap = new HashMap<>();
    reqMap.put("hoscode", orderInfo.getHoscode());
    reqMap.put("hosRecordId", orderInfo.getHosRecordId());
    reqMap.put("timestamp", HttpRequestHelper.getTimestamp());
    String sign = HttpRequestHelper.getSign(reqMap, signInfoVo.getSignKey());
    reqMap.put("sign", sign);
    JSONObject result = HttpRequestHelper.sendRequest(reqMap, signInfoVo.getApiUrl() + "/order/updatePayStatus");
    if (result.getInteger("code") != 200) {
        throw new YyghException(result.getString("message"), ResultCodeEnum.FAIL.getCode());
    }
}

而我们刚刚卡在了第4步当我们修改完代码前端检查到我们已经更新完的时候,之前的支付操作没有收到影响

微信退款

image-20220701002231560

今天在写退款接口的时候有一个bug款退了但是前端还是显示已预约,

image-20220701002331948

通过调查发现这个Boolean有问题,不管出错与否都是返回false
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值