AppGallery Connect:應用外支付

來源: HUAWEI
作者:HUAWEI
時間:2021-03-26
16984
在AppGallery Connect的中創(chuàng)建的商品,進行了商品營銷配置后,可以直接在華為應用市場或游戲中心的應用詳情頁中展示商品宣傳圖、商品名稱、商品描述,供用戶點擊購買。

場景介紹

在AppGallery Connect的中創(chuàng)建的商品,進行了商品營銷配置后,可以直接在華為應用市場或游戲中心的應用詳情頁中展示商品宣傳圖、商品名稱、商品描述,供用戶點擊購買。

ia_6200000002.png

注意

應用外支付功能目前僅支持發(fā)布地區(qū)包含中國大陸的應用。

應用外支付分為以下兩種方式:

DeepLink方式:用戶點擊購買應用市場或游戲中心的商品后跳轉到您自己的APP商品地址,該地址可直接拉起您的APP,由APP自行完成后續(xù)的支付和發(fā)貨。

商品直購方式:分為兌換碼支付和華為應用市場發(fā)起支付。

    兌換碼支付:您可以提前在華為AppGallery Connect中配置商品兌換碼,用戶使用兌換碼購買華為應用市場的商品后,華為服務器直接通知開發(fā)者服務器完成商品發(fā)貨。

    華為應用市場發(fā)起支付:用戶點擊購買華為應用市場的商品后由華為應用市場發(fā)起支付,在支付完成后由華為服務器通知開發(fā)者服務器完成商品發(fā)貨。

DeepLink方式的應用外支付僅需在配置商品營銷信息時配置DeepLink地址,用戶點擊購買后將直接跳轉到該DeepLink地址,后續(xù)支付和發(fā)貨流程與應用內商品支付流程一致,參見華為支付開發(fā)指南。

兌換碼支付方式僅需參考配置虛擬商品配置商品兌換碼,并在配置商品營銷信息時配置發(fā)貨地址即可,無需額外代碼開發(fā)。

華為應用市場發(fā)起支付的方式需要您開發(fā)商品直購和掉單查詢功能,本章節(jié)將具體介紹此功能的開發(fā)。

前提條件

已參見配置商品營銷信息配置商品營銷信息。

商品直購

ia_6200000003.png

接收發(fā)貨通知:

商品直購成功后,華為數字商品服務器會調用通知發(fā)貨接口通知開發(fā)者服務器對已經完成購買的商品發(fā)貨。

請求消息樣例:

POST {第三方應用服務器url} HTTP/1.1 

Content Type : application/json ; charset=UTF-8 

{  

  "data": { 

    "developerId": "234234234", 

    "appId": "1231333", 

    "orderId": "sdfsfff32324324234234", 

    "productNo": "product344", 

    "openId": "openId13123", 

    "count": 1, 

    "ts": 12312313123131123 

  }, 

  "sign": "string" 

}  

參見獲取驗簽公鑰獲取用于驗證訂單信息的公鑰。

開發(fā)者服務器收到發(fā)貨通知后,參考驗簽示例對發(fā)貨通知消息的sign字段驗簽,并根據查詢訂單相關數據的有效性,向華為服務器返回處理結果。

返回消息樣例:

  "error": { 

    "errorCode": 0, 

    "errorMsg": "string" 

  }  

}  

or   

{  

    "data": { 

    "result": 0 

  } 

根據商品ID和當前用戶信息完成發(fā)貨操作,此部分由開發(fā)者自行完成。

發(fā)貨成功主動通知:

參考創(chuàng)建API客戶端章節(jié)創(chuàng)建用于訪問華為服務器接口的API客戶端。

說明

API客戶端僅需創(chuàng)建一次。

調用獲取Token接口獲取用于API客戶端認證的的access_token。

開發(fā)者服務器在發(fā)貨成功后調用發(fā)貨成功通知接口向華為服務器發(fā)送通知,傳入access_token。通知成功后華為服務器刷新訂單狀態(tài)。

請求消息樣例:

{   

   "orderId": "string", 

   "productNo": "string", 

   "openId": "string", 

   "status": 0, 

   "ts": 12312313123131123 

 }

響應消息樣例:

   "error": { 

       "errorCode": 0, 

       "errorMsg": "string" 

   }   

}    

or

{  

  "data": { 

       "result": 0 

   }    

}

掉單查詢

商品直購后通知發(fā)貨過程可能發(fā)生通知發(fā)貨失敗而產生掉單,此時華為服務會將該訂單標識為未發(fā)貨狀態(tài)。當應用啟動時需要主動查詢當前華為帳號是否有未發(fā)貨的訂單,如果有掉單數據需通知開發(fā)者服務器發(fā)貨。開發(fā)者服務器完成發(fā)貨后通知華為服務器發(fā)貨成功,華為服務器將訂單狀態(tài)修改為發(fā)貨狀態(tài)。

ia_6200000004.png

應用啟動時主動調用JosApps.getProductClient方法初始化ProductClient實例。

ProductClient productClient =  JosApps.getProductClient(this);

應用調用ProductClient.getMissProductOrder方法查詢未發(fā)貨的訂單。

說明

本步驟僅為建議,您可根據查詢結果感知當前設備中是否存在已登錄的華為帳號,正式的查詢將在步驟4中進行。

HMS Core SDK會根據當前設備中已經登錄授權的華為帳號查詢該帳號的掉單數據。如果當前設備中未登錄華為帳號,則不返回數據。

Task<List<ProductOrderInfo>> task = productClient.getMissProductOrder(this);

task.addOnSuccessListener(new OnSuccessListener<List<ProductOrderInfo>>() {

    @Override

    public void onSuccess(List<ProductOrderInfo> productOrders) {

        if (productOrders != null) {

            for (ProductOrderInfo productOrderInfo : productOrders) {

                String productNo = productOrderInfo.getProductNo();

                String tradeId = productOrderInfo.getTradeId();

                showLog("productNo:" + productNo + ",tradeId:" + tradeId);

            }

        } else {

            showLog("product list is null");

        }

    }

}).addOnFailureListener(new OnFailureListener() {

    @Override

    public void onFailure(Exception e) {

        if (e instanceof ApiException) {

            ApiException apiException = (ApiException) e;

            showLog("get miss product info failed:" + apiException.getStatusCode());

        }

    }

});

引導用戶進行華為帳號授權登錄。

說明

為了更好的用戶體驗,建議您將華為帳號與您自己的帳號體系綁定,以便于用戶可以同時瀏覽華為帳號和非華為帳號購買的訂單。

用戶的華為帳號授權登錄后,應用再次調用ProductClient.getMissProductOrder方法確認掉單數據。

應用調用ProductOrderInfo.getSign方法獲取訂單信息中的簽名字符串,使用獲取驗簽公鑰中獲取的驗簽公鑰參考對掉單數據驗簽對訂單信息進行驗簽。

驗簽通過后,應用客戶端通知應用服務端發(fā)貨。開發(fā)者服務器發(fā)貨完成后向華為服務發(fā)送通知

立即登錄,閱讀全文
版權說明:
本文內容來自于HUAWEI,本站不擁有所有權,不承擔相關法律責任。文章內容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯(lián)系管理員(zzx@kchuhai.com)刪除!
掃碼登錄
打開掃一掃, 關注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務合作
商務合作
投稿采訪
投稿采訪
出海管家
出海管家