Sfoglia il codice sorgente

fixed微信会员卡开通功能

fushengqian 1 anno fa
parent
commit
7f8c81c1bc

+ 35 - 0
fuint-application/src/main/java/com/fuint/common/dto/OpenWxCardDto.java

@@ -0,0 +1,35 @@
+package com.fuint.common.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 开通微信会员卡实体类
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Getter
+@Setter
+public class OpenWxCardDto {
+
+    @ApiModelProperty("会员编码")
+    private String code;
+
+    @ApiModelProperty("会员openId")
+    private String openId;
+
+    @ApiModelProperty("时间戳")
+    private String timestamp;
+
+    @ApiModelProperty("随机字符串")
+    private String nonceStr;
+
+    @ApiModelProperty("签名")
+    private String signature;
+
+    @ApiModelProperty("微信会员卡ID")
+    private String cardId;
+
+}

+ 31 - 4
fuint-application/src/main/java/com/fuint/module/clientApi/controller/ClientUserController.java

@@ -2,18 +2,17 @@ package com.fuint.module.clientApi.controller;
 
 import com.alibaba.fastjson.JSONObject;
 import com.fuint.common.dto.AssetDto;
+import com.fuint.common.dto.OpenWxCardDto;
 import com.fuint.common.dto.UserDto;
 import com.fuint.common.dto.UserInfo;
 import com.fuint.common.enums.*;
 import com.fuint.common.service.*;
-import com.fuint.common.util.Base64Util;
-import com.fuint.common.util.DateUtil;
-import com.fuint.common.util.QRCodeUtil;
-import com.fuint.common.util.TokenUtil;
+import com.fuint.common.util.*;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.web.BaseController;
 import com.fuint.framework.web.ResponseObject;
 import com.fuint.repository.model.*;
+import com.fuint.utils.Digests;
 import com.fuint.utils.StringUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -148,6 +147,34 @@ public class ClientUserController extends BaseController {
         }
         outParams.put("isMerchant", isMerchant);
 
+        // 是否开通微信会员卡
+        if (StringUtil.isNotEmpty(mtUser.getOpenId())) {
+            MtSetting cardSetting = settingService.querySettingByName(mtUser.getMerchantId(), UserSettingEnum.OPEN_WX_CARD.getKey());
+            if (cardSetting != null && cardSetting.getValue().equals(YesOrNoEnum.YES.getKey())) {
+                MtSetting cardIdSetting = settingService.querySettingByName(mtUser.getMerchantId(), UserSettingEnum.WX_MEMBER_CARD_ID.getKey());
+                if (cardIdSetting != null) {
+                    String apiTicket = weixinService.getApiTicket(mtUser.getMerchantId());
+                    if (StringUtil.isNotEmpty(apiTicket)) {
+                        String cardId = cardIdSetting.getValue();
+                        String openId = mtUser.getOpenId();
+                        String code = mtUser.getUserNo();
+                        String timestamp = System.currentTimeMillis() + "";
+                        String nonce_str = CommonUtil.createAccountKey();
+                        String str = nonce_str + timestamp + code + apiTicket + cardId;
+                        String signature = Digests.sha1(str.getBytes()).toString();
+
+                        OpenWxCardDto openWxCardDto = new OpenWxCardDto();
+                        openWxCardDto.setCode(code);
+                        openWxCardDto.setOpenId(openId);
+                        openWxCardDto.setTimestamp(timestamp);
+                        openWxCardDto.setSignature(signature);
+                        openWxCardDto.setCardId(cardId);
+                        outParams.put("openCardPara", openWxCardDto);
+                    }
+                }
+            }
+        }
+
         return getSuccessResult(outParams);
     }