Documentation index for AI agents

GS2-Money2 트랜잭션 액션

검증/소비/입수 각 트랜잭션 액션의 사양

Consume Action

소비 액션

Gs2Money2:WithdrawByUserId

사용자 ID를 지정하여 지갑에서 잔액 소비

지정된 사용자의 지갑에서 지정된 양의 통화를 소비합니다.
paidOnly가 false인 경우 무상 통화가 먼저 소비되고, 그다음 유상 통화가 소비됩니다.

수량 지정 가능한 액션: 예

반전 가능한 액션: 예

타입활성화 조건필수기본값값 제한설명
namespaceNamestring
~ 128자네임스페이스 이름
네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다.
userIdstring
~ 128자사용자ID
#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다.
slotint
0 ~ 100000000슬롯 번호
지갑 슬롯을 식별합니다. 플랫폼 간 잔액 공유가 허용되지 않는 경우, 서로 다른 슬롯을 사용하여 플랫폼별로 통화를 나누어 관리할 수 있습니다(예: iOS용과 Android용).
withdrawCountint
1 ~ 2147483646소비할 유료 통화 수량
paidOnlyboolfalse유료 통화만을 대상으로 할지 여부
timeOffsetTokenstring~ 1024자타임 오프셋 토큰
{
    "action": "Gs2Money2:WithdrawByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "slot": "[int]슬롯 번호",
        "withdrawCount": "[int]소비할 유료 통화 수량",
        "paidOnly": "[bool]유료 통화만을 대상으로 할지 여부",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
action: Gs2Money2:WithdrawByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  slot: "[int]슬롯 번호"
  withdrawCount: "[int]소비할 유료 통화 수량"
  paidOnly: "[bool]유료 통화만을 대상으로 할지 여부"
  timeOffsetToken: "[string]타임 오프셋 토큰"
transaction.service("money2").consume.withdraw_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    slot="[int]슬롯 번호",
    withdrawCount="[int]소비할 유료 통화 수량",
    paidOnly="[bool]유료 통화만을 대상으로 할지 여부",
    timeOffsetToken="[string]타임 오프셋 토큰",
})

Gs2Money2:VerifyReceiptByUserId

사용자 ID를 지정하여 영수증을 사용 완료 처리

지정된 사용자의 구매 영수증을 검증하고, 사용 완료로 기록합니다.
이벤트 로그가 기록되며, 네임스페이스에 설정된 영수증 검증 스크립트가 실행됩니다.

수량 지정 가능한 액션: 아니오

반전 가능한 액션: 아니오

타입활성화 조건필수기본값값 제한설명
namespaceNamestring
~ 128자네임스페이스 이름
네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다.
userIdstring
~ 128자사용자ID
#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다.
contentNamestring
~ 128자스토어 콘텐츠 모델 이름
receiptReceipt
영수증
timeOffsetTokenstring~ 1024자타임 오프셋 토큰
{
    "action": "Gs2Money2:VerifyReceiptByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "contentName": "[string]스토어 콘텐츠 모델 이름",
        "receipt": {
            "Store": "[string]스토어",
            "TransactionID": "[string]트랜잭션 ID",
            "Payload": "[string]페이로드"
        },
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
action: Gs2Money2:VerifyReceiptByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  contentName: "[string]스토어 콘텐츠 모델 이름"
  receipt:
    Store: "[string]스토어"
    TransactionID: "[string]트랜잭션 ID"
    Payload: "[string]페이로드"
  timeOffsetToken: "[string]타임 오프셋 토큰"
transaction.service("money2").consume.verify_receipt_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    contentName="[string]스토어 콘텐츠 모델 이름",
    receipt={
        store="[string]스토어",
        transactionID="[string]트랜잭션 ID",
        payload="[string]페이로드"
    },
    timeOffsetToken="[string]타임 오프셋 토큰",
})

Acquire Action

입수 액션

Gs2Money2:DepositByUserId

사용자 ID를 지정하여 지갑 잔액에 가산

지정된 사용자의 지갑에 지정된 입금 트랜잭션을 추가합니다.
각 입금 트랜잭션에 대해 이벤트 로그가 기록됩니다.

수량 지정 가능한 액션: 예

반전 가능한 액션: 예

타입활성화 조건필수기본값값 제한설명
namespaceNamestring
~ 128자네임스페이스 이름
네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다.
userIdstring
~ 128자사용자ID
#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다.
slotint
0 ~ 100000000슬롯 번호
지갑 슬롯을 식별합니다. 플랫폼 간 잔액 공유가 허용되지 않는 경우, 서로 다른 슬롯을 사용하여 플랫폼별로 통화를 나누어 관리할 수 있습니다(예: iOS용과 Android용).
depositTransactionsList<DepositTransaction>
1 ~ 1000 items입금 트랜잭션 목록
timeOffsetTokenstring~ 1024자타임 오프셋 토큰
{
    "action": "Gs2Money2:DepositByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "slot": "[int]슬롯 번호",
        "depositTransactions": [
            {
                "price": "[double]구매 가격",
                "currency": "[string]통화 코드",
                "count": "[int]과금 통화 수량",
                "depositedAt": "[long]입금 일시"
            }
        ],
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
action: Gs2Money2:DepositByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  slot: "[int]슬롯 번호"
  depositTransactions:
    - price: "[double]구매 가격"
      currency: "[string]통화 코드"
      count: "[int]과금 통화 수량"
      depositedAt: "[long]입금 일시"
  timeOffsetToken: "[string]타임 오프셋 토큰"
transaction.service("money2").acquire.deposit_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    slot="[int]슬롯 번호",
    depositTransactions={
        {
            price="[double]구매 가격",
            currency="[string]통화 코드",
            count="[int]과금 통화 수량",
            depositedAt="[long]입금 일시"
        }
    },
    timeOffsetToken="[string]타임 오프셋 토큰",
})