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!