在當前 JSON Web Token(JWT)標準進行認證,增強了安全性和靈活性。
首先,您需要創建一個私鑰用于授權請求。具體步驟如下:

接下來需要生成用于請求授權的令牌。以下是一個 Python 示例實現:
新版 API 中,所有交易均以 JSON Web Signature(JWS)格式返回。JWS 是由三部分組成的字符串,使用點號分隔:
頭部包含用于驗證交易真實性的信息,例如加密算法(Alg)和證書鏈(x5c)。
Apple 擴展了交易數據格式,使其更易于處理。以下是一些關鍵更新:
appAccountToken:用于標識系統用戶 ID,需在移動應用發起購買交易時設置。此字段便于追蹤用戶的購買行為。intro offer(新用戶優惠):適用于無有效訂閱或訂閱已過期的用戶。promo offer(促銷優惠):適用于當前或已過期的訂閱。offerIdentifier:包含已使用優惠的 ID,便于服務端追蹤優惠使用情況。inAppOwnershipType:區分用戶是直接購買還是通過家庭共享獲取產品,可能值包括:
PURCHASED(已購買)FAMILY_SHARED(家庭共享)transactionType:表示交易類型,可能值包括:
cancellation_date 和 cancellation_reason 更名為 revocationDate 和 revocationReason。要檢查用戶當前的訂閱狀態,可以向以下 URL 發送 GET 請求:
https://api.storekit.itunes.apple.com/inApps/v1/subscriptions/{originalTransactionId}
其中,originalTransactionId 是用戶任意交易鏈的 ID。響應中包含各訂閱組的狀態信息。
status 字段:顯示當前訂閱狀態,可能值包括:
1:訂閱有效,用戶應獲得付費功能訪問權限。SignedTransactionInfo 字段:包含交易鏈中最后一筆交易的詳細信息。SignedRenewalInfo 字段提供訂閱續訂信息,可用于預測下個計費周期的狀態。例如,當檢測到用戶關閉自動續訂時,可以推薦其他訂閱方案或提供促銷優惠。
要獲取用戶的交易歷史,可向以下 URL 發送 GET 請求:
https://api.storekit.itunes.apple.com/inApps/v1/history/{originalTransactionId}
hasMore 標志將為 true,需發送包含修訂后 GET 參數的相同請求以獲取下一頁數據。服務器通知可實時獲取購買、續訂、支付問題等信息,幫助構建更精準的分析指標并簡化訂閱狀態管理。
相比 V1 版,V2 版通知針對每個用戶操作僅發送單條通知,顯著簡化了處理流程。新增事件類型包括:
OFFER_REDEEMED(優惠已兌換)EXPIRED(訂閱已過期)GRACE_PERIOD_EXPIRED(寬限期已過期)此外,SUBSCRIBED 和 PRICE_INCREASE 事件也進行了優化。

每種用戶操作都有對應的專屬通知類型,單條通知即可明確事件性質。

測試購買交易時需使用沙箱環境 URL:
https://api.storekit-sandbox.itunes.apple.com
Apple 通過 StoreKit 2 顯著改進了服務端處理訂閱和應用內購買的體驗。以下功能尤為實用:
遷移到新 API 并不復雜,只需獲取每筆收據的 originalTransactionId 即可。通過這些改進,開發者可以更高效地管理應用內購買和訂閱功能。
原文鏈接: https://adapty.io/vi/blog/storekit-2/