1、获得openid可以直接app.js中获得
wx.login({
success: function (res) {
if (res.code) {
//这里存储了appid、secret、token
var url = 'https://api.weixin.qq.com/sns/jscode2session?appid=' + _this.globalData.appid + '&secret=' + _this.globalData.AppSecret + '&js_code=' + res.code + '&grant_type=authorization_code';
http.get(url,{},res=>{
// console.log(res);
var openid = res.data.openid;
wx.setStorage({
key:"openid",
data:{"openid":openid}
})
})
} else {
console.log('获取用户登录态失败!' + res.errMsg)
}
}
});
1、2最简单获得用户信息方法
wx.getUserProfile({
desc: '用于完善会员资料',
success: (res) => {
var name = res.userInfo.nickName;//用户微信名称
var img = res.userInfo.avatarUrl;//用户头像
})
})
2、在封装方法中获得用户信息,创建文件http.js,编写同时封装gat和post,上面get调用这里的get请求获得openid的。
// 封装gat
function get(url,date,res){
wx.request({
url: url, //仅为示例,并非真实的接口地址
data: date,//数据格式{'name':1,'xx':2}
header: {'content-type': 'application/json'},// 默认值get,
method:'get',
dataType:"json",
responseType:"text",
success (e) {
res(e);
},
fail: ()=>{
wx.showToast({
title: '系统繁忙,请联系管理员',
icon: 'none',
duration: 2000
})
}
})
}
// 封装post
function post(url,date,res){
wx.request({
url: url, //仅为示例,并非真实的接口地址
data: date,//数据格式{'name':1,'xx':2}
header: { "Content-Type": "application/x-www-form-urlencoded"},//post
method:'post',
dataType:"json",
responseType:"text",
success (e) {
res(e)
},
fail: ()=>{
wx.showToast({
title: '系统繁忙,请联系管理员',
icon: 'none',
duration: 2000
})
}
})
}
var _this = this;
// 登录
function name_login(url,openid,e){
wx.getUserProfile({
desc: '用于完善会员资料',
success: (res) => {
wx.setStorage({
key:"name_login",
data:res.userInfo
})
var data = {'equipment':1,'appid':'微信appid','openid':openid,"user":res.userInfo.nickName,'img':res.userInfo.avatarUrl};
var urls = url+"/wxapp/add";
post(urls,data,es=>{
console.log(es)
if(es.data.message == "添加成功"){
var da = es.data.data;
}else{
//用户已存在
var da = es.data.data[0];
}
wx.setStorage({
key:"username",
data:da
})
})
e(res)
}
})
}
// 使用
// const app = getApp()
// var http = require("../../utils/http/https")
// var url = app.globalData.apphttp+"/wxapp/1";
// http.get(url,1,res=>{
// console.log(res)
// })
module.exports = {
get,
post,
name_login,
}
/**
* 获得openid
* */
public function getOpenid(Request $request){
$js_code = $request->get("js_code");
$url = "https://api.weixin.qq.com/sns/jscode2session"."?appid={$request->appID}&secret={$request->appSecret}&js_code={$js_code}&grant_type=authorization_code";
$date = $this->curl_get($url);
return json(['code'=>200,'data'=>$date]);
}
/**
* 发起get请求
* */
public function curl_get($url){
$getUrl = file_get_contents($url);
$data = json_decode($getUrl, true);
return $data;
}