首頁  >  文章  >  後端開發  >  如何驗證應用程式內購買收據的真實性

如何驗證應用程式內購買收據的真實性

Barbara Streisand
Barbara Streisand原創
2024-10-17 20:09:30711瀏覽

How to Verify In-App Purchase Receipts for Authenticity

驗證應用程式內購收據

應用程式內購買允許用戶在行動應用程式中取得數位商品和服務。驗證收據對於確保這些購買的真實性至關重要。本文旨在解決收據驗證中的常見挑戰並提供實用的解決方案。

了解收據驗證

收據驗證涉及將購買收據發送到 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn