-(BOOL)putStringToItunes:(SKPaymentTransaction*)transaction

{

NSData * iapData = transaction.transactionReceipt;

NSString*encodingStr = [iapData base64EncodedString];

//    NSString *URL=@"https://sandbox.itunes.apple.com/verifyReceipt";

NSString *URL=@"https://buy.itunes.apple.com/verifyReceipt";

//https://buy.itunes.apple.com/verifyReceipt

NSMutableURLRequest *request = [[NSMutableURLRequestalloc] init];// autorelease];

[request setURL:[NSURL URLWithString:URL]];

[request setHTTPMethod:@"POST"];

//设置contentType

[request addValue:@"application/json"forHTTPHeaderField:@"Content-Type"];

//设置Content-Length

[request setValue:[NSStringstringWithFormat:@"%d", [encodingStr length]] forHTTPHeaderField:@"Content-Length"];

NSDictionary* body = [NSDictionary dictionaryWithObjectsAndKeys:encodingStr, @"receipt-data", nil];

SBJsonWriter *writer = [SBJsonWriternew];

[request setHTTPBody:[[writer stringWithObject:body] dataUsingEncoding:NSASCIIStringEncodingallowLossyConversion: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];

NSLog(@"-验证结果-  %@",results);

NSDictionary*dic = [results JSONValue];

if([[dic objectForKey:@"status"] intValue]==0)

{

//注意,status=@"0" 是验证收据成功

return true;

}

returnfalse;

}

AppStore IAP 客户端校验代码的更多相关文章

  1. C# WebSocket 服务端示例代码 + HTML5客户端示例代码

    WebSocket服务端 C#示例代码 using System; using System.Collections.Generic; using System.Linq; using System. ...

  2. Struts2的输入校验(2)——客户端校验

    Struts2的输入校验(2) --客户端校验 Struts2客户端校验的使用: (1)使用Struts2的标签生成输入页面的表单: (2)为该<s:form>元素添加validate=& ...

  3. 自定义Attribute 服务端校验 客户端校验

    MVC 自定义Attribute 服务端校验 客户端校验/* GitHub stylesheet for MarkdownPad (http://markdownpad.com) *//* Autho ...

  4. 根据服务端生成的WSDL文件创建客户端支持代码的三种方式

    第一种:使用wsimport是JDK自带的工具,来生成 生成java客户端代码常使用的命令参数说明: 参数 说明 -p 定义客户端生成类的包名称 -s 指定客户端执行类的源文件存放目录 -d 指定客户 ...

  5. 一个完整的 JS 身份证校验代码

    一个完整的 JS 身份证校验代码 身份证号码是由 18 位数字组成的,它们分别表示: (1) 前 1.2 位数字表示: 所在省份的代码; (2) 第 3.4 位数字表示: 所在城市的代码; (3) 第 ...

  6. 完整的JavaScript版的信用卡校验代码

    function isValidCreditCard(type, ccnum) { if (type == "Visa") { // Visa: length 16, prefix ...

  7. NSwag生成客户端调用代码

    NetCore2.1 WebAPI 根据swagger.json自动生成客户端代码 https://www.cnblogs.com/hunanzp/p/9297361.html 前言 上一篇博客中我们 ...

  8. 六、取消eslint 校验代码

    一.取消eslint 校验代码 删除 "eslintConfig": { "root": true, "env": { "node ...

  9. Python 身份证校验代码

    Python 身份证校验代码 居民身份证bai编号识别 1.身份证编码规则如下:根据[中华人民共和国国家标准GB11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本 ...

随机推荐

  1. 搭建java开发环境

    windows 去Oracle官网下载exe文件,双击安装. 修改系统环境变量(我的电脑 -> 属性 -> 高级 -> 环境变量). JAVA_HOME: D:\Java\jdk1. ...

  2. Codevs 1814 最长链

    1814 最长链 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题目描述 Description 现给出一棵N个结点二叉树,问这棵二叉树中最长链的长度为多少, ...

  3. ASP.NET全局文件与防盗链

    添加Web→全局应用程序类,注 文件名不要改 Global.asax 全局文件是对Web应用声明周期的一个事件响应的地方,将Web应用启动时初始化的一些代码写到 Application_Start中, ...

  4. 访问Access数据库(有多个数据库时 体现多态)

    如果想编写单机版MIS.小型网站等对数据库性能要求不高的系统,又不想安装SQLServer,可以使用Access(MDAC),只要一个mdb文件就可以了.使用Access创建mdb文件,建表.OleD ...

  5. 进程显示,删除,调度 ps, top kill

    ps:查看进程的情况,显示的是某一时间进程的运行状态.ps --help top:也是查看进程的情况,动态显示进程信息! kill:杀死进程的情况, sudo kill --help 查看相关参数 c ...

  6. placeholder属性兼容js支持

    $(function(){ //判断浏览器是否支持placeholder属性 supportPlaceholder='placeholder'in document.createElement('in ...

  7. jquery的return this.each()的作用

    经常看到在运用jquery插件绑定事件时候,都会用到each. 下面来比较下使用return this和return this.each()在使用的区别. 注意:使用each的时候引用this,必须使 ...

  8. Linux grep和find的区别

    这是两个不同的命令,关于grep:Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expressi ...

  9. #Leet Code# Sqrt

    描述:log(n) 代码: class Solution: # @param x, an integer # @return an integer def getVal(self, begin, en ...

  10. 股票API

    实时股票数据接口大全 股票数据的获取目前有如下两种方法可以获取:1. http/javascript接口取数据2. web-service接口 1.http/javascript接口取数据 1.1Si ...