微信登錄那點事

不久之前做過微信第三方登錄,過程之後也遇到一些困難。在這裏就把我做的過程給記錄下來。
準備工作: 公司在微信開放平臺註冊項目的時候的APPID和APPSECRET(一般這個東西都是公司的運營部門去申請的)

第一步 :在app的gradle下面 (現在有沒有更新就不太清楚,可以去微信開放平臺上面去看 還有混淆我這裏就粘貼了)
compile ‘com.tencent.mm.opensdk:wechat-sdk-android-with- mta:1.0.2’

第二步: 在Application的oncreate方法裏面
IWXAPI sApi= WXEntryActivity.initWeiXin(this, APPID);

第三步 : 最重要的一步 在項目的根目錄下面新建一個wxapi包然後在這個包下面新建一個類WXEntryActivity extends Activity implements IWXAPIEventHandler
然後在WXEntryActivity 的oncreate方法裏面調用 MyApplication.sApi.handleIntent(getIntent(), this); 不然的話就不會回調過來。
implements IWXAPIEventHandler 重寫 它的onResp方法的response裏面返回得到code (這裏的都是固定的格式 只需要把appid和appsecret換成自己的就行了 run(url)是異步向微信請求數據返回的是一個String類型的json)processGetAccessTokenResult(String respsonse)這個方法是在run(url)請求數據的成功回調裏面調用
/**
* 獲取授權口令
*/
private void getAccessToken(String code) {
String url = “https://api.weixin.qq.com/sns/oauth2/access_token?” +
“appid=” + APPID +
“&secret=” +APPSECRET+
“&code=” + code +
“&grant_type=authorization_code”;
run(url);
}

/**
* 處理獲取的授權信息結果
* 在這個回調裏面我們可以獲取到和後臺對接的數據 做到這一步就算是微信登錄成功了 。tokenInfo 這個裏面有我們想要的唯一標識。
* @param response 授權信息結果
*/
private void processGetAccessTokenResult(String response) {
// 驗證獲取授權口令返回的信息是否成功
if (validateSuccess(response)) {
// 使用Gson解析返回的授權口令信息
WXAccessTokenInfo tokenInfo = mGson.fromJson(response, WXAccessTokenInfo.class);
// 保存信息到手機本地
saveAccessInfotoLocation(tokenInfo);
// 獲取用戶信息
getUserInfo(tokenInfo.getAccess_token(), tokenInfo.getOpenid());
}
}

第四步: 第四步你肯定想象不到 如果你想調用微信登錄
只需要 調用 loginWeixin(Context context, IWXAPI api)

/**
* 登錄微信
*
* @param api 微信服務api
*/
public static void loginWeixin(Context context, IWXAPI api) {
// 判斷是否安裝了微信客戶端
if (!api.isWXAppInstalled()) {
Toast.makeText(context.getApplicationContext(), “您還未安裝微信客戶端!”, Toast.LENGTH_SHORT).show();
return;
}
// 發送授權登錄信息,來獲取code
SendAuth.Req req = new SendAuth.Req();
// 應用的作用域,獲取個人信息
req.scope = “snsapi_userinfo”;
/**
* 用於保持請求和回調的狀態,授權請求後原樣帶回給第三方
* 爲了防止csrf攻擊(跨站請求僞造攻擊),後期改爲隨機數加session來校驗
*/
req.state = “app_wechat”;
api.sendReq(req);
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章