驗證應用程式內購買收據
應用程式內購買為許多 iOS 應用程式提供了重要的收入來源。為了確保這些交易的合法性,應用程式開發人員需要透過蘋果的應用程式商店驗證他們的收據。然而,這個過程可能很複雜且容易出錯。
收據驗證:概述
要在客戶端驗證收據,開發人員必須從SKPaymentTransaction 物件並將其編碼為 base64。然後,編碼的收據將傳輸到開發人員的伺服器。
伺服器端驗證
伺服器然後使用 HTTP POST 請求將編碼的收據轉送到 Apple 的 App Store。 Apple 的回覆將顯示收據是否有效,以及交易狀態(例如,購買、退款)。
客戶端整合
一旦收據經過伺服器驗證後,客戶端應用程式可以檢索資料並將其儲存在本地。然後,該記錄可用於解鎖內容或授予對應用程式內功能的存取權限。
範例程式碼
在程式碼中驗證收據涉及以下步驟:
Objective-C 用戶端:
<code class="objective-c">- (void)verifyReceipt:(SKPaymentTransaction *)transaction { NSString *receiptData = [self encode:transaction.transactionReceipt.bytes length:transaction.transactionReceipt.length]; // Combine with server URL and query string, perform HTTP request }</code>
<code class="objective-c">- (NSString *)encode:(const uint8_t *)input length:(NSInteger)length { // Encode the receipt data using base64 }</code>
Base64 編碼:
<code class="php">$url = "https://sandbox.itunes.apple.com/verifyReceipt"; $receipt = json_encode(array("receipt-data" => $_GET["receipt"])); $response = json_decode(postToURL($url, $receipt)); // Parse and process the Apple response</code>
伺服器端PHP :
在將收據資料傳送給Apple 之前,請確保其格式和編碼正確。使用最新版本的 iOS 和 App Store SDK。考慮使用非同步 HTTP 請求以避免阻塞 UI 執行緒。建議對客戶端和伺服器端通訊使用安全的 HTTPS 連線。以上是如何驗證應用程式內購買收據?的詳細內容。更多資訊請關注PHP中文網其他相關文章!