2024-12-21 10:04:04 +08:00
# include "StdAfx.h"
# include "DNBillingConnectionCH.h"
# include "DNUserRepository.h"
# include "DNManager.h"
# include "DNConnection.h"
# include "DNExtManager.h"
# include "DNSQLMembership.h"
# include "DNSQLWorld.h"
# include "DNSQLManager.h"
# include "Log.h"
# if defined(_CH) || defined(_EU)
CDNBillingConnectionCH * g_pBillingConnection = NULL ;
CDNBillingConnectionCH : : CDNBillingConnectionCH ( void )
{
m_bInitialize = FALSE ;
}
CDNBillingConnectionCH : : ~ CDNBillingConnectionCH ( void )
{
}
bool CDNBillingConnectionCH : : Init ( )
{
DN_ASSERT ( ! IsInitialize ( ) , " Already Opened! " ) ;
GSCallbackFuncDef CallbackFunc ;
: : memset ( & CallbackFunc , 0 , sizeof ( CallbackFunc ) ) ;
CallbackFunc . CallbackAccountAuthenRes = CallbackAccountAuthenRes ;
CallbackFunc . CallbackAccountLockRes = CallbackAccountLockRes ;
CallbackFunc . CallbackAccountUnlockRes = CallbackAccountUnlockRes ;
int nRetVal = GSInitialize ( & CallbackFunc , " ./Config/ClientConfig.ini " , 1 ) ;
if ( nRetVal )
return false ;
m_bInitialize = true ;
return true ;
}
void CDNBillingConnectionCH : : Final ( )
{
if ( m_bInitialize ) {
int nRetVal = Uninitialize ( 1 ) ;
if ( nRetVal )
return ;
}
m_bInitialize = false ;
}
int CDNBillingConnectionCH : : OnBalanceInquiry ( CDNUserRepository * pUser )
{
int nRet = pUser - > CheckSessID ( ) ;
if ( nRet ! = ERROR_NONE )
return nRet ;
nRet = SendCheckBalance ( pUser ) ;
if ( nRet ! = ERROR_NONE )
g_Log . Log ( LogType : : _ERROR , pUser , L " [CASH_BALANCEINQUIRY] CDNBillingConnectionCH::SendCheckBalance() - AccountName:%S Ret:%d \r \n " , pUser - > GetAccountName ( ) , nRet ) ;
return nRet ;
}
int CDNBillingConnectionCH : : OnBuy ( CDNUserRepository * pUser )
{
pUser - > SetOrderStep ( SNDAORDERSTEP_WORK ) ;
CDNBillingConnectionCH : : TGoodsInfo Goods [ MAX_GOOD_LEN ] = { 0 , } ;
int nCount = 0 ;
GetBuyGoodsInfo ( pUser - > GetBuyItemPart ( ) , Goods , nCount ) ;
int nRet = SendAccountLock ( pUser , Goods , nCount , false ) ;
if ( nRet ! = ERROR_NONE ) {
g_Log . Log ( LogType : : _ERROR , pUser , L " [SendBillingPurchase] Ret : %d \r \n " , nRet ) ;
return nRet ;
}
return ERROR_NONE ;
}
int CDNBillingConnectionCH : : OnPackageBuy ( CDNUserRepository * pUser )
{
CDNBillingConnectionCH : : TGoodsInfo Goods [ MAX_GOOD_LEN ] = { 0 , } ;
Goods [ 0 ] . nItemSN = pUser - > GetPackageSN ( ) ;
Goods [ 0 ] . nPrice = pUser - > m_nTotalPrice ;
int nRet = SendAccountLock ( pUser , Goods , 1 , false ) ;
if ( nRet ! = ERROR_NONE ) {
g_Log . Log ( LogType : : _ERROR , pUser , L " [SendBillingPackage] Ret : %d \r \n " , nRet ) ;
return nRet ;
}
return ERROR_NONE ;
}
int CDNBillingConnectionCH : : OnGift ( CDNUserRepository * pUser )
{
pUser - > SetOrderStep ( SNDAORDERSTEP_WORK ) ;
CDNBillingConnectionCH : : TGoodsInfo Goods [ MAX_GOOD_LEN ] = { 0 , } ;
int nCount = 0 ;
GetGiftGoodsInfo ( pUser - > GetGiftItemPart ( ) , Goods , nCount ) ;
int nRet = SendAccountLock ( pUser , Goods , nCount , true ) ;
if ( nRet ! = ERROR_NONE ) {
g_Log . Log ( LogType : : _ERROR , pUser , L " [SendBillingPurchaseGift] Ret : %d \r \n " , nRet ) ;
return nRet ;
}
return ERROR_NONE ;
}
int CDNBillingConnectionCH : : OnPackageGift ( CDNUserRepository * pUser )
{
CDNBillingConnectionCH : : TGoodsInfo Goods [ MAX_GOOD_LEN ] = { 0 , } ;
Goods [ 0 ] . nItemSN = pUser - > GetPackageSN ( ) ;
Goods [ 0 ] . nPrice = pUser - > m_nTotalPrice ;
int nRet = SendAccountLock ( pUser , Goods , 1 , true ) ;
if ( nRet ! = ERROR_NONE ) {
g_Log . Log ( LogType : : _ERROR , pUser , L " [SendBillingPackage] Ret : %d \r \n " , nRet ) ;
return nRet ;
}
return ERROR_NONE ;
}
int CDNBillingConnectionCH : : OnCoupon ( CDNUserRepository * pUser )
{
return ERROR_GENERIC_INVALIDREQUEST ;
}
int CDNBillingConnectionCH : : SendCheckBalance ( CDNUserRepository * pUser )
{
DN_ASSERT ( NULL ! = pUser , " Invalid! " ) ;
DN_ASSERT ( 0 ! = pUser - > GetAccountDBID ( ) , " Invalid! " ) ;
DN_ASSERT ( NULL ! = pUser - > GetSessId ( ) , " Invalid! " ) ; // P.S.> CDNUserRepository <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> Ǿ<EFBFBD> <C7BE> <EFBFBD> <20> <>
// P.S.> <20> <> <EFBFBD> <EFBFBD> <20> α ״<CEB1> ȣ <> <C8A3> <EFBFBD> ο <EFBFBD> <CEBF> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
int nRetVal = - 1 ;
GSBsipAccountAuthenReqDef Req ;
: : memset ( & Req , 0 , sizeof ( Req ) ) ;
Req . user_type = 1 ; // 1 : <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (<28> ⺻<EFBFBD> <E2BABB> )
Req . uid_type = 1 ; // 1 : PT ID (<28> <> <EFBFBD> <EFBFBD> ) / 2 : SNDA ID (<28> <> <EFBFBD> <EFBFBD> ) // <20> ߱<EFBFBD> <DFB1> <EFBFBD> SNDA ID <20> <> <EFBFBD> ڸ<EFBFBD> <20> <> <EFBFBD> ڿ<EFBFBD> <DABF> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> Ͽ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> PT ID <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ڸ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD>
_strcpy ( Req . user_id , _countof ( Req . user_id ) , pUser - > GetAccountName ( ) , ( int ) strlen ( pUser - > GetAccountName ( ) ) ) ;
_strcpy ( Req . sess_id , _countof ( Req . sess_id ) , pUser - > GetSessId ( ) , ( int ) strlen ( pUser - > GetSessId ( ) ) ) ;
nRetVal = GetNewId ( Req . order_id ) ;
if ( 0 > nRetVal ) {
return nRetVal ;
}
Req . serv_id_player = - 1 ; // <20> <> <EFBFBD> <EFBFBD> <20> <> ȣ , <20> <> <EFBFBD> <EFBFBD> Ʈ<EFBFBD> <C6AE> -1 <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <> Api<70> <69> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> bsipconfig.ini <20> κ<EFBFBD> <CEBA> <EFBFBD> ȹ<> <C8B9>
Req . area_id_player = - 1 ; // <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> ȣ , <20> <> <EFBFBD> <EFBFBD> Ʈ<EFBFBD> <C6AE> -1 <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <> Api<70> <69> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> bsipconfig.ini <20> κ<EFBFBD> <CEBA> <EFBFBD> ȹ<> <C8B9>
Req . group_id_player = - 1 ; // <20> <> <EFBFBD> <EFBFBD> <20> <EFBFBD> <20> <> ȣ , <20> <> <EFBFBD> <EFBFBD> Ʈ<EFBFBD> <C6AE> -1 <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <> Api<70> <69> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> bsipconfig.ini <20> κ<EFBFBD> <CEBA> <EFBFBD> ȹ<> <C8B9>
Req . endpoint_type = 1 ; // 1 : PC / 2 : <20> <EFBFBD> <DEB4> <EFBFBD>
_strcpy ( Req . endpoint_ip , _countof ( Req . endpoint_ip ) , pUser - > m_szIp , ( int ) strlen ( pUser - > m_szIp ) ) ;
Req . platform_type = 1 ; // 1 : PC / 2 : EZHOME
{
SYSTEMTIME aCurTime ;
: : GetLocalTime ( & aCurTime ) ;
sprintf_s ( Req . call_time , " %04d-%02d-%02d %02d:%02d:%02d " , aCurTime . wYear , aCurTime . wMonth , aCurTime . wDay , aCurTime . wHour , aCurTime . wMinute , aCurTime . wSecond ) ;
}
Req . indication_authen = 1 ; // 1 : <20> ⺻<EFBFBD> <E2BABB>
Req . pay_type = 0 ; // 0 ; <20> ⺻<EFBFBD> <E2BABB>
nRetVal = SendAccountAuthenRequest ( & Req ) ;
if ( nRetVal < 0 )
g_Log . Log ( LogType : : _ERROR , L " SendAccountAuthenRequest Ret:%d \r \n " , nRetVal ) ;
return ConvertResult ( nRetVal ) ;
}
int CDNBillingConnectionCH : : SendAccountLock ( CDNUserRepository * pUser , TGoodsInfo * GoodsList , int nGoodsCount , bool bGift )
{
if ( ! pUser ) return ERROR_GENERIC_INVALIDREQUEST ;
if ( ! GoodsList ) return ERROR_GENERIC_INVALIDREQUEST ;
if ( nGoodsCount < = 0 ) return ERROR_GENERIC_INVALIDREQUEST ;
int nRetVal = - 1 ;
GSBsipAccountLockReq Req ;
: : memset ( & Req , 0 , sizeof ( Req ) ) ;
Req . pay_type = 3 ; // 3 : <20> <> <EFBFBD> <EFBFBD> ij<> <C4B3>
Req . app_type = bGift ? 174 : 17 ; // 17 : <20> ⺻<EFBFBD> <E2BABB> , 174: <20> <> <EFBFBD> <EFBFBD>
Req . status = 2 ; // 2 : <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ¶<EFBFBD> <C2B6> <EFBFBD>
Req . couple_type = 2 ; // 2 : loose coupling, <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ڰ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> ִ<EFBFBD> ȭ<> <C8AD> Ÿ<EFBFBD> <C5B8> , <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <D7B6> <EFBFBD> <EFBFBD> 忡<EFBFBD> <E5BFA1> <20> <> Ʈ<EFBFBD> <C6AE>
Req . fee = 0 ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
Req . lock_period = 0 ; // 0 : <20> ⺻<EFBFBD> <E2BABB> , 20<32> <30>
Req . uid_type = 1 ; // 1 : PT ID (<28> <> <EFBFBD> <EFBFBD> ) / 2 : SNDA ID (<28> <> <EFBFBD> <EFBFBD> ) // <20> ߱<EFBFBD> <DFB1> <EFBFBD> SNDA ID <20> <> <EFBFBD> ڸ<EFBFBD> <20> <> <EFBFBD> ڿ<EFBFBD> <DABF> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> Ͽ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> PT ID <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ڸ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD>
_strcpy ( Req . user_id , _countof ( Req . user_id ) , pUser - > GetAccountName ( ) , ( int ) strlen ( pUser - > GetAccountName ( ) ) ) ;
_strcpy ( Req . sess_id , _countof ( Req . sess_id ) , pUser - > GetSessId ( ) , ( int ) strlen ( pUser - > GetSessId ( ) ) ) ;
Req . serv_id_player = - 1 ; // <20> <> <EFBFBD> <EFBFBD> <20> <> ȣ , <20> <> <EFBFBD> <EFBFBD> Ʈ<EFBFBD> <C6AE> -1 <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <> Api<70> <69> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> bsipconfig.ini <20> κ<EFBFBD> <CEBA> <EFBFBD> ȹ<> <C8B9>
Req . area_id_player = - 1 ; // <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> ȣ , <20> <> <EFBFBD> <EFBFBD> Ʈ<EFBFBD> <C6AE> -1 <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <> Api<70> <69> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> bsipconfig.ini <20> κ<EFBFBD> <CEBA> <EFBFBD> ȹ<> <C8B9>
Req . group_id_player = - 1 ; // <20> <> <EFBFBD> <EFBFBD> <20> <EFBFBD> <20> <> ȣ , <20> <> <EFBFBD> <EFBFBD> Ʈ<EFBFBD> <C6AE> -1 <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <> Api<70> <69> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> bsipconfig.ini <20> κ<EFBFBD> <CEBA> <EFBFBD> ȹ<> <C8B9>
Req . endpoint_type = 1 ; // 1 : PC / 2 : <20> <EFBFBD> <DEB4> <EFBFBD>
_strcpy ( Req . endpoint_ip , _countof ( Req . endpoint_ip ) , pUser - > m_szIp , ( int ) strlen ( pUser - > m_szIp ) ) ;
Req . platform_type = 1 ; // 1 : PC / 2 : EZHOME
{
SYSTEMTIME CurTime ;
: : GetLocalTime ( & CurTime ) ;
sprintf_s ( Req . call_time , " %04d-%02d-%02d %02d:%02d:%02d " , CurTime . wYear , CurTime . wMonth , CurTime . wDay , CurTime . wHour , CurTime . wMinute , CurTime . wSecond ) ;
}
Req . indication_lock = 1 ; // 1 : <20> ⺻<EFBFBD> <E2BABB> (1 : Lock account, 2 : Reduce account, 5 : Reduce account and get coupon num)
Req . item_num = nGoodsCount ; // ij<> <C4B3> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> û<EFBFBD> <C3BB> 1ȸ<31> <C8B8> <20> ִ<EFBFBD> MAX_GOOD_LEN <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
nRetVal = GetNewId ( Req . context_id ) ; // AccountLock / AccountUnlock <20> <> <20> <> <20> <> <EFBFBD> <EFBFBD> <20> Ǿ<EFBFBD> <C7BE> <EFBFBD> <20> <>
if ( 0 > nRetVal )
g_Log . Log ( LogType : : _ERROR , L " GetNewId Ret:%d \r \n " , nRetVal ) ;
pUser - > SetContextId ( Req . context_id ) ;
nRetVal = GetNewId ( Req . order_id ) ; // AccountLock / AccountUnlock <20> <> ȸ ȣ <> <C8A3> <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> Ǿ<EFBFBD> <C7BE> <EFBFBD> <20> <>
if ( 0 > nRetVal )
g_Log . Log ( LogType : : _ERROR , L " GetNewId Ret:%d \r \n " , nRetVal ) ;
for ( int i = 0 ; i < nGoodsCount ; i + + ) {
if ( GoodsList [ i ] . nItemSN < = 0 ) continue ;
Req . goods_info [ i ] . area_id_item = - 1 ; // -1 : <20> ⺻<EFBFBD> <E2BABB>
Req . goods_info [ i ] . serv_id_item = - 1 ; // -1 : <20> ⺻<EFBFBD> <E2BABB>
Req . goods_info [ i ] . group_id_item = - 1 ; // -1 : <20> ⺻<EFBFBD> <E2BABB>
Req . goods_info [ i ] . discount = 100 ; // 100 : <20> ⺻<EFBFBD> <E2BABB> (<28> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> )
Req . goods_info [ i ] . item_num = 1 ; // ij<> <C4B3> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> û<EFBFBD> <C3BB> 1ȸ<31> <C8B8> <20> <> <EFBFBD> <EFBFBD>
Req . goods_info [ i ] . item_id = GoodsList [ i ] . nItemSN ; // 1<> <31> ° ij<> <C4B3> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> CommodityID <20> <> (ItemID <20> ƴ<EFBFBD> BuyItem->BuyItem.CashItem.nItemID)
Req . goods_info [ i ] . item_amount = GoodsList [ i ] . nPrice ;
DN_ASSERT ( 0 < Req . goods_info [ i ] . item_amount , " Check! " ) ;
}
nRetVal = SendAccountLockRequest ( & Req ) ;
if ( nRetVal < 0 )
nRetVal = ConvertResult ( nRetVal ) ;
return nRetVal ;
}
int CDNBillingConnectionCH : : SendAccountUnlock ( CDNUserRepository * pUser , bool bConfirm , const char * pContextId , TGoodsInfo * GoodsList , int nGoodsCount , bool bGift )
{
DN_ASSERT ( NULL ! = pUser , " Invalid! " ) ;
DN_ASSERT ( NULL ! = pContextId , " Invalid! " ) ;
// P.S.> <20> <> <EFBFBD> <EFBFBD> <20> α ״<CEB1> ȣ <> <C8A3> <EFBFBD> ο <EFBFBD> <CEBF> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
int nRetVal = - 1 ;
GSBsipAccountUnlockReq Req ;
Req . pay_type = 3 ; // 3 : <20> <> <EFBFBD> <EFBFBD> ij<> <C4B3>
Req . app_type = bGift ? 174 : 17 ; // 17: <20> ⺻<EFBFBD> <E2BABB> 174: <20> <> <EFBFBD> <EFBFBD>
Req . status = 2 ; // 2 : <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ¶<EFBFBD> <C2B6> <EFBFBD>
Req . couple_type = 2 ; // 2 : loose coupling, <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ڰ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> ִ<EFBFBD> ȭ<> <C8AD> Ÿ<EFBFBD> <C5B8> , <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <D7B6> <EFBFBD> <EFBFBD> 忡<EFBFBD> <E5BFA1> <20> <> Ʈ<EFBFBD> <C6AE>
Req . responsable = 1 ; // 1 : <20> ⺻<EFBFBD> <E2BABB> (AccountUnlockRes <20> <> ȯ <20> <> <EFBFBD> <EFBFBD> )
Req . uid_type = 1 ; // 1 : PT ID (<28> <> <EFBFBD> <EFBFBD> ) / 2 : SNDA ID (<28> <> <EFBFBD> <EFBFBD> ) // <20> ߱<EFBFBD> <DFB1> <EFBFBD> SNDA ID <20> <> <EFBFBD> ڸ<EFBFBD> <20> <> <EFBFBD> ڿ<EFBFBD> <DABF> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> Ͽ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> PT ID <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ڸ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD>
_strcpy ( Req . user_id , _countof ( Req . user_id ) , pUser - > GetAccountName ( ) , ( int ) strlen ( pUser - > GetAccountName ( ) ) ) ;
_strcpy ( Req . sess_id , _countof ( Req . sess_id ) , pUser - > GetSessId ( ) , ( int ) strlen ( pUser - > GetSessId ( ) ) ) ;
_strcpy ( Req . context_id , _countof ( Req . context_id ) , pContextId , ( int ) strlen ( pContextId ) ) ;
{
nRetVal = GetNewId ( Req . order_id ) ; // AccountLock / AccountUnlock <20> <> ȸ ȣ <> <C8A3> <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> Ǿ<EFBFBD> <C7BE> <EFBFBD> <20> <>
if ( 0 > nRetVal )
g_Log . Log ( LogType : : _ERROR , L " GetNewId Ret:%d \r \n " , nRetVal ) ;
}
Req . serv_id_player = - 1 ; // <20> <> <EFBFBD> <EFBFBD> <20> <> ȣ , <20> <> <EFBFBD> <EFBFBD> Ʈ<EFBFBD> <C6AE> -1 <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <> Api<70> <69> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> bsipconfig.ini <20> κ<EFBFBD> <CEBA> <EFBFBD> ȹ<> <C8B9>
Req . area_id_player = - 1 ; // <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> ȣ , <20> <> <EFBFBD> <EFBFBD> Ʈ<EFBFBD> <C6AE> -1 <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <> Api<70> <69> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> bsipconfig.ini <20> κ<EFBFBD> <CEBA> <EFBFBD> ȹ<> <C8B9>
Req . group_id_player = - 1 ; // <20> <> <EFBFBD> <EFBFBD> <20> <EFBFBD> <20> <> ȣ , <20> <> <EFBFBD> <EFBFBD> Ʈ<EFBFBD> <C6AE> -1 <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <> Api<70> <69> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> bsipconfig.ini <20> κ<EFBFBD> <CEBA> <EFBFBD> ȹ<> <C8B9>
Req . endpoint_type = 1 ; // 1 : PC / 2 : <20> <EFBFBD> <DEB4> <EFBFBD>
_strcpy ( Req . endpoint_ip , _countof ( Req . endpoint_ip ) , pUser - > m_szIp , ( int ) strlen ( pUser - > m_szIp ) ) ;
Req . platform_type = 1 ; // 1 : PC / 2 : EZHOME
{
SYSTEMTIME aCurTime ;
: : GetLocalTime ( & aCurTime ) ;
sprintf_s ( Req . call_time , " %04d-%02d-%02d %02d:%02d:%02d " , aCurTime . wYear , aCurTime . wMonth , aCurTime . wDay , aCurTime . wHour , aCurTime . wMinute , aCurTime . wSecond ) ;
}
Req . indication_unlock = 1 ; // 1 : <20> ⺻<EFBFBD> <E2BABB> (1 : Unlock account, 2 : Reduce account, 5 : Reduce account and get coupon num)
Req . item_num = nGoodsCount ; // ij<> <C4B3> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> û<EFBFBD> <C3BB> 1ȸ<31> <C8B8> <20> ִ<EFBFBD> MAX_GOOD_LEN <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
Req . confirm = ( bConfirm ) ? ( 1 ) : ( 2 ) ; // ij<> <C4B3> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (1 : Ŀ<> <C4BF> / 2 : <20> ѹ<EFBFBD> )
Req . amount = 0 ;
for ( int i = 0 ; i < nGoodsCount ; i + + ) {
if ( GoodsList [ i ] . nItemSN < = 0 ) continue ;
Req . goods_info [ i ] . area_id_item = - 1 ; // -1 : <20> ⺻<EFBFBD> <E2BABB>
Req . goods_info [ i ] . serv_id_item = - 1 ; // -1 : <20> ⺻<EFBFBD> <E2BABB>
Req . goods_info [ i ] . group_id_item = - 1 ; // -1 : <20> ⺻<EFBFBD> <E2BABB>
Req . goods_info [ i ] . discount = 100 ; // 100 : <20> ⺻<EFBFBD> <E2BABB> (<28> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> )
Req . goods_info [ i ] . item_num = 1 ; // ij<> <C4B3> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> û<EFBFBD> <C3BB> 1ȸ<31> <C8B8> <20> <> <EFBFBD> <EFBFBD>
Req . goods_info [ i ] . item_id = GoodsList [ i ] . nItemSN ; // CommodityID <20> <> (CashPackageTable <20> <> <EFBFBD> <EFBFBD> <20> ٽ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> ij<> <C4B3> <20> <> ǰ<EFBFBD> <C7B0> CommodityID <20> <> <20> <> <EFBFBD> <EFBFBD> )
Req . goods_info [ i ] . item_amount = GoodsList [ i ] . nPrice ; // ij<> <C4B3> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ݾ<EFBFBD>
Req . amount + = Req . goods_info [ i ] . item_amount ;
}
nRetVal = SendAccountUnlockRequest ( & Req ) ;
if ( nRetVal < 0 )
nRetVal = ConvertResult ( nRetVal ) ;
return nRetVal ;
}
void CDNBillingConnectionCH : : CallbackAccountAuthenRes ( GSBsipAccountAuthenResDef * pRes )
{
if ( ! pRes ) return ;
CDNUserRepository * pUser = g_pManager - > GetUser ( pRes - > user_id ) ;
if ( ! pUser ) {
g_Log . Log ( LogType : : _ERROR , L " [CallbackAccountAuthenRes] User NULL! (AccountName:%s) \r \n " , pRes - > user_id ) ;
return ;
}
UINT nBalance = 0 ;
int nResult = ConvertResult ( pRes - > result ) ;
if ( ERROR_NONE = = nResult ) {
if ( 3 = = pRes - > pay_type1 & & // <20> <> <EFBFBD> <EFBFBD> Ÿ<EFBFBD> <C5B8> 3 : <20> <> <EFBFBD> <EFBFBD> ij<> <C4B3>
0 < pRes - > balance1 )
{
nBalance + = pRes - > balance1 ;
}
/*
if ( 3 = = pRes - > pay_type2 & & // <20> <> <EFBFBD> <EFBFBD> Ÿ<EFBFBD> <C5B8> 3 : <20> <> <EFBFBD> <EFBFBD> ij<> <C4B3>
0 < pRes - > balance2 )
{
nBalance + = pRes - > balance2 ;
}
if ( 3 = = pRes - > pay_type3 & & // <20> <> <EFBFBD> <EFBFBD> Ÿ<EFBFBD> <C5B8> 3 : <20> <> <EFBFBD> <EFBFBD> ij<> <C4B3>
0 < pRes - > balance3 )
{
nBalance + = pRes - > balance3 ;
}
if ( 3 = = pRes - > pay_type4 & & // <20> <> <EFBFBD> <EFBFBD> Ÿ<EFBFBD> <C5B8> 3 : <20> <> <EFBFBD> <EFBFBD> ij<> <C4B3>
0 < pRes - > balance4 )
{
nBalance + = pRes - > balance4 ;
}
if ( 3 = = pRes - > pay_type5 & & // <20> <> <EFBFBD> <EFBFBD> Ÿ<EFBFBD> <C5B8> 3 : <20> <> <EFBFBD> <EFBFBD> ij<> <C4B3>
0 < pRes - > balance5 )
{
nBalance + = pRes - > balance5 ;
}
*/
}
else {
g_Log . Log ( LogType : : _ERROR , pUser , L " [CallbackAccountAuthenRes] RetVal : %d \r \n " , pRes - > result ) ; // 20100621
}
pUser - > SendBalanceInquiry ( nResult , nBalance ) ;
}
void CDNBillingConnectionCH : : CallbackAccountLockRes ( GSBsipAccountLockResDef * pRes )
{
if ( ! pRes ) return ;
CDNUserRepository * pUser = g_pManager - > GetUser ( pRes - > user_id ) ;
if ( ! pUser ) {
g_Log . Log ( LogType : : _ERROR , L " [CallbackAccountAuthenRes] User NULL! (AccountName:%s) \r \n " , pRes - > user_id ) ;
return ;
}
pUser - > OnRecvAccountLock ( pRes - > result , pRes - > context_id ) ;
}
void CDNBillingConnectionCH : : CallbackAccountUnlockRes ( GSBsipAccountUnlockResDef * pRes )
{
if ( ! pRes ) return ;
CDNUserRepository * pUser = g_pManager - > GetUser ( pRes - > user_id ) ;
if ( ! pUser ) {
g_Log . Log ( LogType : : _ERROR , L " [CallbackAccountAuthenRes] User NULL! (AccountName:%s) \r \n " , pRes - > user_id ) ;
return ;
}
pUser - > OnRecvAccountUnlock ( pRes - > result , pRes - > context_id , pRes - > order_id , pRes - > balance ) ;
}
void CDNBillingConnectionCH : : GetBuyGoodsInfo ( CDNUserRepository : : TBuyItemPart * pBuy , TGoodsInfo * GoodsList , int & nTotalCount )
{
if ( ! pBuy ) return ;
nTotalCount = 0 ;
for ( int i = 0 ; i < MAX_GOOD_LEN ; i + + ) {
if ( ! pBuy - > pPartItem [ i ] ) continue ;
GoodsList [ nTotalCount ] . nItemSN = pBuy - > pPartItem [ i ] - > BuyItem . nItemSN ;
GoodsList [ nTotalCount ] . nPrice = pBuy - > pPartItem [ i ] - > nPrice ;
nTotalCount + + ;
}
}
void CDNBillingConnectionCH : : GetGiftGoodsInfo ( CDNUserRepository : : TGiftItemPart * pGift , TGoodsInfo * GoodsList , int & nTotalCount )
{
if ( ! pGift ) return ;
nTotalCount = 0 ;
for ( int i = 0 ; i < MAX_GOOD_LEN ; i + + ) {
if ( ! pGift - > pPartItem [ i ] ) continue ;
GoodsList [ nTotalCount ] . nItemSN = pGift - > pPartItem [ i ] - > GiftItem . nItemSN ;
GoodsList [ nTotalCount ] . nPrice = pGift - > pPartItem [ i ] - > nPrice ;
nTotalCount + + ;
}
}
int CDNBillingConnectionCH : : ConvertResult ( int nBillingResult )
{
if ( 0 < = nBillingResult ) {
return ERROR_NONE ;
}
switch ( nBillingResult ) {
case - 106908 : // the account is not exist or the balance is 0 // AccountAuthenRes <20> <> <20> <> <EFBFBD> <EFBFBD>
// case -106114: // user balance is 0
// case -106718: // user balance is 0
return ERROR_NONE ;
case - 100201 : return ERROR_SHANDAAUTHOR_100201 ; // -100201 = PT <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ptId format error
case - 100202 : return ERROR_SHANDAAUTHOR_100202 ; // -100202 <09> <> <EFBFBD> <EFBFBD> ID <20> <> <EFBFBD> <EFBFBD> appId error
case - 100203 : return ERROR_SHANDAAUTHOR_100203 ; // -100203 <09> <> Ƽ <EFBFBD> <C6BC> ID <20> <> <EFBFBD> <EFBFBD> areaId error
case - 100206 : return ERROR_SHANDAAUTHOR_100206 ; // -100206 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> Account not exist
case - 100207 : return ERROR_SHANDAAUTHOR_100207 ; // -100207 <09> <> Ƽ <EFBFBD> <C6BC> ID <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> areaId not exist
case - 100208 : return ERROR_SHANDAAUTHOR_100208 ; // -100208 <09> <> <EFBFBD> <EFBFBD> ID <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> appId not exist
case - 100210 : return ERROR_SHANDAAUTHOR_100210 ; // -100210 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ã<> <C3A3> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> other error
case - 100213 : return ERROR_SHANDAAUTHOR_100213 ; // -100213 sdid <20> ʹ <EFBFBD> <20> <> <EFBFBD> ų<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڰ<EFBFBD> <20> <> <EFBFBD> Ե<EFBFBD> sdId format error
case - 100299 : return ERROR_SHANDAAUTHOR_100299 ; // -100299 DB <20> <> <EFBFBD> <EFBFBD> DB error
case - 120101 : return ERROR_SHANDAAUTHOR_120101 ; // -120101 <09> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ʹ <EFBFBD> <20> <> <EFBFBD> ų<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڰ<EFBFBD> <20> <> <EFBFBD> Ե<EFBFBD> sndaID format error
case - 120102 : return ERROR_SHANDAAUTHOR_120102 ; // -120102 PT <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ʹ <EFBFBD> <20> <> <EFBFBD> ų<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ptId format error
case - 120103 : return ERROR_SHANDAAUTHOR_120103 ; // -120103 <09> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> Ǵ<EFBFBD> accountid <20> <> <EFBFBD> <EFBFBD> accountID error
case - 120104 : return ERROR_SHANDAAUTHOR_120104 ; // -120104 <09> ܾ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> balance error
case - 120105 : return ERROR_SHANDAAUTHOR_120105 ; // -120105 <09> <> <EFBFBD> <EFBFBD> Ÿ<> <C5B8> <20> <> <EFBFBD> <EFBFBD> paytypeId error
case - 120108 : return ERROR_SHANDAAUTHOR_120108 ; // -120108 LBS <20> <> <EFBFBD> <EFBFBD> DB<44> <42> <20> ش<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> Ͱ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> no data in LBS DB
case - 120109 : return ERROR_SHANDAAUTHOR_120109 ; // -120109 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> other errror
case - 120111 : return ERROR_SHANDAAUTHOR_120111 ; // -120111 <09> <> <EFBFBD> <EFBFBD> ID <20> <> <EFBFBD> <EFBFBD> appId error
case - 120112 : return ERROR_SHANDAAUTHOR_120112 ; // -120112 <09> <> Ʈ<EFBFBD> <C6AE> ũ <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> Net status error
case - 120113 : return ERROR_SHANDAAUTHOR_120113 ; // -120113 <09> <EFBFBD> <DEBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (<28> <EFBFBD> <DEBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ) data body error
case - 129999 : return ERROR_SHANDAAUTHOR_129999 ; // -129999 DB <20> <> <EFBFBD> <EFBFBD> DB error
// Account
case - 102601 : return ERROR_SHANDAACCOUNT_102601 ; // -102601 <09> <> <EFBFBD> <EFBFBD> <20> <EFBFBD> <DEBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> Status error
case - 102602 : return ERROR_SHANDAACCOUNT_102602 ; // -102602 <09> <> <EFBFBD> <EFBFBD> Ÿ<> <C5B8> <20> <> <EFBFBD> <EFBFBD> Paytype error
case - 102603 : return ERROR_SHANDAACCOUNT_102603 ; // -102603 <09> <> <EFBFBD> <EFBFBD> <20> ݾ<EFBFBD> <DDBE> <EFBFBD> 0<> <30> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> Amount error
case - 102613 : return ERROR_SHANDAACCOUNT_102613 ; // -102613 <09> <> Ŷ log <20> ð<EFBFBD> <C3B0> <EFBFBD> 5<> <35> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Calltime error
case - 102604 : return ERROR_SHANDAACCOUNT_102604 ; // -102604 PT <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> Account not exist
case - 102605 : return ERROR_SHANDAACCOUNT_102605 ; // -102605 <09> <> <EFBFBD> <EFBFBD> <20> <> Ƽ <EFBFBD> <C6BC> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> balance not exist
case - 102609 : return ERROR_SHANDAACCOUNT_102609 ; // -102609 sdid <20> ʹ <EFBFBD> <20> <> <EFBFBD> ų<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڰ<EFBFBD> <20> <> <EFBFBD> Ե<EFBFBD> sdId format error
case - 102610 : return ERROR_SHANDAACCOUNT_102610 ; // -102610 <09> Һ<EFBFBD> Ÿ<> <C5B8> <20> <> <EFBFBD> <EFBFBD> appType error
case - 102611 : return ERROR_SHANDAACCOUNT_102611 ; // -102611 Ŀ<> ø<EFBFBD> Ÿ<> <C5B8> <20> <> <EFBFBD> <EFBFBD> , <20> ݵ<EFBFBD> <DDB5> <EFBFBD> 1,2 <20> <> <EFBFBD> <EFBFBD> <20> <> coupletype error
case - 102612 : return ERROR_SHANDAACCOUNT_102612 ; // -102612 begintime<6D> <65> endtime<6D> <65> <EFBFBD> <EFBFBD> <20> ۰ ų<DBB0> <20> <> <EFBFBD> ƾ<EFBFBD> <20> <> begintime must samll to endtime
case - 102615 : return ERROR_SHANDAACCOUNT_102615 ; // -102615 amount = 0 Amount is 0
case - 102617 : return ERROR_SHANDAACCOUNT_102617 ; // -102617 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> other error
case - 102699 : return ERROR_SHANDAACCOUNT_102699 ; // -102699 DB <20> <> <EFBFBD> <EFBFBD> DB error
case - 120201 : return ERROR_SHANDAACCOUNT_120201 ; // -120201 <09> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ʹ <EFBFBD> <20> <> <EFBFBD> ų<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڰ<EFBFBD> <20> <> <EFBFBD> Ե<EFBFBD> sndaID format error
case - 120202 : return ERROR_SHANDAACCOUNT_120202 ; // -120202 PT <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ʹ <EFBFBD> <20> <> <EFBFBD> ų<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ptId format error
case - 120203 : return ERROR_SHANDAACCOUNT_120203 ; // -120203 <09> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> Amount error
case - 120204 : return ERROR_SHANDAACCOUNT_120204 ; // -120204 <09> <> Ŷ <20> <> <EFBFBD> ε<EFBFBD> <20> ð<EFBFBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> period error
case - 120205 : return ERROR_SHANDAACCOUNT_120205 ; // -120205 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ID not exist
case - 120206 : return ERROR_SHANDAACCOUNT_120206 ; // -120206 <09> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> no union data
case - 120207 : return ERROR_SHANDAACCOUNT_120207 ; // -120207 <09> <> <EFBFBD> <EFBFBD> Ÿ<> <C5B8> <20> <> <EFBFBD> <EFBFBD> paytypeId error
case - 120208 : return ERROR_SHANDAACCOUNT_120208 ; // -120208 <09> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> sndaID not exist
case - 120209 : return ERROR_SHANDAACCOUNT_120209 ; // -120209 <09> <> Ÿ <20> Ķ<EFBFBD> <C4B6> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> other param format error
case - 120210 : return ERROR_SHANDAACCOUNT_120210 ; // -120210 orderid <20> ߺ <EFBFBD> orderid error
case - 120211 : return ERROR_SHANDAACCOUNT_120211 ; // -120211 serviceid <20> <> <EFBFBD> <EFBFBD> appId error
case - 120212 : return ERROR_SHANDAACCOUNT_120212 ; // -120212 <09> <> Ʈ<EFBFBD> <C6AE> ũ <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> net status error
case - 120213 : return ERROR_SHANDAACCOUNT_120213 ; // -120213 cache flag <20> <> <EFBFBD> <EFBFBD> flag error
case - 120214 : return ERROR_SHANDAACCOUNT_120214 ; // -120214 <09> <> <EFBFBD> <EFBFBD> <20> Ķ<EFBFBD> <C4B6> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> status error
case - 120215 : return ERROR_SHANDAACCOUNT_120215 ; // -120215 <09> Ѱ<EFBFBD> sessionid<69> <64> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> Data repeat
case - 120216 : return ERROR_SHANDAACCOUNT_120216 ; // -120216 ptid<69> <64> sessionid<69> <64> <20> <> ġ<EFBFBD> <C4A1> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ptId and sessid error
case - 120217 : return ERROR_SHANDAACCOUNT_120217 ; // -120217 PT <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ptID not exist
// case -129999: return ERROR_SHANDAACCOUNT_129999; // -129999 <09> ý<EFBFBD> <C3BD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> sqlcode other error
// <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ڰ<EFBFBD> <DAB0> <EFBFBD>
case - 200101 : return ERROR_SHANDABILLING_200101 ; // SDIDLONGER -200101 <09> Է±<D4B7> <C2B1> <EFBFBD> <20> ʰ<EFBFBD> long
case - 200102 : return ERROR_SHANDABILLING_200102 ; // SDIDNULL -200102 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> null
case - 200103 : return ERROR_SHANDABILLING_200103 ; // SDIDILLEGAL -200103 <09> ҹ<EFBFBD> <20> <> <EFBFBD> ڿ<EFBFBD> <DABF> <EFBFBD> <20> <> <EFBFBD> Ե<EFBFBD> format error
case - 200199 : return ERROR_SHANDABILLING_200199 ; // SDIDOTHER -200199 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> other error
// <20> <> <EFBFBD> <EFBFBD> PT <20> <> <EFBFBD> <EFBFBD>
case - 200201 : return ERROR_SHANDABILLING_200201 ; // PTIDLONGER -200201 <09> Է±<D4B7> <C2B1> <EFBFBD> <20> ʰ<EFBFBD> long
case - 200202 : return ERROR_SHANDABILLING_200202 ; // PTIDNULL -200202 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> null
case - 200203 : return ERROR_SHANDABILLING_200203 ; // PTIDILLEGAL -200203 <09> ҹ<EFBFBD> <20> <> <EFBFBD> ڿ<EFBFBD> <DABF> <EFBFBD> <20> <> <EFBFBD> Ե<EFBFBD> format error
case - 200204 : return ERROR_SHANDABILLING_200204 ; // PTIDALLNUM -200204 <09> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> ڰų<DAB0> <20> <> <EFBFBD> ڷ<EFBFBD> <20> <> <EFBFBD> ۵ <EFBFBD> format error
case - 200299 : return ERROR_SHANDABILLING_200299 ; // PTIDOTHER -200299 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> other error
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ÿ<> <C5B8> ID
case - 200301 : return ERROR_SHANDABILLING_200301 ; // SERVIDLONGER -200301 <09> Է±<D4B7> <C2B1> <EFBFBD> <20> ʰ<EFBFBD> long
case - 200302 : return ERROR_SHANDABILLING_200302 ; // SERVIDNULL -200302 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> null
case - 200303 : return ERROR_SHANDABILLING_200303 ; // SERVIDILLEGAL -200303 <09> ҹ<EFBFBD> <20> <> <EFBFBD> ڿ<EFBFBD> <DABF> <EFBFBD> <20> <> <EFBFBD> Ե<EFBFBD> format error
case - 200399 : return ERROR_SHANDABILLING_200399 ; // SERVIDOTHER -200399 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> other error
// <20> <> <EFBFBD> <EFBFBD> <20> <> Ƽ <EFBFBD> <C6BC> ID
case - 200401 : return ERROR_SHANDABILLING_200401 ; // AREAIDLONGER -200401 <09> Է±<D4B7> <C2B1> <EFBFBD> <20> ʰ<EFBFBD> long
case - 200402 : return ERROR_SHANDABILLING_200402 ; // AREAIDNULL -200402 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> null
case - 200403 : return ERROR_SHANDABILLING_200403 ; // AREAIDILLEGAL -200403 <09> ҹ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> Ե<EFBFBD> format error
case - 200499 : return ERROR_SHANDABILLING_200499 ; // AREAIDOTHER -200499 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> other error
// <20> <> <EFBFBD> <EFBFBD> id
case - 200501 : return ERROR_SHANDABILLING_200501 ; // SESSIDLONGER -200501 <09> Է±<D4B7> <C2B1> <EFBFBD> <20> ʰ<EFBFBD> long
case - 200502 : return ERROR_SHANDABILLING_200502 ; // SESSIDNULL -200502 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> null
case - 200503 : return ERROR_SHANDABILLING_200503 ; // SESSIDILLEGAL -200503 <09> ҹ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> Ե<EFBFBD> format error
case - 200504 : return ERROR_SHANDABILLING_200504 ; // SESSIDERRFORMAT -200504 <09> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <20> ҹ<EFBFBD> ) format error
case - 200599 : return ERROR_SHANDABILLING_200599 ; // SESSIDOTHER -200599 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> other error
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ŷ id
case - 200601 : return ERROR_SHANDABILLING_200601 ; // UNIQUEIDLONGER -200601 <09> Է±<D4B7> <C2B1> <EFBFBD> <20> ʰ<EFBFBD> long
case - 200602 : return ERROR_SHANDABILLING_200602 ; // UNIQUEIDNULL -200602 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> null
case - 200603 : return ERROR_SHANDABILLING_200603 ; // UNIQUEIDILLEGAL -200603 <09> ҹ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> Ե<EFBFBD> format error
case - 200604 : return ERROR_SHANDABILLING_200604 ; // UNIQUEIDERRFORMAT -200604 <09> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <20> ҹ<EFBFBD> ) format error
case - 200605 : return ERROR_SHANDABILLING_200605 ; // UNIQUEIDREPEAT -200605 uniqueid <20> ߺ <EFBFBD> <DFBA> <EFBFBD> id repeat
case - 200699 : return ERROR_SHANDABILLING_200699 ; // UNIQUEIDOTHER -200699 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> null
// <20> <> <EFBFBD> <EFBFBD> ID
case - 200801 : return ERROR_SHANDABILLING_200801 ; // GROUPIDLONGER -200801 <09> Է±<D4B7> <C2B1> <EFBFBD> <20> ʰ<EFBFBD> long
case - 200802 : return ERROR_SHANDABILLING_200802 ; // GROUPIDNULL -200802 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> null
case - 200803 : return ERROR_SHANDABILLING_200803 ; // GROUPIDILLEGAL -200803 <09> ҹ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> Ե<EFBFBD> format error
case - 200899 : return ERROR_SHANDABILLING_200899 ; // GROUPIDOTHER -200899 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> other error
// <20> <> <EFBFBD> ۽ð<DBBD>
case - 201301 : return ERROR_SHANDABILLING_201301 ; // BEGINTIMELONGER -201301 <09> Է±<D4B7> <C2B1> <EFBFBD> <20> ʰ<EFBFBD> long
case - 201302 : return ERROR_SHANDABILLING_201302 ; // BEGINTIMENULL -201302 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> null
case - 201303 : return ERROR_SHANDABILLING_201303 ; // BEGINTIMEILLEGAL -201303 <09> ҹ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> Ե<EFBFBD> format error
case - 201304 : return ERROR_SHANDABILLING_201304 ; // BEGINTIMEERRLONGFOMAT -201304 <09> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> , YYYY-MM-DD hh:mi:ss <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ̾<EFBFBD> <CCBE> <EFBFBD> <20> <> format error
case - 201305 : return ERROR_SHANDABILLING_201305 ; // BEGINTIMEERRSHORTFOMAT -201305 <09> ҹ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> Եʣ<D4B5> YYYY-MM-DD <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ̾<EFBFBD> <CCBE> <EFBFBD> <20> <> format error
case - 201399 : return ERROR_SHANDABILLING_201399 ; // BEGINTIMEOTHER -201399 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> other error
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ð<EFBFBD>
case - 201401 : return ERROR_SHANDABILLING_201401 ; // ENDTIMELONGER -201401 <09> Է±<D4B7> <C2B1> <EFBFBD> <20> ʰ<EFBFBD> long
case - 201402 : return ERROR_SHANDABILLING_201402 ; // ENDTIMENULL -201402 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> null
case - 201403 : return ERROR_SHANDABILLING_201403 ; // ENDTIMEILLEGAL -201403 <09> ҹ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> Ե<EFBFBD> format error
case - 201404 : return ERROR_SHANDABILLING_201404 ; // ENDTIMEERRLONGFOMAT -201404 <09> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> , YYYY-MM-DD hh:mi:ss <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ̾<EFBFBD> <CCBE> <EFBFBD> <20> <> format error
case - 201405 : return ERROR_SHANDABILLING_201405 ; // ENDTIMEERRSHORTFOMAT -201405 <09> ҹ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> Եʣ<D4B5> YYYY-MM-DD <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ̾<EFBFBD> <CCBE> <EFBFBD> <20> <> format error
case - 201406 : return ERROR_SHANDABILLING_201406 ; // ENDTIMEERRVALUE -201406 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> ð<EFBFBD> <C3B0> <EFBFBD> <20> <> <EFBFBD> ۽ð<DBBD> <C3B0> <EFBFBD> <EFBFBD> <EFBFBD> ŭ error value
case - 201499 : return ERROR_SHANDABILLING_201499 ; // ENDTIMEOTHER -201499 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> other error
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> Ŷ id
case - 201501 : return ERROR_SHANDABILLING_201501 ; // ORDERIDLONGER -201501 <09> Է±<D4B7> <C2B1> <EFBFBD> <20> ʰ<EFBFBD> long
case - 201502 : return ERROR_SHANDABILLING_201502 ; // ORDERIDNULL -201502 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> null
case - 201503 : return ERROR_SHANDABILLING_201503 ; // ORDERIDILLEGAL -201503 <09> ҹ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> Ե<EFBFBD> format error
case - 201504 : return ERROR_SHANDABILLING_201504 ; // ORDERIDERRFORMAT -201504 <09> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ҹ<EFBFBD> <D2B9> <EFBFBD> format error
case - 201505 : return ERROR_SHANDABILLING_201505 ; // ORDERIDREPEAT -201505 orderid<69> ߺ <EFBFBD> ID repeat
case - 201599 : return ERROR_SHANDABILLING_201599 ; // ORDERIDOTHER -201599 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> other error
// <20> <> <EFBFBD> <EFBFBD> Ÿ<> <C5B8>
case - 201901 : return ERROR_SHANDABILLING_201901 ; // PAYTYPELONGER -201901 <09> Է±<D4B7> <C2B1> <EFBFBD> <20> ʰ<EFBFBD> long
case - 201902 : return ERROR_SHANDABILLING_201902 ; // PAYTYPENULL -201902 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> null
case - 201903 : return ERROR_SHANDABILLING_201903 ; // PAYTYPEILLEGAL -201903 <09> ҹ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> Ե<EFBFBD> format error
case - 201904 : return ERROR_SHANDABILLING_201904 ; // PAYTYPEERRVALUE -201904 <09> Է<EFBFBD> <20> <> <EFBFBD> <EFBFBD> (Ư<> <C6AF> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ) error value
case - 201999 : return ERROR_SHANDABILLING_201999 ; // PAYTYPEOTHER -201999 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> other error
// <20> Һ<EFBFBD> Ÿ<> <C5B8>
case - 202001 : return ERROR_SHANDABILLING_202001 ; // APPTYPELONGER -202001 <09> Է±<D4B7> <C2B1> <EFBFBD> <20> ʰ<EFBFBD> long
case - 202002 : return ERROR_SHANDABILLING_202002 ; // APPTYPENULL -202002 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> null
case - 202003 : return ERROR_SHANDABILLING_202003 ; // APPTYPEILLEGAL -202003 <09> ҹ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> Ե<EFBFBD> format error
case - 202004 : return ERROR_SHANDABILLING_202004 ; // APPTYPEERRVALUE -202004 <09> Է<EFBFBD> <20> <> <EFBFBD> <EFBFBD> (Ư<> <C6AF> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ) error value
case - 202099 : return ERROR_SHANDABILLING_202099 ; // APPTYPEOTHER -202099 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> other error
// Ŀ<> ø<EFBFBD> Ÿ<> <C5B8>
case - 202101 : return ERROR_SHANDABILLING_202101 ; // COUPLETYPELONGER -202101 <09> Է±<D4B7> <C2B1> <EFBFBD> <20> ʰ<EFBFBD> long
case - 202102 : return ERROR_SHANDABILLING_202102 ; // COUPLETYPENULL -202102 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> null
case - 202103 : return ERROR_SHANDABILLING_202103 ; // COUPLETYPEILLEGAL -202103 <09> ҹ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> Ե<EFBFBD> format error
case - 202104 : return ERROR_SHANDABILLING_202104 ; // COUPLETYPEERRVALUE -202104 <09> Է<EFBFBD> <20> <> <EFBFBD> <EFBFBD> (Ư<> <C6AF> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ) error value
case - 202199 : return ERROR_SHANDABILLING_202199 ; // COUPLETYPEOTHER -202199 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> other error
// <20> ݾ<EFBFBD>
case - 202201 : return ERROR_SHANDABILLING_202201 ; // AMOUNTLONGER -202201 <09> Է±<D4B7> <C2B1> <EFBFBD> <20> ʰ<EFBFBD> long
case - 202202 : return ERROR_SHANDABILLING_202202 ; // AMOUNTNULL -202202 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> null
case - 202203 : return ERROR_SHANDABILLING_202203 ; // AMOUNTILLEGAL -202203 <09> ҹ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> Ե<EFBFBD> format error
case - 202204 : return ERROR_SHANDABILLING_202204 ; // AMOUNTNEGATIVE -202204 <09> <> <EFBFBD> ̳ʽ <CCB3> <20> <> <EFBFBD> <EFBFBD> <20> Է<EFBFBD> error value
case - 202205 : return ERROR_SHANDABILLING_202205 ; // AMOUNTZERO -202205 0<> <30> <20> Է<EFBFBD> error value
case - 202206 : return ERROR_SHANDABILLING_202206 ; // AMOUNTERRVALUE -202206 <09> Է<EFBFBD> <D4B7> <EFBFBD> <20> <> <EFBFBD> ڰ<EFBFBD> <20> ʹ <EFBFBD> ŭ error value
case - 202299 : return ERROR_SHANDABILLING_202299 ; // AMOUNTOTHER -202299 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> other error
// <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
case - 202301 : return ERROR_SHANDABILLING_202301 ; // DISCOUNTLONGER -202301 <09> Է±<D4B7> <C2B1> <EFBFBD> <20> ʰ<EFBFBD> long
case - 202302 : return ERROR_SHANDABILLING_202302 ; // DISCOUNTNULL -202302 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> null
case - 202303 : return ERROR_SHANDABILLING_202303 ; // DISCOUNTILLEGAL -202303 <09> ҹ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> Ե<EFBFBD> format error
case - 202399 : return ERROR_SHANDABILLING_202399 ; // DISCOUNTOTHER -202399 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> other error
// Ŭ<> <C5AC> <EFBFBD> ̾<EFBFBD> Ʈ IP <20> ּ<EFBFBD>
case - 202501 : return ERROR_SHANDABILLING_202501 ; // IPLONGER -202501 <09> Է±<D4B7> <C2B1> <EFBFBD> <20> ʰ<EFBFBD> long
case - 202502 : return ERROR_SHANDABILLING_202502 ; // IPNULL -202502 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> null
case - 202503 : return ERROR_SHANDABILLING_202503 ; // IPILLEGAL -202503 <09> ҹ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> Ե<EFBFBD> format error
case - 202504 : return ERROR_SHANDABILLING_202504 ; // IPERRVALUE -202504 <09> Է<EFBFBD> <20> <> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ) error value
case - 202599 : return ERROR_SHANDABILLING_202599 ; // IPOTHER -202599 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> other error
// <20> <> <EFBFBD> <EFBFBD>
case - 204401 : return ERROR_SHANDABILLING_204401 ; // STATUSLONGER -204401 <09> Է±<D4B7> <C2B1> <EFBFBD> <20> ʰ<EFBFBD> long
case - 204402 : return ERROR_SHANDABILLING_204402 ; // STATUSNULL -204402 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> null
case - 204403 : return ERROR_SHANDABILLING_204403 ; // STATUSILLEGAL -204403 <09> ҹ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> Ե<EFBFBD> format error
case - 204404 : return ERROR_SHANDABILLING_204404 ; // STATUSERRVALUE -204404 <09> Է<EFBFBD> <20> <> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> ġ<EFBFBD> <C4A1> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ) error value
case - 204499 : return ERROR_SHANDABILLING_204499 ; // STATUSOTHER -204499 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> other error
// <20> <> <EFBFBD> <EFBFBD> uid
case - 200211 : return ERROR_SHANDABILLING_200211 ; // UIDLONGER -200211 <09> Է±<D4B7> <C2B1> <EFBFBD> <20> ʰ<EFBFBD> long
// CBS<42> <53> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ó<> <C3B3>
case - 300001 : return ERROR_SHANDABILLING_300001 ; // CBSDB_IS_DISCONNECT -300001 cbs DB <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> sql connect error
case - 300102 : return ERROR_SHANDABILLING_300102 ; // CBSDB_PROC_ERROR -300002 cbs sql <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> sql error
case - 300103 : return ERROR_SHANDABILLING_300103 ; // UNAUTHOR_OPERATION -300003 <09> <> <EFBFBD> <EFBFBD> <20> ο <EFBFBD> <CEBF> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> û <20> <> Ŷ Ÿ<> <C5B8> unauthor
case - 300201 : return ERROR_SHANDABILLING_300201 ; // AMOUNT_NOT_MATCHING -300201 <09> ݾ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> ġ amount error
case - 390001 : return ERROR_SHANDABILLING_390001 ; // RES_TIMEOUT -390001 <09> <> <EFBFBD> <EFBFBD> <20> ð<EFBFBD> <20> ʰ<EFBFBD> response time out
// <20> <> <EFBFBD> <EFBFBD> <20> <> ȯ-API
case - 401001 : return ERROR_SHANDABILLING_401001 ; // SOCKDISCONNECT -401001 socket <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> socket disconnect
case - 401002 : return ERROR_SHANDABILLING_401002 ; // SOCKIP_OR_PORTERR -401002 <09> <> <EFBFBD> <EFBFBD> ip/port <20> <> <EFBFBD> <EFBFBD> IP Port error
case - 401003 : return ERROR_SHANDABILLING_401003 ; // SOCKCONNECTFAIL -401003 socket <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> socket connect fail
case - 401004 : return ERROR_SHANDABILLING_401004 ; // SOCKLOCALFAILED -401004 <09> <> <EFBFBD> <EFBFBD> <20> ʱ<EFBFBD> ȭ SOCKET <20> <> <EFBFBD> <EFBFBD> initial fail
case - 401005 : return ERROR_SHANDABILLING_401005 ; // SNDBUF_OVERFLOW -401005 <09> <EFBFBD> buffer overflow send buffer overflow
case - 401006 : return ERROR_SHANDABILLING_401006 ; // RCVBUF_OVERFLOW -401006 <09> <> <EFBFBD> <EFBFBD> buffer overflow recive buffer overflow
case - 401007 : return ERROR_SHANDABILLING_401007 ; // TMOBUF_OVERFLOW -401007 timeout buffer overflow timeout buffer overflow
case - 401008 : return ERROR_SHANDABILLING_401008 ; // LSOCKDISCONNECT -401008 <09> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> socket error
case - 401011 : return ERROR_SHANDABILLING_401011 ; // NOINITCLIENT -401011 Ŭ<> <C5AC> <EFBFBD> ̾<EFBFBD> Ʈ <20> ʱ<EFBFBD> ȭ<EFBFBD> <C8AD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> client without initial
// QUEUE ó<> <C3B3>
case - 402001 : return ERROR_SHANDABILLING_402001 ; // QUEUECACHEFULL -402001 <09> <> <EFBFBD> <EFBFBD> cache full queue cache full
case - 402002 : return ERROR_SHANDABILLING_402002 ; // QUEUELOCKERROR -402002 <09> <> <EFBFBD> <EFBFBD> lock <20> <> <EFBFBD> <EFBFBD> queue lock error
case - 402003 : return ERROR_SHANDABILLING_402003 ; // QUEUEOPERATEERROR -402003 <09> <> <EFBFBD> <EFBFBD> Push/Pop <20> <> <EFBFBD> <EFBFBD> <20> Ķ<EFBFBD> <C4B6> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (<28> <> pointer) queue param error
case - 402004 : return ERROR_SHANDABILLING_402004 ; // QUEUEEMPTY -402004 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , Pop <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> queue null
case - 402005 : return ERROR_SHANDABILLING_402005 ; // QUEUEDATAERR -402005 cache <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> ̰<EFBFBD> cache <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ʰ<EFBFBD> <20> <> queue data error
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
case - 403001 : return ERROR_SHANDABILLING_403001 ; // USERDATALENERROR -403001 <09> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Push <20> <> <EFBFBD> ̿<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ġ data length error
case - 403002 : return ERROR_SHANDABILLING_403002 ; // COMMUDATAERROR -403002 <09> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> Ŷ <20> <> ȣ ȭ <20> <> <EFBFBD> <EFBFBD> encrypt error
// POINTER insert
case - 404001 : return ERROR_SHANDABILLING_404001 ; // POINTERNULL -404001 <09> <> pointer <20> <> <EFBFBD> <EFBFBD> (pointer<65> <72> <20> ʿ<EFBFBD> <CABF> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> pointer<65> <72> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> ) point null
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> encode/decode
case - 405001 : return ERROR_SHANDABILLING_405001 ; // ENCRYPTERROR -405001 <09> <> ȣ ȭ <20> <> <EFBFBD> <EFBFBD> encrypt error
case - 405002 : return ERROR_SHANDABILLING_405002 ; // DECRYPTERROR -405002 <09> <> ȣ <EFBFBD> <C8A3> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> decrypt error
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
case - 406001 : return ERROR_SHANDABILLING_406001 ; // PARAMPATHERROR -406001 cache Ȥ<> <C8A4> annular <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> path error
case - 406002 : return ERROR_SHANDABILLING_406002 ; // CONFLOADFAILED -406002 <09> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ε<EFBFBD> <20> <> <EFBFBD> <EFBFBD> fail to load ini
case - 406003 : return ERROR_SHANDABILLING_406003 ; // CONFGETFAILED -406003 <09> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ȹ<> <C8B9> <20> <> <EFBFBD> <EFBFBD> fail to get ini
case - 406004 : return ERROR_SHANDABILLING_406004 ; // RELOADFAILED -406004 <09> ε<EFBFBD> <20> <> <EFBFBD> <EFBFBD> fail to reload
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
case - 407001 : return ERROR_SHANDABILLING_407001 ; // ERR_MSG_TYPE -407001 <09> <> û <20> <EFBFBD> <DEBD> <EFBFBD> <20> <> <20> <EFBFBD> <DEBD> <EFBFBD> Ÿ<> <C5B8> <20> <> <EFBFBD> <EFBFBD> message type error
case - 407002 : return ERROR_SHANDABILLING_407002 ; // IP_NOT_EXIST -407002 <09> <> û <20> <EFBFBD> <DEBD> <EFBFBD> <20> <> hostIP<49> <50> <20> <> <EFBFBD> <EFBFBD> hostip not exist
case - 407003 : return ERROR_SHANDABILLING_407003 ; // ID_NOT_EXIST -407003 <09> <> û <20> <EFBFBD> <DEBD> <EFBFBD> <20> <> hostId<49> <64> <20> <> <EFBFBD> <EFBFBD> hostid not exist
case - 407004 : return ERROR_SHANDABILLING_407004 ; // SYS_FLAG_INVALID -407004 OS flag <20> <> <EFBFBD> <EFBFBD> system flag error
case - 407005 : return ERROR_SHANDABILLING_407005 ; // MSG_LEN_ERR -407005 <09> <> û <20> <EFBFBD> <DEBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> message length error
case - 407006 : return ERROR_SHANDABILLING_407006 ; // CANNOTCONNECTDB -407006 DB <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> db connect error
case - 407099 : return ERROR_SHANDABILLING_407099 ; // UNKNOWNED_ERR -407099 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> other error
// <20> <> Ÿ
case - 499999 : return ERROR_SHANDABILLING_499999 ; // UNDECLARE_ERROR -499999 <09> <> Ÿ <20> <> <EFBFBD> <EFBFBD> other error
default :
return ERROR_GENERIC_UNKNOWNERROR ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ȣ <20> <> <EFBFBD> <EFBFBD> <20> ʿ<EFBFBD> !!!
}
return ERROR_DB ;
}
# endif // #if defined(_CH) || defined(_EU)