Проверка подлинности php покупки в приложении openssl verify, openssl_get_publickey - PullRequest
0 голосов
/ 10 октября 2018

Я пытался проверить покупку inapp на стороне сервера после получения ответа от внешнего интерфейса на стороне Android .Фронтенд разработчик пришлите мне информацию ниже.Я использую openssl_get_publickey () для открытого ключа (Получить из консоли Google) и функцию openssl_verify (), но каждый раз получаю ответ false / 0.Пожалуйста, помогите мне решить проблему.Заранее спасибо.

        $signedData =  array(
            "orderId"           => 'GPA.3333-5628-5675-XXXX',
            "packageName"       => 'com.xxxxxxxx',
            "productId"         => 'sample_test_purchase',
            "purchaseTime"      => 1539165004552,
            "purchaseState"     => 0,
            "purchaseToken"     => $purchase_token
        );
    $signedData = json_encode($signedData); 


    $base64EncodedPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlrVLmLsjKbT+D96evuqmVrMq5FnTVtYOJY5AF2R/sadfasfasdfasdfasdfasdf+DQ3kCxGj+dfgdsxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXx/NZyXxxxxxxxx";


    $key = "-----BEGIN PUBLIC KEY-----\n" . chunk_split($base64EncodedPublicKey, 64, "\n") . '-----END PUBLIC KEY-----';
    $key = openssl_get_publickey($key);
    $sign=base64_decode($input_fields->signature);
    $result   = openssl_verify($signedData,$sign,$key,OPENSSL_ALGO_SHA1);

вывод: 0 или ложный результат is0error: 0906D06C: процедуры PEM: PEM_read_bio

...