Unity接入谷歌支付
文章理由
前段时间负责Unity接入Google内购功能,一开始研究别人的技术博客时发现,他们的文章都有些年头了,有些细节的地方已经不像n年前那样了,技术永远是需要更新的,而这篇就作为2016年末的最后一篇接入谷歌内购文章写给需要的人
准备工作
1.将自己的谷歌账号,支付25美元,成为谷歌开发者账号,开发者信息随意填写(有的博客写着必须填写美国,其实我就填写的中国)
2.一台安装有谷歌四件套的安卓手机以及VPN
3.一个用于测试的Unity小demo,只需要做好支付按钮就好了
谷歌开发者后台的设置
1.先创建一个新应用

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







3.应用内商品填写

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

创建完毕之后的界面

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

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

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


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


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


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




在AndroidMainfest文件中添加内购权限

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


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


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

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

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

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

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



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

结语
接入所有的步骤都在这里了,还有一些坑点,后续会更新上的,如果感觉哪里说的不够仔细,请私信我,我会一一加上的,大家一起进步
Unity接入谷歌支付的更多相关文章
- Unity接入微信支付SDK 2022年版安卓篇
最近1年转了UE开发,博客更新的比较少,技术栈宽了不少,以后有空尽量多更新,也方便总结记忆 Unity接入微信支付整个过程坑比较多,网上之前的教程要么比较老,要么比较零碎,只能东拼西凑摸索,跑通后还是 ...
- unity接入谷歌ADMob注意事项
应用不显示广告,可能是广告sdk 依赖项没有注册 dependencies { implementation fileTree(dir: 'bin', include: ['*.jar']) impl ...
- Unity接入微信登录 微信分享 微信支付 支付宝SDK
你将会学到的unity集成SDK游戏中接入微信支付与支付宝支付游戏中接入微信登录与微信分享 目录 mp4格式,大小2.2GB 扫码时备注或说明中留下邮箱 付款后如未回复请至https://shop13 ...
- 谷歌支付服务端详细讲解(PHP)
前不久公司拓展海外市场,要接入google支付.刚开始一头雾水,相关的文档实在太少.而且很多东西都需要FQ,不过好在摸索几天后,总算调试通了. 前提:FQ 1.注册账号google账号 https:/ ...
- 在Web应用中接入微信支付的流程之极简清晰版
在Web应用中接入微信支付的流程之极简清晰版 背景: 在Web应用中接入微信支付,我以为只是调用几个API稍作调试即可. 没想到微信的API和官方文档里隐坑无数,致我抱着怀疑人生的心情悲愤踩遍了丫们布 ...
- 在Web应用中接入微信支付的流程之极简清晰版 (转)
在Web应用中接入微信支付的流程之极简清晰版 背景: 在Web应用中接入微信支付,我以为只是调用几个API稍作调试即可. 没想到微信的API和官方文档里隐坑无数,致我抱着怀疑人生的心情悲愤踩遍了丫们布 ...
- Unity与Android交互-Unity接入高德地图实现定位以及搜索周边的功能(使用Android Studio)详细操作
刚进公司给安排的任务就是Unity接入高德地图,算是踩了不少坑总算做出来了,抽点时间写个博客记录一下 废话不多说 先上效果图 获取定位并根据手机朝向显示周边信息 使用的Unity ...
- TP3.2.3 接入银联支付
TP3.2.3 接入银联支付 项目接入银联支付的过程, 在此记录下,希望能帮助开发盆友平坑. 银联SKD链接:https://open.unionpay.com/ajweb/product/newPr ...
- Idea-Java接入银联支付的Demo
注:本文来源于:< Idea-Java接入银联支付的Demo > 接入银联支付的Demo,希望能给大家节约一点时间 https://github.com/wangfei0904306/un ...
随机推荐
- Linux中如何配置IP相关文件
Linux中如何配置IP 与网络相关的文件:1) /etc/sysconfig/network 设置主机名称及能否启动Network2) /etc/sysconfig/network-script ...
- [Vuejs+php] MySQL数据转JSON传值到前端
说在前面 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 优点如下[转]: 1.占带宽小(格式是压缩的) 2. js通过eval()进行Json读取(便 ...
- Java学习(API及Object类、String类、StringBuffer字符串缓冲区)
一.JAVA的API及Object类 1.API 概念: Java 的API(API: Application(应用) Programming(程序) Interface(接口)) Java API就 ...
- Yii2使用驼峰命名的形式访问控制器
yii2在使用的时候,访问控制器的时候,如果控制器的名称是驼峰命名法,那访问的url中要改成横线的形式.例如: public function actionRoomUpdate() { // }//访 ...
- Tarojs+redux支付宝小程序开发攻略
技术选型 对于习惯react语法的开发者来讲,RN是实现native的必备工具. 我们甚至可以屏蔽官方稳定而强大的配置层,直接上手开发. 而后,同为表层React语法的Rax.Taro这样的开源多端开 ...
- XML DOM(Document Object Model)
1.XML DOM 是用于获取.更改.添加或删除 XML 元素的标准.2.节点(XML 文档中的每个成分都是一个节点): 整个文档是一个文档节点: 每个XML元素是一个元素 ...
- css控制默认滚动条样式
针对webkit内核的浏览器,使用伪类来改变滚动条的默认样式,详情如下: 滚动条组成部分 1. ::-webkit-scrollbar 滚动条整体部分 2. ::-webkit-scrollbar-t ...
- Mybatis源码分析之结果集处理
解析封装 ResultMap 是和结果集相关的东西,最初在解析 XML 的时候,于 parseStatementNode 方法中,针对每一个 select 节点进行解析,转换为 MappedState ...
- 基于springboot实现http响应异常信息国际化
背景 国际化是指在设计软件,将软件与特定语言及地区脱钩的过程.当软件被移植到不同的语言及地区时,软件本身不用做内部工程上的改变或修正. 本文提到的异常响应信息国际化是指:前端向后台发起请求,后台在处理 ...
- 检验Xcode是否被改动过的简单方法,不妨试试!!!
检验Xcode是否被改动过的简单方法,不妨试试!!! 在终端系统上运行以下命令启用检测: spctl --assess --verbose /Applications/Xcode.app ...