跳到主要内容

开发指南

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 WebGL HarmonyOS

方法签名

信息
  • 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
productDescriptionFalsestring商品描述信息
提示

productDescription 目前仅用于调用抖音游戏全官服促活分账 SDK 上报付费事件,取值由游戏项目组与抖音游戏协商确定,用于辅助付费数据的精细化分析。

  • 例如,玩家购买的是「6元礼包」,但实际在游戏内获得的付费道具为「冬日温暖礼包」,此时可将 productDescription 传入该道具名称,以便更准确地进行数据归因与分析。
  • 如果分析维度关注的是商品类型,也可以将 productDescription 传为商品分类,如:代币、月卡、礼包等。
  • 若游戏项目组未与抖音游戏进行深度合作或无相关分析需求,该字段可不传。

PurchaseResult

PropertiesSupported PlatformsTypeDescription
orderIdAndroid iOS Windows WebGL HarmonyOSstring世游服务端生成的订单号

Error

CodeSupported PlatformsDescription
USER_CANCELLEDAndroid iOS Windows HarmonyOS用户主动取消操作
NETWORK_ERRORAndroid iOS Windows WebGL HarmonyOS网络错误
SERVER_ERRORAndroid iOS Windows WebGL HarmonyOS服务端错误
THIRD_PARTY_ERRORAndroid iOS Windows HarmonyOS第三方 SDK 错误
PENDINGAndroid WebGL支付状态未知
UNKNOWN_ERRORAndroid iOS Windows WebGL HarmonyOS未知错误