Skip to content

Instantly share code, notes, and snippets.

@4eRTuk
Last active April 24, 2023 08:19
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 4eRTuk/cfd7dcbfc52706a066ff63d2e4927116 to your computer and use it in GitHub Desktop.
Save 4eRTuk/cfd7dcbfc52706a066ff63d2e4927116 to your computer and use it in GitHub Desktop.
WeGoTrip API

WeGoTrip API

Инструкция по интеграции покупок экскурсий

Содержание

  1. Вводные данные об API
  2. Начало работы
  3. Список эндпоинтов
  1. Отрисовка карточек товаров
  2. Перенаправление на оплату
  3. О куках и вознаграждении
  4. Тестирование и вопросы

Вводные данные об API

API позволяет получить данные об экскурсиях и билетах на WeGoTrip, языках и валютах, городах и странах, достопримечательностях, доступных в [магазине](https://wegotrip.com/ и https://wegotrip.ru/) в данный момент.

Базовый API URL

Здесь и далее JavaScript (ES2015)

const API_URL = "https://app.wegotrip.com/api/v2";

const API_URL = "https://app.wegotrip.com/api/v3";

Заголовки запроса

Accept-Language: ru - для частичной локализации контента (названия стран, городов и т.п.)

Формат ответа

Content-Type: application/json; charset=utf-8

Начало работы

Для формирования реферальных ссылок на экскурсии, вам потребуется SUB_ID (если вы подключаетесь через TravelPayouts) или REFERER_ID (если вы подключаетесь напрямую к Партнерской программе WeGoTrip).

Список эндпоинтов

Список языков

GET /languages/

Список валют

GET /currencies/

Список стран

GET /countries/

GET-параметры
Параметр Смысл Доступные значения Пример
page Страница пагинатора В границах 1-pages из ответа 1

Список городов

GET /cities/

GET-параметры
Параметр Смысл Доступные значения Пример
page Страница пагинатора В границах 1-pages из ответа 1
lang Код языка товаров (контент, описание) code из GET /languages/ ru
country Уникальный идентификатор страны id из GET /search/ или GET /countries/ 3017382
popular Сортировать по популярности true (по умолчанию) или false true

Список достопримечательностей

GET /attractions/

GET-параметры
Параметр Смысл Доступные значения Пример
page Страница пагинатора В границах 1-pages из ответа 1
lang Код языка товаров (контент, описание) code из GET /languages/ ru
country Уникальный идентификатор страны id из GET /search/ или GET /countries/ 3017382
city Уникальный идентификатор города id из GET /search/ или GET /cities/ 3
popular Сортировать по популярности true (по умолчанию) или false true

Поиск товаров/городов/достопримечательностей по частичному совпадению имени

Ищется от 3 символов и более.

GET /search/?query=Мос

GET-параметры
Параметр Смысл Доступные значения Пример
query Строковый поисковый запрос Любые строковые Моск
currency Код валюты для показа цен у товаров code из GET /currencies/ RUB

Товары

GET /products/popular/?city=3&lang=ru&currency=RUB

GET-параметры
Параметр Смысл Доступные значения Пример
page Страница пагинатора В границах 1-pages из ответа 1
lang Код языка товаров (контент, описание) code из GET /languages/ ru
currency Код валюты для показа цен у товаров code из GET /currencies/ RUB
country Уникальный идентификатор страны id из GET /search/ или GET /countries/ 3017382
city Уникальный идентификатор города id из GET /search/ или GET /cities/ 3
attraction Уникальный идентификатор достопримечательности id из GET /search/ или GET /attractions/ 3
order Тип сортировки popularity (по умолчанию) или random popularity

Декодированный ответ: в объекте data под ключом results массив объектов, представляющих товары

{
	"data": {
		"count": 1,
		"pages": 1,
		"current": 1,
		"next": null,
		"results": [{
				"id": 502,
				"title": "Защитник Рождества: праздничное приключение в Париже",
				"slug": "zashitnik-rozhdestva",
				"duration": "1 – 1.5 hours",
				"cover": "https://app.wegotrip.com/media/store/thingstodoinparisindecember2.jpg",
				"preview": "https://app.wegotrip.com/media/CACHE/images/store/thingstodoinparisindecember2/4897b6f2fceba806faeb356068a8343d.jpg",
				"price": 1390.0,
				"exprice": 1390.0,
				"currency": "₽",
				"currencyCode": "RUB",
				"rating": null,
				"reviewsCount": 0,
				"ratingsCount": 0,
				"category": "Пешеходные",
				"city": {
					"id": 3,
					"name": "Париж",
					"slug": "paris"
				},
				"durationMin": 60,
				"durationMax": 90,
				"type": 1,
				"tags": {
					"citys": true,
					"celebration": true,
					"excursions": true,
					"audioguide": true,
					"available": true
				},
				"locale": "ru",
				"author": {
					"avatar": "https://app.wegotrip.com/media/users/1/path32.png",
					"name": "WeGoTrip",
					"bio": "Путешествия лишают тебя дара речи, а потом превращают в лучшего рассказчика",
					"nickname": "wegotrip"
				}
			},
      ...
		],
		"maxPrice": 1390.0
	}
}

Инфо о товаре

GET /products/{ID}/?currency=RUB

GET-параметры
Параметр Смысл Доступные значения Пример
currency Код валюты для цены товара code из GET /currencies/ RUB

Декодированный ответ: в объекте data лежит объект, представляющий товар

{
	"data": {
		"id": 502,
		"slug": "zashitnik-rozhdestva",
		"title": "Защитник Рождества: праздничное приключение в Париже",
		"cover": "https://app.wegotrip.com/media/store/thingstodoinparisindecember2.jpg",
		"preview": "https://app.wegotrip.com/media/CACHE/images/store/thingstodoinparisindecember2/4897b6f2fceba806faeb356068a8343d.jpg",
		"images": [{
				"id": 2581,
				"description": "",
				"cover": false,
				"preview": "https://app.wegotrip.com/media/CACHE/images/store/photo-1519469191666-4dd49c265459/2fc7abe1eaaf3d9e16be60ce9fcc054b.jpg",
				"full": "https://app.wegotrip.com/media/store/photo-1519469191666-4dd49c265459.jpg"
			}, {
				"id": 2582,
				"description": "",
				"cover": false,
				"preview": "https://app.wegotrip.com/media/CACHE/images/store/32728859085795984db31b/63e49dce24463219d6b96910be582b22.jpg",
				"full": "https://app.wegotrip.com/media/store/32728859085795984db31b.jpg"
			}, {
				"id": 2583,
				"description": "",
				"cover": false,
				"preview": "https://app.wegotrip.com/media/CACHE/images/store/c209/26bde637a1a8673c622aa9e9ccc75657.jpg",
				"full": "https://app.wegotrip.com/media/store/c209.jpg"
			}, {
				"id": 2584,
				"description": "",
				"cover": false,
				"preview": "https://app.wegotrip.com/media/CACHE/images/store/paris-1738950960720/76e824e9a1d21fc7762d9f189f943496.jpg",
				"full": "https://app.wegotrip.com/media/store/paris-1738950960720.jpg"
			}, {
				"id": 3943,
				"description": "",
				"cover": false,
				"preview": "https://app.wegotrip.com/media/CACHE/images/store/502/palace-of-justice-24582661920/fe6c788ada3bf0c4b99ab9556b879f4a.jpg",
				"full": "https://app.wegotrip.com/media/store/502/palace-of-justice-24582661920.jpg"
			}, {
				"id": 3944,
				"description": "",
				"cover": false,
				"preview": "https://app.wegotrip.com/media/CACHE/images/store/502/1280px-palaisdejusticeparisjune2010/502967ed72742743047fa1b0919333ec.jpg",
				"full": "https://app.wegotrip.com/media/store/502/1280px-palaisdejusticeparisjune2010.jpg"
			}
		],
		"description": "В канун Рождества станьте героями настоящего приключения в Париже! Необычная эскурсия проведёт вас по достопримечательностям Латинского квартала и острова Сите, а также проверит — готовы ли вы бросить вызов силам зла! \r\n\r\nНа прогулке вы посетите главные достопримечательности Парижа. Увидите Пантеон — усыпальницу выдающихся людей Франции и осмотрите роскошные соборы и церкви. Вы пройдете по площади Сен-Мишель со знаменитым фонтаном Сен-Мишель и, конечно, увидите легендарный собор Нотр-дам де Пари.\r\n\r\nВ столь непростом путешествии вас будет сопровождать обаятельный детектив Циник. Следуйте инструкциям своего помощника, и тогда вы не только пройдёте до конца маршрут по историческим района Парижа, но и сможете исполнить своё предназначение — защитить Дух Рождества.",
		"highlights": ["Прогуляетесь по Латинскому кварталу Парижа и насладитесь рождественской атмосферой", "Осмотрите Пантеон, католические соборы и другие достопримечательности, разгадывая загадки", "Пройдете на остров Сите, чтобы увидеть знаменитый Нотр-Дам-Де-Пари"],
		"distance": "около 2,5 км",
		"duration": "1 – 1.5 hours",
		"locale": "ru",
		"city": {
			"id": 3,
			"name": "Paris",
			"slug": "paris"
		},
		"country": {
			"id": 3017382,
			"name": "France",
			"slug": "france"
		},
		"address": "21 Place du Panthéon",
		"startLocation": "Церковь Сент-Этьен-дю-Мон",
		"locationGeo": {
			"type": "Point",
			"coordinates": [2.345130443409289, 48.8463801612557]
		},
		"finishAddress": "6 Parvis Notre-Dame - Pl. Jean-Paul II",
		"finishLocation": "Нотр-Дам-Де-Пари",
		"finishLocationGeo": {
			"type": "Point",
			"coordinates": [2.3499021, 48.8529682]
		},
		"boundingCircle": {
			"coords": {
				"lng": 2.3469355701581667,
				"lat": 48.85090476754945
			},
			"radius": 549.5985399059116
		},
		"price": 1390.0,
		"exprice": 1390.0,
		"currency": "₽",
		"currencyCode": "RUB",
		"defaultCurrency": {
			"id": 3,
			"rate": 86.221973,
			"code": "RUB",
			"symbol": "₽",
			"name": "Russian rubble"
		},
		"discount": 0.0,
		"priceLevels": [{
				"id": 238,
				"label": "Personal",
				"description": "Android or iPhone",
				"pricingCategoryId": "1",
				"price": 1390.0
			}
		],
		"types": {
			"citys": true,
			"celebration": true,
			"excursions": true,
			"audioguide": true
		},
		"inclusions": [],
		"exclusions": ["Наушники не включены — необходимо взять свои"],
		"importantInfo": [],
		"rating": null,
		"reviewsCount": 0,
		"ratingsCount": 0,
		"reviews": [],
		"tour": {
			"id": 511,
			"title": "Защитник Рождества: праздничное приключение в Париже",
			"mediaSize": 22003365,
			"eventsCount": 21
		},
		"tickets": [],
		"accessCodes": [],
		"category": "Walking Tours",
		"categories": [{
				"id": 3,
				"title": "Theme Tours",
				"slug": "theme-tours"
			}, {
				"id": 1,
				"title": "Culture & History",
				"slug": "culture-and-history"
			}, {
				"id": 2,
				"title": "Sightseeing Tours",
				"slug": "sightseeing-tours"
			}, {
				"id": 4,
				"title": "Family Friendly Tours",
				"slug": "family-friendly-tours"
			}, {
				"id": 7,
				"title": "Holidays & Events",
				"slug": "holidays-and-events"
			}
		],
		"subcategories": [{
				"id": 27,
				"title": "New Year Tours",
				"slug": "new-year-tours"
			}, {
				"id": 17,
				"title": "Quest Tours",
				"slug": "quest-tours"
			}, {
				"id": 8,
				"title": "Architecture",
				"slug": "architecture"
			}, {
				"id": 1,
				"title": "Walking Tours",
				"slug": "walking-tours"
			}
		],
		"attractions": [{
				"id": 194,
				"name": "Panthéon",
				"slug": "pantheon-6269532",
				"preview": "https://app.wegotrip.com/media/CACHE/images/world/paris-2368437_1280/aa6c7b10beea5f8fb2ea6762aed7be63.jpg",
				"itemsCount": 2
			}, {
				"id": 41,
				"name": "Notre Dame de Paris",
				"slug": "notre-dame-de-paris",
				"preview": "https://app.wegotrip.com/media/CACHE/images/world/paris-272198_1920/626dfd9527cadfce91eeb7eb9d22c332.jpg",
				"itemsCount": 0
			}, {
				"id": 169,
				"name": "Holy Chapel",
				"slug": "la-sainte-chapelle",
				"preview": "https://app.wegotrip.com/media/CACHE/images/world/Sainte-Chapelle/800021cabe3b564fbe95463fdf8f0059.jpg",
				"itemsCount": 2
			}
		],
		"durationMin": 60,
		"durationMax": 90,
		"type": 1,
		"available": true,
		"published": true,
		"status": "approved",
		"author": {
			"avatar": "https://app.wegotrip.com/media/users/1/path32.png",
			"name": "WeGoTrip",
			"bio": "Better to see something once than hear about it a thousand times",
			"nickname": "wegotrip",
			"rating": 4.75,
			"ratingsCount": 100
		}
	}
}

Отзывы о товаре

GET /products/{ID}/reviews/

GET-параметры
Параметр Смысл Доступные значения Пример
page Страница пагинатора В границах 1-pages из ответа 1

Декодированный ответ: в объекте data под ключом results массив объектов, представляющих отзывы

{
	"data": {
		"count": 3,
		"pages": 1,
		"current": 1,
		"next": null,
		"results": [{
				"name": "Полина",
				"text": "Очень хорошая экскурсия. Здорово, что приложение видит твоё местоположение и указывает, куда и сколько тебе идти. Маршрут получился очень интересный. Подойдёт всем жителям города, если вам надоело гулять по одним и тем же местам, то воспользуйтесь этой экскурсией, не пожалеете) Советую всегда идти чётко по маршруту, и не сходить с него, а то устанете ходить)",
				"avatar": "",
				"rating": 5,
				"date": "2021-07-20 07:45:34"
			}, {
				"name": "Юлия",
				"text": "Отлично, очень познавательно!",
				"avatar": "https://app.wegotrip.com/media/users/7030/httpsappsurprizemerumediausers31159id31159-avatar.png",
				"rating": 5,
				"date": "2020-03-18 07:46:49"
			}, {
				"name": "Ольга",
				"text": "Отлично!",
				"avatar": "https://app.wegotrip.com/media/users/7031/httpsappsurprizemerumediausers30430id30430-avatari4cjscp.png",
				"rating": 5,
				"date": "2020-02-20 09:36:09"
			}
		]
	}
}

Отрисовка карточек товаров

Эта часть is up to you. Посмотрите, как мы делаем это в магазине.

В качестве картинки используйте preview. По клику на карточку перенаправляйте на наш сайт.

Перенаправление на сайт WeGoTrip

Для русскоязычного магазина и оплаты в рублях следует использовать домен https://wegotrip.ru/. Для англоязычного и оплаты в долларах/евро https://wegotrip.com/.

Вам понадобится slug и id из объектов товара и города (cм. Получение списка товаров и Получение инфо товара) и SUB_ID либо REFERER_ID.

1. Перенаправление на страницу товара в магазине (рекомендуемый способ)

  • TravelPayouts URL https://wegotrip.com/${city-slug}-d${city-id}/${product-slug}-p${product-id}/?sub_id=${SUB_ID}
  • Напрямую WeGoTrip URL https://wegotrip.com/${city-slug}-d${city-id}/${product-slug}-p${product-id}/?coupon=${REFERER_ID}

Пример для аудиоэкскурсии «Тайны особняков Каменного острова» URL https://wegotrip.ru/saint-petersburg-d19/neizvestnyie-osobnyaki-kamennogo-ostrova-p720/?coupon=1005

  <a href="https://wegotrip.ru/saint-petersburg-d19/neizvestnyie-osobnyaki-kamennogo-ostrova-p720/?coupon=1005">
    Подробнее
  </a>

2. Перенаправление на чекаут в магазине

  • TravelPayouts URL https://wegotrip.com/checkout/${product-slug}-p${product-id}/booking/?sub_id=${SUB_ID}
  • Напрямую WeGoTrip URL https://wegotrip.com/checkout/${product-slug}-p${product-id}/booking/?coupon=${REFERER_ID}

Пример для аудиоэкскурсии «Тайны особняков Каменного острова» URL https://wegotrip.ru/checkout/neizvestnyie-osobnyaki-kamennogo-ostrova-p720/booking/?coupon=1005

  <a href="https://wegotrip.ru/checkout/neizvestnyie-osobnyaki-kamennogo-ostrova-p720/booking/?coupon=1005">
    Купить
  </a>

О куках и вознаграждении

После перехода пользователя на сайт по вашей ссылке, ваш SUB_ID либо REFERER_ID сохраняется в куки на 30 дней. Если в течение 30 дней пользователь повторно заходит на сайт, срок кук продлевается.

Если за это время пользователь совершил покупку — платеж привязывается к вашему аккаунту реферального партнера. Как только наступит дата путешествия и путешественник скачает тур, вам будет начислено вознаграждение.

Тестирование и вопросы

Чтобы протестировать вашу интеграцию, а также по всем техническим вопросам пишите на webmaster@wegotrip.com.

Обновлено 24 апреля 2023 года

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment