网页商店购买限制验证
Hive 控制台 > 社区 & 网页商店 > 网页商店 > 商品管理 可为网页商店商品设置账号购买限制与购买数量限制,并为两项设置各自配置最大购买数量。
网页商店购买限制验证用于检查网页商店中已支付的商品是否超出上述两项设置的最大购买数量。为此提供网页商店支付信息验证 API。
概述¶
包含调用 网页商店支付信息验证 API 在内的网页商店购买限制验证整体流程如下:
- 开发者:参考PG 支付实现与PG 设置,构建用户在网页商店通过 PG 支付后发放商品的流程。
- 开发者:当用户在网页商店购买具有账号购买限制或购买数量限制的商品时,在发放商品前调用网页商店支付信息验证 API。
- Hive 服务器:验证该订单是否超出商品最大购买数量。验证结果作为 API 响应返回给开发者服务器。
- 开发者:仅在验证条件(如未超出最大购买数量)通过时发放商品。若订单超出最大购买数量,则不发放商品并执行支付取消。网页商店仅在验证结果无问题时才会将数量计入已售并减少剩余数量。若 API 响应判定为无效支付,服务器不得向用户发放商品,且必须执行支付取消。
Warning
如未实现步骤 2 与 4,Hive 控制台中配置的账号购买限制与购买数量限制将无法正常工作。此时网页商店会认为尚无已售数量,显示的剩余数量不会减少,意味着商品可被无限购买。
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) | 无匹配 appId 的游戏信息 |
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 : ####) | 其他临时 "####" 错误 |