Я пытаюсь настроить Android-биллинг v3 на моем удаленном сервере php.android in app billing v3 с php
но, кажется, что-то неправильно в моих кодах.
Я думаю, что эта функция openssl_verify является проблемой.
Результат всегда провалился!
Я не могу найти, какой первый параметр нужно проверить с помощью openssl_verify. на самом деле, я «м путать то, что разумно формат для размещения в первом параметре :(
могли бы вы помочь мне решить эту проблему?
$result = openssl_verify($data["purchaseToken"], base64_decode($signature), $key); // original // failed
сильфонных полных тестовых кодов.
<?php
$responseCode = 0;
$encoded='{
"orderId":"12999763169054705758.1111111111111",
"packageName":"com.xxx.yyy",
"productId":"test__100_c",
"purchaseTime":1368455064000,
"purchaseState":0,
"purchaseToken":"tcmggamllmgqiabymvcgtfsj.AO-J1OwoOzoFd-G-....."
}';
$data = json_decode($encoded,true);
$signature = "tKdvc42ujbYfLl+3sGdl7RAUPlNv.....";
$publicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2kMri6mE5+.....";
$key = "-----BEGIN PUBLIC KEY-----\n" . chunk_split($publicKey, 64, "\n") . "-----END PUBLIC KEY-----";
$key = openssl_get_publickey($key);
if (false === $key) {
exit("error openssl_get_publickey");
}
var_dump($key);
$result = openssl_verify($data["purchaseToken"], base64_decode($signature), $key); // original // failed
//$result = openssl_verify($data, base64_decode($signature), $key); // failed
//$result = openssl_verify($encoded, base64_decode($signature), $key); // failed
//$result = openssl_verify(base64_decode($data["purchaseToken"]), base64_decode($signature), $key); // failed
//$result = openssl_verify(base64_decode($signature),$data["purchaseToken"], $key,OPENSSL_ALGO_SHA512); // failed
if ($result == 1) {
echo "good";
} elseif ($result == 0) {
echo "bad";
} else {
echo "error";
}
echo($result);
спасибо :)
+1 для двух вещей, параметров и неправильной строки json. Я исправляю и то и другое. спасибо – TaeL
Это немного запутанно, потому что в вашем ответе '$ data' декодируется json для массива. Очень важно использовать ORIGINAL JSON от Google (я знаю, что это в вашем ответе в конце, но я пропустил его во время первого чтения :-)) – Naxos
У вас есть достаточно репутации, чтобы улучшить ответ? Если так, пожалуйста, сделайте это. В противном случае я попытаюсь обновить его, чтобы уточнить его лучше. :) –