google登錄抹镊、成就锉屈、支付接入

一 登錄接入準(zhǔn)備

  1. 登錄官方文檔
  2. 在上面的網(wǎng)址中,點(diǎn)擊 CONFIGURE A PROJECT來創(chuàng)建一個(gè)登錄的工程
  3. 按要求生成 SHA-1 keytool -exportcert -keystore your_keystore -list -v
  4. 注意 ==如果編譯的版本使用的keystore和這里用的keystore不同垮耳,則登錄時(shí)會(huì)log中會(huì)報(bào)錯(cuò) Status{statusCode=DEVELOPER_ERROR, resolution=null}== 可以參見 stackoverflow上的問題
  5. 點(diǎn)擊官方文檔頁(yè)面中按鈕 GOOGLE API CONSOLE颈渊,進(jìn)入api后臺(tái)遂黍,查看憑據(jù)。這個(gè)是 OAuth 2.0客戶端 ID欄目下面應(yīng)該會(huì)有一條 Web client (Auto-created for Google Sign-in)俊嗽,這就是第二步中生成的訪問秘鑰了雾家。

二 支付接入準(zhǔn)備

  1. 測(cè)試訂單:設(shè)置 -> 賬號(hào)詳情頁(yè) -> 許可測(cè)試 添加需要許可的google賬號(hào)
  2. 在Google Play Console中新建應(yīng)用
  3. 應(yīng)用的商店發(fā)布->應(yīng)用內(nèi)商品 添加需要出售的商品
  4. 發(fā)布測(cè)試版本:版本管理->應(yīng)用版本->發(fā)布alpha或其他測(cè)試版本。 點(diǎn)入測(cè)試版本后即可管理測(cè)試人員绍豁,建議都設(shè)置為封閉式測(cè)試芯咧,版本發(fā)布==一段時(shí)間==后,加入測(cè)試的網(wǎng)址就會(huì)顯示一個(gè)加入測(cè)試鏈接竹揍,參加測(cè)試的人員就可以進(jìn)入頁(yè)面加入測(cè)試敬飒。

三 游戲成就接入準(zhǔn)備

  1. 官方文檔
  2. 同在Google Play Console中 最上層菜單中找到 游戲服務(wù)中,新建一個(gè)游戲服務(wù)項(xiàng)目芬位,并關(guān)聯(lián)前面建立的應(yīng)用无拗。
  3. 設(shè)置好成就內(nèi)容,并將成就Id放入自己游戲app的配置中昧碉,激活時(shí)需要使用
  4. 游戲關(guān)聯(lián)游戲服務(wù)后英染,需要設(shè)置好游戲服務(wù)內(nèi)容,并發(fā)布晌纫,才能再修改 中的應(yīng)用的商品詳情了税迷。但是需要謹(jǐn)慎對(duì)待游戲服務(wù)的發(fā)布永丝,發(fā)布后==成就==則不可刪除了锹漱。
  5. 在 游戲服務(wù)-> 關(guān)聯(lián)的應(yīng)用 中設(shè)置綁定的 api客戶端; 這里也可以看到應(yīng)用Id慕嚷,一個(gè)12位的數(shù)字哥牍,也就是游戲服務(wù)任意頁(yè)面上 項(xiàng)目名稱下面的那串?dāng)?shù)字,后面訪問的時(shí)候需要用到喝检。

四 正式接入

  1. 在build.gradle的dependencies中加入需要的庫(kù)

    compile 'com.google.android.gms:play-services-auth:11.8.0'
    compile 'com.google.android.gms:play-services-games:11.8.0'
    
  2. 在res/strings.xml中加入中的應(yīng)用Id嗅辣。實(shí)際后面沒有再用到中創(chuàng)建的那個(gè)Web client (Auto-created for Google Sign-in),只接入login時(shí)是需要的挠说,接入游戲服務(wù)之后澡谭,已經(jīng)被后面的代替。

    <string name="google_app_id">your_game_app_id</string>
    
  3. 在AndroidManifest.xml中加入屬性設(shè)定

    <meta-data android:name="com.google.android.gms.games.APP_ID"
       android:value="@string/google_app_id" />
    <meta-data android:name="com.google.android.gms.version"
       android:value="@integer/google_play_services_version"/>
    
  4. 登錄實(shí)現(xiàn)损俭。如果只接登錄蛙奖,則將DEFAULT_GAMES_SIGN_IN修改為DEFAULT_SIGN_IN。以下代碼段需要放到各自合適的地方

    // 1. 創(chuàng)建client
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN)
                .requestIdToken(this.getString(R.string.server_client_id))
                .requestEmail()
                .build();
    m_GoogleSignInClient = GoogleSignIn.getClient(this, gso);
    
    // 2. 發(fā)起登錄
    this.runOnUiThread(new Runnable() {
      @Override
      public void run() {
        Intent signInIntent = m_GoogleSignInClient.getSignInIntent();
        startActivityForResult(signInIntent, GOOGLE_LOGIN_REQUEST_ID);  // GOOGLE_LOGIN_REQUEST_ID 自己定義
      }
    });
    
    // 3. 在onActivityResult中響應(yīng)登錄
    Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
        try {
            GoogleSignInAccount account = task.getResult(ApiException.class);
            Games.getGamesClient(this, account).setViewForPopups(getWindow().getDecorView());
                // 這里可以獲取 account.getIdToken() 用于服務(wù)端驗(yàn)證
                // account.getDisplayName() 名稱顯示
        } catch (ApiException e) {
            Log.d(m_LogTag, "google signInResult:failed code=" + e.getStatusCode());
        }
    

    ==注意:Games.getGamesClient(this, account).setViewForPopups(getWindow().getDecorView());== 這句話用來設(shè)置登錄結(jié)果及google成就完成時(shí)浮窗的父窗口杆兵。若未設(shè)置雁仲,也可以正常登錄及完成成就,但無google自己的浮窗提示琐脏。

    服務(wù)端驗(yàn)證登錄文檔地址

  5. 成就激活攒砖。成就的激活比較簡(jiǎn)單缸兔,只需要一句代碼。

    // 這里的成就id就是google后天中成就的id
    Games.getAchievementsClient(this, account).unlock("your_achievement_id");
    
    // 也可以顯示所有成就
    Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
               .getAchievementsIntent()
               .addOnSuccessListener(new OnSuccessListener<Intent>() {
                   @Override
                   public void onSuccess(Intent intent) {
                       startActivityForResult(intent, RC_ACHIEVEMENT_UI);
                   }
               });
    
  6. 支付接入吹艇。如果有自己的訂單系統(tǒng)惰蜜,那么需要注意兩點(diǎn)。

    • 將自己的訂單Id 作為payload傳遞給google訂單受神。
    • 在自己的訂單驗(yàn)證通過完成后蝎抽,再去消耗google商品。
    1. 增加權(quán)限
    <uses-permission android:name="com.android.vending.BILLING" />
    
    1. 將google支付示例中的 aidl 加入到自己的工程中 示例下載
    2. 加入google支付示例中的util工具 util/google_play_util/
    3. 手機(jī)上安裝GooglePlay環(huán)境
    4. 代碼接入
        // 1. 定義變量
        IabHelper mHelper;
        // 這個(gè)key在 google play consle中 選擇應(yīng)用->開發(fā)工具->服務(wù)和API 中路克,找到"許可與應(yīng)用內(nèi)購(gòu)買結(jié)算"樟结,那里的 RSA公鑰
        static final String base64EncodedPublicKey = "your_public_key";
        
        // 2. 初始化 IabHelper
        mHelper = new IabHelper(this, base64EncodedPublicKey); 
        mHelper.enableDebugLogging(true, "PayHelper");
     mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
            public void onIabSetupFinished(IabResult result) {
                mServicSuccess = result.isSuccess();
            }
        });
        
      // 3. 還是自己抄示例代碼吧 很簡(jiǎn)單的
      ...
    
    1. 如需服務(wù)端驗(yàn)證:api 后臺(tái)需要開放服務(wù)賬號(hào),以及在google play consle中將服務(wù)賬號(hào)加入精算,并授予財(cái)務(wù)信息方法權(quán)限瓢宦。

五 常見問題

  1. 注意 如果編譯的版本使用的keystore和這里用的keystore不同,則登錄時(shí)會(huì)log中會(huì)報(bào)錯(cuò) Status{statusCode=DEVELOPER_ERROR, resolution=null} 可以參見 stackoverflow上的問題
  2. 如果成就能激活灰羽,但不顯示google的成就浮窗驮履,需要在登錄完成時(shí)設(shè)置:Games.getGamesClient(this, account).setViewForPopups(getWindow().getDecorView());
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市廉嚼,隨后出現(xiàn)的幾起案子玫镐,更是在濱河造成了極大的恐慌,老刑警劉巖怠噪,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恐似,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡傍念,警方通過查閱死者的電腦和手機(jī)矫夷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來憋槐,“玉大人双藕,你說我怎么就攤上這事⊙糇校” “怎么了忧陪?”我有些...
    開封第一講書人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)近范。 經(jīng)常有香客問我嘶摊,道長(zhǎng)瓶您,這世上最難降的妖魔是什么灼舍? 我笑而不...
    開封第一講書人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮洛口,結(jié)果婚禮上稚照,老公的妹妹穿的比我還像新娘蹂空。我一直安慰自己俯萌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開白布上枕。 她就那樣靜靜地躺著咐熙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪辨萍。 梳的紋絲不亂的頭發(fā)上棋恼,一...
    開封第一講書人閱讀 51,578評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音锈玉,去河邊找鬼爪飘。 笑死,一個(gè)胖子當(dāng)著我的面吹牛拉背,可吹牛的內(nèi)容都是我干的师崎。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼椅棺,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼犁罩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起两疚,我...
    開封第一講書人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤床估,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后诱渤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丐巫,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年源哩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鞋吉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸦做。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡励烦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出泼诱,到底是詐尸還是另有隱情坛掠,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布治筒,位于F島的核電站屉栓,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏耸袜。R本人自食惡果不足惜友多,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望堤框。 院中可真熱鬧域滥,春花似錦纵柿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至委可,卻和暖如春渊跋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背着倾。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工拾酝, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人卡者。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓微宝,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親虎眨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蟋软,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,140評(píng)論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)嗽桩,斷路器岳守,智...
    卡卡羅2017閱讀 134,657評(píng)論 18 139
  • 今天特別特別困,突然醒來碌冶,想來還沒交作業(yè)湿痢,感覺眼睛和睜不開,特別特別想睡覺扑庞。 于是就開始掙扎譬重,要不算了,反正在寫作...
    二二書閱讀 197評(píng)論 0 0
  • 引言:最怕你碌碌無為塔嬉,還安慰自己平凡可貴 我們只是被不成功這個(gè)概念所困擾,卻不肯花時(shí)間去想怎樣才能變得成功租悄。 當(dāng)失...
    蒼羽紗閱讀 563評(píng)論 0 9
  • 今天給大家極力介紹一位資深操盤手谨究,《證券時(shí)報(bào)》“百姓投資”周刊曾介紹過一位短線高手-星辰。他1999年入市泣棋,個(gè)人資...
    歸零著閱讀 2,193評(píng)論 0 0