Android 服务器上的Google Play inapp购买验证

Android 服务器上的Google Play inapp购买验证,android,in-app-purchase,google-play,in-app-billing,marmalade,Android,In App Purchase,Google Play,In App Billing,Marmalade,所以我真的不明白,若服务器上的收据验证失败,我该怎么办。是否有一种方法可以等待服务器验证,然后接受向用户收费的交易,并告诉我应该给他耗材 我使用了果酱扩展“s3eAndroidGooglePlayBilling”,它使用了IBAHelper——我在那里找到了验证,但我真的不懂Java,在Android Billing v3文档中找不到,如果验证失败,它如何取消交易(如ios inapp购买)。 但我还需要在服务器端进行验证 或者我只是在服务器上进行验证并基于此提供用户可消费项?但这似乎是个坏主意

所以我真的不明白,若服务器上的收据验证失败,我该怎么办。是否有一种方法可以等待服务器验证,然后接受向用户收费的交易,并告诉我应该给他耗材

我使用了果酱扩展“s3eAndroidGooglePlayBilling”,它使用了IBAHelper——我在那里找到了验证,但我真的不懂Java,在Android Billing v3文档中找不到,如果验证失败,它如何取消交易(如ios inapp购买)。 但我还需要在服务器端进行验证

或者我只是在服务器上进行验证并基于此提供用户可消费项?但这似乎是个坏主意,因为若服务器并没有响应,那个么用户已经花了钱,但客户不知道购买是否有效

注意:这不仅仅是一个果酱问题,更像是我应该如何在客户端上进行服务器验证,以便在服务器认为收据无效时不向用户收费(因为我认为我可以修改扩展,并像正常情况一样使用它)


注2:服务器端已经实现,如果购买有效或无效,客户端会收到一条消息,但我不知道如何在客户端给用户硬币,然后再向用户收费(如果购买有效)

在s3eAndroidMarketBilling扩展中,有s3eAndroidMarketBillingConfirmNotifications功能。当您收到购买回访时,您必须呼叫它。此调用将使事务关闭。如果您不调用此函数(您的服务器没有响应),您将在功能s3eAndroidMarketBilling回调中获得所有未关闭的事务。如果您将物品与google play Control一起使用,则可以使用s3eAndroidMarketBillingRestoreTransactions恢复所有用户交易。

耗材意味着您可以多次购买同一物品,而google play不会处理这些记录,但一次性购买除外(非耗材物品)。您必须在应用程序端或服务器端进行管理才能处理此问题。请确保您要一次性购买或多次购买单个产品。@Maulik是的,我明白了,如果购买成功,我会给用户硬币,所以我需要消费,以便用户可以再次购买。我需要知道的是,如果购买是真正有效的,那么就不为无效的购买(例如重复购买)提供硬币,但也不收取任何费用。您只需使用onActivityResult()方法result()即可获得此结果。如果成功,则允许用户收集硬币。检查以下链接:1)2)@Maulik是的,但这不使用服务器端验证,而只使用ibaheloper内部的验证。目前,如果IBaheloper内部的验证失败-用户将不会被收取费用(正确吗?),这就是我想要的私人服务器验证。您应该在您身边处理它,通过调用web服务,您可以在购买完成后更新您的私人服务器上的数据,以便进行耗材购买。我认为购买状态api不适用于消费品。谢谢你的回答。但如果收据无效,我该怎么办?我不能不打电话给s3eAndroidMarketBillingConfirmNotifications,因为market稍后会通知应用程序此购买无效。