IOSDocument.md 5.98 KB

Gump IOS SDK使用文档

接入手册
V 3.3.19
2016年11月14日

概述

本SDK提供gump账号,fb账号,vk账号三种账号登录,iap支付和第三方支付两种支付功能,其中gump账号登录和fb账号登录功能为必须接入,支付可根据需要选择性接入。

接入步骤

1、添加Framework和资源文件

  • 以下为必须添加的framework以及资源bundle:
    MobileCoreServices.framework、SystemConfiguration.framework、libz.dylib、CFNetwork.framework、GameSDK.framework、StoreKit.framework、GameSDKResources.bundle
  • 以下为可选,若接入vk登录则需要添加以下framework和bundle,其中VKSdk.framework和VKSDKResources.bundle请自行从vk.com下载,使用1.3版本
    VKSdk.framework、VKBridge.framework、VKSDKResources.bundle
  • 以下为可选,若接入bluePay第三方支付方式需要添加一下的framework和bundle,其中CoreBuePay.framework直接引入工程,之后再依次引入CoreTelephony.framework、MessageUI.framework、SystemConfiguration.framework,最后将BlueMobile.bundle拖入项目中

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

需要使用头文件有LetsGameAPI.h和VKBridge.h,其中VKBridge.h为接入vk时使用,不接入vk可忽略。
因sdk内使用了category,需要设置other linker flag为 -ObjC

3、增加必要配置

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

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

2)配置URL-schema(vk专用,不接入vk可忽略)
Xcode 5: Open your application settings then select the Info tab. In the URL Types section click the plus sign. Enter vk+APP_ID (e.g. vk1234567) to the Identifier and URL Schemes fields.
/document/iosgamesdk_newdn/blob/bf74f0bb669851bca2b9fb9b22bd58a763a05efa/IOSDocument.md#gump-ios-sdk
Xcode 4: Open your Info.plist then add a new row URL Types. Set the URL identifier to vk+APP_ID /document/iosgamesdk_newdn/blob/bf74f0bb669851bca2b9fb9b22bd58a763a05efa/IOSDocument.md#gump-ios-sdk

3)配置plist和scheme(BluePay的linePay使用,不接入BluePay的LinePay可忽略)

plist部分:
<key>LSApplicationQueriesSchemes</key>
    <array>
        <string>line</string>
    </array>
scheme部分:
<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleTypeRole</key>
        <string>None</string>
        <key>CFBundleURLName</key>
        <string>com.gump.sdk</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string> gump+游戏的appId </string>
        </array>
    </dict>
</array>

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

[LetsGameAPI instance].appId = @"100"; // 设置appId
[LetsGameAPI instance].appKey = @"100"; // 设置appKey

//启用vk的代码,需要填入vk appId,若不接入vk,可以忽略
//VKBridge *vkBridge = [[VKBridge alloc] initWithVKAppId:@"5029792"];
//[LetsGameAPI instance].vkBridge = vkBridge;

//隐藏fb登录
[LetsGameAPI disableFB:YES];

//隐藏gumptech的logo
[LetsGameAPI hiddenLogo:YES];

[[LetsGameAPI instance] showLoginView]; // 弹出登录页面

// 登录成功回调
[LetsGameAPI instance].succBlock = ^(NSString *userId, NSString *sessionKey, LSGAccountType type) {
NSLog(@"%@", [NSString stringWithFormat:@"login succ: userId = %@, sessionKey = %@, accountType = %d", userId, sessionKey, type]);
};

// 登录失败回调
[LetsGameAPI instance].dismissBlock = ^() {
 NSLog(@"dismiss without login");
};

5、第三方支付

[LetsGameAPI instance].appId = @"10022";
[LetsGameAPI instance].appKey = @"f899139df5e1059396431415e770c6dd";
NSMutableDictionary *payInfo = [NSMutableDictionary dictionary];
[payInfo setValue:@"5001" forKey:@"serverId"];//服务器id,必传参数
[payInfo setValue:@"10010" forKey:@"roleId"];//用户角色id
[payInfo setValue:@"1000" forKey:@"channelId"];//渠道id
[payInfo setValue:@"10" forKey:@"amount"];//金额
[payInfo setValue:@"ios demo" forKey:@"extraInfo"];//外部订单信息
[payInfo setValue:@"元宝" forKey:@"product"];//物品信息
[payInfo setValue:self.sessionKey forKey:@"sessionKey"];//登录成功的sessionKey
[payInfo setValue:@"1" forKey:@"iosBlue"];//接入完BluePay,需要使用时需要的标志位
[[LetsGameAPI instance] pay:payInfo handleCallBack:^{
    //第三方支付完成时的回调(包括支付成功和支付失败,除了支付过程中取消的),取消的不会有回调
    NSLog(@"第三方支付完成");
}]];

6、IAP支付

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

[[LetsGameAPI instance] registeIapObserver];  

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

[LetsGameAPI instance].appId = @"10022";
[LetsGameAPI instance].appKey = @"93a27b0bd99bac3e68a440b48aa421ab";
NSMutableDictionary *payInfo = [NSMutableDictionary dictionary];
[payInfo setValue:@"5001" forKey:@"serverId"];//当前用户所在的服务器Id
[payInfo setValue:@"10010" forKey:@"roleId"];//当前用户的角色id
[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 forUser:@"" handleCallback:^(NSString* orderId){
    //此处的回调表明支付已经完成,但此时支付不一定成功,需要服务端验证支付结果
    //orderId为gump生成的订单号,此订单号可以在gump server查询此笔支付是否成功
    NSLog(@"iap completed orderId of gumptech:%@",orderId);
}];

7、SDK版本测试设置

若想使用SDK的debug版本,需要在AppDelegate的application: didFinishLaunchingWithOptions:中设置:

 [[LetsGameAPI instance] decideIsDebug:1];

不设置或者设置为0时,默认使用release版本