Google Play 支付:
一、做Google Play 支付, 遇到“无法购买您要的商品”的问题,在网上搜了写答案,现在小结如下:
1. 保证 versionCode 和版本号与你上传的apk的包的一样。
2. 保证后台和你传入的购买商品的 id 一致。
3. 确保你所使用的账号是在测试人员里。
在"APK"页面里,有一个“选择使用网址”,把这个网址给你的测试人员,让你的测试人员用他的google账号点进去,点那个“成为测试人员”(前提是你把他加进了测试人员列表), 只有这样才能测试商品支付。
二、做Google Play 支付,从服务器检索信息时出错。[DF-AA-20]
1.应用没有在Google Play商店发布,至少是alpha版本;
2.应用或者开发者账号被封。
三、做Google Play登录获取不到用户信息
1.查看网络,国内看VPN是否开启(12501)
2.查看代码是否有误
3.查看此应用是否加入Google Play应用签名计划(最好不要加入)
如果加入涉及三方的都要使用应用签名证书下的资料
例:google登录中开发者账号>API权限>关联的项目>选中你的关联项目
例:facebook中登录的keyhash要做调整
但是:打包时还是用原来的jks文件
关于 Facebook:
一、做Facebook登录获取不到用户信息
前提是测试时正常,发版后查看keyhash配制是否正确
二、facebook登录桌面应用程序说:“登录错误:登录此应用程序时出错。请稍后再试。”
1.简单的临时解决方案是从您连接的Facebook应用程序中删除Deezer,并使用您的Facebook帐户重新连接到Deezer,该帐户无法更改您的密码。至少这适用于使用Facebook创建的Spotify帐户,现在也存在这个问题。
2.keyhash配制是否正确
keyhash可多个并存
web和app应用,或者打包电脑不同存在多个keyhash
web获取方式,直接打开会给一个keyhash
app应用:
1:keytool -exportcert -alias androiddebugkey -keystore "C:\Users\USERNAME\.android\debug.keystore" | "PATH_TO_OPENSSL_LIBRARY\bin\openssl" sha1 -binary | "PATH_TO_OPENSSL_LIBRARY\bin\openssl" base64
注:openssl不是内部或外部命令。
2:放在自己的Activity界面运行生成
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.test.demo",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.e("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (PackageManager.NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}