验证应用内购买收据
应用内购买允许用户在移动应用程序中获取数字商品和服务。验证收据对于确保这些购买的真实性至关重要。本文旨在解决收据验证中的常见挑战并提供实用的解决方案。
了解收据验证
收据验证涉及将购买收据发送到 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中文网其他相关文章!