提交代码

dev_xds
姜玉琦 2024-03-31 23:41:45 +08:00
parent 3ceb360237
commit ea6ee3af97
4 changed files with 166 additions and 0 deletions

View File

@ -0,0 +1 @@
29aef62cd1316f1635063c5b86a3ffee

View File

@ -0,0 +1,71 @@
<template>
<div class="app-content">
</div>
</template>
<script>
export default {
name: "build",
data() {
return {
userOpenId:"",
show: true,
dialogVisible: false,
bindPhoneVo: {
openId: '',
phone: ''
}
};
},
watch: {},
created() {
this.userOpenId = this.$route.query.userOpenId;
console.log("userOpenId====>",userOpenId);
let qs = this.getQueryString('userOpenId');
console.log("getQueryString====>",qs);
this.wechatLogin();
},
methods: {
wechatLogin() {
//
let openId = this.getQueryString('openId') || '';
// token === '' && openId != ''
if(openId != '') {
//
this.bindPhoneVo.openId = openId
this.dialogVisible = false
console.log("dialogVisible===>");
} else {
//
console.log("我要去登录了===>");
let _baseUrl = "https://szgc.jhncidg.com";
window.location = _baseUrl + '/jhapi/wxAuth/authorize?returnUrl=' + _baseUrl + "/#/wxAuth"
}
},
saveBind() {
console.log("saveBind");
},
getQueryString (paramName) {
if(window.location.href.indexOf('?') == -1) return '';
let searchString = window.location.href.split('?')[1];
let i, val, params = searchString.split("&");
for (i=0;i<params.length;i++) {
val = params[i].split("=");
if (val[0] == paramName) {
return val[1];
}
}
return '';
}
},
};
</script>
<style scope>
.app-content {
width: 100%;
height: 100%;
background: #191d28
url("https://szgcwx.jhncidg.com/staticFiles/img/CORE_40247DD946964A15AA0D4000E1031E19.png")
no-repeat bottom/100%;
}
</style>

View File

@ -0,0 +1 @@
CIDdpE5WbJ0acBKs

View File

@ -0,0 +1,93 @@
package com.yanzhu.jh.wxsetting.controller;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.controller.BaseController;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.api.WxConsts;
import me.chanjar.weixin.common.exception.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken;
import me.chanjar.weixin.mp.bean.result.WxMpUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
/**
* openId
*
* @author JiangYuQi
* @date 2023-08-24
*/
@Slf4j
@Controller
@RequestMapping("/wxAuth")
public class WxBindingController extends BaseController {
@Autowired
private WxMpService wxMpService;
@GetMapping("/auth")
@ResponseBody
public String auth(@RequestParam(value = "echostr", defaultValue = "没有获取到") String echostr) {
return echostr;
}
/**
* @author tao
* @param:
* @return
*
*/
@GetMapping("/authorize")
public String authorize(@RequestParam(value = "returnUrl", defaultValue = "https://szgc.jhncidg.com/jhapi/") String returnUrl) throws UnsupportedEncodingException {
log.info("【微信网页授权】进来了,参数={}", returnUrl);
//1. 配置
//2. 调用方法
String url = RuoYiConfig.getProjectUrl() + "wxAuth/userInfo";
/*
*
* URLEncoder.decode(returnUrl,"UTF-8"
* https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
*/
String redirectUrl = wxMpService.oauth2buildAuthorizationUrl(url, WxConsts.OAUTH2_SCOPE_USER_INFO, URLEncoder.encode(returnUrl, "utf-8"));
log.info("【微信网页授权】获取code,result={}", redirectUrl);
return "redirect:" + redirectUrl;
}
/**
* @author tao
* @param:
* @return
* url
*/
@GetMapping("/userInfo")
public String userInfo(@RequestParam("code") String code,
@RequestParam("state") String returnUrl) throws WxErrorException {
/*urlauthorization code
codeaccess tokenopenid*/
WxMpOAuth2AccessToken wxMpOAuth2AccessToken = new WxMpOAuth2AccessToken();
try {
//获取access token
wxMpOAuth2AccessToken = wxMpService.oauth2getAccessToken(code);
log.info("【AccessToken】{}", wxMpOAuth2AccessToken.getAccessToken());
} catch (WxErrorException e) {
log.error("【微信网页授权】{}", e);
}
// 拿到openid
String openId = wxMpOAuth2AccessToken.getOpenId();
log.info("【openid】{}", openId);
log.info("【我是前端要回调的地址:】{}", returnUrl + "&openid=" + openId);
// 顺便获取一下用户信息
WxMpUser wxMpUser = wxMpService.oauth2getUserInfo(wxMpOAuth2AccessToken, "zh_CN");
log.info("【用户信息:】{}", wxMpUser.toString());
//注意拼接参数,第一个参数需要加问号,之后参数使用&拼接的问题
//return "redirect:" + returnUrl + "/#/?openid=" + openId;
return "redirect:" + returnUrl + "&openid=" + openId;
}
}