2013-08-16 20 views
3

我正在使用靜態參考測試應用內購買。
我正在使用Static Reference android.test.purchased,但我無法弄清楚如何在我的onActivityResult(...)方法中獲得測試購買的響應。
如何檢測應用內購買的活動結果狀態方法

這裏是我的onActivityResult(....)方法體:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    // TODO Auto-generated method stub 
    super.onActivityResult(requestCode, resultCode, data); 
    Log.d("In-App", "Data = "+data.toString()); 
    Log.d("In-App", "Request Code = "+requestCode); 
    Log.d("In-App", "Result Code = "+resultCode); 
} 

我logcat的說:

08-16 10:48:10.114: D/In-App(3889): Data = Intent { (has extras) } 
08-16 10:48:10.114: D/In-App(3889): Request Code = 666 
08-16 10:48:10.114: D/In-App(3889): Result Code = -1 

我的測試購買的屏幕截圖:
1.

enter image description here

2.

enter image description here

的問題是,我應該在我的onActivityResult(....)方法Data Object提取有些什麼設施,檢測當前測試購買的狀態(已取消,已經購買,成功接受,等等)以及產品信息(JSON respnse)?
任何幫助,高度讚賞,謝謝。

回答

7

我已經更新了我的onActivityResult(...)方法

int responseCode = data.getIntExtra("RESPONSE_CODE", 0); 
    String purchaseData = data.getStringExtra("INAPP_PURCHASE_DATA"); 
    String dataSignature = data.getStringExtra("INAPP_DATA_SIGNATURE"); 

    if (resultCode == RESULT_OK) { 
    //Purchased Status = Purchased 
    try { 
     //Product Details JSON 
     JSONObject jo = new JSONObject(purchaseData); 

     //Purchased Product ID 
     String sku = jo.getString("productId"); 
     } 
     catch (JSONException e) { 

     e.printStackTrace(); 
     } 
    } 

    else { 
    //Purchased Status = Not Purchased 
    } 

這樣,我已經拿到了購買的地位和所購產品的詳細信息JSON

-1

首先,您需要一個數據庫來堅持訂單。其次,當用戶安裝你的應用程序。您必須發出RESTORE_TRANSACTIONS用戶購買的內容並將結果插入本地數據庫。你可以閱讀更多HERE

編輯:

欲瞭解更多詳情請查看In-App Billing Integration

+0

我同意你的'Data persistence'和'Restore Transactions'的建議。但是你還沒有回答我的問題。 –

+0

您是否使用應用內結算V3? – GrIsHu