公众号后台设置
现在订阅号已经不能静默获取openid,认证服务号才可以静默获取openid
需要准备的资料
注意订阅号已经不能静默获取openid,不要去白费力气了
1.注册认证的服务号
2.可以访问的域名
3.基础appid,后面开发要用到哦
第一步.开始设置
登录公众号后台,进入<接口权限>菜单
下一步,配置公众号域名,微信平台需要验证填写域名是否正确
微信平台通过访问特定的验证文件验证域名的合法性,根据提示下载验证文件,并放到自己的服务器中,配置好之后,微信后台会到服务器中访问这个验证文件的链接地址,如果能够正常访问,则认为配置成功
第二步.设置开发静默获取openid的页面
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"/>
<meta name="aplus-terminal" content="1"/>
<meta name="apple-mobile-web-app-title" content="Vote"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/>
<meta name="format-detection" content="telephone=no, address=no"/>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Cache-Control" content="no-cache"/>
<meta http-equiv="Expires" content="0"/>
<title>3D展示自定义页面</title>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script type="text/javascript">
window.onpageshow=function(evt){
if(evt.persisted){
window.location.reload();
}
}
</script>
<style>
.red{
color: #ff0628;
}
input::-webkit-input-placeholder {
color: #999;
-webkit-transition: color.5s;
}
input:focus::-webkit-input-placeholder, input:hover::-webkit-input-placeholder {
color: #c2c2c2;
-webkit-transition: color.5s;
}
</style>
</head>
<body style="background:yellow">
<script th:inline="javascript">
/*<![CDATA[*/
/*
获取参数
*/
function getUrlParam(paramName) {
var url = window.location.href;
var oRegex = new RegExp("[\?&]" + paramName + "=([^&]+)", "i");
var oMatch = oRegex.exec(url);
if (oMatch && oMatch.length > 1) {
return decodeURI(oMatch[1]);
} else {
return "";
}
}
function jumpLink(){
var url=encodeURIComponent(window.location.href.split("?")[0]);
// var url=window.location.href.split("?")[0];
var time=Date.now();
//正确填写公众号的appid,本例子是错误号请勿照搬 wxacfccc9bb6d07c50
var link="https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxacfccc9bb6d07c50&redirect_uri="+url+"&response_type=code&scope=snsapi_base&state="+time+"#wechat_redirect";
// alert(link);
window.location.replace(link);
}
var id=localStorage.getItem("wx-openid");
if(id) {
$("body").attr("data-id",id);
// alert(id);
}else{
var code = getUrlParam("code");
var state= getUrlParam("state");
// alert(state);
if(!state){
jumpLink();
}else{
var expired = (Date.now() - state)> 4*60*1000 ;
if(expired){
jumpLink();
}else{
if(code){
$.ajax({
type:"GET",
// 在服务端接收code,调用维信平台接口获取用户openid
url :"http://www.test.com/weixin/auth.json?code="+code,
success:function(result){
var obj;
if(typeof result==="string"){
try{
obj=JSON.parse(result);
}catch(e){
obj={};
}
}else{
obj=result;
}
if(obj.openid){
var openid=$.trim(obj.openid);
$("body").attr("data-id", openid);
localStorage.setItem("wx-openid",openid);
}else{
jumpLink();
}
},
error:function(err){
alert(err);
}
})
}else{
jumpLink();
}
}
}
}
/*]]>*/
</script>
<ul><li>这是测试页面</li></ul>
<div class="votePage">
<!--文字说明!-->
<div>
<div>支付金额:</div>
<div>
<input style="height:25px;ime-mode:disabled" id="amount" type="number" name="amount" step="0.1" min="1" max="999" placeholder="支付金额" required="required"/>
<button id="btnPay" name="pay" >付款</button>
</div>
</div>
</div>
</body>
</html>
第三步.把开发出来的html页面放到服务器
http://www.test.com/4d.html
通过微信访问这个页面,后台就可以获得相应的openid啦