ios 苹果内购踩过的坑

在前面的博客里面已经做了内购代码的说明,现在说说具体的内购流程

1,移动端将产品列表(可以存在本地,也可以从自己的服务器取)添加到appstore
2,appstore会返回一个产品信息列表 (这中间的时间可能比较长)
3,我们选中的产品和返回的列表数据比对,有相同的就添加到购买对列里面开始购买
4,购买成功后返回一个购买票据,拿着这个票据去请求appstore验证其正确性,同时也拿着这个票据请求自己的服务器检验
5,校验成功,处理自己成功后的事!

当然上面的流程是主要的流程,其实还有很多,网上一大堆,我现在要说的是网上没搜到的坑,也不知道是不是自己这边服务器的问题,还是自己的问题,不管了直接上代码
这段代码意思就是,获取购买的票据,有意思的是,ios7以后不再支持transaction.transactionReceipt的方法了,然而我利用了新的方法(从沙盒里面取)取出来的值base64后解码是错误的,自己的服务器也请求不了;但是利用之前的方法是好的!有大神可以知道的,万分感谢!
// ios7以后的新方法
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
// 从沙盒中获取到购买凭据
NSData *receiptData = [NSData dataWithContentsOfURL:receiptURL];
NSString *encodeStr = [receiptData base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];

// ios7之前的方法           
NSString *encodeStr = [transaction.transactionReceipt base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];
总结:两种方法获得的票据在程序里面请求appstore都是好的,就是在向自己的服务器校对时,新的方法不好使。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值