1. 程式人生 > >Google 登入和支付以及Facebook登入

Google 登入和支付以及Facebook登入

本文介紹google登入和google應用內購買以及facebook登入在他們後臺申請對應key的介紹以及接入過程中會遇到的一些問題。 google登入和google支付移動端都需要對應的key,才能發起有效登入和支付請求。

Google登入

  1. firebase後臺申請一個對應的應用,如圖1所示,在專案組中建立一個應用,需要填寫包名以及sha-1值

  2. 註冊成功後需要到獲取憑證的後臺,如圖2所示,獲取對應的web client id,該key用於伺服器登入和支付成功後訂單校驗。需要注意的是,客戶端和伺服器端都要使用的該key。

注意:

  1. 這些內容在兩個後臺。
  2. 登陸過程中可能會包ApiException:8,10,12500,12501 等錯誤,首先需要檢查你的key是否使用正確,第二個,你是否開啟google登入的許可權(該許可權在firebase後臺開啟)。
  3. 我使用國內的裝置測試,發現這些狀態碼是不穩定的,多點選幾次也會就能正常登入。

Google pay

1.Google開發者賬號

首先,需要一個google開發者賬號,該賬號需要花費$25。

2. 建立和配置應用

Google play後臺中建立應用,如圖3所示。然後根據相關的提示,一直填寫對應的資訊。圖4,圖5等。在填寫圖4的資訊時,需要注意的是,需要上傳一個app,然後才能夠填寫內容評級等相關資訊。只有當圖5中紅圈中的內容全部填寫完成,如圖6,才能夠釋出應用。

3. 釋出一個可測試的應用

到應用版本中–>應用版本中建立一個測試應用,按流程進行釋出。該釋出的過程中,需要新增測試賬號如果不會新增測試賬號請檢視該文章

,需要注意的是,測試賬號新增成功後,要把應用釋出成功的連結發給測試人員,需要使用者同意方可參與到測試中。

注:

  1. 應用需要釋出成功才能有測試人員同意的連結。

  2. 應用釋出成功需要一定的時間,一般需要三個小時左右。

4.建立商品列表

當應用建立成功後,到後臺的 商店釋出–>應用內商品建立應用內商品列表。如圖8.

  1. 獲取客戶端支付需要的公鑰,如圖10所示。

通過以上的步驟,就可以完整的測試支付流程。由於添加了測試賬號,在測試支付的過程中不需要支付實際的費用。檢視應用程式購買的商品列表,如圖11

在測試支付的過程中可能會遇到如下問題

支付遭拒

1.1 應用商品可能違反了當地的政策,例如vpn在中東很多國家是違法的。 1.2 由於代理的vpn,ip頻繁切換導致過銀行風控 1.3 繫結的銀行卡地址和google後臺註冊的地址不相符和,可以通過修改google的地址進行解決,但是該種方式很複雜,成功率很低。 1.4 出現支付遭拒的訂單號客戶端是由兩串number

構成的,如果是成功的情況,訂單號是由GPA.number構成。 1.5 出現支付遭拒是一件正常的事情,我諮詢過很多做遊戲和應用的開發,在國外都有遇到支付遭拒的情況,應該能排查程式碼的問題。 1.6 手機裝置root過,不能支付成功

你無法購買商品

1.6 測試支付的apk的版本號和線上的版本號必須一致,否者測試支付失敗

伺服器檢索異常
  1. 釋出的新商品需要等一會兒客戶端才能成功呼叫。
  2. 商品id伺服器定義的id不匹配
  3. 客戶端使用的公鑰有問題。這裡需要注意的是,google後臺顯示的公鑰有時會帶空格,重新整理一次網頁就正常了。
您已經擁有該商品
  1. 應用內購買實際上分為兩步,第一步是購買,第二步是消耗。如果你購買了某個商品沒有進行消耗,那麼下次就不能成功購買。在這裡需要注意的是,如果你購買了商品,消耗未成功,那麼呼叫mHelper提供的queryInventoryAsync方法查詢出購買未消耗的商品,對該商品進行消耗。這個過程一般跟業務邏輯有關。 例如我們現在的做法如下圖: 應用初始化時,對未消耗的商品做的處理
訂單丟失

在部分國家,會出現訂單丟失的情況,客戶端提示支付成功,但是伺服器端和google後臺都沒有收到訂單記錄。這個我是在測試伊朗時發現的,但是得不到確認,很難復現。

關於繫結銀行卡支付
  1. 如果使用真實貨幣支付,首先你需要一張支援外幣的信用卡。例如mastcard,visa等。在繫結銀行卡的過程中,你可能需要切換你的賬單地址,否者很難繫結成功,總之,這個過程比較麻煩。測試支付可以新增測試賬號測試。
不能彈出Google 支付的介面
  1. 你是否給Google Service顯示懸浮框許可權
  2. 該賬號是否已經存在購買的商品,但是還未消耗,此時也不會彈出支付框
測試裝置服務不支援
  1. google service版本太低,需要到應用商店的設定中,點選版本號,提示更新。這個過程有點慢,感覺點選沒有反應,實際上是在後臺下載。需要等一會兒,或者需要重啟一下裝置等。反正就是要讓應用商店更新到最新的版本。否者會出現裝置不支援google pay。
關於Google play store 升級

如果手機的Google 服務先關元件是通過三方安裝,那麼很有可能版本比較低。不支援支付的api version3. 此時需要對Google play stroe 進行升級。在選單欄中–>設定–>點選版本號。然後點選確認。需要注意的是,點選確認後,手機可能看試沒有反應。實際上在下載。根據網路情況,等一定時間,重啟手機。應用就更新了。

初始化失敗

如果Google服務的版本已經是最新了還出現出事話失敗的情況,可以通過以下方式解決。

  1. 需要將手機中的google賬號全部刪除

  2. 然後把google service和google play商店中的快取全部清理掉

  3. 重新登入賬號。。

  4. 手機沒有安裝service相關元件,下載go安裝器安裝手機相關的元件,需要手動更新下,預設下載的版本有些老。

關於不能重複購買的問題

google pay分為google內購和google訂閱。 google內購的商品一共分為兩步,一個是購買,一步是消耗。如果購買的商品不消耗的話,下次購買不能夠成功。此時返回的錯誤碼是7.針對這種情況,有個查詢的方法,可以查詢到當前裝置未消耗的商品,那麼重新呼叫一次消耗方法就能解決該問題。

其他問題:
  1. 如果我在後臺建立了內購的商品,但是我可以使用訂閱的api呼叫,也能夠成功購買。同理,建立的訂閱商品,也能能夠通過內購的api呼叫成功。
網路不支援

顯然,測試google支付需要使用vpn。如果網路不通,那麼上面的都等於沒說。

圖1建立應用的後臺

圖2

Google登陸接入的官方demo地址

https://github.com/googlesamples/google-services/tree/master/android/signin

Google支付接入的demo

https://github.com/googlesamples/android-play-billing.git

圖3

圖4

圖5

圖6

圖7

圖8

圖9

圖10 圖11

Facebook 登陸

後臺的地址

https://developers.facebook.com/apps

唯一需要注意的地方就是要把對應的內容全部填寫完整。測試的是有由於應用處於開發階段,需要使用測試賬號測試。 image.png

申請登入許可權成功時,顯示綠色

以上是我在接入google登陸和支付的總結。如果寫的不對的地方或者需要更正的請大家留言,謝謝。