Add PlacePage donations #88
No reviewers
Labels
No labels
bug
dependencies
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: organicmaps/meta#88
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "placepage_donations"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
https://docs.google.com/document/d/1f2zjYBr24Wlh1vBcTtCmisx-HidaYwivkXZGCHjlTTY/edit
@ -15,2 +15,4 @@
Use `npx wrangler dev` for localhost development and for testing using Cloudflare dev tools.
```
curl -H "X-OM-DataVersion: 241001" -H "X-OM-AppVersion: 2024.10.22-10-Google" -H 'Accept-Language: fr-FR' http://localhost:8787/maps
Какая вероятность возмущённых комментов по поводу сбора дополнительной инфы о юзерах при добавлении отправки ещё одного хидера на сервер в открытых PR в основной репо? Можно ли без этого обойтись, чтобы не привлекать ненужное внимание к уже отправляющимся хидерам?
Эти строки обязательно слать с метасервера, или можно разово вбить в strings.txt, как было сделано с донатами?
@ -0,0 +19,4 @@
}
const parts = locale.split(/[-_]/);
const language = parts[0].toLowerCase();
const country = parts[1] ? parts[1].toUpperCase() : '';
Почему страну нельзя брать из заголовков CF, как сейчас берётся континент?
@ -15,2 +15,4 @@
Use `npx wrangler dev` for localhost development and for testing using Cloudflare dev tools.
```
curl -H "X-OM-DataVersion: 241001" -H "X-OM-AppVersion: 2024.10.22-10-Google" -H 'Accept-Language: fr-FR' http://localhost:8787/maps
@biodranik если не слать локаль, то придется каждому юзеру качать всю эту инфу в полном объеме для всех языков (все переводы и все продукты) и фильтровать ее уже на этапе парсинга данных на устройстве. Если там будет много стран, то json будет приличный... да и не зачем на девайс приходить тому что не нужно...
@ -15,2 +15,4 @@
Use `npx wrangler dev` for localhost development and for testing using Cloudflare dev tools.
```
curl -H "X-OM-DataVersion: 241001" -H "X-OM-AppVersion: 2024.10.22-10-Google" -H 'Accept-Language: fr-FR' http://localhost:8787/maps
if (cf.country == 'France')
. Чем явная передача с клиента лучше?@ -15,2 +15,4 @@
Use `npx wrangler dev` for localhost development and for testing using Cloudflare dev tools.
```
curl -H "X-OM-DataVersion: 241001" -H "X-OM-AppVersion: 2024.10.22-10-Google" -H 'Accept-Language: fr-FR' http://localhost:8787/maps
@ -15,2 +15,4 @@
Use `npx wrangler dev` for localhost development and for testing using Cloudflare dev tools.
```
curl -H "X-OM-DataVersion: 241001" -H "X-OM-AppVersion: 2024.10.22-10-Google" -H 'Accept-Language: fr-FR' http://localhost:8787/maps
$ 20
для кнопки, оно и отображается, а на сервер улетает что-то вродеhttps://url/buttonclicked?value=$%2020
.Спасибо за интересную идею, которая ранее не приходила в голову. Хорошо узнать, что Cloudflare умеет возвращать страну регистрации IP адреса, с которого ведется обращение к серверам. Уверен, что они используют максимально актуальные GeoIP данные. Единственная сложность в использовании данного подхода заключается в том, что пользователи иногда путешествуют по миру, зачастую скачивая всякие различные приложения с картами (например, MAPS.ME) находясь уже в поездке. Если условный француз путешествует в условный Тайлайнд, то ему всё еще следует показывать тексты донатов на французском, валюту EUR и суммы уровня Франции, но точно никак не тексты на тайском с суммами в батах.
Выражение эмоций через возмущённые комментарии является неотъемлемой частью человеческого сознания. Избежать подобного рода обратной связи невозможно даже если совсем ничего не делать. Трудно сказать, что потенциально может вызывать большее возмущение — появление новой кнопки для сбора донатов на весьма заметном месте, отправка какого-то там стандартный Accept-Language HTTP header для показа пользователю контента на его языке, или же сам факт обнаружения проприетарного backend для remote config на устройстве пользователя. Стоит заметить также, что при всём при этом никакие данные как не собирались, так и не собираются. Наверное, стоит открыть код метасервера, чтобы исключить спекуляции об обратном. Параллельно стоит заменить закрытую vendor-lock in технологию от Big Evil Tech Corp на понятным всем nginx или его альтернативу, ибо про это тоже могут быть возмущённые комментарии.
В общем и целом обсуждаемые здесь проблемы крайне интересны, но за деревьями не видно леса. Важное по данной фиче заключается в том, что тестируются новые кнопки в новом месте (Place Page). UI, конечно, очень примитивный, но уже лучше, чем ничего. Даже текущая реализация уже позволяет добавлять страны и менять суммы без прохождения review, хотя первоначальный план зашить JSON для 3-5 стран прямо в приложение. Всё это еще не позволяет сделать подписки, т.к. отсутствует идентификация пользователя и обратная связь о подписках из платёжной системы. С большой долей вероятности после тестирования кнопок в place page вся самодельная машинерия для отправки сумм и текстов будет отправлена на свалку и заменена на Apple In-App Purchases.
Замечание про юзера в путешествии валидное.
Но если не слать сразу все переводы (или хотя бы в добавок дефолтный английский), или не хранить сразу все переводы на устройстве, то при переключении языка/локали устройства будет отображаться текст на старом языке, пока юзер не попробует что-то скачать с метасервера и снова не запросит строчки.
Осталось понять почему это важно.
Обновил ссылки.
Управление подписками на https://account.organicmaps.app/. Пытаюсь настроить stripe, чтобы он добавлял данную ссылку в инвойсы и письма. Пока можем по письмам в поддержку отписывать.
Страницы донатов и подписок, которые увидят пользователи, перейдя по ссылке, будут отображаться на их языке?
Не очень хорошо, что в текущем публичном PR добавлен хидер с языком пользователей. Вариант с сервера слать сразу все имеющиеся переводы (с фоллбэком на english) был отброшен? Почему?
@vng @biodranik @rtsisyk давайте решим что делать с данными, а то это блочит мой ПР с парсингом донейшенов:
accept lang
header в реквест и билдим prodictsConfig json на сервереЯ за вариант 1: его проще реализовать и поддерживать как на клиенте так и на сервере, он более приватный, и не палит публично остальные отправляемые на метасервер хидеры.
Если честно, я не вижу проблем ни в 1 ни в 2.
В 1 например мы можем спалить дотошному юзеру: А почему вы на рашку показываете 5 евро, а на Швейцарию 25 :)
Тогда попробую резюмировать плюсы и минусы для обоих решений:
1. шлем все данные (переводы + донейшены) и фльтруем на клиенте по локали
Pros:
Cons:
2. добавляем accept lang header в реквест и билдим prodictsConfig json на сервере
Pros:
Cons:
Вне зависимости от варианта, тексты промта и все переводы идут с сервера, а не зашиваются в аппу. Иначе смысл тогда всего этого ..
Если сейчас уже готов вариант 2 на серваке (насколько я понял он готов, да?) - останавливаемся на нем.
Не вижу опасения, что такого там "палит" Accept-Language.
@rtsisyk Добавить US/UK?