GS2-Money2 트랜잭션 액션
검증/소비/입수 각 트랜잭션 액션의 사양
Consume Action
소비 액션
Gs2Money2:WithdrawByUserId
사용자 ID를 지정하여 지갑에서 잔액 소비
지정된 사용자의 지갑에서 지정된 양의 통화를 소비합니다.
paidOnly가 false인 경우 무상 통화가 먼저 소비되고, 그다음 유상 통화가 소비됩니다.
수량 지정 가능한 액션: 예
반전 가능한 액션: 예
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128자 | 네임스페이스 이름 네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||
| userId | string | ✓ | ~ 128자 | 사용자ID#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다. | ||
| slot | int | ✓ | 0 ~ 100000000 | 슬롯 번호 지갑 슬롯을 식별합니다. 플랫폼 간 잔액 공유가 허용되지 않는 경우, 서로 다른 슬롯을 사용하여 플랫폼별로 통화를 나누어 관리할 수 있습니다(예: iOS용과 Android용). | ||
| withdrawCount | int | ✓ | 1 ~ 2147483646 | 소비할 유료 통화 수량 | ||
| paidOnly | bool | false | 유료 통화만을 대상으로 할지 여부 | |||
| timeOffsetToken | string | ~ 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를 지정하여 영수증을 사용 완료 처리
지정된 사용자의 구매 영수증을 검증하고, 사용 완료로 기록합니다.
이벤트 로그가 기록되며, 네임스페이스에 설정된 영수증 검증 스크립트가 실행됩니다.
수량 지정 가능한 액션: 아니오
반전 가능한 액션: 아니오
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128자 | 네임스페이스 이름 네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||
| userId | string | ✓ | ~ 128자 | 사용자ID#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다. | ||
| contentName | string | ✓ | ~ 128자 | 스토어 콘텐츠 모델 이름 | ||
| receipt | Receipt | ✓ | 영수증 | |||
| timeOffsetToken | string | ~ 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를 지정하여 지갑 잔액에 가산
지정된 사용자의 지갑에 지정된 입금 트랜잭션을 추가합니다.
각 입금 트랜잭션에 대해 이벤트 로그가 기록됩니다.
수량 지정 가능한 액션: 예
반전 가능한 액션: 예
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128자 | 네임스페이스 이름 네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||
| userId | string | ✓ | ~ 128자 | 사용자ID#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다. | ||
| slot | int | ✓ | 0 ~ 100000000 | 슬롯 번호 지갑 슬롯을 식별합니다. 플랫폼 간 잔액 공유가 허용되지 않는 경우, 서로 다른 슬롯을 사용하여 플랫폼별로 통화를 나누어 관리할 수 있습니다(예: iOS용과 Android용). | ||
| depositTransactions | List<DepositTransaction> | ✓ | 1 ~ 1000 items | 입금 트랜잭션 목록 | ||
| timeOffsetToken | string | ~ 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]타임 오프셋 토큰",
})