• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 在 Codenameone 中恢复应用内非消耗性产品

[复制链接]
菜鸟教程小白 发表于 2022-12-13 01:16:02 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我的问题,我真的需要帮助,是我无法让有条件地呈现“恢复购买”按钮的逻辑工作。

我已经使用应用内购买按钮构建了我的 IOS 应用程序,该按钮允许用户支付一次以解锁额外功能 - 类型为“非消耗性产品”。使用我的普通家庭用户 Apple ID 和其他一些测试 Apple ID(不是沙盒测试人员),购买功能在 TestFlight 中运行良好。我没有 Mac,因此无法使用沙盒环境。当试用期结束时,我会显示 Purchase 按钮​​,这会调用 CN1 Purchase API 和 PurchaseCallback,然后我使用 Storage 来存储已购买的标志。

        purchaseApp.addActionListener(e -> {
        if (Purchase.getInAppPurchase().wasPurchased("full_product")) {
            ToastBar.showMessage("You have already previously purchased this product.", FontImage.MATERIAL_INFO);
        ...
        } else {
            Purchase p = Purchase.getInAppPurchase();
            p.purchase("full_product");
        }
    });

(我没有对收据或收据商店做任何事情。)

但为了符合 Apple 的要求,我需要一个“恢复购买”按钮,这样用户就不会在新设备上再次付款。困难在于逻辑正确,因为我只希望在他们之前支付过费用的情况下显示“恢复”按钮,否则我只希望显示“购买”按钮。

所以我在下面创建了 userHasPreviousPurchased() 方法来测试要显示的按钮,并根据 CN1 文档将 RestoreCallback 接口(interface)添加到我的主类中。但是下面的方法永远不会在我的 iPhone 上使用 TestFlight 构建返回 true,所以我的恢复按钮永远不会显示。这是 p.getReceipts() 总是返回一个空列表,当我期望 1 行包含我的 SKU 时。

    private boolean userHasPreviousPurchased() {

    Purchase p = Purchase.getInAppPurchase();
    if (p.isRestoreSupported()) {
        p.synchronizeReceipts();
        List<Receipt> receipts = p.getReceipts();
        for (Receipt receipt : receipts) {
            if (receipt.getSku().equalsIgnoreCase("full_product")) {
                return true;
            }
        }
    }
    return false;
}

请您指出正确的方向。使用 CN1 API,您如何使用此类 IAP 测试以前的购买?

我尝试创建一个沙盒测试用户,并在我的设备上注销后,使用该用户购买 IAP(已被接受)。我在我的应用程序中有调试代码,并测试了上述方法,但仍然没有返回收据(由于我没有以沙盒用户身份登录,我看不到它是如何产生的)。

在此先感谢



Best Answer-推荐答案


如果您想跟踪谁已经购买了您的产品,您需要有一个服务器端组件来存储它。 Receipts API 依赖于此,并要求您实现 ReceiptStore。查看这些详细介绍此内容的博客文章。

关于ios - 在 Codenameone 中恢复应用内非消耗性产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43598522/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap