123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- package com.miaxis.app.controller.film;
- import com.alibaba.fastjson.JSONObject;
- import com.miaxis.common.config.WxpayConfig;
- import com.miaxis.common.constant.Constants;
- import com.miaxis.common.core.controller.BaseController;
- import com.miaxis.common.core.domain.Response;
- import com.miaxis.common.exception.CustomException;
- import com.miaxis.common.utils.SecurityUtils;
- import com.miaxis.feign.dto.FilmDTO;
- import com.miaxis.system.service.ISysConfigService;
- import com.miaxis.system.service.ISysDictDataService;
- import com.miaxis.wx.domain.WxOrder;
- import com.miaxis.wx.service.IWxOrderService;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import io.swagger.annotations.ApiParam;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.http.client.HttpClient;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.web.bind.annotation.*;
- import java.io.IOException;
- import java.util.Arrays;
- import static com.miaxis.common.constant.Constants.FILM_BLACK_LIST;
- /**
- * 【小程序-客户信息】Controller
- *
- * @author miaxis
- * @date 2021-03-10
- */
- @RestController
- @RequiredArgsConstructor
- @RequestMapping(Constants.STUDENT_PREFIX+"/wx/wxpay")
- @Api(tags = {"【小程序-电影】"})
- @Slf4j
- public class FilmController extends BaseController {
- @Autowired
- private HttpClient httpClient;
- @Autowired
- private WxpayConfig wxpayConfig;
- @Autowired
- private IWxOrderService wxOrderService;
- @Autowired
- private ISysConfigService configService;
- @Autowired
- private ISysDictDataService dictDataService;
- @Value("${app.appid}")
- private String appid;
- @Value("${wxpay.notifyUrl}")
- private String notifyUrl ;
- /**
- * 以form表单形式提交数据,发送post请求
- * @explain
- * 1.请求头:httppost.setHeader("Content-Type","application/x-www-form-urlencoded")
- * 2.提交的数据格式:key1=value1&key2=value2...
- * @return 服务器返回数据
- */
- @PostMapping(value = "/fileCommonApi")
- @ApiOperation("电影通用接口")
- public Response<JSONObject> httpPostWithForm(@RequestBody FilmDTO filmDTO) throws IOException {
- //检查api
- if (Arrays.asList(FILM_BLACK_LIST).contains(filmDTO.getUrl())){
- throw new CustomException("该api不允许用户直接访问");
- }
- // 用于接收返回的结果
- String resultData = wxOrderService.excuteFilmApi(filmDTO);
- return Response.success(JSONObject.parseObject(resultData));
- }
- /**
- * 获取电影订单详细信息
- */
- @GetMapping(value = "/{outTradeNo}")
- @ApiOperation("获取电影订单详细信息")
- public Response<WxOrder> getInfo(
- @ApiParam(name = "outTradeNo", value = "电影订单参数", required = true)
- @PathVariable("outTradeNo") String outTradeNo
- ){
- WxOrder wxOrder = wxOrderService.getByOutTradeNo(outTradeNo);
- if (!wxOrder.getOpenid().equals(SecurityUtils.getLoginUser().getStudent().getOpenid())){
- throw new CustomException("该用户无访问此订单权限");
- }
- return Response.success(wxOrder);
- }
- // /**
- // * 微信支付查单接口
- // */
- // @GetMapping(value = "/wxorder/{outTradeNo}")
- // @ApiOperation("根据订单号查询订单状态")
- // public Response<String> getOrderInfo(
- // @ApiParam(name = "outTradeNo", value = "商户订单号", required = true)
- // @PathVariable("outTradeNo") String outTradeNo
- // ) throws IOException {
- // HttpGet get = new HttpGet("https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/"
- // +outTradeNo+"?mchid="+wxpayConfig.getMerchantId());
- // get.addHeader("Accept", "application/json");
- // HttpResponse response = httpClient.execute(get);
- // String bodyAsString = EntityUtils.toString(response.getEntity());
- // JSONObject jsonObject = JSONObject.parseObject(bodyAsString);
- // int statusCode = response.getStatusLine().getStatusCode();
- // if (statusCode == 200) {
- // return Response.success(jsonObject.getString("trade_state"));
- // } else {
- // throw new CustomException(EntityUtils.toString(response.getEntity()));
- // }
- // }
- }
|