gpt4 book ai didi

php - Android Billing-in App 版本 3 在服务器中验证

转载 作者:行者123 更新时间:2023-11-29 21:36:04 26 4
gpt4 key购买 nike

我使用计费应用程序(版本 3)构建 Android 应用程序。我想在我的服务器 PHP 中使用 openssl_verify() 验证购买。我需要四个值(value)观:$data、$signature、$public_key 和 $SIGNATURE_ALGORITHM。 I found a solution here ,但我不明白 $data 应该以什么形式出现?我在 Android 应用程序中获得响应数据:

'{
"orderId":"12999763169054705758.1371079406387615",
"packageName":"com.example.app",
"productId":"exampleSku",
"购买时间":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_data 是没有格式化的 json 字符串

关于php - Android Billing-in App 版本 3 在服务器中验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18420446/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com