|
|
@@ -1,6 +1,7 @@
|
|
|
package com.uas.service.donate.controller;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.github.binarywang.utils.qrcode.QrcodeUtils;
|
|
|
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
|
|
|
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
|
|
|
import com.github.binarywang.wxpay.bean.result.WxPayOrderQueryResult;
|
|
|
@@ -8,6 +9,7 @@ import com.github.binarywang.wxpay.bean.result.WxPayUnifiedOrderResult;
|
|
|
import com.github.binarywang.wxpay.constant.WxPayConstants;
|
|
|
import com.github.binarywang.wxpay.exception.WxPayException;
|
|
|
import com.github.binarywang.wxpay.util.SignUtils;
|
|
|
+import com.uas.dfs.service.FileClient;
|
|
|
import com.uas.platform.core.util.HttpUtil;
|
|
|
import com.uas.service.donate.api.WxPayApi;
|
|
|
import com.uas.service.donate.config.WxConfig;
|
|
|
@@ -15,7 +17,6 @@ import com.uas.service.donate.model.ProjectRecode;
|
|
|
import com.uas.service.donate.model.WechatOrder;
|
|
|
import com.uas.service.donate.service.ProjectRecodeService;
|
|
|
import com.uas.service.donate.service.WechatOrderService;
|
|
|
-import com.uas.service.donate.util.QrcodeUtils;
|
|
|
import com.uas.service.donate.util.StringUtils;
|
|
|
import com.uas.service.donate.util.WxCheckoutUtil;
|
|
|
import org.apache.commons.io.IOUtils;
|
|
|
@@ -43,6 +44,9 @@ import java.util.Date;
|
|
|
@RequestMapping("/wxpay")
|
|
|
public class WxpayController {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private FileClient fileClient;
|
|
|
+
|
|
|
@Autowired
|
|
|
protected HttpServletRequest request;
|
|
|
|
|
|
@@ -70,17 +74,17 @@ public class WxpayController {
|
|
|
*/
|
|
|
@ResponseBody
|
|
|
@RequestMapping(value = "/pcPay", method = RequestMethod.POST)
|
|
|
- public void pcPay(@RequestParam("jsonStr") String jsonStr, HttpServletRequest request, HttpServletResponse response) throws Exception {
|
|
|
+ public String pcPay(@RequestParam("jsonStr") String jsonStr, HttpServletRequest request, HttpServletResponse response) throws Exception {
|
|
|
ProjectRecode projectRecode= null;
|
|
|
try {
|
|
|
projectRecode = this.createProjectRecode(jsonStr);
|
|
|
} catch (Exception e) {
|
|
|
response.getWriter().write(e.getMessage());
|
|
|
- return;
|
|
|
+ return null;
|
|
|
}
|
|
|
|
|
|
WxPayUnifiedOrderRequest wxPayUnifiedOrderRequest = createWxPayUnifiedOrderRequest(request, projectRecode, WxPayConstants.TradeType.NATIVE);
|
|
|
- unifiedOrder(wxPayUnifiedOrderRequest);
|
|
|
+ return unifiedOrder(wxPayUnifiedOrderRequest);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -177,16 +181,22 @@ public class WxpayController {
|
|
|
/*H5支付开发步骤:https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_4*/
|
|
|
String mwebUrl = wxPayUnifiedOrderResult.getMwebUrl() + "&redirect_url=" + URLEncoder.encode(redirectUrl,"UTF-8");
|
|
|
return mwebUrl;
|
|
|
+ } else if (WxPayConstants.TradeType.NATIVE.equals(wxPayUnifiedOrderRequest.getTradeType())) {
|
|
|
+ //扫码支付
|
|
|
+ //QrcodeUtils.encode(wxPayUnifiedOrderResult.getCodeURL(),response.getOutputStream());
|
|
|
+ byte[] bytes = QrcodeUtils.createQrcode(wxPayUnifiedOrderResult.getCodeURL(), 400, null);
|
|
|
+ String path=fileClient.upload(bytes, bytes.length,"jpg",null);
|
|
|
+ return path;
|
|
|
+ } else if (WxPayConstants.TradeType.JSAPI.equals(wxPayUnifiedOrderRequest.getTradeType())) {
|
|
|
+ //公众号支付
|
|
|
+ return wxPayUnifiedOrderResult.getPrepayId();
|
|
|
}
|
|
|
-
|
|
|
- QrcodeUtils.encode(wxPayUnifiedOrderResult.getCodeURL(),response.getOutputStream());
|
|
|
- return wxPayUnifiedOrderResult.getPrepayId();
|
|
|
//byte[] arr = wxPayApi.createScanPayQrcodeMode2(wxPayUnifiedOrderResult.getCodeURL(),null,null);
|
|
|
} catch (WxPayException e) {
|
|
|
logger.error("微信支付失败!订单号:{},原因:{}", wxPayUnifiedOrderRequest.getOutTradeNo(), e.getMessage());
|
|
|
e.printStackTrace();
|
|
|
- return null;
|
|
|
}
|
|
|
+ return null;
|
|
|
|
|
|
}
|
|
|
|