我已经获取到微信客户端返回的code,但是通过https://api.weixin.qq.com/sns/oauth2/access_toke网址没有获取到openid,网址无效果
ringa_lee
1.登录公众账号设置OAuth2.0 2.设置菜单按钮URL为OAuth链接 3.页面后台获取:
public String getopenId() { HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html"); String code = request.getParameter("code"); String urlstr = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=<appId>&secret=<secret>&code=" + code + "&grant_type=authorization_code"; JSONObject json; try { json = JSONObject.fromObject(HTTPTools.postToGetJson(urlstr)); openId = json.getString("openid"); } catch (Exception e) { // e.printStackTrace(); return ""; } return openId; }
楼主,跪求你是怎么获取code的?求具体的代码啊。我这个根本无法获取code,反编译之后代码里也没有code这个属性
https://open.weixin.qq.com/cgi-bin/frame?t=resource/res_main_tmpl&verify=1&lang=zh_CN&token=e86321da7b63085479a8db8e4552b98efcb599be
注意“[3] 接收微信的请求及返回值” 这部分内容,包名和类名要跟文档里的命名的一样才可以
//重写onresume()方法
@Override protected void onResume() { if (type != null && type.equals("mwx")) { SharedPreferences settings = getSharedPreferences("setting", 0); String code = settings.getString("code", null); if (code != null && !code.equals("")) { showProgress(true); getOpenid(code); } settings.edit().clear(); settings.edit().commit(); } super.onResume(); }
// 获取微信用户的openid和access token public void getOpenid(String code) { final AsyncHttpClient httpClient = Gl.sharedAsyncClient(); RequestParams params = new RequestParams(); params.put("appid", Constants.wxAPP_ID); params.put("secret", Constants.wxAppSecret); params.put("code", code); params.put("grant_type", "authorization_code"); String httpurl = "https://api.weixin.qq.com/sns/oauth2/access_token"; httpClient.get(httpurl, params, new JsonHttpResponseHandler() {
@Override public void onSuccess(int statusCode, Header[] headers, JSONObject response) { try { String opendid = response.getString("openid"); if (opendid != null && !opendid.equals("")) { openid = response.getString("openid"); otherLogin("mwx", opendid); } } catch (JSONException e) { e.printStackTrace(); } super.onSuccess(statusCode, headers, response); } @Override public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { super.onFailure(statusCode, headers, responseString, throwable); } }); }
1.登录公众账号设置OAuth2.0
2.设置菜单按钮URL为OAuth链接
3.页面后台获取:
楼主,跪求你是怎么获取code的?求具体的代码啊。我这个根本无法获取code,反编译之后代码里也没有code这个属性
https://open.weixin.qq.com/cgi-bin/frame?t=resource/res_main_tmpl&verify=1&lang=zh_CN&token=e86321da7b63085479a8db8e4552b98efcb599be
注意“[3] 接收微信的请求及返回值” 这部分内容,包名和类名要跟文档里的命名的一样才可以
//重写onresume()方法
@Override
protected void onResume() {
if (type != null && type.equals("mwx")) {
SharedPreferences settings = getSharedPreferences("setting", 0);
String code = settings.getString("code", null);
if (code != null && !code.equals("")) {
showProgress(true);
getOpenid(code);
}
settings.edit().clear();
settings.edit().commit();
}
super.onResume();
}
// 获取微信用户的openid和access token
public void getOpenid(String code) {
final AsyncHttpClient httpClient = Gl.sharedAsyncClient();
RequestParams params = new RequestParams();
params.put("appid", Constants.wxAPP_ID);
params.put("secret", Constants.wxAppSecret);
params.put("code", code);
params.put("grant_type", "authorization_code");
String httpurl = "https://api.weixin.qq.com/sns/oauth2/access_token";
httpClient.get(httpurl, params, new JsonHttpResponseHandler() {