Ver código fonte

feat : 接口对接调试修改

bilingfeng 2 anos atrás
pai
commit
fe287966b8

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/LoginController.java

@@ -33,9 +33,9 @@ public class LoginController {
     @Autowired
     @Autowired
     private UserTokenService userTokenService;
     private UserTokenService userTokenService;
 
 
+    @UnSignCheck
     @ApiOperation(value = "登录凭证验证")
     @ApiOperation(value = "登录凭证验证")
     @GetMapping("/token/check")
     @GetMapping("/token/check")
-    @UnSignCheck
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Long.class)})
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Long.class)})
     public ResultVO userTokenCheck(@RequestParam Long gameId, @RequestParam Long userId, @RequestParam String token,
     public ResultVO userTokenCheck(@RequestParam Long gameId, @RequestParam Long userId, @RequestParam String token,
                                    @RequestParam String sign) {
                                    @RequestParam String sign) {

+ 12 - 19
game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/PayController.java

@@ -1,10 +1,10 @@
 package com.zanxiang.sdk.controller;
 package com.zanxiang.sdk.controller;
 
 
 import com.zanxiang.common.domain.ResultMap;
 import com.zanxiang.common.domain.ResultMap;
-import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.enums.PayWayEnum;
 import com.zanxiang.common.enums.PayWayEnum;
-import com.zanxiang.common.utils.IpUtils;
 import com.zanxiang.common.utils.StringUtils;
 import com.zanxiang.common.utils.StringUtils;
+import com.zanxiang.sdk.annotation.UnSignCheck;
+import com.zanxiang.sdk.annotation.ValidLogin;
 import com.zanxiang.sdk.domain.bo.PlatformOrderBO;
 import com.zanxiang.sdk.domain.bo.PlatformOrderBO;
 import com.zanxiang.sdk.domain.bo.ProductPayParamBO;
 import com.zanxiang.sdk.domain.bo.ProductPayParamBO;
 import com.zanxiang.sdk.domain.params.ProductPayParam;
 import com.zanxiang.sdk.domain.params.ProductPayParam;
@@ -22,8 +22,6 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.IOException;
-import java.math.BigDecimal;
-import java.util.Objects;
 
 
 /**
 /**
  * 支付公共入口
  * 支付公共入口
@@ -45,25 +43,17 @@ public class PayController {
 
 
     @ApiOperation(value = "支付参数生成")
     @ApiOperation(value = "支付参数生成")
     @PostMapping(value = "/create")
     @PostMapping(value = "/create")
-    public ResultMap create(@Validated @RequestBody ProductPayParam product, UserData userData, HttpServletRequest request) {
+    public ResultMap create(@Validated @RequestBody ProductPayParam product, @ValidLogin UserData userData) {
         String userId = String.valueOf(userData.getUserId());
         String userId = String.valueOf(userData.getUserId());
-//        String userId = "1";
         String cpId = "1";
         String cpId = "1";
         if (StringUtils.isEmpty(product.getOrderId())) {
         if (StringUtils.isEmpty(product.getOrderId())) {
-            //虚拟充值情况,直接传金额实时生成订单
-            if (product.getAmount() == null || Objects.equals(product.getAmount(), BigDecimal.ZERO)) {
-                return ResultMap.error(HttpStatusEnum.ORDER_AMOUNT_IS_NULL.getMsg());
-            }
-            if (StringUtils.isEmpty(product.getGameId())) {
-                return ResultMap.error(HttpStatusEnum.ORDER_GAME_ID_IS_NULL.getMsg());
-            }
             PlatformOrderBO orderBO = new PlatformOrderBO();
             PlatformOrderBO orderBO = new PlatformOrderBO();
             orderBO.setAmount(product.getAmount());
             orderBO.setAmount(product.getAmount());
-            orderBO.setProductName(product.getAmount().toString());
-            orderBO.setProductId("ptb_charge");
-            orderBO.setMgUserId(product.getMgUserId());
+            orderBO.setProductName(product.getProductName());
+            orderBO.setProductId(product.getProductId());
+            orderBO.setMgUserId(userData.getUserId());
             orderBO.setUserId(userId);
             orderBO.setUserId(userId);
-            orderBO.setGameId(Long.valueOf(product.getGameId()));
+            orderBO.setGameId(userData.getGameId());
             orderBO.setCpId(cpId);
             orderBO.setCpId(cpId);
             orderBO.setFromDevice(userData.getDeviceSystem());
             orderBO.setFromDevice(userData.getDeviceSystem());
             orderBO.setPayDevice(userData.getDeviceType().toString());
             orderBO.setPayDevice(userData.getDeviceType().toString());
@@ -71,29 +61,32 @@ public class PayController {
             product.setOrderId(orderId);
             product.setOrderId(orderId);
         }
         }
         ProductPayParamBO bo = new ProductPayParamBO();
         ProductPayParamBO bo = new ProductPayParamBO();
-        bo.setGameId(product.getGameId());
+        bo.setGameId(userData.getGameId().toString());
         bo.setUserId(userId);
         bo.setUserId(userId);
         bo.setPayDevice(product.getPayDevice() == null ? userData.getDeviceType() : product.getPayDevice());
         bo.setPayDevice(product.getPayDevice() == null ? userData.getDeviceType() : product.getPayDevice());
         bo.setDeviceSystem(userData.getDeviceSystem());
         bo.setDeviceSystem(userData.getDeviceSystem());
-        bo.setSpbillCreateIp(IpUtils.getRealIp(request));
+        bo.setSpbillCreateIp(userData.getIp());
         bo.setOutTradeNo(product.getOrderId());
         bo.setOutTradeNo(product.getOrderId());
         bo.setPayWay(product.getPayWay());
         bo.setPayWay(product.getPayWay());
         bo.setCode(product.getCode());
         bo.setCode(product.getCode());
         return orderPayService.payCreate(bo);
         return orderPayService.payCreate(bo);
     }
     }
 
 
+    @UnSignCheck
     @ApiOperation(value = "支付宝支付异步回调(二维码、H5、网站)")
     @ApiOperation(value = "支付宝支付异步回调(二维码、H5、网站)")
     @RequestMapping(value = "notify", method = RequestMethod.POST)
     @RequestMapping(value = "notify", method = RequestMethod.POST)
     public String aliPayNotify(HttpServletRequest request, HttpServletResponse response) throws IOException {
     public String aliPayNotify(HttpServletRequest request, HttpServletResponse response) throws IOException {
         return orderPayService.notify(request, response, PayWayEnum.ALIPAY.getNum());
         return orderPayService.notify(request, response, PayWayEnum.ALIPAY.getNum());
     }
     }
 
 
+    @UnSignCheck
     @ApiOperation(value = "微信支付")
     @ApiOperation(value = "微信支付")
     @RequestMapping(value = "wxPayNotify", method = RequestMethod.POST)
     @RequestMapping(value = "wxPayNotify", method = RequestMethod.POST)
     public String wxPayNotify(HttpServletRequest request, HttpServletResponse response) throws IOException {
     public String wxPayNotify(HttpServletRequest request, HttpServletResponse response) throws IOException {
         return orderPayService.notify(request, response, PayWayEnum.WXPAY.getNum());
         return orderPayService.notify(request, response, PayWayEnum.WXPAY.getNum());
     }
     }
 
 
+    @UnSignCheck
     @ApiOperation(value = "支付宝支付同步回调(二维码、H5、网站)")
     @ApiOperation(value = "支付宝支付同步回调(二维码、H5、网站)")
     @RequestMapping(value = "alipaySynNotify", method = RequestMethod.GET)
     @RequestMapping(value = "alipaySynNotify", method = RequestMethod.GET)
     public ResultMap synNotify(HttpServletRequest request) {
     public ResultMap synNotify(HttpServletRequest request) {

+ 1 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/bo/PlatformOrderBO.java

@@ -29,7 +29,7 @@ public class PlatformOrderBO {
     /**
     /**
      * 游戏玩家ID
      * 游戏玩家ID
      */
      */
-    private String mgUserId;
+    private Long mgUserId;
 
 
     /**
     /**
      * 游戏ID
      * 游戏ID

+ 123 - 19
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/params/ProductPayParam.java

@@ -1,14 +1,12 @@
 package com.zanxiang.sdk.domain.params;
 package com.zanxiang.sdk.domain.params;
 
 
-import com.fasterxml.jackson.annotation.JsonAlias;
-import com.sun.istack.NotNull;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.Data;
-import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
-import java.io.Serializable;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 
 
 /**
 /**
@@ -18,29 +16,135 @@ import java.math.BigDecimal;
  * @date 2022/6/8 15:21
  * @date 2022/6/8 15:21
  */
  */
 @Data
 @Data
-@EqualsAndHashCode(callSuper = true)
 @NoArgsConstructor
 @NoArgsConstructor
 @AllArgsConstructor
 @AllArgsConstructor
-public class ProductPayParam extends CommonParam implements Serializable {
+public class ProductPayParam {
 
 
-    private static final long serialVersionUID = 1L;
+    /**
+     * 支付方式(1:支付宝 2:微信 3:米大师)
+     */
+    @ApiModelProperty(notes = "支付方式(1:支付宝 2:微信 3:米大师)")
+    @NotNull(message = "支付方式不可为空")
+    private Integer payWay;
 
 
-    @ApiModelProperty("订单id")
-    @JsonAlias("device-orderId")
-    private String orderId;
+    /**
+     * 支付类型, 1:PC, 2: h5支付, 3: App支付, 4: 小程序支付, 5: 米大师支付
+     */
+    @ApiModelProperty(notes = "支付类型, 1:PC, 2: h5支付, 3: App支付, 4: 小程序支付, 5: 米大师支付")
+    @NotNull(message = "支付类型不可为空")
+    private Integer payDevice;
+
+    /**
+     * 商品ID
+     */
+    @ApiModelProperty(notes = "商品ID")
+    @NotBlank(message = "商品ID不可为空")
+    private String productId;
+
+    /**
+     * 商品名称
+     */
+    @ApiModelProperty(notes = "商品名称")
+    @NotBlank(message = "商品名称不可为空")
+    private String productName;
+
+    /**
+     * 商品描述
+     */
+    @ApiModelProperty(notes = "商品描述")
+    @NotBlank(message = "商品描述不可为空")
+    private String productDesc;
 
 
-    @ApiModelProperty("金额")
+    /**
+     * 充值金额, 单位是元
+     */
+    @ApiModelProperty(notes = "充值金额, 单位是元")
+    @NotNull(message = "充值金额不可为空")
     private BigDecimal amount;
     private BigDecimal amount;
 
 
-    @ApiModelProperty("支付类型(1:支付宝 2:微信 3:银联)")
-    @JsonAlias("payway")
-    @NotNull
-    private Integer payWay;
+    /**
+     * 兑换比例
+     */
+    @ApiModelProperty(notes = "兑换比例")
+    private Integer ratio;
 
 
-    @ApiModelProperty("小程序支付code")
-    private String code;
+    /**
+     * 购买数量
+     */
+    @ApiModelProperty(notes = "购买数量")
+    private Integer buyNum;
 
 
-    @ApiModelProperty("支付方式 (1:PC, 2: h5支付, 3: App支付, 4: 小程序支付(微信小游戏), 5: 米大师支付(微信小游戏))")
-    private Integer payDevice;
+    /**
+     * 虚拟币数量
+     */
+    @ApiModelProperty(notes = "虚拟币数量")
+    private Integer coinNum;
+
+    /**
+     * 游戏服务器id
+     */
+    @ApiModelProperty(notes = "游戏服务器id")
+    @NotBlank(message = "游戏服务器id不可为空")
+    private String serverId;
+
+    /**
+     * 所在服务器名称
+     */
+    @ApiModelProperty(notes = "所在服务器名称")
+    @NotBlank(message = "所在服务器名称不可为空")
+    private String serverName;
+
+    /**
+     * 角色id
+     */
+    @ApiModelProperty(notes = "角色id")
+    @NotBlank(message = "角色id不可为空")
+    private String roleId;
+
+    /**
+     * 角色名称
+     */
+    @ApiModelProperty(notes = "角色名称")
+    @NotBlank(message = "角色名称不可为空")
+    private String roleName;
+
+    /**
+     * 角色等级
+     */
+    @ApiModelProperty(notes = "角色等级")
+    @NotNull(message = "角色等级不可为空")
+    private Long roleLevel;
+
+    /**
+     * 充值回调
+     */
+    @ApiModelProperty(notes = "充值回调")
+    @NotNull(message = "充值回调不可为空")
+    private String payNotifyUrl;
+
+    /**
+     * 角色VIP等级
+     */
+    @ApiModelProperty(notes = "角色VIP等级")
+    private Long roleVipLevel;
+
+    /**
+     * 订单id
+     */
+    @ApiModelProperty(notes = "订单id")
+    private String orderId;
+
+    /**
+     * 扩展字段,充值回调时,原样返回
+     */
+    @ApiModelProperty(notes = "扩展字段,充值回调时,原样返回")
+    @NotNull(message = "扩展字段不可为空")
+    private String extension;
+
+    /**
+     * 小程序支付code
+     */
+    @ApiModelProperty(notes = "小程序支付code")
+    private String code;
 
 
 }
 }

+ 3 - 3
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/pay/AliPayService.java

@@ -77,7 +77,7 @@ public class AliPayService extends PayBaseService {
             case 1:
             case 1:
                 return this.pc(product);
                 return this.pc(product);
             case 2:
             case 2:
-                return this.mobile(product);
+                return this.h5Pay(product);
             case 3:
             case 3:
                 return this.app(product);
                 return this.app(product);
             default:
             default:
@@ -175,7 +175,7 @@ public class AliPayService extends PayBaseService {
      * @param product : 商品参数
      * @param product : 商品参数
      * @return : 返回支付调起参数
      * @return : 返回支付调起参数
      */
      */
-    private ResultMap mobile(ProductPayParamBO product) {
+    private ResultMap h5Pay(ProductPayParamBO product) {
         try {
         try {
             AlipayTradeWapPayResponse response = Factory.Payment
             AlipayTradeWapPayResponse response = Factory.Payment
                     .Wap().asyncNotify(notifyUrl)
                     .Wap().asyncNotify(notifyUrl)
@@ -223,7 +223,7 @@ public class AliPayService extends PayBaseService {
                     }
                     }
                 }
                 }
             }
             }
-            return ResultMap.ok(product.getPayDevice(), result);
+            return ResultMap.ok(product.getPayDevice(), result.get("appLink"));
         } catch (Exception e) {
         } catch (Exception e) {
             log.error("支付宝h5支付失败,meg : {}", e.getMessage());
             log.error("支付宝h5支付失败,meg : {}", e.getMessage());
             return ResultMap.error(ResEnum.FAIL.getMsg());
             return ResultMap.error(ResEnum.FAIL.getMsg());