Maison  >  Article  >  développement back-end  >  Comment vérifier l'authenticité des reçus d'achat intégrés

Comment vérifier l'authenticité des reçus d'achat intégrés

Barbara Streisand
Barbara Streisandoriginal
2024-10-17 20:09:30626parcourir

How to Verify In-App Purchase Receipts for Authenticity

Vérification des reçus d'achats intégrés

Les achats intégrés permettent aux utilisateurs d'acquérir des biens et services numériques dans des applications mobiles. La validation des reçus est cruciale pour garantir l’authenticité de ces achats. Cet article vise à relever les défis courants liés à la validation des reçus et à fournir une solution pratique.

Comprendre la validation des reçus

La validation des reçus implique l'envoi du reçu d'achat aux serveurs d'Apple pour vérifier son authenticité. Le reçu contient des informations cruciales, notamment les détails de la transaction, l'identifiant du produit et la date d'achat. Apple répond avec un statut de validation, indiquant si le reçu est valide ou non.

Mise en œuvre de la validation du reçu

Le code fourni démontre une méthode de validation du reçu côté client :

- (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);
}

Implémentation côté serveur

Côté serveur, un simple script PHP peut gérer la requête et la transmettre à 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>

Conclusion

En mettant en œuvre ces méthodes, vous pouvez valider les reçus d'achat in-app sur votre application iOS et enregistrer en toute sécurité les données de transaction sur votre serveur. Cela garantit que seuls les achats légitimes sont traités, évitant ainsi les activités frauduleuses.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn