跳到主要内容

常见问题

如何处理限购类商品超卖问题?

限购类商品指的是游戏内限制购买次数的商品,例如每日限购、战令、月卡等。此类商品可能由于玩家恶意操作、网络延迟等原因多次购买,造成游戏内资损。

因为支付整个流程都是异步的,世游侧只能被动等待 Store 回调,无法实时知道玩家是否成功购买,所以无论是世游侧还是游戏侧都无法彻底杜绝限购类问题。

为了避免减少超卖问题及带来的影响,游戏侧需要按照以下方案做出限制和声明:

  1. 限制订单创建频率 该方法不限制成功购买频率,仅限制未付款订单的创建频率,且对所有商品均适用。 实现逻辑为:当用户创建订单时,若系统检测到此商品存在未支付订单,会自动计算与当前时间的时间间隔。 若间隔小于配置的限制时间(建议设置为10秒左右,可根据用户体验调整),则拒绝创建新订单并给予用户明确提示。

  2. 明确限购策略与超卖处理 需提前明确告知玩家限购类商品的购买规则(如仅限购买一次)及多次购买的后续处理规则。 同时应建立完善的超卖处理机制,当发生超卖情况时,可向用户发放同等价值的游戏币、代金券、道具等补偿,以避免因客诉处理不及时导致玩家差评。

游戏服务端创建世游侧订单时,返回 HTTP Status Code 400 错误?

常见的错误类型包括:

  1. 请求参数错误,请仔细检查参数是否正确,参考 内购与支付-创建订单
  2. 商品未创建,内购的商品,需要在 世游发行平台 Console内购与支付 页面进行配置。
  3. 游戏侧 reference_id 在世游侧已存在,游戏侧需要保证用于标识创建订单请求的 reference_id 唯一。

游戏服务端创建世游侧订单时,为什么需要提供游戏服务器、游戏角色信息?

创建订单时需要提供订单元数据,具体参考 内购与支付-创建订单,包含以下字段:

  • zone_id 游戏大区 ID,必须有值,由世游侧运维提供。
  • server_id 游戏服务器 ID,如果游戏不分服(通服架构),请使用 zone_id 作为 server_id
  • role_id 游戏角色 ID,如果游戏内没有角色 ID,取值可以为 Combo ID
  • role_name 游戏角色名,如果游戏内没有角色名,取值可以为 role_id
  • role_level 游戏角色等级,如果游戏内没有角色等级,可以根据游戏特性提供比较有意义的值(例如:游戏内关卡进度)。

提供以上信息主要用于以下场景:

  1. 问题定位与故障排查:世游侧技术团队可通过这些信息快速定位支付异常订单。
  2. 数据分析与业务优化:支持购买行为分析、用户画像构建等数据驱动决策。
  3. 用户服务支持:当玩家反馈支付问题时,客服可通过游戏服务器、游戏角色信息快速查询订单状态。

游戏服务端接收到退款通知,要怎么处理?

在接收到订单 退款通知 时,首先游戏需按照文档 请求鉴权 对请求的合法性进行校验。

此通知代表订单已经被退款,游戏侧需要对订单内发放的游戏资产进行回收。

在扣除玩家道具/货币时,需要考虑以下特殊情况的处理:

  • 玩家道具数量不足:退款后,玩家道具数量可能会不足,常见做法是将游戏道具扣除为负数(注意道具数量字段需要为 int 类型,而不是 unsigned int,防止出现溢出)。
  • 玩家订单未发货: 理论上可能会出现订单发货通知游戏侧一直没有处理,玩家来退款的情况。此时游戏侧应先排查处理订单发货问题,再进行游戏资产回收。
  • 玩家恶意退款:有些玩家会通过退款刷道具,针对这种 "恶意" 退款的玩家,游戏侧可以通过数据分析识别出这些玩家,并对其封号处理。