源碼:php
/** * 微信 接口 */ //微信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;