android第三方登錄微信
『壹』 android 微信第三方登錄怎麼通過code獲取openid
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;
}
『貳』 第三方微信登錄安卓介面實現
1)在build.gradle的dependencies中添加2、申明應用許可權3、向微信注冊APP4、請求微信授權登錄5、創建WXEntryActivity.java來接收微信的響應事件這里和簽名一樣,很重要,你如果名字錯了,或者包名的位置錯了,都是不能回調的,切記
『叄』 Android微信第三方登錄/支付,沒有走回調
1、要正式簽名的apk,使用debug包貌似無法調動微信
2、清單文件中要注冊微信回調
<activity
android:name=".wxapi.WXEntryActivity"
android:exported="true"
android:label="@string/app_name"
android:launchMode="singleTop"
android:theme="@android:style/Theme.Translucent" />
3、回調的類名,一定要是官網的WXEntryActivity.java。這里很迷,我之前名字是WXPayEntryActivity,因為之前使用了微信支付,就起了這個名字,後續又加入了微信分享,也沒有問題,當我又加入微信登錄之後,就不走回調了,改成WXEntryActivity.java成功走了回調。
4、回調類所在包名,一定要是wxapi:
.wxapi.WXEntryActivity