欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java-微信公众号菜单跳转网页获取openid

程序员文章站 2024-03-18 23:55:16
...

1. 开通开发者帐号

开通开发者帐号,需要提前准备好以下材料:
1. 公司营业执照
2. 300元
3. 公司对公帐号
具体开通流程可以自行到【微信公众号】官网查看操作。

2.配置网页授权

  • 成功开发者帐号后,登录公众号后台,点击【开发–接口权限】,找到如下菜单
    java-微信公众号菜单跳转网页获取openid
  • 选择修改 网页授权。在弹出的授权页面,按页面提示进行配置:
    java-微信公众号菜单跳转网页获取openid

3.设置自定义菜单

如果你是按微信官网开发文档进行操作的话,恭喜你,你离发疯不远了,
官网的坑实在是太多,而且没有专门针对不同语言的完整示例

这里以java语言为例,进行介绍。
java-微信公众号菜单跳转网页获取openid

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;
    }
相关标签: java技术