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

yizhihongxing

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

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

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

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

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

问题根因:

为了防止返回结果被篡改,提高安全性和可靠性,支付结果必须要对签名字符串使用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月份提交的结算申请,结算单中的结算状态显示都是在"付款中",但是现在还没到账,不知道具体是卡在什么地方。

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

原因分析:

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

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

解决方案:

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

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

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

问题背景:

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

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

解决方案:

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

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

详情可以参考官方Demo

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

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

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

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

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

问题背景:

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

原因分析:

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

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

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

解决方案:

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

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

了解更多详情>>

访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHubGitee

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

原文链接:https://www.cnblogs.com/hmscore/p/17239072.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:接入HMS Core应用内支付服务过程中一些常见问题总结 - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • Jetpack Compose学习(11)——Navigation页面导航的使用

    原文:Jetpack Compose学习(11)——Navigation页面导航的使用 – Stars-One的杂货小窝 在Android原生的View开发中的,也是有Navigation,原生我之后可能再出篇教程,今天讲解的则是compose版本的Navigation组件的使用 本系列以往文章请查看此分类链接Jetpack compose学习 说明 在原生…

    Android 2023年4月18日
    00
  • 【SIM】MCC(移动国家码)和 MNC(移动网络码)

    国际移动用户识别码( IMSI) international mobile subscriber identity 国际上为唯一识别一个移动用户所分配的号码。   从技术上讲,IMSI可以彻底解决国际漫游问题。但是由于北美目前仍有大量的AMPS系统使用MIN号码,且北美的MDN和MIN采用相同的编号,系统已经无法更改,所以目前国际漫游暂时还是以MIN为主。其…

    Android 2023年4月17日
    00
  • 集成华为运动健康服务干货总览

    在接入华为运动健康服务的过程中你是否遇到过权限申请有困难、功能不会用的情况? 本期超强精华帖,一帖汇总集成华为运动健康服务你可能需要的各类干货,还不赶紧收藏起来!开发有困难,随时可查阅~ 如果你有感兴趣或想进一步了解的内容,欢迎进行留言,或查看华为运动健康文档获取更多详情! 权限申请篇 在申请运动健康服务的权限的过程中,你是否遇到这些疑惑:申请审核时长是多久…

    Android 2023年4月17日
    00
  • RxJava 异常时堆栈显示不正确?解决方法都在这里

    本文首发我的博客,github 地址 大家好,我是徐公,今天为大家带来的是 RxJava 的一个血案,一行代码 return null 引发的。 前阵子,组内的同事反馈说 RxJava 在 debug 包 crash 了,捕获到的异常信息不全。(即我们捕获到的堆栈没有包含我们自己代码,都是一些系统或者 RxJava 框架的代码) 典型的一些 error 信息…

    Android 2023年4月18日
    00
  • 当我第一次通过Kotlin和Compose来实现一个Canvas时, 我收获了什么?

    当我第一次通过Kotlin和Compose来实现一个Canvas时, 我收获了什么? 自从2019年Google推荐Kotlin为Android开发的首选语言以来已经经历了将近四年的时间, Compose的1.0版本也发布了将近2年的时间, Kotlin+Compose在现阶段的Android开发过程中还远远达不到主流的程度. 我们是否应该开始尝试这个组合?…

    Android 2023年4月27日
    00
  • 直播回顾 | 点击率提升400%,Ta是怎么做到的?

    Discovery第18期直播已于3月30日圆满结束,本期直播邀请天眼查做客直播间,从天眼查与华为Push用户增长服务合作历程切入,聚焦用户增长,分享提升应用活跃度和渠道ROI的经验与见解。一起来回顾本期精彩内容吧! 【精彩对话】 Q1: 天眼查为什么选择华为Push用户增长服务实现拉新、促活和转化? 刘树维:天眼查作为国内领先的商业查询平台,我们发现用户对…

    Android 2023年4月17日
    00
  • 【FAQ】获取Push Token失败,如何进行排查?

    一、 获取Push Token的方式 获取Push Token有两种方式:一种是调用getToken方法向Push服务端请求Token,当getToken方法返回为空时,Token可通过onNewToken方法返回,因此需要实现onNewToken方法;另一种是自动初始化,Token通过onNewToken方法返回。这两种方法的详细说明可看获取和注销Toke…

    Android 2023年4月18日
    00
  • AR Engine毫秒级平面检测,带来更准确的呈现效果

    近年来,AR版块成为时下大热,这是一种将现实环境中不存在的虚拟物体融合到真实环境里的技术,用户借助显示设备可以拥有真实的感官体验。AR的应用场景十分广泛,涉及娱乐、社交、广告、购物、教育等领域:AR可以让游戏更具互动性;商品通过AR展示更真实;使用AR进行教育教学让抽象事物更形象等,可以说AR技术已经渗透人们生活的方方面面。 为了让人们产生强烈的视觉真实感,…

    Android 2023年4月18日
    00
合作推广
合作推广
分享本页
返回顶部