栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > Unity3D

Unity IAP Google支付问题汇总(排雷指南)(持续更新...)

Unity3D 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity IAP Google支付问题汇总(排雷指南)(持续更新...)

1. 创建商品时,不满足访问此页面的要求,需要先谁指 GooglePayments商家账号 ...

找运营同学去把银行账户的事儿搞定了先。

 2. 创建商品时,您需要为APK添加BILLING权限 ...

GooglePayments搞定了,又提示这个,不知道是否是新政策,我们之前做的付费Demo,没有这一步要求,当时用的后台,现在还可以添加新的商品。

百度大法:在AndroidMainfest 里面添加权限

重新提交aab(现在已经不能使用apk来提交Google了, 官方怎么还提示上传APK)

3. 提交aab时,我们检测此应用使用了不受支持的Play结算服务版本!!!

问题真的是一个接着一个,解决方法:

 https://developer.android.com/google/play/billing/unity#abstraction-layer

这个是Android官方的Billing文档,照着做吧 ...

(一年多没上google,变化翻天覆地啊,主要就是21年 8月这一波生效的政策,之前提交项目的盆宇们也不要高兴太早22年4月前会要求全部替换的)

更新了Unity里面的SDK,重新打包,可以提交了,审核中... 审核还没通过已经可以创建内购商品了。

到这里不得不说:这个政策真的好奇怪啊,想加商品要求你先提有billing权限的包,但是因为没有后台设置商品,包里不可能把功能写全,只能是提一个半成品的包上去,这是官方强制你必须搞一次这么繁琐的操作嘛? 真的不理解... 为啥就不让我们一次过呢 ...

4. 首次提包targetAPI问题, 与支付无关 但是 跟Google相关,就记录在这里吧

首次提包的时候,GP后台提示aab需要targetAPI 为 30,也就说要求Android11以上的设备才能使用,今天运营同事看了一下,目前Android11的设备使用情况占所有Android设备的34.7%。

这不就搞笑了么,于是我抱着侥幸的心里打了老targetAPI的包,再次上传,神tm成功了?!

一脸懵逼,GP你跟我玩潜规则,合着第一次不让上传卡你,又怕用户流失,后面又可以了?不知道google官方是什么逻辑,反正就是这么个情况...

5. 无法拉起支付,报错提示:IN-APP BILLING API VERSION 3 IS NOT SUPPORTED ON THIS DEVICE

真的是搞人心态,百度大法搜一下:解决 Google Play 支付问题:In-app billing API version 3 is not supported on this device - 灰信网(软件开发博客聚合)

有遇到同样问题的大哥,看完他的经验我的解决方案就是:换一台只登陆过美区账号的手机,解决。 

6. 测试Google支付过程注意事项

(1)首先测试账号不能是国区账号,直接在初始化支付服务的时候就会失败。

(2)只要你在国内就无法使用余额来真正支付(1年前还可以,现在不行了),会提示你:余额仅能在美国使用。(美区账号+挂美国VPN同样不行,网上查了下说把用“科技”把GPS定位改到美国一样不可以,不得不感叹一下Google对用户位置的确认 还是有点吊的 ... )

(3)我使用的是内部测试轨道,仅用内测名单里面的账户不能走 模拟支付流程,需要在 控制台的根目录下找到 “设置”(“Setup”) → “许可测试”(“License testing”) → “许可测试人员”(License testers)里面添加对应的G账号,就可以模拟测试付费过程了。

7.Unity IAP 的 Google Restore 操作

说来真的是坑,Google IAP 插件里面有关于 google restore 的官方样例:

里面的ReamMe 写到这样一段话:

“When a user reinstalls your application they should be granted any Non-Consumable or renewable Subscription products
they already own. App stores maintain a permanent record of each user's Non-Consumable and renewable Subscription
products which Unity IAP can retrieve.

On the Google Play Store, Unity IAP automatically restores any products the user owns during the first initialization
following reinstallation; the ``ProcessPurchase`` method of your ``IStoreListener`` will be called for each owned item.”

大概意思就是:google 和 pc 商店下,重/新装app时,在 IAP 初始化成功的时候,就会执行购买过的商品的购买成功回调。(为了不大改之前项目支付模块架构,这里我就要先把这些东西存下来,手动调用 Restore的时候 再拿出来用 ... )

而给的接口:

m_GooglePlayStoreExtensions.RestoreTransactions(OnRestore);

只是在 OnRestore里面告诉你之前是否成功调用过(返回一个bool),而不是再告诉你一次你都买过哪些商品,真的是.... 不说了,可能这是种更先进的方式吧,我太菜,我不喜欢 TT

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/900319.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号