接入google play in app billing遇到的一些问题

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" );
}



你可能感兴趣的:(google,play)