Skip to content

Commit e504ea8

Browse files
committed
add readme, add file
1 parent 2b5051e commit e504ea8

File tree

4 files changed

+177
-2
lines changed

4 files changed

+177
-2
lines changed

app/wechatshare.js

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
/* eslint-disable */
2+
!(function() {
3+
var jsonpData = function(url, callback) {
4+
window.yylivewechatsharecallback = function(data) {
5+
delete window.yylivewechatsharecallback;
6+
document.body.removeChild(script);
7+
callback(data);
8+
}
9+
let script = document.createElement('script');
10+
script.src = url + (url.indexOf('?') >= 0 ? '&' : '?') + 'callback=yylivewechatsharecallback';
11+
document.body.appendChild(script);
12+
}
13+
14+
var cloneObj = function(oldObj) { //复制对象方法
15+
if (typeof(oldObj) != 'object') return oldObj;
16+
if (oldObj == null) return oldObj;
17+
var newObj = new Object();
18+
for (var i in oldObj)
19+
newObj[i] = cloneObj(oldObj[i]);
20+
return newObj;
21+
}
22+
23+
var extendObj = function() { //扩展对象
24+
var args = arguments;
25+
if (args.length < 2) return;
26+
var temp = cloneObj(args[0]); //调用复制对象方法
27+
for (var n = 1; n < args.length; n++) {
28+
for (var i in args[n]) {
29+
temp[i] = args[n][i];
30+
}
31+
}
32+
return temp;
33+
}
34+
35+
var wechatShare = function(opt) {
36+
if (!(this instanceof wechatShare)) {
37+
return new wechatShare(opt);
38+
}
39+
var config = {
40+
title: '短视频分享',
41+
desc: '短视频分享描述',
42+
link: '//www.yy.com',
43+
img: '//makefriends.bs2dl.yy.com/48980134342886519512.png',
44+
request_share_url: '//www.yy.com/mobileweb/share/weixinSign2?url=' + encodeURIComponent(window.location.href.split('#')[0]),
45+
success_callback: function() {
46+
47+
},
48+
cancel_callback: function() {
49+
50+
},
51+
debug: false
52+
}
53+
this.defaults = extendObj(config, opt);
54+
// alert(JSON.stringify(this.defaults));
55+
this.init();
56+
}
57+
58+
window.___isWxReaday = false;
59+
wechatShare.prototype = {
60+
init: function() {
61+
var self = this;
62+
if(window.___isWxReaday){
63+
self.setShare(self.defaults);
64+
}else{
65+
self.doconfig();
66+
}
67+
},
68+
doconfig: function() {
69+
var self = this;
70+
/*share*/
71+
var request_share_url = self.defaults.request_share_url;
72+
jsonpData(request_share_url, function(jdata) {
73+
var msg = jdata.data;
74+
wx.config({
75+
debug: self.defaults.debug, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
76+
appId: msg.appId, // 必填,公众号的唯一标识
77+
timestamp: msg.timestamp, // 必填,生成签名的时间戳
78+
nonceStr: msg.nonceStr, // 必填,生成签名的随机串
79+
signature: msg.signature, // 必填,签名,见附录1
80+
jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'chooseWXPay', 'onMenuShareWeibo', 'startRecord', 'stopRecord', 'onVoiceRecordEnd', 'playVoice', 'pauseVoice', 'stopVoice', 'onVoicePlayEnd', 'uploadVoice', 'downloadVoice', 'translateVoice'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
81+
});
82+
wx.ready(function() {
83+
self.setShare(self.defaults);
84+
window.___isWxReaday = true;
85+
});
86+
});
87+
/*share end*/
88+
},
89+
setShare: function(pnote){
90+
var share_title = pnote.title;
91+
var share_desc = pnote.desc;
92+
var share_link = pnote.link;
93+
var share_img = pnote.img;
94+
console.log('set share', share_title);
95+
//分享到朋友圈
96+
wx.onMenuShareTimeline({
97+
title: share_title + ':' + share_desc, // 分享标题
98+
link: share_link, // 分享链接
99+
imgUrl: share_img, // 分享图标
100+
success: function() {
101+
pnote.success_callback(1);
102+
},
103+
cancel: function() {
104+
pnote.cancel_callback(1);
105+
}
106+
});
107+
//分享给朋友
108+
wx.onMenuShareAppMessage({
109+
title: share_title, // 分享标题
110+
desc: share_desc, // 分享描述
111+
link: share_link, // 分享链接
112+
imgUrl: share_img, // 分享图标
113+
type: '', // 分享类型,music、video或link,不填默认为link
114+
dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
115+
success: function() {
116+
pnote.success_callback(2);
117+
},
118+
cancel: function() {
119+
pnote.cancel_callback(2);
120+
}
121+
});
122+
wx.onMenuShareQQ({
123+
title: share_title, // 分享标题
124+
desc: share_desc, // 分享描述
125+
link: share_link, // 分享链接
126+
imgUrl: share_img, // 分享图标
127+
success: function() {
128+
pnote.success_callback(3);
129+
},
130+
cancel: function() {
131+
pnote.cancel_callback(3);
132+
}
133+
});
134+
wx.onMenuShareWeibo({
135+
title: share_title, // 分享标题
136+
desc: share_desc, // 分享描述
137+
link: share_link, // 分享链接
138+
imgUrl: share_img, // 分享图标
139+
success: function() {
140+
pnote.success_callback(4);
141+
},
142+
cancel: function() {
143+
pnote.cancel_callback(4);
144+
}
145+
})
146+
}
147+
}
148+
// RequireJS && SeaJS
149+
if (typeof define === 'function') {
150+
define(function() {
151+
return wechatShare;
152+
});
153+
154+
// NodeJS
155+
} else if (typeof exports !== 'undefined') {
156+
module.exports = wechatShare;
157+
} else {
158+
this.wechatShare = wechatShare;
159+
}
160+
161+
})()

logs/access-20171031.log

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
::1 - - [31/Oct/2017:02:05:12 +0000] "GET /wechatConfig?url=test.ijarvis.cn&callback=fn HTTP/1.1" 200 202 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
2+
::1 - - [31/Oct/2017:02:06:05 +0000] "GET /wechatConfig?url=test.ijarvis.cn&callback=fn HTTP/1.1" 200 202 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
3+
::1 - - [31/Oct/2017:02:06:05 +0000] "GET /favicon.ico HTTP/1.1" 404 14 "http://localhost:8091/wechatConfig?url=test.ijarvis.cn&callback=fn" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
4+
::1 - - [31/Oct/2017:02:06:08 +0000] "GET /wechatConfig?url=test.ijarvis.cn&callback=fn HTTP/1.1" 200 202 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
5+
::1 - - [31/Oct/2017:02:07:47 +0000] "GET /wechatshare.js HTTP/1.1" 200 6596 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"

readme.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# wechat auth 微信认证
2+
> 微信认证后台代码与前端 config 配置信息
3+
4+
## 项目初衷
5+
使用 node + express + redis 完成认证, 只需在 config.js 修改配置项, 进行部署即可使用.
6+
此部分在业务开发会用到, 特此抽出, 建议在业务开发时关于微信认证分享部分全部由前端掌控, 这样后端可以专注接口开发, 而前端自行负责微信认证方便调试.
7+
8+
## 项目结构
9+
前端 SDK 在 app 文件夹中, 后端启动文件为 wechatauth.js.

wechatauth.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ app.use(morgan('combined', {
4545

4646
var port = process.env.PORT || 8091; //set port
4747

48-
48+
app.use(express.static('app'));
4949
//REGISTER OUR ROUTES
5050
//===================================
5151
app.use('/', indexRouter);
@@ -54,7 +54,7 @@ app.use('/', indexRouter);
5454
app.use(function(req, res, next){
5555
var err = new Error('not Found');
5656
err.status = 404;
57-
next(err);
57+
res.status(404).send(err);
5858
});
5959

6060
app.use(function(err, req, res, next) {

0 commit comments

Comments
 (0)