日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Android 微信登录

發(fā)布時(shí)間:2023/12/10 Android 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 微信登录 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

/1、首先你得到微信.開(kāi)放平臺(tái)申請(qǐng)開(kāi)發(fā)權(quán)限:https://open.weixin.qq.com/

申請(qǐng)通過(guò)效果如下即可

?

2、其次,閱讀開(kāi)發(fā)文檔:

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317851&token=5e2b1bed1e22d52b73509b9def8c200bf130fb3f&lang=zh_CN

?

3、接下來(lái)就是Android開(kāi)發(fā)代碼。分三步獲取微信信息,用以登錄

?

3/1常量類(lèi)

public class Constants {// appidpublic static final String APP_ID = "wx1201a018fdcec6";public static final String SECRET = "fc866ba851439dead6a09a480de179";// 商戶號(hào)public static final String MCH_ID = "15171351";/*** 微信開(kāi)放平臺(tái)和商戶約定的支付密鑰** 注意:不能hardcode在客戶端,建議genSign這個(gè)過(guò)程由服務(wù)器端完成*/public static final String APP_KEY = "01b2e2bd220db0c3765609ebc9b59f";}

3/2起調(diào)微信登錄

//微信登錄private void wxlogin(){String strState = getPackageName() + String.valueOf(System.currentTimeMillis());String SCOPE = "snsapi_userinfo";IWXAPI api;api = WXAPIFactory.createWXAPI(LiteActivity.this, Constants.APP_ID, false);api.registerApp(Constants.APP_ID);if (!api.isWXAppInstalled()) {Toast.makeText(LiteActivity.this,"請(qǐng)先安裝微信客戶端!",Toast.LENGTH_LONG).show();return;}final SendAuth.Req req = new SendAuth.Req();req.scope = SCOPE;req.state = strState;api.sendReq(req);}

3/3獲取微信回調(diào)結(jié)果,微信開(kāi)發(fā)必要activity

/*** 微信分享回調(diào)*/ public class WXEntryActivity extends Activity implements IWXAPIEventHandler {private IWXAPI wxAPI;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);wxAPI = WXAPIFactory.createWXAPI(this, Constants.APP_ID,true);wxAPI.registerApp(Constants.APP_ID);wxAPI.handleIntent(getIntent(), this);}@Overrideprotected void onNewIntent(Intent intent){super.onNewIntent(intent);wxAPI.handleIntent(getIntent(),this);Log.i("ansen","WXEntryActivity onNewIntent");}@Overridepublic void onReq(BaseReq arg0) {Log.i("ansen","WXEntryActivity onReq:"+arg0);}@Overridepublic void onResp(BaseResp resp){if(resp.getType()== ConstantsAPI.COMMAND_SENDMESSAGE_TO_WX){//分享Log.i("ansen","微信分享操作.....");}else if(resp.getType()==ConstantsAPI.COMMAND_SENDAUTH){//登陸SendAuth.Resp authResp = (SendAuth.Resp) resp;String code = authResp.code;TestObServernotice.getInstance().notifyObserver(111, 2, code);Log.i("ansen", "微信登錄操作.....");}finish();} }

?配置微信activity

<activityandroid:name=".wxapi.WXEntryActivity"android:configChanges="orientation|keyboardHidden"android:exported="true"android:screenOrientation="portrait"android:windowSoftInputMode="stateHidden|adjustPan"/>

?

3/4? resp結(jié)果如下。

請(qǐng)求微信接口

public static final String wxlogurl = "https://api.weixin.qq.com/sns/userinfo"; public static final String wxlogurl2 = "https://api.weixin.qq.com/sns/oauth2/access_token";

3/5通過(guò)觀察者模式,回到activity中,根據(jù)code獲取token

請(qǐng)求如下:,這里是asyncHttp框架。你可以使用其他請(qǐng)求網(wǎng)絡(luò)類(lèi)

private void getUserInfo(final String access_token, final String openid) {String url = Url.wxlogurl2;RequestParams params = new RequestParams();params.put("appid", openid);params.put("secret", Constants.SECRET);params.put("code", access_token);params.put("grant_type", "authorization_code");more_loadDialog.setloadtext("登錄中...");more_loadDialog.show();AsyncHttpClient client = new AsyncHttpClient();client.post(url, params, new TextHttpResponseHandler() {@Overridepublic void onFailure(int i, Header[] headers, String s, Throwable throwable) {more_loadDialog.dismiss();Toast.makeText(LiteActivity.this, "網(wǎng)絡(luò)連接異常", Toast.LENGTH_SHORT).show();}@Overridepublic void onSuccess(int i, Header[] headers, String s) {try {more_loadDialog.dismiss();JSONObject object = new JSONObject(s);String at = object.getString("access_token");getUserInfoend(at,Constants.APP_ID);Log.i("lgq", "re==logtest=====" + s);} catch (JSONException e) {e.printStackTrace();}}}); }

結(jié)果如下

3/6根據(jù)token獲取微信賬號(hào)詳情

請(qǐng)求如下

private void getUserInfoend(final String access_token, final String openid) {String url = Url.wxlogurl;RequestParams params = new RequestParams();params.put("openid", openid);params.put("access_token", access_token);more_loadDialog.setloadtext("登錄中...");more_loadDialog.show();AsyncHttpClient client = new AsyncHttpClient();client.post(url, params, new TextHttpResponseHandler() {@Overridepublic void onFailure(int i, Header[] headers, String s, Throwable throwable) {more_loadDialog.dismiss();Toast.makeText(LiteActivity.this, "網(wǎng)絡(luò)連接異常", Toast.LENGTH_SHORT).show();}@Overridepublic void onSuccess(int i, Header[] headers, String s) {try {more_loadDialog.dismiss();JSONObject object = new JSONObject(s);Log.i("lgq", "re==logtest=====" + s);} catch (JSONException e) {e.printStackTrace();}}}); }

結(jié)果如下:

4、所有微信信息已經(jīng)請(qǐng)求得到了。接下來(lái)就是。需要什么參數(shù)登錄,就使用什么參數(shù)登錄了 !!!!!!

?

觀察者模式類(lèi)TestObServernotice:https://blog.csdn.net/meixi_android/article/details/81016359

?

在線回復(fù)解決bug:qq1085220040

?

?

?

總結(jié)

以上是生活随笔為你收集整理的Android 微信登录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。