Samsung IAP
Docs
Software Development Kit
en
zh
Unity 插件
SamsungIAP_unity_plugin_v6.5.2.unitypackage (246KB) July 1, 2026
Samsung IAP Unity 插件 附带了用于集成必需的所有内容。
将 Samsung IAP 集成到您的应用程序中
此部分介绍了如何通过集成 Samsung IAP Unity Engine 插件方法来使用 Samsung 应用程序内购买 (IAP) 功能。
系统要求
要避免兼容性问题,插件需要以下 SDK:
Note 请仔细检查所有 SDK 的版本,否则将会导致兼容性问题。
插件安装
下载 插件。
请在 Unity 中单击“资产”→“导入程序包 ”。
选择与Samsung IAP相关的所有脚本和库的插件 文件。
Note 有关 Samsung IAP 方法调用的详细信息,请参阅《编程指南》 。
实施Samsung IAP
此部分介绍了如何通过进行插件方法调用以支持应用程序内项目的提供和销售,从而将 Samsung IAP 功能集成到您的 Android 应用程序中的基础方面。
Samsung IAP 脚本
将 Samsung IAP 脚本拖放到您所选择的 GameObject 中。
设置 IAP 操作模式
使用 SetOperationMode() 方法可设置操作模式。
Caution 在提交应用程序以供进行 Beta 版测试 或正常发布之前,请确保操作模式设置为 OPERATION_MODE_PRODUCTION。换言之,仅当卖家门户中的应用程序状态为正在注册 或正在更新 时,才必须设置 OPERATION_MODE_TEST 或 OPERATION_MODE_TEST_FAILURE。
模式
说明
OPERATION_MODE_PRODUCTION
StartPayment() 请求将按指定的方式处理,执行财务交易以使请求成功,并返回实际结果(成功或失败)。注意: 所有其他 IAP SDK 请求将按如下方式工作:只有在 OPERATION_MODE_PRODUCTION 模式下购买的项目才会视为已拥有的项目。
OPERATION_MODE_TEST
StartPayment() 请求将按指定的方式处理,未发生财务交易 除外(将不会针对项目购买向已许可的测试者计费),并且始终返回成功的结果 。 有关 OPERATION_MODE_TEST 模式下显示的付款窗口的详细信息,请参见付款窗口 所示。注意: 所有其他 IAP SDK 请求将按如下方式工作:只有在 OPERATION_MODE_TEST 模式下购买的项目才会视为已拥有的项目。 要购买应用程序内项目,测试者必须在卖家的卖家门户配置文件中注册为已许可测试者。在此模式下,已许可测试者始终可免费获取您的应用程序内项目。如果所有其他用户尝试购买应用程序内项目,将会显示错误消息。
OPERATION_MODE_TEST_FAILURE
所有 IAP SDK 请求将失败。 这旨在用作负面测试,以确保您的应用程序可以处理诸如输入和用户操作不正确这样的错误。
代码片段
SamsungIAP.Instance.SetOperationMode(OperationMode.OPERATION_MODE_TEST);
获取用户拥有的项目
Requirement 请确保在启动应用程序以检查未消耗的项目或订阅可用性时,始终调用 GetOwnedList()。
使用 GetOwnedList() 方法可获取有关用户已购买的部分或所有项目的信息:
类型
说明
item
消耗性项目和非消耗性项目
subscription
自动定期订阅项目
all
消耗性项目、非消耗性项目和自动定期订阅项目
Note 不会 返回先前报告为已消耗的所购买消耗性项目。不会 返回具有已过期订阅的所购买订阅项目。
代码片段
SamsungIAP.Instance.GetOwnedList(ItemType.all, OnGetOwnedList);
处理完成后,将触发 OnGetOwnedList 回调,其中包含有关指定的已购买项目和 API 调用处理的信息。
获取应用程序内项目详细信息
使用 GetProductsDetails() 方法可获取有关部分或所有应用程序内项目(已在可供用户购买的应用程序中注册)的详细信息(例如项目 ID、价格和说明):
指定一个或多个唯一的应用程序内项目 ID 值(逗号分隔),以获取有关所指定项目的信息。
指定空字符串 ("") 以获取有关所有已注册项目的信息。
代码片段
//获取有关三个应用程序内项目的信息
SamsungIAP.Instance.GetProductsDetails("com.mygame.product1, com.mygame.product2, com.mygame.product3", OnGetProductsDetails);
//获取有关所有应用程序内项目的信息
SamsungIAP.Instance.GetProductsDetails("", OnGetProductsDetails);
处理完成后,将触发 OnGetProductsDetails 回调,其中包含有关指定的项目和 API 调用处理的信息。
购买应用程序内项目
使用 StartPayment() 方法可对指定的应用程序内项目启动购买和付款交易。
您可以在调用 StartPayment() 请求时选择性地指定混淆后的账号 ID 和配置文件 ID。这些混淆后的账号 ID 和配置文件 ID 会在响应中返回。Galaxy Store 使用此值来检测欺诈性支付行为。
Note 此方法在 Samsung IAP Unity Engine Plugin v6.5.2 中已废弃:
SamsungIAP.Instance.StartPayment("com.mygame.product1", "pass_through_value", OnPayment);
pass_through_value, 是应用程序分配给项目购买和付款交易的唯一标识符,从 plugin v6.5.2 开始已废弃。
代码片段
SamsungIAP.Instance.StartPayment("com.mygame.product1", "obfuscatedAccountId", "obfuscatedProfileId", OnPayment);
处理完成后,将触发 OnPayment 回调,
其中包含有关已购买的项目、交易和 API 调用处理的信息。
通知 Samsung IAP 购买交易已处理
消耗性项目
使用 ConsumePurchasedItems() 方法和消耗性应用程序内项目的购买 ID,可以启用再次购买(无论用户是否实际使用了该项目)。
您的应用程序将在 OnPayment 和 OnGetOwnedList 回调中收到项目的购买 ID。
代码片段
SamsungIAP.Instance.ConsumePurchasedItems("purchaseId_1, purchaseId_2, purchaseId_3", OnConsume);
处理完成后,将触发 OnConsume 回调,
其中包含有关已消耗的项目和 API 调用处理的信息。
非消耗性项目和订阅
使用 AcknowledgePurchases() 方法可确认已经向用户授予一个或多个已购买的非消耗性项目或订阅的权利。
代码片段
SamsungIAP.Instance.AcknowledgePurchases("purchaseId_1, purchaseId_2, purchaseId_3", OnAcknowledge);
处理完成后,将触发 OnAcknowledge 回调,
其中包含有已确认的非消耗性项目和订阅和 API 调用处理的信息。
Note 在一个 ConsumePurchasedItems() 或 AcknowledgePurchases() 方法调用中验证项目的购买并报告所有未报告的项目之后,我们建议立即报告已购买的消耗性项目,以避免发生系统过载或故障。
获取订阅的优惠资格要求
使用 GetPromotionEligibility() 方法可返回为客户提供的订阅项目定价选项,例如免费试用期和初始优惠价。
代码片段
SamsungIAP.Instance.GetPromotionEligibility("subscItemId_1, subscItemId_2", OnGetPromotionEligibility);
处理完成后,将触发 OnGetPromotionEligibility 回调,其中包含有关指定的项目和 API 调用处理的信息。
更改订阅计划
使用 ChangeSubscriptionPlan() 方法可允许客户将现有订阅更改为相同订阅项目的其他等级。
Proration Mode
Description
INSTANT_PRORATED_DATE
立即升级或降级订阅。剩余订阅时间将根据差价进行调整,并通过推迟下一次账单日的方式,将其计入新订阅周期。无需额外付款。
INSTANT_PRORATED_CHARGE
仅适用于升级的订阅。立即升级订阅,但账单周期不变。向用户收取剩余期限的差价。
INSTANT_NO_PRORATION
仅适用于升级的订阅。立即升级订阅,在续订时按新价格收费。账单周期不变。
DEFERRED
续订时升级或降级订阅。续订时按新价格收费。降级将始终按该模式执行。
请参见按比例调整模式 ,详细了解四种模式。
Note 此方法在 Samsung IAP Unity Engine Plugin v6.5.2 中已废弃:
SamsungIAP.Instance.ChangeSubscriptionPlan("oldItemId", "newItemId", ProrationMode.INSTANT_PRORATED_CHARGE, "pass_through_value", OnChangeSubscriptionPlan);
pass_through_value, 是应用程序分配给项目购买和付款交易的唯一标识符,从 plugin v6.5.2 开始已废弃。
代码片段
SamsungIAP.Instance.ChangeSubscriptionPlan("oldItemId", "newItemId", ProrationMode.INSTANT_PRORATED_CHARGE, "pass_through_value", OnChangeSubscriptionPlan);
处理完成后,将触发 OnChangeSubscriptionPlan 回调,
其中包含有关已购买的项目、交易和 API 调用处理的信息。