【IOS游戏开发】 登陆以及支付SDK总结
这段时间已经负责做IOS的登陆和支付了 前期没有做过ios的项目 在其中遇到了很多问题
现在也是自己能够独立完成SDK的接入了 但是IOS相对比Android接入稍微简单点 但是后期的打包 还有签名这一块有点头大 但是好在学的比较快 现在基本上都不用去询问公司的前辈了 感觉还行
Android的登陆以及支付SDK的文章也写好了 感兴趣可以点开下面去了解一下
还是先了解接入SDK的各个流程
首先理清楚下面这个登陆模块的流程图
第一步:登陆模块 SDK的客户端上传用户名还有密码,App_id等数据到SDK的服务器
第二步:SDK的服务器将客户ID,User_token等上传到SDK的客户端
第三步:将SDK的客户端的数据上传给游戏的客户端
第四步:游戏客户端拿到数据将数据上传到游戏的服务器
第五步:游戏的服务器将 App_id,用户id,user_token,还有sign等上传到SDK的服务器
第六步:SDK的服务器将验证结果上传给游戏服务器
第七步:游戏服务器将登陆结果返回给游戏客户端(在游戏服务器中我们需要对Sign进行二次验证,然后在将结果返回给客户端)
简单来说就是我们拿到SDK服务器的数据,然后上传到游戏服务器经过处理(可能是字段拼接用md5码的形式和SDK服务器端传过来的sign值作对比,相同则进行下一步,不同则die,或者我们将数据拼接,将拼接的数据用来请求SDK服务器,然后SDK服务器返回结果)最后登录成功进入选服页
ps:SDK客户端或者游戏服务器上传的字段以及验证要求都不一定是一样的 具体看各个SDK接入文档
然后就是支付模块的流程图
php支付在客户端下单后,将信息传给sdk服务器后,sdk自己支付成功后会调用我们一个支付回调,这就需要我们配置好一个charge的php文件,具体实现是利用sdk返回的参数以及充值本身参数拼接出一个验证签名,对sdk返回的sign做一个校验,成功则返回sucess,否则返回fail
然后先将IOS的工程创建好 因为这个涉及到公司内部的操作 所以我就不写步骤了 自己创建好一个游戏的工程
然后先run一次 看看有没有错误
这个是大致的路径 主要是需要根据实际项目去放资源路径
然后就能直接开始接入了
客户端的代码接入
主要是接入常用的接口
[code] -(void) _QdInit { //游戏初始化接口,可在这里完成SDK初始化 } -(void) _QdPushLogin:(int)type{ //游戏登录接口 //登录语句:(在SDK登录回调成功接口使用) //#include "platform_sdk_adapter.h"//必须导入 //std::map<std::string, std::string> dict; //dict["app_flag"] = [@"iOS" cStringUsingEncoding:NSUTF8StringEncoding];//根据需要选择传入登录验证PHP的请求参数 //PlatFormAdapter::sharedInstance()->LoginCallBack(1, "", "", "", &dict); } -(void) _QdLogout:(NSString*)username { //游戏退出接口,根据情况可在这里实现SDK退出方法 //游戏退出语句(在SDK退出回调使用) //PlatFormAdapter::sharedInstance()->LogoutCallBack(); } -(NSString*) _QdPayWithAmount:(NSInteger)amount chargeId:(NSString*)chargeIdString price:(NSInteger)price uid:(NSInteger)uid sid:(NSInteger)sid rid:(NSInteger)rid platformUserId:(NSString*)userName platformUserName:(NSString*)userId serverName:(NSString*)serverName moneyName:(NSString*)moneyName exchangeRate:(float)exchangeRate roleName:(NSString*)roleName extra:(NSString*)extra ext1:(NSString*)ext1 ext2:(NSString*)ext2 ext3:(NSString*)ext3 dict:(NSMutableDictionary *)dict { //游戏支付接口 //常用参数说明 //amount:元宝数量,由支付PHP控制 //chargeIdString:商品id,由支付PHP控制 //price:元宝价格,由支付PHP控制 //sid:游戏服id //rid:角色id //serverName:游戏服名称 //roleName:角色名称 //extra:订单号,由支付PHP生成 //ext1,ext2,ext3:透传参数,可在登录PHP最后返回的json控制 } -(void) _QdSetUserInfoWithPid:(int)pid sid:(int)sid rid:(int)rid platformUserId:(NSString*)platformUserId platformUserName:(NSString*)platformUserName serverName:(NSString*)serverName roleName:(NSString*)roleName roleLevel:(int)roleLevel extraInfo:(NSString*)extraInfo { //上传角色信息接口,游戏角色创建,登录,升级都会调用此接口 } - (void)_Qdapplication:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //程序的一个生命周期接口,可根据需要选择实现(包括其他生命周期) }
PHP篇
这边需要熟悉这篇文章开头部分的网络流程
首先说说这个是IOS和Android互通的 因为最近我也负责公司的IOS端SDK开发接入 其实对于PHP来说IOS和Android
是可以公用的 但是要注意Appid 或者appkey有不同的地方需要在php端做switch.case
考虑再三 这部分的代码涉及到公司的隐私 所以不予公开 但是可以提供这个思路去做
基本上是返回值进行拼接然后返回url或者是通过sdk中得到的sign值进行比对 正确返回SDK中需要的字符
然后进行发放元宝以及登录成功
PS:可能需要渠道那边进行php的回调!需要注意的是
然后将项目run一次 看看是否可以登录 以及充值
后续用的是公司这边的自动打包 所以不多写了 差不多流程是这种 但是各个SDK中有许多坑 所以 得要多注意一下!
- 【Android游戏开发】登录以及支付SDK总结
- 开发腾讯移动游戏平台SDK ios版Ane扩展 总结
- 开发腾讯移动游戏平台SDK ios版Ane扩展 总结
- [HAXE] haxe接入IOS版FacebookSdK以及iOS开发遇到的问题总结(一)
- [HAXE] haxe接入IOS版FacebookSdK以及iOS开发遇到的问题总结(二)
- Android IOS WebRTC 音视频开发总结(八十一)-- WebRTC靠谱吗?有没有适合的SDK推荐?
- 【Unity】 ios游戏开发中登陆 GameCenter的问题和脚本
- iOS游戏开发三:苹果内支付实现 In-app
- 【iOS-Cocos2d游戏开发之十八】解决滚屏背景/拼接地图有黑边(缝隙)/动画播放出现毛边以及禁止游戏中自动锁屏问题!【2011年12月18日补充】
- Android IOS WebRTC 音视频开发总结(五三)-- 国内IM & RTC SDK列表
- 【iOS-Cocos2d游戏开发之三】CCScene切换的所有特效(28种)以及设置屏幕横竖屏!
- ios SDK开发之关于CoreAnimation的一些注意点总结
- XMPPFramework-IOS开发(二)登陆以及自定义类
- 【iOS-Cocos2d游戏开发之十八】解决滚屏背景/拼接地图有黑边(缝隙)/动画播放出现毛边以及禁止游戏中自动锁屏问题!【2011年12月18日补充】
- 【iOS-Cocos2d游戏开发之二十二 】CCSpeed实现CCAnimate动画进行时设置慢动作以及设置游戏加减速进行(塔防游戏必备)!
- 开发腾讯移动游戏平台SDK ios版Ane扩展
- 【iOS-Cocos2d游戏开发之十六】添加本地通知(UILocalNotification)以及添加系统组件滚动视图(UIScrollView)!【2011年11月15日更新】
- iOS游戏开发二:苹果内支付的流程(In-App Purchases)
- 【iOS-Cocos2d游戏开发之十八】解决滚屏背景/拼接地图有黑边(缝隙)以及禁止游戏中自动锁屏问题
- iOS开发之适配IPV6更新网络处理为AFNetworking3.x, 集成以及遇到的一些问题总结。