# 虚拟支付

# 介绍

快手海外小游戏虚拟货币是指游戏通过快手海外支付平台现金购买的游戏内货币,比如游戏内的钻石、点券等。虚拟货币可以用来兑换游戏内虚拟商品。 快手海外小游戏平台为游戏提供虚拟货币托管功能,游戏可以通过调用平台接口来实现虚拟货币充值、消费、查询、赠送等功能。

# 申请开通

  • 开通虚拟支付,开通此功能后,开发者可以在快手海外小游戏内提供虚拟物品与服务

  • 为保证交易安全,小游戏平台使用支付密钥对参数进行签名。支付密钥包括

    • 下单密钥:用于在创建订单阶段对参数进行签名及校验
    • 回调密钥:用于在回调阶段(将支付结果通知给开发者)对参数进行签名及校验

默认情况下,下单密钥、回调密钥与小游戏密钥(app_secret)相同。如有特殊需求,请联系快手海外小游戏平台运营人员。

# 开通条件

# 开通流程

  • 联系小游戏运营开通

  • 开通内购的时间大致需要1-2个工作日

# 备注

  • 虚拟货币支付目前只支持在安卓Android系统内使用,暂不开放苹果iOS系统内虚拟支付功能。

  • ks.requestPayment 接口回调是客户端支付 SDK 的回调结果,最终支付是否成功以查询余额是否增加为准,开发者需要在合适的场景进行查询并将结果展示在游戏页面中。

  • 目前平台支持服务端回调,开发者可以依据服务器回调结果判断本次支付是否成功。

  • 虚拟货币的查询,赠送和兑换,平台提供的是服务器接口。

  • 在发起支付前,用户需要先在游戏中完成登录

# 开发流程

# 接口

# 调用流程

  • step1. 订单签名: 用户选择购买货币后,游戏客户端首先通知游戏服务器创建对应商品的订单信息,做好签名传给游戏客户端;

  • setp2. 调用客户端接口: 游戏客户端携带 step1 中的订单信息调用平台的 ks.requestPayment 接口,完成支付流程;

  • setp3. 查询支付结果: 支付成功,可通过查询虚拟货币余额接口查询余额;

  • setp4. 通过兑换道具接口,扣减余额,然后在游戏内为用户增加道具。

流程图

# 关于签名

虚拟货币支付请求需要使用快手海外小游戏平台颁发的支付密钥参与签名,支付权限的开通及支付密钥获取请联系快手海外小游戏运营。

签名详细规则请参考 支付签名

# 错误码

错误码 说明
0 支付结果未知,需调用server端接口查询,此时不能认为是支付失败
1 支付成功
2 支付失败
3 取消支付
102 参数错误
110 签名错误
111 没有APP配置
112 APP未开通内购
113 缺少必传参数
115 余额不足
116 订单已存在
117 支付失败,请稍后重试
118 赠送失败,请稍后重试
119 创建账户失败,请稍后重试
120 充值货币失败,请稍后重试
131 渠道错误
141 请求已过期
142 您的请求有作弊风险,请稍后重试
400 参数不合法
1101 一级货币充值获取配置失败
1102 一级货币充值角色id不合法
1103 一级货币充值buyQuantity不合法

# 在国内测试Google Play支付的注意事项

在国内环境下测试Google Play支付时,需要准备好网络环境和测试设备,并确认测试手机和该账号付费能力可用,具体操作为:

  1. 确保测试机已安装Google三件套;
  2. 退出Google Play上所有账号,并清除Google Play应用的所有数据,以避免多账号相互干扰;
  3. 配置网络环境,确保可以打开目标国家的网络,然后打开Google Play,登录测试账号;
  4. 打开Google Play商店 --> 点击付费Tab --> 查看是否有付费应用,并且币种为对应国家的货币。

举例:使用Kwai App测试Google Play支付时,请确认可以连到巴西的网络,且付费应用的币种为巴西雷亚尔。

如果测试账号具有实际支付能力,则经过上述过程后,已可以进行真实支付流程测试。
如果测试账号没有实际支付能力(比如:未绑卡),可以考虑使用Google Play的内部测试功能,请将邮箱(建议使用Gmail)提供给Kwai小游戏平台运营人员进行处理。

# 常见问题

  1. Google三件套确认已正常安装,但无法拉起支付面板

    • 原因:支付过程中会从Google Play获取档位信息,如果用户所在区域信息有问题,会影响档位信息获取,进而导致充值面板拉起失败
    • 解决:联系小游戏平台运营人员,确认测试用户的桶和国家均在巴西
  2. 支付无法完成,出现错误码615

    • 原因:Kwai App向Google请求商品信息时失败
    • 解决:请检查网络设置
  3. 可以拉起支付面板,但最终支付失败,出现错误码614

    • 原因:为避免资金风险,在最终增加余额阶段,Kwai会对用户是否实际支付进行校验。对于内部测试账号,如果未加入到白名单中,则会因内部校验而失败
    • 解决:将相应订单的AppId、OpenId和ThirdPartyTradeNo信息,提供给小游戏平台运营人员进行加白处理
  4. 关于Google Play的内部测试