我不是专家,但我会尽力在这里提供帮助。我相信要恢复您购买的商品,您将需要购买商品的 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 检查到目前为止已完成的实施。但是,请在恢复之前购买物品,不要忘记这样做。
我希望这有帮助。谢谢。