Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Android inapp购买验证问题:Can';t解析代码,返回值始终为零_Php_Android_Openssl_In App Purchase - Fatal编程技术网

Php Android inapp购买验证问题:Can';t解析代码,返回值始终为零

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

我正在使用openssl\u verify()方法来验证INAPP\u PURCHASE\u数据和签名,并使用来自Google开发者控制台的公钥

我正在将我的应用程序中的数据和签名解析到一个运行以下php代码的url。当我从android应用程序中进行测试购买时,我的脚本运行良好,但返回值始终为零

有人能说出代码有什么问题吗

上述两个字段的格式是否存在问题

还有谁能提出更好的方法来解析php脚本中的参数

这是我正在使用的代码

<?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);

?>