【问题标题】:iOS IAP: How to veriy that user was really charged for transactioniOS IAP:如何验证用户是否真的为交易收费
【发布时间】:2018-02-11 20:28:40
【问题描述】:

我正在使用

paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])

当然我在里面处理transactionState。一切正常,但现在我想添加适当的跟踪。

有一种特殊情况,当用户之前已经购买了SKPRoduct,但再次点击购买(即全新安装后),他不会再次被收费,但交易状态将是.purchased,即使它是恢复。

这是否只发生在沙盒环境中?我还没有发布它,所以我对此没有任何现场经验,但我想知道是否有正确的方法来确定交易是否真的是购买,或者实际上是恢复?

【问题讨论】:

    标签: ios in-app-purchase skpaymenttransaction


    【解决方案1】:

    首先,当用户安装应用程序并单击购买时,您会调暗显示并等待委托方法通知您付款成功,然后您在用户默认值中存储一个布尔值,表明用户购买了 IAP,每当您使用购买打开 VC按钮检查布尔值并相应地隐藏/显示它

    注意:如果用户在购买后删除应用并重新安装并点击购买,则不会再次发生充值

    【讨论】:

    • 好吧,但是重新安装呢?一切正常,我只是想知道如何区分新购买和恢复购买交易
    • 如果您有登录系统,如果没有,则在服务器上进行布尔值,用户已经知道,如果没有恢复按钮,Apple 将拒绝您购买 VC
    • 不涉及用户管理或其他服务器,因此我无法在任何地方保存此信息
    • 实际上重新充电不会再发生,即使用户点击购买按钮委托只会运行,因为苹果服务器已经保存了这些数据
    • 我知道。也许我不清楚。一切正常。我唯一想知道的是“与状态'.purchased'的交易是否向用户收费”
    猜你喜欢
    • 2021-05-19
    • 2014-04-14
    • 2016-06-24
    • 2014-03-30
    • 2021-09-13
    • 2018-07-24
    • 2015-01-08
    • 2021-01-18
    • 2020-09-30
    相关资源
    最近更新 更多