您当前的位置: 首页 >  ios

暂无认证

  • 4浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

发布时间:2019-11-22 16:12:32 ,浏览量:4

将收据数据发送到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博客

关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

0.5472s