|
- package com.simple.controller;
-
- import com.simple.common.ErrorCode;
- import com.simple.enums.EnumPayStatus;
- import com.simple.enums.EnumPayWay;
- import com.simple.exception.BizMessageException;
- import com.simple.exception.MallinkException;
- import com.simple.pay.WxPayment;
- import com.simple.utils.IPUtil;
- import org.apache.log4j.Logger;
- import org.apache.commons.io.IOUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.util.Assert;
- import org.springframework.web.bind.annotation.*;
-
- import com.github.pagehelper.PageInfo;
- import com.simple.common.Result;
- import com.simple.common.ResultData;
-
- import com.simple.domain.po.WxPayOrder;
- import com.simple.service.WxPayOrderService;
- import io.swagger.annotations.ApiImplicitParam;
- import io.swagger.annotations.ApiImplicitParams;
- import io.swagger.annotations.ApiOperation;
-
- import javax.servlet.http.HttpServletRequest;
- import java.util.Map;
-
- @RestController
- @RequestMapping("wxPayOrder")
- public class WxPayOrderController extends BaseController {
-
- private Logger logger = Logger.getLogger(WxPayOrderController.class);
-
- @Autowired
- private WxPayOrderService wxPayOrderService;
-
- @ApiOperation(value = "发起微信小程序支付订单")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "cUserId", value = "用户id", required = true, dataType = "Long"),
- @ApiImplicitParam(name = "orderId", value = "订单ID", required = true, dataType = "Long"),
- @ApiImplicitParam(name = "payVendor", value = "支付发起渠道:0-微信小程序", defaultValue = "0",required = false, dataType = "Integer")
- })
- @RequestMapping(value = "/create", method = RequestMethod.POST)
- public ResultData _create(WxPayOrder record, HttpServletRequest request) throws Exception {
- logger.info("payment wechat, order create, param : " + record.toString());
- try {
- record.setIp(IPUtil.getIpAddr(request));
- return wxPayOrderService.createPayOrder(record, EnumPayWay.PAY_WAY_WECHAT);
- } catch (MallinkException e) {
- logger.error("payment wechat, order create error, req 2: " + record.toString() + ", e:" + e.getMessage());
- return new ResultData(e.getErrorCode(), e.getMessage());
- } catch (Exception e) {
- logger.error("payment wechat, order create error, req 3: " + record.toString() + ", e:" + e.getMessage());
- }
- return new ResultData(ErrorCode.PAYORDER_ERROR.getCode(), ErrorCode.PAYORDER_ERROR.getMessage());
- }
-
- /**
- *
- * @return 接收微信异步通知
- * @throws Exception 可能产生的任何异常
- */
- @RequestMapping(value = "/notify", method = RequestMethod.POST)
- public String __doNotify(HttpServletRequest request) throws Exception {
- Map<String, String> paramMap = null;
- String response;
- try {
- String xml = IOUtils.toString(request.getInputStream());
- paramMap = WxPayment.xmlToMap(xml);
- logger.info("payment wxpay, notify, param: " + paramMap.toString() );
- response = wxPayOrderService.notify(paramMap, EnumPayWay.PAY_WAY_WEAPP);
- logger.info("payment wxpay, notify success, req : " + paramMap.toString() + ", resp: " + response.toString());
- return response;
- } catch (BizMessageException e) {
- logger.error("payment wxpay, notify error, req: " + paramMap.toString() + ", e:" + e.getLocalizedMessage());
- return e.getMessage();
- } catch (MallinkException e) {
- logger.error("payment wxpay, notify error, req: " + paramMap.toString() + ", e:" +e.getLocalizedMessage());
- return e.getMessage();
- } catch (Exception e) {
- logger.error("payment wxpay, order create error, req: " + paramMap.toString() + ", e: " + e.getMessage());
- return e.getMessage();
- }
- }
-
- /**
- *
- * @return 同步回调(订单状态主动检查)
- * @throws Exception 可能产生的任何异常
- */
- @RequestMapping(value = "callback", method = {RequestMethod.GET, RequestMethod.POST})
- public String __doCallback(HttpServletRequest request) throws Exception {
-
- logger.info("payment wxpay, callback,request:" + request.toString());
-
- return "\n" +
- "\n" +
- "<xml>\n" +
- "\n" +
- " <return_code><![CDATA[SUCCESS]]></return_code>\n" +
- " <return_msg><![CDATA[OK]]></return_msg>\n" +
- "</xml>\n";
- }
-
- @ApiOperation("分页列表接口")
- @GetMapping("list")
- @ApiImplicitParams({
- @ApiImplicitParam(name="pageNum",value="页数",dataType="int", paramType = "query",required=true),
- @ApiImplicitParam(name="pageSize",value="每页条数",dataType="int", paramType = "query",required=true)})
- public ResultData list(@ModelAttribute WxPayOrder wxPayOrder,Integer pageNum, Integer pageSize) {
- if (null == wxPayOrder) wxPayOrder = new WxPayOrder();
- final PageInfo<WxPayOrder> page = wxPayOrderService.listAsPage(wxPayOrder, pageNum, pageSize);
- return new ResultData(page);
- }
-
- @ApiOperation("新增接口")
- @PostMapping("add")
- public ResultData add(@RequestBody WxPayOrder wxPayOrder) {
- //Assert.notNull(wxPayOrder.getName(), "角色名不能为空");
- //Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名");
- wxPayOrderService.saveOrUpdate(wxPayOrder);
- return new ResultData();
- }
-
- @ApiOperation("根据id更新接口")
- @PostMapping("update")
- public ResultData update(@RequestBody WxPayOrder wxPayOrder) {
- wxPayOrderService.saveOrUpdate(wxPayOrder);
- return new ResultData();
- }
-
- @ApiOperation("根据id删除接口")
- @GetMapping("/del")
- @ApiImplicitParam(name="id",value="id",dataType="Long", paramType = "query",required=true)
- public ResultData delete(Long id) {
- wxPayOrderService.deleteById(id);
- return new ResultData(Result.SUCCESS, "删除成功", null);
- }
-
- @ApiOperation("根据id查询接口")
- @GetMapping("/findById")
- @ApiImplicitParam(name="id",value="id",dataType="Long", paramType = "query",required=true)
- public ResultData findById(Long id) {
- return new ResultData(Result.SUCCESS,"查询成功",wxPayOrderService.getById(id));
- }
-
-
-
- }
|