2013-01-11 23 views
12

我工作的一个在App Store中我的应用程序,我用AndroidBillingLibrary通过robotmedia, 当我购买使用图书馆的响应android.test.purchased没问题,我需要的所有数据都在那里。的Android应用内结算的V3:不接收签名

的问题是,当我切换到的Android应用内结算的V3这是所有从响应,没有签名接收。

{"packageName":"com.my.sampleapp","orderId":"transactionId.android.test.purchased","productId":"android.test.purchased","developerPayload":"","purchaseTime":0,"purchaseState":0,"purchaseToken":"inapp:com.my.sampleapp:android.test.purchased"}

我严格遵循这个样本https://developer.android.com/training/in-app-billing/preparing-iab-app.html#GetSample但没有签名。我甚至运行Google提供的示例应用程序,但没有运气。

我正确地把我的Base64编码的RSA公钥 mHelper = new IabHelper(this, myPublicKey);

,这是我的申购代码mHelper.launchPurchaseFlow(this, itempackage, 10001, mPurchaseFinishedListener);

OnIabPurchaseFinishedListener mPurchaseFinishedListener = new OnIabPurchaseFinishedListener() { 
     public void onIabPurchaseFinished(IabResult result, Purchase purchase) { 
      Log.i("Billing", "purchasing: " + result.getMessage()); 

      if (result.isFailure()) { 
       Log.i("Billing", "Error purchasing: " + result); 
       return; 
      } else if (purchase.getSku().equals("android.test.purchased")) { 
       Log.i("Billing - signature", purchase.getSignature()); 
       consumeItems(); 
      } else { 
       Log.i("Billing", "Error purchasing: " + result); 
      } 
     } 
    }; 

不知怎的,我mPurchaseFinishedListener不是购买后收到任何东西,但protected void onActivityResult(int requestCode, int resultCode, Intent data)正在收到东西,但没有签名。

对此的任何解决方案? 很奇怪v2正在接收签名,而v3没有。

+0

Ivan。我遇到同样的问题,你有没有找到答案? – melodiouscode

+0

还没有,我转回到v2。我们的应用程序处于草稿模式,不知道* android.test的结果是什么。以已发布模式购买*。 – NaviRamyle

+0

这是一个确切的副本:http://stackoverflow.com/questions/13893259/android-billing-v3-no-signature – prdatur

回答

12

你没有得到签名的检验标识,android.test.purchased等

你会用实际的购买得到签名。

+0

你好,你确定我会得到签名与真正的购买?? ...因为当我使用谷歌示例代码测试产品id我没有获得数据签名,但是当我用另一个教程的另一个代码,我得到测试产品ID的数据签名... –

+0

@ Swap-IOS -Android,为了其他读者的利益,您从“另一个教程”中使用的其他代码是什么?我也想测试一下, – wired00

+1

@ wired00这里是另一个教程的链接...但它的应用程序版本2不是3 ... http://www.androidhub4you.com/2013/03/how-to- inegrate-in-app-purchase-billing.html ..还有一件事我发现,当你使用Test.purchased产品ID购买比谷歌发回签名空,但如果你尝试与沙箱比你会得到签名,但你会不收费的交易... –

0

您的签名是什么意思?那是订阅吗?还是应用内商品(可否消费)? 由于应用内结算v3目前不支持订阅,如果您需要该功能,您必须使用v2(https://developer.android.com/google/play/billing/billing_overview.html)。另外,请确保您的项目在您的开发者控制台上(对于Billing v3)被标记为“托管项目”。

对不起,如果我误解了。另外,请尝试在IabHelper实例上启用调试模式,这将为您提供更好的问题概述。

mHelper.enableDebugLogging(true, "YOURTAG"); 

我建议采取看看开发者网站上的实施指南: https://developer.android.com/google/play/billing/billing_integrate.html

还有示例代码出现。

+0

它说“空签名需要调试模式” – NaviRamyle

+0

如果这是您第一次在应用程序开单中执行,请查看http://mcondev.wordpress.com/2011/06/26/integrate-in-app-billing-just -3行代码在您的应用程序/ – Siddharth

+0

谢谢我会研究它 – NaviRamyle

1

正如由Rawkode说,你不再收到测试购买签名(android.test。*)。我利用我的真实产品进行了潜水并将我的应用程序上传到市场(只是没有发布它)。

低,看到签名开始返回!我建议修改您使用的任何服务器端验证,以便在数据包含android.test。*项目ID时跳过签名检查。