Commit ae6d9884 by jinxin

微信支付接口

parent 63b8ee92
......@@ -130,9 +130,24 @@ public class LicenceOrderApiServiceImpl implements LicenceOrderApiService {
@Override
public ServiceResponse<Boolean> qywxCallBack(String params) {
logger.info("接收企业微信回调参数:{}",params);
logger.info("接收企业微信回调参数:{}",JSON.toJSONString(params));
if(StrUtil.isBlank(params)){
return ServiceResponse.success(false);
}
JSONObject object = JSONObject.parseObject(params, JSONObject.class);
String infoType = object.getString("infoType");
String openCorpId = object.getString("openCorpId");
String orderId = object.getString("orderId");
String timeStamp = object.getString("timeStamp");
Integer orderStatus = object.getInteger("orderStatus");
String buyerUserId = object.getString("buyerUserId");
if ("license_pay_success".equals(infoType)){
//支付回调
return null;
}
if ("license_refund".equals(infoType)){
//退款回调
}
return ServiceResponse.success(true);
}
}
......@@ -3,11 +3,14 @@ package com.gic.haoban.manage.web.controller.licence;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.DateUtil;
import com.gic.commons.util.PageHelperUtils;
import com.gic.commons.util.ToolUtil;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.enterprise.api.dto.EnterpriseDTO;
import com.gic.enterprise.api.service.EnterpriseService;
......@@ -25,6 +28,12 @@ import com.gic.haoban.manage.web.qo.licence.LicenceOrderPageQO;
import com.gic.haoban.manage.web.qo.licence.LicenceOrderQO;
import com.gic.haoban.manage.web.vo.licence.LicenceOrderPageVO;
import com.gic.haoban.manage.web.vo.licence.LicenceOrderVO;
import com.gic.marketing.api.dto.AccountChargeInfoDTO;
import com.gic.marketing.api.enums.AccountChargeSceneEnum;
import com.gic.marketing.api.service.EnterpriseAccountInfoApiService;
import com.gic.thirdparty.api.dto.ScanPayReqDataDTO;
import com.gic.thirdparty.api.service.Pay4WXService;
import com.gic.thirdparty.api.service.RechargeCenterService;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
......@@ -34,7 +43,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* 企业微信许可账号购买
......@@ -53,7 +65,12 @@ public class LicenceOrderController {
private EnterpriseService enterpriseService;
@Autowired
private WxEnterpriseApiService wxEnterpriseApiService;
@Autowired
private EnterpriseAccountInfoApiService enterpriseAccountInfoApiService;
@Autowired
private Pay4WXService pay4WXService;
@Autowired
private RechargeCenterService rechargeCenterService;
/**
* 查询订单详情
*/
......@@ -156,15 +173,62 @@ public class LicenceOrderController {
/**
* 支付订单
*/
@RequestMapping("licence-order-pay")
public RestResponse<Boolean> payLicenceOrder(@RequestParam Long orderId) {
@RequestMapping("licence-order-pay-1")
public RestResponse<Map<String, Object>> payLicenceOrder(@RequestParam Long orderId,@RequestParam(defaultValue = "0") int accountType) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
if (loginUser == null || StringUtils.isBlank(loginUser.getEnterpriseId())){
return RestResponse.failure(Convert.toStr(HaoBanErrCode.ERR_4.getCode()),HaoBanErrCode.ERR_4.getMsg());
}
Boolean result = licenceOrderApiService.payLicenceOrder(orderId).getResult();
return RestResponse.successResult(result);
LicenceOrderDTO result = licenceOrderApiService.getLicenceOrderDetail(orderId, 1).getResult();
if (result == null){
return RestResponse.failure(Convert.toStr(HaoBanErrCode.ERR_5.getCode()),HaoBanErrCode.ERR_5.getMsg());
}
Integer money = result.getPrice();
// 交易订单号
String transactionCode = ToolUtil.randomStringByTime();
ScanPayReqDataDTO scanPayReqData = new ScanPayReqDataDTO("好办平台企业微信许可账号购买", loginUser.getEnterpriseId(),
transactionCode, money, DateUtil.dateToStr(new Date(), DateUtil.FORMAT_DATETIME_14), "",
"NATIVE");
String accountDepartId = "";
if(accountType==0) {
AccountChargeInfoDTO dto = this.enterpriseAccountInfoApiService.getAccountDeparment(loginUser.getEnterpriseId(), AccountChargeSceneEnum.creator_only, null , loginUser.getClerkId()) ;
logger.info("充值账号信息={}",dto);
accountDepartId = dto.getAccountDepartId() ;
}
if(accountType==1) {
accountDepartId = "1" ;
}
scanPayReqData.setAccountType(accountType);
scanPayReqData.setAccountDepartId(accountDepartId);
//二维码
String url = pay4WXService.createPrePaymentOrderForWX(scanPayReqData);
Map<String, Object> map = new HashMap<String, Object>();
map.put("transactionCode", transactionCode);
map.put("url", url);
map.put("money",money);
// TODO: 2023/3/21 记录订单号transactionCode
return RestResponse.successResult(map);
}
/**
* 支付订单-判断是否支付成功
*/
@RequestMapping("licence-order-pay-2")
public RestResponse<Boolean> payLicenceOrder2(@RequestParam String transactionCode) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
if (loginUser == null || StringUtils.isBlank(loginUser.getEnterpriseId())){
return RestResponse.failure(Convert.toStr(HaoBanErrCode.ERR_4.getCode()),HaoBanErrCode.ERR_4.getMsg());
}
if (StrUtil.isBlank(transactionCode)){
return RestResponse.failure(Convert.toStr(HaoBanErrCode.ERR_5.getCode()),HaoBanErrCode.ERR_5.getMsg());
}
Map<String, Object> params = new HashMap<String, Object>();
params.put("enterpriseId", loginUser.getEnterpriseId());
params.put("out_trade_no", transactionCode);
boolean flag = rechargeCenterService.isRechargeSuccess(params);
logger.info("定时刷新(判断是否充值成功) FLAG====> [{}]", flag);
return RestResponse.successResult(flag);
}
/**
* 查询企业品牌名称
*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment