1、onIabPurchaseFinished始终没有被调用
原因是需要重写Activity的void onActivityResult(int requestCode, int resultCode, Intent data)
在这里调用IabHelper.handleActivityResult(requestCode, resultCode, data)
2、发送验证消息的游戏服务时出现的java异常java.lang.IllegalStateException: Target host must not be null, or set in parameters.
原因是url必须以“http://”开头
3、google play developer console上传apk遇到的问题:
apk不能使debug版本;
apk必须签名;
apk必须要用zipalign做字节对齐。对齐指令:zipalign 4 in.apk out.apk
4、apk必须要发布才可以测试,alpha版本也是可以发布的
5、开发者本身不能购买内购商品
6、加入到测试列表的gmail账号,必须打开指定的测试请求页面,同意加入测试者,才可以以测试者身份购买道具(否则要被扣钱)。成为测试者之后并不会立即看到订单显示为测试订单,需要等一段时间。
7、服务器端的验证方法
$inapp_purchase_data = '';//原始订单信息json
$inapp_data_signature = '';//签名
$google_public_key = '';//公钥
$public_key = "-----BEGIN PUBLIC KEY-----\n" . chunk_split($google_public_key, 64, "\n") . "-----END PUBLIC KEY-----";
$public_key_handle = openssl_get_publickey($public_key);
$result = openssl_verify($inapp_purchase_data, base64_decode($inapp_data_signature), $public_key_handle, OPENSSL_ALGO_SHA1);
if( 0 == $result ) {
// 支付验证失败!
die( "verify failed" );
}