이 주제에서는 Google Play에서 받을 수 있는 실시간 개발자 알림의 유형을 나열하고 설명합니다.
인코딩
Cloud Pub/Sub 주제에 관한 각 게시에는 하나의 base64로 인코딩된 데이터 필드가 포함되어 있습니다.
{
"message": {
"attributes": {
"key": "value"
},
"data": "eyAidmVyc2lvbiI6IHN0cmluZywgInBhY2thZ2VOYW1lIjogc3RyaW5nLCAiZXZlbnRUaW1lTWlsbGlzIjogbG9uZywgIm9uZVRpbWVQcm9kdWN0Tm90aWZpY2F0aW9uIjogT25lVGltZVByb2R1Y3ROb3RpZmljYXRpb24sICJzdWJzY3JpcHRpb25Ob3RpZmljYXRpb24iOiBTdWJzY3JpcHRpb25Ob3RpZmljYXRpb24sICJ0ZXN0Tm90aWZpY2F0aW9uIjogVGVzdE5vdGlmaWNhdGlvbiB9",
"messageId": "136969346945"
},
"subscription": "projects/myproject/subscriptions/mysubscription"
}
base64로 인코딩된 데이터 필드를 디코딩하면 DeveloperNotification
에 다음 필드가 포함됩니다.
{
"version": string,
"packageName": string,
"eventTimeMillis": long,
"oneTimeProductNotification": OneTimeProductNotification,
"subscriptionNotification": SubscriptionNotification,
"voidedPurchaseNotification": VoidedPurchaseNotification,
"testNotification": TestNotification
}
이러한 필드는 다음 표에 설명되어 있습니다.
속성 이름 | 값 | 설명 |
version | 문자열 | 이 알림의 버전입니다. 초기 버전은 '1.0'입니다. 이 버전은 다른 버전 필드와 다릅니다. |
packageName | 문자열 | 이 알림과 관련된 애플리케이션의 패키지 이름(예: 'com.some.thing')입니다. |
eventTimeMillis | long | 에포크 이후 이벤트가 발생한 타임스탬프(밀리초)입니다. |
subscriptionNotification | SubscriptionNotification | 이 필드가 있다면 이 알림은 정기 결제와 관련이 있으며 이 필드에는 정기 결제와 관련된 추가 정보가 포함됩니다. 이 필드는 oneTimeProductNotification, voidedPurchaseNotification, testNotification과 상호 배타적입니다. |
oneTimeProductNotification | OneTimeProductNotification | 이 필드가 있다면 이 알림은 일회성 구매와 관련이 있으며 이 필드에는 구매와 관련된 추가 정보가 포함됩니다. 이 필드는 subscriptionNotification, voidedPurchaseNotification, testNotification과 상호 배타적입니다. |
voidedPurchaseNotification | VoidedPurchaseNotification | 이 필드가 있는 경우 이 알림은 무효화된 구매와 관련이 있으며, 이 필드에는 무효화된 구매와 관련된 추가 정보가 포함됩니다. 이 필드는 oneTimeProductNotification, subscriptionNotification, testNotification과 상호 배타적입니다. |
testNotification | TestNotification | 이 필드가 있다면 이 알림은 테스트 게시와 관련이 있습니다. 그리고 Google Play Console을 통해서만 전송됩니다. 이 필드는 oneTimeProductNotification, subscriptionNotification, voidedPurchaseNotification과 상호 배타적입니다. |
SubscriptionNotification
SubscriptionNotification
에는 다음 필드가 포함됩니다.
{
"version": string,
"notificationType": int,
"purchaseToken": string
}
속성 이름 | 값 | 설명 |
version | 문자열 | 이 알림의 버전입니다. 초기 버전은 '1.0'입니다. 이 버전은 다른 버전 필드와 다릅니다. |
notificationType | int | 정기 결제의 notificationType은 다음 값을 가질 수 있습니다.
|
purchaseToken | 문자열 | 정기 결제가 구매되었을 때 사용자 기기에 제공된 토큰입니다. |
예
다음은 새 정기 결제 구매 알림의 예입니다.
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"subscriptionNotification":
{
"version":"1.0",
"notificationType":4,
"purchaseToken":"PURCHASE_TOKEN"
}
}
OneTimeProductNotification
OneTimeProductNotification
에는 다음 필드가 포함됩니다.
{
"version": string,
"notificationType": int,
"purchaseToken": string,
"sku": string
}
속성 이름 | 값 | 설명 |
version | 문자열 | 이 알림의 버전입니다. 초기 버전은 '1.0'입니다. 이 버전은 다른 버전 필드와 다릅니다. |
notificationType | int | 알림의 유형으로, 다음 값이 포함될 수 있습니다.
|
purchaseToken | 문자열 | 구매가 이루어졌을 때 사용자 기기에 제공된 토큰입니다. |
sku | 문자열 | 구매된 일회성 제품 ID(예: 'sword_001')입니다. |
예
다음은 새로운 일회성 구매 알림의 예입니다.
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"oneTimeProductNotification":
{
"version":"1.0",
"notificationType":1,
"purchaseToken":"PURCHASE_TOKEN",
"sku":"my.sku"
}
}
VoidedPurchaseNotification
VoidedPurchaseNotification
에는 다음 필드가 포함됩니다.
속성 이름 |
값 |
설명 |
|
|
무효화된 구매와 관련된 토큰입니다. 이 정보는 신규 구매가 발생할 때 개발자에게 제공됩니다. |
|
|
무효화된 거래와 연결된 고유 주문 ID입니다. 일회성 구매의 경우 구매에 대해 생성된 유일한 주문 ID를 나타냅니다. 자동 갱신 정기 결제의 경우 갱신 거래마다 새 주문 ID가 생성됩니다. |
|
|
무효화된 구매의
|
|
|
무효화된 구매의
다수 수량 구매의 남은 총 수량이 환불되면 |
예
다음은 새로운 무효화된 구매 알림의 예입니다.
{
"version":"1.0",
"packageName":"com.some.app",
"eventTimeMillis":"1503349566168",
"voidedPurchaseNotification":
{
"purchaseToken":"PURCHASE_TOKEN",
"orderId":"GS.0000-0000-0000",
"productType":1
"refundType":1
}
}
VoidedPurchaseNotification 사용
RTDN 클라이언트가 VoidedPurchaseNotification
을 수신하면 다음 정보를 확인하세요.
packageName
: 앱을 식별합니다.eventTimeMillis
: 상태 변경이 발생한 시간을 개발자에게 알립니다.purchaseToken
: 제품이 구매되었을 때 사용자 기기에 제공된 토큰입니다.orderId
: 무효화된 거래와 관련된 주문을 식별합니다.productType
: 무효화된 구매가 인앱 구매인지 정기 결제인지를 알려줍니다.refundType
: 구매를 무효화한 환불 유형을 나타냅니다.
사용 권한 조정을 위해 해야 할 작업이 올바른 구매와 주문을 찾는 것뿐이라면 현재 필요한 모든 정보가 있는 것입니다. 무효화된 구매에 관한 추가 정보를 얻는 방법을 알아보려면 주어진 타임스탬프 사이에 무효화된 구매의 추가 데이터를 제공하는 풀 모델인 Google Play Voided Purchases API를 확인하세요.
부분적으로 무효화된 다중 수량 구매의 경우 purchases.products
에서 제공하는 refundableQuantity
필드에는 무효화되지 않은 구매한 제품의 잔여 수가 포함됩니다.
TestNotification
TestNotification
에는 다음 필드가 포함됩니다.
{
"version": string
}
속성 이름 | 값 | 설명 |
version | 문자열 | 이 알림의 버전입니다. 초기 버전은 '1.0'입니다. 이 버전은 다른 버전 필드와 다릅니다. |
예
다음은 테스트 알림의 예입니다.
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503350156918",
"testNotification":
{
"version":"1.0"
}
}