问题标签 [in-app-purchase-receipt]

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 回答
197 浏览

ios - IAP 处理多用户/原始交易 ID

我觉得这个话题正在被一次又一次地讨论,但我无法找到一种正确的方法来管理这个问题。问题:

-> 自动续订订阅(每月):
-> 单个 iTunes 帐户
-> 增加应用程序用户帐户
-> 我如何确定谁拥有订阅

用例:

  1. UserA 购买订阅(我在服务器“app_userId,original_transaction_id,web_order_id”上创建条目)
  2. UserA 注销(或删除应用程序等)
  3. UserB 登录(相同的 iTunes 帐户)-> 几周后 sub 过期
  4. 订阅自动更新 -> UserB 获取交易更新 - 我使用 original_transaction_id 检查此订阅是否真的属于 UserB(这种情况下:NOT) -> 正是我需要知道的。(只有用户A可以使用此iTunes帐户下的订阅)

我的理解是否正确,在可更新订阅的情况下:-> original_transaction_id 永远不会改变(尽管我已经看到人们声称它确实如此的 stackoverflow 票证!或者它在 restore 之后,或者在另一个设备上...... -> 个人,测试在另一台设备上(恢复)->到目前为止它没有改变......但是有人可以确认它永远不会改变吗?

-> web_order_line_item_id - 它只能告诉我“当前活动”订阅属于谁(前提是我也在服务器上存储了该信息) - 但是一旦订阅更新 -> 它就没有用了(每次更新都是新的)。

我已经在这个话题上花了一个多星期,但仍在苦苦挣扎:) 这太疯狂了......

0 投票
1 回答
502 浏览

flutter - Flutter,in_app_purchase:显示订阅到期日期或状态的方式

使用 in_app_purchase: ^0.3.5+1 包,我正在尝试验证用户在 iOS 上是否有活动订阅。

我可以得到productIDand transactionDate, with purchaseDetails.productID & purchaseDetails.transactionDate。但我似乎无法获得到期日期或状态。观看他们谈论“状态”堆的苹果视频。我不确定是否有人开始免费的 3 天试用,如果交易日期会知道他们是否取消,所以没有信心将所有事情都基于此交易日期。

我可以得到purchaseDetails.verificationData.localVerificationData,这似乎是一个 ANS1 字符串,这可能有更多信息,但我似乎无法解码它。有谁现在如何为 iOS 解码这个?或者知道另一种获取订阅状态的方法?

我试图不使用像 RevenueCat 这样的平台(因为他们削减了),但他们似乎提供了这样的功能。

下面是 ASN.1 字符串:

0 投票
0 回答
39 浏览

android - 如何获取已购买订阅的数据

**我已在我的应用中实施应用内购买,我想获取已购买订阅的 sku 数据和醋栗状态的详细信息。有了这些数据,我想用于按比例分配和取消

有没有办法找到这个**

0 投票
0 回答
26 浏览

android - 我如何在 android 中获得应用购买用户状态

我已经在我的应用中实现了应用内购买,我想获取已购买订阅的 sku 数据和醋栗状态的详细信息。

有了这些数据,我想用于按比例分配和取消

有没有办法找到这个

0 投票
0 回答
49 浏览

ios - Apple 应用内沙箱收据验证有时会返回空 JSON 响应

在验证沙盒收据(直接使用沙盒服务器)时,我有时会收到有效的收据,有时会得到空响应。问题是随机的,对于来自 iOS 客户端的相同编码收据,两种结果都可能发生。空响应会在一段时间后停止。

我想知道是否有人遇到过这个问题,尤其是在生产中?也许,有办法防止它发生?

将不胜感激有关此事的任何信息。

0 投票
1 回答
63 浏览

java - Apple 购买:使用 Rest 模板验证收据

我必须实现一个 API,旨在使用 Rest 模板通过 Apple 服务器验证收据。但是,我总是从https://sandbox.itunes.apple.com/verifyReceipt收到状态代码 21002

苹果文档: https ://developer.apple.com/documentation/appstorereceipts/verifyreceipt

任何的想法 ?

0 投票
2 回答
1642 浏览

ios - 沙箱环境返回 21003 状态码进行收据验证

当我使用沙盒测试应用内购买时,对沙盒 url https://sandbox.itunes.apple.com/verifyReceipt的发布请求返回

21003 状态码表示收据无法验证。https://developer.apple.com/documentation/appstorereceipts/status?language=objc

这是预期的吗?我假设我的测试收据将被认为对沙盒环境有效并返回状态 0。

0 投票
0 回答
151 浏览

ios - 应用购买收据数据中的 Flutter (IOS)

我使用 [in app purchase][1] 库在我使用 Flutter 开发的应用程序中进行应用内购买。进行购买时,为了在服务器端验证 Android 应用内购买,我发送的数据如下,我需要由服务器发送。

但是,尽管我尝试如下获取验证 iOS 应用内购买所需的数据,但没有数据发送到服务器端。

如何获取验证 iOS 应用内购买所需的数据并将其发送到服务器端?

0 投票
0 回答
43 浏览

ios - 没有服务器的 iOS 订阅促销优惠

我是 iOS 自动更新订阅主题的新手,我试图了解两件事:

  1. 是否可以在没有服务器的情况下使用订阅?如果我现在唯一的目标只是了解订阅是否处于活动状态。
  2. 是否可以在没有服务器的情况下使用促销优惠

在 Apple 文档中,他们总是提到用于收据验证的服务器端组件,但与此同时,我看到像SwiftyStoreKit这样的库,它们具有订阅验证方法。所以,#1 似乎是可能的。但也许#2 也是可能的?

我怀疑,如果没有服务器端验证,恶意用户可能会以某种方式伪造订阅,但这就是我需要担心的吗?

0 投票
0 回答
77 浏览

android - 如何确定用户是否从 google play store 订阅中重新订阅过期订阅

我有一个有订阅的android应用程序,问题是用户可以直接从Play商店而不是应用程序重新订阅过期的订阅。所以发生这种情况时,我无法在后端获取用户详细信息。还尝试禁用重新订阅选项,但重新订阅按钮仍出现在 Play 商店中。有人知道如何处理这种情况吗?