微信小程序获取OpenId

微信小程序获取OpenId

 

微信小程序获取OpenId

在微信小程序中获取OpenId首先需要获取AppId和Secret。

AppId和Secret获取方法

image-20210901224618570

前端

wx.login({ success(res) { if (res.code) { //向后端发起网络请求 wx.request({ url: 'http://127.0.0.1:9090/testopenid', data: { code: res.code }, success:(response)=>{ //打印OpenId console.log(response.data); } }) } else { console.log('登录失败!' + res.errMsg) } } })
JAVASCRIPT 折叠 复制 全屏

后端:使用Java语言

package cn.order_api.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.apache.http.HttpEntity; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class TestOpenId { @RequestMapping("/testopenid") public String getUserInfo(@RequestParam(name = "code") String code) throws Exception { System.out.println("code" + code); String url = "https://api.weixin.qq.com/sns/jscode2session"; url += "?appid=xxxx";//将xxxx改成自己的appid url += "&secret=xxxx";//将xxxx改成自己的appSecret url += "&js_code=" + code; url += "&grant_type=authorization_code"; url += "&connect_redirect=1"; String res = null; CloseableHttpClient httpClient = HttpClientBuilder.create().build(); // DefaultHttpClient(); HttpGet httpget = new HttpGet(url); //GET方式 CloseableHttpResponse response = null; // 配置信息 RequestConfig requestConfig = RequestConfig.custom() // 设置连接超时时间(单位毫秒) .setConnectTimeout(5000) // 设置请求超时时间(单位毫秒) .setConnectionRequestTimeout(5000) // socket读写超时时间(单位毫秒) .setSocketTimeout(5000) // 设置是否允许重定向(默认为true) .setRedirectsEnabled(false).build(); // 将上面的配置信息 运用到这个Get请求里 httpget.setConfig(requestConfig); // 由客户端执行(发送)Get请求 response = httpClient.execute(httpget); // 从响应模型中获取响应实体 HttpEntity responseEntity = response.getEntity(); System.out.println("响应状态为:" + response.getStatusLine()); if (responseEntity != null) { res = EntityUtils.toString(responseEntity); System.out.println("响应内容长度为:" + responseEntity.getContentLength()); System.out.println("响应内容为:" + res); } // 释放资源 if (httpClient != null) { httpClient.close(); } if (response != null) { response.close(); } JSONObject jo = JSON.parseObject(res); String openid = jo.getString("openid"); System.out.println("openid" + openid); return openid; } }
 
0
0
 
« 上一篇: L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到一个处理错误
» 下一篇: Mybatis-Plus按昨天、今天、明天、近?天,自定义起始时间查询
posted @   ITFengHua  阅读(388)  评论(0编辑  收藏  举报

__EOF__

本文作者fanfan
本文链接https://www.cnblogs.com/fanwenyan/p/16909700.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   MaskerFan  阅读(388)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示