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


    背景

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

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

    为了更好的接入,这里先做了个功能验证,同步分享给大家了。

    实现方式

    1. manifest中Activity配置

    在Activity中配置 intent-filter过滤器

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

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

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

    在这里插入图片描述

    配置如图:

    在这里插入图片描述

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

    理论上应该在华为应用市场APP中测试打开这个地址的,但是当前因为我们游戏没有上架,且华为应用市场APP侧也无这样的测试环境,因此为了看下效果,自己弄了一个其他应用。

    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 格式。

    代码截图如下:

    在这里插入图片描述

    如上代码:只携带了一个字段就是 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

  • 相关阅读:
    cct,web技术
    cct信息安全
    TFS2010安装与管理
    centos7 opera济览器安装
    Hadoop 的常用组件一览
    Exception in thread "main" java.net.BindException: Address already in use: JVM_Bind
    gcc manual
    5350.support
    meminfo,df,
    WCF
  • 原文地址:https://www.cnblogs.com/developer-huawei/p/14100985.html
Copyright © 2020-2023  润新知