微信小程序登陆过程



1.在小程序的前端向后端发送code
wx.login({
      success(res) {
        if (res.code) {
             //发起网络请求
            //console.log("globalData="+app.globalData.baseurl)
          wx.request({
            url: app.globalData.baseurl+'wxlogin_customer',
            data: {
              "code": res.code
            },
            header: {
              "Content-Type": "application/json"
            },
            method: "POST",
            success: (res => {
              console.log(res);
            }),
            fail: (res => {
              console.log("fail");
            }) 
          })
        } else {
          console.log('fail')
        }
      }
    })
2.在后端向服务器获取openid和sessionkey(java)
2.1 工具类
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import java.util.List;  /**  * Created by HDL on 2019/08/04.zs  */ public class WxUserinfoUtils {  private static final String KEY_APP_ID = "wx9f09ab9783fc7508";  private static final String KEY_SECRETKEY = "b76f3f2dd60338d75571574a03e02847";   public static String getOppenid(String code) {
        String params = "appid=" + KEY_APP_ID + "&secret=" + KEY_SECRETKEY + "&js_code=" + code + "&grant_type=authorization_code";
        String url = "https://api.weixin.qq.com/sns/jscode2session?" + params;
        String result = "";
        BufferedReader in = null; try {
            String urlNameString = url;
            URL realUrl = new URL(urlNameString); // 打开和URL之间的连接  URLConnection connection = realUrl.openConnection(); // 设置通用的请求属性  connection.setRequestProperty("accept", "*/*");
            connection.setRequestProperty("connection", "Keep-Alive");
            connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); // 建立实际的连接  connection.connect(); // 获取所有响应头字段  java.util.Map<String, List<String>> map = connection.getHeaderFields(); // 遍历所有的响应头字段  for (String key : map.keySet()) {
                System.out.println(key + "--->" + map.get(key));
            } // 定义 BufferedReader输入流来读取URL的响应  in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String line; while ((line = in.readLine()) != null) {
                result += line;
            }
        } catch (Exception e) {
            e.printStackTrace();
        } // 使用finally块来关闭输入流  finally { try { if (in != null) {
                    in.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        } return result;
    }
}

全部评论

相关推荐

2024-12-21 18:48
西安邮电大学 C++
黑皮白袜臭脚体育生:按使用了什么技术解决了什么问题,优化了什么性能指标来写会更好另外宣传下自己的开源仿b站微服务项目,GitHub已经390star,牛客上有完整文档教程
点赞 评论 收藏
分享
给🐭🐭个面试机会吧:我boss直聘天天有家教跟我打招呼😓
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务