wechat_common.js 7.31 KB
/**
 * Created by CAI_GC on 2016/10/17.
 */

var wechat_common = {
    /*load_script:function(url){
     var script = document.createElement("script");
     script.type = "text/javascript";
     script.src = url;
     document.body.appendChild(script);
     },
     load_wechat_common_js:function(sid){
     var url = 'http://res.wx.qq.com/open/js/jweixin-1.0.0.js';
     wechat_common.load_script(url);
     },*/
    wechat_sign_for_page: function (sid,handleFn) {
        /*<![CDATA[*/
        var signUrl = "/index.php?m=Mobile&c=Index&a=ajaxGetWxConfig&stoid={$Think.request.stoid}&t="+Math.random()+"?askUrl="+encodeURIComponent(location.href.split('#')[0]);
        $.get(signUrl, function (data) {
            wx.config({
                debug: false,
                appId: data.appId,
                timestamp: data.timestamp,
                nonceStr: data.nonceStr,
                signature: data.signature,
                jsApiList: [
                    'checkJsApi',
                    'showOptionMenu',
                    'hideOptionMenu',
                    'onMenuShareAppMessage',
                    'onMenuShareTimeline',
                    'hideMenuItems',
                    'showMenuItems',
                    'closeWindow',
                    'openAddress',
                    'startRecord',
                    'stopRecord',
                    'onVoiceRecordEnd',
                    'playVoice',
                    'pauseVoice',
                    'stopVoice',
                    'onVoicePlayEnd',
                    'uploadVoice'
                ]
            });
        });
        wx.ready(function () {
            wx.hideOptionMenu();
            if(handleFn){
                console.info('handle...')
                handleFn();
            }
        });
        /*]]>*/
    },
    /**
     * 分享到朋友圈
     * @param shareObject
     */
    wechat_share_timeline:function(shareObject){
        wx.showOptionMenu();
        wx.hideMenuItems({
            menuList: [
                'menuItem:share:qq',
                'menuItem:share:weiboApp',
                'menuItem:copyUrl',
                'menuItem:readMode',
                'menuItem:favorite',
                'menuItem:share:QZone',
                'menuItem:openWithSafari',
                'menuItem:share:email'
            ], // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3
            success: function (res) {
                //           alert('已隐藏“分享到朋友圈”,“复制链接”等按钮');
            },
            fail: function (res) {
                //          alert(JSON.stringify(res));
            }
        });
        wx.onMenuShareTimeline({
            title: shareObject.shareDesc, // 分享标题
            link: shareObject.shareLink, // 分享链接
            imgUrl: shareObject.shareImgUrl, // 分享图标
            success: function () {
                wx.hideOptionMenu();
                // 用户确认分享后执行的回调函数
                if (shareObject.successCallback) {
                    shareObject.successCallback();
                }
            },
            cancel: function () {
                // 用户取消分享后执行的回调函数
                wx.hideOptionMenu();
                if (shareObject.cancelCallback) {
                    shareObject.cancelCallback();
                }
            }
        });
    },
    /**
     * 分享给朋友
     * @param shareObject
     */
    wechat_share_app_message: function (shareObject) {
        wx.showOptionMenu();
        wx.hideMenuItems({
            menuList: [
                'menuItem:share:qq',
                'menuItem:share:weiboApp',
                'menuItem:copyUrl',
                'menuItem:readMode',
                'menuItem:share:timeline',
                'menuItem:favorite',
                'menuItem:share:QZone',
                'menuItem:openWithSafari',
                'menuItem:share:email'
            ], // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3
            success: function (res) {
                //           alert('已隐藏“分享到朋友圈”,“复制链接”等按钮');
            },
            fail: function (res) {
                //          alert(JSON.stringify(res));
            }
        });
        wx.onMenuShareAppMessage({
            title: shareObject.shareTitle, // 分享标题
            desc: shareObject.shareDesc, // 分享描述
            link: shareObject.shareLink, // 分享链接
            imgUrl: shareObject.shareImgUrl, // 分享图标
            type: shareObject.shareType, // 分享类型,music、video或link,不填默认为link
            success: function () {
                wx.hideOptionMenu();
                // 用户确认分享后执行的回调函数
                if (shareObject.successCallback) {
                    shareObject.successCallback();
                }
            },
            cancel: function () {
                // 用户取消分享后执行的回调函数
                wx.hideOptionMenu();
                if (shareObject.cancelCallback) {
                    shareObject.cancelCallback();
                }
            }
        });
    },

    check_wechat_version: function (callback) {
        var version = navigator.userAgent.substr(8, 3);
        if (5.0 > parseFloat(version)) {
            if (callback) {
                callback();
            } else {
                alert("您当前的微信版本不支持微信支付");
            }
            return false;
        }
        return true;
    },

    wechat_pay_common:function(wxPayObject,successCallback,errorCallback,cancelCallback){
        WeixinJSBridge.invoke('getBrandWCPayRequest', {
            appId: wxPayObject.appId,
            timeStamp: wxPayObject.timeStamp,
            nonceStr: wxPayObject.nonceStr,
            package: wxPayObject.package,
            signType: wxPayObject.signType,
            paySign: wxPayObject.paySign
        }, function (res) {
            if (res.err_msg == "get_brand_wcpay_request:ok") {
                if(successCallback){
                    successCallback(wxPayObject);
                }
            } else if(res.err_msg == "get_brand_wcpay_request:fail") {
                if(res.err_code=="3"){
                    if(errorCallback){
                        errorCallback();
                    }
                }
            }else {
                if(cancelCallback){
                    cancelCallback();
                }
            }
        });
    },

    is_weixin_browse: function(){
        var ua = navigator.userAgent.toLowerCase();
        if(ua.match(/MicroMessenger/i)=="micromessenger") {
            return true;
        } else {
            return false;
        }
    },

    init: function (sid,handleFn) {
        this.wechat_sign_for_page(sid,handleFn);
    }
};
$(function () {
    var sid = $("#sid").val();
    if (!sid) {
        sid = '';
    }
    var isHandle = $('#isHandle').val();
    if(isHandle){
        wechat_common.init(sid,function(){
            $('.loading').css('display','none');
            $('.point').css('display','block');
        });
    }else{
        wechat_common.init(sid);
    }
    $("#copyright").children("p:first").children("span:first").html(new Date().getFullYear());
});