#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 ÃÖÃÊ »ý¼º ½Ã ÁöÁ¤µÇ¾î¾ß ÇÔ // P.S.> ¿À·ù ·Î±×´Â È£ÃâºÎ¿¡¼­ ±â·Ï int nRetVal = -1; GSBsipAccountAuthenReqDef Req; ::memset(&Req, 0, sizeof(Req)); Req.user_type = 1; // 1 : ¼¢´Ù »ç¿ëÀÚ (±âº»°ª) Req.uid_type = 1; // 1 : PT ID (¹®ÀÚ) / 2 : SNDA ID (¼ýÀÚ) // Áß±¹Àº SNDA ID ¼ýÀÚ¸¦ ¹®ÀÚ¿­·Î º¯°æÇÏ¿© °èÁ¤¸íÀ¸·Î »ç¿ëÇÏ¸ç ±âÁ¸ PT ID °èÁ¤¸íÀº »ç¿ëÀÚ¸¸ »ç¿ëÇÒ »Ó ¼­ºñ½º ³»¿¡¼­´Â Àý´ë »ç¿ëÇÒ ÀÏ ¾øÀ½ _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; // °ÔÀÓ ¹øÈ£, µðÆúÆ®°ª -1 À» »ç¿ë ½Ã Api°¡ ¼³Á¤ÆÄÀÏ bsipconfig.ini ·ÎºÎÅÍ È¹µæ Req.area_id_player = -1; // °ÔÀÓ Áö¿ª ¹øÈ£, µðÆúÆ®°ª -1 À» »ç¿ë ½Ã Api°¡ ¼³Á¤ÆÄÀÏ bsipconfig.ini ·ÎºÎÅÍ È¹µæ Req.group_id_player = -1; // °ÔÀÓ ±×·ì ¹øÈ£, µðÆúÆ®°ª -1 À» »ç¿ë ½Ã Api°¡ ¼³Á¤ÆÄÀÏ bsipconfig.ini ·ÎºÎÅÍ È¹µæ Req.endpoint_type = 1; // 1 : PC / 2 : ÈÞ´ëÆù _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 : ±âº»°ª Req.pay_type = 0; // 0 ; ±âº»°ª 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 : ¼¢´Ù ij½¬ Req.app_type = bGift ? 174 : 17; // 17 : ±âº»°ª, 174: ¼±¹° Req.status = 2; // 2 : »ç¿ëÀÚ »óÅ ¿Â¶óÀÎ Req.couple_type = 2; // 2 : loose coupling, »ç¿ëÀÚ°¡ »ç¿ëÇÒ ¼ö ÀÖ´Â È­ÆóŸÀÔ, ºô¸µ ¹é±×¶ó¿îµå¿¡¼­ ÄÁÆ®·Ñ Req.fee = 0; // ¼ö¼ö·á Req.lock_period = 0; // 0 : ±âº»°ª, 20ºÐ Req.uid_type = 1; // 1 : PT ID (¹®ÀÚ) / 2 : SNDA ID (¼ýÀÚ) // Áß±¹Àº SNDA ID ¼ýÀÚ¸¦ ¹®ÀÚ¿­·Î º¯°æÇÏ¿© °èÁ¤¸íÀ¸·Î »ç¿ëÇÏ¸ç ±âÁ¸ PT ID °èÁ¤¸íÀº »ç¿ëÀÚ¸¸ »ç¿ëÇÒ »Ó ¼­ºñ½º ³»¿¡¼­´Â Àý´ë »ç¿ëÇÒ ÀÏ ¾øÀ½ _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; // °ÔÀÓ ¹øÈ£, µðÆúÆ®°ª -1 À» »ç¿ë ½Ã Api°¡ ¼³Á¤ÆÄÀÏ bsipconfig.ini ·ÎºÎÅÍ È¹µæ Req.area_id_player = -1; // °ÔÀÓ Áö¿ª ¹øÈ£, µðÆúÆ®°ª -1 À» »ç¿ë ½Ã Api°¡ ¼³Á¤ÆÄÀÏ bsipconfig.ini ·ÎºÎÅÍ È¹µæ Req.group_id_player = -1; // °ÔÀÓ ±×·ì ¹øÈ£, µðÆúÆ®°ª -1 À» »ç¿ë ½Ã Api°¡ ¼³Á¤ÆÄÀÏ bsipconfig.ini ·ÎºÎÅÍ È¹µæ Req.endpoint_type = 1; // 1 : PC / 2 : ÈÞ´ëÆù _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 : ±âº»°ª (1 : Lock account, 2 : Reduce account, 5 : Reduce account and get coupon num) Req.item_num = nGoodsCount; // ij½¬ ¾ÆÀÌÅÛ °áÀç ¿äûÀº 1ȸ¿¡ ÃÖ´ë MAX_GOOD_LEN °³±îÁö ¼öÇà nRetVal = GetNewId(Req.context_id); // AccountLock / AccountUnlock ÀÌ ÇÑ ½ÖÀÌ µÇ¾î¾ß ÇÔ 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 ¸Åȸ È£Ã⠽à ¸¶´Ù »ý¼º µÇ¾î¾ß ÇÔ 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 : ±âº»°ª Req.goods_info[i].serv_id_item = -1; // -1 : ±âº»°ª Req.goods_info[i].group_id_item = -1; // -1 : ±âº»°ª Req.goods_info[i].discount = 100; // 100 : ±âº»°ª (ÇÒÀÎ ¾øÀ½) Req.goods_info[i].item_num = 1; // ij½¬ ¾ÆÀÌÅÛ °áÀç ¿äûÀº 1ȸ¾¿ ¼öÇà Req.goods_info[i].item_id = GoodsList[i].nItemSN; // 1¹øÂ° ij½¬ ¾ÆÀÌÅÛÀÇ CommodityID ÀÓ (ItemID ¾Æ´Ô 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.> ¿À·ù ·Î±×´Â È£ÃâºÎ¿¡¼­ ±â·Ï int nRetVal = -1; GSBsipAccountUnlockReq Req; Req.pay_type = 3; // 3 : ¼¢´Ù ij½¬ Req.app_type = bGift ? 174 : 17; // 17: ±âº»°ª 174: ¼±¹° Req.status = 2; // 2 : »ç¿ëÀÚ »óÅ ¿Â¶óÀÎ Req.couple_type = 2; // 2 : loose coupling, »ç¿ëÀÚ°¡ »ç¿ëÇÒ ¼ö ÀÖ´Â È­ÆóŸÀÔ, ºô¸µ ¹é±×¶ó¿îµå¿¡¼­ ÄÁÆ®·Ñ Req.responsable = 1; // 1 : ±âº»°ª (AccountUnlockRes ¹Ýȯ ¿©ºÎ) Req.uid_type = 1; // 1 : PT ID (¹®ÀÚ) / 2 : SNDA ID (¼ýÀÚ) // Áß±¹Àº SNDA ID ¼ýÀÚ¸¦ ¹®ÀÚ¿­·Î º¯°æÇÏ¿© °èÁ¤¸íÀ¸·Î »ç¿ëÇÏ¸ç ±âÁ¸ PT ID °èÁ¤¸íÀº »ç¿ëÀÚ¸¸ »ç¿ëÇÒ »Ó ¼­ºñ½º ³»¿¡¼­´Â Àý´ë »ç¿ëÇÒ ÀÏ ¾øÀ½ _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 ¸Åȸ È£Ã⠽à ¸¶´Ù »ý¼º µÇ¾î¾ß ÇÔ if (0 > nRetVal) g_Log.Log(LogType::_ERROR, L"GetNewId Ret:%d\r\n", nRetVal); } Req.serv_id_player = -1; // °ÔÀÓ ¹øÈ£, µðÆúÆ®°ª -1 À» »ç¿ë ½Ã Api°¡ ¼³Á¤ÆÄÀÏ bsipconfig.ini ·ÎºÎÅÍ È¹µæ Req.area_id_player = -1; // °ÔÀÓ Áö¿ª ¹øÈ£, µðÆúÆ®°ª -1 À» »ç¿ë ½Ã Api°¡ ¼³Á¤ÆÄÀÏ bsipconfig.ini ·ÎºÎÅÍ È¹µæ Req.group_id_player = -1; // °ÔÀÓ ±×·ì ¹øÈ£, µðÆúÆ®°ª -1 À» »ç¿ë ½Ã Api°¡ ¼³Á¤ÆÄÀÏ bsipconfig.ini ·ÎºÎÅÍ È¹µæ Req.endpoint_type = 1; // 1 : PC / 2 : ÈÞ´ëÆù _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 : ±âº»°ª (1 : Unlock account, 2 : Reduce account, 5 : Reduce account and get coupon num) Req.item_num = nGoodsCount; // ij½¬ ¾ÆÀÌÅÛ °áÀç ¿äûÀº 1ȸ¿¡ ÃÖ´ë MAX_GOOD_LEN °³±îÁö ¼öÇà Req.confirm = (bConfirm)?(1):(2); // ij½¬ ¾ÆÀÌÅÛ °áÀç ÃÖÁ¾ ½ÂÀÎ ¿©ºÎ (1 : Ä¿¹Ô / 2 : ·Ñ¹é) 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 : ±âº»°ª Req.goods_info[i].serv_id_item = -1; // -1 : ±âº»°ª Req.goods_info[i].group_id_item = -1; // -1 : ±âº»°ª Req.goods_info[i].discount = 100; // 100 : ±âº»°ª (ÇÒÀÎ ¾øÀ½) Req.goods_info[i].item_num = 1; // ij½¬ ¾ÆÀÌÅÛ °áÀç ¿äûÀº 1ȸ¾¿ ¼öÇà Req.goods_info[i].item_id = GoodsList[i].nItemSN; // CommodityID ÀÓ (CashPackageTable ¿¡¼­ ´Ù½Ã °³º° ij½¬ »óǰÀÇ CommodityID ·Î ³ª´¸) Req.goods_info[i].item_amount = GoodsList[i].nPrice; // ij½¬ ¾ÆÀÌÅÛ °áÀç ±Ý¾× 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 && // ÁöºÒŸÀÔ 3 : ¼¢´Ù ij½¬ 0 < pRes->balance1) { nBalance += pRes->balance1; } /* if (3 == pRes->pay_type2 && // ÁöºÒŸÀÔ 3 : ¼¢´Ù ij½¬ 0 < pRes->balance2) { nBalance += pRes->balance2; } if (3 == pRes->pay_type3 && // ÁöºÒŸÀÔ 3 : ¼¢´Ù ij½¬ 0 < pRes->balance3) { nBalance += pRes->balance3; } if (3 == pRes->pay_type4 && // ÁöºÒŸÀÔ 3 : ¼¢´Ù ij½¬ 0 < pRes->balance4) { nBalance += pRes->balance4; } if (3 == pRes->pay_type5 && // ÁöºÒŸÀÔ 3 : ¼¢´Ù ij½¬ 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 ÀÇ °á°ú // case -106114: // user balance is 0 // case -106718: // user balance is 0 return ERROR_NONE; case -100201: return ERROR_SHANDAAUTHOR_100201; // -100201 = PT °èÁ¤ ¿¡·¯ ptId format error case -100202: return ERROR_SHANDAAUTHOR_100202; // -100202 °ÔÀÓ ID ¿¡·¯ appId error case -100203: return ERROR_SHANDAAUTHOR_100203; // -100203 ÆÄƼ¼Ç ID ¿¡·¯ areaId error case -100206: return ERROR_SHANDAAUTHOR_100206; // -100206 °èÁ¤ÀÌ Á¸ÀçÇÏÁö ¾ÊÀ½ Account not exist case -100207: return ERROR_SHANDAAUTHOR_100207; // -100207 ÆÄƼ¼Ç ID Á¸ÀçÇÏÁö ¾ÊÀ½ areaId not exist case -100208: return ERROR_SHANDAAUTHOR_100208; // -100208 °ÔÀÓ ID Á¸ÀçÇÏÁö ¾ÊÀ½ appId not exist case -100210: return ERROR_SHANDAAUTHOR_100210; // -100210 ±âŸ ±â·ÏÀ» ãÁö ¸øÇÑ ¿¡·¯ other error case -100213: return ERROR_SHANDAAUTHOR_100213; // -100213 sdid ³Ê¹« ±æ°Å³ª ¿µ¹®¹®ÀÚ°¡ Æ÷ÇÔµÊ sdId format error case -100299: return ERROR_SHANDAAUTHOR_100299; // -100299 DB ¿¡·¯ DB error case -120101: return ERROR_SHANDAAUTHOR_120101; // -120101 ¼ýÀÚ °èÁ¤ÀÌ ³Ê¹« ±æ°Å³ª ¿µ¹®¹®ÀÚ°¡ Æ÷ÇÔµÊ sndaID format error case -120102: return ERROR_SHANDAAUTHOR_120102; // -120102 PT °èÁ¤ÀÌ ³Ê¹« ±æ°Å³ª ÀüºÎ ´Ù ¼ýÀÚÀÓ ptId format error case -120103: return ERROR_SHANDAAUTHOR_120103; // -120103 À¯Àú °èÁ¤¿¡ ´ëÀÀµÇ´Â accountid ¿¡·¯ accountID error case -120104: return ERROR_SHANDAAUTHOR_120104; // -120104 ÀÜ¾× ¿¡·¯ balance error case -120105: return ERROR_SHANDAAUTHOR_120105; // -120105 °ú±Ý ŸÀÔ ¿¡·¯ paytypeId error case -120108: return ERROR_SHANDAAUTHOR_120108; // -120108 LBS ·ÎÄà DB¿¡ ÇØ´ç µ¥ÀÌÅͰ¡ ¾øÀ½ no data in LBS DB case -120109: return ERROR_SHANDAAUTHOR_120109; // -120109 ±âŸ ¿¡·¯ other errror case -120111: return ERROR_SHANDAAUTHOR_120111; // -120111 °ÔÀÓ ID ¿¡·¯ appId error case -120112: return ERROR_SHANDAAUTHOR_120112; // -120112 ³×Æ®¿öÅ© »óÅ ¿¡·¯ Net status error case -120113: return ERROR_SHANDAAUTHOR_120113; // -120113 ¸Þ½ÃÁö ¿¡·¯(¸Þ½ÃÁö ³»¿ë ¿¡·¯) data body error case -129999: return ERROR_SHANDAAUTHOR_129999; // -129999 DB ¿¡·¯ DB error // Account case -102601: return ERROR_SHANDAACCOUNT_102601; // -102601 °ú±Ý ¸Þ½ÃÁö »óÅ ¿¡·¯ Status error case -102602: return ERROR_SHANDAACCOUNT_102602; // -102602 °ú±Ý ŸÀÔ ¿¡·¯ Paytype error case -102603: return ERROR_SHANDAACCOUNT_102603; // -102603 °ú±Ý ±Ý¾×ÀÌ 0º¸´Ù ÀÛÀ½ Amount error case -102613: return ERROR_SHANDAACCOUNT_102613; // -102613 ÆÐŶ log ½Ã°£ÀÌ 5ÀÏÀüÀÓ Calltime error case -102604: return ERROR_SHANDAACCOUNT_102604; // -102604 PT °èÁ¤ÀÌ Á¸ÀçÇÏÁö ¾ÊÀ½ Account not exist case -102605: return ERROR_SHANDAACCOUNT_102605; // -102605 °ÔÀÓ ÆÄƼ¼Ç °èÁ¤ÀÌ Á¸ÀçÇÏÁö ¾ÊÀ½ balance not exist case -102609: return ERROR_SHANDAACCOUNT_102609; // -102609 sdid ³Ê¹« ±æ°Å³ª ¿µ¹®¹®ÀÚ°¡ Æ÷ÇÔµÊ sdId format error case -102610: return ERROR_SHANDAACCOUNT_102610; // -102610 ¼Òºñ ŸÀÔ ¿¡·¯ appType error case -102611: return ERROR_SHANDAACCOUNT_102611; // -102611 Ä¿Çøµ ŸÀÔ ¿¡·¯, ¹Ýµå½Ã 1,2 ¿©¾ß ÇÔ coupletype error case -102612: return ERROR_SHANDAACCOUNT_102612; // -102612 begintimeÀÌ endtimeº¸´Ù À۰ųª °°¾Æ¾ß ÇÔ begintime must samll to endtime case -102615: return ERROR_SHANDAACCOUNT_102615; // -102615 amount = 0 Amount is 0 case -102617: return ERROR_SHANDAACCOUNT_102617; // -102617 ±âŸ ¿¡·¯ other error case -102699: return ERROR_SHANDAACCOUNT_102699; // -102699 DB ¿¡·¯ DB error case -120201: return ERROR_SHANDAACCOUNT_120201; // -120201 ¼ýÀÚ °èÁ¤ÀÌ ³Ê¹« ±æ°Å³ª ¿µ¹®¹®ÀÚ°¡ Æ÷ÇÔµÊ sndaID format error case -120202: return ERROR_SHANDAACCOUNT_120202; // -120202 PT °èÁ¤ÀÌ ³Ê¹« ±æ°Å³ª ÀüºÎ ´Ù ¼ýÀÚÀÓ ptId format error case -120203: return ERROR_SHANDAACCOUNT_120203; // -120203 °ú±Ý ¼ö·® Æ÷¸Ë ¿¡·¯ Amount error case -120204: return ERROR_SHANDAACCOUNT_120204; // -120204 ÆÐŶ ¾÷·Îµå ½Ã°£°£°Ý ¿¡·¯ period error case -120205: return ERROR_SHANDAACCOUNT_120205; // -120205 °èÁ¤ÀÌ Á¸ÀçÇÏÁö ¾ÊÀ½ ID not exist case -120206: return ERROR_SHANDAACCOUNT_120206; // -120206 ÅëÇÕ ±â·ÏÀÌ ¾øÀ½ no union data case -120207: return ERROR_SHANDAACCOUNT_120207; // -120207 Áö±Þ ŸÀÔ ¿¡·¯ paytypeId error case -120208: return ERROR_SHANDAACCOUNT_120208; // -120208 ¼ýÀÚ °èÁ¤ÀÌ Á¸ÀçÇÏÁö ¾ÊÀ½ sndaID not exist case -120209: return ERROR_SHANDAACCOUNT_120209; // -120209 ±âŸ ÆÄ¶ó¹ÌÅÍ Æ÷¸Ë ¿¡·¯ other param format error case -120210: return ERROR_SHANDAACCOUNT_120210; // -120210 orderid Áߺ¹ orderid error case -120211: return ERROR_SHANDAACCOUNT_120211; // -120211 serviceid ¿¡·¯ appId error case -120212: return ERROR_SHANDAACCOUNT_120212; // -120212 ³×Æ®¿öÅ© »óÅ ¿¡·¯ net status error case -120213: return ERROR_SHANDAACCOUNT_120213; // -120213 cache flag ¿¡·¯ flag error case -120214: return ERROR_SHANDAACCOUNT_120214; // -120214 »óÅ ÆÄ¶ó¹ÌÅÍ ¿¡·¯ status error case -120215: return ERROR_SHANDAACCOUNT_120215; // -120215 ÇѰ³ sessionid¿¡ ¿©·¯°³ ±â·ÏÀÌ Á¸Àç Data repeat case -120216: return ERROR_SHANDAACCOUNT_120216; // -120216 ptid¿Í sessionid°¡ ¸ÅÄ¡µÇÁö ¾ÊÀ½ ptId and sessid error case -120217: return ERROR_SHANDAACCOUNT_120217; // -120217 PT °èÁ¤ÀÌ Á¸ÀçÇÏÁö ¾ÊÀ½ ptID not exist // case -129999: return ERROR_SHANDAACCOUNT_129999; // -129999 ½Ã½ºÅÛ ¿¡·¯£«sqlcode other error // À¯Àú ¼ýÀÚ°èÁ¤ case -200101: return ERROR_SHANDABILLING_200101; // SDIDLONGER -200101 ÀԷ±æÀÌ Ãʰú long case -200102: return ERROR_SHANDABILLING_200102; // SDIDNULL -200102 ºñ¾îÀÖÀ½ null case -200103: return ERROR_SHANDABILLING_200103; // SDIDILLEGAL -200103 ºÒ¹ý ¹®ÀÚ¿­ÀÌ Æ÷ÇÔµÊ format error case -200199: return ERROR_SHANDABILLING_200199; // SDIDOTHER -200199 ±âŸ ¿¡·¯ other error // À¯Àú PT °èÁ¤ case -200201: return ERROR_SHANDABILLING_200201; // PTIDLONGER -200201 ÀԷ±æÀÌ Ãʰú long case -200202: return ERROR_SHANDABILLING_200202; // PTIDNULL -200202 ºñ¾îÀÖÀ½ null case -200203: return ERROR_SHANDABILLING_200203; // PTIDILLEGAL -200203 ºÒ¹ý ¹®ÀÚ¿­ÀÌ Æ÷ÇÔµÊ format error case -200204: return ERROR_SHANDABILLING_200204; // PTIDALLNUM -200204 ÀüºÎ ´Ù ¼ýÀڰųª ¼ýÀÚ·Î ½ÃÀÛµÊ format error case -200299: return ERROR_SHANDABILLING_200299; // PTIDOTHER -200299 ±âŸ ¿¡·¯ other error // ¼­ºñ½º ŸÀÔ ID case -200301: return ERROR_SHANDABILLING_200301; // SERVIDLONGER -200301 ÀԷ±æÀÌ Ãʰú long case -200302: return ERROR_SHANDABILLING_200302; // SERVIDNULL -200302 ºñ¾îÀÖÀ½ null case -200303: return ERROR_SHANDABILLING_200303; // SERVIDILLEGAL -200303 ºÒ¹ý ¹®ÀÚ¿­ÀÌ Æ÷ÇÔµÊ format error case -200399: return ERROR_SHANDABILLING_200399; // SERVIDOTHER -200399 ±âŸ ¿¡·¯ other error // °ÔÀÓ ÆÄƼ¼Ç ID case -200401: return ERROR_SHANDABILLING_200401; // AREAIDLONGER -200401 ÀԷ±æÀÌ Ãʰú long case -200402: return ERROR_SHANDABILLING_200402; // AREAIDNULL -200402 ºñ¾îÀÖÀ½ null case -200403: return ERROR_SHANDABILLING_200403; // AREAIDILLEGAL -200403 ºÒ¹ý ¹®ÀÚ Æ÷ÇÔµÊ format error case -200499: return ERROR_SHANDABILLING_200499; // AREAIDOTHER -200499 ±âŸ ¿¡·¯ other error // ¼¼¼Ç id case -200501: return ERROR_SHANDABILLING_200501; // SESSIDLONGER -200501 ÀԷ±æÀÌ Ãʰú long case -200502: return ERROR_SHANDABILLING_200502; // SESSIDNULL -200502 ºñ¾îÀÖÀ½ null case -200503: return ERROR_SHANDABILLING_200503; // SESSIDILLEGAL -200503 ºÒ¹ý ¹®ÀÚ Æ÷ÇÔµÊ format error case -200504: return ERROR_SHANDABILLING_200504; // SESSIDERRFORMAT -200504 Æ÷¸ä ¿¡·¯(Á¶ÇÕ ºÒ¹ý) format error case -200599: return ERROR_SHANDABILLING_200599; // SESSIDOTHER -200599 ±âŸ ¿¡·¯ other error // µ¥ÀÌÅÍÆÐŶ id case -200601: return ERROR_SHANDABILLING_200601; // UNIQUEIDLONGER -200601 ÀԷ±æÀÌ Ãʰú long case -200602: return ERROR_SHANDABILLING_200602; // UNIQUEIDNULL -200602 ºñ¾îÀÖÀ½ null case -200603: return ERROR_SHANDABILLING_200603; // UNIQUEIDILLEGAL -200603 ºÒ¹ý ¹®ÀÚ Æ÷ÇÔµÊ format error case -200604: return ERROR_SHANDABILLING_200604; // UNIQUEIDERRFORMAT -200604 Æ÷¸ä ¿¡·¯(Á¶ÇÕ ºÒ¹ý) format error case -200605: return ERROR_SHANDABILLING_200605; // UNIQUEIDREPEAT -200605 uniqueid Áߺ¹µÊ id repeat case -200699: return ERROR_SHANDABILLING_200699; // UNIQUEIDOTHER -200699 ±âŸ ¿¡·¯ null // ¿ùµå ID case -200801: return ERROR_SHANDABILLING_200801; // GROUPIDLONGER -200801 ÀԷ±æÀÌ Ãʰú long case -200802: return ERROR_SHANDABILLING_200802; // GROUPIDNULL -200802 ºñ¾îÀÖÀ½ null case -200803: return ERROR_SHANDABILLING_200803; // GROUPIDILLEGAL -200803 ºÒ¹ý ¹®ÀÚ Æ÷ÇÔµÊ format error case -200899: return ERROR_SHANDABILLING_200899; // GROUPIDOTHER -200899 ±âŸ ¿¡·¯ other error // ½ÃÀ۽ð£ case -201301: return ERROR_SHANDABILLING_201301; // BEGINTIMELONGER -201301 ÀԷ±æÀÌ Ãʰú long case -201302: return ERROR_SHANDABILLING_201302; // BEGINTIMENULL -201302 ºñ¾îÀÖÀ½ null case -201303: return ERROR_SHANDABILLING_201303; // BEGINTIMEILLEGAL -201303 ºÒ¹ý ¹®ÀÚ Æ÷ÇÔµÊ format error case -201304: return ERROR_SHANDABILLING_201304; // BEGINTIMEERRLONGFOMAT -201304 Æ÷¸Ë ¿¡·¯, YYYY-MM-DD hh:mi:ss Æ÷¸ËÀ̾î¾ß ÇÔ format error case -201305: return ERROR_SHANDABILLING_201305; // BEGINTIMEERRSHORTFOMAT -201305 ºÒ¹ý ¹®ÀÚ Æ÷ÇԵʣ¬YYYY-MM-DD Æ÷¸ËÀ̾î¾ß ÇÔ format error case -201399: return ERROR_SHANDABILLING_201399; // BEGINTIMEOTHER -201399 ±âŸ ¿¡·¯ other error // Á¾·á½Ã°£ case -201401: return ERROR_SHANDABILLING_201401; // ENDTIMELONGER -201401 ÀԷ±æÀÌ Ãʰú long case -201402: return ERROR_SHANDABILLING_201402; // ENDTIMENULL -201402 ºñ¾îÀÖÀ½ null case -201403: return ERROR_SHANDABILLING_201403; // ENDTIMEILLEGAL -201403 ºÒ¹ý ¹®ÀÚ Æ÷ÇÔµÊ format error case -201404: return ERROR_SHANDABILLING_201404; // ENDTIMEERRLONGFOMAT -201404 Æ÷¸Ë ¿¡·¯, YYYY-MM-DD hh:mi:ss Æ÷¸ËÀ̾î¾ß ÇÔ format error case -201405: return ERROR_SHANDABILLING_201405; // ENDTIMEERRSHORTFOMAT -201405 ºÒ¹ý ¹®ÀÚ Æ÷ÇԵʣ¬YYYY-MM-DD Æ÷¸ËÀ̾î¾ß ÇÔ format error case -201406: return ERROR_SHANDABILLING_201406; // ENDTIMEERRVALUE -201406 Á¾·á½Ã°£ÀÌ ½ÃÀ۽𣺸´Ù Å­ error value case -201499: return ERROR_SHANDABILLING_201499; // ENDTIMEOTHER -201499 ±âŸ ¿¡·¯ other error // µ¥ÀÌÅÍ ÆÐŶ id case -201501: return ERROR_SHANDABILLING_201501; // ORDERIDLONGER -201501 ÀԷ±æÀÌ Ãʰú long case -201502: return ERROR_SHANDABILLING_201502; // ORDERIDNULL -201502 ºñ¾îÀÖÀ½ null case -201503: return ERROR_SHANDABILLING_201503; // ORDERIDILLEGAL -201503 ºÒ¹ý ¹®ÀÚ Æ÷ÇÔµÊ format error case -201504: return ERROR_SHANDABILLING_201504; // ORDERIDERRFORMAT -201504 Æ÷¸Ë ¿¡·¯£¨Á¶ÇÕ ºÒ¹ý£© format error case -201505: return ERROR_SHANDABILLING_201505; // ORDERIDREPEAT -201505 orderidÁߺ¹ ID repeat case -201599: return ERROR_SHANDABILLING_201599; // ORDERIDOTHER -201599 ±âŸ ¿¡·¯ other error // °ú±Ý ŸÀÔ case -201901: return ERROR_SHANDABILLING_201901; // PAYTYPELONGER -201901 ÀԷ±æÀÌ Ãʰú long case -201902: return ERROR_SHANDABILLING_201902; // PAYTYPENULL -201902 ºñ¾îÀÖÀ½ null case -201903: return ERROR_SHANDABILLING_201903; // PAYTYPEILLEGAL -201903 ºÒ¹ý ¹®ÀÚ Æ÷ÇÔµÊ format error case -201904: return ERROR_SHANDABILLING_201904; // PAYTYPEERRVALUE -201904 ÀÔ·Â ¿¡·¯(ƯÁ¤°ªÀ» °¡ÁöÁö ¾ÊÀ½) error value case -201999: return ERROR_SHANDABILLING_201999; // PAYTYPEOTHER -201999 ±âŸ ¿¡·¯ other error // ¼Òºñ ŸÀÔ case -202001: return ERROR_SHANDABILLING_202001; // APPTYPELONGER -202001 ÀԷ±æÀÌ Ãʰú long case -202002: return ERROR_SHANDABILLING_202002; // APPTYPENULL -202002 ºñ¾îÀÖÀ½ null case -202003: return ERROR_SHANDABILLING_202003; // APPTYPEILLEGAL -202003 ºÒ¹ý ¹®ÀÚ Æ÷ÇÔµÊ format error case -202004: return ERROR_SHANDABILLING_202004; // APPTYPEERRVALUE -202004 ÀÔ·Â ¿¡·¯(ƯÁ¤°ªÀ» °¡ÁöÁö ¾ÊÀ½) error value case -202099: return ERROR_SHANDABILLING_202099; // APPTYPEOTHER -202099 ±âŸ ¿¡·¯ other error // Ä¿Çøµ ŸÀÔ case -202101: return ERROR_SHANDABILLING_202101; // COUPLETYPELONGER -202101 ÀԷ±æÀÌ Ãʰú long case -202102: return ERROR_SHANDABILLING_202102; // COUPLETYPENULL -202102 ºñ¾îÀÖÀ½ null case -202103: return ERROR_SHANDABILLING_202103; // COUPLETYPEILLEGAL -202103 ºÒ¹ý ¹®ÀÚ Æ÷ÇÔµÊ format error case -202104: return ERROR_SHANDABILLING_202104; // COUPLETYPEERRVALUE -202104 ÀÔ·Â ¿¡·¯(ƯÁ¤°ªÀ» °¡ÁöÁö ¾ÊÀ½) error value case -202199: return ERROR_SHANDABILLING_202199; // COUPLETYPEOTHER -202199 ±âŸ ¿¡·¯ other error // ±Ý¾× case -202201: return ERROR_SHANDABILLING_202201; // AMOUNTLONGER -202201 ÀԷ±æÀÌ Ãʰú long case -202202: return ERROR_SHANDABILLING_202202; // AMOUNTNULL -202202 ºñ¾îÀÖÀ½ null case -202203: return ERROR_SHANDABILLING_202203; // AMOUNTILLEGAL -202203 ºÒ¹ý ¹®ÀÚ Æ÷ÇÔµÊ format error case -202204: return ERROR_SHANDABILLING_202204; // AMOUNTNEGATIVE -202204 ¸¶À̳ʽº ¼ýÀÚ ÀÔ·Â error value case -202205: return ERROR_SHANDABILLING_202205; // AMOUNTZERO -202205 0À» ÀÔ·Â error value case -202206: return ERROR_SHANDABILLING_202206; // AMOUNTERRVALUE -202206 ÀÔ·ÂÇÑ ¼ýÀÚ°¡ ³Ê¹« Å­ error value case -202299: return ERROR_SHANDABILLING_202299; // AMOUNTOTHER -202299 ±âŸ ¿¡·¯ other error // ºô¸µ ÇÒÀÎÀ² case -202301: return ERROR_SHANDABILLING_202301; // DISCOUNTLONGER -202301 ÀԷ±æÀÌ Ãʰú long case -202302: return ERROR_SHANDABILLING_202302; // DISCOUNTNULL -202302 ºñ¾îÀÖÀ½ null case -202303: return ERROR_SHANDABILLING_202303; // DISCOUNTILLEGAL -202303 ºÒ¹ý ¹®ÀÚ Æ÷ÇÔµÊ format error case -202399: return ERROR_SHANDABILLING_202399; // DISCOUNTOTHER -202399 ±âŸ ¿¡·¯ other error // Ŭ¶óÀÌ¾ðÆ® IP ÁÖ¼Ò case -202501: return ERROR_SHANDABILLING_202501; // IPLONGER -202501 ÀԷ±æÀÌ Ãʰú long case -202502: return ERROR_SHANDABILLING_202502; // IPNULL -202502 ºñ¾îÀÖÀ½ null case -202503: return ERROR_SHANDABILLING_202503; // IPILLEGAL -202503 ºÒ¹ý ¹®ÀÚ Æ÷ÇÔµÊ format error case -202504: return ERROR_SHANDABILLING_202504; // IPERRVALUE -202504 ÀÔ·Â ¿¡·¯(ÁöÁ¤ ¹üÀ§³»¿¡ ¾øÀ½) error value case -202599: return ERROR_SHANDABILLING_202599; // IPOTHER -202599 ±âŸ ¿¡·¯ other error // »óÅ case -204401: return ERROR_SHANDABILLING_204401; // STATUSLONGER -204401 ÀԷ±æÀÌ Ãʰú long case -204402: return ERROR_SHANDABILLING_204402; // STATUSNULL -204402 ºñ¾îÀÖÀ½ null case -204403: return ERROR_SHANDABILLING_204403; // STATUSILLEGAL -204403 ºÒ¹ý ¹®ÀÚ Æ÷ÇÔµÊ format error case -204404: return ERROR_SHANDABILLING_204404; // STATUSERRVALUE -204404 ÀÔ·Â ¿¡·¯(ÁöÁ¤ÇÑ °ª°ú ÀÏÄ¡ÇÏÁö ¾ÊÀ½) error value case -204499: return ERROR_SHANDABILLING_204499; // STATUSOTHER -204499 ±âŸ ¿¡·¯ other error // À¯Àú uid case -200211: return ERROR_SHANDABILLING_200211; // UIDLONGER -200211 ÀԷ±æÀÌ Ãʰú long // CBS¼­ºñ½º ó¸® case -300001: return ERROR_SHANDABILLING_300001; // CBSDB_IS_DISCONNECT -300001 cbs DB Á¢¼Ó ¿¡·¯ sql connect error case -300102: return ERROR_SHANDABILLING_300102; // CBSDB_PROC_ERROR -300002 cbs sql ½ÇÇà ¿¡·¯ sql error case -300103: return ERROR_SHANDABILLING_300103; // UNAUTHOR_OPERATION -300003 ±ÇÇÑ ºÎ¿©ÇÏÁö ¾ÊÀº ¿äû ÆÐŶ ŸÀÔ unauthor case -300201: return ERROR_SHANDABILLING_300201; // AMOUNT_NOT_MATCHING -300201 ±Ý¾× ºÒÀÏÄ¡ amount error case -390001: return ERROR_SHANDABILLING_390001; // RES_TIMEOUT -390001 ÀÀ´ä ½Ã°£ Ãʰú response time out // Åë½Å ¹Ýȯ-API case -401001: return ERROR_SHANDABILLING_401001; // SOCKDISCONNECT -401001 socket ¿¬°á ²÷±è socket disconnect case -401002: return ERROR_SHANDABILLING_401002; // SOCKIP_OR_PORTERR -401002 ¼­¹ö ip/port ¿¡·¯ IP Port error case -401003: return ERROR_SHANDABILLING_401003; // SOCKCONNECTFAIL -401003 socket ¿¬°á ½ÇÆÐ socket connect fail case -401004: return ERROR_SHANDABILLING_401004; // SOCKLOCALFAILED -401004 ·ÎÄà ÃʱâÈ­ SOCKET ½ÇÆÐ initial fail case -401005: return ERROR_SHANDABILLING_401005; // SNDBUF_OVERFLOW -401005 ¹ß¼Û buffer overflow send buffer overflow case -401006: return ERROR_SHANDABILLING_401006; // RCVBUF_OVERFLOW -401006 Á¢¼ö 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 Åë½Å ¿¡·¯ socket error case -401011: return ERROR_SHANDABILLING_401011; // NOINITCLIENT -401011 Ŭ¶óÀÌ¾ðÆ® ÃʱâÈ­ÇÏÁö ¾ÊÀ½ client without initial // QUEUE ó¸® case -402001: return ERROR_SHANDABILLING_402001; // QUEUECACHEFULL -402001 Çà·Ä cache full queue cache full case -402002: return ERROR_SHANDABILLING_402002; // QUEUELOCKERROR -402002 Çà·Ä lock ¿¡·¯ queue lock error case -402003: return ERROR_SHANDABILLING_402003; // QUEUEOPERATEERROR -402003 Çà·Ä Push/Pop Àü¼Û ÆÄ¶ó¹ÌÅÍ ¿¡·¯(ºó pointer) queue param error case -402004: return ERROR_SHANDABILLING_402004; // QUEUEEMPTY -402004 Çà·ÄÀÌ ºñ¾îÀÖÀ½, Pop µ¥ÀÌÅÍ ¾øÀ½ queue null case -402005: return ERROR_SHANDABILLING_402005; // QUEUEDATAERR -402005 cache ³»¿ë ¿¡·¯, ±æÀ̰¡ cache °¡´É ¹üÀ§ Ãʰú µî queue data error // µ¥ÀÌÅÍ Àü¼Û case -403001: return ERROR_SHANDABILLING_403001; // USERDATALENERROR -403001 À¯Àú µ¥ÀÌÅÍ Push ±æÀÌ¿Í ¼­ºñ½º ±¸Á¶ ±æÀÌ ºÒÀÏÄ¡ data length error case -403002: return ERROR_SHANDABILLING_403002; // COMMUDATAERROR -403002 Á¢¼öÇÑ Åë½Å µ¥ÀÌÅÍ ÆÐŶ ¾Ïȣȭ ¿¡·¯ encrypt error // POINTER insert case -404001: return ERROR_SHANDABILLING_404001; // POINTERNULL -404001 ºó pointer »ðÀÔ(pointer°¡ ÇÊ¿äÇÑ °÷¿¡¼­ ºó pointer¸¦ Á¢¼öÇÒ ¼ö ¾øÀ½) point null // µ¥ÀÌÅÍ encode/decode case -405001: return ERROR_SHANDABILLING_405001; // ENCRYPTERROR -405001 ¾Ïȣȭ ¿¡·¯ encrypt error case -405002: return ERROR_SHANDABILLING_405002; // DECRYPTERROR -405002 ¾ÏÈ£ÇØÁ¦ ¿¡·¯ decrypt error // ¼³Á¤Á¤º¸ case -406001: return ERROR_SHANDABILLING_406001; // PARAMPATHERROR -406001 cache ȤÀº annular ÆÄÀÏ °æ·Î ¿¡·¯ path error case -406002: return ERROR_SHANDABILLING_406002; // CONFLOADFAILED -406002 ¼³Á¤ ÆÄÀÏ ·Îµù ½ÇÆÐ fail to load ini case -406003: return ERROR_SHANDABILLING_406003; // CONFGETFAILED -406003 ¼³Á¤ ¼­¹ö¿¡¼­ ¼³Á¤ ȹµæ ½ÇÆÐ fail to get ini case -406004: return ERROR_SHANDABILLING_406004; // RELOADFAILED -406004 ·Îµù ½ÇÆÐ fail to reload // ¼³Á¤¼­¹ö Á¢¼Ó Á¤º¸ case -407001: return ERROR_SHANDABILLING_407001; // ERR_MSG_TYPE -407001 ¿äû ¸Þ½ÃÁö Áß ¸Þ½ÃÁö ŸÀÔ ¿¡·¯ message type error case -407002: return ERROR_SHANDABILLING_407002; // IP_NOT_EXIST -407002 ¿äû ¸Þ½ÃÁö Áß hostIP°¡ ¾øÀ½ hostip not exist case -407003: return ERROR_SHANDABILLING_407003; // ID_NOT_EXIST -407003 ¿äû ¸Þ½ÃÁö Áß hostId°¡ ¾øÀ½ hostid not exist case -407004: return ERROR_SHANDABILLING_407004; // SYS_FLAG_INVALID -407004 OS flag ¿¡·¯ system flag error case -407005: return ERROR_SHANDABILLING_407005; // MSG_LEN_ERR -407005 ¿äû ¸Þ½ÃÁö ±æÀÌ ¿¡·¯ message length error case -407006: return ERROR_SHANDABILLING_407006; // CANNOTCONNECTDB -407006 DB ¿¬°á ½ÇÆÐ db connect error case -407099: return ERROR_SHANDABILLING_407099; // UNKNOWNED_ERR -407099 ±âŸ ¿¡·¯ other error // ±âŸ case -499999: return ERROR_SHANDABILLING_499999; // UNDECLARE_ERROR -499999 ±âŸ ¿¡·¯ other error default: return ERROR_GENERIC_UNKNOWNERROR; // ¿¡·¯¹øÈ£ ÁöÁ¤ ÇÊ¿ä !!! } return ERROR_DB; } #endif // #if defined(_CH) || defined(_EU)