问题标签 [skpaymenttransaction]

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 投票
6 回答
5680 浏览

ios - paymentQueue:updatedTransactions:恢复期间未调用

在极少数情况下,我的一些用户似乎无法进行非消耗性购买。当他们尝试购买时,它不会激活“高级”,并且当他们从当前安装或全新安装恢复时paymentQueue: updatedTransactions:不会调用。

我已经添加了很多专门的日志记录来尝试确定为什么还原没有遵循预期的流程。在还原失败期间,不会触发任何“RESTORE”类别事件。

作为参考[self success];,只显示内容视图并向[self fail:]用户显示错误消息。

[[SKPaymentQueue defaultQueue] addTransactionObserver:self];被调用viewDidLoad[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];在按钮按下时调用。

任何建议,将不胜感激

0 投票
2 回答
976 浏览

ios - 更新后未调用 SKPaymentQueue updatedTransactions 方法

我已经在我的应用程序中实现了自动更新订阅。一切正常。唯一的事情是public func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])在自动续订发生后没有调用该方法,因为它应该根据文档通知我订阅已续订。仅在我调用时才调用SKPaymentQueue.default().restoreCompletedTransactions()

我知道它只自动更新 5 次,而且我必须创建新的沙盒用户,我尝试了几次。

在我的AppDelegateI do callSKPaymentQueue.default().add(self)方法中。

有任何想法吗?

0 投票
0 回答
151 浏览

ios - SKPaymentQueue 在用户注销时更新交易

我正在开发一个使用订阅的应用程序,因此[[SKPaymentQueue defaultQueue] addTransactionObserver:self];在启动时调用。这是为了在应用程序启动后立即接收任何新的和待处理的事务。

这在大多数情况下都有效,但是如果用户完全退出他们的 App Store/iTunes 帐户(“设置”->“iTunes 和 App Store”-> 用户名->“注销”),它就没有效果。没有提示用户登录或任何其他操作,并且我没有收到任何新交易。

这是预期的行为吗?我在网上找到的大多数信息都表明,在添加事务观察者时应该提示用户输入他们的用户名/密码。如果这是预期的行为,我应该如何处理这种情况?我如何确定用户已注销并为他提供必要的信息,以便他采取正确的措施来恢复服务?

0 投票
2 回答
4374 浏览

in-app-purchase - SKPaymentTransactionObserver iTunes connect 上的“应用内购买无法在 App Store 上推广”,但委托已实施和测试

在实现和测试委托方法后,我们在 Itunes connect 中不断收到此警告消息:

这些应用内购买无法在 App Store 上推广,因为您最新的应用二进制文件不包含 SKPaymentTransactionObserver 方法。

我们在一个专门的对象中实现了从 iOS 11 购买新 App Store 的委托方法,该对象管理我们的支付和其他 SKPaymentTRansactionObserver。

我们通过以下方式对其进行了测试:

itms-services://?action=purchaseIntent&bundleId=[添加您的 bundleID]&productIdentifier=[添加您的 productID]

并且在测试期间一切正常。沙盒用户调用委托和支付处理。我们提交了我们的应用程序并获得了批准,但在 Itunes connect 上没有发生任何事情。

我们是唯一面临这个问题的人吗?有没有人有答案和解决方案?

提前感谢您的任何回答!

编辑:黄色消息自行消失。我创建了一个我们转发给苹果的雷达。现在,消息似乎消失了。因此,如果在生产中有效,我们将在下一个版本中看到。我将再次更新此帖子以给出最终答案。

解决方案:问题来自 Apple 方面的 Itunes 连接。在我的雷达之后,我们的应用程序现在可以在 App Store 上购买并在 App Store 上看到。如果有人遇到与我们相同的问题,请不要犹豫,为它创建一个雷达。

0 投票
0 回答
197 浏览

ios - SKPaymentTransactionObserver 在使用 Ionic 2 App 在 App Store 中提交 IOS In-App 购买产品时发出警告

我正在尝试在 Apple App Store 中通过应用内购买提交 Ionic 2 应用程序。我SKPaymentTransactionObserver在应用商店促销部分收到以下方法警告。如何克服它?

在此处输入图像描述

0 投票
0 回答
494 浏览

ios - SKPayment 验证是否已购买订阅项目(目标 c)

我有这个代码和所有的过程都可以并进入这个状态:SKPaymentTransactionStatePurchased

但我不知道订阅试用结束后会发生什么。这个实现正确吗?

另一方面,当用户运行应用程序时,再次显示确认产品已购买的警报。当用户在应用程序已经购买时再次打开应用程序时如何避免此警报?

0 投票
1 回答
371 浏览

ios - 我们可以在属于同一开发者帐户的应用之间共享应用内购买吗?

我们可以在属于同一开发者帐户的应用程序之间共享应用程序内购买吗?

我在 App Store 上有一个应用程序,其中包含应用程序内购买列表。我想提交一个具有相同代码库和一些主题和皮肤更改的新版本。休息保持不变。

在这种情况下,在应用程序的支付页面上,应用内购买实际上应该保持不变。但是在 App Store 上有一个新应用程序,它不允许我拥有它。

我是否应该为新应用重新创建完整的应用内购买列表?

此外,不同应用程序的产品标识符不能相同。因此,在创建新的应用内购买时,我将不得不创建具有新标识符的产品。这也标志着后端的重大变化。

我们可以以编程方式将一种产品的应用内购买拉到另一种(属于同一个开发者帐户)吗?

对此有何看法?

0 投票
0 回答
1218 浏览

ios - restoreCompletedTransactions() 不调用 paymentQueue updatedTransactions?

我无法在 Swift 4/iOS 11 中恢复 IAP。我的AppDelegate工具SKPaymentTransactionObserver. AppDelegate我正在didFinishLaunchingWithOptions打电话SKPaymentQueue.default().add(self)。我paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])也在 AppDelegate 中实现了这个功能。

ViewController我可以像这样购买:

购买成功完成 - 我在我的观察者中获得了一个updatedTransaction状态。.purchasedpaymentQueue

但是,当我为此调用以下ViewController命令以恢复购买时:

paymentQueue updatedTransactions函数永远不会被调用。

似乎我的沙盒用户等设置正确,因为初始购买有效。沙盒用户是否有能力恢复购买?restoreCompletedTransactions()除了打电话恢复购买外,我还需要做任何额外的工作吗?


更新,这是我的paymentQueue updatedTransactions代码AppDelegate

0 投票
2 回答
107 浏览

ios - iOS IAP - 沙盒用户是否从直播商店购买?

如果用户在直播应用中购买了非消耗性 IAP,如果该用户设置为 iTunesConnect 用户和测试者,是否在沙盒环境中拥有该 IAP?然后该用户可以通过“恢复”购买restoreCompletedTransactions吗?还是他必须在沙盒环境中购买才能恢复?

示例流程

  1. 1用户从live环境安装版本
  2. A用户从live环境购买 IAP
  3. 用户安装 testflight 应用版本2
  4. 用户想要Asandbox环境中恢复购买
0 投票
1 回答
27 浏览

ios - iOS IAP:如何验证该用户是否真正被收取交易费用

我在用

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

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

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