//网关对应地址
// 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");

//列序号
var columnSort = getUrlParam("columnSort");

//二维码值
var qrCode = getUrlParam("qrCode");

//当前url
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) {
        var data = options.data || {};

        if (batch != null) {
            data.batch = batch;
        }
        if (columnSort != null) {
            data.columnSort = columnSort;
        }
        if (qrCode != null) {
            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({
            headers: {"access_token":accessToken}
        },options));
    }
});

//如果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.replace(res.data.redictUrl);
            }
        });
    }
}

//重定向到微信静默授权地址
function redirectAuthUrl(data) {
    $.ajax({
        url: api+"marketing/internal/redirectAuthUrl",
        data: data,
        success: function (res) {
            location.replace(res);
        }
    });
}

//获取url中的参数
function getUrlParam(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
    var r = window.location.search.substr(1).match(reg); //匹配目标参数
    if(r != null){
        return decodeURIComponent(r[2]);//路径后面的参数形式为参数名=参数值，而第一个字符为参数名，第二个为=，第三个就为参数值
    }
    return null;//返回参数值
}

//获取js-sdk签名
function createJsapiSignature(url) {
    $.authAjax({
        type : "GET",
        url : api+"marketing/weixin/createJsapiSignature",
        async: false,
        data: {url: url},
        dataType:"json",
        success : function(data) {
            wx.config({
                beta: true,// 必须这么写，否则wx.invoke调用形式的jsapi会有问题
                // debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                appId: data.appId, // 必填，企业微信的corpID
                timestamp: data.timestamp, // 必填，生成签名的时间戳
                nonceStr: data.nonceStr, // 必填，生成签名的随机串
                signature: data.signature,// 必填，签名，见附录1
                jsApiList: [
                    'checkJsApi',
                    'openLocation',// 使用微信内置地图查看地理位置接口
                    'getLocation' // 获取地理位置接口
                ]
            });
        }
    });
}

//获取用户位置
function getLocation(successFun, cancelFun) {
    wx.getLocation({
        success : function(res) {
            var latitude = res.latitude; // 纬度，浮点数，范围为90 ~ -90
            var longitude = res.longitude; // 经度，浮点数，范围为180 ~ -180。
            var speed = res.speed; // 速度，以米/每秒计
            var accuracy = res.accuracy; // 位置精度
            successFun(latitude,longitude);
        },
        cancel : function (res) {
            if(typeof cancelFun != 'undefined' && cancelFun instanceof Function){
                cancelFun();
            }
        },
        fail : function(res) {
            $.hideLoading();
            $.toast("获取位置失败", "cancel");
        }
    });
}


