uc sdk 对接封装_objctive-c++(三)

2014-11-24 08:09:02 · 作者: · 浏览: 2
alue: sid forKey:@"sid"];
[resultDict setValue: [NSNumber numberWithInt : resultCode] forKey:@"resultCode"];
[resultDict setValue:@"OK" forKey:@"resultMsg"];
return resultDict;
}
- (void)buy:(product_t*)info
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onPayFin:) name:UCG_SDK_MSG_PAY_FIN object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(payExit:) name:UCG_SDK_MSG_PAY_EXIT object:nil];
char order[200];
sprintf(order, "serverip=sgmx#channel=%d#user=%s",info->_id,info->_name);
NSString* customInfo = [NSString stringWithUTF8String:order];
NSString* roleId = [NSString stringWithFormat:@"%d",info->_roleid];
NSString* roleName = [NSString stringWithUTF8String:info->_rolename];
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES],@"allowContinuousPay",
customInfo , @"customInfo", roleId,@"roleId",
roleName, @"roleName",nil];
[[UCGameSdk defaultSDK] payWithPaymentInfo:dict];
}
- (void) onPayFin: (NSNotification *) notification
{
NSDictionary *res = notification.userInfo;
NSNumber *code = (NSNumber *)[res objectForKey:@"code"];
if (code.intValue == 0){
if(NULL != call_backs[Buy_success] )
call_backs[Buy_success](NULL);
}else{
if(NULL != call_backs[Buy_fail] )
call_backs[Buy_fail](NULL);
}
}
- (void)payExit: (NSNotification *) notification{
}
@end
void* cppChargeManager_uc::_rootView = NULL;
static UCViewController * uc_view = NULL;
cppChargeManager_uc::cppChargeManager_uc(){
uc_view = [[UCViewController alloc] init];
}
cppChargeManager_uc::~cppChargeManager_uc(){
[uc_view dealloc];
uc_view = NULL;
}
cppChargeManager_uc* cppChargeManager_uc::getInstance(void){
static cppChargeManager_uc _only;
return &_only;
}
void cppChargeManager_uc::init(void* addr){
_rootView = (UCViewController*)addr;
}
void cppChargeManager_uc::login(charge_cb suc, charge_cb fail, charge_cb cancel){
call_backs[Login_success] = suc;
call_backs[Login_fail] = fail;
call_backs[Login_cancel] = cancel;
UIViewController* root = (UIViewController*)_rootView;
[root addSubview:uc_view.view];
}
void cppChargeManager_uc::buy(product_t* info, charge_cb suc, charge_cb fail, charge_cb cancel)
{
call_backs[Buy_success] = suc;
call_backs[Buy_fail] = fail;
call_backs[Buy_cancel] = cancel;
[uc_view buy:info];
}
void cppChargeManager_uc::setConnectFunc(charge_cb sd, charge_cb rec)
{
call_backs[Connect_send] = sd;
call_backs[Connect_receive] = rec;
}
const char* cppChargeManager_uc::getUserName(void)
{
return game_user;
}
const char* cppChargeManager_uc::getUserPasswd(void)
{
return game_passwd;
}
const char* cppChargeManager_uc::getSid(){
return [[[UCGameSdk defaultSDK] sid] UTF8String];
}
对上面的一个代理可能有些人不知道用,或是要分些时间去研究,在这不如我直接就给出来,
UseStaticLibraryUc.Isrance().setConnectFunc(new Mon