Deeplink实现华为应用外商品支付功能

背景

项目组游戏但愿接入华为的应用外支付功能,在华为应用市场的本游戏详情页点击商品支付,经过DeepLink连接从华为应用市场跳转至本游戏支付详情页,传递支付商品ID进行购买。java

参考文档:https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/appgallerykit-devguide-game#h1-1589804284330android

为了更好的接入,这里先作了个功能验证,同步分享给你们了。app

实现方式

1. manifest中Activity配置

在Activity中配置 intent-filter过滤器ide

<data android:scheme="agpms" android:path="/product/pay" android:host="com.sxx.huawei"/>

拼接以后的请求地址是:agpms://com.sxx.huawei/product/pay测试

连接格式要求以下文档格式 (如不按照此格式,营销地址上架审核会不经过)ui

在这里插入图片描述

配置如图:google

在这里插入图片描述

2. 跳转代码实现(此处是从外部应用中打开deeplink地址)

理论上应该在华为应用市场APP中测试打开这个地址的,可是当前由于咱们游戏没有上架,且华为应用市场APP侧也无这样的测试环境,所以为了看下效果,本身弄了一个其余应用。spa

Intent intent = new Intent();
 intent.setAction("com.google.open02");
 intent.addCategory("android.intent.category.DEFAULT");
 intent.setData(Uri.parse("agpms://com.sxx.huawei/product/pay?producid=TestProduct503"));
 startActivity(intent);

agpms://com.sxx.huawei/product/pay?producid=TestProduct503
问号后面参数携带通常是 key=value&key1=value1 格式。code

代码截图以下:对象

在这里插入图片描述

如上代码:只携带了一个字段就是 producid

3. 跳转至支付详情页面后解析deeplink地址中携带的字段参数

  • 若跳转以前详情页面未打开,则须要在Activity生命周期onCreate中获取intent对象解析data.
  • 若跳转以前详情页面未打开,则须要在Activity生命周期onCreate中获取intent对象解析data.

代码截图以下:

在这里插入图片描述

如上代码获取到data数据中商品ID以后,便可发起HMS SDK支付接口拉起支付页面。

FAQ

Deeplink 相关配置完成以后仍是没法打开?

通常是因为跳转时拼接的地址中的scheme,host,path 和配置中的不一致致使的,参考上面文档自检下。


原文连接:https://developer.huawei.com/consumer/cn/forum/topic/0204405033183830230?fid=18

原做者:AppGallery Connect

相关文章
相关标签/搜索