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:productId
,developerPayload
:商户测保留信息。只要检查这五个参数是否有问题即可。
applicationID
是快游戏的appid,这个一般不易弄错。priceType
是我们在后台配置的AGC商品,消耗型商品参数传0,非消耗型商品参数传1,订阅类商品传2。Publickey
是支付公钥,此参数传错,会正常拉起应用内支支付但会返会错误码"code":1001,"data":"createPurchaseIntent PAY_CHECKKEY_FAIL"
。developerPayload
是商户保留字,不做校验。
那问题就是出现在productId
中,该参数是AGC官网后台配置的商品信息,必须是本项目中已经处于有效状态下的商品id,传错或者传其他项目的商品id均会导致上述问题。正确获取商品管理界面商品id如下:
解决方案
按照问题分析,检查参数是否传递错误,尤其是productId
值,一定是自己这个应用下面的商品id,不能是别的app的productid。
欲了解更多详情,请参见:
更多关于HarmonyOS鸿蒙Next中华为H5快游戏调用createPurchaseIntent支付接口拉起支付收银台后闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于HarmonyOS鸿蒙Next中华为H5快游戏调用createPurchaseIntent支付接口拉起支付收银台后闪退的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,华为H5快游戏调用createPurchaseIntent
支付接口后出现闪退,可能原因包括:
-
参数错误:检查
createPurchaseIntent
接口传入的参数是否正确,特别是商品ID、价格等是否匹配。 -
签名问题:确保应用签名与华为开发者平台上的签名一致,否则可能导致支付失败。
-
权限不足:检查是否缺少必要的支付权限,如
android.permission.INTERNET
。 -
SDK版本不兼容:确认使用的HMS Core SDK版本与鸿蒙Next兼容。
-
日志分析:查看日志文件,定位具体错误信息,如空指针、非法参数等。
建议逐步排查以上问题,确保接口调用正确无误。