问题标签 [rmstore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1545 浏览

ios - iOS 应用内购买 + Today Extension 小部件

所以我有一个需要订阅(通过 IAP)的应用程序,它提供了一个 Today Widget。在小部件(以及应用程序内)中,我使用 RMStore 检查捆绑包中的应用程序收据以获取有效订阅。它在沙箱中运行良好,包括通过 TestFlight 安装时。但是今天,该应用程序获得了Apple的批准,并且在我测试了实体店版本时,当主应用程序在应用程序收据中看到用户购买时,今日扩展程序并没有读取应用程序收据,因此发现没有订阅!

Today Extension 和主应用程序都使用完全相同的代码来读取应用程序收据并查找订阅信息。为什么它会在主应用程序中工作而不是扩展程序?这是一个已知的问题?它与 RMStore 而不是 StoreKit 本身有关吗?我有什么聪明/不同的事情要做吗?

我在想这个问题可能与收据验证有关——例如,沙盒中的捆绑标识符与扩展的 App Store 中的包标识符是否不同?

这真的很令人沮丧,因为我实际上无法在不重新提交到 App Store 的情况下测试任何潜在的解决方案,然后在它发布后对其进行测试,如果它坏了就将它从商店中拉出来,否则我会让用户付费他们实际上没有得到的东西。

0 投票
1 回答
434 浏览

ios - 沙盒环境要求登录两次

我正在为我们的应用程序的新版本测试应用内购买,应用内购买代码之前已经过测试并且工作正常,但是现在它要求在购买确认警报之前两次登录 iTunes。它仍然可以正常工作并在双重登录后正确购买该项目,但它有点令人不安。最近有人在沙盒服务器上遇到过类似的问题吗?

为了提供更多信息,实际交易验证发生在我们的服务器上,我在客户端使用 RMStore 进行默认虚拟验证,它实际上什么都不做,只是检查应用收据中是否存在 productID,很酷的一面是它会刷新应用收据收据中不存在 nil 或 productID。我们的应用中只有自动续订订阅,我在测试新购买之前从应用商店注销。

这大致是我的代码的样子:

0 投票
0 回答
46 浏览

ios - RMStore:取消恢复下载

我正在使用 RMStore 来管理应用内购买,并在 iTunes Connect 上托管内容。在我尝试恢复之前,它工作得很好。如何恢复 1 个特定下载 - 我似乎只能恢复所有内容,而且要下载的内容很多。或者,如果有取消的方法,我可以在完成我最想要的下载后取消剩余的下载吗?

0 投票
1 回答
727 浏览

ios - 如何使用 RMStore 或 Apple API 获取最后的收据数据?

我正在测试应用内购买功能并停留在收据验证步骤中。我的收据验证是自定义的,并且基于我在服务器端进行的检查数量(调用我的服务器 API),其中之一是 transactionID 唯一性以确认付款的条件。因此,使用 RMStore 我成功获得了收据,并且 addPayment 函数将唯一交易返回到成功块。之后,我正在运行 verifyTransaction 并在成功块内调用receiptURL。不幸的是,看起来我总是使用receiptURL获得相同的收据,当我将它发送到我的服务器时,它会以错误响应我事务ID已经存在于数据库中并且事务ID不是唯一的。此错误表明即使我进行新付款,我也会发送相同的收据。请注意,我使用的是消耗品。

有人可以向我展示我在下面提供的功能的正确工作流程吗(?):

  1. [RMStore productRequest] - 我在 init 函数中直接调用它。
  2. [RMStore addPayment] - 这是我需要了解的后果的开始。
  3. [[[RMStore defaultStore].transactionPersistor consumeProductOfIdentifier:pID] -- 我需要调用这个函数吗?每次付款时,Apple 都会向我发送唯一的 transactinID,调用此函数没有任何影响。
  4. [[[RMStore] defaultStore].receiptVerificator verifyTransaction:transaction] -- 我需要调用交易验证吗?
  5. [RMStore receiptURL] 或 [[NSBundle mainBundle] appStoreReceiptURL] - 这些方法可以让receiptURL 相等吗?两者都不像我预期的那样工作。
  6. [NSData dataWithContentOfURL:receiptURL] - 这是我遇到的主要问题。经过我上面提到的功能组合的不同尝试后,该方法总是返回具有相同事务ID的收据。这让我觉得在运行#5、#6 之前我需要刷新现金才能获得最后一张收据,但目前尚不清楚如何做到这一点。

所以,RMStore wiki 看起来不错,但我一直期望这个库会给我一个机会,让我不完全了解幕后发生的事情。不幸的是,对于 RMStore,我必须调查 Apple in app purchase API 的工作原理。如果将提供函数调用的结果,则可以解决此问题,但我无法在任何地方找到它(!)

有人可以查看我在上面提供的功能列表并帮助我将它们按正确顺序排列是什么让我解决了在购买后获得最后一张收据的问题?

0 投票
1 回答
879 浏览

ios - 自动更新 IAP 订阅用户流和刷新收据

我正在使用库RMStore - 这就是我目前拥有的。

1) 购买自动续订订阅并验证退回的收据。

2)在每次应用启动时,检查订阅在该日期是否有效,如果是,则启用高级服务

3) 如果用户在另一台设备上启动应用程序,则允许他们通过刷新收据(如果存在)并检查购买中是否有活动订阅来恢复购买。

- 那是从指南。这是代码:

我的问题:

  • 当 RMStore 检查订阅是否处于活动状态时,它可以返回否,我查看收据并且它是正确的,我假设它没有自动更新。当我去购买另一个订阅时,我从 iTunes 收到一条消息,说我已经订阅了。在随后的启动中,我看到了新收据。这表明收据需要在启动时刷新,但我不想刷新它,因为它会弹出用户名和密码,这是不必要的。这里的最佳做法是什么?
  • 我是否以正确的方式恢复另一台设备的订阅?有时似乎需要多次尝试才能恢复订阅。
  • 除了记录保存之外,是否需要将订阅存储在我的服务器上?
0 投票
1 回答
482 浏览

swift - 快速使用 RMStore 时出错

我想使用 RMStore 来实现应用内购买。我的项目使用 swift 进行编码,所以我使用 cocoapod 添加 RMStore 框架并添加一个桥文件以使其在 swift 中工作。但是当我使用 RMStore 时发生了错误。

在桥头文件中,我添加了这个:

在 swift 模型中,我这样使用:

我在编码的时候没有错误,但是编译的时候出现了错误,错误信息是这样的:

我不知道这里有什么问题。

0 投票
0 回答
124 浏览

ios - 为什么我在 RMStore 中看到所有以前购买的产品 ID

我正在使用RMStore在应用启动时进行收据验证。如果我在 iPhone 上登录 App Store 并在我的应用程序中进行购买,那么一切正常。当我决定在启动时测试收据刷新时,我决定退出 App Store。当我启动应用程序时,我在应用程序委托中有此代码(仅用于测试目的):

然后我看到所有产品 ID 都存在:

为什么所有的都RMAppReceiptIAP在场?我没有登录。理论上,RMStore 不应该知道我的任何事情。当我以原始购买者身份登录时,这些RMAppReceiptIAP's 仍然存在于应用程序启动中,这是有道理的。最后,如果我以从未从我的应用程序购买过我的产品的用户身份登录 App Store,那么RMAppReceiptIAP's 不存在(这很好),但是当我再次注销帐户并再次启动应用程序时,这第二次没有RMAppReceiptIAP's。收据似乎被暂时缓存了。也许我错过了文档中的某些内容?有人可以解释为什么RMAppReceiptIAP即使在购买者退出后仍然存在,但在新用户登录然后再次退出之后却没有?

谢谢

0 投票
0 回答
923 浏览

ios - 如何在 iOS 中使用 RMStore 获取自动续订订阅通知

在我的 iOS 应用程序中,我使用了自动续订订阅。我们需要一个跨平台的解决方案。我在 iOS 中使用RMStore来购买产品。

在当前情况下:我从didFinishLaunchingWithOptionsAppStore 获取最新收据并对其进行验证,而RMStoreAppReceiptVerifier不是服务器的更新到期日期。我们一直从两个平台(iOS 和 Android)更新到服务器数据。在 iOS 方面,我们必须在应用程序启动时始终检查收据。当我在续订付款时收到推送通知?如果可以的话,那我们当时已经更新了服务器数据

Q-1)如何检查我的新续订流程是否已完成?

Q-2)如果用户从 iTunes 取消了他们的自动续订订阅,如何通知我以便我可以更新我的数据库?我是否需要一个守护程序来检查过期订阅以查看用户是否续订?

Q-3)在 iOS 中。如果我从另一台设备登录,那么我如何验证从另一台设备收到的信息?

请建议我如何使用服务器数据库处理跨平台的自动续订订阅。我希望有人能帮助我。谢谢!

0 投票
1 回答
1934 浏览

ios - RMStore In App Purchase 未知产品标识符

我花了一整天的时间试图让应用内购买在我的应用中工作,而我试图让它工作的一切都会导致来自 RMStore 的“未知产品标识符”响应。我已经尝试了此列表中的所有内容:http: //troybrant.net/blog/2010/01/invalid-product-ids/

我的代码是:

iTunes Connect - 应用内购买:

iTunes Connect - 应用内购买

Xcode - 应用内购买功能

在此处输入图像描述

我已经完全不知道如何让它工作了,有人有什么想法吗?任何帮助将不胜感激。先感谢您。

0 投票
0 回答
397 浏览

ios - iOS - 应用内购买未知产品标识符

我的 IAP 以前可以工作。所有的。其中一些是在 App Store 上直播的。现在我收到此错误:

未知产品标识符

我没有接触 IAP 的代码。iTunesConnect 中的协议没有变化。

我确实更改了应用程序名称。这可能是问题吗?

什么可能导致我收到此错误?