微信小程序> 微信小程序登录Java后台接口

微信小程序登录Java后台接口

浏览量:454 时间: 来源:KyLin1997

微信小程序登录java后台接口

首先看一下微信小程序的开发文档:
微信小程序开发文档

步骤:

  1. 小程序端向微信接口服务发送请求——wx.login();获取到登录临时凭证code
  2. 小程序端拿着获取到的code向后台(这里是java服务端),使用wx.request()向自己的服务器发送请求(接口服务器自己定义)
  3. 后台服务器拿着小程序端传过来的code,以及自己的APPID,secretKey向微信方发送HttpGet请求
  4. 后台服务器获取到微信方返回回来的openId,session_key,然后加上自己本地的登录状态(本地自己定义),发送给小程序端
  5. 小程序端接收到后台传输过来的登录状态,保存到storage中以供以后使用。

具体实现步骤

小程序端

随便弄一个按钮,绑定下面的方法
小程序

 //与后端通信    bindtest: function (){      wx.login({        success:res=>{          let _code=res.code;          //获取到code之后再发送给后端          wx.request({            url: 'http://localhost:8080/login',            data:{              code:_code,            },            method:'POST',            header: {              'content-type': 'application/x-www-form-urlencoded' // 默认是json            },            success: function (res) {              console.log(res.data);            },            fail: function (res) {              console.log(".....fail.....");            }          })        }      })  }

java服务器端

package com.kylin.wxtest.controller;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.kylin.wxtest.bean.Login;import org.apache.http.HttpEntity;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.HttpClients;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;@RestControllerpublic class UserController {    private static final long  serialVersionUID=1L;    private static final String APPID = "wxb88xxxxxxxx46140e";    private static final String SECRET = "19fa40c6xxxxxxxx6ae971267";    private String code;    public String getCode() {        return code;    }    public void setCode(String code) {        this.code = code;    }    @RequestMapping(value = "/login")    public String login(String code){        System.out.println(code);        System.out.println("------------------------------------");        //微信那边的接口,grant_type=authorization_code是固定的        String url="https://api.weixin.qq.com/sns/jscode2session?appid="+APPID+                "&secret="+SECRET+"&js_code="+ code +"&grant_type=authorization_code";         //发送请求给微信后端        CloseableHttpClient httpClient= HttpClients.createDefault();        HttpGet httpGet=new HttpGet(url);        InputStream inputStream=null;        CloseableHttpResponse httpResponse=null;        StringBuilder result=new StringBuilder();        try {            httpResponse=httpClient.execute(httpGet);            HttpEntity entity=httpResponse.getEntity();            inputStream=entity.getContent();            BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));            String line="";            while ((line=bufferedReader.readLine())!=null){                System.out.println(line); //这里需要使用fastjson来提取一下内容                JSONObject jsonObject= JSON.parseObject(line);                Login login=new Login();                login.setOpenid(jsonObject.getString("openid"));                login.setSession_key(jsonObject.getString("session_key"));                result.append(login.getOpenid()+"hello_world"+login.getSession_key());                System.out.println(result.toString());            }        } catch (IOException e) {            e.printStackTrace();        }        return result.toString();    }}

总结

这样小程序端就可以获取到openId以及session_key;相当于授权成功!

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎