首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS自动续订订阅veirfyReceipt返回的接收base64与设备不同

iOS自动续订订阅verifyReceipt返回的接收base64与设备不同。

在iOS应用中,自动续订订阅是一种通过App Store进行购买和续订的订阅模式。当用户购买或续订订阅时,iOS会生成一个收据(Receipt),其中包含有关购买信息的加密数据。为了验证收据的有效性和真实性,开发者可以使用verifyReceipt接口将收据发送给苹果服务器进行验证。

verifyReceipt接口会返回一个base64编码的收据响应,其中包含了与订阅相关的详细信息。然而,在某些情况下,开发者可能会遇到接收到的base64与设备不同的情况。

这种情况可能是因为使用了测试环境的收据进行验证,而测试环境的收据与实际设备的收据有所不同。在测试环境中,苹果提供了一个Sandbox环境,用于开发者测试订阅功能。在Sandbox环境下进行订阅购买时,返回的收据会与实际设备的收据有所差异。

为了解决这个问题,开发者可以通过以下步骤进行处理:

  1. 确认使用的环境:首先,开发者需要确认当前所使用的是正式环境还是测试环境。可以通过验证收据响应中的字段来判断,例如判断环境字段(environment)是否为Sandbox。
  2. 转换测试环境收据:如果确认使用的是测试环境的收据,开发者需要将其转换为实际设备的收据。可以通过订阅购买流程中的恢复购买(Restore Purchase)功能来获取实际设备的收据。恢复购买会返回实际设备上已购买的订阅信息,其中包含了有效的收据。
  3. 验证收据的合法性:使用转换后的收据进行验证,并确保验证过程中使用的公钥(public key)是正确的。验证收据的合法性可以参考苹果的官方文档和示例代码。

总结起来,当iOS自动续订订阅的verifyReceipt返回的接收base64与设备不同时,开发者需要确认使用的环境,转换测试环境收据为实际设备的收据,并使用正确的公钥进行验证。这样可以确保收据的有效性和真实性,以便进行后续的订阅管理和服务提供。

请注意,以上答案仅为参考,实际情况可能因苹果的政策和技术变化而有所不同。建议开发者在实际开发过程中参考苹果的官方文档和资源,以确保正确使用和处理自动续订订阅的相关功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS内购(IAP)自动续订订阅类型总结

在这里总结一下完成自动续订订阅类型过程中遇到的问题和一些坑,希望帮助到大家。 内购流程 1. 流程简述 先来看一下iOS内购的通用流程: ? ?...4步: 3.1 接收ios端发过来的购买凭证。...简单来说就是将该购买凭证用Base64编码,然后POST给苹果的验证服务器,苹果将验证结果以JSON形式返回。 ? 2....任何持续时间的降级或具有不同持续时间的交叉等级将在下一个续订日期生效。 您可以查看收据的“订阅自动续订首选项”字段,以了解用户选择的任何计划更改,这些更改将在下一个续订日期生效。 2....App Store会多次尝试在一段时间内自动续订订阅,但如果尝试失败次数过多,最终会停止。 注意: 对于与帐单相关的问题,App Store可能会尝试续订最多60天的订阅。

12.3K62

WWDC22 - In App Purchase 更新总结

新调整:符合某些特定条件并在提前通知用户的情况下,开发者在为自动续订订阅提价时,无需用户额外采取行动,亦不会中断服务。...需要注意的是,不要使用 recentSubscriptionStart 字段日期来计算付费服务天数,以前,自动续期订阅的净收入结构和 App Store 上的其他商业模式不同,用户订阅累积满一年后,开发者的...最后,交易历史记录接口返回结果只支持以下情况: 自动续期订阅 非续订订阅 非消耗型应用内购买项目 消耗型应用内购买项目:如果交易被退款、撤销或 app 尚未完成交易处理等。...使用 获取所有订阅状态 接口确定订阅者是不是已关闭特定订阅的自动续订。...选择接收服务器通知以了解何时由于账单问题而导致订阅续订失败,或使用 获取所有订阅状态 接口确定订阅是不是由于账单问题而处于计费重试状态。

4.9K90
  • WWDC21 - App Store Server API 实践总结

    } Extend a Subscription Renewal Date:使用原始交易标识符延长用户有效订阅的续订日期。...但是在实践中,发现消耗型项目没有查到,重新查看接口文档 Get Transaction History,发现有了新的更新说明: 交易历史记录返回结果只支持以下情况: 自动续期订阅 非续订订阅 非消耗型应用内购买项目...所以,使用此 API 查询您可能错过的任何退款通知,例如在服务器停机期间。 但需要注意,仅包括 App Store 批准的退款:消耗性、非消耗型、自动续期订阅和非续期订阅。...也就是有自动订阅类型的 App,可以开发者主动在服务器给用户补偿(免费延长)用户的订单时间,每次最多是90天。详细见文档 Extend a Subscription Renewal Date。...以下类型的订阅不符合续订日期延期的条件: 免费优惠期内的订阅 处于账单重试状态的非活跃订阅 已经到期,处于宽限期状态的订阅 在过去365天内已经收到两次续订日期延期的订阅 另外,苹果有一个提示:当 App

    11.7K31

    AppStore服务端通知(订阅退款回调通知)

    配置一个用于接收POST消息的 URL 实际上就是提供一个POST接口地址专门用来接收苹果的消息通知 譬如说 举个例子: https://api.shezw.com/notify/appstore 3....DID_RECOVER 表示成功的自动更新已过期的订阅,而该订阅过去无法更新。检查expires_date,以确定下一个续订日期和时间。...DID_RENEW 表示客户的订阅已成功自动续订了新的交易期。 INITIAL_BUY 在用户最初购买订阅时发生。...除非用户同意新价格,否则订阅不会自动续订。当客户同意提价时,系统将price_consent_status设置为1。使用verifyReceipt检查收货以查看更新的价格同意状态。...RENEWAL (在沙盒中弃用) 表示成功的自动更新已过期的订阅,而该订阅过去无法更新。检查expires_date,以确定下一个续订日期和时间。

    6.5K20

    苹果iOS内购三步曲:App内退款、历史订单查询、绑定用户防掉单!--- WWDC21

    与新特性无缘,所以现在就是开始学习 Swift 的最佳时刻了,再不学 Swift 开发,连 iOS 开发都不能愉快进行啊~ 2.1.1、StoreKit v2 和 v1 是什么关系呢?...如果需要关联 用户ID 和开发者订单号,需要开发者自动映射,或者服务器端生成返回等。..."." + sign( Base64(header) + "." + Base64(payload) ) 这个 header 与 payload 通过 header 中声明的 alg 加密方式,使用密钥...[16239028962697.jpg] 查询同一个用户在不同的设备上的交易订单,假设用户在 A 设备购买了一笔交易订单,那么在用户的 B 设备上,可以实时查到这个购买的交易订单。...3.6 Manage family sharing 管理家庭共享 目前苹果对 非消耗型 和 自动订阅 类型品项是支持 家庭共享(family sharing),另外,苹果会返回一个字段 inAppOwnershipType

    13.8K20

    适配 Google Play 结算系统的最新特性

    每种新功能我们都会基于两种不同的情况来讨论: 您的应用并未使用后端服务来跟踪订阅状态; 您的应用具备后端服务,它会通过实时的开发者通知来跟踪订阅状态。...账号保留功能 该功能具体是指 : 当用户尝试对某项订阅进行续订,但是付款出现了问题而导致续订失败,此情况下该用户的账号就会进入到账号保留状态,该状态最多会维持 30 天,在这期间用户将失去对该订阅内容的访问权限...您可以在 官方文档 中查看更多关于账号保留的内容,也可以进一步了解如何正确处理这种状态。 订阅恢复 该功能具体是指 : 用户可能会在当前账单的订阅到期之前主动取消续订。...重新订阅功能目前在 Play Console 中是默认关闭的,但是从 2020 年 11 月 1 日开始会自动启用。...后端接收到该通知后,您的应用应该恢复用户对订阅功能的访问权限。 您可以在 官方文档 中查看更多关于重新订阅的内容,也可以进一步了解如何正确处理这种状态。

    1.4K20

    iOS IAP应用内购详细步骤和问题总结指南

    服务器返回包含产品标识符的列表。 程序向App Store发送请求,得到产品的信息。 App Store返回产品信息。...选择功能 添加内购项目商品 内购商品对应四种类型 消耗型、非消耗型、自动续订订阅型、非续订订阅型 官方文档 选择“消耗型项目”、“非消耗型项目”或“非续订订阅”,并点按“创建”。...有关自动续订订阅的信息,请参见创建自动续期订阅。 添加参考名称、产品 ID 和本地化显示名称。 点按“存储”或“提交以供审核”。...进行验证 6.itunes.appstore返回验证结果给服务器 7.服务器对商品购买状态以及商品类型,向客户端发放相应的道具与推送数据更新通知 漏单处理 确保receipt-data的成功提交与异常处理...**A:**先看一下官方文档怎么说生成收据验证代码 为了在验证自动续期订阅时提高您的 App 与 Apple 服务器交易的安全性,您可以在收据中包含一个 32 位随机生成的字母数字字符串,作为共享密钥。

    10.2K12

    RabbitMq消费消息

    推模式: 1:推模式接收消息是最有效的一种消息处理方式。...拉模式:1:如果只想从队列中获取单条消息而不是持续订阅,则可以使用channel.basicGet方法来进行消费消息。...不言不语技术 https://www.cnblogs.com/hzcya1995/p/13302427.html 1.推模式 在推模式中,可以通过持续订阅的方式来消费消息,使用到的相关类有: import...类实现,当调用与consumer相关的api方法时,不同的订阅采用不同的消费者标签consumerTag来区分彼此,在同一个channel中的消费者也需要通过唯一的消费者标签做区分,关键消费代码如下:...2.拉模式 拉模式通过channel.basicGet方法可以单条的获取消息,其返回值为GetResponse,channel类的basicGet方法没有其他的重载方法,拉模式不要放在一个while循环中

    1.4K20

    一起看 IO | Google Play 更新一览

    ,以及提供 新的订阅功能 推动收入增长。...您还可以通过 RAM 和 Android 版本查看并快速识别最常用的设备变体。 现在,在不同类型的设备上测试应用要比以前容易得多。...我们推出了 新的订阅功能,并重新设计了开发者体验,让您在 Google Play 上销售订阅内容时更加轻松。...订阅的每个 基本计划 都定义了不同的计费期和续订类型: 如每月自动续订、每年自动续订和提前 1 个月预付。...基本计划中则可以针对订阅周期的不同阶段设置多个 优惠: 比如提供限时免费试用来吸引新订户,或提供升级优惠以激励用户从预付计划转为自动续订计划。提供优惠是获取新用户、激励升级和留存现有用户的好方法。

    71540

    Apple ID 换区填坑小记

    进行这些操作之前记得先连接 iTunes 为 iOS 设备进行备份,以防万一。...接下来说一下具体的操作步骤,如果没有添加相关服务,可跳过无关部分继续往下。 退订订阅 当前 Apple ID 下订阅的所有会自动续订的服务都需要关闭掉。...一,是在基于 iOS 系统的 iPhone 或 iPad 及 iPod Touch 等设备上操作完成。 1....途径与退订操作类似: 在 iOS 设备上: 「设置」-「家庭共享」——点击自己名字——「停止家人共享」; 在 macODS 上: 「系统偏好设置」-「iCloud」-「管理家人共享」——「点击自己名字」...这个问题,可以通过在 Sierra 及以下版本中,使用 iTunes,或者是通过任意的 iOS 设备进行相应操作来规避。

    16.2K60

    【开源物联网平台】FastBee认证方式和MQTT主题设计

    用户ID就是登陆用户的ID,使用不同用户ID,设备归属于不同用户。...设备编号有两种方式获取:1.使用系统新建设备时,生成的设备编号;2.系统未新建设备,硬件端生成一个唯一编号作为设备编号,认证后系统会自动注册一个设备实体(设备比较多时,推荐这种方式) 2.1 加密认证...NTP时间接口,接口请求时发送设备当前运行毫秒数,返回设备发送时间、服务端接收时间、服务端发送时间。...,偏移量固定为 wumei-smart-open 16位,输出为Base64,加密使用的密码为产品密钥。...通过web端获取产品ID和设备编号,如果使用自动添加设备,设备编号可以使用唯一编码或者使用设备MAC地址,设备认证成功后会在后端自动添加一个对应的设备实体。

    33310

    苹果 IAP 新特性之启用服务端到服务端通知

    前言 服务器到服务器的通知是一项用于自动续订的服务。App Store 会将订阅状态的实时更改发送到您的服务器。...设置服务器后,您可以随时通过在 App Store Connect 中添加服务器 URL 来开始接收通知。 将通知与收据验证一起使用可以验证用户的当前订阅状态,并根据该状态为他们提供服务或促销优惠。...配置服务器以接收通知 •在服务器上支持App Transport Security(ATS)。•确定服务器上的 URL 以用于订阅状态更新。...•在App Store Connect中为您的应用程序配置订阅状态URL。 接收服务器到服务器的通知 App Store 会通过 HTTP POST 的方式 将 JSON 对象传递到您的服务器。...响应服务器到服务器的通知 您的服务器应发送一个 HTTP 的状态码,以指明服务器到服务器的通知发布是否成功: •如果发送成功,则发送 HTTP 状态码 200。你的服务器不需要返回任何数据。

    91120

    苹果上架的整个流程

    https://www.apple.com/itunes/ 直接在官网进行下载安装 安装完成后直接打开 使用数据线,将 iOS 设备连接电脑 连接成功后,iTunes 上会显示你的设备名称 在左侧的设备栏出现你的设备后...iOS App上传项目遇到的问题 https://www.jianshu.com/p/9195cd991fc7 iOS H5 调用支付宝/微信支付不返回 app 的解决方法记录 https://www.jianshu.com...使用两因素身份验证,只有您可以在受信任的设备或网络上访问您的帐户。当您想首次登录新设备时,需要提供两条信息-您的密码和六位数的验证码,这些信息会自动显示在您信任的设备上或发送到您的电话号码。...通过输入代码,您正在验证您信任新设备。例如,如果您有iPhone,并且是首次在新购买的Mac上登录帐户,则系统会提示您输入密码和自动显示在iPhone上的验证码。...使用watchOS 6或更高版本的Apple Watch在使用Apple ID登录时可以接收验证码,但不能用作密码重置的受信任设备。 这里会要求上传一个证书 ?

    2.4K41

    Hoppscotch:开源 API 开发工具,快捷实用 | 开源日报 No.77

    可作为渐进式 Web 应用 (PWA) 安装在设备上,提供离线支持以及低内存/CPU 使用率等特性。 具有丰富的请求功能,例如复制/分享公共 URL、生成代码片段以及导入 cURL 等操作方式。...包括 WebSocket 通信、Server-Sent Events 接收服务器更新流数据、Socket.IO 与 SocketIO 服务器进行数据交互以及 MQTT 订阅发布消息到 MQTT 代理服务等功能...例如,当应用程序需要访问 S3 存储桶时,它会要求 Vault 提供凭证,Vault 将按需生成具有有效权限的 AWS 密钥对。创建这些动态密钥后,Vault 还会在租约到期后自动撤销这些密钥。...租约和续订:Vault 中的所有密钥都有与之关联的租约。租约结束时,Vault 将自动撤销该密钥。客户端可以通过内置的续订 API 续订租约。 撤销:Vault 内置了对密钥撤销的支持。...核心优点: 提供丰富、高质量、符合国际化与无障碍要求、可定制化适配不同需求场景、使用情况良好、行为表现一致、性强强大的 UI 组件; 带有清晰易懂 API 接口并经过充分测试保证稳定性; 代码干净规范且文档完善

    48610

    如何将 Stackdriver 连接到智能家居服务器以进行错误记录

    server for error logging 原文作者:Nick Felker 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:Starriers 当你的智能家居设备与...在这里,你可以创建一个连接到 Google Cloud 发布/订阅的主题接收器。这将是你能够在每次出现日志条目时处理事件: ? 在抽屉导航中,打开发布/订阅概述,创建一个新的订阅: ?...这里,你可以新建一个订阅。对于交付类型,输入用于接收订阅的的 URL。为了进行验证域名验证,你必须拥有自己的服务器: ? 在你的服务器上,为了接受端点,你需要添加一个处理器。...在你的智能家居集成中,设置你的 SYNC 回复返回一个无效的设备类型,例如 LART。...在你的服务器中,你也会看到此错误正在被记录。当你遇到此错误时,你可以查看已发送的 SYNC,并确定该错误来自设备类型的错误。你可以通过修复返回此设备信息的字符串来修复 webhook 中的错误。

    1.9K30

    一起看 IO | 灵活的全新工具助力您的 Google Play 订阅业务

    随着订阅业务模式的发展,许多开发者要求我们简化订阅业务的销售,并提供更多的灵活性。 为了回应这些诉求,我们重塑了订阅销售的开发者体验。...现在,我们为大家带来了 新的订阅功能 和新的管理中心界面,以帮助您发展业务。在此基础上,我们还将订阅提供的优惠与订阅的销售方式进行了分离。...△ 订阅配置示例 更加灵活地提高覆盖、转化和留存 订阅服务中的每个 基本计划 都定义了不同的计费期和续订类型,比如每月自动续订、每年自动续订和提前 1 个月预付。...对于还没准备好购买自动续费计划的用户来说,预付费计划也是很好的替代选项。 基本计划可以针对订阅周期的不同阶段设置多个 优惠,无论您是想吸引新用户、提供升级优惠以激励用户升级订阅,抑或是留存现有用户。...比如: 为订阅提供免费试用或折扣来吸引用户 通过升级和交叉升级优惠来激励用户使用更长的计费周期或更高级的订阅方案 升级优惠还可以激励用户从预付费计划转换为自动续费计划 如果您想要为用户提供更灵活的方案,

    55930

    应用程序内购买教程:入门

    本教程中的RazeFace插图属于此类别。 非续订订阅:在固定时间段内可用的内容。 自动续订订阅:重复订阅,例如每月raywenderlich.com订阅。...注意:您可以在iOS模拟器和物理iOS设备上显示IAP产品,但如果您要测试购买或恢复购买,则只能在物理设备上执行此操作。更多相关信息,请参阅下面的采购部分。 ?...此列表由本帖的早期版本的论坛中的itsme.manish和abgtan提供,以及随着时间的推移添加的更多提示。 项目的Bundle ID是否与iOS开发中心的App ID相匹配?...Apple的Validating Receipts与App Store文档中说明了状态代码。 是否为App ID启用了IAP?(你之前选择过清仓吗?) 您是否尝试从设备中删除该应用并重新安装?...在StoreKit API扩展中,使用以下行替换return语句canMakePayments(): return SKPaymentQueue.canMakePayments() 产品单元格的行为应根据返回的值而有所不同

    5.5K20

    react-native布局与组件

    经典资料参考:阮一峰flex 布局语法篇:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html FlexBox提供了在不同尺⼨设备上都能保持一致的布局...宽被解释成:100dp 100dp,字体被解释成16sp,运⾏于 ios上时尺⼨单位被解释成pt,这些单位确保了布局在任何不同DPI的手机屏幕上,显示效果一致。...具体来说就是因为目前有 iPhone X 这样的带有“刘海”的全面屏设备,所以需要避免内容渲染到不可⻅见的“刘海”范围内。本组件目前仅⽀持 iOS 设备以及 iOS 11 或更高版本。...SafeAreaView 会自动根据系统的各种导航栏、工具栏等预留出空间来渲染内部内容。更重要的 是,它还会考虑到设备屏幕的局限,比如屏幕四周的圆⻆角或是顶部中间不可显示的“非安全”区域。...ActivityIndicator loading的小菊花 显示一个loading提示符安卓设备时一个谷歌式半圆环,在ios设备上则显示一朵小菊花。

    5.3K20

    数据库PostrageSQL-订阅

    订阅者数据库的行为与任何其他PostgreSQL实例相同,并且可以被用作其他数据库的发布者,只需要定义它自己的publication。 如果需要,一个订阅者节点可以有多个订阅。...可以在一对发布者-订阅者之间定义多个订阅,在这种情况下要确保被订阅的publication对象不会重叠。 每一个订阅都将通过一个复制槽(见Section 26.2.6)接收更改。...表在发布者和订阅者之间使用完全限定的表名进行匹配。不支持复制到订阅者上命名不同的表。 表的列也通过名称匹配。允许在目标表中的列序不同,但是列类型必须匹配。目标表可以有被发布表没有提供的额外列。...复制槽管理 如早前所提到的,每一个(活跃的)订阅会从远(发布)端上的一个复制槽接收更改。...通常,远程复制槽是在使用CREATE SUBSCRIPTION创建订阅是自动创建的,并且在使用DROP SUBSCRIPTION删除订阅时,复制槽也会自动被删除。

    45420

    RabbitMQ消息通信

    消费者连接到代理服务器上,并订阅到相应的队列上。rabbitmq会将消息发送给监听/订阅的消费者,消费者它接收到的是有效载荷。...消费者通过两种方式从特定的队列中接收消息: basic.consume命令方式持续订阅。 basic.get 获取单条信息。...auto-delete 当最后一个消费者取消订阅时,队列将会自动删除。...当我们需要检测一些队列是否存在我们可以通过queue.declare的passive设置为true,如果队列存在则成功返回;如果队列不存在则会返回一个错误。...,其中服务器必须实现direct类型的交换器,包含一个空白字符串名称的默认交换器,当生命一个队列时,它会自动绑定到默认交换器,并以队列名称作为路由键。

    1.8K70
    领券