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