一、前期调研准备
1、google play商店配置
在360手机助手下载“GO谷歌安装器”,不要在手机助手上直接下载Google play,不知道为啥不能用。建议使用“GO谷歌安装器”里面配置环境的时候会配置安装Google play
2、facebook下载安装
facebook在Google play上找不到。地址一上传就审核拒绝,大家自己找APKPure,里面有这个应用
3、关于google play支付
前期准备
(1)申请一个google play开发者账号,需要支付25美金,确保你使用的是visa卡,不然支付费用的时候会有问题。
(2)提前准备好一个apk(占位用,只需要放入结算权限,不需要接入google 结算sdk),在google play控制台上传你的apk
(3)发布一个beta的测试版本(注意第一次在Google play上发布应用的时候审核时间会比较慢,而且提交的内容要接近真实游戏,不要自己编造,我提交的apk相关的内容都是自己的测试demo,然后审核就被拒了两次,建议提交内容的时候规范真实点,比较容易好过,只需要提交测试版,个人觉得正式版的审核会更慢),发布之前需要按照后台提示完成以下选项(提交商品详情内容)(确定内容分级)(选择发布范围)等,之后才能正常发布
(4)添加测试人员,等应用审核通过之后,会得到一个地址,把地址发给对方,让对方点击同意加入测试即可
(5)需要创建应用内商品(商品id,商品描述,定价),按提示填就可以了
(6)注意注意注意,如果要测试一定要审核通过才行啊!!!!!
(7)添加无需真实支付的测试人员:链接地址
目前遇到的问题是,只有两种账号能支付成功(测试账号+付费区、测试账号+visa卡支付过的):
==即使添加了测试账号,你的账号如果是非付费区,依然会连接支付服务失败。==这里建议大家进行下修改地区,只需要在google账号设置里增加地址就行,至于具体的地址,在网上都能搜到。
二、facebook
1、facebook环境配置
注意点
(1):按照文档提示步骤添加配置文件,facebook_app_id和fb_login_protocol_scheme就在配置的string.xml文件中
(2):重要~ 发布密钥散列。
keytool -exportcert -alias basefunctool_release -keystore "keystore文件" | openssl-0.9.8e_X64\bin\openssl sha1 -binary | openssl-0.9.8e_X64\bin\openssl base64
opnssl下载地址:https://download.csdn.net/download/fanwei4751/12613256
facebook登录后报错:Key hash does not match。明明是按照官方的提示设置的。最后才发现问题便出在openssl上,openssl较新的版本09.8k存在bug,其计算得出的key hash可能是错误的,我们回滚到0.9.8e版本,问题就解决了。
2、报错
SERVER_ERROR: [code] 1675030 [message]: 执行查询时出错。 [extra]:
账号权限不足,需要在facebook后台添加测试账号。一般在上线前调试阶段会用到
三、Google 结算接入
1、确保Google Play配置正确
(1)在Google Play Console上传测试版本APK,并发布测试版本成功,确定上传APK的包名、版本号、APK签名。
(2)在Google Play Console上配置应用内商品
(3)将测试账号加入测试计划
(4)确保本地的测试包与上传的测试版本APK的包名、版本号、APK签名相同
2、消耗型商品支付接入
(1)连接到 Google Play和注册支付监听
调用支付前需要先保证初始化成功。如果初始化失败,建议重试几次。isConnectSucc = true就表示初始化成功了,可以进行后续操作了
private BillingClient billingClient;
private boolean isConnectSucc = false; //google支付是否连接上成功
/**
* 初始化支付 :连接到 Google Play
*/
private void connectPay() {
//purchasesUpdatedListener是支付后的回调监听
billingClient = BillingClient.newBuilder(this).enablePendingPurchases().setListener(purchasesUpdatedListener).build();
billingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingSetupFinished(BillingResult billingResult) {
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
isConnectSucc = true;
// The BillingClient is ready. You can query purchases here.
showLog("Init success,The BillingClient is ready");
//每次进行重连的时候都应该消耗之前缓存的商品,不然可能会导致用户支付不了
queryAndConsumePurchase();
}
}
@Override
public void onBillingServiceDisconnected() {
//断开连接,当收到此回调时可以重新连接google否则会出现服务无法使用问题
showLog("Init failed,Billing Service Disconnected,The BillingClient is not ready");
}
});
}
(2)查询商品信息后调用支付。支付的结果会显示在初始化时注册的支付监听中
1) 先查询商品信息