1. 程式人生 > >微信授權登陸接入第三方App(步驟總結)Android

微信授權登陸接入第三方App(步驟總結)Android

這幾天開發要用到微信授權的功能,所以就研究了一下。可是微信開放平臺接入指南里有幾個地方寫的不清不楚。在此總結一下,以便需要的人。

很多微信公眾平臺的應用如果移植到app上的話就需要微信授權登陸了。

  1.       目前移動應用上微信登入只提供原生的登入方式,需要使用者安裝微信客戶端才能配合使用。也就是如果第三方應用需要微信授權登陸的話就必須在本機上安裝了微信。而後續授權登陸或呼叫介面之類的相當於app和微信兩個應用之間通話。

1、首先需要註冊微信開放平臺,然後獲取開發者認證。審批通過之後再建立一個移動應用同樣還是需要審批。通過之後就可以給這個應用新增微信授權登陸以及相應功能了。這裡移動應用審批通過之後會給你兩個引數,一個叫AppId,一個叫Secret。這兩個引數在後面用的到。

補充:寫這篇文章有一段時間了。在這補充下大家容易出問題的幾個地方。

1)大家在建立移動應用的時候注意的地方。


上面圖片是申請移動應用時候的第二步,令我想不明白的是很多開發者還不知道應用包名和應用簽名指的是什麼。。。。。。。。

包名是你manifest檔案裡面頂層的那個package啊。

是這個東西啊,這個東西啊少年。

2)應用簽名。好吧我真不想囉嗦了。應用簽名就是你同過ks檔案得到的那個應用簽名。如果你不知道如何獲得這個簽名。請按下面步驟走:

1,先把你的應用程式打包安裝在你的手機上。

2,下載官網上提供的簽名生成工具並安裝在手機上。下面這個地方下載:

3、開啟簽名生成工具輸入你的app的包名就生成你的應用簽名了。

補充完畢。。。(對於上面這點補充我真不想多回答了。PS:我的暱稱留下了QQ我很無辜啊。。。大家有問題上班時間別問好嗎,哥心軟不忍心拒絕啊,尤其有妹子問的時候啊。。。墳蛋)

2、在需要微信授權的專案中匯入微信的第三方JAR包,這個在微信開放平臺接入指南裡面說的很清楚,不再囉嗦。

3、註冊到微信:


這一步也沒什麼課解釋的,相當於兩人要聯絡的時候先打通了電話,然後開始溝通。這一步在需要和微信通話的介面之前註冊了就行。我的是在歡迎介面註冊的。

4、開始和微信通話

首先和微信通話之前,要在專案程式碼中新建一個Activity,並提供相應的回撥方法供微信呼叫。但是這一點在接入指南上寫的就不清不楚導致我浪費了好幾個小時。一下內容是我在接入指南里複製來的。

a. 在你的包名相應目錄下新建一個wxapi目錄,並在該wxapi目錄下新增一個WXEntryActivity類,該類繼承自Activity(例如應用程式的包名為net.sourceforge.simcpux,則新新增的類如下圖所示)

並在manifest檔案裡面加上exported屬性,設定為true。

一定要注意上面這句話:在你的包名相應目錄下新建一個wxapi目錄。說的是在包名相應目錄建一個wxapi目錄。也就是是包名目錄的子目錄,千萬不要直接在src下面建個包就完了。(粗心這毛病害死人啊。)

然後再這個包下面建一個類:

  1. <pre name="code"class="java">publicclass WXEntryActivity extends Activity implements IWXAPIEventHandler{  
  2.     private IWXAPI api;  
  3.     @Override
  4.     protectedvoid onCreate(Bundle savedInstanceState) {  
  5.         // TODO Auto-generated method stub
  6.         super.onCreate(savedInstanceState);  
  7.         setContentView(R.layout.flash_activity);  
  8.         <span style="color:#3366ff;">api = WXAPIFactory.createWXAPI(this, Property.wxLoginInfo.getAppid(), false);  
  9.         api.handleIntent(getIntent(), this);</span>  
  10.     }  
  11.     @Override
  12.     publicvoid onReq(BaseReq arg0) {  
  13.         // TODO Auto-generated method stub
  14.     }  
  15.     @Override
  16.     publicvoid onResp(BaseResp resp) {  
  17.         Bundle bundle = new Bundle();  
  18.         switch (resp.errCode) {  
  19.         case BaseResp.ErrCode.ERR_OK:  
  20. //      可用以下兩種方法獲得code
  21. //      resp.toBundle(bundle);
  22. //      Resp sp = new Resp(bundle);
  23. //      String code = sp.code;<span style="white-space:pre">
  24. //      或者
  25.         String code = ((SendAuth.Resp) resp).code;  
  26.             //上面的code就是接入指南里要拿到的code
  27.             break;  
  28.         default:  
  29.             break;  
  30.         }  
  31.     }  
  32. }  

注意:上面是獲取code。現在最新的官方jar包好像不支援獲得code了。直接就能得到token,省略了獲取code 這一步。所以方法不變,大家取的時候直接resp.token就行了。不用再去取code了。但是,但是,這樣直接拿到token了好像按照官方文件上的方法就不能獲得openid了。我也沒嘗試有什麼新的方法,反正是jar包更新了但是文件還沒更新,大家弄不成功的話可以先用舊的jar和上面獲取code的方法。點選下載舊版jar包
這是那個WXEntityAcitivity的部分程式碼。結合接入指南,大家應該都看的懂。

然後開始和微信通話,

  1. </pre><pre name="code"class="java">{   
  2. // send oauth request 
  3. Final SendAuth.Req req = new SendAuth.Req();  
  4. req.scope = "snsapi_userinfo";  
  5. req.state = "wechat_sdk_demo_test";  
  6. api.sendReq(req);  
  7. }  

這一步就是和微信要code。執行了這一段程式碼之後。微信會呼叫剛才WXEntityActivity類裡面的onResp()方法。並且把code返回來了。見上面那一段程式碼。獲取到code之後就可以通過code獲取access_token了。

請求以下連結獲取access_token:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code 這步和微信通訊獲得access_token就是普通的訪問連結。 用httpClient就行了,而不是接入指南里說的那個和微信通訊的方法onReq().然後還是這樣的方式通過access_token.就可以呼叫介面獲得使用者基本資訊了。具體返回引數什麼的接入指南里面說的很清楚。至此微信授權基本是成功了。

不過在開發的過程中要注意一下debug keystore。就是Window->Preferences->Android->Build裡面。


這裡,我們要新增Custom debug keystore。上面的那個debug keystore不會和微信通訊。

而我們新增的這個keystore 也要符合一些規範所以要改一改。

那就是keystore的密碼改為:android

keytool -storepasswd -keystore my.keystore (在cmd裡執行的命令)

其中,my.keystore是要修改的證書檔案,執行後會提示輸入證書的當前密碼,和新密碼以及重複新密碼確認。這一步需要將密碼改為。

alias的名稱要改為:androiddebugkey

keytool -changealias -keystore my.keystore -alias my_name -destalias debugkey

這一步中,my_name是證書中當前的alias,-destalias指定的是要修改為的alias,這裡按規矩來,改為debugkey!這個命令會先後提示輸入keystore的密碼和當前alias的密碼。

keystore的alias密碼也改為:android

keytool -keypasswd -keystore my.keystore -alias androiddebugkey

這一步執行後會提示輸入keystore密碼,alias密碼,然後提示輸入新的alias密碼,同樣,按規矩來,改為android!

這樣修改完keystore之後把這個keystore放到上面ADT的custom debug keystore裡面。就可以直接除錯微信相關的功能了。

大概就這幾點吧。 

轉自:http://blog.csdn.net/qq247890212/article/details/40822481 博主QQ:247890212

相關推薦

授權登陸接入第三方App步驟總結Android

這幾天開發要用到微信授權的功能,所以就研究了一下。可是微信開放平臺接入指南里有幾個地方寫的不清不楚。在此總結一下,以便需要的人。 很多微信公眾平臺的應用如果移植到app上的話就需要微信授權登陸了。       目前移動應用上微信登入只提供原生的登入方式,需要使用者安裝微信客戶端才能配合使用。也就是如果第三

授權登陸接入第三方App步驟總結Android

這幾天開發要用到微信授權的功能,所以就研究了一下。可是微信開放平臺接入指南里有幾個地方寫的不清不楚。在此總結一下,以便需要的人。 很多微信公眾平臺的應用如果移植到app上的話就需要微信授權登陸了。       目前移動應用上微信登入只提供原生的登入方式,需要使用者安裝

公眾號服務號接入開發2授權登陸

如果使用者在微信客戶端中訪問第三方網頁,公眾號可以通過微信網頁授權機制,來獲取使用者基本資訊,進而實現業務邏輯。 1. 授權回撥域名的說明: (1)、這裡填寫的是域名(是一個字串),而不是URL,因此請勿加http://等協議頭; (2)、授權

授權登陸-app

app介入第三方微信登陸功能: 移動應用微信登入是基於OAuth2.0協議標準 構建的微信OAuth2.0授權登入系統,前提你需要到微信開放平臺註冊開發者帳號,並擁有一個已稽核通過的移動應用,並獲得相應的AppID和AppSecret,申請微信登入且通過稽核後,可開始接

授權登陸

微信開發 微信授權登陸 一、前沿:很多時候,我們都需要開發微信功能來實現我們的項目的功能邏輯,微信授權登陸方面的肯定也不少,所以我就封裝了個簡單的方法來實現,以方便後面使用。二、流程文檔微信開發者文檔:https://mp.weixin.qq.com/wiki?t=resource/res_main&

授權登陸綁定

rip 計時 move ring 登錄 img info type dir https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx4a1da83332cf1cb6&redirect_uri=http

tp實現授權登陸(附原始碼)

官方開發文件地址  https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=&l

公眾號接入第三方平臺客服系統的操作步驟

最近看到有人抱怨公眾號後臺的客服功能太爛,使用者來了只能通過網頁視窗交流,一個使用者一個視窗,有新訊息也不提醒,需要不斷的重新整理,嚴重影響了客服的工作效率。其實大可不必這麼麻煩,只需要在公眾號接入一套第三方的客服系統就完全可以搞定,而且它還不止這些功能哦!   那麼該如何接入第三方客服系統呢?

小程式使用第三方第三方js問題

原文:https://blog.csdn.net/u012421719/article/details/56676801 比如很多人會有這樣的問題: 小程式怎樣引用第三方js呢?

企業如何快速接入智慧機器人智慧客服

如何讓你的企業微信快速接入智慧機器人,增加和員工互動的趣味性,同時解決員工各種高頻問題呢? 1、首先,你需要建立一個屬於自己的聊天機器人(智慧客服),直接註冊並完成建立就可以了。 2、找到【對接渠道】,選擇【企業微信】。 3、輸入貴司企業微信的名稱和ID。名

授權登陸步驟

夥伴們一起做了Javaweb小專案,微信登入授權模組是我負責,給大家普及後順便發到這裡,如果有不足的地方歡迎提出! 進入專案任意頁面 進入專案任意頁面,後臺首先會判斷該使用者是否登入。 若沒有登入(即session中沒有使用者資訊)並且以下兩種情況任意一個時 1.    

授權登陸程式碼例項

  1.controller @Controller public class WeiXinToken extends BaseController { @Autowired private WeiXinService weiXinService; @Aut

公眾號對接第三方平臺全網釋出 java

目錄 目錄 背景 第三方平臺 程式碼開發 結束語 背景   由於平臺對接的使用者不斷增加,微信會進行一個檢測。如果你對接的微信公眾平臺多次使用同一個地址進行開發者對接。那麼它會認為你這個網站存在風險-官方解釋,或者你對接微信公眾號平臺

小程式--搜尋電影app

熱門推薦頁面各個檔案程式碼如下: recommendMovies.wxml: <view class="wrapper"> <view wx:for="{{topMovies}}" wx:for-item="item"> <vi

Mindjump提供:內建瀏覽器下載APPAPK軟體的方案

現如今微信對第三方APP(APK)下載連結的攔截是越來越嚴格了,下載連結在微信中分享轉發經常會被攔截,一旦被攔截使用者就只能複製連

小程序實戰之 pay支付頁面

pos 9.png bubuko image status xss java htm gin 項目目錄: 邏輯層: pay.js // pages/pay/pay.js Page({ /** * 頁面的初始數據 */ data: { res

公眾號支付開發全過程java版

sdk 命令 所有 data 權限 {} servle res ast 文章有不當之處,歡迎指正,如果喜歡微信閱讀,你也可以關註我的微信公眾號:好好學java,獲取優質學習資源。 一、微信官方文檔微信支付開發流程(公眾號支付) 首先我們到微信支付的官方文檔的開發步驟部分查

小程序學習筆記三持續更新---小程序組件通

操作 nts bin json view data 組件 學習 所有 參照這裏 這裏將重要的點貼一下: 一、項目目錄結構 在項目同級目錄新建components文件夾,新建component會生成wxml,wxss,js,json文件。將所有的公共組件都寫在此文件夾下。 二

小程序學習筆記五持續更新---小程序上傳文件

gin false round count splice dex 一個 key 屬性 項目中需要用戶上傳圖片,需要實現,上傳按鈕默認為一個,在上傳一張圖片之後,自動增加一個上傳按鈕,上傳三張圖片後按鈕消失。 實現思路: 1、圖片路徑存儲在一個數組中,增加和刪除圖片是對數組進

小程式——下拉重新整理分頁

1、先定義兩個變數:   // 分頁,載入 hasMoreData:true, globalPage:0,  2、函式處理:   3、與後臺互動:  1)、在獲取列表的方法裡面,將下面兩個引數以及其他所需