egret微信小游戏获取openid

<----------------------------------------------------------------预警分割线-------------------------------------------------------------------->
https://developers.weixin.qq.com/search?action=list&t=search/index&blogcategory=511&search_type=1&key=%E4%BD%93%E9%AA%8C%E7%89%88%E4%B8%8D%E5%BC%80%E5%90%AF%E8%B0%83%E8%AF%95%E5%8A%9F%E8%83%BD&token=&lang=zh_CN

注意:由于我是直接获取openID,在客户端使用了“api.weixin.qq.com”,以致在手机微信上只能开启调试模式才能进入,否则卡住,原因是(文档原话):
出于安全考虑,为避免开发者将AppSecret放置在小程序的前端代码内,平台禁止设置此域名。
小程序的开发者密码(AppSecret)是一个非常重要的字段,使用该密码可以调用小程序的所有后台接口。请不要将该字段放置在微信小程序的前端代码中,因为微信手机客户端容易被反编译并轻松获得Appsecret,造成重大的安全威胁。开发者应将Appsecret保存到后台服务器中,通过服务器使用Appsecert获取Accesstoken。微信公众平台小程序后台的服务器地址设置也将禁止将“api.weixin.qq.com”域名的配置,所有对于“api.weixin.qq.com”域名下的接口请求请全部通过后台服务器发起,请勿直接通过小程序的前端代码发起。

小程序服务器域名配置常见错误及解决方法:http://kf.qq.com/faq/1706236NjINj1706236VRZBR.html
所以如果需要使用openid,应由后端来获取

以下是原内容:

egret项目内代码:

 var url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + 参数 + "&secret=" + 参数 + "&js_code=" + 参数 + "&grant_type=authorization_code";

小游戏项目内

getWXOpenId(url) {
    return new Promise((resolve, reject) => {
      wx.request({
        url: url,
        success: function (res) {
          console.log(JSON.stringify(res));
          resolve(res);
        }
      })
    })
  }

在微信开发工具内使用则会提示不过,在手机微信上打开调试模式,会发现openid已经获取到了。

补充:如果在微信开发者工具上
勾选了最底下后,在开发者工具里也可以获取到openid,比上面只能在手机上看并且调试其他功能方便多了(做一次修改得上传一次版本)......

猜你喜欢

转载自blog.csdn.net/qq_39194398/article/details/81482090