跳转至

应用内购买

开始之前

概述

本指南将解释如何使用 SohaGame SDK 的可用 API 集成应用内购买。
有两种方式进行应用内购买:

1. 使用 SDK 的支付中心界面

SDK 提供了一个支付中心界面,显示了应用内购买套餐的列表,您只需打开 SDK 的支付中心,让用户进行购买。
调用方法 openSDKPurchase

[SohaSDK openSDKPurchase];

2. 使用您的界面

如果您不想使用 SDK 的内置界面。例如:您希望用户在游戏中点击一个物品包时进行购买。
在这种情况下,您需要按照以下步骤操作:

第一步:获取应用内购买产品列表

调用方法 getListProduct

[SohaSDK getListProduct:^(NSArray *products, NSString *error) {
    self.paylist = [NSArray new];
    self.paylist = products;
}];
在上面的示例中,getListProduct方法返回名为products的数组,其中存储了SohaIAPProduct类型的元素。您可以使用SohaIAPProduct来显示有关内购产品的信息。

提示

在用户选择角色并保存此数据后,调用getListProduct方法。

步骤 2:进行内购

要进行内购,请调用以下方法:

[SohaSDK payProductWithID:productID ext:ext];
//or
[SohaSDK payProductShowLoadingWithID:productID ext:ext];
- productID 参数:由 SohaGame 提供的订单信息(例如 com.game.appdemo.tuixu1 等)。
- ext 参数:是一个字符串类型。您可以传递 JSON 参数,例如支付标识符、游戏包名称等,由游戏服务器提供。付款成功后,SohaGame 服务器将在游戏服务器回调链接中返回ext(游戏服务器回调链接文档在这里)。

以下示例演示了payProductWithID的用法:

SohaIAPProduct *iap = (SohaIAPProduct *)self.paylist[1];
[SohaSDK payProductShowLoadingWithID:iap.order_info ext:""];

第三步:处理应用内购买事件(可选)

当应用内购买完成后,SDK 将通过以下委托回调成功或失败事件

- (void)sohaDidPurchaseSuccess:(SohaTransaction *)transaction{

};

- (void)sohaDidPurchaseFailed:(SohaTransaction *)transaction purchaseError:(NSString *)error{

}

支付回调

用户成功进行应用内购买后,SohaGame 的服务器将通过支付回调向游戏的服务器提供交易信息。根据此信息,游戏执行向用户添加货币或物品的操作。

此部分的 API 文档可以在 此处 找到。

请参阅以下图表,以更好地理解应用内购买流程

iap diagram

测试支付说明

步骤 1:检查您的 AppleID 账户并退出媒体与购买部分

转到 设置 -> Apple ID(使用真实账户登录)-> 媒体与购买 -> 退出账户。

image

步骤 2:登录您的 SohaGameID 测试账户

打开应用程序 -> 在登录界面 -> 使用 Soha 测试账户登录(由 SohaGame 提供的必须账户)。
- SohaGameID 账户:由 SohaGame 提供

image

步骤 3:使用沙盒账户进行支付交易

点击充值套餐时 -> 弹出窗口要求输入账户 -> 使用沙盒账户登录(根据国家由 SohaGame 提供)-> 登录后,继续完成充值。
- 沙盒账户:由 SohaGame 在 Excel 信息文件中提供

image