На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Hsilgos
  
> Сервер проверки inapp android
    Привет всем.
    Не был тут лет 10 :rolleyes:

    Не знаю вообще в правильное ли место я решил задать этот вопрос.
    Мучаюсь с проверкой покупок. Изначально пробовал на C#.net но там также покупка не валидна, нашел примеры на php, и вроде все правильно делаю но результат не тот что мне нужен, вычисляет как не валидные, хотя данные подсовываю из реальной покупки, правда в sandbox, в примере использовал как давнишние, так и более свежие покупки.

    Код простой брал от сюда https://www.b4x.com/android/forum/threads/i...fication.91128/
    Но вот тут, вроде тот же и попроще https://gist.github.com/menny/1985010#file-...rket_in_app-php

    ExpandedWrap disabled
      function verify_market_in_app($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_get_publickey($key);
          //$signature should be in binary format, but it comes as BASE64.
          //So, I'll convert it.
          $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;
          }
      }


    И в общем все кажется подставляю верно, но не знаю, нужно ли что то настраивать в сервере что бы использовать эти вызовы с ssl, может как то публичный ключ нужно подготовить? Ключ скопипастил из консоли google, но покупка оказывается не валидной, вот тут все тестирую http://redsungame.ru/inapp.php

    что можно еще проверить?

    Прикреплённая картинка
    Прикреплённая картинка
      Фух, разобрался, я вместо оригинального сообщения слал некую фигню. Оригинальное сообщение выглядит совсем по другому!


      {"orderId":"GPA.3304-0289-1392-53795","packageName":"air.air.RedSun","productId":"aliens","purchaseTime":1593125225673,"purchaseState":0,"purchaseToken":"lnpcnedfmbfenenjaknijbke.AO-J1OyXhnT-7WmxEAaUb43Wb4M-FhLahLb9Vvj0902QbUHxFAsttjSJyHyx4bsG-Ll-l27lFyPt88TzzDGjZjgJTHXWU6rASNJtafHSZ9UH-6XqDRGjvQ4","acknowledged":true}
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0206 ]   [ 17 queries used ]   [ Generated: 28.03.24, 11:29 GMT ]