[Android] In-App Billing/Purchases 實作與測試 - 一日工程師
文章推薦指數: 80 %
前往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)
延伸文章資訊
- 1《Android》『In-app Billing V3 API』- 應用程式內購買的基本 ...
當虛擬貨品消耗成功以後,我們就可以去執行我們要做的動作,像是為使用者增加汽油或者魔法石…等等。 《程式測試》. 要測試透過IAB 所寫的金流服務程式碼,有兩種方式, ...
- 2PnSDK - Android SDK接入文档
请在文档的引导下,进行必要的编码,SDK开发包请与技术人员联系后获取。 接入准备. 工程必须使用Android 最新SDK 编译. APK包必须签名,提交Google ...
- 3Google In App Billing串接學習筆記(Android+Nodejs) - iT 邦幫忙
最近有需求用到應用程式內購買,距離上一次串內購已經好幾年,Code都不知道丟哪去了 ... 應用程式-> 商店發布-> 應用程式內商品-> 受管理商品-> 建立要納入管理的產品
- 4Android 實作IAP 內購式商品(Selling In-app Products)(2/2)
本篇為實戰篇,概念篇請看In-app Billing(App內付款) 概念。 ... 點選"新增應用程式"; 輸入應用程式名稱; 點選"準備商店資訊".
- 5將應用程式內金流機制整合進您的APP裡。 - 极客分享
[Android in-app billing第2篇]Implementing In-app Billing實作應用程式 ... 並且,您必須擁有Google Checkout Merchant...