QsdkMgr.mm 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. #import <Foundation/Foundation.h>
  2. @import OEGFramework;
  3. // 1. OEGActionType:
  4. // typedef enum {
  5. // Register = 0,
  6. // LoginOEGID,
  7. // LoginFacebook,
  8. // LoginGoogle,
  9. // LoginApple,
  10. // Playnow,
  11. // Logout,
  12. // Profile,
  13. // ChangePassword,
  14. // ForgotPassword,
  15. // VerifyEmail,
  16. // VerifyPhone,
  17. // Close
  18. // }OEGActionType;
  19. void SDK_OEG_AccountCallback(OEGActionType type, id _Nullable response, BOOL success, NSError * _Nullable error)
  20. {
  21. if(error)
  22. {
  23. NSLog(@"SDK_OEG_AccountCallback error:%@",error);
  24. }
  25. else
  26. {
  27. if(type == OEGActionType.Logout)
  28. {
  29. if(success)
  30. {
  31. NSLog(@"退出登录成功");
  32. SendMsgToUnity(@"onLogoutSuccess",@"");
  33. }
  34. return;
  35. }
  36. if(success)
  37. {
  38. NSString status = response[@"status"];
  39. NSString token = response[@"token"];
  40. NSString uuid = response[@"uuid"];
  41. NSString message = response[@"message"];
  42. if(status == @"success")
  43. {
  44. int code = 0;
  45. SendMsgToUnity(@"onLoginSuccess",[NSString stringWithFormat:@"%d[]%@[]%@[]%@[]%@",code,message, token, uuid, "111"]);
  46. }
  47. else
  48. {
  49. SendMsgToUnity(@"onLoginFail",message);
  50. }
  51. }
  52. }
  53. }
  54. // typedef enum {
  55. // OEGPurchasing = 0,
  56. // OEGPurchased, // Purchased with Apple and verify server error
  57. // OEGRestored,
  58. // OEGFailed,
  59. // OEGRequestError, // Request Product ID error
  60. // OEGVerified // Purchased with Apple and verify server success
  61. // }OEGIAPStatus;
  62. void SDK_OEG_Pay_IAPCallback(OEGIAPStatus status, NSString *message, NSError * _Nullable error)
  63. {
  64. if(error)
  65. {
  66. NSLog(@"error:%@",error);
  67. }
  68. else
  69. {
  70. if(status == OEGIAPStatus.OEGVerified)
  71. {
  72. SendMsgToUnity(@"onPaySuccess",@"支付Suc");
  73. }
  74. else
  75. {
  76. SendMsgToUnity(@"onPayFail",@"");
  77. }
  78. }
  79. }
  80. extern "C"
  81. {
  82. static NSString* UnityListenerGoName;
  83. void QSDK_SetListener(const char *gameObjectName){
  84. UnityListenerGoName = QsdkCreateNSString(gameObjectName);
  85. }
  86. void SendMsgToUnity(NSString* messageName,messageName* parameters)
  87. {
  88. if (!UnityListenerGoName) {
  89. NSLog(@"U3D not set listener");
  90. return;
  91. }
  92. if ([parameters isKindOfClass:NSString.class] && [parameters length]) {
  93. UnitySendMessage([UnityListenerGoName UTF8String], [messageName UTF8String], [parameters UTF8String]);
  94. }
  95. else{
  96. UnitySendMessage([UnityListenerGoName UTF8String], [messageName UTF8String], "");
  97. }
  98. }
  99. NSString* QsdkCreateNSString (const char* string)
  100. {
  101. if (string)
  102. return [NSString stringWithUTF8String: string];
  103. else
  104. return [NSString stringWithUTF8String: ""];
  105. }
  106. void QSDK_Init() {
  107. SendMsgToUnity(@"onInitSuccess",@"Init:Init Success");
  108. //SendMsgToUnity(@"onInitSuccess",@"Fail");
  109. //SDK初始化 code: 0:成功, 1:失败
  110. }
  111. void QSDK_login() {
  112. //使用SDK登录界面登录
  113. [[OEGManager sharedManager] showLoginWithCallback : SDK_OEG_AccountCallback];
  114. }
  115. void QSDK_Pay(const char *productId,const char *productName,const char * amount,const char *orderNo,
  116. const char *callBackUrl,const char *extrasParams,
  117. const char * gameName,const char * serverName,
  118. const char* productDesc,
  119. const char* serverID,const char* accountID,const char* roleID,const char* roleLv) {
  120. //支付
  121. [[OEGManager sharedManager] inAppPurchaseWithServerID:QsdkCreateNSString(serverID)
  122. roleID:QsdkCreateNSString(roleID)
  123. levels:QsdkCreateNSString(roleLv)
  124. accountID:QsdkCreateNSString(accountID)
  125. productID:QsdkCreateNSString(productId)
  126. extInfo:QsdkCreateNSString(extrasParams)
  127. callback:SDK_OEG_Pay_IAPCallback];
  128. }
  129. void QSDK_logout() {
  130. //退出登录
  131. NSLog(@"U3D call SDK logout");
  132. [[OEGManager sharedManager] logout];
  133. }
  134. }