Я пытаюсь реализовать проверку на стороне сервера для IAP в моем приложении flutter. Я использую пакет
https://pub.dev/packages/in_app_purchase
версия: ^ 0.3.4 + 8
И я не понимаю, как я получаю данные для подтверждения моей покупки для Android и IOS. В документации говорится:
или проверьте данные, используя свой собственный сервер с помощью serverVerificationData.
Кажется, эта строка возвращает какую-то закодированную строку. Как мне затем извлечь необходимые данные из этой строки? Я попробовал base64Decode (), поскольку localVerificationData имеет кодировку base64Encoded, но это не сработало.
Android требуется название пакета, идентификатор покупки и покупной токен. И iOS нужен объект-получение-данные. Я не понимаю, как мне получить эти данные из строки serverVerificationData.
В настоящее время я сначала внедряю Android.
В документации localVerificationData говорится
Данные, используемые для локальной проверки.
Если источником является IAPSource.AppStore, эти данные представляют собой строку в кодировке based64. Структура полезной нагрузки определяется с использованием ASN.1. Если источником является IAPSource.GooglePlay, эти данные представляют собой строку JSON.
Таким образом, serverVerificationData должен отличаться от localVerificationData, поскольку он совсем не похож на JSON. Я также не уверен, безопасно ли размещать здесь serverVerificationData, поскольку он может содержать конфиденциальную информацию.
Это строка, похожая на ту, что у меня на android, только я поменял все буквы, цифры и т. Д. Так что дело только в формате
zdfdzcdshxvbxmgbafdxvdzt.JK-GR58OHRPOGFEFHEGVEACBEIFDAPDH_EFHEWFEHFHPEGVERBWBASZWDAWODPAWD-HDSWCGOEWFP-EFPEQFHPEDHEWYIFEWFUWEFDASCNAQWFDefphFEQUIWEFpofgewpfFEWHFPWEF
В репо они показывают, что вызывают _verifyPurchase (покупка); который не имеет реализации в примере.