359 lines
11 KiB
Plaintext
359 lines
11 KiB
Plaintext
|
|
#import "SDK.h"
|
|||
|
|
#import <JySDK/JySDKManager.h>
|
|||
|
|
|
|||
|
|
extern UIViewController *UnityGetGLViewController();
|
|||
|
|
|
|||
|
|
//NSString转char*
|
|||
|
|
#define MakeStringCopy( _x_ ) ( _x_ != NULL && [_x_ isKindOfClass:[NSString class]] ) ? strdup( [_x_ UTF8String] ) : NULL
|
|||
|
|
//日志打印
|
|||
|
|
#define DLOG(...) NSLog(__VA_ARGS__);
|
|||
|
|
|
|||
|
|
extern "C"{
|
|||
|
|
void m_SDK_Init(){
|
|||
|
|
[[SDK Instance] Init];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void m_SDK_Login(){
|
|||
|
|
[[SDK Instance] Login];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void m_SDK_Logout(){
|
|||
|
|
[[SDK Instance] Logout];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
bool m_SDK_IsSupportExit(){
|
|||
|
|
return [[SDK Instance] IsSupportExit];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void m_SDK_Exit(){
|
|||
|
|
[[SDK Instance] ExitGame];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void m_SDK_SubmitExtraData(int dataType,int serverId,char* serverName, char* zoneID, char* zoneName, char* roleID, char* roleName, char* roleLevel, char* guildlD, char* Vip, int moneyNum, char* roleCreateTime, char* roleLevelUpTime){
|
|||
|
|
[[SDK Instance] SubmitExtraData:dataType
|
|||
|
|
serverId:serverId
|
|||
|
|
serverName:[NSString stringWithUTF8String:serverName]
|
|||
|
|
zoneID:[NSString stringWithUTF8String:zoneID]
|
|||
|
|
zoneName:[NSString stringWithUTF8String:zoneName]
|
|||
|
|
roleID:[NSString stringWithUTF8String:roleID]
|
|||
|
|
roleName:[NSString stringWithUTF8String:roleName]
|
|||
|
|
roleLevel:[NSString stringWithUTF8String:roleLevel]
|
|||
|
|
guildlD:[NSString stringWithUTF8String:guildlD]
|
|||
|
|
Vip:[NSString stringWithUTF8String:Vip]
|
|||
|
|
moneyNum:moneyNum
|
|||
|
|
roleCreateTime:[NSString stringWithUTF8String:roleCreateTime]
|
|||
|
|
roleLevelUpTime:[NSString stringWithUTF8String:roleLevelUpTime]];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void m_SDK_Pay(char* rechargeId,int showType, int productId, char* productName, char* productDesc,char* price,char* currencyType,int ratio,int buyNum,int coinNum, char* zoneId, char* serverID, char* serverName, char* accounted, char* roleID, char* roleName,int roleLevel, char* Vip, char* guildlD, char* payNotifyUrl, char* extension, char* orderID){
|
|||
|
|
[[SDK Instance] Pay:[NSString stringWithUTF8String:rechargeId]
|
|||
|
|
showType:showType
|
|||
|
|
productId:productId
|
|||
|
|
productName:[NSString stringWithUTF8String:productName]
|
|||
|
|
productDesc:[NSString stringWithUTF8String:productDesc]
|
|||
|
|
price:[NSString stringWithUTF8String:price]
|
|||
|
|
currencyType:[NSString stringWithUTF8String:currencyType]
|
|||
|
|
ratio:ratio
|
|||
|
|
buyNum:buyNum
|
|||
|
|
coinNum:coinNum
|
|||
|
|
zoneId:[NSString stringWithUTF8String:zoneId]
|
|||
|
|
serverID:[NSString stringWithUTF8String:serverID]
|
|||
|
|
serverName:[NSString stringWithUTF8String:serverName]
|
|||
|
|
accounted:[NSString stringWithUTF8String:accounted]
|
|||
|
|
roleID:[NSString stringWithUTF8String:roleID]
|
|||
|
|
roleName:[NSString stringWithUTF8String:roleName]
|
|||
|
|
roleLevel:roleLevel
|
|||
|
|
Vip:[NSString stringWithUTF8String:Vip]
|
|||
|
|
guildlD:[NSString stringWithUTF8String:guildlD]
|
|||
|
|
payNotifyUrl:[NSString stringWithUTF8String:payNotifyUrl]
|
|||
|
|
extension:[NSString stringWithUTF8String:extension]
|
|||
|
|
orderID:[NSString stringWithUTF8String:orderID]];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void m_SDK_Bind(){
|
|||
|
|
[[SDK Instance] Bind];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void m_SDK_Community(){
|
|||
|
|
[[SDK Instance] Community];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void m_SDK_CustomerService(){
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void m_SDK_Relation(char* type){
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void m_SDK_Cancellation(){
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
bool m_SDK_IsCDKey(){
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void m_SDK_CDKey(char* cdkey, char* serverID, char* roleID){
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void m_SDK_LoginPanel_Btn1(){
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void m_SDK_LoginPanel_Btn2(){
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void m_SDK_CustomEvent(int type, char* param){
|
|||
|
|
[[SDK Instance] CustomEvent:type param:[NSString stringWithUTF8String:param]];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@implementation SDK
|
|||
|
|
|
|||
|
|
NSString* callUnityTargetGameObjectName = @"SDK.SDKManager";
|
|||
|
|
|
|||
|
|
static SDK * instance = nil;
|
|||
|
|
+(SDK*)Instance {
|
|||
|
|
if(instance == nil){
|
|||
|
|
instance =[[SDK alloc] init];
|
|||
|
|
}
|
|||
|
|
return instance;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-(void)Init{
|
|||
|
|
|
|||
|
|
[self callUnityFuncParam:@"InitCallback" param:@"1"];
|
|||
|
|
|
|||
|
|
//设置代理,监听用户退出事件
|
|||
|
|
// [JySDKManager defaultManager].acountDelegate = self;
|
|||
|
|
// 实现代理方法,监听用户退出和注册账号事件:
|
|||
|
|
// #pragma mark -- KAcountDelegate
|
|||
|
|
// - (void)userLogout:(NSDictionary *)resultDic
|
|||
|
|
// {
|
|||
|
|
// NSLog(@"用户从个人中心手动登出。\n%@",resultDic);
|
|||
|
|
// [self login:nil];
|
|||
|
|
// }
|
|||
|
|
// - (void)userRegister:(NSString *)uid
|
|||
|
|
// {
|
|||
|
|
// NSLog(@"注册账号:%@",uid);
|
|||
|
|
// };
|
|||
|
|
|
|||
|
|
|
|||
|
|
DLOG(@"Init");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-(void)Login{
|
|||
|
|
[JySDKManager login:^(NSDictionary *resultDic) {
|
|||
|
|
NSString *code = [resultDic objectForKey:@"code"];
|
|||
|
|
NSString *token = [JySDKManager userToken];
|
|||
|
|
switch (code.integerValue) {
|
|||
|
|
case kErrorNone:{
|
|||
|
|
|
|||
|
|
NSString *userid = [resultDic objectForKey:@"userId"];
|
|||
|
|
NSLog(@"登录成功:\n用户ID:%@,验证码:%@",userid,token);
|
|||
|
|
|
|||
|
|
if([JySDKManager isGuest]){
|
|||
|
|
NSLog(@"是游客登录");
|
|||
|
|
}else{
|
|||
|
|
NSLog(@"非游客登录");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//悬浮球
|
|||
|
|
[JySDKManager showFloatMenuBtnWithIsLeft:YES andWithCenterY:30];
|
|||
|
|
|
|||
|
|
NSString* rel = [NSString stringWithFormat:@"%@#%@#%@#%@",@"1",userid,@"",token];
|
|||
|
|
[self callUnityFuncParam:@"LoginCallback" param:rel];
|
|||
|
|
|
|||
|
|
if([JySDKManager isRealName]){
|
|||
|
|
|
|||
|
|
}else{
|
|||
|
|
NSLog(@"没有实名认证");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
default:
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}];
|
|||
|
|
|
|||
|
|
DLOG(@"Login");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-(void)SwitchLogin{
|
|||
|
|
DLOG(@"SwitchLogin");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-(void)Logout{
|
|||
|
|
[JySDKManager logout:^{
|
|||
|
|
|
|||
|
|
}];
|
|||
|
|
[self callUnityFuncParam:@"LogoutCallback" param:@"1"];
|
|||
|
|
DLOG(@"Logout");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-(bool)IsSupportExit{
|
|||
|
|
DLOG(@"IsSupportExit");
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-(void)ExitGame{
|
|||
|
|
DLOG(@"ExitGame");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-(void)SubmitExtraData:(int) dataType
|
|||
|
|
serverId :(int) serverId
|
|||
|
|
serverName :(NSString *) serverName
|
|||
|
|
zoneID :(NSString *) zoneID
|
|||
|
|
zoneName :(NSString *) zoneName
|
|||
|
|
roleID :(NSString *) roleID
|
|||
|
|
roleName :(NSString *) roleName
|
|||
|
|
roleLevel :(NSString *) roleLevel
|
|||
|
|
guildlD :(NSString *) guildlD
|
|||
|
|
Vip :(NSString *) Vip
|
|||
|
|
moneyNum :(int) moneyNum
|
|||
|
|
roleCreateTime :(NSString *) roleCreateTime
|
|||
|
|
roleLevelUpTime :(NSString *) roleLevelUpTime{
|
|||
|
|
|
|||
|
|
// 更新角色信息
|
|||
|
|
GameRole *role = [GameRole new];
|
|||
|
|
role.roleId = roleID; /// 必传
|
|||
|
|
role.role_name = roleName;
|
|||
|
|
role.serverId = [NSString stringWithFormat:@"%d",serverId];
|
|||
|
|
role.sv_name = serverName;
|
|||
|
|
role.role_level = roleLevel;
|
|||
|
|
role.vipLevel = Vip;
|
|||
|
|
[JySDKManager updateRoleInfo:role];
|
|||
|
|
// 获取用户年龄
|
|||
|
|
// NSString * age = JySDKManager.getCurrentUserAge;
|
|||
|
|
// NSLog(@"当前用户UID=%@,年龄=%@", JySDKManager.userId, age);
|
|||
|
|
DLOG(@"SubmitExtraData");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-(void)Pay:(NSString *) rechargeId
|
|||
|
|
showType :(int)showType
|
|||
|
|
productId :(int) productId
|
|||
|
|
productName :(NSString *) productName
|
|||
|
|
productDesc :(NSString *) productDesc
|
|||
|
|
price :(NSString *) price
|
|||
|
|
currencyType :(NSString *) currencyType
|
|||
|
|
ratio :(int) ratio
|
|||
|
|
buyNum :(int) buyNum
|
|||
|
|
coinNum :(int) coinNum
|
|||
|
|
zoneId :(NSString *) zoneId
|
|||
|
|
serverID :(NSString *) serverID
|
|||
|
|
serverName :(NSString *) serverName
|
|||
|
|
accounted :(NSString *) accounted
|
|||
|
|
roleID :(NSString *) roleID
|
|||
|
|
roleName :(NSString *) roleName
|
|||
|
|
roleLevel :(int) roleLevel
|
|||
|
|
Vip :(NSString *) Vip
|
|||
|
|
guildlD :(NSString *) guildlD
|
|||
|
|
payNotifyUrl :(NSString *) payNotifyUrl
|
|||
|
|
extension :(NSString *) extension
|
|||
|
|
orderID :(NSString *) orderID{
|
|||
|
|
|
|||
|
|
GoodParam *param = [GoodParam new];
|
|||
|
|
param.productId = rechargeId; ///商品id ,必填 // com.game.xianxiawu
|
|||
|
|
param.productName = productName;
|
|||
|
|
//param.productDesc = @"sixBaoshi";
|
|||
|
|
param.price = [price floatValue]; ///商品单价 必填
|
|||
|
|
param.orderNo = orderID; ///游戏方订单号 string[64] 必填、必须唯一 /// 注意: 接入QuickAd时、游戏订单号 必传 且 必须唯一 ///
|
|||
|
|
param.url = payNotifyUrl; ///回调通知地址 string[200] 可选 客户端配置优先; 可传nil
|
|||
|
|
param.extras = extension; ///透传参数 可选
|
|||
|
|
|
|||
|
|
[JySDKManager getGoodWithParam:param completion:^(NSDictionary *resultDic) {
|
|||
|
|
NSLog(@"%@",resultDic);
|
|||
|
|
NSString *code = [resultDic objectForKey:@"code"];
|
|||
|
|
NSString *msg = [resultDic objectForKey:@"message"];
|
|||
|
|
NSString *productId; //商品id
|
|||
|
|
NSData *receipt; //购买后的凭据
|
|||
|
|
NSString *tranactionId; //交易号
|
|||
|
|
switch (code.integerValue) {
|
|||
|
|
case KOrderSuccess:
|
|||
|
|
{
|
|||
|
|
NSLog(@"购买成功,订单号:%@",msg);
|
|||
|
|
//获取内购相关信息
|
|||
|
|
productId = [resultDic objectForKey:@"productIdentifier"]; //内购商品id
|
|||
|
|
receipt = [resultDic objectForKey:@"receipt"]; //内购交易凭据
|
|||
|
|
tranactionId = [resultDic objectForKey:@"transactionId"]; //内购交易id
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case KOrderFail:
|
|||
|
|
//充值失败
|
|||
|
|
break;
|
|||
|
|
case KOrderCancel:
|
|||
|
|
NSLog(@"失败原因:%@",msg);
|
|||
|
|
break;
|
|||
|
|
case KOrderUnkown:
|
|||
|
|
break;
|
|||
|
|
default:
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}];
|
|||
|
|
|
|||
|
|
|
|||
|
|
DLOG(@"Pay");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-(void)Bind{
|
|||
|
|
DLOG(@"Bind");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-(void)Community{
|
|||
|
|
[JySDKManager showUserCenter];
|
|||
|
|
DLOG(@"Community");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-(void)CustomerService{
|
|||
|
|
DLOG(@"CustomerService");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-(void)Relation:(NSString *) type{
|
|||
|
|
DLOG(@"Relation");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-(void)Cancellation{
|
|||
|
|
[JySDKManager deleteCurrentAccount];
|
|||
|
|
DLOG(@"Cancellation");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-(bool)IsCDKey{
|
|||
|
|
DLOG(@"IsCDKey");
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-(void)CDKey:(NSString *) cdkey
|
|||
|
|
serverID :(NSString *)serverID
|
|||
|
|
roleID :(NSString *)roleID{
|
|||
|
|
DLOG(@"CDKey");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-(void)LoginPanel_Btn1{
|
|||
|
|
DLOG(@"LoginPanel_Btn1");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-(void)LoginPanel_Btn2{
|
|||
|
|
DLOG(@"LoginPanel_Btn2");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
-(void)CustomEvent:(int) type
|
|||
|
|
param :(NSString *) param{
|
|||
|
|
DLOG(@"CustomEvent");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
//调用Unity方法
|
|||
|
|
-(void)callUnityFunc:(NSString*)funcName{
|
|||
|
|
UnitySendMessage(MakeStringCopy(callUnityTargetGameObjectName), MakeStringCopy(funcName), "");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//调用Unity方法
|
|||
|
|
-(void)callUnityFuncParam:(NSString*)funcName param:(NSString*)param{
|
|||
|
|
UnitySendMessage(MakeStringCopy(callUnityTargetGameObjectName), MakeStringCopy(funcName), MakeStringCopy(param));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@end
|