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;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章