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

华为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日

相关文章

  • 扫一扫,原来这么简单

    二维码识别技术已广泛应用在移动支付、实用工具、电商购物、社交通讯等场景。然而,在实际生活中,二维码容易遇到距离远、暗光、强光、污损、模糊和大角度倾斜等复杂场景,导致识别困难,扫码体验差。华为HMS Core 统一扫码服务(Scan Kit)为开发者们的APP带来一站式扫码解决方案,并且拥有高识别率和快速识别等特点。 距离太远、码图过小? 在停车场扫码缴费、上…

    Android 2023年4月17日
    00
  • Android中设置Button为透明

    设置Button为透明状态,有两种最简单的方式: 1. 在layout.xml文件中的Button节点下,设置Button的Alpha属性,因为该属性在0~255范围内取值,0表示完全透明,255表示完全不透明; 但是此方法有一个缺点,当设置为0后,Button上的文字也看不见了。所以在项目中使用了第二种方法。 2. 在layout.xml文件中的Butto…

    Android 2023年4月17日
    00
  • 投放视频广告时,如何快速与第三方播放器兼容?

    新媒体时代,广告样式越来越丰富。相较于传统的图文信息,视频类广告更具有直观性,能够让消费者在了解产品知识和功能的同时加深对产品的印象。 因此在各类网站或App上投放视频类广告是个很好的宣传方式,但广告商们如果想在网站上展示视频广告,必须确保视频广告投放协议与发布渠道的播放器兼容;如果不能兼容,广告商或者视频广告投放平台必须创建不同的响应,来与特定视频播放器兼…

    Android 2023年4月17日
    00
  • Android事件分发-基础原理和场景分析

    作者:京东零售 郭旭锋 1 为什么需要事件分发 和其他平台类似,Android 中 View 的布局是一个树形结构,各个 ViewGroup 和 View 是按树形结构嵌套布局的,从而会出现用户触摸的位置坐标可能会落在多个 View 的范围内,这样就不知道哪个 View 来响应这个事件,为了解决这一问题,就出现了事件分发机制。 2 事件分发的关键方法 And…

    Android 2023年4月22日
    00
  • 汽车之家Unity前端通用架构升级实践

    背景介绍 随着之家3D虚拟化需求的增加,各产品线使用Unity引擎的项目也越来越多,新老项目共存,代码维护成本也随之增加。代码质量参差加之代码规范仍没有完全统一产生高昂学习成本进一步加重了项目维护负担。 为应对这些问题,我们决定借助主机厂数科产品线销冠神器VR版本大升级为契机,开发一套移动端通用Unity代码框架,旨在统一Unity项目开发流程和规范,使不同…

    Android 2023年5月9日
    00
  • Android页面渲染效率优化实践

      1.车系页布局渲染现状  车系页是重要的车系信息页面,更新迭代多年,页面布局不断变化,xml布局文件越写越复杂。 获取车系页布局文件耗时:         startTime = System.currentTimeMillis();         setContentView(R.layout.car_series_revision_activity…

    Android 2023年4月17日
    00
  • Jetpack Compose学习(11)——Navigation页面导航的使用

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

    Android 2023年4月18日
    00
  • Android报”ClassCastException”如何解决?

    Android中,”ClassCastException”异常表示向下转型时出现类型转换错误。通常情况下,这种错误可能是由于将一个对象引用从其父类转换为其子类时发生的,而该对象实际上不是该子类的实例。此时会抛出ClassCastException异常。 处理”ClassCastException”异常最常见的方法是使用合适的Java类型检查和类型转换技术,以…

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