3.3.7
0.59.8
安卓系统
当我请求购买时,然后我在服务器上验证收据,如果验证失败,则我希望能够手动取消购买,而不是每次都不触发函数purchaseUpdatedListener(如果不调用确认购买或消费购买)。
当未完成购买时,我无法取消待处理的购买。 在android上,我必须等待它被自动取消。
真实设备
进行购买,请勿致电确认购买或消费购买。
即使失败的结果,您仍然应该调用acknowledgePurchase
和consumePurchase
来完成事务。 您仅不执行逻辑,例如不对自己的数据库给予奖励。 另外,您应该consmePurchase
以便它不会保留在您的应用程序中。
@hyochan如果我这样做,付款将被批准,并且将向用户收取费用,而不会得到奖励。
@tmjordan哦,我明白你的意思了。 如果您通过给予奖励来进行逻辑处理呢?
@hyochan,当用户购买产品时,给定的收据会发送到google服务器,以验证收据并获取购买状态(如果付款已批准,待付款或已取消)。
假设我在验证过程中遇到的错误不是来自Google服务器(例如,我的后端),所以我无法验证收据,我想手动取消购买,而不是等待Google取消购买(在此期间,如果我不致电aknowledgepurchase或不消费,则无法再购买。
不知道是否有可能,也许这就是Google上购买过程的工作方式。
如果我们可以手动取消尚未确认或消费的购买,那就太好了。 在那种情况下,如果付款被批准,用户将被退款。
而不是每次都触发相同的购买,直到被Google取消为止。
@tmjordan感谢您的良好观点。 听起来很合理,但我不太确定实际要收取pending
费用。 我认为, pending
购买时应该甚至不收取acknowledged
和,而这些都应该被删除。 希望我们能详细介绍其他经验。
@hyochan ,是否有类似iOS的功能,以便通过调用finishTransactionIOS
取消未完成的购买,然后从购买历史记录中删除该购买。 我不知道是否还有另一种方法来检查订阅是否仍处于活动状态,但是我现在要做的是检查收据历史记录中最后一笔交易的到期日期。 因此,如果购买尚未完成,我不希望将其记录在购买历史中。 不幸的是,目前正是如此。 与Android不同,未完成的购买将在一段时间后被取消,并且永远不会因purchaseUpdateListener
触发而停止。
所以我在ios和android上也遇到了同样的问题,我需要取消尚未完成的购买。 特别是在ios上,除非有更有效的方法来检查订阅的有效性,否则不会在历史记录中记录该购买。
我想处理类似的情况
purchaseUpdateListener
被多次触发,直到调用finishTransactionIOS为止,但这不是理想的结果。 该交易应在此阶段被取消。是否有取消交易的方法。
最有用的评论
@hyochan ,是否有类似iOS的功能,以便通过调用
finishTransactionIOS
取消未完成的购买,然后从购买历史记录中删除该购买。 我不知道是否还有另一种方法来检查订阅是否仍处于活动状态,但是我现在要做的是检查收据历史记录中最后一笔交易的到期日期。 因此,如果购买尚未完成,我不希望将其记录在购买历史中。 不幸的是,目前正是如此。 与Android不同,未完成的购买将在一段时间后被取消,并且永远不会因purchaseUpdateListener
触发而停止。所以我在ios和android上也遇到了同样的问题,我需要取消尚未完成的购买。 特别是在ios上,除非有更有效的方法来检查订阅的有效性,否则不会在历史记录中记录该购买。