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的端口。
但是本人的项目原因,在接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的端口。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories