Maison > développement back-end > tutoriel php > 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
Libérer: 2024-10-17 20:09:30
original
748 Les gens l'ont consulté

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);
}
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal