Name Last Update
ios Loading commit data...
IOSDocument.md Loading commit data...
README.md Loading commit data...

README.md

Gump IOS SDK使用文档

接入手册
登陆sdk:GumpLoginSDK.framework v1.0.8 支付sdk: GameSDK.framework v4.0.6 2019年3月15日

概述

本SDK提供Game Center登陆 和 游客登陆两种账号登录,iap支付和第三方支付两种支付功能,活动SDK(大转盘等)。

接入步骤

1、添加Framework和资源文件

  • 以下为必须添加的framework以及资源bundle:
    MobileCoreServices.framework、SystemConfiguration.framework、libz.dylib、CFNetwork.framework、GumpLoginSDK.framework、GameSDK.framework、GameActivitySDK.framework、StoreKit.framework、GameSDKResources.bundle

2、引入头文件,设置build setting

因sdk内使用了category,需要设置other linker flag为 -ObjC

3、增加必要配置

1)在application delegate中, 在application:openURL:sourceApplication:annotation:添加返回:

return [[LetsGameAPI instance] handleOpenURL:url sourceApplication:sourceApplication];

2) 在工程的Targets->Capablities->Game Center 打开

4、在工程里添加SDK登录代码

添加GumpLoginSDK.framework

[[GPGameLoginSDK instance] GPGameLoginWithViewController:self appID:@"100" channelId:@"10002"];
[GPGameLoginSDK instance].succBlock = ^(NSNumber *userId, ACCOUNTTYPE type) {
    self.resultLabel.text = [NSString stringWithFormat:@"userId: %@, accountType: %ld", userId, (long)type];
};
[GPGameLoginSDK instance].failBlock = ^{
    self.resultLabel.text = @"login error";
};

5、第三方支付

[LetsGameAPI instance].appId = @"10022";
NSMutableDictionary *payInfo = [NSMutableDictionary dictionary];
[payInfo setValue:@"5001" forKey:@"serverId"];//服务器id,必传参数
[payInfo setValue:@"10010" forKey:@"roleId"];//用户角色id
[payInfo setValue:@"1595907" forKey:@"userId"];//用户ID userId
[payInfo setValue:@"1000" forKey:@"channelId"];//渠道id
[payInfo setValue:@"10" forKey:@"amount"];//金额
[payInfo setValue:@"ios demo" forKey:@"extraInfo"];//外部订单信息
[payInfo setValue:@"test1" forKey:@"product"];//商品ID
[[LetsGameAPI instance] pWeb:payInfo handleCallBack:^{
    //第三方支付完成时的回调(包括支付成功和支付失败,除了支付过程中取消的),取消的不会有回调
    NSLog(@"第三方支付完成");
}]];

6、IAP支付

若要使用apple IAP支付,需要在AppDelegate的application: didFinishLaunchingWithOptions:方法内注册iap observer,使用如下方法

[[LetsGameAPI instance] registeIapObserver];  

具体调用iap支付的方法如下:

[LetsGameAPI instance].appId = @"100";
NSMutableDictionary *payInfo = [NSMutableDictionary dictionary];
[payInfo setValue:@"5001" forKey:@"serverId"];//当前用户所在的服务器Id
[payInfo setValue:@"10010" forKey:@"roleId"];//当前用户的角色id
[payInfo setValue:@"1595907" forKey:@"userId"];//用户ID userId
[payInfo setValue:@"1000" forKey:@"channelId"];//渠道id,用于统计
[payInfo setValue:@"10" forKey:@"amount"];//对应支付项的支付金额,实际支付金额以itunes配置为准
[payInfo setValue:@"ios demo" forKey:@"extraInfo"];//扩展信息,可以游戏自定义,建议传自有订单号
[payInfo setValue:@"test.product.1" forKey:@"product"];//itunes 后台配置的对应支付项的productId
[[LetsGameAPI instance] iap:payInfo succCallback:^(NSString *orderId) {
    //此处的回调表明支付已经完成,但此时支付不一定成功,需要服务端验证支付结果
    //orderId为gump生成的订单号,此订单号可以在gump server查询此笔支付是否成功
    NSLog(@"IAP completed orderId of Gumptech:%@",orderId);
} failCallback:^(NSString *orderId) {
     //支付失败
    NSLog(@"IAP file orderId of Gumptech:%@",orderId);
}];

7、第三方支付版本

第三方支付,分成两个版本:没有gump币和有gump币,不设置时默认为不带gump币版本,如果使用带gump币的版本如下设置:

需要在 application:didFinishLaunchingWithOptions方法中添加:

[[LetsGameAPI instance] decideWebToVersion:1]

8、第三方支付横竖屏设置

添加GameSDK.framework 首先设置支付SDK默认是横屏,在General->Deployment Info->Device Orientain下,只选择Landscape Left 和 Landscape Right,SDK的界面默认是横屏。 其次如果想使用竖屏的模式,需要在General->Deployment Info->Device Orientain下,只选择Portrait模式,并且需要在AppDelegate中的方法: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;靠前的位置添加代码设置:

[LetsGameAPI DeviceOrientationIsHorizontal:NO];

9、活动添加

添加GameActivitySDK.framework 设置:设置xxxx.plist 只支持HTTP的方式,需要将相应的项目的xxx.plist添加Information Property List->App Transport Security Settings -> Allow Arbitrary Loads设置为YES

工程中添加SDK登录代码:

NSMutableDictionary *activityInfo = [NSMutableDictionary dictionary];
[activityInfo setValue:@"100" forKey:@"appId"];
[activityInfo setValue:@"123456" forKey:@"userId"];
[activityInfo setValue:@"111" forKey:@"serverId"];
[activityInfo setValue:@"aaa" forKey:@"serverName"];
[activityInfo setValue:@"222" forKey:@"roleId"];
[activityInfo setValue:@"ccc" forKey:@"roleName"];
[activityInfo setValue:@"888" forKey:@"diamond"];
//活动关闭的回调
[[LetsGameActivityAPI instance] GameActivityWithParaDictory:activityInfo handleCallBackL:^{
    NSLog(@"activity finish!");
}];

10、绑定账号

需要提供按钮绑定,点击事件调用下面方法。 工程中需要添加SDK 绑定fb账号的代码:

 NSMutableDictionary *bindParaDic = [NSMutableDictionary dictionary];
[bindParaDic setObject:@"100" forKey:@"appId"];
[bindParaDic setObject:self.userId forKey:@"userId"];
[[GPGameLoginSDK instance] GPGameBingWithViewController:self InfoDic:bindParaDic succCallBack:^(NSNumber *userId, ACCOUNTENTERTYPE type) {
    //仅是绑定成功,并无切换账号的要求
    self.resultLabel.text = [NSString stringWithFormat:@"userId: %@, accountType: %ld", userId, (long)type];
} failCallBack:^{
    NSLog(@"bind fail");
}];

11、切换fb账号

需要提供按钮切换fb账号,点击事件调用下面方法。 工程中添加SDK切换第三方账号代码:

NSMutableDictionary *bindParaDic = [NSMutableDictionary dictionary];
[bindParaDic setObject:@"100" forKey:@"appId"];
[bindParaDic setObject:self.userId forKey:@"userId"];
[[GPGameLoginSDK instance] GPGameSwitchWithViewController:self InfoDic:bindParaDic succCallBack:^(NSNumber *userId, ACCOUNTENTERTYPE type) {
//成功回调,切换成功,需要研发注销处理,然后重新调用登录接口,只有返回的是新的第三方账号对应的userID
    self.resultLabel.text = [NSString stringWithFormat:@"userId: %@, accountType: %ld", userId, (long)type];
} failCallBack:^{
//失败回调,切换失败
    NSLog(@"bind fail");
}];

12、切换系统账号

需要提供按钮切换系统账号,点击事件调用下面方法。 需要用户自己去往Game Center切换账号,之后再次登陆游戏才能实现账号切换。 工程中添加SDK切换系统账号代码:

[[GPGameLoginSDK instance] GPSwitchGameCenterWithViewController:self switchCallBack:^{
    self.resultLabel.text = @"Login Game Center";
}];