HarmonyOS开发中,接入消耗型/非消耗型商品购买的完整必要流程如下:
一、准备阶段
配置商品信息:
- 在AppGallery Connect上配置好要出售的商品信息,包括商品ID、商品名称、价格、类型(消耗型或非消耗型)等。
检查用户环境:
- 应用客户端需要向IAP Kit发送
queryEnvironmentStatus
请求,判断用户当前登录的华为账号所在的服务地是否在IAP Kit支持结算的国家/地区中(当前仅支持中国大陆)。 - 如果请求失败,则隐藏相关的IAP功能入口。
二、展示商品阶段
获取商品信息:
- 应用客户端通过
queryProducts
接口向IAP Kit发起请求,获取在AppGallery Connect上配置的商品信息。 - 发起请求时,需在请求参数中携带相关的商品ID,并根据实际配置指定商品类型。
展示商品列表:
- 应用客户端根据返回的商品信息,向用户展示可供购买的商品列表,包含商品名称、价格等信息。
三、购买流程阶段
发起购买请求:
- 用户选择商品并发起购买后,应用客户端向IAP Kit发起
createPurchase
购买请求,请求中携带商品ID、商品类型等信息。
展示收银台:
- IAP Kit接收到购买请求后,创建订单并展示收银台,收银台展示商品名称、商品价格等信息。
用户支付:
四、购买结果确认及权益发放阶段
接收购买结果:
- 购买成功后,可以通过应用客户端或应用服务器接收购买结果。建议通过应用服务器接收购买结果以提高安全性。
- 方式一:通过客户端接收购买结果。用户购买成功时,IAP Kit返回包含订单信息的
PurchaseData
数据。应用客户端向应用服务器上报PurchaseData
数据。 - 方式二:通过服务器接收购买结果。开发者可以接入服务端关键事件通知,在用户购买成功时,IAP服务器将发送订单关键事件通知。应用服务器可以通过服务端订单状态查询接口向IAP服务器查询最新的订单信息,进一步确认订单的准确性。
解码验签:
- 应用服务器需对接收到的
PurchaseData.jwsPurchaseOrder
进行解码验签,成功后可得到PurchaseOrderPayload
的JSON字符串。
权益发放:
- 确认购买成功后,应用服务器检查当前
PurchaseOrderPayload
是否已发放权益,未发放则发放相关权益,并记录对应的订单信息(PurchaseOrderPayload
),用于后续检查权益发放状态。
确认发货:
- 发货成功后,应用客户端(或应用服务器)向IAP Kit发送
finishPurchase
请求,以此通知IAP服务器更新商品的发货状态,完成购买流程。 - 对于消耗型商品,IAP服务器会将相应商品重新设置为可购买状态;对于非消耗型商品,用户购买后永久拥有,无法再次购买该商品。
五、异常处理
- 在实际应用场景中,若出现异常(如网络错误、进程被中止等),可能导致应用无法知道用户实际是否支付成功,从而无法及时发放权益,即出现掉单情况。
- 为了确保权益发放,应用需要在特定场景(如应用启动时、购买请求返回特定错误码时)检查用户是否存在已购未发货的商品,并进行补发货处理。
以上就是HarmonyOS开发中接入消耗型/非消耗型商品购买的完整必要流程。
在HarmonyOS开发中,接入消耗型商品(如游戏内货币、道具等)和非消耗型商品(如游戏关卡、永久性道具等)的购买流程主要包括以下几个步骤:
在华为开发者联盟注册账号,并通过实名认证。
完成开发者资质审核,确保有权利销售商品。
在华为开发者联盟创建应用,并完成应用的初步开发。
上传应用并按照要求填写相关信息,通过华为审核后上架。
在华为开发者联盟中配置支付服务,包括设置支付渠道、接入支付SDK等。
在华为开发者联盟中设置商品信息,包括商品类型(消耗型或非消耗型)、价格、描述等。
在应用中集成华为IAP(In-App Purchase)SDK。
根据华为提供的文档和示例代码,实现商品查询、购买、发货等功能的代码。
以下为应用内购买的主要步骤:
在应用内展示商品列表,允许用户选择要购买的商品。
使用IAP SDK提供的API查询商品信息,如价格、描述等。
用户选择商品后,应用通过IAP SDK发起购买请求。
用户在华为支付界面确认购买,完成支付。
应用通过IAP SDK接收购买结果,包括成功、失败或取消等状态。
对于消耗型商品,应用在收到购买成功通知后,通过IAP SDK调用发货接口,将商品发放给用户。
对于非消耗型商品,应用不需要发货,但需要保存购买记录,以便用户可以在不同设备间同步商品状态。
在华为开发者联盟中创建测试账号,进行支付测试。
确保所有购买流程都能正常工作。
提交包含支付功能的新版本应用进行审核。
审核通过后,应用更新上线。
监控支付流程,确保稳定可靠。
根据用户反馈和数据分析,优化商品设置和购买体验。
在整个流程中,开发者需要严格遵守华为的开发者政策和法律法规,确保支付流程的合法性和用户权益的保护。