|
@@ -0,0 +1,71 @@
|
|
|
+package com.yonge.cooleshow.student.controller.open;
|
|
|
+
|
|
|
+import cn.hutool.extra.servlet.ServletUtil;
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.huifu.adapay.core.AdapayCore;
|
|
|
+import com.huifu.adapay.core.util.AdapaySign;
|
|
|
+import com.microsvc.toolkit.common.response.template.R;
|
|
|
+import com.microsvc.toolkit.common.webportal.exception.BizException;
|
|
|
+import com.microsvc.toolkit.config.jwt.utils.JwtUserInfo;
|
|
|
+import com.microsvc.toolkit.middleware.payment.common.api.PaymentServiceContext;
|
|
|
+import com.microsvc.toolkit.middleware.payment.common.api.entity.PaymentResp;
|
|
|
+import com.microsvc.toolkit.middleware.payment.common.api.entity.RefundResp;
|
|
|
+import com.yeepay.g3.sdk.yop.encrypt.DigitalEnvelopeDTO;
|
|
|
+import com.yeepay.g3.sdk.yop.utils.DigitalEnvelopeUtils;
|
|
|
+import com.yeepay.g3.sdk.yop.utils.RSAKeyUtils;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.PaymentMerchantConfig;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.TenantMember;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.UserOrderRefundBill;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.*;
|
|
|
+import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
|
|
|
+import com.yonge.cooleshow.common.enums.EPayerType;
|
|
|
+import com.yonge.cooleshow.student.vo.UserPaymentOrderVo;
|
|
|
+import io.swagger.annotations.Api;
|
|
|
+import io.swagger.annotations.ApiImplicitParam;
|
|
|
+import io.swagger.annotations.ApiImplicitParams;
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.validation.annotation.Validated;
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
+
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.security.PrivateKey;
|
|
|
+import java.security.PublicKey;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.Objects;
|
|
|
+
|
|
|
+@Slf4j
|
|
|
+@RestController
|
|
|
+@RequestMapping("/open/userOrder")
|
|
|
+@Api(tags = "开放权限接口-支付回调")
|
|
|
+public class UserPaymentClient {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private UserPaymentCoreService userPaymentCoreService;
|
|
|
+
|
|
|
+ @ApiOperation(value = "用户付款", notes = "用户付款")
|
|
|
+ @PostMapping("/executePayment/v2")
|
|
|
+ public R<UserPaymentOrderWrapper.PaymentReq> executePayment(@Validated @RequestBody UserPaymentOrderVo.PaymentReqConfig config, HttpServletRequest request) {
|
|
|
+ // 设置下单用户信息
|
|
|
+
|
|
|
+
|
|
|
+ // 用户下单请求
|
|
|
+ UserPaymentOrderWrapper.PaymentOrderReqConfig reqConfig = UserPaymentOrderWrapper.PaymentOrderReqConfig.from(config.jsonString());
|
|
|
+
|
|
|
+ reqConfig.setIp(ServletUtil.getClientIP(request));
|
|
|
+ // 创建用户支付数据
|
|
|
+ UserPaymentOrderWrapper.PaymentReq paymentConfig = userPaymentCoreService.executePayment(JwtUserInfo.builder()
|
|
|
+ .userId(config.getUserId()).clientType(ClientEnum.TENANT.getCode()).build(), reqConfig);
|
|
|
+ if (Objects.isNull(paymentConfig)) {
|
|
|
+ throw BizException.from("付款失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ return R.from(paymentConfig);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|