静态NSString *SANDBOX=@"https://sandbox.itunes.apple.com/verifyReceipt";
//正式环境验证
静态NSString *AppStore=@"https://buy.itunes.apple.com/verifyReceipt";
@接口ViewController()@end
@实现ViewController
- (void)viewDidLoad {
[超级viewDidLoad];
//加载视图后进行任何其他设置(通常是从笔尖)。
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
}
- (void)didReceiveMemoryWarning {
[超级didReceiveMemoryWarning];
//处理掉所有可以重新创建的资源。
}
- (IBAction)applePayAction:(UIButton *)sender {
if([SKPaymentQueue canMakePayments]){
NSArray *product=[[NSArray alloc] initWithObjects:@"talkmate.coin01",nil];
NSSet *nsset=[NSSet setWithArray:product];
SKProductsRequest *请求=[[SKProductsRequest 分配] initWithProductIdentifiers:nsset];
request.delegate=self;
[请求开始];
}别的{
NSLog(@"不允许在Apple 购买FlyElephant");
}
}
#pragma mark-SKProductsRequestDelegate
//接收产品退货信息
- (void)productsRequest:(SKProductsRequest *)请求didReceiveResponse:(SKProductsResponse *)响应{
NSLog(@"productsRequest----didReceiveResponse--------------------");
NSArray *产品=响应.产品;
if([产品数量]==0){
返回;
}
NSLog(@"productID:%@",response.invalidProductIdentifiers);
NSLog(@"产品已付款数量:%lu",(unsigned long)[产品数量]);
for (SKProduct *pro in 产品) {
NSLog(@"%@", [专业描述]);
NSLog(@"%@", [pro localizedTitle]);
NSLog(@"%@", [pro localizedDescription]);
NSLog(@"%@", [亲价]);
NSLog(@"%@", [专业产品标识符]);
SKPayment *付款=[SKPayment paymentWithProduct:pro];
NSLog(@"FlyElephant--发送苹果内购");
[[SKPaymentQueue defaultQueue] addPayment: payment];
}
}
- (void)request:(SKRequest *)request didFailWithError:(NSError *)error {
NSLog(@"请求---didFailWithError");
}
- (void)requestDidFinish:(SKRequest *)请求{
NSLog(@"requestDidFinish");
}
#pragma mark - SKPaymentTransactionObserver
- (void) paymentQueue:(SKPaymentQueue *)队列updatedTransactions:(NSArray*)交易{
for(SKPaymentTransaction *交易中的tran){
开关(tran.transactionState) {
案例SKPaymentTransactionStatePurchased:{
NSLog(@"交易完成");
[自我验证PurchaseWithPaymentTransaction];
[[SKPaymentQueue defaultQueue] finishTransaction:tran];
}
休息;
案例SKPaymentTransactionStatePurchasing:
NSLog(@"项目已添加到列表");
休息;
案例SKPaymentTransactionStateRestored:{
NSLog(@"已购买该产品");
[[SKPaymentQueue defaultQueue] finishTransaction:tran];
}
休息;
案例SKPaymentTransactionStateFailed:{
NSLog(@"交易失败");
[[SKPaymentQueue defaultQueue] finishTransaction:tran];
}
休息;
默认:
休息;
}
}
}
//交易结束
- (void)completeTransaction:(SKPaymentTransaction *)交易{
NSLog(@"交易结束");
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}
//验证购买,避免越狱软件模拟苹果请求造成非法购买
-(void)verifyPurchaseWithPaymentTransaction{
//从沙箱中获取交易凭证并拼接到请求体数据中
NSURL *receiptUrl=[[NSBundle mainBundle] appStoreReceiptURL];
NSData *receiptData=[NSData dataWithContentsOfURL:receiptUrl];
NSString *receiptString=[receiptData base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];//转换为base64字符串
NSString *bodyString=[NSString stringWithFormat:@"{"receipt-data" : "%@"}",receiptString];//拼接请求数据
NSData *bodyData=[bodyString dataUsingEncoding:NSUTF8StringEncoding];
//创建向Apple官方请求购买验证的请求
NSURL *url=[NSURL URLWithString:SANDBOX];
NSMutableURLRequest *requestM=[NSMutableURLRequest requestWithURL:url];
requestM.HTTPBody=bodyData;
requestM.HTTPMethod=@"POST";
//创建连接并发送同步请求
NSError *错误=nil;
NSData *responseData=[NSURLConnection sendSynchronousRequest:requestM returnedResponse:nil error:error];
如果(错误){
NSLog(@"购买验证过程中发生错误,错误信息:%@",error.localizedDescription);
返回;
}
NSDictionary *dic=[NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingAllowFragments error:nil];
NSLog(@"%@",dic);
if([dic[@"status"] intValue]==0){
NSDictionary *dicReceipt=dic[@"receipt"];
NSDictionary *dicInApp=[dicReceipt[@"in_app"]firstObject];
NSLog(@"购买成功:%@---%@",dicReceipt,dicInApp);
//服务器端处理,或者说本地处理
}别的{
NSLog(@"购买失败,验证失败!");
}
}
@end最终服务器Token返回字典:
{
环境=沙箱;
收据={
"亚当_id"=0;
"app_item_id"=0;
"application_version"="1.0.2";
"bundle_id"="飞象";
"下载id"=0;
"in_app"=(
{
"is_Trial_period"=false;
"original_purchase_date"="2016-11-18 10:55:00 等/GMT";
"原始购买日期_ms"=1479466500000;
"original_purchase_date_pst"="2016-11-18 02:55:00 美国/洛杉矶";
"original_transaction_id"=1000000251845596;
"product_id"="飞象";
"购买日期"="2016-11-18 10:55:00 等/GMT";
"购买日期_毫秒"=1479466500000;
"purchase_date_pst"="2016-11-18 02:55:00 美洲/洛杉矶";
数量=1;
"交易id"=1000000251845596;
},
);
"original_application_version"="1.0";
"original_purchase_date"="2013-08-01 07:00:00 等/GMT";
"original_purchase_date_ms"=1375340400000;
"original_purchase_date_pst"="2013-08-01 00:00:00 美国/洛杉矶";
"receipt_creation_date"="2016-12-09 10:31:52 等/GMT";
"receipt_creation_date_ms"=1481279512000;
"receipt_creation_date_pst"="2016-12-09 02:31:52 美国/洛杉矶";
"receipt_type"=ProductionSandbox;
"request_date"="2016-12-09 10:31:56 等/GMT";
"request_date_ms"=1481279516562;
"request_date_pst"="2016-12-09 02:31:56 美洲/洛杉矶";
"版本外部标识符"=0;
};
状态=0;
关于苹果iOS系统全面解析与最新功能介绍和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
【苹果iOS系统全面解析与最新功能介绍】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
感觉苹果手机系统越更新越好用了!
有20位网友表示赞同!
我一直都用iPhone,真香!界面清爽简洁,操作方便。
有8位网友表示赞同!
iOS新功能越来越酷炫了,真的让人期待啊!
有12位网友表示赞同!
听说最新的iOS更新速度更快了?我很想知道!
有20位网友表示赞同!
喜欢苹果手机的流畅体验,iOS确实可以做到这一点。
有7位网友表示赞同!
苹果家的应用商店资源丰富,总能找到自己需要的东西。
有20位网友表示赞同!
安卓和iOS各有优劣吧,但是我还是更喜欢使用ios系统!
有10位网友表示赞同!
想换一台iPhone了,听说新一代的屏幕很棒!
有9位网友表示赞同!
用iOS手机拍照质量确实高,分享照片都很漂亮。
有9位网友表示赞同!
最近升级了最新版iOS,感觉运行更加流畅了。
有6位网友表示赞同!
苹果手机的消息提醒功能还是很实用的,一目了然。
有14位网友表示赞同!
iOS系统自带的备忘录和日历工具很方便,经常使用!
有18位网友表示赞同!
玩游戏用iOS真的很有体验,画面清晰流畅。
有9位网友表示赞同!
每次更新iOS,总能发现一些新的隐藏功能,太惊喜了!
有19位网友表示赞同!
苹果家的产品设计感确实很高,iOS的图标也十分美观。
有7位网友表示赞同!
对于注重隐私的用户来说, iOS 系统确实更加安心。
有18位网友表示赞同!
想了解一下最新的iOS新版本有哪些改变?
有19位网友表示赞同!
希望以后苹果公司能为iOS系统添加更多实用功能!
有12位网友表示赞同!
对iOS最大的优点就是稳定性好,几乎不会出现卡顿现象!
有19位网友表示赞同!