代码拉取完成,页面将自动刷新
nodejs服务端程序
var express=require('express');
var app =express();
var mysql = require('mysql');
var bodyParser = require("body-parser");
const request = require('request');
const querystring = require('querystring');
const appId = "小程序ID";
const appSecret = "小程序秘钥";
let https = require("https");
let fs = require("fs");
// Configuare https
const httpsOption = {
key : fs.readFileSync("./https/5394471_blogapi.zhangqx.com.key"),
cert: fs.readFileSync("./https/5394471_blogapi.zhangqx.com.pem")
}
//app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json({limit: '1mb'})); //body-parser 解析json格式数据
app.use(bodyParser.urlencoded({ //此项必须在 bodyParser.json 下面,为参数编码
extended: true
}));
//获取openid
app.post('/getopenid', function (req, res) {
console.log(req.body) //查看请求的body里面的内容
var data = {
'appid': appId,
'secret': appSecret,
'js_code': req.body.code,
'grant_type': 'authorization_code'
};
console.log(data);
// querystring的stringify用于拼接查询
var content = querystring.stringify(data);
// 根据微信开发者文档给的API
var url = 'https://api.weixin.qq.com/sns/jscode2session?' + content;
// 对url发出一个get请求
request.get({
'url': url
}, (error, response, body) => {
// 将body的内容解析出来
let result = JSON.parse(body);
result.code = req.body.code;
console.log(result)
// 返回JSON格式数据
res.json(result)
})
})
//配置服务端口
var server = app.listen(80, function () {
var port = server.address().port;
console.log('App listening at %s', port);
})
https.createServer(httpsOption, app).listen(443);
小程序端程序
wx.request({
url: 'https://blogapi.zhangqx.com/getopenid',
method:'POST',
data: {
'code': res.code
},
header: {
'content-type': 'application/json' // 默认值
},
success (res) {
console.log(res.data)
}
})
后端的另一种写法(供参考)
//获取openid
app.post('/getopenid2', function (req0, res0) {
var data = {
'appid': appId,
'secret': appSecret,
'js_code': req0.body.code,
'grant_type': 'authorization_code'
};
var content = querystring.stringify(data);
// 根据微信开发者文档给的API
var url = 'https://api.weixin.qq.com/sns/jscode2session?' + content;
https.get(url, (res) => {
res.on('data', (d) => {
console.log('返回的信息: ', JSON.parse(d));
openid = JSON.parse(d).openid;//得到openid
sessionKey = JSON.parse(d).session_key;//得到session_key
let result = JSON.parse(d);
result.code = req0.body.code;
// 返回JSON格式数据
res0.json(result)
}).on('error', (e) => {
console.error(e);
});
});
});
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。