コンテンツにスキップ

ウェブショップ購入制限の検証

Hiveコンソール > コミュニティ & ウェブショップ > ウェブショップ > 商品管理では、ウェブショップ商品のアカウント別購入制限および購入数量制限を設定できます。両方の設定に対して最大購入数量を構成できます。

ウェブショップ購入制限検証は、ウェブショップで決済された商品がこれら2つの設定で定義された最大購入数量を超えているかどうかを確認する作業です。本項目ではこの作業のためにウェブショップ決済情報検証APIを提供します。

概要

ウェブショップ決済情報検証API呼び出しを含む、ウェブショップ購入制限検証の全体的な流れは以下のとおりです。

  1. アプリ開発社: PG決済実装およびPG社設定を参照し、ウェブショップでユーザーがPG決済を行う際に商品を付与するプロセスを構築します。
  2. アプリ開発社: ユーザーがアカウント別購入制限または購入数量制限がある商品を購入した場合、商品付与前にウェブショップ決済情報検証APIを呼び出します。
  3. Hive サーバ: 当該注文で商品の最大購入数量超過の有無を検証します。検証結果はAPIレスポンスとして開発社サーバーへ返却します。
  4. アプリ開発社: 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

{
    "code": 100,
    "msg": "success"
}

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 : ####) 一時的な "####" エラー