【IOS游戏开发】 登陆以及支付SDK总结

这段时间已经负责做IOS的登陆和支付了  前期没有做过ios的项目 在其中遇到了很多问题 

现在也是自己能够独立完成SDK的接入了 但是IOS相对比Android接入稍微简单点  但是后期的打包 还有签名这一块有点头大 但是好在学的比较快 现在基本上都不用去询问公司的前辈了 感觉还行  

Android的登陆以及支付SDK的文章也写好了 感兴趣可以点开下面去了解一下

【Android游戏开发】登陆以及支付SDK总结

 

还是先了解接入SDK的各个流程

首先理清楚下面这个登陆模块的流程图

 

http://k.com/wp-content/uploads/2019/04/6f8c9a5c0313dbbfc8ec4895fdd1dcc6.png

 

第一步:登陆模块 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接入文档

 

 

 

然后就是支付模块的流程图

 

https://img-blog.csdnimg.cn/20190606100251601.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMwMDU0MTk5,size_16,color_FFFFFF,t_70

 

php支付在客户端下单后,将信息传给sdk服务器后,sdk自己支付成功后会调用我们一个支付回调,这就需要我们配置好一个charge的php文件,具体实现是利用sdk返回的参数以及充值本身参数拼接出一个验证签名,对sdk返回的sign做一个校验,成功则返回sucess,否则返回fail

 

然后先将IOS的工程创建好 因为这个涉及到公司内部的操作 所以我就不写步骤了 自己创建好一个游戏的工程

然后先run一次 看看有没有错误

 

这个是大致的路径 主要是需要根据实际项目去放资源路径

然后就能直接开始接入了 

客户端的代码接入

主要是接入常用的接口 


-(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中有许多坑 所以 得要多注意一下!

 

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
iOS开发中,支付是一个非常重要的功能。在开发支付时,需要考虑到支付流程、支付方式、支付安全等方面的内容。以下是一些开发支付的要点: 1. 集成支付SDK iOS开发中,一般使用第三方支付SDK来实现支付功能。常见的支付SDK包括:支付SDK、微信支付SDK、银联支付SDK等。在使用SDK前,需要先注册开发者账号,并获取相应的API Key和App ID等信息。 2. 支付流程 支付流程一般包括以下几个步骤: - 用户选择支付方式; - 向支付平台发起支付请求; - 用户输入支付密码; - 支付平台返回支付结果; - 应用根据支付结果进行相应的处理。 3. 支付安全 支付安全是非常重要的。在开发中,需要考虑到以下方面: - 用户信息的安全保护:包括用户的账号、密码、支付信息等; - 支付数据的安全保护:对于涉及到支付的数据,需要采用加密算法进行保护,避免被非法攻击者窃取; - 安全审计:需要对支付过程中的各个环节进行安全审计,及时发现并修复漏洞。 4. 支付方式 在iOS开发中,常见的支付方式包括: - 支付支付:支持PC端、移动端、扫码支付等多种支付方式; - 微信支付:支持微信内支付、H5支付、APP支付等多种支付方式; - 苹果支付:支持应用内购买,用户可以直接使用Apple ID进行支付。 需要根据应用的实际情况,选择适合的支付方式。 总之,开发支付需要考虑到多个方面的内容,包括支付流程、支付方式、支付安全等,需要仔细规划和实现,以保证支付功能的正常运作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值