card - instasport/club-api GitHub Wiki
Абонементы
Шаблоны абонементов
Все шаблоны абонементы разбиты на группы абонементов. Для того, чтобы увидеть абонементы или группы абонементов обязательно необходимо указать клуб в заголовке авторизации.
Для получения шаблонов и групп шаблонов абонементов в заголовке авторизации обязательно нужно указать ключ и клуб.
query CardTemplateGroups {
cardTemplateGroups {
id
title
order
}
}
curl -X POST -H "Content-Type: application/json" -H "Authorization: Key Ajsgwf3SLdcGpiXLPpzc29poWermmEkR6/xNqkS4onk= test" --data '{ "query": "{ cardTemplateGroups {id, title, order} }" }' https://instasport.co/api/
query CardTemplates {
cardTemplates {
id
title
description
descriptionHtml
subtitle
group {
id
title
order
}
amount
duration
price
priceInfo {
regularPrice
price
bonusTitle
}
currency
}
}
curl -X POST -H "Content-Type: application/json" -H "Authorization: Key Ajsgwf3SLdcGpiXLPpzc29poWermmEkR6/xNqkS4onk= test" --data '{ "query": "{ cardTemplates {id, title, subtitle, group {id, title}, price, amount, duration} }" }' https://instasport.co/api/
query CardTemplateDetail {
cardTemplate(id: 12345) {
id
title
subtitle
description
descriptionHtml
group {
id
title
order
}
amount
duration
price
priceInfo {
regularPrice
price
bonusTitle
}
currency
payment
payments {
title
choice
}
liqpay
wayforpay
payment_status
}
}
Список абонементов клиента
В заголовке авторизации необходимо указать токен (авторизованного клиента) и клуб.
Если параметры не указаны, то показываются все абонементы клиента, включая законченные.
Параметры (необязательные)
event - Если указан ID тренировки то показываются абонементы, которыми можно оплатить эту тренировку
active - если true, то показываются все активные абонементы
query Cards {
cards(event: 12345) {
card {
id
payments {
title
choice
}
liqpay(clientReturnUrl: "url") {
data
signature
action
price
clientCommission
comment
}
wayforpay(clientReturnUrl: "url") {
merchantAccount
merchantDomainName
merchantSignature
orderReference
orderDate
amount
currency
productName
productCount
productPrice
returnUrl
serviceUrl
action
price
clientCommission
comment
}
}
}
}
Просмотр одного абонемента
query CardDetail {
cards(id: 45678) {
card {
id
paid
price
priceInfo {
regularPrice
price
bonusTitle
}
promocodePrice
loyaltyPrice
authorized
dateAuthorized
activated
dateActivated
amount
dueDate
transfer
pauses
paused
pausedDuration
pausedDueDate
freezeEnabled
payment
payments {
title
choice
}
payment_status
liqpay(clientReturnUrl: "url") {
data
signature
action
price
clientCommission
comment
}
wayforpay(clientReturnUrl: "url") {
merchantAccount
merchantDomainName
merchantSignature
orderReference
orderDate
amount
currency
productName
productCount
productPrice
returnUrl
serviceUrl
action
price
clientCommission
comment
}
}
}
}
Поля
paid - как оплачен абонемент (int)
priceInfo {
regularPrice - цена абонемента без скидок (Decimal)
price - цена по которой продан абонемент (в случае заявки - по которой будет продан) с учетом скидок (Decimal)
bonusTitle - примечание к цене по скидке, в случае если на цену действует промокод или лояльность (String либо null)
}
authorized - абонемент авторизован (Boolean)
dateAuthorized - дата авторизации
activated - абонемент был активирован (Boolean)
active - поле показывает статус абонемента (Boolean)
True (активный абонемент) - абонемент оплачен, активирован, не заморожен, не просрочен, на абонементе есть посещения.
False (не активный абонемент) - абонемент не активный при одном из условий: абонемент не оплачен, не активирован, заморожен,
просрочен, на абонементе нет посещений.
dateActivated - дата активации
amount - количество посещений (-1 - безлимит)
dueDate - дата окончания абонемента
transfer - количество отмен тренировок
pauses - количество пауз (заморозок) абонемента
paused - абонемент заморожен
pausedDuration - сколько времени заморожено
pausedDueDate - дата автоматической разморозки
freezeEnabled - абонемент можно заморозить (Boolean)
payment(deprecated) - варианты оплаты, как можно оплатить абонемент
payments - варианты и названия оплаты
payment_status - статус абонемента при отсутствии вариантов оплаты
liqpay(clientReturnUrl: "url") - данные для кнопки оплаты Liqpay
wayforpay(clientReturnUrl: "url") - данные для кнопки оплаты WayForPay
clientReturnUrl - необязательный параметр для полей liqpay и wayforpay. Строка,
url на который буде перенаправлен клиент после совершения оплаты
Поле payment/paid показывает каким способом можно оплатить абонемент или как он был оплачен
-1 - Заявка
2 - Liqpay
4 - Счет
10 - Portmone
11 - WayForPay
Авторизация абонемента
Заявка на абонемент
Параметры (все обязательные)
templateId - ID шаблона абонемента
В результате запроса будет создан не оплаченный абонемент
mutation RequestCard {
requestCard (templateId: 59) {
card {
id
}
}
}
При оплате заявки на абонемент через Liqpay/Wayforpay необходимо выполнить дополнительный запрос
mutation {setCardPaymentOrderProcessing(cardId: 12345){ok}}
Отмена заявки на абонемент
Параметры (все обязательные)
id - ID абонемента
В результате запроса абонемент будет удален (удалить можно только неоплаченный абонемент)
mutation CancelCardRequest {
cancelCardRequest (id: 112663) {
ok
}
}
Оплата со счета клиента
После вызова функции будет создан абонемент. Абонемент будет оплачен со счета. Если это не возможно, то абонемент будет удален.
Параметры (все обязательные)
cardId - ID абонемента. Используется для оплаты заявки на абонемент
mutation PayCardFromAccount {
payCardFromAccount (templateId: 59, cardId: 116642) {
card {
id
}
}
}
Оплата абонемента через Apple Pay и Google Pay
Запрос для оплаты абонемента через Apple Pay или Google Pay. Параметры запроса:
templateId - int, обязательный параметр
cardId - int, необязательный параметр. Используется для оплаты уже существующего абонемента
Для оплаты через Apple Pay необходимо передавать параметры data и key
data - строка, данные полученные от Apple Pay
key - строка, данные полученные от Apple Pay
Для оплаты через Google Pay необходимо передавать параметр token
token - строка, токен полученный от Google Pay
mutation OnlinePaymentCard {
onlinePaymentCard(templateId:1028, cardId:72385, data:"data" key:"key" token: "token") {
ok
}
}
В результате успешной оплаты будет возвращено bool True. В случае ошибок:
- GraphQLError - указанны неправильные параметры, например несуществующий eventId или не указаны data и key или token
- InstasportGraphQLError с кодом ошибки RESULT_PAYMENT_ERROR = 20 - неуспешный платеж
- InstasportGraphQLError с кодом ошибки RESULT_PAYMENT_3D_SECURE = 21 - необходимо 3D-Secure подтверждение платежа от клиента
- InstasportGraphQLError с кодом ошибки RESULT_PAYMENT_WAIT_STATUS = 22 - получен wait статус от платежной системы. Ожидание завершения обработки платежа
Активация абонемента
Для использования абонемента клиентом, абонемент должен быть активирован.
Параметры (все обязательные)
cardId - ID абонемента
После вызова функции абонемент будет активирован
mutation ActivateCard {
activateCard (cardId: 79692) {
card {
id
}
}
}
Заморозка и разморозка абонемента
Параметры (все обязательные)
cardId - ID абонемента который будет заморожен/разморожен
Зморозка
После выполнения запроса абонемент буде заморожен на колиичество дней, указаных в шаблоне абонемента pauseDuration
mutation FreezeCard {
freezeCard(cardId: 89405) {
card {
id
paused
}
}
}
Разморозка
После выполнения запроса абонемент буде разморожен
mutation UnfreezeCard {
unfreezeCard(cardId: 89405) {
card {
id
paused
}
}
}