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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM