123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- package com.emato.cuspay.wx.controller;
- import com.emato.cuspay.wx.entity.WxCbPayDoc;
- import com.emato.cuspay.support.msg.resp.ResponseMessage;
- import com.emato.cuspay.support.msg.resp.ResponseStatus;
- import com.emato.cuspay.util.MapBeanUtils;
- import com.emato.cuspay.util.Validator;
- import com.emato.cuspay.util.jackson.JacksonUtil;
- import com.emato.cuspay.wx.service.WxCbPayDocService;
- import com.fasterxml.jackson.core.type.TypeReference;
- import com.google.common.base.Strings;
- import com.google.common.collect.Maps;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.util.StringUtils;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RestController;
- import javax.servlet.http.HttpServletRequest;
- import java.util.List;
- import java.util.Map;
- /**
- * @author zx
- * @version 1.0
- * 2018-05-15 09:31
- */
- @RestController
- @RequestMapping("/wx/custom")
- public class WxCusController {
- private static final Logger logger = LoggerFactory.getLogger(WxCusController.class);
- @Autowired
- private WxCbPayDocService wxCbPayDocService;
- /**
- *
- * @param request
- * @return
- */
- @RequestMapping(value = "/declarepayment")
- public ResponseMessage declarePayment(HttpServletRequest request){
- String data = request.getParameter("data");
- return new ResponseMessage.Builder()
- .setCode(ResponseStatus.SUCCESS.getItem())
- .setMsg("ok")
- .setData(data)
- .build();
- }
- /**
- * 支付单信息入库接口
- * @param request
- * @return
- */
- @RequestMapping(value = "/wxCbPay", method = RequestMethod.POST)
- public ResponseMessage addWxCbPayDoc(HttpServletRequest request) {
- logger.info("微信支付单信息入库接口请求开始");
- String data = request.getParameter("data");
- // 检查参数是否齐全
- if (Strings.isNullOrEmpty(data)) {
- return new ResponseMessage.Builder().setCode(ResponseStatus.ERROR.getItem())
- .setMsg("微信支付推单业务数据为空").build();
- }
- logger.info("微信支付单信息入库接口请求数据:【{}】",data);
- //解析数据
- List<WxCbPayDoc> wxCbPayDocList = JacksonUtil.fromListJson(data, new TypeReference<List<WxCbPayDoc>>(){});
- WxCbPayDoc wxCbPayDoc = null;
- if (wxCbPayDocList != null && wxCbPayDocList.size() > 0){
- wxCbPayDoc = wxCbPayDocList.get(0);
- }
- //数据校验
- Map<String, Object> validate = MapBeanUtils.fromObject(wxCbPayDoc);
- Map<String, Object> beVerified = Maps.newHashMap();
- beVerified.put("merchSn", "商户编号");
- beVerified.put("merchName", "商户名称");
- beVerified.put("appid", "微信公众号ID");
- beVerified.put("mchId","微信支付商户号");
- beVerified.put("outTradeNo", "商户订单号");
- beVerified.put("transactionId","微信支付订单号");
- beVerified.put("customs","报送海关");
- beVerified.put("mchCustomsNo","商户海关备案号");
- beVerified.put("merchErpOrderSn","商户erp订单编号");
- ResponseMessage rst = Validator.isEmpty(beVerified, validate);
- if (ResponseStatus.ERROR.getItem().equals(rst.getCode())) {
- return rst;
- }
- //身份证如不为空则校验身份证格式是否正确
- if(StringUtils.hasText(wxCbPayDoc.getCertId()) && !Validator.isCardNo(wxCbPayDoc.getCertId())){
- return new ResponseMessage.Builder().setCode(ResponseStatus.ERROR.getItem()).setMsg("身份证格式不正确,请填写正确的号码!").build();
- }
- return wxCbPayDocService.addWxCbPayDoc(wxCbPayDoc);
- }
- }
|