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。

在服務器上,使用以下鍵創建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參數,傳了也可以正常驗單,結論:如果開通內購訂閱並創建共享祕鑰那麼默認都傳此參數(沙盒環境下,正式環境暫未測試)

分享幾個文章:https://www.processon.com/special/template/5d283676e4b07917e2dfb447

返回驗單數據結構:https://blog.csdn.net/qq_24909089/article/details/103258594

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章