微信JSSDK封装

源码:

/**
* 微信 接口
*/

//微信debug模式开关 true | false
var WeiXinDebugMode = false;

var WeiXinSDK =
{
    version : 'default'
};

// Config_data格式 :
// Config_data =
// {
//      appId:appId,
//      timestamp:timestamp,
//      nonceStr:nonceStr,
//      signature:signature
// }
WeiXinSDK.setConfig = function(Config_data)
{

    var data = Config_data;

    wx.config({
        debug: WeiXinDebugMode,   // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
        appId: data.appId,        // 必填,公众号的唯一标识
        timestamp: data.timestamp,// 必填,生成签名的时间戳
        nonceStr: data.nonceStr,  // 必填,生成签名的随机串
        signature: data.signature,// 必填,签名,见附录1
        jsApiList: [
            'checkJsApi',
            'onMenuShareTimeline',
            'onMenuShareAppMessage',
            'onMenuShareQQ',
            'onMenuShareWeibo',
            'hideMenuItems',
            'showMenuItems',
            'hideAllNonBaseMenuItem',
            'showAllNonBaseMenuItem',
            'getNetworkType',
            'openLocation',
            'getLocation',
            'hideOptionMenu',
            'showOptionMenu',
            'closeWindow',
            'scanQRCode',
            'chooseWXPay',
            'openProductSpecificView'
        ] // 必填,需要使用的JS接口列表

    });
};

//ready回调
WeiXinSDK.ready = function(callback)
{
    wx.ready(function()
    {
        var Api = this;

        if(typeof callback == 'function')
        {
            callback.call(this,Api);
        }
    });

};

WeiXinSDK.ShareToFriend = function(Share_data)
{
    var data = Share_data;

    console.log(Share_data);

    wx.onMenuShareAppMessage
    ({
        title: Share_data.title, // 分享标题
        desc: Share_data.desc, // 分享描述
        link: Share_data.link, // 分享链接
        imgUrl: Share_data.imgUrl, // 分享图标
        type: Share_data.type, // 分享类型,music、video或link,不填默认为link
        dataUrl: Share_data.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空
        success: function () {
            // 用户确认分享后执行的回调函数
            if(Share_data.success && typeof Share_data.success === 'function')Share_data.success();
        },
        cancel: function () {
            // 用户取消分享后执行的回调函数
            if(Share_data.cancel && typeof Share_data.cancel === 'function')Share_data.cancel();
        }
    })
};

WeiXinSDK.ShareTimeLine = function(Share_data)
{
    var data = Share_data;

    wx.onMenuShareTimeline({
        title: Share_data.title, // 分享标题
        link: Share_data.link, // 分享链接
        imgUrl: Share_data.imgUrl, // 分享图标
        success: function () {
            // 用户确认分享后执行的回调函数
            if(Share_data.success && typeof Share_data.success === 'function')Share_data.success();
        },
        cancel: function () {
            // 用户取消分享后执行的回调函数
            if(Share_data.cancel && typeof Share_data.cancel === 'function')Share_data.cancel();
        }
    });
};

WeiXinSDK.ShareQQ = function(Share_data)
{
    var data = Share_data;

    wx.onMenuShareQQ({
        title: Share_data.title, // 分享标题
        desc: Share_data.desc, // 分享描述
        link: Share_data.link, // 分享链接
        imgUrl: Share_data.imgUrl, // 分享图标
        success: function () {
            // 用户确认分享后执行的回调函数
            if(Share_data.success && typeof Share_data.success === 'function')Share_data.success();
        },
        cancel: function () {
            // 用户取消分享后执行的回调函数
            if(Share_data.cancel && typeof Share_data.cancel === 'function')Share_data.cancel();
        }
    });
};

WeiXinSDK.isWeiXin = function ()
{
    return /MicroMessenger/i.test(navigator.userAgent);
};

WeiXinSDK.hideOptionMenu = function()
{
    wx.hideOptionMenu();
};

WeiXinSDK.showOptionMenu = function()
{
    wx.showOptionMenu();

};

WeiXinSDK.getLocation = function(options)
{
    wx.getLocation({
        success: function (res) {
            //alert("success" + JSON.stringify(res))
            if(options.success && typeof options.success === 'function')options.success(res);
        },
        cancel: function (res) {
            //alert("cancel" + JSON.stringify(res))
            if(options.cancel && typeof options.cancel === 'function')options.cancel(res);
        },
        fail : function(res){
            //alert("fail" + JSON.stringify(res))
            if(options.fail && typeof options.fail === 'function')options.fail(res);
        }
    });
};

/**
 * 调起微信Native的图片播放组件。
 * 这里必须对参数进行强检测,如果参数不合法,直接会导致微信客户端crash
 *
 * @param {String} curSrc 当前播放的图片地址
 * @param {Array} srcList 图片地址列表
 */
WeiXinSDK.imagePreview = function (curSrc, srcList)
{

    if (!curSrc || !srcList || srcList.length == 0) {
        return;
    }
    wx.previewImage
    ({
        current: curSrc, // 当前显示图片的http链接
        urls: srcList // 需要预览的图片http链接列表
    });
};

WeiXinSDK.chooseWXPay = function(data,success,fail)
{
    if(data.appId)
    {
        delete data.appId;
    }

    data.timestamp = data.timeStamp;

    var callback =
    {
        success: function(res)
        {
           

            var code = 0;

            var err_log_src = 'http://www.yueus.com/mobile_app/log/save_log.php?err_level=1&url='+encodeURIComponent(window.location.href);

            var img = new Image();

            if( res.errMsg == 'chooseWXPay:ok' )
            {
                //支付成功
                code = 1;
            }
            else if( res.errMsg == 'chooseWXPay:cancel' )
            {
                //支付过程中
                code = 10;
            }
            else if( res.errMsg == 'chooseWXPay:fail' )
            {
                //支付失败
                code = -3;

                img.src = err_log_src+'&err_str='+encodeURIComponent(res.errMsg);

                console.log('url='+window.location.href+'&err_str='+res.errMsg);

                alert("支付失败:"+res.err_msg);

            }
            else
            {
                img.src = err_log_src+'&err_str='+encodeURIComponent(res.errMsg);

                console.log('url='+window.location.href+'&err_str='+res.errMsg);

                alert("支付失败,由于网络问题提交失败,请点击左上角关闭并重新进入");
            }


            if (typeof success == "function")
            {
                success.call(this, {code : code});
            }
        },
        fail: function(res)
        {
            console.log(res);



            if (typeof fail == "function")
            {
                fail.call(this, res);
            }
        },complete : function(res)
        {

            debugger;
        },
        cancel : function(res)
        {

            debugger;
        }
    };

    data = $.extend({},data,callback);

    wx.chooseWXPay(data);

};


module.exports = WeiXinSDK;


转载于:https://my.oschina.net/u/2405644/blog/492396

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值