是的,我已经阅读了@developer.android.com上的所有文档,除了一个基本的异常(exception),我确实理解了所有文档——引入它的目的。由于来自GooglePlay的所有订单响应都由任何人无法访问的私钥签名,并由配对的公钥验证(在我的例子中是在外部服务器上,因此第三人也无法访问)所以简单(几乎)无法欺骗。所有这些随机数只是确保购买安全的多余方式。更重要的是,文档对这种情况只字未提,当:我购买了一件商品;生成随机数并将其发送到GooglePlay;发生崩溃,所以我所有的已知随机数都丢失了;让我的应用重新启动并从GooglePlay获得回调;...并因无法识别随机数而拒
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。是否有针对InAppBillingAPI的任何经过良好测试和记录的包装器?Google提供的API甚至很难调用-单一的aidl接口(interface)和相当复杂的(针对任务)示例应用程序。更不用说,还有一些已知错误尚未修复(例如,不检查BillingService.onStart()中的null)非常令人困惑...我已经根据示例应用程序集成了支付流程,
在GooglePlaydoc,它写着“为了验证购买,应用程序将购买token和其他详细信息传递到您的后端服务器,后端服务器使用GooglePlayDeveloperAPI直接通过GooglePlay验证它们。”我的问题是:我真的需要自己的服务器来在我的Android应用程序中实现InApp订阅吗?有没有办法在没有我自己的服务器的情况下实现订阅?(仅直接从我的应用程序使用GooglePlayInappBillingAPI)谢谢! 最佳答案 回答我自己的问题:无需拥有自己的服务器来实现应用内订阅。自己的服务器只允许增加一定程度的安全性,
是否可以从应用本身获取以本地货币表示的产品价格。例如,如果我通过GooglePlayInAppbilling以1美元的价格销售Product1。来自英国的客户点击按钮购买产品,GooglePlay上的价格以英镑显示。我能否在应用程序中从GooglePlay获取本地化价格,以便以客户自己的货币向其显示? 最佳答案 应用内结算v3声称能够做到这一点:TheAPIalsointroducesalong-anticipatedfeature:theabilitytoqueryin-appproductinformationdirectlyf
如何在应用内结算购买android中恢复交易。到目前为止,我已经搜索了所有链接。我没有找到确切的信息。我使用了BillingHelper.restoreTransactionInformation(BillingSecurity.generateNonce())但它没有返回任何内容。谁能帮我解决这个问题。如有任何帮助,我们将不胜感激。 最佳答案 api的V3不再需要恢复购买。可以直接查询购买的商品。请阅读查询已购买商品部分:http://developer.android.com/google/play/billing/billin
我想将GooglePlay应用内结算集成到我已经获得payLoadjson的统一项目中。我有一个Node.js服务器,想要获取GooglePlay购买响应的值(value)以进行服务器端验证。我在GooglePlayDeveloperConsole上列出的产品是创建productId,但出现错误:[Error:ThesubscriptionpurchasetokendoesnotmatchthesubscriptionID.]在我的Node服务器的index.js文件中,我有一个这样的段:varVerifier=require('google-play-purchase-validat
我已将android应用内购买集成到android应用程序中。我覆盖了onPurchaseUpdated方法来获取购买响应。@OverridepublicvoidonPurchasesUpdated(intresponseCode,@NullableListpurchases){if(responseCode==BillingResponse.OK){//handlingpurchaselogichere}}现在我注意到一个用户试图购买应用内消费品,当他的购买状态为待定时,一段时间后他取消了购买。他一遍又一遍地重复这个过程。因此,如果购买状态为待处理,Google会返回BillingR
我很确定我在我的应用程序中使用了Inapp-billingv3(据我所知,“IInAppBillingService.aidl”是v3-根据google文档,“IMarketBillingService.aidl”将是v2)。但是,我收到了一封来自谷歌的电子邮件,要求我将我的应用程序从v2更新到v3,因为在过去3个月中至少有一次使用旧API进行了购买。此外-我从未在我的应用程序中实现过V2,因此旧版本不应该是这种情况。这是谷歌的错误,还是我的一个用户使用旧的游戏商店购买东西,所以激活了某种支持/兼容模式?还是我误会了,我真的在使用API的v2?我如何才能确定(确定)我实现了哪个版本?这
当用户想要购买商品时,我已经在我的应用程序中使用计费服务实现了应用内购买(托管),即使用户已经购买了该商品,他也会发出需要互联网的购买请求。因此,为了方便用户,如果用户购买了该商品,我会这样做,然后将在共享首选项中保存一个值。并且当用户单击该特定项目时,首先它将检查共享首选项。用户是否已购买商品的值(value),如果没有,则去购买请求,否则显示他/她的商品。我的问题是这是安全的方式吗?还是我必须做其他事情? 最佳答案 这不安全。我不鼓励您以这种方式实现此类检查。您应该选择标准方法并使用getPurchases()方法。您可以随时(
我正在尝试在Android中测试应用内购买。我已将私有(private)签名的apk上传到GooglePlayerDeveloperConsole。它目前是“Alpha测试”部分的草稿。当我尝试购买商品时,出现以下错误:Thepublishercannotpurchasethisitem.这让我感到困惑,因为我使用的是测试帐户,而不是用于发布此应用的帐户。我怀疑它可能会失败,因为我的手机上根本没有开发者帐户,但这是我的私有(private)电话,所以我不想从手机上删除该帐户(特别是如果我不确定它会解决问题)。谁能确认是否必须从手机中完全删除发布者帐户才能测试应用内购买?谢谢!