带有空JSON的Android In-App-Billing RESTORE_TRANSACTIONS!

时间:2011-06-06 17:52:34

标签: android

嘿伙计们, 我稍微修改了Android In-App-Billing SDK文章的dungeons示例。我在使用RESTORE_TRANSACTIONS请求时遇到问题。我首先进行合法购买,这很好,我接到了对onPurchaseStateChange的调用,没有任何问题。但是,当我尝试使用RESTORE_TRANSACTIONS请求时,我希望得到一个构建的验证购买列表,但是当我跟踪它时,返回的JSON被验证得很好,但不包含任何事务!在Dungeons示例的Security.java中,您可以在verifyPurchase方法中看到此代码:

    if (Consts.DEBUG) {
        Log.d(TAG, "Parsing JSON object");
    }
    JSONObject jObject;
    JSONArray jTransactionsArray = null;
    int numTransactions = 0;
    long nonce = 0L;
    try {
        jObject = new JSONObject(signedData);

        // The nonce might be null if the user backed out of the buy page.
        nonce = jObject.optLong("nonce");
        jTransactionsArray = jObject.optJSONArray("orders");

        if (jTransactionsArray != null) {
            numTransactions = jTransactionsArray.length();
        }

        if (Consts.DEBUG) {
            Log.d(TAG, "JSON Array has " + numTransactions + " transactions");
        }
    } catch (JSONException e) {
        if (Consts.DEBUG) {
            Log.d(TAG, e.getMessage());
        }
        return null;
    }

我是否误解了RESTORE_TRANSACTIONS的目的?是不是应该通过onPurchaseStateChange返回经过验证的购买清单,就像REQUEST_PURCHASE一样?

1 个答案:

答案 0 :(得分:0)

没关系,我必须仔细观察。 RESTORE_TRANSACTIONS用于与MANAGED产品ID一起使用。我正在购买UNMANAGED项目。

http://developer.android.com/guide/market/billing/billing_admin.html#billing-purchase-type