跳到主要内容

开发指南

Combo SDK 支持世游游戏商城,以及各大主流的第三方应用商店的内购。

游戏可以针对不同的发行版本合理的选用应用商店。运营同学可以在 世游发行平台 > 游戏产品 > 游戏设置 > 发行版本 中启用游戏选用的应用商店。

集成前准备

  1. 参考 创建游戏,在世游发行平台完成游戏的创建。
  2. 已经获得游戏的 接入参数
  3. 已经获得接入所需的 SDK 资源
  4. 完成 项目配置初始化 工作。
  5. 完成 账号与登录 功能接入。

流程图

无论世游游戏商城,还是第三方应用商店,内购与支付的流程统一如下:

img

  • 1.2 必须由游戏服务端向世游服务端发起创建订单请求。
  • 1.3 世游服务端返回的 订单 Token 是一个包含订单信息的 JWT,Token 的有效期为 2 小时。
  • 2.3 支付结果异步回调 与 3.1 支付结果异步通知 的先后顺序并不固定,即:有可能 2.3 先发生,也有可能 3.1 先发生。
  • 2.3 的客户端回调并不代表玩家准确、正确的完成了本次购买。收到该回调时可以给出玩家一些友好提示、引导,例如 "购买成功,请耐心等待","购买失败,请联系客服"。
  • 游戏侧发放道具,必须以 3.1 的服务端通知为依据。
  • 游戏服务端的处理细节,请阅读 服务端接入 文档。

发起购买

购买数量

警告
  • 发起购买前,需要调用 IsFeatureAvailable(Feature.PRODUCT_QUANTITY) 方法,判断该渠道是否支持选择商品数量。
  • 如果不支持,游戏客户端则需要对 商品多数量购买 进行限制,即商品数量始终为 1。

Android 平台上的华为和荣耀联运渠道的支付系统,不支持 选择商品数量。即玩家在界面上选择商品数量为多个,实际付款时仍然是按照商品单价进行支付。

支持平台

Android iOS Windows

方法签名

信息
  • Purchase() 方法必须在游戏的服务端创建订单成功并获得订单 Token 后才能调用。
  • 如果购买失败,建议对相应的错误进行处理,例如给出错误提示。
public static void Purchase(PurchaseOptions opts, Action<Result<PurchaseResult>> callback);

代码示例

Show Code
void Purchase()
{
if(ComboSDK.IsFeatureAvailable(Feature.PRODUCT_QUANTITY))
{
// 支持 选择商品数量
OnPurchase(productId, quantity);
}
else
{
// 不支持 选择商品数量, 即商品数量为 1
OnPurchase(productId, 1);
}
}

void OnPurchase(string productId, int quantity)
{
// 注意:须向游戏服务端传入 商品数量
GameClient.CreateOrder(
productId,
quantity,
orderToken =>
{
var opts = new PurchaseOptions { orderToken = orderToken };
ComboSDK.Purchase(opts, (Result<PurchaseResult> result) =>
{
if (result.IsSuccess)
{
var purchaseResult = result.Data;
var orderId = purchaseResult.orderId
}
else
{
var error = result.Error;
Debug.LogError("支付失败:" + error.DetailMessage);
}
});
},
() =>{}
);
}

方法参数

ParametersRequiredTypeDescription
optsTruePurchaseOptions购买接口传入的参数集
callbackTrueAction<Result<PurchaseResult>>购买商品后的回调方法,用于接收 Purchase 的结果

PurchaseOptions

ParametersRequiredTypeDescription
orderTokenTruestring世游服务端创建的订单 Token

PurchaseResult

PropertiesSupported PlatformsTypeDescription
orderIdAndroid iOSstring世游服务端生成的订单号

Error

ErrorSupported PlatformsDescription
UNKNOWN_ERRORAndroid iOS Windows未知错误
USER_CANCELLEDAndroid iOS Windows用户主动取消操作
NETWORK_ERRORAndroid iOS Windows网络错误
SERVER_ERRORAndroid iOS Windows服务端错误
STORE_ERRORAndroid iOS Windows应用商店返回的错误
THIRD_PARTY_ERRORAndroid第三方 SDK 错误