You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					65 lines
				
				2.2 KiB
			
		
		
			
		
	
	
					65 lines
				
				2.2 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								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);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |