如何验证应用内购买收据的真实性

Barbara Streisand
发布: 2024-10-17 20:09:30
原创
713 人浏览过

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中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板