1、开发前,先看jsdk开发文档
jsdk开发文档
2、开发前先申请一个测试的微信公众号,如有微信公众号,则跨过与第二步
地址:测试微信公众号申请地址
3、申请成功测试公众号后,对域名进行配置
4、开始开发,需要调用微信登录获取code给后端,后端返回用户的微信信息
网页授权
<script>
const isWechat = () => {
return (
String(navigator.userAgent.toLowerCase().match(/MicroMessenger/i)) ===
"micromessenger"
);
};
export default {
data () {
return {
code: "",
};
},
mounted () {
this.getWxH5Code()
},
methods: {
getWxH5Code () {
if (isWechat) {
let appid = "wxappid"; //自己的微信APPid 可以通过接口让后端给,也可以前端写死
let code = this.getWxUrlCode().code; //是否存在code
let local = window.location.href; //根据自己的配置调整
if (code == null || code === "") {
//不存在就打开上面的地址进行授权
window.location.href =
"https://open.weixin.qq.com/connect/oauth2/authorize?appid=" +
appid +
"&redirect_uri=" +
encodeURIComponent(local) +
"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
//snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),
//snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。
//并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )
} else {
console.log('获取微信的code')
console.log(code)
this.code = code;
}
},
getWxUrlCode() {
var url = location.search;//根据自己的配置调整
var wxCode = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1);
var strs = str.split("&");
for (var i = 0; i < strs.length; i++) {
wxCode[strs[i].split("=")[0]] = strs[i].split("=")[1];
}
}
return wxCode;
},
},
};
}
</script>