Bladeren bron

微信用户鉴权基本完成

caiweigan 6 jaren geleden
bovenliggende
commit
758cce7d27
4 gewijzigde bestanden met toevoegingen van 58 en 51 verwijderingen
  1. 5 6
      index.html
  2. 50 12
      js/global.js
  3. 2 30
      js/index.js
  4. 1 3
      register.html

+ 5 - 6
index.html

@@ -7,15 +7,14 @@
     <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="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="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>

+ 50 - 12
js/global.js

@@ -1,6 +1,7 @@
 //网关对应地址
-var api = "http://gateway.js-dctech.com/api/";
+// var api = "http://gateway.js-dctech.com/api/";
 // var api = "http://192.168.2.35:8080/api/";
+var api = "http://192.168.2.40:8080/api/";
 
 //批次号
 var batch = getUrlParam("batch");
@@ -17,20 +18,27 @@ var currentUrl = location.href.split('#')[0];
 //缓存中的accessToken
 var accessToken = localStorage.getItem("access_token") || "";
 
+//微信重定向后添加的code参数
+var oauthCode = getUrlParam("code");
+
+//调用微信鉴权方法
+redirectNoCodeUrl();
+
 //封装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;
 
+        //如果accessToken失效,重新发起静默授权
+        if (accessToken == "" && (typeof(options.data) == "undefined" || options.data.oauthCode == null)) {
+            data.redirectUrl = currentUrl.split('?')[0];
+            redirectAuthUrl(data);
+            return false;
+        }
+
         options.data = data;
 
         return $.ajax($.extend({
@@ -39,6 +47,37 @@ jQuery.extend({
     }
 });
 
+//如果oauthCode不为空,进行微信用户鉴权,并重定向回不含code参数的地址
+function redirectNoCodeUrl() {
+    if (oauthCode != null) {
+        $.ajax({
+            url: api+"marketing/internal/redirectNoCodeUrl",
+            data: {
+                batch: batch,
+                columnSort: columnSort,
+                qrCode: qrCode,
+                redirectUrl: currentUrl.split('?')[0],
+                oauthCode: oauthCode
+            },
+            success: function (res) {
+                localStorage.setItem("access_token", res.data.access_token);
+                location.href = res.data.redictUrl;
+            }
+        });
+    }
+}
+
+//重定向到微信静默授权地址
+function redirectAuthUrl(data) {
+    $.ajax({
+        url: api+"marketing/internal/redirectAuthUrl",
+        data: data,
+        success: function (res) {
+            location.href = res;
+        }
+    });
+}
+
 //获取url中的参数
 function getUrlParam(name) {
     var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
@@ -97,19 +136,18 @@ function getLocation(successFun, cancelFun) {
     });
 }
 
-//回首页
-function hrefIndex() {
+//回活动首页
+function redirectActivityIndex() {
     $.authAjax({
-        url: api+"marketing/weixin/redirectUrl",
+        url: api+"marketing/internal/redirectActivityIndex",
         async: false,
         success: function (res) {
             location.href = res;
         }
     })
-    // location.href = api+"marketing/weixin/redirectAuthUrl?batch="+batch+"&columnSort="+columnSort+"&qrCode="+qrCode;
 }
 
-//拼接url
+//拼接含必需参数的url
 function spliceUrl(url) {
     return url + "batch="+batch+"&columnSort="+columnSort+"&qrCode="+qrCode;
 }

+ 2 - 30
js/index.js

@@ -1,35 +1,11 @@
-var oauthCode = getUrlParam("code");
-// alert("当前地址:"+currentUrl);
-
 //进入openid处理流程
 $.authAjax({
     url: api+"marketing/weixin/openidProcess",
-    async: false,
-    data: {
-        oauthCode: oauthCode
-    },
-    success: function (res) {
-        if (res.code == 1) {
-            console.log(res);
-            localStorage.setItem("access_token", res.data.access_token);
-            location.href = res.data.redictUrl;
-        }
-    }
+    async: false
 });
 
-
 //页面结构加载完成后执行
 $(function() {
-    //TODO start
-    // activityIsExpired();
-    // showReward();
-    // scanRecord('0.0','0.0');
-    // userIsSubscribeApp();
-    // userIsRegister();
-    // redpackProcess();
-    // createJsapiSignature(currentUrl);
-    //TODO end
-
     //判断活动是否过期
     if (!activityIsExpired()) {
         return false;
@@ -92,12 +68,8 @@ function showReward() {
         success: function (res) {
             if (res.code == 0) {
                 $("#reward").text(res.data);
-            //码被其他用户扫描过
-            } else if (res.code == 1){
-                $.toast(res.msg, "cancel");
-                flag = false;
             //码对应奖励已发放
-            } else if (res.code == 2){
+            } else {
                 $.toast(res.msg, "cancel");
                 flag = false;
             }

+ 1 - 3
register.html

@@ -80,9 +80,7 @@
 </div>
 <script src="js/jquery-3.2.1.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/1.11.0/jquery.min.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/swiper.min.js"></script>
 <script src="https://cdn.bootcss.com/jquery-weui/1.2.1/js/city-picker.min.js"></script>
@@ -116,7 +114,7 @@
                             $.hideLoading();
                             if (data.code == 0) {
                                 $.toast(data.msg);
-                                hrefIndex();
+                                redirectActivityIndex();
                             }
                         },
 						error: function (data) {