このドキュメントでは、サーバサイド IAP 検証の構成手順について説明します。
now.ggノーコード決済では、購入の真正性を確認するためにサーバサイドの検証機能を実装しています。検証に成功すると、ゲーム内で購入した商品をユーザに割り当てたり、購入した商品を消費済みとして処理することができます。
アプリにノーコード決済を実装する方法:
以下はnow.ggノーコード決済に関連するワークフローです。:
この手順を使用してnow.ggノーコード決済を使用したアプリ内課金を確認できます。
purchase_token
を受け取ります。purchase_token
は‘-nowgg-
’で始まります。これを使って、now.ggからのアプリ内課金を識別することができます。以下はアプリ内課金を確認する実装のサンプルです。:
def verify_purchase(package_name, product_id, purchase_token): # game-specific validation code if purchase_token.startswith("-nowgg-"): response = verify_purchase_with_nowgg( package_name, product_id, purchase_token) else: # continue verification with other providers # game-specific response handling code
以下のサンプルコードは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 Keyが無効です。 |
3901 | INVALID_PURCHASE_TOKEN | 渡された購入トークンが無効です。 |
ドキュメント改訂版 1.0