package com.ynxbd.wx.servlet; import com.ynxbd.common.bean.enums.MerchantEnum; import com.ynxbd.common.helper.common.HttpHelper; import com.ynxbd.common.result.ResultEnum; import com.ynxbd.wx.config.WeChatConfig; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.slf4j.MDC; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * 多处方支付跳转 * * @Author wsq * @Date 2020/11/19 10:36 * @Copyright @ 2020 云南新八达科技有限公司 All rights reserved. */ @Slf4j @WebServlet("/q") public class QServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { MDC.remove("ip"); MDC.put("ip", HttpHelper.getIpAddress(request)); String userAgent = request.getHeader("user-agent"); if (StringUtils.isEmpty(userAgent)) { log.info(ResultEnum.PAY_TYPE_NOT_SUPPORT.message); HttpHelper.outRespAlert(response, ResultEnum.PAY_TYPE_NOT_SUPPORT.message); return; } MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByQr(userAgent); if (merchantEnum == null) { log.info(ResultEnum.PAY_TYPE_NOT_SUPPORT.message); HttpHelper.outRespAlert(response, ResultEnum.PAY_TYPE_NOT_SUPPORT.message); return; } String patientId = request.getParameter("p"); log.info("{} [patientId={}]多张处方扫码请求,开始解析...", merchantEnum.NAME, patientId); if (StringUtils.isEmpty(patientId)) { log.info("[支付] 多张扫码请求 patientId is null"); return; } if (MerchantEnum.WX.equals(merchantEnum)) { response.sendRedirect(WeChatConfig.getWebUrl() + "pay-qr-recipe.html?p=" + patientId); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } }