unity接入google play 支付之结算库篇

2023-10-08 08:30

本文主要是介绍unity接入google play 支付之结算库篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

接入google支付有两种方式:
1、导入AIDL 文件实现接入,2、使用google play 结算库实现。
我在这里使用的是结算库。看了很久的官方文档,给出了一些通用方法,但是还是一头雾水,概念要搞清楚。
google 应用内商品分两种,1、受管理的商品(又称一次性商品),2、 订阅商品;一次性商品又分两种,1、消耗型商品(可以重复购买),2、非消耗型商品(真正的一次性商品);

这里先贴上官方文档:
https://developer.android.com/google/play/billing/billing_library_overview

通过调用结算库中的API 实现支付接入,来,开始,上图:
在这里插入图片描述
登陆google play console官网,用自己的google 账号登陆,接受开发者协议之后,花费25美元,成为google 开发者。网址在此:
https://play.google.com/apps/publish/

在这里插入图片描述
进来之后,创建自己的应用,刚创建完是草稿状态,后面会有 等待发布状态、已发布状态、已移除状态,
创建应用之后,上图在这里插入图片描述
左边栏中的灰色对号让他变成绿色的,怎么变?把右边带星号的信息全部填完,就变了,填完之后,如果你有用于测试的APK包,先上传一个apk,因为只有上传apk才能申请应用内商品id。
这里apk的讲究也很大,apk必须带签名,签名怎么搞?来来来,转到unity项目中,上图在这里插入图片描述
打开Player Setting,打开Publishing Setting,下面有一个使用keystore文件,如果没有keystore文件,上网址:
https://www.cnblogs.com/aiaitie/p/9525564.html
可以自动生成,这里一定要保证java JDK是OK的,生成之后把keystore password和Alias Password两个密码记住。填入上图的位置。

上传完apk之后,要在后台添加受管理商品,上图在这里插入图片描述
会有人疑问为什么你的应用左边栏和我的不一样吗?你的应用发布之后就和我的一样了。
后台的设置基本就这些了。

导出Gradle包,下面用到Android studio了。
在这里插入图片描述

打开之后,四个划线位置都是需要改变的位置。首先,你得有Google play billing library,下载的话就去Android SDK Manager 下载,在extras目录下,我这里没有下载,因为我找不到,但是也能用,很神奇。

首先在AndroidManifest.xml中添加依赖:

在这里插入图片描述
build.gradle中添加依赖:implementation ‘com.android.billingclient:billing:+’

然后开始上代码:上图:在这里插入图片描述
private BillingClient billingClient;
“billingClient”是用来调用API的唯一对象,相当于支付对象。

billingClient = BillingClient.newBuilder(this).enablePendingPurchases().
setListener(mpurchases).build();//这段是用来连接google play服务的,
“this”是当前页面,Activity类型的参数;
“mpurchases”是一个PurchasesUpdatedListener的监听器,监听的实现都在SetLienter()函数中,后面贴代码。

billingClient.startConnection(mBillingClientStateListener);//开启支付
在这里插入图片描述
这里两个分支:
1、和google play服务连接成功
2、连接断开
说明:该监听实现在SetLintener中
在这里插入图片描述

billingClient.querySkuDetailsAsync(params.build(), new SkuDetailsResponseListener() //该函数是查询函数

“Pay”是供unity调用的函数,当unity中点击购买按钮,调用该函数,实现查询商品和购买。
billingClient.launchBillingFlow(mActivity, flowParams);//该函数弹出购买界面
“mActivity”是当前页面,
“flowParams”是商品信息流,别管是什么意思,就是存储商品信息的。

弹出页面之后,上图在这里插入图片描述
通过之前绑定的监听,会执行到onPurchasesUpdated,这里有三个分支:
1、用户付款成功
2、用户取消购买
3、发生其他情况

当用户付款之后,billingResult.getResponseCode()返回的值如果是BillingClient.BillingResponseCode.OK,说明付款成功,
接下来再走消耗分支,这里说明一下消耗和消耗的区别:
1、如果是消耗商品,也就是可以重复购买的商品,像游戏中的金币包,钻石包,就要调用消耗函数,走for循环,走handlPurchases(),因为只有执行消耗之后,才能重复购买。
2、如果是非消耗函数,像游戏中购买关卡之类的,买一次同一个账号能够终身开启的,就不走消耗,直接走确认购买。
贴上handlPurchases(),上图在这里插入图片描述
billingClient.consumeAsync(params, new ConsumeResponseListener() //该函数为消耗函数,如果走到if分支,说明该商品消耗成功,可以重复购买
“params”这个参数是ConsumeParams类型,需要设置两个值,1、token;2、payload,这两个参数从purchases中获取即可。

消耗完成之后返回上面确认购买函数,只有执行确认购买之后,商品才会真正的被后台确认为已购买,如果没有执行确认购买函数
( billingClient.acknowledgePurchase(acknowledgePurchaseParams, new AcknowledgePurchaseResponseListener() )
,商品会被后台撤销,并返回给用户。

这篇关于unity接入google play 支付之结算库篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/164010

相关文章

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

SpringBoot基于沙箱环境实现支付宝支付教程

《SpringBoot基于沙箱环境实现支付宝支付教程》本文介绍了如何使用支付宝沙箱环境进行开发测试,包括沙箱环境的介绍、准备步骤、在SpringBoot项目中结合支付宝沙箱进行支付接口的实现与测试... 目录一、支付宝沙箱环境介绍二、沙箱环境准备2.1 注册入驻支付宝开放平台2.2 配置沙箱环境2.3 沙箱

IDEA接入Deepseek的图文教程

《IDEA接入Deepseek的图文教程》在本篇文章中,我们将详细介绍如何在JetBrainsIDEA中使用Continue插件接入DeepSeek,让你的AI编程助手更智能,提高开发效率,感兴趣的小... 目录一、前置准备二、安装 Continue 插件三、配置 Continue 连接 DeepSeek四

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

PyCharm 接入 DeepSeek最新完整教程

《PyCharm接入DeepSeek最新完整教程》文章介绍了DeepSeek-V3模型的性能提升以及如何在PyCharm中接入和使用DeepSeek进行代码开发,本文通过图文并茂的形式给大家介绍的... 目录DeepSeek-V3效果演示创建API Key在PyCharm中下载Continue插件配置Con

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

PyCharm接入DeepSeek实现AI编程的操作流程

《PyCharm接入DeepSeek实现AI编程的操作流程》DeepSeek是一家专注于人工智能技术研发的公司,致力于开发高性能、低成本的AI模型,接下来,我们把DeepSeek接入到PyCharm中... 目录引言效果演示创建API key在PyCharm中下载Continue插件配置Continue引言

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

Unity Post Process Unity后处理学习日志

Unity Post Process Unity后处理学习日志 在现代游戏开发中,后处理(Post Processing)技术已经成为提升游戏画面质量的关键工具。Unity的后处理栈(Post Processing Stack)是一个强大的插件,它允许开发者为游戏场景添加各种视觉效果,如景深、色彩校正、辉光、模糊等。这些效果不仅能够增强游戏的视觉吸引力,还能帮助传达特定的情感和氛围。 文档

com.google.gson.JsonSyntaxException:java.lang.IllegalStateException异常

用Gson解析json数据的时候,遇到一个异常,如下图: 这个异常很简单,就是你的封装json数据的javabean没有写对,你仔细查看一下javabean就可以了 比如:我的解析的代码是             Gson gson = new Gson();             ForgetJson rb = gson.fromJson(agResult.mstrJson, For