将收据数据发送到App Store:

提交此JSON对象作为HTTP POST请求的有效负载。

中文文档:https://help.apple.com/app-store-connect/#/dev7e89e149d

在测试环境中,https://sandbox.itunes.apple.com/verifyReceipt用作URL。

在生产中,https://buy.itunes.apple.com/verifyReceipt用作URL。

国内访问苹果服务器域名速度比较慢,可以使用代理转发

配置代理,先转发到香港再转发到苹果服务器:Nginx(三)------nginx 反向代理 - YSOcean - 博客园

在服务器上,使用以下键创建JSON对象:

请求数据格式
key value

receipt-data

The base64 encoded receipt data.

base64编码的收据数据。

password

Only used for receipts that contain auto-renewable subscriptions. Your app’s shared secret (a hexadecimal string).

仅用于包含自动续订的收据。应用程序的共享机密(十六进制字符串)。

exclude-old-transactions

Only used for iOS7 style app receipts that contain auto-renewable or non-renewing subscriptions. If value is true, response includes only the latest renewal transaction for any subscriptions.

仅用于包含自动续订或非续订订阅的iOS7样式的应用收据。如果值为true,则响应仅包括任何订阅的最新续订交易

返回相应结构体
key meaning
status 相应状态码
receipt 发送用于验证的收据的JSON表示形式。有关在收据中找到的密钥的信息
latest_receipt 仅针对包含自动续订的收据返回。对于iOS 6样式的交易收据,这是最新续订的以64为基数编码的收据。对于iOS 7风格的应用收据,这是最新的base-64编码的应用收据。
latest_receipt_info 仅针对包含自动续订的收据返回。对于iOS 6样式的交易收据,这是最新续签的收据的JSON表示形式。对于iOS 7风格的应用收据,此键的值是一个包含所有应用内购买交易的数组。这不包括已被您的应用标记为已完成的消耗品交易
latest_expired_receipt_info

仅针对iOS 6样式的交易收据返回,用于自动续订。过期订阅的收据的JSON表示形式

pending_renewal_info 仅针对包含自动续订的iOS 7样式的应用收据返回。在JSON文件中,此键的值是一个数组,其中每个元素都包含由标识的每个自动可续订订阅的待处理续订信息Product Identifier。待定的续订可能是指将来计划的续订,或者是由于某种原因在过去失败的续订。

is-retryable

重试对此收据进行验证。仅适用于状态码21100-21199
收据详细字段
key meaning
bundle_id

捆绑包标识符

application_version 应用程式版本
original_application_version 最初购买的应用程序的版本。
receive_creation_date 应用收据的创建日期。
expiration_date 应用收据到期的日期。
product_id 购买的商品的产品标识符。
transaction_id 购买物品的交易标识符。
original_transaction_id 对于恢复先前交易的交易,原始交易的交易标识符
purchase_date 购买该商品的日期和时间
expires_date 订阅的到期日期,表示为格林尼治标准时间1970年1月1日00:00:00以来的毫秒数
expiration_intent 对于过期的订阅,订阅到期的原因
is_in_billing_retry_period 对于过期的订阅,Apple是否仍在尝试自动续订
is_trial_period 对于订阅,无论是否在免费试用期内。
is_in_intro_offer_period 对于自动续订的订阅,无论它是否处于促销价格期间
cancel_date 对于Apple客户支持取消的交易,取消的时间和日期
cancellation_reason 对于已取消的交易,取消的原因
app_item_id App Store用于唯一标识创建事务的应用程序的字符串
version_external_identifier 唯一标识应用程序修订版的任意数字。
web_order_line_item_id 标识订阅购买的主键。
auto_renew_status 自动续订订阅的当前续订状态。

“ 1”-订阅将在当前订阅期结束时续订。

“ 0”-客户已关闭其订阅的自动续订。

auto_renew_product_id 自动续订订阅的当前续订首选项。
price_consent_status 订阅价格上涨的当前价格同意状态。
status 状态码
状态码 描述
21000 App Store无法读取您提供的JSON对象。
21002 receipt-data属性中的数据格式错误或丢失。
21003 收据无法认证。(一般都是因为共享秘钥有问题才产生的错误)
21004 您提供的共享密码与您帐户的文件共享密码不匹配。
21005 收据服务器当前不可用。
21006

该收据有效,但订阅已过期。当此状态代码返回到您的服务器时,收据数据也会被解码并作为响应的一部分返回。

仅针对自动续订的iOS 6样式交易收据返回。

21007 该收据来自测试环境,但已发送到生产环境以进行验证。而是将其发送到测试环境。
21008 该收据来自生产环境,但是已发送到测试环境以进行验证。而是将其发送到生产环境。
21010 此收据无法授权。就像从未进行过购买一样对待。
21100-21199 内部数据访问错误。

注意:同一个apple 苹果账号如果购买过内购订阅的商品,那么请求的验单参数里必须传password共享秘钥,否则会报错21004;同理没有订阅过的苹果账号验单时可不传password参数,传了也可以正常验单,结论:如果开通内购订阅并创建共享秘钥那么默认都传此参数(沙盒环境下,正式环境暂未测试)

分享几个文章:| ProcessOn

返回验单数据结构:IOS 内购IAP 自动订阅收据验证返回结构体_天下皆白_唯我独黑的博客-CSDN博客

IOS 内购IAP 自动订阅收据验证文档服务端翻译相关推荐

  1. IOS 内购IAP 自动订阅收据验证返回结构体

    exclude-old-transactions 参数等于true时. 数据通过json_decode()转换后 1.首次订阅支付通过票据进行验单的返回结构体: Array ([status] =&g ...

  2. iOS内购测试自动订阅型产品

    最近产品需要涉及到订阅型的内购创建,上一次使用自动订阅内购还是好几年的事情了,很多内容大都忘得差不多了,加上苹果设计的内购又增加了一些新功能和改变,不得不重新来审视下自动订阅型内购,而官方又没有中文文 ...

  3. iOS 内购IAP(In-App Purchases)代码实现(上)

    iOS 内购IAP(In-App Purchases)代码实现(上) iOS 内购,也叫内支付,是在iOS应用内部,向苹果服务器发起购买请求的过程.我们在这边来讲一讲代码的实现过程.还有,在做内购的时 ...

  4. iOS内购:自动续期订阅总结

    前言:内购类型有四种:消耗型商品,非消耗型商品,非续期订阅,自动续期订阅. 顾名思义,从中最有难度的就是自动续期订阅的实现,开通自动续期订阅后,订阅会员的处理将会遇到如下问题:自动订阅的到期继续自动订 ...

  5. Unity IAP iOS 内购以及获取交易收据进行验证

    1. 准备工作,先到iTunesConnect 上进行添加内购项目和沙盒测试账号 创建APP 内购项目 选择其中一种类型,进行创建 填写内购项目的内容(其中的产品 ID 记住,在接下来有很多地方需要用 ...

  6. php++内购续期订阅,iOS内购:自动续期订阅总结

    前言:内购类型有四种:消耗型商品,非消耗型商品,非续期订阅,自动续期订阅. 顾名思义,从中最有难度的就是自动续期订阅的实现,开通自动续期订阅后,订阅会员的处理将会遇到如下问题:自动订阅的到期继续自动订 ...

  7. IOS内购IAP(IN-APP-PURCACHE)收据

    将receipt_data发送到App Store获得app内商品的ios收据详情 请求方式:向appstore发送HTTP POST请求 在测试环境中,URL为 https://sandbox.it ...

  8. PHP实现苹果(IOS)内购(IAP)

    反反复复经过多次重写(内部需要),发现苹果使用PHP来验证苹果内购数据是否正确并不是一件很难的事情.我把我的一些心得写出来,以供以后有这方面需求的小伙伴参考,以PHP语言为例,谁让PHP是最好的语言呢 ...

  9. iOS内购(IAP,In App Purchases-在APP内部支付),设置及使用

    项目中使用到了中间货币(金币)的形式来进行功能使用,模式是使用RMB换成-金币比如:(1RMB = 10金币),所以会集成第三方的支付平台,使用了微信和支付宝的第三方平台过后,发现审核失败,被苹果拒绝 ...

最新文章

  1. servlet的一些简单理解
  2. 10万元奖金“智源工业检测赛”激战正酣!高分Baseline合辑带你入门智能制造
  3. JVM运行时区域详解
  4. sql 基础增删改查语句
  5. Oracle数据库实现主键自增(利用sequence)和分页查询(利用rownum)
  6. IDEA 常用配置以及快捷
  7. Code Chef - Chef and Graph Queries
  8. 安装.Net Framework提示:无法建立到信任根颁发机构的证书链
  9. python 对象和json互相转换
  10. 依赖倒置原则_SOLID 设计原则,Java实例讲解
  11. 收藏 | 应急响应的基本流程
  12. 接口性能测试+调优+性能指标
  13. 三星真机云测平台可能是最好的云测平台,因为他免费。
  14. Android将数据导出为excel文件的方法
  15. python数据分析库pandas官方教程
  16. 点击劫持(clickjacking)
  17. LTE CAT M1模块为辅助生活系统提供了宽带和智能手机的替代方案
  18. 华为手机记事本导出_华为手机便签记事本怎么找到
  19. [教程] 关于一种比较特别的线段树写法
  20. 快速云:云计算供应商在合同谈判时可能拒绝的三个事项以及要求

热门文章

  1. 最佳编程笔记本_2020年如何选择最佳笔记本电脑进行编程?
  2. 朝鲜“局域网”探秘:看着就不寒而栗!
  3. three.js之模型
  4. Wondershare Filmora for Mac如何使用绿色屏幕 (色度键)?
  5. Linux中的主分区和扩展分区
  6. Ubuntu 通过 iptables 开放指定端口
  7. 微信小程序--Ble蓝牙
  8. 车距检测预警HMW与前车碰撞预警FCW的区别
  9. PHP开发入门-论坛发贴
  10. zabbix-server-mysql安装_详解zabbix安装部署(Server端篇)