【FAQ】接入HMS Core应用内支付服务过程中一些常见问题总结
HMS Core应用内支付服务(In-App Purchases,IAP)为应用提供便捷的应用内支付体验和简便的接入流程。开发者的应用集成IAP SDK后,调用IAP SDK接口,启动IAP收银台,即可实现应用内支付。通过应用内支付服务,用户可以在应用内购买各种类型的虚拟商品,包括一次性商品(包括消耗型商品和非消耗型商品)和订阅型商品。应用内支付服务支持客户端和服务端两种开发形式,具体可以参考以下官方文档:
在日常工作中,我们会收到开发者们留言的有关IAP集成的常见问题,这里进行一些分享和总结,希望为其他遇到类似问题的开发者提供参考——
- com.huawei.hmf.tasks.Task的使用问题。
Task是HMS Core SDK 底层框架的一个基础抽象类,通过实现Task类里面的相关抽象方法。比如添加一个或者多个监听器,当任务成功完成时该监听器被调用,当添加多个监听时,按照添加时的顺序调用,该调用在主线程中执行。
因为它已经集成在工程gradle包当中,所以直接用就可以,不需要重新创建声明。我们可以在Project工程中导入的 gradle文件中找到:

开发者也可以参考以下文档解决问题:
- InAppPurchaseData 参数中没有accountFlag是否正常?
InAppPurchaseData 参数中没有accountFlag的问题,根据应用内支付服务官方文档关于InAppPurchaseData的参考API:
InAppPurchaseData JSON类型用于保存用户购买信息,包括消耗型商品、非消耗型商品以及订阅型商品。其中的参数accountFlag 是非必选参数、可选字段,非固定返回,满足使用AppTouch应用才会有这个返回值。
- 文档 createPurchaseIntentWithPrice 的 onFailure 中 参数(Exception e)的判断(e instanceof IapApiException) 不成立。
首先需要确认设备和集成环境信息(最好更新到最新版本):HMS Core版本号、集成的SDK的版本号、设备是手机还是智慧屏。
然后根据官方文档60055错误码的注释,一般表示用户没有同意支付协议,开发者可以从请求接口中返回的IapApiException中获取到一个Status对象,Status中包含IAP协议页面,应用可使用Status的startResolutionForResult方法来启动协议页面。
导致该问题的原因可能还有以下几个方面:
(1)网络问题,网络异常导致接口获取失败。
(2)是否正确引用了 IapApiException。

(3)支付时是否有弹窗,如果没有弹窗需要开启设备 “后台弹出界面”权限,设置如下:找到 HMS Core 应用详情页-- 权限管理--“后台弹出界面”--选择“始终允许”,重新测试。
(4)如果是代码问题,请详细参考开发者联盟官方Demo实现和测试。Demo下载地址:

- 应用服务器验证,验证购买token 失败。
首先,出现“验证购买token 失败”提示,请详细参照 “获取应用级AT”文档的每一个步骤,检查获取的AT是否是应用级AT。获取应用级别AT地址文档:
然后再将获取的应用级AT封装,在请求头header中重新构建 authorization,具体可以参考公共说明的部分文档:

欲了解更多应用内支付服务详情,请参阅:
https://developer.huawei.com/consumer/cn/hms/huawei-iap/?ha_source=hms1
华为开发者联盟官网
获取开发指导文档
参与开发者讨论请到Reddit社区
下载demo和示例代码请到Github
解决集成问题请到Stack Overflow
了解更多详情>>
访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee
关注我们,第一时间了解 HMS Core 最新技术资讯~
【FAQ】接入HMS Core应用内支付服务过程中一些常见问题总结的更多相关文章
- 【FAQ】干货满满,接入HMS Core应用内支付服务过程中一些常见问题总结(2)来啦
HMS Core应用内支付服务(In-App Purchases,IAP)为应用提供便捷的应用内支付体验和简便的接入流程.该服务支持客户端和服务端两种开发形式,具体可以参考官方文档 上次,我们分享和总 ...
- 【FAQ】接入HMS Core推送服务过程中一些常见问题总结
HMS Core 推送服务(Push Kit)是华为提供的消息推送平台,建立了从云端到终端的消息推送通道.开发者通过集成推送服务,可以向客户端应用实时推送消息,构筑良好的用户关系,提升用户的感知度和活 ...
- 【FAQ】接入华为应用内支付服务常见问题解答
HMS Core应用内支付服务(In-App Purchases,IAP)为应用提供便捷的应用内支付体验和简便的接入流程.开发者的应用集成IAP SDK后,调用IAP SDK接口,启动IAP收银台,即 ...
- 【FAQ】应用内支付服务无法拉起支付页面常见原因分析和解决方法
华为应用内支付服务(In-App Purchases)通过简便的接入流程为用户提供良好的应用内支付体验,然而在实际接入过程中,有一些开发者反馈测试时会无法正常拉起支付页面,下文将详细分析问题出现的5种 ...
- SDK接入(3)之iOS内支付(In-App Purchase)接入
SDK接入(3)之iOS内支付(In-App Purchase)接入 继整理了Android平台的SDK接入过程.再来分享下iOS平台的内支付(In-App Purchase)接入,作为笔者在游戏开发 ...
- 别再问WiFi密码了,HMS Core统一扫码服务让手机一键联网
现代生活离不开网络.在餐厅.商场等公共场所,手机连接WiFi一直是高频使用场景.虽然公共场所的免费WiFi越来越多,但网络连接过程却很麻烦.有的需要打开网页注册或点击广告链接才能上网,还有的要求下载特 ...
- 【FAQ】接入HMS Core推送服务,服务端下发消息常见错误码原因分析及解决方法
HMS Core推送服务支持开发者使用HTTPS协议接入Push服务端,可以从服务器发送下行消息给终端设备.这篇文章汇总了服务端下发消息最常见的6个错误码,并提供了原因分析和解决方法,有遇到类似问题的 ...
- 【FAQ】接入HMS Core地图服务过程中常见问题总结
HMS Core地图服务(Map Kit)给开发者提供一套地图开发调用的SDK,助力全球开发者实现个性化地图呈现与交互,方便轻松地在应用中集成地图相关的功能,全方位提升用户体验. 在日常工作中,我们会 ...
- 【FAQ】HMS Core推送服务与本地创建通知消息如何相互覆盖?
我们知道,单独使用HMS Core推送服务或本地创建通知消息,都可以实现通知消息的覆盖,方式分别为: 1.本地创建通知消息(简称本地通知消息) 通过notificationManager.notify ...
随机推荐
- redis的使用场景和优缺点
使用场景和优缺点: 2 Redis用来做什么? 通常局限点来说,Redis也以消息队列的形式存在,作为内嵌的List存在,满足实时的高并发需求.而通常在一个电商类型的数据处理过程之中,有关商品,热销, ...
- Jquery操作文本内容(三个方法:html()、text()、var())
Jquery操作文本内容(三个方法:html().text().var()) 一.html()获取和设置文本内容和标签 1.获取标签里的结构和内容 $("ul").html() / ...
- 云计算——实验一 HDFS与MAPREDUCE操作
1.虚拟机集群搭建部署hadoop 利用VMware.centOS-7.Xshell(secureCrt)等软件搭建集群部署hadoop 远程连接工具使用Xshell: HDFS文件操作 2.1 HD ...
- AOP操作-AspectJ注解
AOP操作(AspectJ注解) 1,创建类,在类里面定义方法 2,创建增强类(编写增强逻辑) (1)在增强类里面,创建方法,让不同方法代表不同通知类型 3,进行通知的配置 (1)在spring配置文 ...
- AOP-操作术语
AOP(术语) 1,连接点 类里面哪些方法可以被增强,这些方法称为连接点 2,切入点 实际被真正增强的方法,称为切入点 3,通知(增强) (1)实际增强的逻辑部分称为通知(增强) (2)通知有多种类型 ...
- hadoop面试
hadoop.apache.orgspark.apache.orgflink.apache.orghadoop :HDFS/YARN/MAPREDUCE HDFS读写流程 NameNode DataN ...
- FastDFS文件同步
FastDFS同步相关文件: a)10.100.66.82_23000.mark 内容如下: binlog_index=0 binlog_offset=1334 need_sync_old=1 syn ...
- 如何使用 pytorch 实现 yolov3
前言 看了 Yolov3 的论文之后,发现这论文写的真的是很简短,神经网络的具体结构和损失函数的公式都没有给出.所以这里参考了许多前人的博客和代码,下面进入正题. 网络结构 Yolov3 将主干网络换 ...
- Sleep_Yield_Join
名称解释 Sleep:意思就是睡眠,当前线程暂停一段时间让给别的线程去运行;Sleep是怎么复活的?由你的睡眠时间而定,等睡眠到规定的时间自动复活. Yield:就是当前线程正在执行的时候停止下来进入 ...
- JS切割图片-滑动门效果
转载请注明来源:https://www.cnblogs.com/hookjc/ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit ...