서버 측 IAP 인증을 설정하는 단계입니다.
now.gg 코딩 없이 결제 시스템은 구매의 진위 여부를 확인하기 위해 서버 측 인증을 사용하며 이후 게임은 구매한 상품을 유저에게 전달하고 구매를 소비한 것으로 표시합니다.
방법:
now.gg 코딩 없이 결제의 작업 프로세스는 다음과 같습니다.
now.gg 코딩 없이 결제를 사용하여 인앱 구매를 인증하실 수 있습니다.
purchase token
(구매 토큰)을 받게 됩니다.-nowgg-
로 시작하며 이를 사용하여 now.gg의 인앱 구매를 식별할 수 있습니다.다음은 예시입니다.
def verify_purchase(package_name, product_id, purchase_token): # 게임별 인증 로직 if purchase_token.startswith("-nowgg-"): response = verify_purchase_with_nowgg( package_name, product_id, purchase_token) else: # 다른 방식을 통해 계속 인증합니다. # 게임별 응답 처리 로직
다음 샘플 코드는 verifyPurchase
API 관련 요청 방식을 보여드립니다.
import requests url = "https://cloud-api.bluestacks.cn/v2/seller/order/verifyPurchase" payload = 'purchaseToken=<nowgg_purchase_token>' headers = { 'Authorization': '<payment_api_key_here>', 'Content-Type': 'application/x-www-form-urlencoded' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text)
purchaseToken
을 사용합니다.Payment API Key
는 nowStudio의 자격 증명에 있습니다. (자세히)다음은 verifyPurchase
API의 샘플 응답 메시지입니다.
{ "success": true, "code": 0, "reason": "success", "data": { "purchaseTimeMillis": "1630529397125", "purchaseState": 0, "consumptionState": 0, "developerPayload": "<developer_payload>", "orderId": "<orderId_here>", "kind": "nowgg#productPurchase", "regionCode": "JP" } }
변수 | 형 | 설명 |
---|---|---|
success | boolean | 성공 여부를 true 또는 false로 반환합니다. |
code | int | 성공하면 0을 반환하고 실패하면 0이 아닌 값을 반환합니다. |
reason | string | 오류 코드와 관련된 메시지를 반환합니다. (여기서 제공) |
purchaseTimeMillis | string (int 64) | 제품을 구매한 시간(에포크 이후 밀리초)입니다. |
purchaseState | int | 주문의 구매 상태입니다. 관련 값은 다음과 같습니다. 0: 미결제, 1: 결제, 2: 실패 |
consumptionState | int | 인앱 상품의 소비 상태입니다. 관련 값은 다음과 같습니다. 0: 아직 소비되지 않음, 1: 소비됨 |
developerPayload | string | 주문 관련 추가 정보 포함을 위한 개발자 지정 문자열입니다. |
orderId | string | 모든 인앱 구매 상품과 관련된 주문 ID(고유 거래 식별자)입니다. |
kind | string | 하드코딩된 nowgg#productPurchase 로 구매한 인앱 상품의 종류입니다. |
regionCode | string | 제품이 부여된 당시 유저의 ISO 3166-1 alpha-2 지역 코드입니다. |
구매를 인증한 후에는 소비됨으로 표시해야 합니다.
구매 소비에는 다음이 포함됩니다.
다음 샘플 코드는 consumePurchase
API를 통한 관련 요청 방법을 보여드립니다.
import requests url = "https://cloud-api.bluestacks.cn/v2/order/consumePurchase" payload = 'purchaseToken=nowgg-_purchase_token' headers = { 'Authorization': 'payment_api_key_here', 'Content-Type': 'application/x-www-form-urlencoded' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text)
purchaseToken
을 사용합니다.Payment API Key
는 nowStudio의 자격 증명에 있습니다. (자세히)다음은 consumePurchase
API의 샘플 응답 메시지입니다.
} "success": true, "code": 0, "reason": "success", "data": {} }
변수 | 형 | 설명 |
---|---|---|
success | boolean | 성공 여부를 true 또는 false로 반환합니다. |
code | int | 성공하면 0을 반환하고 실패하면 0이 아닌 값을 반환합니다. |
reason | string | 오류 코드와 관련된 메시지를 반환합니다. (여기서 제공) |
data | object | 응답 메시지로 반환된 데이터입니다. |
코드 | 메시지 | 설명 |
---|---|---|
3800 | ERROR_CONSUMING_PRODUCT | 제품을 소비하는 중에 오류가 발생했습니다. |
3900 | INVALID_AUTHORIZATION_KEY | 승인을 위해 제공된 API 키가 잘못되었습니다. |
3901 | INVALID_PURCHASE_TOKEN | 제공된 구매 토큰이 잘못되었습니다. |
다음 다이어그램은 ‘코딩 없이 결제’의 전체 흐름을 보여드립니다.
목차
목차
문서 Rev. 1.0