微信后端代码
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.

67 lines
2.4 KiB

package com.ynxbd.wx.servlet;
import com.bocom.api.utils.Base64;
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 com.ynxbd.wx.wxfactory.ReqParamHelper;
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 + "&enp=" + ReqParamHelper.encode(patientId)+ "&ent=" + request.getParameter("t"));
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}