新零售支付全家桶


更新商品订单状态

编写接收付款通知的Web方法

@ApiOperation("接收消息通知")
@RequestMapping("/recieveMessage")
public void recieveMessage(HttpServletRequest request, HttpServletResponse response) throws Exception {
    request.setCharacterEncoding("utf-8");
    String tradeNo = request.getParameter("trade_no");
    String code = request.getParameter("out_trade_no");
    String tradeStatus = request.getParameter("trade_status");
    if ("TRADE_FINISHED".equals(tradeStatus) || "TRADE_SUCCESS".equals(tradeStatus)) {
        UpdateWrapper wrapper = new UpdateWrapper();
        wrapper.eq("code", code);
        wrapper.set("status", 2);
        wrapper.set("payment_type", 2);
        orderService.update(wrapper);
    }
    response.setCharacterEncoding("utf-8");
    Writer writer = response.getWriter();
    writer.write("success");
    writer.close();
}

编写更新订单状态的Web方法

@Login
@PostMapping("/updateOrderStatus")
@ApiOperation("更新商品订单状态")
public R updateOrderStatus(@RequestBody UpdateOrderStatusForm form,
                           @RequestHeader HashMap header) {
    ValidatorUtils.validateEntity(form);
    String token = header.get("token").toString();
    int userId = Integer.parseInt(jwtUtils.getClaimByToken(token).getSubject());
    int orderId = form.getOrderId();
    OrderEntity orderEntity = new OrderEntity();
    orderEntity.setUserId(userId);
    orderEntity.setId(orderId);
    QueryWrapper wrapper = new QueryWrapper(orderEntity);
    int count = orderService.count(wrapper);
    if (count == 0) {
        return R.error("用户与订单不匹配");
    }
    orderEntity = orderService.getOne(wrapper);
    String code = orderEntity.getCode();

    try {
        AlipayClient client = new DefaultAlipayClient(
                gateway,
                microApp_appId,
                microApp_privateKey,
                "json",
                "UTF-8",
                microApp_publicKey,
                "RSA2"
        );
        AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();
        request.setBizContent("{" +
                "\"out_trade_no\":\"" + code + "\"," +
                "      \"query_options\":[" +
                "        \"TRADE_SETTLE_INFO\"" +
                "      ]" +
                "  }");
        AlipayTradeQueryResponse response = client.execute(request);
        if (response.isSuccess()) {
            String tradeStatus = response.getTradeStatus();
            if ("TRADE_SUCCESS".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus)) {
                UpdateWrapper updateWrapper = new UpdateWrapper();
                updateWrapper.eq("code", code);
                updateWrapper.set("status", 2);
                updateWrapper.set("payment_type", 2);
                updateWrapper.set("prepay_id", response.getTradeNo());
                orderService.update(updateWrapper);
                return R.ok("订单状态已修改");
            } else {
                return R.ok("订单状态未修改");
            }
        }
        return R.ok("订单状态未修改");
    } catch (Exception e) {
        e.printStackTrace();
        return R.error("查询支付订单失败");
    }
}

编写order.vue代码

uni.request({
    url: that.url.zfb.updateOrderStatus,
    method: "POST",
    header: {
        "token":uni.getStorageSync("token")
    },
    data: {
        "orderId": id
    },
    success: function(resp) {
        let pages = getCurrentPages()
        let page = pages[pages.length - 1]
        page.onShow()
    },
    fail: function() {
        console.log("更新订单状态失败")
    }
})

页面列表

ITEM_HTML