Php Android inapp购买验证问题:Can';t解析代码,返回值始终为零
我正在使用openssl\u verify()方法来验证INAPP\u PURCHASE\u数据和签名,并使用来自Google开发者控制台的公钥 我正在将我的应用程序中的数据和签名解析到一个运行以下php代码的url。当我从android应用程序中进行测试购买时,我的脚本运行良好,但返回值始终为零 有人能说出代码有什么问题吗 上述两个字段的格式是否存在问题 还有谁能提出更好的方法来解析php脚本中的参数 这是我正在使用的代码Php Android inapp购买验证问题:Can';t解析代码,返回值始终为零,php,android,openssl,in-app-purchase,Php,Android,Openssl,In App Purchase,我正在使用openssl\u verify()方法来验证INAPP\u PURCHASE\u数据和签名,并使用来自Google开发者控制台的公钥 我正在将我的应用程序中的数据和签名解析到一个运行以下php代码的url。当我从android应用程序中进行测试购买时,我的脚本运行良好,但返回值始终为零 有人能说出代码有什么问题吗 上述两个字段的格式是否存在问题 还有谁能提出更好的方法来解析php脚本中的参数 这是我正在使用的代码 <?php $signed_data = $_REQUE
<?php
$signed_data = $_REQUEST["signed_data"];
$signature = $_REQUEST["signature"];
$public_key_base64 = "......";
function verify_market_in_app($signed_data, $signature, $public_key_base64)
{
$key = "-----BEGIN PUBLIC KEY-----\n".
chunk_split($public_key_base64, 64,"\n").
'-----END PUBLIC KEY-----';
//using PHP to create an RSA key
$key = openssl_get_publickey($key);
//$signature should be in binary format, but it comes as BASE64.
//So, I'll convert it.
$signature = base64_decode($signature);
//using PHP's native support to verify the signature
$result = openssl_verify(
$signed_data,
$signature,
$key,
OPENSSL_ALGO_SHA1);
echo $result;
if (0 === $result)
{
echo "false";
return false;
}
else if (1 !== $result)
{
echo "false";
return false;
}
else
{
echo "true";
return true;
}
}
verify_market_in_app($signed_data, $signature, $public_key_base64);
?>