Unity接入Google支付流程

文章理由

前段时间负责Unity接入Google内购功能,一开始研究别人的技术博客时发现,他们的文章都有些年头了,有些细节的地方已经不像n年前那样了,技术永远是需要更新的,而这篇就作为2016年末的最后一篇接入谷歌内购文章写给需要的人

准备工作

1.将自己的谷歌账号,支付25美元,成为谷歌开发者账号,开发者信息随意填写(有的博客写着必须填写美国,其实我就填写的中国)

2.一台安装有谷歌四件套的安卓手机以及VPN

3.一个用于测试的Unity小demo,只需要做好支付按钮就好了

谷歌开发者后台的设置

1.先创建一个新应用

Unity接入谷歌支付_android



2.以下是发布应用前必填的信息(填写完整所有带*号的选项,左上角四处灰色对勾全部变为绿色才能够发布),附上需要填写信息的全部截图

Unity接入谷歌支付_安卓项目_02

Unity接入谷歌支付_内购_03

Unity接入谷歌支付_安卓项目_04

Unity接入谷歌支付_内购_05

Unity接入谷歌支付_android_06

Unity接入谷歌支付_内购_07

Unity接入谷歌支付_内购_08

3.应用内商品填写

Unity接入谷歌支付_内购_09



与其他的博客不同,到了我写博客这个时期,只剩下受“管理的商品”和“订阅”这两种(取消了不受管理的商品),“受管理的商品“是谷歌帮你记录购买状态,例如一次性花钱购买所有开放关卡,玩家如果重装游戏,还能不再次花钱找回原来购买的这些关卡。可是有人会问,如果取消了“不受管理的商品”,那我游戏中可以无限购买的礼包以及金币钻石礼包怎么办,别急,后面的代码中会提到这个。

Unity接入谷歌支付_android_10



创建完毕之后的界面

Unity接入谷歌支付_内购_11

Unity方面

因为支付的代码需要去安卓中写,所以在这里将Unity项目打包成为安卓项目,然后进行二次开发。首先是安卓和Unity的通信,如果不会的话可以去看看雨松的博客。下图buykey这个参数,是之前创建应用内商品得到的ID--(jb_1)和(lb_1),这个参数需要传到安卓中做处理。

Unity接入谷歌支付_安卓项目_12


下图message这个参数是安卓传回来的消息,如有需要,可以在Unity中做后续处理

Unity接入谷歌支付_安卓项目_13



接下来需要将Unity项目打包为安卓项目,先填写好相应的包名和签名以及固定必须修改的部分后开始打包为安卓项目

Unity接入谷歌支付_android_14

Unity接入谷歌支付_android_15

在Android中加入支付代码

我使用的是Eclpise进行的二次开发,你要是使用AndroidStudio也没有问题,代码的思路都是差不多的,配置的方式不同而已。首先在Eclipse中创建一个空项目(请注意图片上的标注)

Unity接入谷歌支付_内购_16

Unity接入谷歌支付_内购_17



之后的一路Next就可以,接下来将刚才Unity导出的安卓工程里面的文件夹直接拖动到新建的工程下,并选择全部覆盖,我们的工程内容将被替换为Unity内容:

Unity接入谷歌支付_安卓项目_18

Unity接入谷歌支付_android_19



Android工程设置完成。接下来是最关键的接入谷歌内购了,首先我们需要在SDK Manager中下载内购sdk。这里面是他的官方demo,介绍了如何在安卓工程中接入内购。将截图中需要的类放到我们的安卓项目,拖进来可能会报引入路径错,注意修改成符合你们自己工程的正常路径

Unity接入谷歌支付_内购_20

Unity接入谷歌支付_安卓项目_21

Unity接入谷歌支付_内购_22

Unity接入谷歌支付_内购_23

在AndroidMainfest文件中添加内购权限

Unity接入谷歌支付_android_24

接着我们在java代码中写入被Unity调用以及向Unity回传消息的代码

Unity接入谷歌支付_安卓项目_25

Unity接入谷歌支付_安卓项目_26

内购方面,必须要需要写入base64 ras公共密钥。在我们新创建的应用列表中找到“服务和API”,里面有公共密钥

Unity接入谷歌支付_内购_27

Unity接入谷歌支付_android_28

接下来的几个函数是我们内购必须用到的

1.调用内购函数之后,执行“购买结果处理函数”,因为我们的商品是受管理商品,只允许购买一次,如果想再次购买,必须先进行消耗,只有消耗成功,谷歌才允许继续购买。如果您有金币或礼包等可无限购买商品,可以在每次购买成功之后立刻执行消耗函数即可。

Unity接入谷歌支付_内购_29

2.此图为购买成功之后,执行“消耗结果处理函数”,例如判断用户消耗成功,则执行相应的事件

Unity接入谷歌支付_android_30

3.下图函数为程序初始化会自动调用的函数,可以将您希望执行消耗的商品列表添加到里面,如果是一次性购买商品,则不要添加到列表中

Unity接入谷歌支付_安卓项目_31

4.下图函数必需添加到你的代码中(仿照demo)

Unity接入谷歌支付_内购_32

发布到谷歌

接下来将此安卓工程打包成apk,不会的自行搜索Eclipse如何打包为apk文件。打包好后,上传到谷歌开发者控制台,我这里上传的是Alpha版本并选择了封闭式ALPHA 版测试,然后将需要测试的谷歌账号添加到测试人员列表中,注意并不仅仅要在这里添加为测试人员,还要在设置中的许可测试选项中添加测试的谷歌账号,必须两处都加上

Unity接入谷歌支付_安卓项目_33

Unity接入谷歌支付_内购_34

Unity接入谷歌支付_安卓项目_35

第一次上传ALPHA版apk成功后,要耐心等待几个小时,然后使用测试账号进入下图的网址,然后点击确定成为测试人员,然后再次等待15分钟-1小时后即可在谷歌商店中下载我们的测试应用去测试,当然此时您也可以使用之前的apk直接安装到手机上测试

Unity接入谷歌支付_内购_36


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空