问题标签 [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 投票
1 回答
28 浏览

ios - Xcode 应用程序问题从另一个类访问我的 ViewController 中的元素?

在我的应用程序中,SubscriptionVC 中有一个按钮,当按下该按钮时,它将调用 IAPService 类中的“购买”函数。但功能完成后,我希望使用 ViewController 的 switchState() 方法更改 ViewController 中的元素。有谁知道该怎么做?

0 投票
1 回答
31 浏览

ios - 访问用户之前在 iOS 上取消、升级或删除的订阅的接收数据信息

在 android 计费库中有一个类似下面的方法。

https://developer.android.com/reference/com/android/billingclient/api/PurchaseHistoryRecord

  1. 如果有可用的订阅,则为该订阅购买令牌等。返回数据。
  2. 如果当前没有订阅,但用户有之前的订阅,例如取消,则此旧订阅的 purchaseToken 等返回数据。

对于我的iOS 应用程序,如果用户有之前取消的订阅或订阅升级、降级取消的订阅,我想收到此订阅的receiptData 信息。这样的事情可能吗?我怎样才能访问它。

0 投票
0 回答
30 浏览

ios - SKPaymentTransactionObserver;多次重复交易

我有一个应用程序,我在其中使用了 SKPayment、SKPaymentTransactionObserver 等。但是,第一次付款一切正常,但是每当我选择要购买的任何其他东西时,它就会再次开始购买我已经购买的所有东西,最后是新的东西。尝试在互联网上查找它,但没有运气。

我在任何可以购买东西的地方都得到了相同的代码,但除了像“项目 2”这样的小改动。当我按顺序购买 6 件商品时,第六次购买时,控制台如下所示:

采购项目 1

购买项目 2

购买项目 3

采购项目 4

购买项目 5

购买项目 6

// 购买后:

购买的物品 1

购买的物品 2

购买的物品 3

购买的物品 4

购买的物品 5

购买的物品 6

编辑:我是初学者,所以任何解释、建议和更正都会很棒:)

0 投票
1 回答
568 浏览

ios - SKPaymentQueue 交易失败,沙箱中的 ASDServerErrorDomain Code=5002

突然,在沙箱中,已经有效的 IAP 的应用内购买失败并显示错误代码:

Console.app 日志显示:

我正在使用真实设备(使用 iOS 12、iOS 14.4、iOS 14.5(beta 7))...回答这个类似的问题
我正在部署 Xcode 12.4 / Xcode 12.5 (beta 3)...回答这个类似的问题
我的代码没有更改,也没有更改应用内购买。
通过 TestFlight 进行测试时也会出现相同的错误 当我连接到区域为“美国”的沙盒帐户并通过美国使用 VPN 时,不会发生错误。

错误发生在以下组合中:

  • 环境:沙盒
  • 具有 AppStore 国家美国和其他国家的各种 Apple ID,但使用欧洲 IP 登录
  • Xcode 部署和 TestFlight
  • iOS 12、14.4、14.5
  • iPhone 6、7、X
  • 当前正在生产的相同版本
  • 曾经工作过的相同代码
  • 仅具有两个自动续订订阅(自 9 个月以来一直在生产)

在以下每种情况下都不会出现该错误:

  • 环境:生产
  • 仅出于测试目的使用新的自动续订 IAP 时
  • 使用具有美国国家和美国 IP 的 Apple-ID 登录时

这个错误是什么意思?我在哪里可以找到这方面的信息?如何解决这个问题?

任何帮助表示赞赏:)

更新

该错误不再发生。再一次,我这边没有任何变化。我与 Apple 支持人员取得了联系,但他们无法向我解释发生了什么 - 可能也是因为它在美国进行测试时有效。

由于我的两个问题都没有得到回答,我将保留这个问题。也许它可以帮助遇到类似问题的人。

0 投票
0 回答
11 浏览

swift - 从缓存中移动 IAP 下载并使用文件

一直在努力将 IAP 下载(包含几个 mp4 视频文件)从缓存移动到文件管理器位置并使用这些文件。我在 SKDownload .finished: 中使用此代码来移动文件

然后我放入播放视频文件的VC(currentVideo var是视频文件的名称)

我哪里错了?另外我会把 queue.finishTransaction(transaction) 放在哪里?完成下载后显然需要采取行动,但如果我将其插入 SKDownload .finished 中,则它超出了 SKpaymentQueue 的范围,因此无法识别“交易”。我假设 queue.finishTransaction(download.transaction) 只完成了下载交易,没有完成支付交易?或者是吗?如果您还可以编辑代码,使其从用户备份中排除下载的文件,您将获得奖励积分:-)

0 投票
0 回答
18 浏览

swift - SKPaymentTransactionObserver,updatedTransactions 未调用

我在我的应用程序中使用以下帮助程序进行购买。当我调用时IAPHelper.default.initialize {_ in },就会调用 productsRequest 方法。

但是当我想进行购买并调用方法时

SKPaymentQueue.default().add(self)进行了购买,但在方法 purchaseProduct() 中添加的 updatedTransactions 方法没有被调用(在 SKPaymentTransactionObserver 中)

我究竟做错了什么?

0 投票
0 回答
36 浏览

swift - 在 swift iOS 应用程序中添加非消耗性付款时遇到问题(有时但并非一直有效)

我在我的游戏中添加了一个非消耗品购买,用户可以在游戏中以 99 美分的价格购买一个角色。我还没有部署我的应用程序,但我需要先让付款工作,否则 App Store 不会接受它,所以我正在 Testflight 上进行测试。我看过很多关于如何购买物品的不同教程,但也有不同的方法。我想知道为什么购买有时只在我的应用程序中有效,因为我有一个朋友昨晚在 TestFlight 上对其进行了测试,但他无法打开支付窗口。他会按下“购买”按钮,但什么也没有发生,这是为什么呢?

这是当用户按下按钮购买角色时我调用的函数:

这是我的 productsRequest 函数:

这是我的 fetchProducts 函数(blablabla 是我在代码中购买的实际地址):

最后是我的支付队列:

另外,我不确定我的 restorePurchases 按钮是否正确,我在网上看到了一些相互冲突的教程,并且它并不总是与 TestFlight 一起使用。有时按钮没有任何作用,我必须再次购买,但当我再次购买时,它说我已经购买了...这是功能,它的超级基本所以我希望有人知道我应该怎么做:

相互冲突的教程说我需要 .add(self) 但另一个说我只需要 restoreCompletedTransactions()。哪一个是对的??

非常感谢您阅读我的长问题,对不起,它太长了,但我想确保我做对了,这是我提交应用程序之前需要做的最后一件事!!!