普通应用支付提示“此交易被拒绝,请稍后再试。您也可尝试其他付款方式”
问题描述
我们应用(非游戏)集成了华为支付IAP SDK,测试支付时总是提示“此交易被拒绝,请稍后再试。您也可尝试其他付款方式”。
问题定位
联系华为技术支持( 提个工单咨询 https://developer.huawei.com/consumer/cn/support/feedback ),他们表示该提示说明支付行为被华为限制了,一般会在用户频繁切换设备支付、频繁进行大额支付等场景,系统为了保护用户金额的安全,作限制处理。
如果不涉及这种情况依旧被提示,建议我们优先排查在华为AGC页面创建的应用类型是否为游戏:
-
如果是游戏,该报错可能是因为用户没有实名认证,当前国家版署要求游戏需要对未成年人进行支付额度限制,支付时如果没有实名,华为会做如上弹框提示,阻止玩家支付。
-
如果是非游戏,该报错可能原因如下:
- 客户端调用支付接口 createPurchaseIntentWithPrice 时,请求参数 setServiceCatalog 错误地使用了X6(表示游戏类型),导致系统认为我们应用是游戏,走游戏控制逻辑。具体接口描述参考:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-References/purchaseintentwithpricereq-0000001054093693
- AGC控制台打开了游戏服务API开关,打开该开关,系统也会认为我们应用是游戏,走游戏控制逻辑。具体参考:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/config-agc-0000001050166285#section1255164953515
经过定位,我们客户端 createPurchaseIntentWithPrice 接口传入的字段是对的,使用X5(表示普通应用),但是AGC后台打开了游戏服务开关。
问题解决
在华为技术支持的建议下,我们关闭了游戏服务的API开关。关闭开关之后,客户端测试支付时可能会因为HMS Core缓存原因支付仍不成功,可以参考如下方法清除HMS Core缓存,清除HMS Core缓存后IAP支付正常,问题解决:
手机中找到“设置-应用-应用管理-HMS Core”,点击进入到应用信息页,先多次点击“强制停止”直至该按钮变灰,再依次点击“存储-管理空间-清理数据”。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2021-01-11 简单的路径规划案例分享
2021-01-11 React Native | 零代码快速集成AGC崩溃服务