Files
Sun1602/Server/AuthSystem/AuthServer/IntegratedBillingServerSessionLib.h
T
2022-10-26 12:25:11 +08:00

102 lines
2.9 KiB
C++

#ifndef AUTHSERVER_INTEGRATIONBILLINGSERVERSESSION_H
#define AUTHSERVER_INTEGRATIONBILLINGSERVERSESSION_H
#pragma once
#ifdef __NA_20100201_INTERGRATEDBILLING_
#include <ClientStub/WBANetwork/WBANetwork.h>
#include <ClientStub/BillEventHandler.h>
#include "IntegratedBillingServerSessionOb.h"
class IntegratedBillingServerSessionLib : public CBillEventHandler
{
public:
IntegratedBillingServerSessionLib(void);
~IntegratedBillingServerSessionLib(void);
public:
void SetBillingInterface(IntegratedBillingServerSessionInterface* BillingInterface) {m_BillingInterface = BillingInterface;};
protected:
//빌링서버의 로그를 작성 이벤트 이다.
//함수내부에서 로그를 남길수 있도록 해야한다.
void WriteLog(char* szMsg);
//빌링서버의 연결 성공 여부 (새로 연결되면 현재 차감이 필요한 모든 유저의 정보를 다시 로그인해야한다.)
// success: 연결 성공 여부
// error: 에러코드
void OnNetConnect(bool success, DWORD error);
//빌링서버로 보낸 데이타 전송 여부
// size: 전송된 패킷 사이즈
void OnNetSend( int size );
//빌링서버와 세션이 끊겼을때 (빌링서버가 죽은것으로 처리 해야한다.)
// error: 에러코드
void OnNetClose( DWORD error );
//유저의 결재 정보가 변경되었을 때
// dwBillingGUID: 빌링 유니크 아이디
// RealEndDate: 정액 사용 종료 일시 (__time32_t)
// EndDate: 정액 실제 종료 일시
// dwRestPoint: 정량 잔여 포인트
// nDeductType: 사용자 차감 유형
// nAccessCheck: 접근 체크 결과
// nResultCode: 처리결과
void OnUserStatus(DWORD dwAccountGUID,
long dwBillingGUID,
DWORD RealEndDate,
DWORD EndDate,
double dRestPoint,
double dRestTime,
short nDeductType,
short nAccessCheck,
short nResultCode);
// 차감 타입 조회
void OnInquireDeductType(long AccountID, long Result);
//PC 방 멀티 유저 조회 결과
// 결과 코드
// 1 : 가능
// 2 : 불가
// -1 : PC방 정보 없음
void OnInquireMultiUser(long AccountID, long RoomGUID, long Result);
// 특정 PC방의 게임 별 정량 보유 여부를 조회한다.
void OnInquirePCRoomPoint(long AccountGUID,
long RoomGUID,
long GameCode,
long ResultCode);
// 개인의 게임 별 정액, 정량 보유 여부를 조회한다.
void OnInquirePersonDeduct(long AccountGUID,
long GameCode,
long ResultCode);
// 2010.09.07 빌링에 로그인한 유저 정보를 인증서버에 전송
// 실제로 인증서버에 로그인 했는지 체크하도록 알려주는 인터페이스이다.
// 로그인 후 3분에 한번씩 전송 된다.
// 상품이 변경되는 시점과, 로그아웃 되면 전송되지 않는다.
void OnCheckLoginUser(long AccountID, long BillingGUID);
//PC 방 아이피 정보가 변경되었을때 업데이트 한다.
void OnPCRoomIPUpdate(long RoomGUID, long GameCode);
private:
IntegratedBillingServerSessionInterface* m_BillingInterface;
};
#endif //__NA_20100201_INTERGRATEDBILLING_
#endif //AUTHSERVER_INTEGRATIONBILLINGSERVERSESSION_H