0
我在應用程序結算中遇到了一些問題,我想在可以多次購買的應用程序內創建產品。但谷歌在應用程序結算方面的做法是,在購買產品之前必須首先使用產品。我試着用下面的代碼耗吧:在應用程序帳單中消費
if (resultCode == RESULT_OK) {
try {
JSONObject jo = new JSONObject(purchaseData1);
String sku = jo.getString(inappid);
Toast.makeText(
ABActivity.this,
"Purchase Successful",
Toast.LENGTH_LONG).show();
Bundle ownedItems = mservice.getPurchases(3, getPackageName(), "inapp", null);
// Check response
int responseCode = ownedItems.getInt("RESPONSE_CODE");
if (responseCode != 0) {
throw new Exception("Error");
}
// Get the list of purchased items
ArrayList<String> purchaseDataList =
ownedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST");
for (String purchaseData : purchaseDataList) {
JSONObject o = new JSONObject(purchaseData);
String purchaseToken = o.optString("token", o.optString("purchaseToken"));
// Consume purchaseToken, handling any errors
mservice.consumePurchase(3, getPackageName(), purchaseToken);
}
} catch (JSONException e) {
System.out.println("Failed to parse purchase data.");
e.printStackTrace();
} catch (RemoteException e) {
System.out.println("Failed to parse purchase data.");
e.printStackTrace();
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {System.out.println("Failed to parse purchase data.");
e.printStackTrace();
// TODO Auto-generated catch block
e.printStackTrace();
}
我第一次嘗試購買它完美的項目,但是當我再次嘗試購買應用程序崩潰。當我嘗試在虛擬設備上使用該應用程序並使用logcat記錄錯誤時,它首次嘗試購買該項目時崩潰,並且它在第一次在我的手機上出現NullPointerException時效果很好,所以我沒有認爲NullPointerException是問題。
在此先感謝。