应用内购买¶
开始之前¶
- 您需要将 SohaGame SDK 集成 到您的 iOS 游戏中。
- 您需要将 集成事件 到您的 iOS 游戏中。
概述¶
本指南将解释如何使用 SohaGame SDK 的可用 API 集成应用内购买。
有两种方式进行应用内购买:
1. 使用 SDK 的支付中心界面¶
SDK 提供了一个支付中心界面,显示了应用内购买套餐的列表,您只需打开 SDK 的支付中心,让用户进行购买。
调用方法 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];
- 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 文档可以在 此处 找到。
请参阅以下图表,以更好地理解应用内购买流程
测试支付说明¶
步骤 1:检查您的 AppleID 账户并退出媒体与购买部分¶
转到 设置 -> Apple ID(使用真实账户登录)-> 媒体与购买 -> 退出账户。
步骤 2:登录您的 SohaGameID 测试账户¶
打开应用程序 -> 在登录界面 -> 使用 Soha 测试账户登录(由 SohaGame 提供的必须账户)。
- SohaGameID 账户:由 SohaGame 提供
步骤 3:使用沙盒账户进行支付交易¶
点击充值套餐时 -> 弹出窗口要求输入账户 -> 使用沙盒账户登录(根据国家由 SohaGame 提供)-> 登录后,继续完成充值。
- 沙盒账户:由 SohaGame 在 Excel 信息文件中提供