关于android:FAQ应用内支付服务无法拉起支付页面常见原因分析和解决方法

4次阅读

共计 2058 个字符,预计需要花费 6 分钟才能阅读完成。

华为利用内领取服务(In-App Purchases)通过简便的接入流程为用户提供良好的利用内领取体验,然而在理论接入过程中,有一些开发者反馈测试时会无奈失常拉起领取页面,下文将详细分析问题呈现的 5 种情景,并给出解决方案,心愿给遇到相似问题的开发者提供参考。

情景 1:AGC 管制台上 API 治理中的领取 API 已关上,创立的商品也失效了,但查看日志发现报错 60002

起因剖析:对 IAP 的申请后果验签时须要应用领取公钥,进行 SHA256WithRSA 签名校验,此公钥开发者未配置。

解决办法:请仔细检查以下三点是否设置:

(1)API 治理中领取 API 已关上(留神:用户在开明 IAP 服务,半个小时左右才起效)
详情可参考官网文档

(2)确保公钥开关激活关上,且公钥应用正确

(3)在 AGC 后盾 PMS(商品管理系统)上配置了相应类型的商品,并激活胜利

情景 2:开发者进入会员中心编辑订阅页面,显示异样,报错 60051

查看官网文档,错误码 60051 示意已购买型商品或者订阅型商品,不能再次购买;

起因剖析

复现问题时咱们发现,订阅实现返回会员中心有个刷新动作,在刷新前点击订阅会异样,刷新后点击就是失常的。这是因为如果没有刷新或者刷新不及时,会存在上一次的缓存数据。在点击一个订阅商品之后,立刻再点击订阅另一个商品的时候,会把首次订阅的商品 id 带入,但该 id 并不是最新购买的订阅商品 id,从而造成数据的不匹配,最终导致报错,无奈显示编辑页面。

解决办法

倡议开发者对页面成果刷新机会进行优化解决,防止未刷新就去续费。

情景 3:应用华为手机进行领取调试的时候报错 60003,但 PMS 零碎中商品 ID 配置未发现问题。

起因剖析:首先报错 60003 个别是在 PMS 零碎中的商品信息配置有问题,能够到 AGC 网站后盾,在我的利用 -> 经营 -> 商品治理 -> 商品列表,查看对应商品是否存在或者必填的信息是否正确残缺(例如商品名称,商品 ID,价格,商品类型,是否激活)。

另外能够查看商品 ID 是否在客户端代码中填写正确,是否与 AGC 后盾的商品 ID 保持一致,请重点查看客户端代码中传入的字段是否有问题。

还有一点须要留神的是在设施上登录的华为账号的服务地点是否在 IAP 笼罩的范畴内。能够通过调用 Task<IsEnvReadyResult> isEnvReady()接口判断以后设施登录的帐号所在的服务国家 / 地区是否在华为 IAP 领取服务反对结算的国家 / 地区中。

解决方案

通过 CP 排查发现是客户端端代码传入的商品 ID 和 AGC 后盾配置的商品 ID 不统一,批改后问题已解决。

情景 4:调用领取拉起收银台接口,第一次胜利拉起胜利领取页面,而后点击勾销返回,第二次再持续调用该接口为什么无奈拉起领取页面?

起因剖析:购买消耗性商品后,必须要先实现商品耗费,之后能力再次购买,否则会报错 60051 等错误码。

解决办法:对于消耗性商品进行补单操作

开发者须要在以下这四种场景下触发补单机制:

· 利用启动时

· 购买申请返回 -1(OrderStatusCode.ORDER_STATE_FAILED)时

· 购买申请返回 60051(OrderStatusCode.ORDER_PRODUCT_OWNED)时

· 购买申请返回 1(OrderStatusCode.ORDER_STATE_DEFAULT_CODE)时

如果 IAP 后盾配置的退款回调地址谬误,须要重新配置。具体可参考文档

除了无奈拉起领取页面的问题以外,如何确认是否进入沙盒环境也是一个常见的问题。

情景 5:应用沙盒帐号测试,没有弹出沙盒环境端侧提醒弹框,如何确认是否进入沙盒环境?

起因剖析:首先进入沙盒测试环境,失常状况下会提醒以下弹框

然而在满足了沙盒环境的 2 个必要条件后,依然无奈提醒该对话框,是否示意没有进入沙盒测试?

以下是开发者通过 isSandboxActivated 接口打印出的相干数据

从打印的日志来看:满足了沙盒环境 2 个必要条件。

  1. 以后登录的华为帐号属于沙盒帐号
  2. VersionCode 大于利用市场线上版本(该 APK 暂未公布利用市场,所以利用市场返回的版本号为 0)

很显著从后果来看实践上应该进入了沙盒测试环境。那么有没有其余办法来确认?

解决办法:是否胜利进入沙盒环境,能够通过以下几种办法排查

a) 查看返回的购买数据,参考下图:

如果华为订单号 payOrderId 以 SandBox 结尾,那么外表该笔订单属于沙盒测试产生的订单。

b)查看领取报表

能够查看领取报表,如果领取报表没有该笔订单,阐明该订单来自于沙盒测试产生的。(注:领取报表数据不是实时更新的,如果当天购买的订单,为了判断准确性,能够次日再刷新该报表验证)

c)革除 HMS Core 缓存
能够尝试革除 HMSCore 缓存,端侧弹框是依据相应字段标识进行判断的,可能是缓存起因导致该值未及时刷新。可通过设置 –> 利用和服务 -> 利用治理 ->HMS Core 进行缓存清理。

理解更多详情 >>

拜访华为开发者联盟官网
获取开发领导文档
华为挪动服务开源仓库地址:GitHub、Gitee

关注咱们,第一工夫理解 HMS Core 最新技术资讯~

正文完
 0