| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package com.izouma.nineth.web;
- import com.github.binarywang.wxpay.constant.WxPayConstants;
- import com.github.binarywang.wxpay.exception.WxPayException;
- import com.izouma.nineth.service.AssetService;
- import com.izouma.nineth.service.OrderService;
- import lombok.AllArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.codec.EncoderException;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.*;
- import java.util.regex.Pattern;
- @Controller
- @RequestMapping("/payOrder")
- @Slf4j
- @AllArgsConstructor
- public class OrderPayController {
- private final OrderService orderService;
- private final AssetService assetService;
- @RequestMapping(value = "/alipay", method = RequestMethod.GET)
- public String payOrderAlipay(Long id, Model model, @RequestHeader(value = "User-Agent") String userAgent) {
- detectUA(userAgent, model);
- orderService.payOrderAlipay(id, model);
- return "AlipayHtml";
- }
- @RequestMapping(value = "/weixin_h5")
- public String payOrderWeixinH5(Long id, Model model, @RequestHeader(value = "User-Agent") String userAgent) throws EncoderException, WxPayException {
- detectUA(userAgent, model);
- model.addAttribute("payUrl", orderService.payOrderWeixin(id, WxPayConstants.TradeType.JSAPI, null));
- return "WeixinPayHtml";
- }
- @RequestMapping(value = "/weixin")
- @ResponseBody
- public Object payOrderWeixin(@RequestParam Long id, @RequestParam String openId) throws WxPayException, EncoderException {
- return orderService.payOrderWeixin(id, WxPayConstants.TradeType.JSAPI, openId);
- }
- @RequestMapping(value = "/gift/alipay", method = RequestMethod.GET)
- public String payGiftOrderAlipay(Long id, Model model, @RequestHeader(value = "User-Agent") String userAgent) {
- detectUA(userAgent, model);
- orderService.payOrderAlipay(id, model);
- return "AlipayHtml";
- }
- @RequestMapping(value = "/gift/weixin_h5")
- public String payGiftOrderWeixinH5(Long id, Model model, @RequestHeader(value = "User-Agent") String userAgent) throws EncoderException, WxPayException {
- detectUA(userAgent, model);
- model.addAttribute("payUrl", assetService.payOrderWeixin(id, WxPayConstants.TradeType.JSAPI, null));
- return "WeixinPayHtml";
- }
- public void detectUA(String ua, Model model) {
- boolean weixin = Pattern.matches(".*(micromessenger).*", ua.toLowerCase());
- boolean ios = Pattern.matches(".*(ipad|iphone).*", ua.toLowerCase());
- boolean android = Pattern.matches(".*(android).*", ua.toLowerCase());
- model.addAttribute("weixin", weixin);
- model.addAttribute("ios", ios);
- model.addAttribute("android", android);
- }
- @RequestMapping(value = "/gift/weixin")
- @ResponseBody
- public Object payGiftOrderWeixin(@RequestParam Long id, @RequestParam String openId) throws WxPayException, EncoderException {
- return assetService.payOrderWeixin(id, WxPayConstants.TradeType.JSAPI, openId);
- }
- }
|