您的位置:首页 > 编程语言 > Java开发

MSDK的接入心得!!抓狂中。。。。。

2015-06-03 21:46 411 查看
接MSDK,我相信很多同行都已经完成了。大中华的游戏没有不去接的。

但是本人的项目原因,在接MSDK的时候出现了很多问题......始料未及。直接把本少逼入了抓狂的地步!!!


个人的开发环境:

       客户端:Eclipse, Unity3D, win7系统(jdk,Android sdk都已经装完)

       服务端:NetBeans, linux系统(惨绝人寰的)

项目描述:

       带有内购道具的游戏项目。

MSDK 版本:

       2.5.3a——为什么会是这个版本我也不知道,上面给的。

准备开始:

      开始前,先读文档,看demo。多么好的习惯啊!!!!(到了后面就开始奔溃了)

我是在unity导出的Android工程上进行修改的!

1)将demo给的一个library工程应用过来。哇哈哈.......你没装ndk吧

 去装去吧!!!!!

2)导入需要的jar包,其实很多jar包都已经在library工程里了。这个倒是省心。

3)AndroidManifest.xml抄一下。手Q需要的activity和微信需要的activity,以及权限。

4)把unity导出的类,派生出一个主类,在这个主类里完成onCreate内的很多初始化。其他的on前缀的方法中,按照文档的去做。

5)登陆的回调类实现,我是单独写的一个类。而不是在回调的地方去写。个人习惯。。。。

6)测试登陆。咦——我的娘啊,为什么我的游戏界面上没有QQ和微信登陆按钮啊!老子只好去写个登陆activity,就两个按钮带个logo。分分钟的事。不提也罢。

7)点击登陆,保存所有的回调数据,注意:手Q有个paytoken,微信有个refreshtoken。先呵呵一下。

8)经过一次一次的调试,登陆终于过了。

9)总结下:登陆其实还是蛮简单的。。。。。至少对我来说智商还够用。

10)准备支付了。多么美好的心情啊~~~~~~~~~~~~~~~~

11)客户端offerid一填,支付接口实现,回调类写好。多么愉快啊!!!!!!注意:offerid是要在midas网站上注册后显示的appid。问题来了,如果是内部道具直购的应用,申请到的appid和open网站上申请的appid是不一样。这时候,需要召唤大腾讯的产品负责人,让他们帮你捆绑起来。(好野蛮的捆绑)

12)服务端写好申请“url”和“token”的接口。哈哈。。。然后悲剧来了,sig签名总是error。心情开始low了。于是反复翻看文档和demo(服务端的demo是需要去要的)。难道编写sig的参数不对?于是在比较和折磨中,趟着这趟浑水。

        来吧,参数需要amt、appid、openid、openkey、pay_token、ts、pf、pfkey、zoneid、payitem、goodsmeta,没有的就从客户端传过来吧。把他们放在一个map里,然后丢给大腾讯提供的 SnsSigCheck 类中 makeSig 来生成一个sig。并把这个sig也丢到map里。然后对这个map进行格式编码,key和value都转成utf-8的编码格式,其中将“+”号换成%20,“*”号换成%2A。最后组成key=value,每组之间用&拼接。然后追加到url后面。

        记住 测试请求地址是 : http://msdktest.qq.com/mpay/buy_goods_m   不要管其他的文档和demo上的欺骗。

         然后么。就是将组装好的http地址和cookie以http格式发送出去。不多说。

        什么什么cookie?????就是由 session_id 、 session_type 和 org_loc组成的map。在这里很多可选的项都被舍弃了,如果有需要可以自己加。

        直到你成功后,就可以下一步了。

13)后面几步待续。。。。。还需要准备好openssl这个工具哦。没有的小弟弟们去download的吧!最好还熟悉下ssl,以及NetBeans下jetty如何开启https的端口。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息