iOS 客户端rceipt验证代码
来源:互联网 发布:工资计算公式软件 编辑:程序博客网 时间:2024/06/06 02:37
一般都是在服务器端做验证,验证成功后,给用户对应商品
</pre><pre name="code" class="objc">.h中: -(BOOL)putStringToItunes:(NSData*)iapData; .m中: #import "NSData+Base64.h" #import "NSString+SBJSON.h" #import "JSON.h" -(BOOL)putStringToItunes:(NSData*)iapData{//用户购成功的transactionReceipt NSString*encodingStr = [iapData base64EncodedString]; NSString *URL=@"https://sandbox.itunes.apple.com/verifyReceipt"; //https://buy.itunes.apple.com/verifyReceipt NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];// autorelease]; [request setURL:[NSURL URLWithString:URL]]; [request setHTTPMethod:@"POST"]; //设置contentType [request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; //设置Content-Length [request setValue:[NSString stringWithFormat:@"%d", [encodingStr length]] forHTTPHeaderField:@"Content-Length"]; NSDictionary* body = [NSDictionary dictionaryWithObjectsAndKeys:encodingStr, @"receipt-data", nil]; SBJsonWriter *writer = [SBJsonWriter new]; [request setHTTPBody:[[writer stringWithObject:body] dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]]; NSHTTPURLResponse *urlResponse=nil; NSError *errorr=nil; NSData *receivedData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&errorr]; //解析 NSString *results=[[NSString alloc]initWithBytes:[receivedData bytes] length:[receivedData length] encoding:NSUTF8StringEncoding]; CCLOG(@"-Himi- %@",results); NSDictionary*dic = [results JSONValue]; if([[dic objectForKey:@"status"] intValue]==0){//注意,status=@"0" 是验证收据成功 return true; } return false; } - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions//交易结果 { for (SKPaymentTransaction *transaction in transactions) { switch (transaction.transactionState) { case SKPaymentTransactionStatePurchased://交易完成 if([self putStringToItunes:transaction.transactionReceipt]){ //这里给用户添加钱阿,装备阿什么的 } break; ......代码省略 } } }
或者
#define ITMS_SANDBOX_VERIFY_RECEIPT_URL @"https://sandbox.itunes.apple.com/verifyReceipt"
//直接向苹果的服务器验证- (void)verifyReceiptByReceipt:(NSString *)receipt Password:(NSString *)password{ NSString *payload = [NSString stringWithFormat:@"{\"receipt-data\" : \"%@\" , \"password\" : \"%@\"}",receipt, password]; NSLog(@"payload:%@",payload); NSData *payloadData = [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=[NSURLConnection sendSynchronousRequest:request returningResponse:&theResponse error:&err]; NSError *jsonParsingError = nil; NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&jsonParsingError]; NSLog(@"验证回来的结果:dict:%@", dict); NSLog(@"done");}
0 0
- iOS 客户端rceipt验证代码
- 常用的客户端验证代码
- webService双向验证SSL客户端添加代码
- 【代码笔记】iOS-手机号验证
- 客户端验证
- 【代码笔记】iOS-手机验证码
- iOS-------18位社会信用代码验证
- 在客户端运行的“关于注册验证的代码例子”
- 安全性“依赖客户端验证”的测试方法和代码实现
- 验证码客户端验证
- 【JAX-WS】wsimport生成WS客户端代码,代码中添加验证
- RSA算法在iOS 客户端的使用 加密方法代码
- 「iOS」高仿【少数派】客户端 代码+思路讲解
- 「iOS」高仿【少数派】客户端 代码+思路讲解
- 客户端表单验证&服务器端验证
- IOS 17个常用代码整理 -- 图像处理--邮箱验证
- 【代码笔记】iOS-验证手机号,邮箱,车牌号是否合法
- JavaScript客户端程序验证
- sizeof总结
- iOS UIScrollView左右滑动手势与返回手势冲突的解决办法
- swap解密
- Handler 引起的内存泄露之解决方法WeakReference
- Python学习笔记3_列表和元组
- iOS 客户端rceipt验证代码
- LinkedIn Cubert 实践指南
- WebRTC for iOS 下载
- Shortest Palindrome ---再见回文和KMP
- LNMP环境搭建——Apache篇
- 心脏滴血另类玩法-转自lijiejie
- 算法---出现次数超过一半
- uitableview中刷新单个section和row
- IOS Protocol与Delegate详解(一)