验证Receipt方式参考:https://developer.apple.com/cn/documentation/storekit/in-app_purchase/validating_receipts_with_the_app_store/
沙盒环境:POST https://sandbox.itunes.apple.com/verifyReceipt生产环境:POST https://buy.itunes.apple.com/verifyReceipt
{  "receipt-data": "{{receipt-data}}",  "password": "{{password}}", //(如果收据包含自动续期订阅)则需要带上密码  "exclude-old-transactions":"true"  //将此值设置为,true以使响应仅包括任何订阅的最新续订交易。仅对包含自动续订的应用收据使用此字段。}


{  "environment": "Sandbox",  //收据生成的环境 Sandbox,沙盒环境;Production,生产环境  "receipt": {    "receipt_type": "ProductionSandbox",  //ProductionSandbox,沙盒环境;Production,生产环境    "adam_id": 534559270,  //沙盒环境为0    "app_item_id": 534559270,  //由App Store Connect生成,并由App Store用于唯一标识购买的应用。沙盒环境为0    "bundle_id": "x.xx.xxx.xxxx",  //APP的bundle_id    "application_version": "11111111",  //APP的版本    "download_id": 88888888888888,  //应用下载交易的唯一标识符。沙盒环境为0    "version_external_identifier": 0,  //标识应用程序修订版的任意数字。沙盒环境为0    "request_date": "2020-12-19 07:35:06 Etc/GMT",  //请求处理时间    "request_date_ms": "1608363306273",  //精确到毫秒    "request_date_pst": "2020-12-18 23:35:06 America/Los_Angeles",  //洛杉矶时间    "receipt_creation_date": "2020-12-19 07:25:07 Etc/GMT",  //收据生成时间    "receipt_creation_date_ms": "1608362707000",    "receipt_creation_date_pst": "2020-12-18 23:25:07 America/Los_Angeles",    "preorder_date":"2020-12-19 07:25:07 Etc/GMT",  //The time the user ordered the app available for pre-order    "preorder_date_ms":"1608362707000",    "preorder_date_pst":"2020-12-18 23:25:07 America/Los_Angeles",    "expiration_date":"2020-12-19 07:25:07 Etc/GMT",  //通过批量购买计划购买的应用程序的收据过期时间    "expiration_date_ms":"1608362707000",    "expiration_date_pst":"2020-12-18 23:25:07 America/Los_Angeles",    "original_purchase_date": "2013-08-01 07:00:00 Etc/GMT",  //原始应用购买时间    "original_purchase_date_ms": "1375340400000",    "original_purchase_date_pst": "2013-08-01 00:00:00 America/Los_Angeles",    "original_application_version": "1.0",  //客户最初购买的应用程序的版本。沙盒环境为1.0    "in_app": [  //数组,包含非消耗型、非续期订阅,以及客户之前购买的自动续期订阅      {        "quantity": "1",  //购买数量,通常是1,除非可以通过可变付款进行修改。最大值为10。        "product_id": "x.xx.xxx.xxxx.product_id",  //商品id        "transaction_id": "12345678",  //交易唯一标识,对应pay_apple_trade表中的transaction_id,根据这个id可查到orderId等信息        "original_transaction_id": "1000000753107822",  //原始交易标识        "purchase_date": "2020-12-11 07:32:59 Etc/GMT",  //购买时间,格林威治时间,换算北京时间+8h,App Store在客户帐户中为购买或恢复的产品收取费用的时间        "purchase_date_ms": "1607671979000",  //购买时间,精确到毫秒        "purchase_date_pst": "2020-12-10 23:32:59 America/Los_Angeles",  //购买时间,洛杉矶时间        "original_purchase_date": "2020-12-11 07:33:02 Etc/GMT",  //原始购买时间        "original_purchase_date_ms": "1607671982000",        "original_purchase_date_pst": "2020-12-10 23:33:02 America/Los_Angeles",        "expires_date": "2020-12-11 07:37:59 Etc/GMT",  //过期时间        "expires_date_ms": "1607672279000",        "expires_date_pst": "2020-12-10 23:37:59 America/Los_Angeles",        "cancellation_date": "2020-12-19 07:40:40 Etc/GMT",  //取消交易的时间。此字段仅适用于退款交易。        "cancellation_date_ms": "1608363640000",         "cancellation_date_pst": "2020-12-10 23:33:02 America/Los_Angeles",        "cancellation_reason": "1",  //取消交易的原因 0,其他原因;如客户意外购买;1,客户由于您的应用程序中存在实际或可感知的问题而取消了交易        "is_trial_period": "false",  //是否在免费试用期间        "is_in_intro_offer_period": "false",  //订阅是否在促销价格期间        "promotional_offer_id": "12345678",  //客户兑换的自动续订订阅的促销优惠的标识符。        "web_order_line_item_id": "1000000058478677"  //跨设备购买事件(包括订阅更新事件)的唯一标识符      },    {      超级长的交易记录,公众号:appTester      }]  },  "latest_receipt_info": [  //包含订阅的所有交易,其中包括初次购买和后续续期,但不包括任何恢复购买。要验证自动订阅,则关注这个数组内容    {      "quantity": "1",      "product_id": "x.xx.xxx.xxxx.product_id",      "transaction_id": "12345678",  //交易的唯一标识符,例如购买,还原或续订。对应pay_apple_trade表中transaction_id,根据这个id可查到orderId等信息      "original_transaction_id": "1000000753107822",  //第一次购买续费商品时的原始交易id      "cancellation_date": "2020-12-19 07:40:40 Etc/GMT",      "cancellation_date_ms": "1608363640000",       "cancellation_date_pst": "2020-12-10 23:33:02 America/Los_Angeles",      "cancellation_reason": "1",      "expires_date": "2020-12-19 07:40:40 Etc/GMT",  //订阅到期的时间或续订的时间,格林威治时间,换算北京时间+8h      "expires_date_ms": "1608363640000",      "expires_date_pst": "2020-12-18 23:40:40 America/Los_Angeles",      "original_purchase_date": "2020-12-11 07:33:02 Etc/GMT",  //原始订阅时间      "original_purchase_date_ms": "1607671982000",      "original_purchase_date_pst": "2020-12-10 23:33:02 America/Los_Angeles",      "purchase_date": "2020-12-19 07:35:40 Etc/GMT",  //App Store在客户帐户中为购买或恢复的产品收取费用的时间,或者在过期后App Store对客户的帐户收取订阅购买或续费的时间      "purchase_date_ms": "1608363340000",      "purchase_date_pst": "2020-12-18 23:35:40 America/Los_Angeles",      "is_upgraded": "true",  //An indicator that a subscription has been canceled due to an upgrade. This field is only present for upgrade transactions.      "is_trial_period": "false",      "is_in_intro_offer_period": "false",      "in_app_ownership_type": "PURCHASED",  //PURCHASED,客户是产品的购买者;FAMILY_SHARED,客户是通过“家庭共享”访问该产品的家庭成员        "offer_code_ref_name": "name",  //在App Store Connect中配置的订阅商品的参考名称。当客户兑换订阅优惠代码时,将显示此字段      "promotional_offer_id": "12345678",          "subscription_group_identifier": "20697355",  //订阅所属的订阅组的标识符      "web_order_line_item_id": "1000000058478677"     },    {      超级长的交易记录,公众号:appTester    }],  "latest_receipt": "超级长的receipt",  //最新编码的收据,它的值与请求中 receipt-data 的值相同  "pending_renewal_info": [  //仅针对包含自动续订的应用收据返回    {      "auto_renew_product_id": "x.xx.xxx.xxxx.product_xx",  //订阅的商品id      "auto_renew_status": "1",  //自动订阅状态 0,失效;1,生效      "product_id": "x.xx.xxx.xxxx.product_id",  //商品id      "original_transaction_id": "1000000753107822",  //第一次购买续费商品时的原始订单id      "expiration_intent": "1",  //订阅过期的原因 仅对于包含已过期的自动续订订阅的收据,才显示此字段 1,客户自愿取消订阅;2,帐单错误;例如,客户的付款信息不再有效;3,客户不同意最近的提价;4,续订时无法购买该产品;5,未知错误      "grace_period_expires_date": "2020-12-19 07:35:40 Etc/GMT"  //续订宽限期的到期时间      "grace_period_expires_date_ms": "1607671982000",  //订阅续订宽限期的到期时间,以毫秒为单位。仅当启用了“计费宽限期”的应用程序以及客户在续订时遇到计费错误时,才存在。      "grace_period_expires_date_pst": "2020-12-10 23:33:02 America/Los_Angeles",  //订阅续订宽限期到期的时间      "is_in_billing_retry_period": "0",  //尝试续订; 1,正在尝试续订;0,停止尝试续订      "offer_code_ref_name": "name",      "price_consent_status": "1"  //订阅价格上涨的价格同意状态 1,同意。当通知客户提价后,才显示此字段。    }  ],  "status": 0,  //0,有效;21000,AppStore无法读取你提供的JSON数据;21002,收据数据不符合格式;21003,收据无法被验证;21004,你提供的共享密钥和账户的共享密钥不一致;21005,收据服务器当前不可用;21006,收据是有效的,但订阅服务已经过期。当收到这个信息时,解码后的收据信息也包含在返回内容中;21007,票据信息是沙盒环境的,但却被发送到生产环境中验证,注意如果是21007,则需要使用沙盒地址继续验票;21008,收据信息是产品环境中使用,但却被发送到测试环境中验证;21009,内部数据访问错误;21010,找不到或删除了该客户帐户。  "is-retryable": "1"  //发生错误 1,暂时性问题,稍后重试;0,无法解决的问题,请勿重试。仅适用于状态代码21100-21199}

苹果内购后的Receipts内容注解相关推荐

  1. PHP处理苹果APP内购后到服务端的二次验证(项目经验)

    一.苹果APP支付到服务端验证流程 1. 用户在app中点击购买: 2. app调用服务端接口生成订单: 3. app获取到服务端订单生成成功后弹出支付窗口: 4. 用户输入密码支付: 5. app接 ...

  2. Cocos 2d-X Lua 游戏添加苹果内购(二) OC和Lua交互代码详解

    这是第二篇 Cocos 2d-X Lua 游戏添加苹果内购(一) 图文详解准备流程 这是前面的第一篇,详细的说明了怎样添加内购项目以及填写银行信息提交以及沙盒测试员的添加使用以及需要我们注意的东西,结 ...

  3. postman关闭ssl验证_【第5期】springboot:苹果内购服务端验证

    ​苹果内购: 只要你在苹果系统购买APP中虚拟物品(虚拟货币,VIP充值等),必须通过内购方式进行支付,苹果和商家进行三七开 验证模式有两种: Validating Receipts With the ...

  4. 苹果内购噩梦条款3.1.1,知道这些小细节才不会被拒审

    说到苹果审核被拒条款的C位,3.1.1必须有姓名. 3.1.1作为常年呆在被拒前三位的条款,已经让一大批互联网民工脱了发. 3.1.1让人头疼的点都有哪些? • 审核周期长一直卡包: • 根本没办法隐 ...

  5. 真正手把手教你用unity接入苹果内购(IAP)

    原帖:真正手把手教你用unity接入苹果内购(IAP) http://www.manew.com/thread-100403-1-1.html (出处: -[游戏蛮牛]-ar增强现实,虚拟现实,uni ...

  6. iOS_苹果内购详细步骤

    iOS苹果内购详细步骤 iOS开发支付的两种方式 1 Apple Pay + 调取外部支付,例如支付宝.微信.银联等 2 苹果内购IAP(In-App Purchase) 1 IAP规则详解 1.1 ...

  7. 苹果内购IAP记录-1

    这段时间做了苹果内购IAP,做一个整理记录,主要是开发层面. 一.前期工作:在开发者账号中添加银行信息同意协议等,添加沙盒账号,添加内购商品 二.项目开发,因为项目需要支持iOS15一下的版本所以使用 ...

  8. 苹果内购 服务器端验证

    针对苹果内购,看了 大量的 其他blog和阅读官方文档才发现,其实 苹果内购服务器做的工作很少, 此文档   写于2018年10月,只针对此时苹果返回的数据结构  内容解析. 基本上所有的 操作都可以 ...

  9. 为什么苹果内购总是失败_ios内购相关问题被拒总结

    2017年10月9日 10月5日 收到如下邮件,今天试了下内购功能,可以正常充值了. image.png image.png 2017年9月29日 1.今天审核通过了 不过发现appstore下载还是 ...

最新文章

  1. AutoML未来可期,工程师的明天何去何从?
  2. 一口气拿了9家公司的offer,年薪50W
  3. 爬虫python代码-一则python3的简单爬虫代码
  4. Ubuntu编译安装VASP
  5. .NET技术之美-网络编程
  6. 数据结构之栈对逆BoLand表达式的计算
  7. php中svn上传项目直接访问不了,phpstorm8 通过svn导入项目后项目右键列表里没有subversion选项,无法提交和更新啊?...
  8. Linux下安装和配置JDK与Tomcat(升级版)
  9. 我对 SRE 的理解
  10. Matlab科研绘图颜色补充(特别篇5)—176种美国传统颜色
  11. easyExcel 复杂表头 动态表头
  12. 滴滴当年重创的安全事件,也会重创货拉拉吗?
  13. php扩展库后门,编写基于PHP扩展库的后门
  14. java字符串反转reverse();
  15. socket系列之什么是socket
  16. Dvorak Simplified Keyboard
  17. HDU3785寻找大富翁~~真真切切的水题
  18. 【搜索方法】google搜索
  19. Mikrotik RouterOS-脚本-花生壳动态域名解析
  20. cucumber html模板,Cucumber使用进阶

热门文章

  1. 文件权限管理 -- u+s、g+s、o+t/三种用户权限
  2. 用C语言编写一个3*3矩阵的转置、水平镜像、顺时针90度旋转、逆时针90度旋转、180度旋转、垂直镜像
  3. 计算机装调与维护论文,计算机装调课程实验报告.doc
  4. java oracle 中文长度,Java String length 和 Oracle varchar2 长度对应关系
  5. nginx-module-vts监控nginx流量
  6. 高性能服务器之性能调优
  7. 计算机多媒体技术的应用与发展,计算机多媒体技术的应用现状与发展前景
  8. CDN技术之--全局负载均衡(GSLB)
  9. 世界首例基因编辑婴儿
  10. 湖南工商大学------函数及其应用