连接不到app store找不到了怎么办有人用他的id上过我的手机且购买了商品,现在这个id被我删了

苹果&App&Store账号申请和证书申请发布app等知识
store为开发者提供四种类型的申请:
在这里主要介绍一下公司ios开发者计划,只有利用个人和公司ios开发者计划证书开发的应用,才能上app
store。企业开发者计划主要是为本公司开发软件,并安装到本公司的硬件设备上,不能上app
store。下面主要介绍一下公司ios开发者计划的申请.
申请帐号:
3.单击“Enroll Now”
4.点击continue
5.这时候问询你是否有苹果帐号。
6.我需要创建一个新账户,然后继续
7.问询:你要注册个人还是公司账户
个人:如果不需要在你的团队添加其他开发者那么可以以个人身份注册账户。在你上传应用到App
Store上时,“销售者”一栏将会显示你的名字
公司:若要在你的团队里添加开发者就注册公司账号。在你上传应用到App
Store上时,“销售者”一栏将会显示你公司的名称
&合法的公司或组织名称
&有些约束贵公司的任何有法律效力的协议,将会出现在你注册的过程中或你开发的过程中。
&为我们提供的商务文档包括(但不仅限于此):公司章程,运营执照等,作为我们身份验证过程的一部分
这里我们选择为公司注册
8.完善个人资料
你要在哪个苹果平台上开发?选择全部要申请的平台。
OS操作系统
&苹果浏览器
&你的基本市场是什么?
中英对照表
英文&&&&&&&&&&&&&&&&&&&&
中文&&&&&&&
英文&&&&&&&&&&&&&&&
中文&&&&&&&&&&&&&&&&
英文&&&&&&&&&&&&&&&&&&&&
Business&&&&&&&&&&&&&
商务&&&&&&
Medical&&&&&&&&&&&
医疗&&&&&&&&&&&&&&&
Reference&&&&&&&&&&&&&
Education&&&&&&&&&&&&
教育&&&&&&
Music&&&&&&&&&&&&&&
音乐&&&&&&&&&&&&&&
SocialNetwork&&&&&&&
Entertainment&&&&&&
娱乐&&&&&&
Navigation&&&&&&&&&
导航&&&&&&&&&&&&&&
Sports&&&&&&&&&&&&&&&&&&
Finance&&&&&&&&&&&&&&&
金融&&&&&&
News&&&&&&&&&&&&&&&
新闻&&&&&&&&&&&&&&
Travel&&&&&&&&&&&&&&&&&&&&
Games&&&&&&&&&&&&&&&
游戏&&&&&&
Photography&&&&&&
摄影&&&&&&&&&&&&&&
Utilities&&&&&&&&&&&&&&&&&&
Health&Fitness&&&
医疗健康&&
Productivity&&&&&&
生产&&&&&&&&&&&&&&
Weather&&&&&&&&&&&&&&&
Lifestyle&&&&&&&&&&&&&&
如果你为高校注册请勾选此框
你计划开发哪类或哪几类iOS应用?选择全部你准备开发的应用
(请参见中英对照表)
请选择你的应用的基本类型
&公司内部应用
你已经从事Apple平台应用开发多少年了?
New to Apple
platforms 新的Apple平台开发者
& 1 year 小于一年
1 to 3 years
3 to 5 years
5+ years 五年以上
你开发别的移动平台吗?
你开发过以下哪种移动平台?
AndroidBREWSymbianBlackBerryPalmWindows MobileOther
勾选确认接受协议
9.注册好ID之后,会收到邮件(Thank you for registering as an Apple
Developer),告知你的Enrollment ID,登你注册后的Apple ID。
10、将您邮件中圈出的认证码部分的数字输入下图填空处
11.此时,在您注册使用的邮箱中会收到一封信,下图红框处的名称即是您的Apple ID
12.单击即进入公司认证界面,填写信息
注:Legal Entity
Name一定要填写你所要注册的公司的英文名称,不要填写个人名称
Information&
Website: 公司网址&
Country:国家&
Street Address:地址&
City/Town:城市&
State/Province:省份&
Select State&
Postal Code:邮编&
Phone:电话
提供公司合法的联系方式,若申请人有权代表公司,直接选择第二项
First Name,Last
Name,一定要填写公司注册宫业执照上的法人名称,&
Title:职称,我填的是CEO,&
Phone:可以填写你自己办公室总机号码。(注册的过程中,我填写的都是填的总机号码,同一个号码)&
Email:填写法人本人邮箱,这个无所谓,能用的邮箱就行
13.选择你的项目
提交后页面跳转.
14.浏览你的注册信息,若信息无误即可提交
15.提交后,邮箱会收到一封邮件,其中包含你的注册信息。注册成功。
app store付费
上面已经介绍了app store
id的注册了,下面在注册基础上,介绍一下app store的付费。
在上面注册成功之后,会收到一封邮件。
1.收到邮件Thank You for
Submitting Your Enrollment&
Dear ****,&
Thank you for your interest in the&&Developer
Program. Your enrollment request has been received and is being
processed.&
For your reference, below is a summary of your enrollment
Enrollment ID:&
iOS Developer Program&
注:以上Enrollmenu
ID,一定要记住。
2.然后会有一个review的过程,大概一两天会有邮件(iOS Developer Program Enrollment
)给你上传公司营业执照复印件与公司英文名称证明说明。&
iOS Developer Program Enrollment&
Please include the line below in follow-up emails for this
Follow-up:&&&
这里是苹果开发者支持。&
请将贵公司的营业证明资料&
-《企业法人营业执照》及盖有公司公章的证明贵公司英文名称的文件&
传真至:+1-408-974-7683&
请在需要传送的文件中注明:&
- 您申请我们产品时获得的注册号码 Enrollment ID:&SN7DJEDB5T&- Follow-up
number:&&-
贵公司的总机号码&
感谢您的协助.&
Best regards,&
 Apple Developer Support&
注:以上的Follow-up:&
一切要记住,后续打电话给苹果中国要查询跟踪进度。
3.传真到+1-408-974-7683,将营业执照复印件,盖上自己公司公章,然后再打印一份,公司英文名称证明,加盖公章,我的格式如下:&
Enrollment ID:&
Follow-up number:&
Company Phone number:&
关于公司英文名称的证明&
兹证明______公司中文名称__________英文名称为_____公司英文名称______&
This is to certify that the company’s English name is
______公司英文名称________&
4.然后打个电话给苹果中国
855(Mon-Fri, 09:00-17:00
SGT),说你们已将资料传真过去,然后还发了附件到chinadev,告诉他们你的Follow-up
number,让他们查找一下是否收到了邮件,然后他们就会很快帮忙处理&
你也就很快会收到邮件:&
Please include the line below in follow-up emails for this
Follow-up:&&&
Re: iOS Developer Program&
谢谢您连络苹果开发人员支援部门。&
我们收到了您的文件。&
请了解我们正在处理您的申请中。如果有关于您注册新的资讯我们将会通知您。&
希望这讯息对您有帮助。再次谢谢您参与苹果开发人员计画。&
Best regards,&
(注:不打电话,只能干等着)
5.收到邮件Apple
Developer Program Enrollment Update&
Apple Developer Program Enrollment
Dear RuJie Zhang,&
You can now continue the Apple Developer Program enrollment process
by reviewing and agreeing to the Program License Agreement. You
must click through this agreement in order to purchase or complete
your enrollment in an Apple Developer
Program(s).&
If you need further assistance, please contact
Best regards,&
Apple Developer Support&
点击 Program License Agreement,继续申请过程。&
注:还是要不停的打苹果中国的电话,催他们帮忙处理,不然又要等好几天(态度要好点哈。嘿嘿)
6、收到付款邮件,然后登陆Apple
ID,下载purchase form.pdf,记录Program:&
iOS Developer Program US$99/year&
Enrollment ID:&
Person ID:&
Full Name:&
用Photoshop打开purchase form.pdf,进行编辑&
第一项:选iOS Developer Program Standard
第二项:Enter your accept
information:填写以上记录的Program资料&
第三项:Enter your billing
information:填写你本人的信用卡信息,&
信用卡类型,Credit card number:信用卡号,Expiration date:有效期,CVV/CVC2
Code:卡后三位&
Name on card:信用卡账号人名称:填写拼音,必须与信用卡一致.&
注:以上必须与信用卡一致.&
第四项:Cardholder
Signature:先不填,填完其它资料后打印出来,这个签名,手写中文签名&
第五项:填写你的邮箱
7.将签名后purchase
form扫描传真,然后发送一份附件到chinadev,并打电话给苹果中国告知你已传真purchase
form过去,让他们帮忙快速处理一下。
8.扣费成功后,就能用了。。
注:传真或邮件,还有电话最好在周五前。。因为苹果中国,周末休息,会耽误两天时间。。
app store权限管理
在这里主要介绍一下app
store的权限,开发可以分为四个权限:Admin Legal、Admin、Member、No
Access。下面详细介绍一下这四个权限:
可以添加app
store的用户管理。
可以添加itunes
管理用户,也可以天界test 用户。
应用上架的流程和操作步骤
下面主要介绍一下,上架应用相关流程和相关的操作步骤:
2.点击管理""
3.点击添加新应用
4.如果是第一次添加应用,而且没有添加过证书。需要添加证书。
添加证书:
5.创建应用,添加应用名字和选择相应的app id。
6、选择价格。我这里选择免费的。
7.添加app 内容
8.点击上传应用
9.选择上传的应用是否加密二进制文件
10、选择继续
11、状态变为:Status
Waiting For Upload
12.利用xcode上传应用
13.填写相应的app id
14.选择相应的Distribution
Provisioning
15.编辑,运行。
16.选择xcode的product的Archive
17.选择提交应用
18.添加用户名和密码
19.选择等待上传的应用和相应的app
20.点击下一步,完了上传应用。
21、上传完就ok了。
应用内支付(In-App
Purchase)
IAP的全称是In-App
Purchase,应用内付费。这种业务模式允许用户免费下载试用,对应用内提供的商品选择消费,比如购买游戏道具,购买游戏等级等等。相比完全收费的应用而言,应用内付费给用户试用的机会,不会让优秀的应用因为缺乏用户的认知而丧失消费者;而且对于开发商,也不需要为了让用户试用而单独发布一款免费的精简版本。
下面详细介绍一下应用内支付的详细步骤:
2.点击添加一个新的应用
4.选择相应的类型
IAP里有两个关键的词,商品(Product)和交易(Transaction)。&
商品可以是一种虚拟的道具,一个隐藏的关卡或者地图,但必须是直观的,可以让用户购买后直接获益的产品。IAP的商品从消费性质上分为四种:
交易是指用户对一个商品的购买行为,当用户点击购买一件商品时,一个新的付费行为就被添加到付费队列中,付费队列是一条系统线程,即使应用程序终止仍然会继续执行。
5.添加相应的应用信息
6.测试IAP的准备流程
如果你是一个注册的苹果开发者,接受了最新的苹果开发者协议,并且签署了iOS付费应用合同,那么你就可以继续IAP的测试了。
7、实现ios开发
测试代码:
运行内部支付demo,点击测试:
内部支付的逻辑:
In App Purchase的注意点
1.确保你所用来创建Profile的Apple ID启用了In App
Purchase功能。&
2.确保你的Apple ID的identifier中没有*。&
3.确保你的bundle ID和你的Apple
ID的identifier一致。&
4.确保你的product ID是唯一的。&
5.确保你在应用程序中所请求的product ID与你在iTunes
Connect里添加的一致。&
6.确保你勾选了Clear for Sale。&
7.在测试的时候你可能需要等待你的商品添加入Apple的测试沙盒,这个过程可能需要几个小时。&
8.在你第一次上传应用程序的时候,确保勾选了需要绑定至该应用程序的商品列表。&
9.确保你是在SDK3.0以上编写的。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。免费内购方法的完整分析 -
| 关注黑客与极客
免费内购方法的完整分析
共560966人围观
,发现 7 个不明物体
一、安装方法
1.LocalIAPStore
二、原理分析
1.IAPCracker
三、防御建议
1.apple官方
-------------------------------------------
很有人气的iOS 5.1不越狱免费内购方法提出者俄罗斯黑客Alexey V. Borodin(网名ZonD80)于日在网站中申明由于iOS 6更换了服务器并采用了EV证书,该方法不再生效,并由于他要转战android平台,所以不再继续提供对iOS免费内购的支持。
该iOS免费内购服务曾关闭过多次,有apple屏蔽服务器IP的原因,有服务器压力支撑不住的原因,有没人捐赠停服的原因,有iOS新版本修复漏洞的原因,总之是命运多舛,但都继续下来了,并且ZonD80还将如何搭建免费内购服务器的方法公布在了github上。我觉得,这次也不会例外,服务还会继续开放的,并且很快会扩展到Android平台上的。
在之前的中,我提及过这种免费内购方法,但有部分情况(如推出的LocalIAPStore插件)没有覆盖到,所以打算补充一下,写得更为完整准确点。
-------------------------------------------
下面介绍的方法是在日发布的(号称在&iOS 6 Golden Master版本上测试成功),我试验了一下,对于IAP内购没有第三方服务端验证收据的应用完全有效(对这类应用只需用到LocalIAPStore插件);对运行在iOS 5.1.1并没有采用由第三方服务器与app store服务器直接验证收据措施的应用也是有效的(对这类应用需要连接服务器)。但对于iOS6正式版本,我没有验证。因为我的测试机只有一台,由于iOS6对某些测试工具的不支持所以没有升级到iOS6.期待网友们能帮忙验证一下。我推测是不生效的,因为黑客在日申明停止该服务的部分原因是iOS 6正式版本采用了EV证书,该方法不再生效。
一、安装使用方法
下面先介绍完整的使用方法
第一步: 如果有安装IAPFree与IAPCracker,请先卸载
第二步:安装LocalIAPStore
(1)如果有安装cydia,直接打开cydia添加源 http://system./repo/
搜索LocalIAPStore,安装
添加源后,在iOS设备的/etc/apt/sources.list.d/cydia.list&文件中(该文件对应的是cydia中所有的软件源地址),会增加一行文字,如下所示
(2)如果没有安装cydia
首先,SSH到iOS设备上
————————-知道如何SSH,不用看这段——————————————————————-
i.使用wifi ssh连接
iOS设备请安装SSH服务端openssh;PC上,如果是windows,可以使用SSH客户端Puttty或SecureCRT)
ssh root@iOS设备IP
默认密码是alpine
II.没有wifi的,使用USB ssh连接
插上USB数据线后,windows上使用itunnel_mux.exe
itunnel_mux.exe --lport 1234
ssh root@127.0.0.1
——————————————————————————————————————————–
然后,编辑/etc/apt/sources.list/saurik.list,添加一行deb http://system./repo/ ./
vim&/etc/apt/sources.list.d/saurik.list (编辑软件源地址列表)
&apt-get update (更新软件源)
&apt-get install anondev.LocalIAPStore (安装插件)
重启SpringBoard或重启设备
LocalAPStore安装后,在/Library/MobileSubstrate/DynamicLibraries目录下会发现2个文件
LocalAPStore.dylib为&Mach-O dynamically linked shared library,可以使用IDA来查看
LocalIAPStore.plist文件为过滤文件,用来限制dylib是否被加载,如下图所示,表示LocalAPStore.dylib只在调用StoreKit功能时加载,即在发生内购操作时加载。
iOS平台上安装的第三方插件,一般采用开发,原理是利用ojective-c reflective lauguage 特性进行dylib注入(类似windows的dll注入),使用动态链接指令DYLD_INSERT_LIBRARIES在运行时调用class_replaceMethod替换系统函数。MobileSubstrate为这一hook封装了更便利得方法。
第三步:有些应用不需要连接到就可以完成免费内购,有些应用需要连接到 服务器,大多数需要连接到该服务器。
连接方法如下所示(这就是很著名的不越狱俄罗斯内购方法):
(1)注销已登录的apple ID
(2)在设备上安装证书文件,使用浏览器打开http://system./
点击First,安装
&点击安装,会提示该证书为经过验证
&忽略之,点击安装,回到浏览器,点击second
点击安装,会弹出安装该证书会改变iPod上得设置
忽略之,点击现在安装,证书安装成功后,会在设置-通用-描述文件中看到已安装好的证书
(3)修改设备接入wifi的DHCP设置中DNS服务器栏
94.228.221.10(黑客说为了减少每月的维护费用,停用这个)
91.224.160.136(目前只有这个可用)
(4)进入游戏,打开购买链接,在如下弹出框中选择like,然后随便输入非真实的apple id,就可以购买成功了。
备注:如果出现预设的”请确认您的软件内购买。。。” ,说明安装失败,你并没有连接到服务器上,需要重复第三步。
-------------------------------------------------方法介绍结束
三、原理分析
(1)IAPCracker插件
对于IAPCracker,能够生效的IAP流程是客户端收到来自App store server的SKPaymentTransaction后,直接根据SKPaymentTransaction的transactionState来判断是否下发购买内容。(这也是IAP built-in内置模式,非常不安全)
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
for (SKPaymentTransaction *transaction in transactions)
switch (transaction.transactionState)
case SKPaymentTransactionStatePurchased:
if([self putStringToItunes:transaction.transactionReceipt]){
//不少开发不做收据校验,就在这里直接给用户添加钱,装备之类的
......代码省略
对于这种情况,可以在客户端将transactionState修改为SKPaymentTransactionStatePurchased来欺骗应用程序下发购买内容。IAPCracker就是采用的这种办法。
(2)IAP Free插件
经历IAPCracker的洗礼后,IAP流程中开始加入了收据验证。
收据验证的步骤如下:
第一步:从SKPaymentTransaction的transactionReceipt属性种提取收据数据,然后使用base64编码该数据
第二步:创建一个json对象,key名receipt-data,key值为第一步中编码后的收据数据
"receipt-data" : "(receipt bytes here)"
第三步:将该json对象通过HTTP POST的方法发送给app store server,地址为https://buy./verifyReceipt
第四步:app store server会返回一个JSON对象,该对象包括两个key,一个为status表示收据是否合法,0表示合法;一个为receipt表示收据数据。
"status" : 0,
"receipt" : { (receipt here) }
receipt数据包括了一些购买信息,用JSON格式表示,具体的key名如下表所示
&物品购买数量。
&product_id
&购买物品的product标示符。
&transaction_id
&购买物品的transaction标示符,为transaction的&属性
&purchase_date
&transaction发生时间,为transaction的&属性
&original_transaction_id
&最初的transaction标示符
&original_purchase_date
&最初的购买时间
&app_item_id
&用于标识transaction中app的唯一性字符。在sandbox创建的receipt没有该字段
&version_external_identifier
&用于标识app修订版本的唯一性数字。在sandbox创建的receipt没有该字段
&app的bundle identifier
&app版本号
-------------以下是SKPaymentTransaction对象的属性值-----------
Getting Information About the Transaction
& 描述transaction处理中发生的错误,类型为NSError
& transaction的支付内容,类型为SKPayment
& tranaction当前的状态,类型为SKPaymentTransactionState
& 成功支付transaction的唯一性标示符,类型为NSString
& & & 用于纪录成功支付transaction相关信息的签名收据,类型为NSData
& transaction加入支付队列的时间,类型为NSDate
&&&&交易中的可下载内容(即购买内容),类型为NSArray
& &&&&用于app store transaction恢复类型为SKPaymentTransaction
-------------以下是SKPayment对象的属性值-----------------
& 购买物品的product标示符,属性为NSString
&&&&property & 购买物品的数量,属性为NSInteger
-------------以下是SKPaymentTransactionState对象的属性值-----------------
enum { , , ,
}; typedef
SKPaymentTransactionS
-------------------------------------------------------
下图是来自app store server的合法receipt示例
再看看IAPFree伪造的receipt
IAPFree之所以生效,主要是由于收据校验的流程于步骤发生了两处错误。
第一处:验证流程漏洞(最致命的)
收据校验由客户端与app store server直接进行验证。
记住一个真理,客户端上一切数据都是可以修改的。
我们可以在客户端上伪造receipt,这正是IAPFree做的事情;
我们可以通过在设备上安装伪造的SSL证书,修改设备的DNS地址,让客户端上的app向伪造的app store server去验证收据,这正是做的事情;
第二处:验证方法漏洞
根据Receipt的status状态是否为0来判断是否为合法的Receipt,而不去校验receipt中的唯一性标识,例如收据签名(receipt signature)
如果APP没有独立的服务器,或者出于用户付费率考虑(由服务器与app store server进行收据验证显然会增加购买等待时间,中国的wifi又不给力),那就必须严格的验证订单,例如transaction_key,收据签名。但只验证是否合法会有个严重缺陷,如果能伪造一个完全合法的订单,该怎么办?就可以实现到这种程度。
从网站说明来看,是利用iOS5证书漏洞,搭建了一个app store服务器的替代品,可以理解为游戏中的私服
下图说明了利用的什么漏洞,SSL证书硬编码与Receipt可以使用自定义证书来签名。意思是可以使用自己伪造的证书来签名收据。
下图说明了该服务是完全模拟了app store server购买算法
下图说明了该服务是完全模拟了app store server购买算法
ZonD80在github上开源了用于模拟app store购买算法的源码,有兴趣的可以下载源码,搭建环境,体验一下。
1.Unix/Linux系统
2.DNSMasq DNS服务器,
dnsmasq.conf配置如下所示如下图所示
3. Nginx/Apache+PHP
if (!-e $request_filename) { rewrite ^/(.*)$ /iapcracker.php?URL=$1 }
4.在iOS 5设备安装2个证书,修改设备的DNS IP为你服务器IP
cacert.pem
&itcert.pem
四、防御建议
总而言之,对IAP而言,能绕过这些邪恶工具的唯一可靠办法就是由独立的服务器与app store server验证收据是否合法,不要经过万恶的客户端。如果不得不由客户端与app store server验证收据,那就只能采取下面不怎么可靠的办法。
1.确保app用于连接app store server的SSL证书采用的是EV SSL证书
2.确保transaction的transaction ID是唯一的
3.确保Receipt的签名合法
4.确保Receipt中购买信息的合法性
1,确保连接的是真正的app store server;2、3、4确保Receipt是未篡改的Receipt
1. 苹果官方
// Check the validity of the receipt.
If it checks out then also ensure the transaction is something
// we haven't seen before and then decode and save the purchaseInfo from the receipt for later receipt validation.
- (BOOL)isTransactionAndItsReceiptValid:(SKPaymentTransaction *)transaction
if (!(transaction && transaction.transactionReceipt && [transaction.transactionReceipt length] & 0))
// Transaction is not valid.
return NO;
// Pull the purchase-info out of the transaction receipt, decode it, and save it for later so
// it can be cross checked with the verifyReceipt.
NSDictionary *receiptDict
= [self dictionaryFromPlistData:transaction.transactionReceipt];
NSString *transactionPurchaseInfo = [receiptDict objectForKey:@"purchase-info"];
NSString *decodedPurchaseInfo
= [self decodeBase64:transactionPurchaseInfo length:nil];
receiptDict
NSDictionary *purchaseInfoDict
= [self dictionaryFromPlistData:[decodedPurchaseInfo dataUsingEncoding:NSUTF8StringEncoding]];
NSString *transactionId
= [purchaseInfoDict objectForKey:@"transaction-id"];
NSString *purchaseDateString
= [purchaseInfoDict objectForKey:@"purchase-date"];
NSString *signature
= [objectForKey:@"signature"];
// Convert the string into a date
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss z"];
NSDate *purchaseDate = [dateFormat dateFromString:[purchaseDateString stringByReplacingOccurrencesOfString:@"Etc/" withString:@""]];
if (![self isTransactionIdUnique:transactionId])
// We've seen this transaction before.
// Had [transactionsReceiptStorageDictionary objectForKey:transactionId]
// Got purchaseInfoDict
return NO;
// Check the authenticity of the receipt response/signature etc.
BOOL result = checkReceiptSecurity(transactionPurchaseInfo, signature,
(__bridge CFDateRef)(purchaseDate));
if (!result)
return NO;
// Ensure the transaction itself is legit
if (![self doTransactionDetailsMatchPurchaseInfo:transaction withPurchaseInfo:purchaseInfoDict])
return NO;
// Make a note of the fact that we've seen the transaction id already
[self saveTransactionId:transactionId];
// Save the transaction receipt's purchaseInfo in the transactionsReceiptStorageDictionary.
[transactionsReceiptStorageDictionary setObject:purchaseInfoDict forKey:transactionId];
return YES;
网上也有第三方服务来提供receipt验证,例如&,Beeblex提供IAP收据验证服务,用来防御收据伪造和中间人欺骗共计。他们使用了更有效的加密算法和有时间限制的令牌,使伪造收据变得十分困难。Beeblex非常容易使用,只需要调用他们提供的SDK就行了。
-------------------------------------------
周末两天都泡在和里,相当喜欢这个人,能发现有趣的事情,能共享有趣的事情,就是有趣的人生。
附上ZonD80博客中的一首歌,,轻摇滚风格的。
参考网站:
http://www./
http://www.chto.su/
http://habrahabr.ru/post/149207/
/library/ios/#documentation/StoreKit/Reference/SKPaymentTransaction_Class/Reference/Reference.html
/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/VerifyingStoreReceipts/VerifyingStoreReceipts.html#//apple_ref/doc/uid/TP-CH104-SW1
/library/ios/#releasenotes/StoreKit/IAP_ReceiptValidation/_index.html#//apple_ref/doc/uid/TP-CH0-SW4
/public/overview
/iphone-cocos2d/673.html
必须您当前尚未登录。
必须(保密)
混迹于安全圈的萌妹子
关注我们 分享每日精选文章

我要回帖

更多关于 app store找不到迅雷 的文章

 

随机推荐