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

往期文章:常见问题总结(2)中分享总结了有关无法拉起支付页面的常见问题,本文将对近期开发者们较为关注的一些集成应用内支付服务过程中的问题进行汇总,并提出解决方案。

问题1:开发者联盟支付卡片中的支付公钥(路径:开发者联盟>管理中心>支付>获取支付信息)和应用内支付中配置的公钥(路径:打开项目 >左侧导航栏“盈利 > 应用内支付服务”)有什么区别吗?

问题根因:

为了防止返回结果被篡改,提高安全性和可靠性,支付结果必须要对签名字符串使用IAP公钥进行验签,由于VR支付目前还使用2.0的支付接口,所以仍然会使用开发者联盟支付卡片中的支付公钥。

应用内支付中配置的公钥(路径:打开项目 >左侧导航栏“盈利 > 应用内支付服务”,若“IAP”页签显示未生成IAP支付公钥,点击“设置”生成IAP支付公钥。)主要用于4.0的支付接口,而4.0的接口是目前常用接口。

问题2:华为应用内支付回调请求为空,没有任何有效用户信息。

问题背景:

用户订阅了会员包年,但后台没有自动发货,点击了订单中的【补发】按钮,重新发起了支付回调,但数据无效,然后开发者CP改成了测试接口,打印出了所有华为支付回调的请求内容,发现请求正文为空字符串,没有任何有效用户信息。

“我是在支付报表点击的补单按钮。移动端接入的HMS版本是6.4.0.301。你说HMS4.0的订单,我们不会收到支付成功回调,但我这边点补发收到了一个空白回调,这是正常的吗?另外,我们的订阅回调接口之前是发生异常也返回200,所以可能在华为IAP服务器这边认为应用方已经发货了,这种情况,用户客户端再启动应用还能触发补单吗?”

原因分析:

根据官方的FAQ文档,对于HMS4.0订单,点击补发,触发华为支付服务器向华为IAP服务器发送支付成功回调,您不会接到支付成功回调。

在支付报表点击的补单按钮,收不到支付成功的回调通知,如果点击补发,收到一个消息体为空的的回调,并不能作为依据对问题进行分析定位,所以可以忽略。

解决方案:

补单分为客户端补单和服务端补单,只有消耗性商品才有补单流程,客户端补单需要您在客户端中触发补单,比如应用启动的时候;如果有异常,会返回返回-1,60051,1等错误码场景,从而需要触发补单机制;具体可以参考文档

对于订阅型商品,一般我们使用的是订阅关键事件的通知,请参考文档

关于订阅回调接口之前是发生异常时也返回200,可能在华为IAP服务器这边认为应用方已经发货了的情况,不存在这种情况,如果有这种情况,请提供对应的订单号,我们将对该订单进行分析。

问题3:我9月份提交的结算申请,现在还没到账,请问收益结算什么时候到账?

问题背景:

CP反馈9月份提交的结算申请,结算单中的结算状态显示都是在"付款中",但是现在还没到账,不知道具体是卡在什么地方。

原因分析:

根据官方文档,如对结算数据无异议,点击“确认结算单”提交结算申请,并核对申付金额及收款银行等信息无误后,点击“提交”,提交后将无法取消。如需多个结算单合并开票,请确认同一个合同、同一业务类型相同的结算单方可进行合并开票。

解决方案:

也就是说,只要确认结算单了,付款状态都是在付款中,但是CP需要先开票(也可以合并开票)才能结算,按照确认的结算单金额开具发票,合并开票需将所选结算单中的“结算汇总信息-结算金额”加总,注意金额与发票金额要完全一致,不能有差异。

具体详情请您参考开发者联盟关于自主结算指南的官方文档进行相关操作。

4. 联盟官方文档,AppGallery站点老域名以及使用的加密套件将会逐渐下线,是否有更详细的操作文档可供开发者参考?

问题背景:

根据官方文档说明,为了增强您的应用的安全性和可靠性,HUAWEI IAP更新了URL,并提高了对TLS版本和密码套件的要求。出于安全考虑,从2023年4月起,HUAWEI IAP将不再支持1.2以下的TLS版本和规定之外的加密套件支持。AppGallery站点使用的老域名后续也会下线。

解决方案:

目前暂时没有相关指导文档,这些是标准的网络套件和协议,但是可以参考官方发布的服务器多语言演示demo。

详情可以参考官方Demo

替换域名的具体操作请参见官方示例代码,将对应区域的旧域名替换为最新的域名。例如,需要上架中国站点APPGallery 应用市场,Order服务验证购买token接口需要将之前的 https://orders-at-dre.iap.dbankcloud.com 替换为中国站点:https://orders-drcn.iap.cloud.huawei.com.cn

详情请参考开发者联盟官方文档

5. 华为订阅返回数据中的expirationDate字段,和用户到期后下次扣费的时间是一致的吗?

问题背景:

“我想问一下华为订阅返回数据中expirationDate字段,和用户到期后下次扣费的时间是一致的吗?用户 2021年12月5日付费年订阅产品,实际于2022年12月4日进行了自动续费扣款,但是华为在2021年支付成功后返回的字所expirationDate,转换时间戳后是2022年12月8日到期,请问是华为针对订阅产品会提前扣费吗?还是expirationDate并不等同于下次扣款时间 ? 如果需要知道精确的下次扣款时间, 应该取什么字段呢?”

原因分析:

如下是官方文档对InAppPurchaseData中的expirationDate字段的解释说明:

根据IAP的的扣费规则,会提前24小时开始尝试扣费,用户是在2021年12月5日付费年订阅产品到期,那么在订阅周期结束前24小时,即12月4号扣费是没有问题的,华为IAP会尝试向用户发起扣款以完成订阅型商品的续期。若扣费失败,华为IAP会在一定期限内重复尝试扣费,若失败次数过多,最终会停止重试。

解决方案:

expirationDate字段并不等同于下次扣款时间,而是当前订阅的过期时间,IAP支付服务器当前没有返回下次扣款时间,也不会有精准的扣款时间,一般都是显示订阅的续期时间或者会比续期时间稍长,但是不会相差很大。

如果订阅的续期时间和实际显示的expirationDate相差很大,需要CP提供订单号或者订阅id等数据进

了解更多详情>>

访问华为开发者联盟官网

获取开发指导文档

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

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

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

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

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

  2. 【FAQ】接入HMS Core应用内支付服务过程中一些常见问题总结

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  10. 如何用HMS Core位置和地图服务实现附近地点路径规划功能

    日常出行中,路径规划是很重要的部分.用户想要去往某个地点,获取到该地点的所有路径,再根据预估出行时间自行选择合适的路线,极大方便出行.平时生活中也存在大量使用场景,在出行类App中,根据乘客的目的地可 ...

随机推荐

  1. ngnix开启高可用网关集群--好记性不如烂笔头

    #1.开启高可用网关集群--------------------好记性不如烂笔头--------------------------- #gzip on; #开启网关集群 upstream gatew ...

  2. JAVA中的变量与基本操作

  3. IDEA初步使用Maven

    Maven使用 Maven环境配置 下载maven,解压,放在一个没有中文的路径下 打开系统环境变量配置 添加MAVEN_HOME ,其路径为maven所在路径 E:\software\apache- ...

  4. 将map转为Bean的工具类 BeanUtil

    Map<String,Object> pbclwhMainMap = (Map<String,Object>)param.get("pbclwhMain") ...

  5. 在使用admin后台管理,添加或者修改数据库时,出现错误,no such table: main.auth_user__old

    在使用admin后台管理,添加或者修改数据库时,出现错误,no such table: main.auth_user__old. Django是2.0.9的版本,python是3.8.0 上述错误是因 ...

  6. PHP Redis - Set(集合)

    Redis 的 set 无序集合,与 list 类似,特殊之处在于 set 可以自动排重,不会出现重复数据 集合中最大的成员数为 232-1 (4294967295, 每个集合可存储40多亿个成员). ...

  7. python 浮点除法

    昨天晚上久违地去打了次div2 一年没打,挂得很惨 早上起来试着用python写一遍唯一写出来的a题 然后发现了一个奇怪的现象 代码如下(为了方便观察已经改过了,不是解题的代码) import sys ...

  8. 正则url匹配

    今天来说一下正则的url匹配 示例:url ="https://v5.lairen.com/activity?id=862&code=ab9a61823398273b7b036fd9 ...

  9. IP协议数据包

    Header Length:头部长度固定20字节,永远为5(4bit为单位) Total Length:头部+包, 抓包结果 Identification.Fragment Flags.Fragmen ...

  10. cuda安装的问题

    小学期老师给的文档,里面要加入这几个环境变量 他这排版有问题,我就去网上找了几个cuda环境变量的配置 保姆级的CUDA的下载安装使用,详细的环境变量配置,不仅仅让你能够安装,还会教你弄懂为什么要这样 ...