GoogleIAP:skusBundle array associated with key ITEM_ID_LIST cannot contain more than 20 items.,jsarraycontain

來源:互聯網
上載者:User

GoogleIAP:skusBundle array associated with key ITEM_ID_LIST cannot contain more than 20 items.,jsarraycontain

這幾天在接Google的支付,在拉Google商品列表的時候轉菊花,長時間不返回(querySkuDetails),一開始以為因為IAP有key不對導致的,查了下發現沒有問題。

再看logcat,發現了這行:

Input Error: skusBundle array associated with key ITEM_ID_LIST cannot contain more than 20 items.

確實IAP商品有23個,解決方案有兩個:

1. https://code.google.com/archive/p/marketbilling/issues/123

這個IabHelper的patch分批處理了request。這個patch產生有一段時間了,不知道Google是否把這個merge進去了,求知道的告知。

 

2. 其實也不是第二個解決方案,改IabHelper是從Google層修改,由於目前我在開發的遊戲之前封裝了Google層,加了一層自己的Helper,再打成jar包,我又比較懶不想再弄一遍,所以第二個方案就是從業務層分批請求。

業務層分批的時候注意不能在同一幀請求兩次或以上,不然只會返回最後一次的請求資料(親測= =)。

我的做法(簡單描述下):

  (1) 先計算總批數,有幾批

  (2) 開始請求第一批,等待第一批返回

  (3) 第一批返回,加入商品list,當前批數+1。

  (4) 還小於總批數,再請求下一批;等於總批數,跳出,做後面的事。。。

設定了一個總的轉菊花時間,一般測試下來網路穩定的話兩批也就兩三秒就拉全了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.