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 = [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);
NSLog(@"done");
}
}

最新文章

  1. HTML5 Canvas 画布
  2. Linux定时任务Crontab学习笔记
  3. Android自定义EditText去除边框并添加下划线
  4. django构建blog--页面部分(eclipse+pydev)
  5. HDFS的shell操作
  6. 查看 AndroidManifest.xml文件
  7. C++访问声明
  8. ZYNQ-7000 Unable to connect to ps7_cortexa9 解决方案
  9. gulp工作流
  10. Android 性能优化——之图片的优化
  11. 201521123026《JAVA程序设计》第14周学习总结
  12. 【easy】784. Letter Case Permutation
  13. idea启动多个tomcat失败
  14. 20175311 2018-2019-2 《Java程序设计》第1周学习总结
  15. EventBus用法
  16. mysql触发器 学习
  17. C# 类中索引器的使用
  18. Python在七牛云平台的应用(二)图片瘦身
  19. FlytestingToolkit工具派送,懒人的测试思考
  20. Deeplearning——动态图 vs. 静态图

热门文章

  1. CentOS7 运行级别
  2. JS部分代码分享
  3. 数据库连接池配置 - Oracle,SQL Server,DB2,MYSQL,SQLLITE3
  4. Javascript学习笔记:6种实现继承的方式
  5. D3.js 力导向图
  6. [bzoj2124]等差子序列(hash+树状数组)
  7. JAVA 列表排序
  8. oracle 之 函数
  9. QQ(iOS)客户端的粘性动画效果
  10. 【ros】rplidar Hector Slam