java-微信公衆號菜單跳轉網頁獲取openid

1. 開通開發者帳號

開通開發者帳號,需要提前準備好以下材料:
1. 公司營業執照
2. 300元
3. 公司對公帳號
具體開通流程可以自行到【微信公衆號】官網查看操作。

2.配置網頁授權

  • 成功開發者帳號後,登錄公衆號後臺,點擊【開發–接口權限】,找到如下菜單
    在這裏插入圖片描述
  • 選擇修改 網頁授權。在彈出的授權頁面,按頁面提示進行配置:
    在這裏插入圖片描述

3.設置自定義菜單

如果你是按微信官網開發文檔進行操作的話,恭喜你,你離發瘋不遠了,
官網的坑實在是太多,而且沒有專門針對不同語言的完整示例

這裏以java語言爲例,進行介紹。
在這裏插入圖片描述

3.1 自定義一個view類型的菜單

菜單創建的json格式如下:

{
   "name": "查看餘額",
   "type": "view",
   "url": "http://服務器地址/redirect/redirecttocashout"
}

3.2 定義控制層,接收菜單配置的跳轉URL

    private static final String STATE_CASHOUT = "cashOut";
    @RequestMapping("/redirecttocashout")
    public String redirectToCashout() {
        return "redirect:https://open.weixin.qq.com/connect/oauth2/authorize?appid="
                + WEIXIN_GZH_APPID + "&redirect_uri=" + SERVER_ROOT_URL
                + "/redirect/weixinoauth&response_type=code&scope=snsapi_base&state=" + STATE_CASHOUT + "#wechat_redirect";
    }

3.3 接收重定向的方法處理

@RequestMapping("/weixinoauth")
    public String weixinOauth(String code, String state) {
        String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid="
                + WEIXIN_GZH_APPID + "&secret=" + WEIXIN_GZH_SECRET + "&code=" + code + "&grant_type=authorization_code";
        HttpClient httpClient = new HttpClient(url);
        String content = "";
        try {
            httpClient.get();
            content = httpClient.getContent();
        } catch (Exception e) {
            e.printStackTrace();
        }
        String openid = JSONObject.parseObject(content).getString("openid");
        String redirect = "";
        switch (state){
            case STATE_CASHOUT:
                redirect = PAISHOU_ROOT_URL + "my_account?openId=" + openid;
                break;
        }
        return "redirect:" + redirect;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章