前端代码
data() {
return {
openid: "",
server: '',
code:''
};
},
mounted() {
this.getCode()
},
methods:{
getCode() {
this.code = '';
var callback_url = '回调地址';
var appid = 'APPID';
this.code = this.getUrlCode().code;
if (this.code == null || this.code === '') {
window.location.href = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${encodeURIComponent(
callback_url
)}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`;
} else {
this.getUserInfo();
}
},
getUserInfo() {
let token = uni.getStorageSync("token");
const header = {
"Content-Type": "application/json",
"Authorization": token
};
let data = {}
data.code = this.code
data.appid= '你的appid'
data.secret= '你的secret'
uni.request({
url: '接口地址',
data: data,
header: header,
timeout: 20000,
method: 'POST',
dataType: 'json',
success: (res) => {
this.setOpenid(res.data.openid);
uni.setStorageSync('openid', res.data.openid)
}
})
},
getUrlCode() {
var url = location.search;
var theRequest = new Object();
if (url.indexOf('?') != -1) {
var str = url.substr(1);
var strs = str.split('&');
for (var i = 0; i < strs.length; i++) {
theRequest[strs[i].split('=')[0]] = strs[i].split('=')[1];
}
}
return theRequest;
},
}

- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
后端php代码
public function getOpenid(){
$code = input('post.code');
$param["appid"]=input('post.appid');
$param["secret"]=input('post.secret');
$param["code"]=$code;
$param["grant_type"]="authorization_code";
$json = $this->curlPost("https://api.weixin.qq.com/sns/oauth2/access_token",$param);
$rv=json_decode($json,true);
return json($rv);
}
public function curlPost($url = '', $postData = '', $options = array()) {
if (is_array($postData)) {
$postData = http_build_query($postData);
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
if (!empty($options)) {
curl_setopt_array($ch, $options);
}
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32