问题纪要:2023.11.30上午忽然有用户反馈,无法充值问题,麻溜的自己试了一波确实g掉了。于是开始了一系列的排查。
第一反应就是账号是不是出事了。登录查看账号是否被封或者App是否被下架等问题??由于之前开发者账号被封过2次 ,导致App被迫下架。。一次次血淋淋的教训而显示有点小小的紧张。。
开始一系列的排查。。。。
根据文案很快就定位到了是这儿, 而该方法代理是苹果自己的API
func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse){
let productsArray = response.products
print("无效产品Product ID:\(response.invalidProductIdentifiers)")
if productsArray.count == 0 {
print("不存在该商品")
}
}
如果您在 iOS 内购过程中发现请求商品信息为空,可能是以下几个原因导致的:
1、商品ID不匹配:确保您使用的商品 ID 在 App Store Connect 中正确设置,并且与您在代码中请求商品信息时使用的 ID 相匹配。如果 ID 不匹配,将无法获取到商品信息。
2、苹果开发者账号问题:请确保您的苹果开发者账号没有过期或被禁用。如果开发者账号出现问题,可能会影响到内购功能的正常运作。
3、网络连接问题:内购请求商品信息需要通过网络连接到 App Store 进行验证,如果您的设备或网络连接存在问题,可能无法获取到商品信息。请确保您的设备处于良好的网络环境下,并且没有任何限制访问 App Store 的设置(如代理、防火墙等)。
以上都排查过 都是正常的
具体操作步骤:
一、由于不是开发者主账号登录进去只能看到有协议需要更新一下,需主账号即账户持有人更新一下协议。(由于是乙方,并没有甲方欧巴的主账号的密码),等主账号更新之后就会发现这种状态已经过期了。注意:没更新之前非主账号是看不到这里过期这行的。
二、紧张着就是让账户持有人点击付费App进去,然后进行编辑
三、编辑过后,就会变成下面这个状态。显示正在处理(此时大概时间在5-10分钟会变成有效)
四、完事之后以为就成了。以为立即可以了,结果是自己多虑了。反复隔一会操作一下。。还是一如既往的不行。。。大概等待了30-40分钟就好了(笔者验证)。
百度搜索了一下相关资料,大概的意思如下:
在 iOS 内购过程中请求商品信息时,如果您已经购买了付费 App,但是状态已经过期,那么请求商品信息时很可能会为空。这是因为过期的 App 状态已经被苹果服务器记录下来,请求到的商品信息会受到影响。
注意,如果您的 App 状态已经过期,重新购买或者重新订阅可能需要一定的时间才能生效。通常情况下,这个时间大约是几分钟到几小时不等,具体的时间取决于您的网络环境和苹果服务器的负载情况。