驗證應用程式內購收據
應用程式內購買允許用戶在行動應用程式中取得數位商品和服務。驗證收據對於確保這些購買的真實性至關重要。本文旨在解決收據驗證中的常見挑戰並提供實用的解決方案。
了解收據驗證
收據驗證涉及將購買收據發送到 Apple 的伺服器以驗證其真實性。收據包含重要訊息,包括交易詳細資訊、產品識別碼和購買日期。 Apple 回應驗證狀態,指示收據是否有效。
實現收據驗證
提供的代碼演示了客戶端收據驗證的方法:
- (BOOL)verifyReceipt:(SKPaymentTransaction *)transaction { // Encode receipt data to base64 string NSString *jsonObjectString = [self encode:(uint8_t *)transaction.transactionReceipt.bytes length:transaction.transactionReceipt.length]; // Construct URL for validation NSString *completeString = [NSString stringWithFormat:@"http://url-for-your-php?receipt=%@", jsonObjectString]; NSURL *urlForValidation = [NSURL URLWithString:completeString]; // Send HTTP GET request to server for validation NSMutableURLRequest *validationRequest = [[NSMutableURLRequest alloc] initWithURL:urlForValidation]; [validationRequest setHTTPMethod:@"GET"]; NSData *responseData = [NSURLConnection sendSynchronousRequest:validationRequest returningResponse:nil error:nil]; [validationRequest release]; // Extract response status NSString *responseString = [[NSString alloc] initWithData:responseData encoding: NSUTF8StringEncoding]; NSInteger response = [responseString integerValue]; [responseString release]; // Return validation status return (response == 0); }
服務器端實現
在伺服器端,一個簡單的PHP 腳本可以處理請求並將其轉發給Apple。
<code class="php">$receipt = json_encode(array("receipt-data" => $_GET["receipt"])); $url = "https://sandbox.itunes.apple.com/verifyReceipt"; $response_json = call-your-http-post-here($url, $receipt); $response = json_decode($response_json); echo $response->status;</code>
結論
透過實作這些方法,您可以在 iOS 應用程式上驗證應用程式內購買收據,並在伺服器上安全地記錄交易資料。這可確保僅處理合法購買,從而防止詐欺活動。
以上是如何驗證應用程式內購買收據的真實性的詳細內容。更多資訊請關注PHP中文網其他相關文章!