首页 > 代码库 > AppStore 内购验证的方法
AppStore 内购验证的方法
AppStore增加了验证内购(In App Purchasement)的方法, 就是苹果提供一个url地址, 开发测试用:
https://sandbox.itunes.apple.com/verifyReceipt
产品用:
https://buy.itunes.apple.com/verifyReceipt
当购买成功时, 会得到苹果返回的一个收据(receipt), 苹果推荐的方法是将收据发给开发者的server, 由server像上述地址post http消息, 进行验证, 苹果将结果返回.到底是真正的购买还是虚假的购买.
没有自己server的小伙伴可以用app进行发送, 代码如下.
#define ITMS_SANDBOX_VERIFY_RECEIPT_URL @"https://sandbox.itunes.apple.com/verifyReceipt" #pragma mark - VerifyFinishedTransaction -(void)verifyFinishedTransaction:(SKPaymentTransaction *)transaction{ if(transaction.transactionState == SKPaymentTransactionStatePurchased){ NSString *transactionIdentifier = transaction.transactionIdentifier; NSData *transactionReceipt = transaction.transactionReceipt; //将transactionIdentifer和加密后的transactionReceipt数据发送给server端 NSString* receipent = [NSString stringWithFormat:@"%s", transactionReceipt.bytes]; NSLog(@"receipent = %@", receipent); // 在app上做验证, 仅用于测试 NSString *payload = [NSString stringWithFormat:@"{\"receipt-data\" : \"%@\", \"password\" : \"%@\"}", receipent, transactionIdentifier]; NSData *payloadData =http://www.mamicode.com/ [payload dataUsingEncoding:NSUTF8StringEncoding]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:ITMS_SANDBOX_VERIFY_RECEIPT_URL]]; [request setHTTPMethod:@"POST"]; [request setHTTPBody:payloadData]; NSError* err; NSURLResponse *theResponse = nil; NSData *data=http://www.mamicode.com/[NSURLConnection sendSynchronousRequest:request returningResponse:&theResponse error:&err]; NSError *jsonParsingError = nil; NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&jsonParsingError]; NSLog(@"%@", dict); NSLog(@"done"); } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。