HMS Core应用内支付服务(In-App Purchases,IAP)为应用提供便捷的应用内支付体验和简便的接入流程。开发者的应用集成IAP SDK后,调用IAP SDK接口,启动IAP收银台,即可实现应用内支付。通过应用内支付服务,用户可以在应用内购买各种类型的虚拟商品,包括一次性商品(包括消耗型商品和非消耗型商品)和订阅型商品。应用内支付服务支持客户端和服务端两种开发形式,具体可以参考以下官方文档:

https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/introduction-0000001050033062?ha_source=hms1

在日常工作中,我们会收到开发者们留言的有关IAP集成的常见问题,这里进行一些分享和总结,希望为其他遇到类似问题的开发者提供参考——

  1. com.huawei.hmf.tasks.Task的使用问题。

Task是HMS Core SDK 底层框架的一个基础抽象类,通过实现Task类里面的相关抽象方法。比如添加一个或者多个监听器,当任务成功完成时该监听器被调用,当添加多个监听时,按照添加时的顺序调用,该调用在主线程中执行。

因为它已经集成在工程gradle包当中,所以直接用就可以,不需要重新创建声明。我们可以在Project工程中导入的 gradle文件中找到:

开发者也可以参考以下文档解决问题:

https://developer.huawei.com/consumer/cn/doc/development/hmscore-common-References/task_tresult-0000001050121148#section947111462618?ha_source=hms1

  1. InAppPurchaseData 参数中没有accountFlag是否正常?

InAppPurchaseData 参数中没有accountFlag的问题,根据应用内支付服务官方文档关于InAppPurchaseData的参考API:

https://developer.huawei.com/consumer/cn/doc/development/HMSCore-References/json-inapppurchasedata-0000001050986125?ha_source=hms1

InAppPurchaseData JSON类型用于保存用户购买信息,包括消耗型商品、非消耗型商品以及订阅型商品。其中的参数accountFlag 是非必选参数、可选字段,非固定返回,满足使用AppTouch应用才会有这个返回值。

  1. 文档 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下载地址:

https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Examples/client-sample-code-0000001050143598?ha_source=hms1

  1. 应用服务器验证,验证购买token 失败。

首先,出现“验证购买token 失败”提示,请详细参照 “获取应用级AT”文档的每一个步骤,检查获取的AT是否是应用级AT。获取应用级别AT地址文档:

https://developer.huawei.com/consumer/cn/doc/development/HMSCore-References/obtain-application-level-at-0000001051066052?ha_source=hms1

然后再将获取的应用级AT封装,在请求头header中重新构建 authorization,具体可以参考公共说明的部分文档:

https://developer.huawei.com/consumer/cn/doc/development/HMSCore-References/api-common-statement-0000001050986127?ha_source=hms1

欲了解更多应用内支付服务详情,请参阅:

https://developer.huawei.com/consumer/cn/hms/huawei-iap/?ha_source=hms1

华为开发者联盟官网

获取开发指导文档

参与开发者讨论请到Reddit社区

下载demo和示例代码请到Github

解决集成问题请到Stack Overflow

了解更多详情>>

访问华为开发者联盟官网

获取开发指导文档

华为移动服务开源仓库地址:GitHubGitee

关注我们,第一时间了解 HMS Core 最新技术资讯~

【FAQ】接入HMS Core应用内支付服务过程中一些常见问题总结的更多相关文章

  1. 【FAQ】干货满满,接入HMS Core应用内支付服务过程中一些常见问题总结(2)来啦

    HMS Core应用内支付服务(In-App Purchases,IAP)为应用提供便捷的应用内支付体验和简便的接入流程.该服务支持客户端和服务端两种开发形式,具体可以参考官方文档 上次,我们分享和总 ...

  2. 【FAQ】接入HMS Core推送服务过程中一些常见问题总结

    HMS Core 推送服务(Push Kit)是华为提供的消息推送平台,建立了从云端到终端的消息推送通道.开发者通过集成推送服务,可以向客户端应用实时推送消息,构筑良好的用户关系,提升用户的感知度和活 ...

  3. 【FAQ】接入华为应用内支付服务常见问题解答

    HMS Core应用内支付服务(In-App Purchases,IAP)为应用提供便捷的应用内支付体验和简便的接入流程.开发者的应用集成IAP SDK后,调用IAP SDK接口,启动IAP收银台,即 ...

  4. 【FAQ】应用内支付服务无法拉起支付页面常见原因分析和解决方法

    华为应用内支付服务(In-App Purchases)通过简便的接入流程为用户提供良好的应用内支付体验,然而在实际接入过程中,有一些开发者反馈测试时会无法正常拉起支付页面,下文将详细分析问题出现的5种 ...

  5. SDK接入(3)之iOS内支付(In-App Purchase)接入

    SDK接入(3)之iOS内支付(In-App Purchase)接入 继整理了Android平台的SDK接入过程.再来分享下iOS平台的内支付(In-App Purchase)接入,作为笔者在游戏开发 ...

  6. 别再问WiFi密码了,HMS Core统一扫码服务让手机一键联网

    现代生活离不开网络.在餐厅.商场等公共场所,手机连接WiFi一直是高频使用场景.虽然公共场所的免费WiFi越来越多,但网络连接过程却很麻烦.有的需要打开网页注册或点击广告链接才能上网,还有的要求下载特 ...

  7. 【FAQ】接入HMS Core推送服务,服务端下发消息常见错误码原因分析及解决方法

    HMS Core推送服务支持开发者使用HTTPS协议接入Push服务端,可以从服务器发送下行消息给终端设备.这篇文章汇总了服务端下发消息最常见的6个错误码,并提供了原因分析和解决方法,有遇到类似问题的 ...

  8. 【FAQ】接入HMS Core地图服务过程中常见问题总结

    HMS Core地图服务(Map Kit)给开发者提供一套地图开发调用的SDK,助力全球开发者实现个性化地图呈现与交互,方便轻松地在应用中集成地图相关的功能,全方位提升用户体验. 在日常工作中,我们会 ...

  9. 【FAQ】HMS Core推送服务与本地创建通知消息如何相互覆盖?

    我们知道,单独使用HMS Core推送服务或本地创建通知消息,都可以实现通知消息的覆盖,方式分别为: 1.本地创建通知消息(简称本地通知消息) 通过notificationManager.notify ...

随机推荐

  1. JNDI和JDBC的区别

    最近也是遇见了JNDI这个概念,查了一下,网上的说法太官方,所以参考下一位老哥的博客总结下 JDBC 看到最多的就是,Java Database Connectivity (JDBC)是一个标准的Ja ...

  2. Sharding Sphere的分库分表

    什么是 ShardingSphere? 1.一套开源的分布式数据库中间件解决方案 2.有三个产品:Sharding-JDBC 和 Sharding-Proxy 3.定位为关系型数据库中间件,合理在分布 ...

  3. 【记录一个问题】用毫无用处的方法解决了libtask的asm.S在ndk下编译的问题

    昨天提到,libtask中的asm.S使用的是ARM 32位的语法,因此在ARM 64下无法编译通过. 于是查了一下资料,改写了一下汇编代码,使得可以在64位下编译通过.源码如下 #if define ...

  4. Message deduplication 这里的去重与你想的可能不一样|Apache Pulsar 技术系列

    导语 Apache Pulsar 是一个多租户.高性能的服务间消息传输解决方案,支持多租户.低延时.读写分离.跨地域复制.快速扩容.灵活容错等特性.腾讯云内部 Pulsar工作组对 Pulsar 做了 ...

  5. 611. Valid Triangle Number

    Given an array consists of non-negative integers, your task is to count the number of triplets chose ...

  6. Qt之QFileDialog

    widget.h: #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include<QString> class W ...

  7. linux文件编辑器快捷方式

    一:文件编辑器快捷方式 7.光标快速移动快捷方式 ①. 快速切换光标到底行 shift + G ②. 快速切换光标到首行 gg ③. 快速跳转到行首 0 ④. 快速跳转到行尾 shift + $ ⑤. ...

  8. Idea内存设置idea.vmoptions无效的解决办法

    原因:貌似是因为maven的问题 解决办法 结果

  9. Spring Cloud Alibaba Nacos 服务注册与发现功能实现!

    Nacos 是 Spring Cloud Alibaba 中一个重要的组成部分,它提供了两个重要的功能:服务注册与发现和统一的配置中心功能. 服务注册与发现功能解决了微服务集群中,调用者和服务提供者连 ...

  10. 2020-9-29 T3

    题意:给定一颗大小为 \(n(n \le 5 \times 10 ^ 4)\) 的树,保证树的生成方式随机,你需要选定两个点 \(x, y\),最小化: \[\sum\limits_{i = 1} ^ ...