gpt4 book ai didi

iphone - 应用内购买验证收据错误

转载 作者:行者123 更新时间:2023-12-03 20:15:31 27 4
gpt4 key购买 nike

我创建了一个使用应用内购买的应用。使用我的测试用户帐户进行测试时,交易已成功完成,但在沙箱中验证收据时出现错误: url: https://sandbox.itunes.apple.com/verifyReceipt

- (void)recordTransaction:(SKPaymentTransaction *)transaction
{
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

if ([transaction.payment.productIdentifier isEqualToString:@"com.udayKalangi.hansiMazak.hindijokes1"])
{
[[NSUserDefaults standardUserDefaults] setValue:transaction.transactionReceipt forKey:@"proUpgradeTransactionReceipt" ];
[[NSUserDefaults standardUserDefaults] synchronize];
NSData *receiptData = [NSData dataWithData:transaction.transactionReceipt];
NSString *recieptString = [self base64forData:receiptData];
NSLog(@"JSON Created");
urlData = [[NSMutableData data] retain];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://sandbox.itunes.apple.com/verifyReceipt"]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[recieptString dataUsingEncoding:NSUTF8StringEncoding]];
NSLog(@"will create connection");
[[NSURLConnection alloc] initWithRequest:request delegate:self];
}
}

我收到回复:

url data: {"status":21002, "exception":"java.lang.NullPointerException"}

最佳答案

抱歉,但你做的这一切都是错误的。

首先根据http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/VerifyingStoreReceipts/VerifyingStoreReceipts.html您需要将base64收据数据设置为'receipt-data',然后以JSON格式发布以进行验证。您似乎没有这样做。

但最重要的是,您不应该在设备上验证收据,这样做毫无意义。您应该将数据发送到您的服务器,并让它为您向 Apple 验证数据。在设备上进行验证实际上并不提供任何验证。验证收据的目的是确保其不被篡改,即,如果有人破坏您的应用并能够提供被篡改的收据,他们就能够绕过对同一收据的验证。

关于iphone - 应用内购买验证收据错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9443767/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com