华为 H5 快游戏调用 createPurchaseIntent 支付接口拉起支付收银台后闪退


问题描述

H5快游戏调用createPurchaseIntent接口发起支付,拉起应用内支付收银台后,但收银台立即闪退。

代码如下:

function createPurchaseIntent () {
    var priceType = document.getElementById("priceType")
    var productId = document.getElementById("productId")
    var params = { 
        purchaseIntentReq: {
            "applicationID": "100798021",
            "productId": "Product1",
            "priceType": 0,
            "developerPayload": "testPurchase",
            "publicKey":"XXX"
        }
    }
    HwFastappObject.createPurchaseIntent(JSON.stringify(params));
}

问题分析[l(2] 

我们找到华为技术支持QQ 2851508897(或提个工单咨询)寻求帮助。

该接口是拉起应用内支付接口,没有成功,也没有任何回调报错,一般情况下是由于传参错误引起的。检查createPurchaseIntent接口的参数,有应用id:applicationID,商品类型:priceType,支付公钥publicKey,商品id:productId,developerPayload:商户测保留信息。只要检查这五个参数是否有问题即可。

  1. applicationID是快游戏的appid,这个一般不易弄错。
  2. priceType是我们在后台配置的AGC商品,消耗型商品参数传0,非消耗型商品参数传1,订阅类商品传2。
  3. Publickey是支付公钥,此参数传错,会正常拉起应用内支支付但会返会错误码"code":1001,"data":"createPurchaseIntent PAY_CHECKKEY_FAIL"。
  4. developerPayload是商户保留字,不做校验。

那问题就是出现在productId中,该参数是AGC官网后台配置的商品信息,必须是本项目中已经处于有效状态下的商品id,传错或者传其他项目的商品id均会导致上述问题。正确获取商品管理界面商品id如下:

cke_17813.png

解决方案

按照问题分析,检查参数是否传递错误,尤其是productId值,一定是自己这个应用下面的商品id,不能是别的app的productid。

欲了解更多详情,请参见:

H5快游戏开发指导:

https://developer.huawei.com/consumer/cn/doc/development/quickApp-Guides/quickgame-develop-h5-game#h1-1594805279082

相关