ウェブショップ購入制限の検証
Hiveコンソール > コミュニティ & ウェブショップ > ウェブショップ > 商品管理では、ウェブショップ商品のアカウント別購入制限および購入数量制限を設定できます。両方の設定に対して最大購入数量を構成できます。
ウェブショップ購入制限検証は、ウェブショップで決済された商品がこれら2つの設定で定義された最大購入数量を超えているかどうかを確認する作業です。本項目ではこの作業のためにウェブショップ決済情報検証APIを提供します。
概要¶
ウェブショップ決済情報検証API呼び出しを含む、ウェブショップ購入制限検証の全体的な流れは以下のとおりです。
- アプリ開発社: PG決済実装およびPG社設定を参照し、ウェブショップでユーザーがPG決済を行う際に商品を付与するプロセスを構築します。
- アプリ開発社: ユーザーがアカウント別購入制限または購入数量制限がある商品を購入した場合、商品付与前にウェブショップ決済情報検証APIを呼び出します。
- Hive サーバ: 当該注文で商品の最大購入数量超過の有無を検証します。検証結果はAPIレスポンスとして開発社サーバーへ返却します。
- アプリ開発社: APIレスポンスを確認し、検証条件(例: 最大購入数量超過の有無)を満たした場合のみ商品を付与します。最大購入数量を超過した注文であれば商品を付与せず、決済をキャンセルします。ウェブショップは検証結果に問題がない場合のみ販売完了数量として反映し、商品の残余数量を減少させます。APIレスポンスで無効な決済と判定された場合、開発社サーバーはユーザーに商品を付与せず決済をキャンセル処理する必要があります。
Warning
上記2と4のステップを実装しない場合、Hive コンソールで設定したアカウント別購入制限および購入数量制限機能は正常に動作しません。その場合、ウェブショップは現在販売済数量が0と判断し、表示される残り数量が減少しません。これは商品を継続購入できる状態になることを意味します。
Note
決済キャンセルの詳細は付与結果処理を参照してください。
ウェブショップ決済情報検証API¶
完了したウェブPG決済情報を基に、商品の最大購入数量超過など決済が有効かどうかを検証します。
Request information¶
区分 | 情報 |
---|---|
本番 URL | https://shop.withhive.com/api/webstore/check-quantity-limit |
SANDBOX URL | https://sandbox-shop.withhive.com/api/webstore/check-quantity-limit |
HTTP Method | POST |
Data Format | JSON |
Request header¶
フィールド | 説明 | 型 | 必須 | 備考 |
---|---|---|---|---|
Content-Type | application/json | String | Y | |
Authorization | Bearer トークン | String | Y | App Center > プロジェクト管理 > ゲーム詳細 > 基本情報 > Hive 認証キー |
Request header sample¶
Content-Type : application/json
Authorization : Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNjAyMDU2NzI2LCJqdGkiOiIxODczMTExMzIwIn0.3soFiHTPlObCoqR5xX9ZeOQTSvnHrHDHWmopP3QfWtY
Request body¶
フィールド | 説明 | 型 | 必須 |
---|---|---|---|
type | 通知タイプ(paid: 決済完了, cancelled: 決済キャンセル/返金) | String | Y |
market_pid | 商品固有ID | String | Y |
order_id | 注文番号 | String | Y |
server_id | 購入ユーザーが接続したゲームサーバ区分コード | String | Y |
appid | 上記market_pidが登録されたウェブショップ用AppID | String | Y |
cs_code | 購入ユーザーのPlayerID | String | Y |
paid_datetime | 決済完了時間 (Y-m-d H:i:s) | String | Y |
quantity | 購入数量 | String | Y |
iap_payload | ゲームサーバで商品付与のための追加アカウント情報 | String | Y |
Request body sample¶
{
"type": "paid",
"market_pid": "com.com2us.hivesdk.windows.microsoftstore.global.normal.item01",
"order_id" : "H3175513391360875943",
"server_id" : "1",
"appid" : "com.com2us.hivesdk.windows.hivepc",
"cs_code" : "20000023100",
"paid_datetime": "2025-08-14 10:12:18",
"quantity": "10",
"iap_payload": "{\"cs_code\":20000023100,\"data\":{\"server_id\":\"1\",\"server_name\":\"Server 1\",\"channels\":{\"channel_id\":\"11\",\"channel_name\":\"Channel 11\",\"characters\":{\"character_id\":\"111\",\"character_name\":\"Character 111\"}}}}",
}
Response body¶
フィールド | 説明 | 型 |
---|---|---|
code | 応答結果コード | Integer |
msg | 応答結果メッセージ | String |
- 100, 101 の応答のみ商品を正常付与します。
- 3001 は既に検証完了した注文です。まだ商品が付与されていない場合のみ付与します。
- 3002 は最大購入数量を超過した場合です。必ず該当注文を決済キャンセルしてください。 詳細は付与結果処理を参照。
Response body sample¶
Response codes¶
以下はレスポンスコード(code
)の仕様です。
code | msg | description |
---|---|---|
100 | success | 成功 |
101 | success(product no limit) | 成功(数量制限なし。追加検証不要) |
2000 | fail(method error) | 無効なHTTP METHODでのリクエスト |
2001 | fail(request parameter error) | 必須パラメータ欠如 |
2002 | fail(type parameter error) | 無効なパラメータ(type) |
2003 | fail(market_pid parameter error) | 無効なパラメータ(market_pid) |
2004 | fail(order_id parameter error) | 無効なパラメータ(order_id) |
2005 | fail(server_id parameter error) | 無効なパラメータ(server_id) |
2006 | fail(appid parameter error) | 無効なパラメータ(appid) |
2007 | fail(cs_code parameter error) | 無効なパラメータ(cs_code) |
2008 | fail(paid_datetime parameter error) | 無効なパラメータ(paid_datetime) |
2009 | fail(quantity parameter error) | 無効なパラメータ(quantity) |
2010 | fail(iap_payload parameter error) | 無効なパラメータ(iap_payload) |
2011 | fail(hiveCertificationKey parameter error) | 無効なパラメータ(hiveCertificationKey) |
3000 | fail(hiveCertificationKey invalid) | Hive 認証キー検証失敗 |
3001 | fail(already completed) | ⚠️ 既に検証完了し数量に反映された注文番号 既に商品付与済みなら追加付与不要 |
3002 | fail(purchase fail, purchase cancellation required) | ⚠️ 失敗(数量制限超過) 数量制限超過商品購入。決済キャンセル 必要 |
500 | fail(appid in DB not exist) | 対応するゲーム情報なし |
501 | fail(gameprefix not exist) | appIdに対応するウェブショップ情報取得失敗 先にウェブショップ作成必須 |
502 | fail(####) | その他 "####" エラー |
503 | fail(product info in DB not exist) | market_pidに対応する商品情報なし Hiveコンソール > コミュニティ & ウェブショップ > ウェブショップ > 商品管理 に事前登録必要 |
504 | fail(####) | その他 "####" エラー |
505 | fail(temporary error : ####) | 一時的な "####" エラー |