我不是专家,但我会尽力帮助这里。我相信要恢复您购买的物品,您将需要购买物品的SKU。并且要进行测试,您将不得不为您创建实际的SKU应用程序。您可以通过将已签名的apk添加到Beta测试并将商店详情添加到商店列表中来实现这一点。之后,您可以在“应用内商品”部分添加有关可购买商品的详细信息。通过这样做,您可以为应用中的每个可购买产品分配标题,说明,成本和SKU(产品ID)。现在,要恢复您的物品,您需要拥有所购买物品的SKU并且就这些。
你可以通过以下步骤:
- 按照下面的步骤,把事情做好,但您将需要您签字的apk测试功能(你将上传到开发者控制台相同)。
- 在IabHelper类中创建您自己的方法,让它调用getPurchasesDetail()。 在这种方法中使用的代码下面几行:
Bundle ownedItems=mService.getPurchases(3, mContext.getPackageName(), "inapp", null);
ArrayList<String> ownedSkus=new ArrayList<String>();
int response = ownedItems.getInt("RESPONSE_CODE");
if (response == 0)
{
ownedSkus = ownedItems.getStringArrayList("INAPP_PURCHASE_ITEM_LIST");
}
现在,上面的纹路会给你一个ArrayList购买的SKU列表中,把一个返回类型为你方法,并在需要恢复购买的班级中获得。
- 在你的类要恢复您的购买,请执行以下操作:
iabHelper=new IabHelper(this, "you public here");
iabHelper.startSetup(new OnIabSetupFinishedListener()
{
@Override
public void onIabSetupFinished(IabResult result)
{
if(result.isSuccess())
{
try
{
ownedSkus=iabHelper.getPurchasesDetail();//get purchase list
//Now you have the purchased SKU list in an arraylist, you can use SharedPreferences or something else for the further process.
}
catch (RemoteException e) {
e.printStackTrace();
}
}
}
});
4.现在,上传您的APK签署与此代码和公钥开发者控制台(在Beta测试阶段),并使用相同的apk来检查迄今为止所做的实现。但是,在恢复之前购买物品,别忘了这样做。
我希望这会有所帮助。谢谢。