|
@@ -3,11 +3,6 @@ package com.miaxis.app.controller.wx;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
-import com.github.wxpay.sdk.WXPay;
|
|
|
-import com.github.wxpay.sdk.WXPayConfig;
|
|
|
-import com.github.wxpay.sdk.WXPayConstants;
|
|
|
-import com.github.wxpay.sdk.WXPayUtil;
|
|
|
-import com.miaxis.common.config.WxPayConfigImpl;
|
|
|
import com.miaxis.common.config.WxpayConfig;
|
|
|
import com.miaxis.common.constant.Constants;
|
|
|
import com.miaxis.common.core.controller.BaseController;
|
|
@@ -17,13 +12,10 @@ import com.miaxis.common.core.domain.entity.UserInfo;
|
|
|
import com.miaxis.common.enums.OrderStatusEnum;
|
|
|
import com.miaxis.common.exception.CustomException;
|
|
|
import com.miaxis.common.utils.SecurityUtils;
|
|
|
-import com.miaxis.common.utils.XmlUtil;
|
|
|
import com.miaxis.common.utils.uuid.CommonUtils;
|
|
|
import com.miaxis.system.service.ISysDictDataService;
|
|
|
-import com.miaxis.wx.domain.WxExtract;
|
|
|
import com.miaxis.wx.domain.WxOrder;
|
|
|
import com.miaxis.wx.dto.WxOrderDTO;
|
|
|
-import com.miaxis.wx.service.IWxExtractService;
|
|
|
import com.miaxis.wx.service.IWxOrderService;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
@@ -48,8 +40,6 @@ import java.io.File;
|
|
|
import java.security.PrivateKey;
|
|
|
import java.security.Signature;
|
|
|
import java.util.Base64;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.TreeMap;
|
|
|
|
|
|
import static com.miaxis.common.utils.OrderCodeFactory.getOrderCode;
|
|
|
|
|
@@ -72,16 +62,14 @@ public class WxController extends BaseController {
|
|
|
@Autowired
|
|
|
private WxpayConfig wxpayConfig;
|
|
|
|
|
|
- @Autowired
|
|
|
- private IWxOrderService wxOrderService;
|
|
|
-
|
|
|
|
|
|
@Autowired
|
|
|
private ISysDictDataService dictDataService;
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
- private IWxExtractService wxExtractService;
|
|
|
+ private IWxOrderService wxOrderService;
|
|
|
+
|
|
|
|
|
|
@Value("${app.appid}")
|
|
|
private String appid;
|
|
@@ -221,49 +209,14 @@ public class WxController extends BaseController {
|
|
|
if (amount > 200 && amount <0){
|
|
|
throw new CustomException("提现金额必须在200以内");
|
|
|
}
|
|
|
-
|
|
|
- return Response.success(withdrawal(amount));
|
|
|
+ wxOrderService.wxwithdrawal(amount);
|
|
|
+ return Response.success();
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
- private String withdrawal(Integer amount) throws Exception {
|
|
|
-
|
|
|
- Map<String, String> sortMap = new TreeMap<String, String>();
|
|
|
- sortMap.put("mch_appid",appid);
|
|
|
- sortMap.put("mchid",wxpayConfig.getMerchantId());
|
|
|
- sortMap.put("nonce_str",RandomStringUtils.randomAlphanumeric(32));
|
|
|
- sortMap.put("partner_trade_no",getOrderCode(null));
|
|
|
- sortMap.put("openid",SecurityUtils.getLoginUser().getStudent().getOpenid());
|
|
|
- sortMap.put("check_name","NO_CHECK");
|
|
|
- sortMap.put("amount",String.valueOf(amount));
|
|
|
- sortMap.put("desc","用户提现");
|
|
|
-
|
|
|
- WXPayConfig config = new WxPayConfigImpl();
|
|
|
- String sign = WXPayUtil.generateSignature(sortMap, config.getKey(), WXPayConstants.SignType.MD5);
|
|
|
- sortMap.put("sign", sign);
|
|
|
- WXPay pay = new WXPay(config);
|
|
|
-
|
|
|
- String url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers";
|
|
|
- Map<String, String> resMap;
|
|
|
- String xmlStr = pay.requestWithCert(url, sortMap, config.getHttpConnectTimeoutMs(), config.getHttpReadTimeoutMs());
|
|
|
- resMap = XmlUtil.xmlToMap(xmlStr);
|
|
|
- if (!"SUCCESS".equals(resMap.get("return_code"))||!"SUCCESS".equals(resMap.get("result_code"))){
|
|
|
- throw new CustomException(resMap.get("return_msg"));
|
|
|
- }
|
|
|
- //新增提现记录
|
|
|
- WxExtract wxExtract = new WxExtract();
|
|
|
- wxExtract.setOpenid(SecurityUtils.getLoginUser().getStudent().getOpenid());
|
|
|
- wxExtract.setExtractPrice(amount);
|
|
|
- wxExtract.setPartnerTradeNo(resMap.get("partner_trade_no"));
|
|
|
- wxExtract.setStatus("1");
|
|
|
- wxExtractService.save(wxExtract);
|
|
|
-
|
|
|
- return resMap.get("return_msg");
|
|
|
- }
|
|
|
-
|
|
|
private HttpPost initHttpPost() {
|
|
|
HttpPost httpPost = new HttpPost(wxpayConfig.getV3url());
|
|
|
httpPost.addHeader("Accept", "application/json");
|