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

HarmonyOS鸿蒙Next中华为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));
}

问题分析

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

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

  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


更多关于HarmonyOS鸿蒙Next中华为H5快游戏调用createPurchaseIntent支付接口拉起支付收银台后闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS鸿蒙Next中华为H5快游戏调用createPurchaseIntent支付接口拉起支付收银台后闪退的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,华为H5快游戏调用createPurchaseIntent支付接口后出现闪退,可能原因包括:

  1. 参数错误:检查createPurchaseIntent接口传入的参数是否正确,特别是商品ID、价格等是否匹配。

  2. 签名问题:确保应用签名与华为开发者平台上的签名一致,否则可能导致支付失败。

  3. 权限不足:检查是否缺少必要的支付权限,如android.permission.INTERNET

  4. SDK版本不兼容:确认使用的HMS Core SDK版本与鸿蒙Next兼容。

  5. 日志分析:查看日志文件,定位具体错误信息,如空指针、非法参数等。

建议逐步排查以上问题,确保接口调用正确无误。

回到顶部