Commit 58aa87d07a467fd45d3fe8b67aa7b6c681bedbe6

Authored by alexYang
1 parent 63a85a9542
Exists in master

账号联动和iap支付中重复充值中的问题

Showing 18 changed files with 107 additions and 105 deletions Side-by-side Diff

... ... @@ -2,9 +2,9 @@
2 2  
3 3  
4 4 接入手册
5   -登陆sdk:GumpLoginSDK.framework v1.0.8
6   -支付sdk: GameSDK.framework v4.0.6
7   -2019年3月15日
  5 +登陆sdk:GumpLoginSDK.framework v1.0.11
  6 +支付sdk: GameSDK.framework v4.0.7
  7 +2019年5月31日
8 8  
9 9 ## 概述
10 10 #### 本SDK提供Game Center登陆 和 游客登陆两种账号登录,iap支付和第三方支付两种支付功能,活动SDK(大转盘等)。
... ... @@ -114,35 +114,20 @@ MobileCoreServices.framework、SystemConfiguration.framework、libz.dylib、CFNe
114 114 NSLog(@"activity finish!");
115 115 }];
116 116  
117   -### 10、绑定账号
  117 +### 10、账号联动
118 118 需要提供按钮绑定,点击事件调用下面方法。
119   -工程中需要添加SDK 绑定fb账号的代码:
  119 +此功能涉及账号的绑定和切换,回调只有在切换成功之后才会出现,其他情况的回调都是失败的回调。
  120 +工程中添加SDK账号联动代码:
120 121  
121   - NSMutableDictionary *bindParaDic = [NSMutableDictionary dictionary];
122   - [bindParaDic setObject:@"100" forKey:@"appId"];
123   - [bindParaDic setObject:self.userId forKey:@"userId"];
124   - [[GPGameLoginSDK instance] GPGameBingWithViewController:self InfoDic:bindParaDic succCallBack:^(NSNumber *userId, ACCOUNTENTERTYPE type) {
125   - //仅是绑定成功,并无切换账号的要求
  122 + NSMutableDictionary *linkParaDic = [NSMutableDictionary dictionary];
  123 + [linkParaDic setObject:@"10022" forKey:@"appId"];
  124 + [linkParaDic setObject:self.userId forKey:@"userId"];
  125 + //仅在切换账号成功的时候有返回值
  126 + [[GPGameLoginSDK instance] GPGameAccountLinkViewController:self InfoDic:linkParaDic callBack:^(NSNumber *userId, ACCOUNTENTERTYPE type) {
126 127 self.resultLabel.text = [NSString stringWithFormat:@"userId: %@, accountType: %ld", userId, (long)type];
127   - } failCallBack:^{
128   - NSLog(@"bind fail");
129 128 }];
130   -### 11、切换fb账号
131   -需要提供按钮切换fb账号,点击事件调用下面方法。
132   -工程中添加SDK切换第三方账号代码:
133 129  
134   - NSMutableDictionary *bindParaDic = [NSMutableDictionary dictionary];
135   - [bindParaDic setObject:@"100" forKey:@"appId"];
136   - [bindParaDic setObject:self.userId forKey:@"userId"];
137   - [[GPGameLoginSDK instance] GPGameSwitchWithViewController:self InfoDic:bindParaDic succCallBack:^(NSNumber *userId, ACCOUNTENTERTYPE type) {
138   - //成功回调,切换成功,需要研发注销处理,然后重新调用登录接口,只有返回的是新的第三方账号对应的userID
139   - self.resultLabel.text = [NSString stringWithFormat:@"userId: %@, accountType: %ld", userId, (long)type];
140   - } failCallBack:^{
141   - //失败回调,切换失败
142   - NSLog(@"bind fail");
143   - }];
144   -
145   -### 12、切换系统账号
  130 +### 11、切换系统账号
146 131 需要提供按钮切换系统账号,点击事件调用下面方法。
147 132 需要用户自己去往Game Center切换账号,之后再次登陆游戏才能实现账号切换。
148 133 工程中添加SDK切换系统账号代码:
... ... @@ -2,9 +2,9 @@
2 2  
3 3  
4 4 接入手册
5   -登陆sdk:GumpLoginSDK.framework v1.0.8
6   -支付sdk: GameSDK.framework v4.0.6
7   -2019年3月15日
  5 +登陆sdk:GumpLoginSDK.framework v1.0.11
  6 +支付sdk: GameSDK.framework v4.0.7
  7 +2019年5月31日
8 8  
9 9 ## 概述
10 10 #### 本SDK提供Game Center登陆 和 游客登陆两种账号登录,iap支付和第三方支付两种支付功能,活动SDK(大转盘等)。
... ... @@ -114,35 +114,20 @@ MobileCoreServices.framework、SystemConfiguration.framework、libz.dylib、CFNe
114 114 NSLog(@"activity finish!");
115 115 }];
116 116  
117   -### 10、绑定账号
  117 +### 10、账号联动
118 118 需要提供按钮绑定,点击事件调用下面方法。
119   -工程中需要添加SDK 绑定fb账号的代码:
  119 +此功能涉及账号的绑定和切换,回调只有在切换成功之后才会出现,其他情况的回调都是失败的回调。
  120 +工程中添加SDK账号联动代码:
120 121  
121   - NSMutableDictionary *bindParaDic = [NSMutableDictionary dictionary];
122   - [bindParaDic setObject:@"100" forKey:@"appId"];
123   - [bindParaDic setObject:self.userId forKey:@"userId"];
124   - [[GPGameLoginSDK instance] GPGameBingWithViewController:self InfoDic:bindParaDic succCallBack:^(NSNumber *userId, ACCOUNTENTERTYPE type) {
125   - //仅是绑定成功,并无切换账号的要求
  122 + NSMutableDictionary *linkParaDic = [NSMutableDictionary dictionary];
  123 + [linkParaDic setObject:@"10022" forKey:@"appId"];
  124 + [linkParaDic setObject:self.userId forKey:@"userId"];
  125 + //仅在切换账号成功的时候有返回值
  126 + [[GPGameLoginSDK instance] GPGameAccountLinkViewController:self InfoDic:linkParaDic callBack:^(NSNumber *userId, ACCOUNTENTERTYPE type) {
126 127 self.resultLabel.text = [NSString stringWithFormat:@"userId: %@, accountType: %ld", userId, (long)type];
127   - } failCallBack:^{
128   - NSLog(@"bind fail");
129 128 }];
130   -### 11、切换fb账号
131   -需要提供按钮切换fb账号,点击事件调用下面方法。
132   -工程中添加SDK切换第三方账号代码:
133 129  
134   - NSMutableDictionary *bindParaDic = [NSMutableDictionary dictionary];
135   - [bindParaDic setObject:@"100" forKey:@"appId"];
136   - [bindParaDic setObject:self.userId forKey:@"userId"];
137   - [[GPGameLoginSDK instance] GPGameSwitchWithViewController:self InfoDic:bindParaDic succCallBack:^(NSNumber *userId, ACCOUNTENTERTYPE type) {
138   - //成功回调,切换成功,需要研发注销处理,然后重新调用登录接口,只有返回的是新的第三方账号对应的userID
139   - self.resultLabel.text = [NSString stringWithFormat:@"userId: %@, accountType: %ld", userId, (long)type];
140   - } failCallBack:^{
141   - //失败回调,切换失败
142   - NSLog(@"bind fail");
143   - }];
144   -
145   -### 12、切换系统账号
  130 +### 11、切换系统账号
146 131 需要提供按钮切换系统账号,点击事件调用下面方法。
147 132 需要用户自己去往Game Center切换账号,之后再次登陆游戏才能实现账号切换。
148 133 工程中添加SDK切换系统账号代码:
ios/GameSDK.framework/Versions/A/GameSDK
No preview for this file type
ios/GameSDK.framework/Versions/A/Headers/LetsGameAPI.h
... ... @@ -4,7 +4,7 @@
4 4 //默认横屏
5 5 static BOOL DeviceOrientationIsHorizontal = YES;
6 6  
7   -static NSString *pVersion = @"4.0.6";
  7 +static NSString *pVersion = @"4.0.7";
8 8  
9 9 @interface LetsGameAPI : NSObject<UIApplicationDelegate>
10 10  
No preview for this file type
ios/GameSDKDemo/GameSDKDemo.xcodeproj/project.pbxproj
... ... @@ -248,8 +248,8 @@
248 248 LastUpgradeCheck = 0710;
249 249 TargetAttributes = {
250 250 9934F1AD19303DC6005EF4AB = {
251   - DevelopmentTeam = NA5R6CY7V3;
252   - ProvisioningStyle = Automatic;
  251 + DevelopmentTeam = T65VA5M82Q;
  252 + ProvisioningStyle = Manual;
253 253 SystemCapabilities = {
254 254 com.apple.BackgroundModes = {
255 255 enabled = 0;
... ... @@ -272,6 +272,7 @@
272 272 developmentRegion = English;
273 273 hasScannedForEncodings = 0;
274 274 knownRegions = (
  275 + English,
275 276 en,
276 277 );
277 278 mainGroup = 9934F1A519303DC6005EF4AB;
... ... @@ -431,8 +432,8 @@
431 432 ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
432 433 CODE_SIGN_IDENTITY = "iPhone Developer";
433 434 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
434   - CODE_SIGN_STYLE = Automatic;
435   - DEVELOPMENT_TEAM = NA5R6CY7V3;
  435 + CODE_SIGN_STYLE = Manual;
  436 + DEVELOPMENT_TEAM = T65VA5M82Q;
436 437 ENABLE_BITCODE = NO;
437 438 FRAMEWORK_SEARCH_PATHS = (
438 439 "$(PROJECT_DIR)/../**",
... ... @@ -453,10 +454,10 @@
453 454 ONLY_ACTIVE_ARCH = NO;
454 455 OTHER_LDFLAGS = "-ObjC";
455 456 PRIVATE_HEADERS_FOLDER_PATH = "";
456   - PRODUCT_BUNDLE_IDENTIFIER = com.game.GumpSDK;
  457 + PRODUCT_BUNDLE_IDENTIFIER = com.deepwireless.crabcrab;
457 458 PRODUCT_NAME = GameSDKDemo;
458 459 PROVISIONING_PROFILE = "";
459   - PROVISIONING_PROFILE_SPECIFIER = "";
  460 + PROVISIONING_PROFILE_SPECIFIER = comdeepwirelesscrabcrabDev;
460 461 PUBLIC_HEADERS_FOLDER_PATH = "";
461 462 WRAPPER_EXTENSION = app;
462 463 };
... ... @@ -469,10 +470,10 @@
469 470 ALWAYS_SEARCH_USER_PATHS = YES;
470 471 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
471 472 ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
472   - CODE_SIGN_IDENTITY = "iPhone Developer";
  473 + CODE_SIGN_IDENTITY = "iPhone Distribution";
473 474 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
474   - CODE_SIGN_STYLE = Automatic;
475   - DEVELOPMENT_TEAM = NA5R6CY7V3;
  475 + CODE_SIGN_STYLE = Manual;
  476 + DEVELOPMENT_TEAM = T65VA5M82Q;
476 477 ENABLE_BITCODE = NO;
477 478 FRAMEWORK_SEARCH_PATHS = (
478 479 "$(PROJECT_DIR)/../**",
... ... @@ -493,10 +494,10 @@
493 494 ONLY_ACTIVE_ARCH = NO;
494 495 OTHER_LDFLAGS = "-ObjC";
495 496 PRIVATE_HEADERS_FOLDER_PATH = "";
496   - PRODUCT_BUNDLE_IDENTIFIER = com.game.GumpSDK;
  497 + PRODUCT_BUNDLE_IDENTIFIER = com.deepwireless.crabcrab;
497 498 PRODUCT_NAME = GameSDKDemo;
498 499 PROVISIONING_PROFILE = "";
499   - PROVISIONING_PROFILE_SPECIFIER = "";
  500 + PROVISIONING_PROFILE_SPECIFIER = comdeepwirelesscrabcrabDis;
500 501 PUBLIC_HEADERS_FOLDER_PATH = "";
501 502 WRAPPER_EXTENSION = app;
502 503 };
ios/GameSDKDemo/GameSDKDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
... ... @@ -0,0 +1,8 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>IDEDidComputeMac32BitWarning</key>
  6 + <true/>
  7 +</dict>
  8 +</plist>
ios/GameSDKDemo/GameSDKDemo.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
... ... @@ -0,0 +1,8 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>BuildSystemType</key>
  6 + <string>Original</string>
  7 +</dict>
  8 +</plist>
ios/GameSDKDemo/GameSDKDemo.xcodeproj/project.xcworkspace/xcuserdata/yanglele.xcuserdatad/UserInterfaceState.xcuserstate
No preview for this file type
ios/GameSDKDemo/GameSDKDemo.xcodeproj/project.xcworkspace/xcuserdata/yanglele.xcuserdatad/WorkspaceSettings.xcsettings
... ... @@ -0,0 +1,18 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>BuildLocationStyle</key>
  6 + <string>UseAppPreferences</string>
  7 + <key>CustomBuildLocationType</key>
  8 + <string>RelativeToDerivedData</string>
  9 + <key>DerivedDataLocationStyle</key>
  10 + <string>Default</string>
  11 + <key>EnabledFullIndexStoreVisibility</key>
  12 + <false/>
  13 + <key>IssueFilterStyle</key>
  14 + <string>ShowActiveSchemeOnly</string>
  15 + <key>LiveSourceIssuesEnabled</key>
  16 + <true/>
  17 +</dict>
  18 +</plist>
ios/GameSDKDemo/letsgameDemo/LSGMainViewController.m
... ... @@ -12,7 +12,6 @@
12 12 #import "GPGameLoginSDK.h"
13 13  
14 14  
15   -
16 15 @interface LSGMainViewController ()
17 16  
18 17 @property (nonatomic, strong) UILabel *resultLabel;
... ... @@ -76,21 +75,22 @@
76 75 [activityBtn addTarget:self action:@selector(onActivity) forControlEvents:UIControlEventTouchUpInside];
77 76 [self.view addSubview:activityBtn];
78 77  
79   - UIButton *bindBtn = [[UIButton alloc] initWithFrame:CGRectMake(300, 40, 100, 30)];
80   - bindBtn.backgroundColor = [UIColor orangeColor];
81   - [bindBtn setTitle:@"Bind" forState:UIControlStateNormal];
82   - [bindBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
83   - bindBtn.titleLabel.font = [UIFont systemFontOfSize:15];
84   - [bindBtn addTarget:self action:@selector(bindBtnClick) forControlEvents:UIControlEventTouchUpInside];
85   - [self.view addSubview:bindBtn];
  78 + UIButton *cleanUserInfoBtn = [[UIButton alloc] initWithFrame:CGRectMake(300, 40, 100, 30)];
  79 + cleanUserInfoBtn.backgroundColor = [UIColor orangeColor];
  80 + [cleanUserInfoBtn setTitle:@"cleanUserInfo" forState:UIControlStateNormal];
  81 + [cleanUserInfoBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  82 + cleanUserInfoBtn.titleLabel.font = [UIFont systemFontOfSize:15];
  83 + [cleanUserInfoBtn addTarget:self action:@selector(cleanUserInfoClick) forControlEvents:UIControlEventTouchUpInside];
  84 + [self.view addSubview:cleanUserInfoBtn];
86 85  
87   - UIButton *switchBtn = [[UIButton alloc] initWithFrame:CGRectMake(300, 100, 100, 30)];
88   - switchBtn.backgroundColor = [UIColor orangeColor];
89   - [switchBtn setTitle:@"switch" forState:UIControlStateNormal];
90   - [switchBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
91   - switchBtn.titleLabel.font = [UIFont systemFontOfSize:15];
92   - [switchBtn addTarget:self action:@selector(switchBtnClick) forControlEvents:UIControlEventTouchUpInside];
93   - [self.view addSubview:switchBtn];
  86 + UIButton *linkBtn = [[UIButton alloc] initWithFrame:CGRectMake(300, 100, 100, 30)];
  87 + linkBtn.backgroundColor = [UIColor orangeColor];
  88 + [linkBtn setTitle:@"link" forState:UIControlStateNormal];
  89 + [linkBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  90 + linkBtn.titleLabel.font = [UIFont systemFontOfSize:15];
  91 + [linkBtn addTarget:self action:@selector(linkBtnClick) forControlEvents:UIControlEventTouchUpInside];
  92 + [self.view addSubview:linkBtn];
  93 +
94 94  
95 95 UIButton *switchSysBtn = [[UIButton alloc] initWithFrame:CGRectMake(300, 160, 100, 30)];
96 96 switchSysBtn.backgroundColor = [UIColor orangeColor];
... ... @@ -125,7 +125,7 @@
125 125  
126 126  
127 127 - (void)onClickTest {
128   - [[GPGameLoginSDK instance] GPGameLoginWithViewController:self appID:@"100" channelId:@"1000"];
  128 + [[GPGameLoginSDK instance] GPGameLoginWithViewController:self appID:@"10022" channelId:@"1000"];
129 129 [GPGameLoginSDK instance].succBlock = ^(NSNumber *userId, ACCOUNTENTERTYPE type) {
130 130 self.resultLabel.text = [NSString stringWithFormat:@"userId: %@, accountType: %ld", userId, (long)type];
131 131 self.userId = userId;
... ... @@ -137,6 +137,7 @@
137 137  
138 138  
139 139 -(void)onPayTest{
  140 +
140 141 [LetsGameAPI instance].appId = @"100";//@"10056";//10022
141 142 NSMutableDictionary *payInfo = [NSMutableDictionary dictionary];
142 143 [payInfo setValue:@"100" forKey:@"serverId"];
... ... @@ -190,25 +191,13 @@
190 191 }];
191 192 }
192 193  
193   --(void)bindBtnClick{
194   - NSMutableDictionary *bindParaDic = [NSMutableDictionary dictionary];
195   - [bindParaDic setObject:@"100" forKey:@"appId"];
196   - [bindParaDic setObject:self.userId forKey:@"userId"];
197   - [[GPGameLoginSDK instance] GPGameBingWithViewController:self InfoDic:bindParaDic succCallBack:^(NSNumber *userId, ACCOUNTENTERTYPE type) {
  194 +-(void)linkBtnClick{
  195 + NSMutableDictionary *linkParaDic = [NSMutableDictionary dictionary];
  196 + [linkParaDic setObject:@"10022" forKey:@"appId"];
  197 + [linkParaDic setObject:self.userId forKey:@"userId"];
  198 + //仅在切换账号成功的时候有返回值
  199 + [[GPGameLoginSDK instance] GPGameAccountLinkViewController:self InfoDic:linkParaDic callBack:^(NSNumber *userId, ACCOUNTENTERTYPE type) {
198 200 self.resultLabel.text = [NSString stringWithFormat:@"userId: %@, accountType: %ld", userId, (long)type];
199   - } failCallBack:^{
200   - NSLog(@"bind fail");
201   - }];
202   -
203   -}
204   --(void)switchBtnClick{
205   - NSMutableDictionary *bindParaDic = [NSMutableDictionary dictionary];
206   - [bindParaDic setObject:@"100" forKey:@"appId"];
207   - [bindParaDic setObject:self.userId forKey:@"userId"];
208   - [[GPGameLoginSDK instance] GPGameSwitchWithViewController:self InfoDic:bindParaDic succCallBack:^(NSNumber *userId, ACCOUNTENTERTYPE type) {
209   - self.resultLabel.text = [NSString stringWithFormat:@"userId: %@, accountType: %ld", userId, (long)type];
210   - } failCallBack:^{
211   - NSLog(@"bind fail");
212 201 }];
213 202 }
214 203  
... ... @@ -228,4 +217,8 @@
228 217 }];
229 218 }
230 219  
  220 +-(void)cleanUserInfoClick{
  221 + [[GPGameLoginSDK instance] cleanUserInfo];
  222 +}
  223 +
231 224 @end
ios/GameSDKResources.bundle/en.strings
... ... @@ -3,3 +3,4 @@
3 3 "account_change_certain" = "Switch";
4 4 "account_switch_warn" = "Please click settings--Game Center--open Game Center, then restart the game.";
5 5 "account_change_certain" = "Confirm";
  6 +"uncomplete_transaction" = "Please complete the unpaid transaction first.";
ios/GameSDKResources.bundle/images/logClose@2x.png

507 Bytes

ios/GameSDKResources.bundle/th.strings
... ... @@ -3,3 +3,4 @@
3 3 "account_change_certain" = "ตกลง";
4 4 "account_switch_warn" = "กรุณาเข้าสู่การตั้งค่า --Game Center--เปิด Game Center จากนั้นให้เข้าสู่เกมอีกรอบ.";
5 5 "account_change_certain" = "ยืนยัน";
  6 +"uncomplete_transaction" = "คุณมีคำสั่งซื้อที่ค้างชำระโปรดชำระเงินให้เสร็จก่อน";
ios/GameSDKResources.bundle/zh-Hans.strings
... ... @@ -3,3 +3,4 @@
3 3 "account_change_certain" = "切换";
4 4 "account_switch_warn" = "请进入设置--Game Center--打开Game Center,然后重新进入游戏";
5 5 "account_change_certain" = "确定";
  6 +"uncomplete_transaction" = "您有未支付的订单,请先完成支付";
ios/GameSDKResources.bundle/zh-Hant.strings
... ... @@ -3,3 +3,4 @@
3 3 "account_change_certain" = "切換";
4 4 "account_switch_warn" = "請進入設置--Game Center--打开Game Center,然后重新进入游戏";
5 5 "account_change_certain" = "确定";
  6 +"uncomplete_transaction" = "您有未支付的訂單,請先完成支付";
ios/GumpLoginSDK.framework/Versions/A/GumpLoginSDK
No preview for this file type
ios/GumpLoginSDK.framework/Versions/A/Headers/GPGameLoginSDK.h
... ... @@ -18,7 +18,7 @@ typedef enum:NSInteger{
18 18 typedef void(^GPGameLoginSuccessBlock)(NSNumber *userId, ACCOUNTENTERTYPE type);
19 19 typedef void(^GPGameLoginFailureBlock)(void);
20 20  
21   -static NSString *version = @"1.0.8";
  21 +static NSString *version = @"1.0.11";
22 22 @interface GPGameLoginSDK : NSObject
23 23  
24 24 @property(nonatomic, copy) GPGameLoginSuccessBlock succBlock;
... ... @@ -32,11 +32,11 @@ static NSString *version = @&quot;1.0.8&quot;;
32 32  
33 33 //游客登录和系统账号登录
34 34 -(void)GPGameLoginWithViewController:(UIViewController *)VC appID:(NSString *)appID channelId:(NSString *)channelId;
35   -//绑定接口
36   --(void)GPGameBingWithViewController:(UIViewController *)vc InfoDic:(NSDictionary *)InfoDic succCallBack:(void (^)(NSNumber *userId, ACCOUNTENTERTYPE type))succCallBack failCallBack:(void (^)())failCallBack;
37   -//切换接口
38   --(void)GPGameSwitchWithViewController:(UIViewController *)vc InfoDic:(NSDictionary *)InfoDic succCallBack:(void (^)(NSNumber *userId, ACCOUNTENTERTYPE type))succCallBack failCallBack:(void (^)())failCallBack;
  35 +//账号联动
  36 +-(void)GPGameAccountLinkViewController:(UIViewController *)vc InfoDic:(NSDictionary *)InfoDic callBack:(void (^)(NSNumber *userId, ACCOUNTENTERTYPE type))callBack;
39 37 //切换系统账号
40 38 -(void)GPSwitchGameCenterWithViewController:(UIViewController *)vc switchCallBack:(void (^)())switchCallBack;
41 39  
  40 +-(void)cleanUserInfo;
  41 +
42 42 @end