[Android] In-App Billing/Purchases 實作與測試 - 一日工程師

文章推薦指數: 80 %
投票人數:10人

前往Google Play Developer Console建立一個新的應用程式. 點擊"新增應用程式"; 填入標題; 倘若您無法進入此頁面,代表您沒有支付25美金的上架費. 2015年2月11日星期三 [Android]In-AppBilling/Purchases實作與測試 關於AndroidIn-AppBilling的簡介請看此篇。

本篇將著墨在開發者實作部分, 由於GooglePlayBillingLibrary中已經有一個很完整的範例程式。

所以本篇會直接拿來使用,並暫時不講解程式碼。

按照底下步驟做便能完成APK與GooglePlayDeveloperConsole連動。

下載GooglePlayBillingLibrary 打開AndroidSDKmanager並下載安裝GooglePlayBillingLibrary 路徑為:/{SDK路徑}/sdk/extras/google/play_billing 將範例程式Import到Eclipse當中 在Eclipse中點擊File->Import->Android->ExistingAndroidCodeIntoWorkspace 範例程式路徑為: /{SDK路徑}/sdk/extras/google/play_billing/samples/TrivialDrive 將PackageName更名 原先的Package為com.example.android.trivialdrivesample,由於com.example.android會無法上傳至GooglePlayDeveloperConsole.所以需要先行更名。

前往GooglePlayDeveloperConsole建立一個新的應用程式 點擊"新增應用程式" 填入標題 倘若您無法進入此頁面,代表您沒有支付25美金的上架費 將此應用程式的PublicKey複製起來 將剛才的Key填入程式碼當中 在MainActivity.java中可以看到下列程式碼,將之取代成剛才的Key Stringbase64EncodedPublicKey="CONSTRUCT_YOUR_KEY_AND_PLACE_IT_HERE"; 此應用程式有三個內購項目,我們必須先記下他的名稱,才方便我們等下在GooglePlayDeveloperConsole建立內購項目 從程式碼可以得知"premium"是屬於非消耗品,"gas"屬於消耗品,"infinite_gas"屬於訂閱項目 //SKUsforourproducts:thepremiumupgrade(non-consumable)andgas(consumable) staticfinalStringSKU_PREMIUM="premium"; staticfinalStringSKU_GAS="gas"; //SKUforoursubscription(infinitegas) staticfinalStringSKU_INFINITE_GAS="infinite_gas"; 將此Project輸出成signed的APK,不能使用debugkey. 對專案按右鍵AndroidTools->ExportSignedApplicationPackage... 到此處整個Project應該不會有任何錯誤,若有錯誤需先處理再做此步驟 上傳剛才的APK至GooglePlayDeveloperConsole 將APK上傳至ALPHA階段,才能作測試用 至應用程式內產品加入剛才的三項產品 在APIv3中,納入管理的產品和為納入管理的產品是一樣的 "premium"和"gas"為納入管理的產品,"infinite_gas"則為訂閱 在訂閱項目中,有一個免費試用期,建議填寫7天,好方便測試 將需要的資訊填好後,記得儲存並啟用 將其他的Google帳號加入測試帳號中,之後才能透過此帳號進行購買測試。

您無法使用發佈此App的Google帳號進行內購測試 被加入的帳號必須登陸信用卡資訊才能進行測試 接下來您可以決定是否要發佈,發佈前仍需要將其他資訊填好,直到發佈應用程式的按鈕亮起 如果沒有發佈,第11步驟的測試帳號仍可測試內購已簽章的APK,為測試購買 如果發佈,第11步驟的測試帳號的購買行為是測試購買,其他帳號則是真實購買 發佈後,將您的Android手機登入剛才加入測試的Google帳號,安裝Signed好的APK檔,便能測試購買 發佈後,需要等待幾個小時才能順利購買,這期間您可能在購買過程中發生錯誤,包括"需要認證,請登入Google帳號"等錯誤訊息 底下是此範例程式的執行結果 請注意,納入管理的產品屬於測試訂單,不會扣錢。

可是訂閱則是真實訂單,是會扣錢的, 所以前面才會提醒要填寫7天的免費試用期, 在測試的時候記得7天內要記得取消訂閱, 才不會被扣到款。

超過7天沒有取消就會被扣款了, 只能透過商家電子錢包進行退款。

而且GooglePlay屬於國外交易, 大部分的信用卡都會收取國外交易手續費的喔。

另外要提醒的是, 所有在GooglePlayDeveloperConsole的動作, 都不會馬上生效, 需要等待幾個小時甚至一兩天才會生效。

建議每一個動作都要想清楚再做! 如果想要給別的朋友或帳號測試, 可以將signed的APK傳給別人並將帳號加入測試。

或者建立一個Google網上論壇, 並在GooglePlayDeveloperConsole將此論壇加入至ALPHA測試人員也可。

如何使用Google網上論壇可參照此篇文章。

針對測試購買的結論 不發佈APP,只有測試帳號才能測試購買。

發佈APP,所有帳號都能購買,只是測試帳號屬於測試購買,其他帳號屬於真實購買。

對於測試帳號,納入管理的產品屬於測試購買,訂閱是真實購買,所以將訂閱設定試用期,可免去退款動作。

因為發佈ALPHA版本並不會在GooglePlay上公開,所以建立Google網上論壇只是方便特定測試人員能在GooglePlay上下載,並非必要動作。

所有在GooglePlayDeveloperConsole的動作都不會馬上生效,請至少等待數個小時甚至一天。

張貼者: ohsc98 於 下午6:30 沒有留言: 張貼留言 較新的文章 較舊的文章 首頁 訂閱: 張貼留言(Atom) 關於我自己 ohsc98 檢視我的完整簡介 網誌存檔 ►  2018 (1) ►  四月 (1) ▼  2015 (5) ►  七月 (1) ►  六月 (1) ▼  二月 (3) [Android]讓不同螢幕尺寸與解析度顯示相同比例的UI [Android]In-AppBilling/Purchases實作與測試 [Android]In-AppBilling/Purchases簡介 ►  2014 (3) ►  十二月 (3)



請為這篇文章評分?