GS2-Exchange 스크립트 트리거 레퍼런스

확장 스크립트를 호출하는 이벤트 트리거의 레퍼런스

트리거

exchange

교환

동기 실행 스크립트

교환 처리 전에, 스크립트가 동기 실행됩니다.

Request
타입 설명
namespace Namespace 네임스페이스
rateModel RateModel 교환 레이트 모델
userId string 교환을 실행하는 사용자 ID
count int 교환량
config Config[] 트랜잭션 변수에 적용할 설정값
Result
타입 필수 기본값 값 제한 설명
permit bool
✓
교환을 허용할지 여부
rateMode string
✓
“float” 배율 모드
rate float 1.0 0 ~ 1000 획득량 배율
logRate LogRate 로그를 사용한 획득량 보정
구현 예제
-- Request
local namespace = args.namespace
local rateModel = args.rateModel
local userId = args.userId
local count = args.count
local config = args.config

-- Business logic:
local permit = true
local rateMode = ""
local rate = 1.0
local logRate = nil

-- Result
result = {
  permit=permit,
  rateMode=rateMode,
  rate=rate,
  logRate=logRate
}

비동기 실행 스크립트

교환 처리 후에, 스크립트가 비동기 실행됩니다.

Request
타입 설명
namespace Namespace 네임스페이스
rateModel RateModel 교환 레이트 모델
userId string 교환을 실행하는 사용자 ID
count int 교환량
config Config[] 트랜잭션 변수에 적용할 설정값
구현 예제
-- Request
local namespace = args.namespace
local rateModel = args.rateModel
local userId = args.userId
local count = args.count
local config = args.config

-- 비동기 스크립트는 일반적으로 API 응답에 영향을 주지 않습니다.
-- 로그 출력이나 분석, 외부 알림 등에 사용됩니다.

result = {
}

incrementalExchange

코스트 상승형 교환

동기 실행 스크립트

코스트 상승형 교환 처리 전에, 스크립트가 동기 실행됩니다.

Request
타입 설명
namespace Namespace 네임스페이스
rateModel IncrementalRateModel 교환 레이트 모델
userId string 교환을 실행하는 사용자 ID
count int 교환량
config Config[] 트랜잭션 변수에 적용할 설정값
Result
타입 필수 기본값 값 제한 설명
permit bool
✓
교환을 허용할지 여부
구현 예제
-- Request
local namespace = args.namespace
local rateModel = args.rateModel
local userId = args.userId
local count = args.count
local config = args.config

-- Business logic:
local permit = true

-- Result
result = {
  permit=permit
}

비동기 실행 스크립트

코스트 상승형 교환 처리 후에, 스크립트가 비동기 실행됩니다.

Request
타입 설명
namespace Namespace 네임스페이스
rateModel IncrementalRateModel 교환 레이트 모델
userId string 교환을 실행하는 사용자 ID
count int 교환량
config Config[] 트랜잭션 변수에 적용할 설정값
구현 예제
-- Request
local namespace = args.namespace
local rateModel = args.rateModel
local userId = args.userId
local count = args.count
local config = args.config

-- 비동기 스크립트는 일반적으로 API 응답에 영향을 주지 않습니다.
-- 로그 출력이나 분석, 외부 알림 등에 사용됩니다.

result = {
}

calculateCost

코스트 상승형 교환을 위한 코스트 계산

동기 실행 스크립트

코스트 상승형 교환을 위한 코스트 계산 처리 전에, 스크립트가 동기 실행됩니다.

Request
타입 설명
namespace Namespace 네임스페이스
incrementalRateModel IncrementalRateModel 코스트 상승형 교환 모델
userId string 사용자ID
currentExchangeCount int 현재 교환 횟수
quantity int 교환 수량
Result
타입 필수 기본값 값 제한 설명
costMode string
✓
“num” 코스트 계산 방법
cost long 0 ~ 9223372036854775805 코스트
logCost LogCost 로그를 사용한 코스트 계산 결과
구현 예제
-- Request
local namespace = args.namespace
local incrementalRateModel = args.incrementalRateModel
local userId = args.userId
local currentExchangeCount = args.currentExchangeCount
local quantity = args.quantity

-- Business logic:
local costMode = ""
local cost = 0
local logCost = nil

-- Result
result = {
  costMode=costMode,
  cost=cost,
  logCost=logCost
}

acquireAwait

교환 대기

동기 실행 스크립트

교환 대기 처리 전에, 스크립트가 동기 실행됩니다.

Request
타입 설명
namespace Namespace 네임스페이스
rateModel RateModel 교환 레이트 모델
awaitModel Await 교환 대기
Result
타입 필수 기본값 값 제한 설명
permit bool
✓
교환 대기를 허용할지 여부
구현 예제
-- Request
local namespace = args.namespace
local rateModel = args.rateModel
local awaitModel = args.awaitModel

-- Business logic:
local permit = true

-- Result
result = {
  permit=permit
}

비동기 실행 스크립트

교환 대기 처리 후에, 스크립트가 비동기 실행됩니다.

Request
타입 설명
namespace Namespace 네임스페이스
rateModel RateModel 교환 레이트 모델
awaitModel Await 교환 대기
구현 예제
-- Request
local namespace = args.namespace
local rateModel = args.rateModel
local awaitModel = args.awaitModel

-- 비동기 스크립트는 일반적으로 API 응답에 영향을 주지 않습니다.
-- 로그 출력이나 분석, 외부 알림 등에 사용됩니다.

result = {
}