QsdkMgr.mm 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. #import <Foundation/Foundation.h>
  2. #import <SPSDK/SPSDK.h>
  3. void SendMsgToUnity(NSString* messageName,messageName* parameters)
  4. {
  5. if (!UnityListenerGoName) {
  6. NSLog(@"U3D not set listener");
  7. return;
  8. }
  9. if ([parameters isKindOfClass:NSString.class] && [parameters length]) {
  10. UnitySendMessage([UnityListenerGoName UTF8String], [messageName UTF8String], [parameters UTF8String]);
  11. }
  12. else{
  13. UnitySendMessage([UnityListenerGoName UTF8String], [messageName UTF8String], "");
  14. }
  15. }
  16. NSString* QsdkCreateNSString (const char* string)
  17. {
  18. if (string)
  19. return [NSString stringWithUTF8String: string];
  20. else
  21. return [NSString stringWithUTF8String: ""];
  22. }
  23. //=============================回调函数=============================================
  24. //=============================回调函数=============================================
  25. //=============================回调函数=============================================
  26. //
  27. void SDK_observer_CallBack(SPSDKEvent event, NSDictionary *data)
  28. {
  29. switch(event)
  30. {
  31. case SPSDKEventLogout:
  32. {
  33. //
  34. NSLog(@"退出登录成功");
  35. SendMsgToUnity(@"onLogoutSuccess",@"");
  36. }
  37. break;
  38. default:
  39. break;
  40. }
  41. }
  42. void SDK_Init_Callback(BOOL success, id data)
  43. {
  44. if(success)
  45. {
  46. SendMsgToUnity(@"onInitSuccess",@"Init:Init Success");
  47. }
  48. else
  49. {
  50. SendMsgToUnity(@"onInitSuccess",@"Fail");
  51. }
  52. }
  53. void SDK_Logout_Callback(BOOL success, id data)
  54. {
  55. }
  56. void SDK_Login_Callback(BOOL success, SPUserData *data)
  57. {
  58. if (success)
  59. {
  60. //[self log:[NSString stringWithFormat:@"登录成功:%@",data.username]];
  61. int code = 0;
  62. SendMsgToUnity(@"onLoginSuccess",[NSString stringWithFormat:@"%d[]%@[]%@[]%@[]%@",code,"success", data.token, data.username, data.timestamp]);
  63. }else
  64. {
  65. //[self log:[NSString stringWithFormat:@"登录失败❌:%@",data]];
  66. SendMsgToUnity(@"onLoginFail",[NSString stringWithFormat:@"登录失败:%@",data]);
  67. }
  68. }
  69. void SDK_Pay_Callback(BOOL success, id data)
  70. {
  71. if(success)
  72. {
  73. SendMsgToUnity(@"onPaySuccess",@"支付Suc");
  74. }
  75. else
  76. {
  77. SendMsgToUnity(@"onPayFail",@"");
  78. }
  79. }
  80. void SDK_UpdateRoleInfo_Callback(BOOL success, id data)
  81. {
  82. }
  83. //=============================回调函数=============================================
  84. //=============================回调函数=============================================
  85. extern "C"
  86. {
  87. static NSString* UnityListenerGoName;
  88. void QSDK_SetListener(const char *gameObjectName){
  89. UnityListenerGoName = QsdkCreateNSString(gameObjectName);
  90. }
  91. void QSDK_Init() {
  92. //SendMsgToUnity(@"onInitSuccess",@"Init:Init Success");
  93. //SendMsgToUnity(@"onInitSuccess",@"Fail");
  94. //SDK初始化 code: 0:成功, 1:失败
  95. NSDictionary *game = @{
  96. // @"timestamp":@"XXXX",///设置此值来切换线上域名
  97. // @"tempDomain":@"",///设置此值来切换线上域名
  98. @"gameId":@"7",///替换为实际游戏id
  99. };
  100. [SPSDK.instance registerGame:game callback:SDK_Init_Callback];
  101. SPSDK.instance.observer = SDK_observer_CallBack;
  102. }
  103. void QSDK_login()
  104. {
  105. //使用SDK登录界面登录
  106. [SPSDK.instance login:SDK_Login_Callback]
  107. }
  108. void QSDK_Pay(const char *productId,const char *productName,const char * amount,const char *orderNo,
  109. const char *callBackUrl,const char *extrasParams,
  110. const char * gameName,const char * serverName,
  111. const char* productDesc,
  112. const char* serverID,const char* accountID,const char* roleID,const char* roleLv) {
  113. //支付
  114. SPProductData *product = [SPProductData new];
  115. product.productId = QsdkCreateNSString(productId);
  116. product.productName = QsdkCreateNSString(productName);
  117. product.amount =QsdkCreateNSString(amount);
  118. product.extra = QsdkCreateNSString(extrasParams);
  119. [SPSDK.instance pay:product callback:SDK_Pay_Callback];
  120. }
  121. void QSDK_logout() {
  122. //退出登录
  123. NSLog(@"U3D call SDK logout");
  124. [SPSDK.instance logout:SDK_Logout_Callback];
  125. }
  126. void QSDK_UpdateRoleInfo(int type,const char * roleName,const char * roleId,
  127. const char * roleLv, const char * serverName,
  128. const char * serverId,const char * extra)
  129. {
  130. SPSDKReportType RType = SPSDKReportTypeOnlinePeriod;
  131. if(type == 0)
  132. {
  133. RType = SPSDKReportTypeCreateRole;
  134. }
  135. else if(type == 1)
  136. {
  137. RType = SPSDKReportTypeEnterGame;
  138. }
  139. else
  140. {
  141. return;
  142. }
  143. SPRoleData *roleData = [SPRoleData new];
  144. roleData.roleName =QsdkCreateNSString(roleName);
  145. roleData.roleLevel = QsdkCreateNSString(roleLv);
  146. roleData.roleId = QsdkCreateNSString(roleId);
  147. roleData.serverId = QsdkCreateNSString(serverID);
  148. roleData.serverName = QsdkCreateNSString(serverName);
  149. [SPSDK.instance reportRole:roleData type:RType callback:SDK_UpdateRoleInfo_Callback];
  150. }
  151. }