Я пытаюсь подтвердить подлинность квитанции об оплате Android, которую я получаю при совершении покупки.
Проверка выполняется на стороне сервера, но я думаю, что если иногда сервер не работает, я мог бы проверить подписи в самом приложении.
вот как я проверяю покупку на сервере ..
<?php
// get data param
$data = $_GET['response'];
// get signature param
$signature = $_GET['signature'];
// get key
$key_64 = "MY Base64 KEY FROM DEVELOPER CONSOLE";
$key = "-----BEGIN PUBLIC KEY-----\n".
chunk_split($key_64, 64,"\n").
'-----END PUBLIC KEY-----';
//using PHP to create an RSA key
$key = openssl_get_publickey($key);
// state whether signature is okay or not
$ok = openssl_verify($data, base64_decode($signature), $key, OPENSSL_ALGO_SHA1);
if ($ok == 1) {
echo "verified";
} elseif ($ok == 0) {
echo "unverified";
} else {
die ("fault, error checking signature");
}
// free the key from memory
openssl_free_key($key);
?>
Так как же сделать на Android?
Задача ещё не решена.
Других решений пока нет …