ios的in-app purchase实现,早在ios4的时候,我实现了一次,这次升级到ios8,重新看了下文档,ios本身有了更新,加上这次我们要做服务器二次验证,还是好好摸索了下。
首先我要说的是,ios的文档内虽然给出了服务器验证的代码,但是完全是用object-c实现的。我想这本身没什么太多价值吧。至少我还没遇见用oc来实现游戏逻辑服务器的。如果是应用,可能很多人会使用php,asp,或者java来实现服务器,那么这块我就不说了,网上可以搜到非常多的资料。我这里着重介绍C#服务器的实现(为什么游戏服务器用C#,不用C++?项目就是这样,也就不解释了)。客户端的代码网上到处都是了,不再罗列
设计思路:
注意点:
1.ios7以后的版本,transaction中的transactionReceipt已经被淘汰,虽然目前到8.1.3为止,仍旧可以访问该变量,但是谁知道哪天就不行了呢,正确的访问方法
NSURL *url = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData datawithContentsOfURL:url];
2.接下来很容易出现问题的部分,按照ios的文档,此时你需要把这个NSData*的收据数据发送到你的服务器上进行二次验证,ios很轻巧的给出了一段oc的范例代码。(但是有几个人会用OC来写游戏服务器啊,范例代码完全没有参考价值)。也就是说,此时