|
@@ -6,15 +6,16 @@ import com.zanxiang.common.enums.DeleteEnum;
|
|
import com.zanxiang.common.enums.HttpStatusEnum;
|
|
import com.zanxiang.common.enums.HttpStatusEnum;
|
|
import com.zanxiang.common.exception.BaseException;
|
|
import com.zanxiang.common.exception.BaseException;
|
|
import com.zanxiang.module.util.JsonUtil;
|
|
import com.zanxiang.module.util.JsonUtil;
|
|
-import com.zanxiang.module.util.bean.BeanUtil;
|
|
|
|
import com.zanxiang.mybatis.entity.OrderPayParam;
|
|
import com.zanxiang.mybatis.entity.OrderPayParam;
|
|
import com.zanxiang.sdk.constant.WxPayConstants;
|
|
import com.zanxiang.sdk.constant.WxPayConstants;
|
|
import com.zanxiang.sdk.domain.bo.ProductPayAttachParamBO;
|
|
import com.zanxiang.sdk.domain.bo.ProductPayAttachParamBO;
|
|
import com.zanxiang.sdk.domain.bo.ProductPayParamBO;
|
|
import com.zanxiang.sdk.domain.bo.ProductPayParamBO;
|
|
import com.zanxiang.sdk.domain.bo.WxPayConfigBO;
|
|
import com.zanxiang.sdk.domain.bo.WxPayConfigBO;
|
|
import com.zanxiang.sdk.domain.dto.GamePayWayDTO;
|
|
import com.zanxiang.sdk.domain.dto.GamePayWayDTO;
|
|
|
|
+import com.zanxiang.sdk.domain.dto.PayApplicationDTO;
|
|
import com.zanxiang.sdk.domain.dto.PayMerchantDTO;
|
|
import com.zanxiang.sdk.domain.dto.PayMerchantDTO;
|
|
import com.zanxiang.sdk.service.OrderPayParamService;
|
|
import com.zanxiang.sdk.service.OrderPayParamService;
|
|
|
|
+import com.zanxiang.sdk.service.PayApplicationService;
|
|
import com.zanxiang.sdk.service.PayMerchantService;
|
|
import com.zanxiang.sdk.service.PayMerchantService;
|
|
import com.zanxiang.sdk.service.api.WxApiService;
|
|
import com.zanxiang.sdk.service.api.WxApiService;
|
|
import com.zanxiang.sdk.util.HttpUtil;
|
|
import com.zanxiang.sdk.util.HttpUtil;
|
|
@@ -88,13 +89,18 @@ public class WxPayService extends PayBaseService {
|
|
@Autowired
|
|
@Autowired
|
|
private PayMerchantService payMerchantService;
|
|
private PayMerchantService payMerchantService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private PayApplicationService payApplicationService;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public ResultMap create(ProductPayParamBO product) {
|
|
public ResultMap create(ProductPayParamBO product) {
|
|
this.attach = product.getAttach();
|
|
this.attach = product.getAttach();
|
|
//初始化配置
|
|
//初始化配置
|
|
- this.configInit(getPayConfig(product.getGameId(), product.getPayWay()));
|
|
|
|
|
|
+ this.configInit(getPayConfig(product.getGameId(), product.getPayWay(), product.getPayDevice()));
|
|
|
|
+ //支付方式
|
|
|
|
+ int payDevice = product.getPayDevice().intValue();
|
|
//不同的支付途径
|
|
//不同的支付途径
|
|
- switch (product.getPayDevice()) {
|
|
|
|
|
|
+ switch (payDevice) {
|
|
case 1:
|
|
case 1:
|
|
//PC
|
|
//PC
|
|
return this.pcPay(product);
|
|
return this.pcPay(product);
|
|
@@ -124,7 +130,7 @@ public class WxPayService extends PayBaseService {
|
|
log.info("回调参数中attach值为空");
|
|
log.info("回调参数中attach值为空");
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
- configInit(getPayConfig(attachBO.getGamePayWayId()));
|
|
|
|
|
|
+ configInit(gamePayWayService.getById(attachBO.getGamePayWayId()));
|
|
// 账号信息
|
|
// 账号信息
|
|
String key = config.getApiKey();
|
|
String key = config.getApiKey();
|
|
// 判断签名是否正确
|
|
// 判断签名是否正确
|
|
@@ -140,7 +146,7 @@ public class WxPayService extends PayBaseService {
|
|
String orderNo = packageParams.get("out_trade_no");
|
|
String orderNo = packageParams.get("out_trade_no");
|
|
log.info("微信订单号{}付款成功", orderNo);
|
|
log.info("微信订单号{}付款成功", orderNo);
|
|
if (paySuccess(attachBO.getOrderId(), String.valueOf(Float.parseFloat(packageParams.get("total_fee")) / 100),
|
|
if (paySuccess(attachBO.getOrderId(), String.valueOf(Float.parseFloat(packageParams.get("total_fee")) / 100),
|
|
- packageParams.get("transaction_id"), attachBO.getGamePayWayId())) {
|
|
|
|
|
|
+ packageParams.get("transaction_id"), attachBO.getGamePayWayId().toString())) {
|
|
// 通知微信.异步确认成功.必写.不然会一直通知后台.八次之后就认为交易失败了
|
|
// 通知微信.异步确认成功.必写.不然会一直通知后台.八次之后就认为交易失败了
|
|
xmlMap.put("return_code", "SUCCESS");
|
|
xmlMap.put("return_code", "SUCCESS");
|
|
xmlMap.put("return_msg", "OK");
|
|
xmlMap.put("return_msg", "OK");
|
|
@@ -222,7 +228,6 @@ public class WxPayService extends PayBaseService {
|
|
miniMap.put("timeStamp", createTime);
|
|
miniMap.put("timeStamp", createTime);
|
|
miniMap.put("nonceStr", nonceStr);
|
|
miniMap.put("nonceStr", nonceStr);
|
|
miniMap.put("package", successMap);
|
|
miniMap.put("package", successMap);
|
|
-
|
|
|
|
//保存订单支付参数
|
|
//保存订单支付参数
|
|
orderPayParamService.save(OrderPayParam.builder()
|
|
orderPayParamService.save(OrderPayParam.builder()
|
|
.orderId(product.getOutTradeNo())
|
|
.orderId(product.getOutTradeNo())
|
|
@@ -233,7 +238,6 @@ public class WxPayService extends PayBaseService {
|
|
.createTime(LocalDateTime.now())
|
|
.createTime(LocalDateTime.now())
|
|
.updateTime(LocalDateTime.now())
|
|
.updateTime(LocalDateTime.now())
|
|
.build());
|
|
.build());
|
|
-
|
|
|
|
//返回
|
|
//返回
|
|
return ResultMap.ok(miniMap);
|
|
return ResultMap.ok(miniMap);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
@@ -284,26 +288,21 @@ public class WxPayService extends PayBaseService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * 配置初始化
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- public void configInit(String obj) {
|
|
|
|
- this.config = JsonUtil.toObj(obj, WxPayConfigBO.class);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 配置初始化
|
|
|
|
- */
|
|
|
|
- public void configInit(GamePayWayDTO gamePayWayDTO) {
|
|
|
|
|
|
+ private void configInit(GamePayWayDTO gamePayWayDTO) {
|
|
|
|
+ //商户信息
|
|
PayMerchantDTO payMerchantDTO = payMerchantService.getByMerchantNo(gamePayWayDTO.getMerchantNo());
|
|
PayMerchantDTO payMerchantDTO = payMerchantService.getByMerchantNo(gamePayWayDTO.getMerchantNo());
|
|
- WxPayConfigBO payConfigBO = BeanUtil.copy(payMerchantDTO, WxPayConfigBO.class);
|
|
|
|
- //todo :
|
|
|
|
- // this.config = JsonUtil.toObj(obj, WxPayConfigBO.class);
|
|
|
|
|
|
+ WxPayConfigBO payConfigBO = JsonUtil.toObj(payMerchantDTO.getPayConfig(), WxPayConfigBO.class);
|
|
|
|
+ //支付应用信息
|
|
|
|
+ PayApplicationDTO payApplicationDTO = payApplicationService.getPayApplication(gamePayWayDTO.getAppId());
|
|
|
|
+ payConfigBO.setAppId(payApplicationDTO.getAppId());
|
|
|
|
+ payConfigBO.setAppSecret(payApplicationDTO.getAppSecret());
|
|
|
|
+ //赋值配置信息
|
|
|
|
+ this.config = payConfigBO;
|
|
|
|
+ log.error("初始化的支付配置信息, config : {}", JsonUtil.toString(this.config));
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public ResultMap synNotify(HttpServletRequest request) {
|
|
public ResultMap synNotify(HttpServletRequest request) {
|
|
- return null;
|
|
|
|
|
|
+ throw new BaseException("微信支付不存在同步回调!");
|
|
}
|
|
}
|
|
}
|
|
}
|