目录

联运游戏需完成以下内容的开发: 

业务

必选/可选

(中国大陆)

必选/可选

(非中国大陆)

说明

帐号/游戏

必选

有条件可选

  • 中国大陆发布的应用:需要按照华为要求接入游戏启动、游戏登录、浮标、防沉迷功能,其他游戏特性可选集成。

  • 中国大陆以外发布的应用:不强制要求接入游戏服务,但必须接入华为帐号。

初始化华为分析

强烈推荐

可选

联运游戏建议在应用启动时初始化华为分析服务,便于您统计和分析应用基础数据。

升级

必选

可选

  • 中国大陆发布的应用:应用启动时必须使用华为升级接口进行应用升级。

  • 中国大陆以外发布的应用:不强制要求。

应用内支付

必选

必选

联运游戏必须接入华为应用内支付。

应用外支付

推荐

不支持

联运游戏需要在华为应用市场应用详情页面展示商品时接入,目前仅支持发布地区包含中国大陆的应用。

认证服务

强烈推荐

强烈推荐

联运游戏推荐接入认证服务,可以帮助开发者统一管理包括华为帐号、微信、邮箱、匿名帐号等多种帐号类型的用户,使开发者免于自行搭建用户认证系统。

崩溃服务

推荐

推荐

联运游戏推荐接入崩溃服务,实时监测应用的崩溃情况,快速解决崩溃问题。

A/B测试

推荐

推荐

联运游戏推荐使用A/B测试服务,通过分组实验判断不同方案优劣,优化应用体验。

性能管理推荐推荐联运游戏推荐使用性能管理服务,实时监控游戏的性能情况,快速精准修复性能问题,持续提升用户体验。

帐号/游戏

游戏启动与登录

中国大陆发布的联运游戏,必须按照华为要求进行游戏启动和登录。

  1. 游戏启动功能开发请参见游戏启动。

  2. 游戏登录开发请参见游戏登录。

中国大陆以外地区发布的联运游戏, 游戏启动和游戏登录不强制按照华为要求接入,但必须支持华为帐号登录,具体参见华为帐号开发指南。

浮标和防沉迷

中国大陆发布的游戏需要接入浮标和防沉迷功能,中国大陆以外地区可选接入。

游戏特性

其他的游戏特性(例如成就、事件),开发者可根据实际需求选择接入,参见游戏服务开发指南。

初始化华为分析

场景介绍

华为分析服务(Huawei Analytics)预置大量分析模型,可帮助您清晰地了解用户的行为方式,从而实现用户、产品、内容的深度洞察,让您实现基于数据驱动的运营,可以就应用营销和产品优化制定明智的决策。

联运服务要求开发者在应用启动时初始化华为分析服务,用于采集华为预定义的自动采集事件,包括:

自动采集事件的详细说明请参考自动采集事件。

注意事项

不同终端平台的限制:

隐私说明

华为分析服务作为数据处理者不会主动收集用户的个人数据,由开发者按适用的法律法规决定采集哪些个人数据,并维护个人用户在其个人数据方面享有的权利。如果开发者有采集用户数据,请参考 样例 在应用中提供隐私声明。

开发步骤

在应用启动时,初始化HUAWEI Analytics Kit。

  1. @Override
  2. protected void onCreate(Bundle savedInstanceState) {
  3.    super.onCreate(savedInstanceState);
  4.    setContentView(R.layout.activity_main);
  5.    //打开SDK日志开关
  6.    HiAnalyticsTools.enableLog();
  7.    HiAnalyticsInstance instance = HiAnalytics.getInstance(this);
  8. }

初始化完成后,HUAWEI Analytics Kit将自动采集系统级事件和Activity页面事件,开发者可以通过华为分析功能进行一些基础数据分析,详细指导请参见华为分析操作指南。

如果开发者需要实现更复杂的预置事件和自定义事件埋点与上报,请参见华为分析开发指南。

升级

应用升级的详细步骤请参见应用升级检测。

应用内商品支付

联运应用接入华为支付,需要参考华为支付开发指南开发应用内支付支付相关功能。

应用外商品支付

应用外商品是指在AppGallery Connect的商品管理系统(PMS)中创建的商品,进行了商品营销配置后,可以直接在华为应用市场的应用详情页中展示商品宣传图、商品名称、商品描述,供用户点击购买。

注意:

应用外PMS商品支付功能目前仅支持发布地区包含中国大陆的应用。


应用外商品支付分为以下两种方式:

      - 兑换码支付:开发者可以提前在华为AppGallery Connect中配置商品兑换码,用户使用兑换码购买华为应用市场的商品后,华为服务器直接通知开发者服务器完成商品发货。

- HMS Core发起支付:用户点击购买华为应用市场的商品后由华为HMS Core发起支付,在支付完成后由华为服务器通知开发者服务器完成商品发货。

DeepLink方式的应用外商品支付仅需在配置商品营销信息时配置DeepLink地址,用户点击购买后将直接跳转到该DeepLink地址,后续支付和发货流程与应用内商品支付流程一致,参见华为支付开发指南。

兑换码支付方式仅需参考配置虚拟商品配置商品兑换码,并在配置商品营销信息时配置发货地址即可,无需额外代码开发。

HMS Core发起支付的方式需要开发者开发商品直购和掉单查询功能,本章节将具体介绍此功能的开发。

前提条件

已参见配置商品营销信息配置商品营销信息。

商品直购

接收发货通知:

1、商品直购成功后,华为数字商品服务器会调用通知发货接口通知开发者服务器对已经完成购买的商品发货。

请求消息样例:

  1. POST {第三方应用服务器url} HTTP/1.1
  2. Content Type : application/json ; charset=UTF-8
  3. {
  4.  "data": {
  5.    "developerId": "234234234",
  6.    "appId": "1231333",
  7.    "orderId": "sdfsfff32324324234234",
  8.    "productNo": "product344",
  9.    "openId": "openId13123",
  10.    "count": 1,
  11.    "ts": 12312313123131123
  12.  },
  13.  "sign": "string"
  14. }

2、开发者参见获取验签公钥获取用于验证订单信息的公钥。

3、开发者服务器收到发货通知后,参考验签示例对发货通知消息的sign字段验签,并根据查询订单相关数据的有效性,向华为服务器返回处理结果。

返回消息样例:

  1. {
  2.  "error": {
  3.    "errorCode": 0,
  4.    "errorMsg": "string"
  5.  }
  6. }
  7. or
  8. {
  9.    "data": {
  10.    "result": 0
  11.  }
  12. }

4、开发者根据商品ID和当前用户信息完成发货操作,此部分由开发者自行完成。

发货成功主动通知:

1、开发者参考创建API客户端章节创建用于访问华为服务器接口的API客户端。

说明:

API客户端仅需创建一次。

2、开发者调用获取Token接口获取用于API客户端认证的的access_token。

3、开发者服务器在发货成功后调用发货成功通知接口向华为服务器发送通知,传入access_token。通知成功后华为服务器刷新订单状态。

请求消息样例:

  1. {
  2.  "orderId": "string",
  3.  "productNo": "string",
  4.  "openId": "string",
  5.  "status": 0
  6. "ts": 12312313123131123
  7. }

响应消息样例:

  1. {
  2.  "error": {
  3.    "errorCode": 0,
  4.    "errorMsg": "string"
  5.  }
  6. }
  7. or
  8. {
  9.  "data": {
  10.    "result": 0
  11.  }
  12. }

掉单查询

商品直购后通知发货过程可能发生通知发货失败而产生掉单,此时华为服务会将该订单标识为未发货状态。当应用启动时需要主动查询当前华为帐号是否有未发货的订单,如果有掉单数据需通知开发者服务器发货。开发者服务器完成发货后通知华为服务器发货成功,华为服务器将订单状态修改为发货状态。

开发步骤:

1、应用启动时主动调用JosApps.getProductClient方法初始化ProductClient实例。

  1. ProductClient productClient =  JosApps.getProductClient(this);

2、应用调用ProductClient.getMissProductOrder方法查询未发货的订单。

说明:

本步骤仅为建议,开发者可根据查询结果感知当前设备中是否存在已登录的华为帐号,正式的查询将在步骤4中进行。

HMS SDK会根据当前设备中已经登录授权的华为帐号查询该帐号的掉单数据。如果当前设备中未登录华为帐号,则不返回数据。

  1. productClient.getMissProductOrder(this)
  2.         .addOnSuccessListener(new OnSuccessListener<ProductOrderList>() {
  3.             @Override
  4.             public void onSuccess(ProductOrderList productOrderInfos) {
  5.                 if (productOrderInfos == null) {
  6.                     LogUtil.i("QueryDPSMissProductList", "not have miss product");
  7.                     return;
  8.                 }
  9.                 StringBuffer stringBuffer = new StringBuffer();
  10.                 for (ProductOrderInfo productOrderInfo : productOrderInfos) {
  11.                     stringBuffer
  12.                             .append("TradeId:").append(productOrderInfo.getTradeId()).append("\r\n")
  13.                             .append("ProductNo:").append(productOrderInfo.getProductNo()).append("\r\n")
  14.                             .append("OrderId:").append(productOrderInfo.getOrderId()).append("\r\n")
  15.                             .append("Sign:").append(productOrderInfo.getSign()).append("\r\n")
  16.                             .append("--------------\r\n:");
  17.                 }
  18.                 LogUtil.i("QueryDPSMissProductList", stringBuffer.toString());
  19.             }
  20.         }).addOnFailureListener(new OnFailureListener() {
  21.             @Override
  22.             public void onFailure(Exception e) {
  23.                 if (e instanceof ApiException) {
  24.                     ApiException apiException = (ApiException) e;
  25.                     LogUtil.i("QueryDPSMissProductList", "getMissProductOrder failed:" + apiException.getStatusCode());
  26.                 }
  27.             }
  28.         });

3、引导用户进行华为帐号授权登录。

说明:

为了更好的用户体验,建议开发者将华为帐号与开发者自己的帐号体系绑定,以便于用户可以同时浏览华为帐号和非华为帐号购买的订单。

4、用户的华为帐号授权登录后,应用再次调用ProductClient.getMissProductOrder方法确认掉单数据。

5、应用调用ProductOrderInfo.getSign方法获取订单信息中的签名字符串,使用获取验签公钥中获取的验签公钥参考对掉单数据验签对订单信息进行验签。

6、验签通过后,应用客户端通知应用服务端发货。开发者服务器发货完成后向华为服务发送通知,具体参见发货成功通知。

认证服务

AppGallery Connect认证服务提供了云侧服务和SDK,可以帮您为您的应用快速构建安全可靠的用户认证系统,以便您的应用可以对您的用户进行身份认证。认证服务支持与包括华为帐号服务在内的多种第三方认证系统对接,支持您的用户采用包括华为帐号在内的多种认证方式来登录您的应用和游戏。详细指导请参见认证服务开发指南。

崩溃服务

AppGallery Connect崩溃服务是一个轻量级崩溃分析服务,它可以零代码快速集成。集成崩溃服务后您可以通过崩溃报告了解您的应用崩溃情况,实时监测应用质量,快速解决崩溃问题,详细指导请参见崩溃服务开发指南。

A/B测试

A/B测试是一种对照实验方法,为目标制定多个实现方案,让一部分用户使用A方案,另一部分用户使用B方案,根据用户反馈来做方案选择,提高决策效率的同时降低决策风险,详细指导请参见A/B测试操作指南。

性能管理

AppGallery Connect性能管理服务提供分钟级应用性能监控能力,开发者可以在AppGallery Connect查看和分析性能管理服务收集到的应用性能数据,从而全面了解所开发应用的性能特点,快速精准修复应用存在的性能问题,持续提升应用的用户体验。详细指导请参见性能管理开发指南。