Php Android计费应用程序版本3验证服务器

Php Android计费应用程序版本3验证服务器,php,android,security,Php,Android,Security,我构建了Android应用程序,应用程序中有计费功能(版本3)。我想用openssl_verify()在我的服务器PHP中验证购买。 我需要四个价值观: $data、$signature、$public_key和$signature_算法,但我不明白$data应该以什么形式出现? 我在Android应用程序中获得响应数据: “{ “订单ID”:“12999763169054705758.1371079406387615”, “packageName”:“com.example.app”, “产品

我构建了Android应用程序,应用程序中有计费功能(版本3)。我想用openssl_verify()在我的服务器PHP中验证购买。 我需要四个价值观: $data、$signature、$public_key和$signature_算法,但我不明白$data应该以什么形式出现? 我在Android应用程序中获得响应数据:

“{
“订单ID”:“12999763169054705758.1371079406387615”,
“packageName”:“com.example.app”,
“产品ID”:“示例SKU”,
“购买时间”:1345678900000,
“采购状态”:0,
“developerPayload”:“bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ”,
“purchaseToken”:“rojeslcdyyiapnqcynkjyyjh”
}"

我有应用程序的签名。 我需要如何转换字符串以便在函数php openssl_verify()中使用它?
谢谢。

我在项目中使用

 public  function verifySignatureTransaction($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_pkey_get_public($key);

        if ($key === false) {
            throw new \InvalidArgumentException("Public key not valid");
        }
        $signature = base64_decode($signature);
        //using PHP's native support to verify the signature
        $result = openssl_verify(
            $signed_data,
            $signature,
            $key,
            OPENSSL_ALGO_SHA1
        );
        if (0 === $result) {
            return false;
        } else {
            if (1 !== $result) {
                return false;
            } else {
                return true;
            }
        }
    }
$signed_数据是它的json字符串,不带格式