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

将收据数据发送到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对象:

请求数据格式
keyvalue

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,则响应仅包括任何订阅的最新续订交易

 返回相应结构体
keymeaning
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
收据详细字段
keymeaning
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_idApp Store用于唯一标识创建事务的应用程序的字符串
version_external_identifier唯一标识应用程序修订版的任意数字。
web_order_line_item_id标识订阅购买的主键。
auto_renew_status自动续订订阅的当前续订状态。 

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

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

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

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

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

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

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

分享几个文章:| ProcessOn

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值