Java 獲取小程序openid(基於SpringBoot)

Java 獲取小程序openid(基於SpringBoot)

官方文檔 wx.login

1.引入Request封裝依賴

<!--Request依賴-->
<dependency>
   <groupId>com.github.kevinsawicki</groupId>
   <artifactId>http-request</artifactId>
   <version>6.0</version>
</dependency>

2.封裝請求

可以在開發者後臺獲取AppIdAppSecret

WxMiniConfig

public class WxMiniConfig {
    public static String AppId = "";
    public static String AppSecret="";
}

構建接口請求

WxOpenData


import com.github.kevinsawicki.http.HttpRequest;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;
@RestController
public class WxOpenData {
    @RequestMapping(value = "/WxOpenData")
    public String getWxOpenData(@RequestParam(value = "js_code",required = true) String js_code){
        Map<String, String> data = new HashMap<String, String>();
        data.put("appid", WxMiniConfig.AppId);
        data.put("secret", WxMiniConfig.AppSecret);
        data.put("js_code", js_code);
        data.put("grant_type", "authorization_code");

        String response = HttpRequest.get("https://api.weixin.qq.com/sns/jscode2session").form(data).body();

        //JSONObject obj= JSON.parseObject(response);//將json字符串轉換爲json對
        return response.toString();
    }

}

3.小程序端請求寫法

wx.login({
    success: res => {
        wx.request({
          url: 服務地址 + '/WxOpenData',
          data: {
            js_code: res.code
          },
          success: _res => {
              console.log(_res);//打印返回的openid 等信息 ,可以JSON.parse()提取
          },
          fail: _res => {

          }
        })
      }
})

4. SSL證書校驗問題

sun.security.provider.certpath.SunCertPathBuilderException

Protocol handler initialization failed

可以自己下載SSL證書Tomcat版,配置到Resource目錄下。

application.properties配置證書部分內容如下所示

#server.ssl.key-store=classpath:atlab.pfx
server.ssl.key-store=classpath:coms.pfx
#證書密碼,請修改爲您自己證書的密碼.
server.ssl.key-store-password=ARU3dlCp
#祕鑰庫類型
#server.ssl.key-store-type:PKCS12
server.ssl.key-store-type=JKS

之後重啓後多請求幾次即可恢復正常服務。

參考文檔

https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章