Explorar o código

提供微信用户鉴权所需要的参数和方法,准备合并master分支

caiweigan %!s(int64=6) %!d(string=hai) anos
pai
achega
9e1f94c26e
Modificáronse 5 ficheiros con 73 adicións e 61 borrados
  1. 1 1
      images/style.css
  2. 7 6
      index.html
  3. 40 8
      js/global.js
  4. 23 40
      js/index.js
  5. 2 6
      register.html

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
images/style.css


+ 7 - 6
index.html

@@ -7,14 +7,15 @@
     <meta content="black" name="apple-mobile-web-app-status-bar-style">
     <meta content="telephone=no" name="format-detection">
     <title>活动首页</title>
-    <link rel="stylesheet" type="text/css" href="images/style.css"/>
-    <link rel="stylesheet" href="https://cdn.bootcss.com/weui/1.1.3/style/weui.min.css">
-    <link rel="stylesheet" href="https://cdn.bootcss.com/jquery-weui/1.2.1/css/jquery-weui.min.css">
+    <!--<link rel="stylesheet" type="text/css" href="images/style.css"/>-->
+    <!--<link rel="stylesheet" href="https://cdn.bootcss.com/weui/1.1.3/style/weui.min.css">-->
+    <!--<link rel="stylesheet" href="https://cdn.bootcss.com/jquery-weui/1.2.1/css/jquery-weui.min.css">-->
 
-    <script src="https://cdn.bootcss.com/jquery/1.11.0/jquery.min.js"></script>
-    <script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
+    <script src="js/jquery-3.2.1.js"></script>
+    <!--<script src="https://cdn.bootcss.com/jquery/1.11.0/jquery.min.js"></script>-->
+    <!--<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>-->
     <script src="js/global.js"></script>
-    <script src="https://cdn.bootcss.com/jquery-weui/1.2.1/js/jquery-weui.min.js"></script>
+    <!--<script src="https://cdn.bootcss.com/jquery-weui/1.2.1/js/jquery-weui.min.js"></script>-->
     <script src="js/index.js"></script>
 
 </head>

+ 40 - 8
js/global.js

@@ -1,11 +1,11 @@
 //网关对应地址
 var api = "http://192.168.2.40:8080/api/";
 
-//租户简称
-var abbreviationName = getUrlParam("abbreviationName");
+//批次号
+var batch = getUrlParam("batch");
 
-//活动id
-var activityId = getUrlParam("activityId");
+//列序号
+var columnSort = getUrlParam("columnSort");
 
 //二维码值
 var qrCode = getUrlParam("qrCode");
@@ -13,6 +13,31 @@ var qrCode = getUrlParam("qrCode");
 //当前url
 var currentUrl = location.href.split('#')[0];
 
+//缓存中的accessToken
+var accessToken = localStorage.getItem("access_token") || "";
+
+//封装ajax请求,自动在请求头中加入access_token
+jQuery.extend({
+    authAjax: function (options) {
+
+        if (accessToken == "" && (typeof(options.data) == "undefined" || options.data.oauthCode == null)) {
+            alert("accessToken失效,请重新扫码");
+            return false;
+        }
+
+        var data = options.data || {};
+        data.batch = batch;
+        data.columnSort = columnSort;
+        data.qrCode = qrCode;
+
+        options.data = data;
+
+        return $.ajax($.extend({
+            headers: {"access_token":accessToken}
+        },options));
+    }
+});
+
 //获取url中的参数
 function getUrlParam(name) {
     var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
@@ -25,11 +50,11 @@ function getUrlParam(name) {
 
 //获取js-sdk签名
 function createJsapiSignature(url) {
-    $.ajax({
+    $.authAjax({
         type : "GET",
         url : api+"marketing/weixin/createJsapiSignature",
         async: false,
-        data: {abbreviationName: abbreviationName, url: url},
+        data: {url: url},
         dataType:"json",
         success : function(data) {
             wx.config({
@@ -72,12 +97,19 @@ function getLocation(successFun, cancelFun) {
 
 //回首页
 function hrefIndex() {
-    location.href = api+"marketing/weixin/redirectAuthUrl?abbreviationName="+abbreviationName+"&activityId="+activityId+"&qrCode="+qrCode;
+    $.authAjax({
+        url: api+"marketing/weixin/redirectUrl",
+        async: false,
+        success: function (res) {
+            location.href = res;
+        }
+    })
+    // location.href = api+"marketing/weixin/redirectAuthUrl?batch="+batch+"&columnSort="+columnSort+"&qrCode="+qrCode;
 }
 
 //拼接url
 function spliceUrl(url) {
-    return url + "abbreviationName="+abbreviationName+"&activityId="+activityId+"&qrCode="+qrCode;
+    return url + "batch="+batch+"&columnSort="+columnSort+"&qrCode="+qrCode;
 }
 
 

+ 23 - 40
js/index.js

@@ -1,26 +1,34 @@
 var oauthCode = getUrlParam("code");
 // alert("当前地址:"+currentUrl);
-var openid = null;
 
 //进入openid处理流程
-$.ajax({
+$.authAjax({
     url: api+"marketing/weixin/openidProcess",
     async: false,
     data: {
-        abbreviationName: abbreviationName,
         oauthCode: oauthCode
     },
     success: function (res) {
         if (res.code == 1) {
-            hrefIndex();
-        } else {
-            openid = res.data;
+            console.log(res);
+            localStorage.setItem("access_token", res.data.access_token);
+            location.href = res.data.redictUrl;
         }
     }
 });
 
+
 //页面结构加载完成后执行
 $(function() {
+    //TODO start
+    // activityIsExpired();
+    // showReward();
+    // scanRecord('0.0','0.0');
+    // userIsSubscribeApp();
+    // userIsRegister();
+    // redpackProcess();
+    // createJsapiSignature(currentUrl);
+    //TODO end
 
     //判断活动是否过期
     if (!activityIsExpired()) {
@@ -61,13 +69,9 @@ $(function() {
 //判断活动是否过期
 function activityIsExpired(){
     var flag = true;
-    $.ajax({
+    $.authAjax({
         url: api+"marketing/weixin/activityIsExpired",
         async: false,
-        data: {
-            abbreviationName: abbreviationName,
-            activityId: activityId
-        },
         success: function (res) {
             //活动未开始或已结束
             if (res.code != 0) {
@@ -82,14 +86,9 @@ function activityIsExpired(){
 //获取并显示码对应的奖励
 function showReward() {
     var flag = true;
-    $.ajax({
+    $.authAjax({
         url: api+"marketing/weixin/calculateReward",
         async: false,
-        data: {
-            abbreviationName: abbreviationName,
-            qrCode: qrCode,
-            openid: openid
-        },
         success: function (res) {
             if (res.code == 0) {
                 $("#reward").text(res.data);
@@ -111,16 +110,12 @@ function showReward() {
 //记录活动(扫码)事件
 function scanRecord(latitude,longitude) {
     // alert("记录扫码事件");
-    $.ajax({
+    $.authAjax({
         url: api+"marketing/weixin/scanRecord",
         type: "POST",
         data: {
-            abbreviationName: abbreviationName,
             latitude: latitude,
             longitude:longitude,
-            openid: openid,
-            activityId:activityId,
-            qrValue:qrCode
         }
     })
 }
@@ -129,12 +124,12 @@ function scanRecord(latitude,longitude) {
 function receiveReward() {
     if (!userIsSubscribeApp()) {
         // alert("未关注");
-        location.href = "/qrcode.html";
+        location.href = "http://ws.js-dctech.com/qrcode.html";
         return false;
     }
     if (!userIsRegister()) {
         // alert("未注册");
-        var url = spliceUrl("http://ws.js-dctech.com/register.html?openid="+openid+"&");
+        var url = spliceUrl("http://ws.js-dctech.com/register.html?");
         location.href = url;
         return false;
     }
@@ -144,13 +139,9 @@ function receiveReward() {
 //用户是否关注公众号
 function userIsSubscribeApp() {
     var userIsSubscribeApp;
-    $.ajax({
+    $.authAjax({
         url : api+"marketing/weixin/userIsSubscribeApp",
         async: false,
-        data: {
-            abbreviationName: abbreviationName,
-            openid: openid
-        },
         success: function (data) {
             userIsSubscribeApp = data;
         }
@@ -161,13 +152,9 @@ function userIsSubscribeApp() {
 //用户是否注册(即含地理位置信息)
 function userIsRegister() {
     var userIsRegister;
-    $.ajax({
+    $.authAjax({
         url : api+"marketing/weixin/userIsRegister",
         async: false,
-        data: {
-            abbreviationName: abbreviationName,
-            openid: openid
-        },
         success: function (data) {
             userIsRegister = data;
         }
@@ -179,14 +166,10 @@ function userIsRegister() {
 function redpackProcess() {
     getLocation(
         function (latitude,longitude) {
-            $.ajax({
+            $.authAjax({
                 url : api+"marketing/weixin/redpackProcess",
                 async: false,
                 data: {
-                    abbreviationName: abbreviationName,
-                    openid:openid,
-                    activityId:activityId,
-                    qrCode: qrCode,
                     latitude: latitude,
                     longitude: longitude
                 },
@@ -203,4 +186,4 @@ function redpackProcess() {
     );
 
 
-}
+}

+ 2 - 6
register.html

@@ -98,17 +98,16 @@
             getLocation(
                 function (latitude,longitude) {
                     var arr = $("#registerForm").serializeArray();
-                    arr.push({name:"openId",value:getUrlParam("openid")},{name:"latitude",value:latitude},{name:"longitude",value:longitude});
+                    arr.push({name:"latitude",value:latitude},{name:"longitude",value:longitude});
                     var json = {};
                     $.each(arr, function () {
                         json[this.name] = this.value;
                     });
 
-                    $.ajax({
+                    $.authAjax({
                         url: api+"marketing/weixin/terminalUser",
                         type: "PUT",
                         data: {
-                            abbreviationName:abbreviationName,
 							json:JSON.stringify(json)
 						},
                         success: function (data) {
@@ -128,9 +127,6 @@
             alert("获取凭据失败:"+res);
         });
 
-
-
-
     }
 </script>
 </body>