понедельник, 31 июля 2023 г.

RevenueCat, Google Play и App Store: как передать идентификатор пользователя



Отпускаю эту информацию на просторы интернета. Если вы, товарищи по несчастью, тоже мучаетесь над вопросом "я работаю с RevenueCat, как передать user identifier в google play subscriptions, чтобы он вернулся в нотификациях и API и я мог понять, кто создал subscription", делаем несколько простых телодвижений:

1) Передаем свой драгоценный идентификатор (UUID, например) в originalAppUserId параметр при создании новой подписки RevenueCat

2) В AppStore API и ServerNotifications получаем его незашифрованным в параметре appAccountToken


3) В Google Play API purchases.subscriptionsv2 получаем его зашифрованным в externalAccountIdentifiers - obfuscatedExternalAccountId

4) Для шифрования (чтобы получить то же самое, что и в obfuscatedExternalAccountId) используем примерно такое (пример на питоне):
base64.b64encode(codecs.decode(sha256("MY_IDENTIFIER".encode("ascii")).hexdigest(), 'hex')).decode('ascii')