Просмотр исходного кода

1.增加推广人二维码生成及扫码处理。

tomatozq 5 лет назад
Родитель
Сommit
21c329be63

+ 4 - 0
weixin-middleware/src/main/java/com/jpsoft/weixin/callback/EventCallback.java

@@ -26,6 +26,10 @@ public class EventCallback {
     private String callbackUrl;
     private String message;
 
+    public EventCallback(){
+
+    }
+
     public EventCallback(String code,String callbackUrl){
         this.code = code;
         this.callbackUrl = callbackUrl;

+ 43 - 0
weixin-middleware/src/main/java/com/jpsoft/weixin/callback/PromotionCallback.java

@@ -0,0 +1,43 @@
+package com.jpsoft.weixin.callback;
+
+import lombok.extern.slf4j.Slf4j;
+
+import java.net.URLEncoder;
+
+@Slf4j
+public class PromotionCallback extends EventCallback {
+    public PromotionCallback(String code,String callbackUrl){
+        super(code,callbackUrl);
+    }
+
+    @Override
+    public boolean process(String openId, String eventKey) {
+        boolean result = false;
+
+        try {
+            String[] arr = eventKey.split(",");
+
+            String promoter = arr[1];
+
+            StringBuilder msgBuilder = new StringBuilder();
+
+            msgBuilder.append("<a href=\"");
+
+            msgBuilder.append(this.getCallbackUrl());
+            msgBuilder.append("?openId=" + openId);
+            msgBuilder.append("&promoter=" + URLEncoder.encode(promoter, "UTF-8"));
+
+            msgBuilder.append("\">请点击注册</a>");
+
+            setMessage(msgBuilder.toString());
+
+            result = true;
+        }
+        catch (Exception ex){
+            result =false;
+            log.error(ex.getMessage(),ex);
+        }
+
+        return result;
+    }
+}

+ 2 - 0
weixin-middleware/src/main/java/com/jpsoft/weixin/config/PICCAdminScanConfig.java

@@ -12,4 +12,6 @@ public class PICCAdminScanConfig {
     private String loginCallbackUrl;
     private String bindingCode;
     private String bindingCallbackUrl;
+    private String promotionCode;
+    private String promotionCallbackUrl;
 }

+ 24 - 0
weixin-middleware/src/main/java/com/jpsoft/weixin/controller/DemoController.java

@@ -0,0 +1,24 @@
+package com.jpsoft.weixin.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Enumeration;
+
+@RestController
+public class DemoController {
+    @RequestMapping("/demo")
+    public String index(HttpServletRequest request){
+        StringBuilder sb = new StringBuilder();
+
+        Enumeration<String> parameterNames =request.getParameterNames();
+
+        while(parameterNames.hasMoreElements()) {
+            String name = parameterNames.nextElement();
+            sb.append("name=" + name + ",value=" + request.getParameter(name) + "<br/>");
+        }
+
+        return sb.toString();
+    }
+}

+ 5 - 1
weixin-middleware/src/main/java/com/jpsoft/weixin/controller/WeixinController.java

@@ -5,6 +5,7 @@ import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.itextpdf.text.io.StreamUtil;
 import com.jpsoft.weixin.callback.EventCallback;
+import com.jpsoft.weixin.callback.PromotionCallback;
 import com.jpsoft.weixin.config.PICCAdminScanConfig;
 import com.jpsoft.weixin.config.PICCEntScanConfig;
 import com.jpsoft.weixin.config.WeixinConfig;
@@ -174,7 +175,7 @@ public class WeixinController {
                     //toUserName 开发者微信号
                     callback.process(fromUserName,eventKey);
 
-                    //回复消息时,将两颠倒
+                    //回复消息时,将两颠倒
                     WeixinUtil.replyTextMessage(response,toUserName,fromUserName,callback.getMessage());
 
                     processed = true;
@@ -206,6 +207,9 @@ public class WeixinController {
         list.add(new EventCallback(piccAdminScanConfig.getLoginCode(),piccAdminScanConfig.getLoginCallbackUrl()));
         list.add(new EventCallback(piccAdminScanConfig.getBindingCode(),piccAdminScanConfig.getBindingCallbackUrl()));
 
+
+        list.add(new PromotionCallback(piccAdminScanConfig.getPromotionCode(),piccAdminScanConfig.getPromotionCallbackUrl()));
+
         return list;
     }
 

+ 3 - 1
weixin-middleware/src/main/resources/application-dev.yml

@@ -28,4 +28,6 @@ qrcode:
         loginCode: "6000"
         loginCallbackUrl: "http://localhost:8081/picc-admin-server/pub/qrcode/login/scan"
         bindingCode: "6001"
-        bindingCallbackUrl: "http://localhost:8081/picc-admin-server/pub/qrcode/binding/scan"
+        bindingCallbackUrl: "http://localhost:8081/picc-admin-server/pub/qrcode/binding/scan"
+        promotionCode: "7000"
+        promotionCallbackUrl: " http://vbvczi.natappfree.cc/weixin-middleware/demo"