Skip to content

Метод redeemCertificate ​

Описание ​

Метод предназначен для погашения сертификата. После погашения сертификатом нельзя воспользоваться повторно. Вызывается после метода checkCertificate.

Частичное погашение ​

Поставщику может быть доступно частиное погашение сертификата. В таком случае баланс сертификата может быть погашен за несколько раз. Определить возмость выполнения частичного погашения можно по параметру allow_partial_redeem в методе checkCertificate. Количество оставишхся погашений доступно в параметре available_number_of_uses. Частичное погашение выполняется через передачу параметра amount и указания на какую сумм баланса нужно провести частичное погашение. Следует учитывать, что если оставшийся баланс после выполенения последнего доступного частиного погашения использован не будет.

Филиальная система поставщика ​

В случае, когда у поставщика имеется филиальная сеть и погашение сертификата должно засчитываться как погашение филиалом, при выполнении операции redeemCertificate нужно вызывать метод с использованием ID и secret нужного филиала. В таком случае в истории погашений будет запись о погашении филиалом. Если же использовать реквизиты родительской компании, то погашение будет записано от неё. С нашей стороны оба варианта считаются допустимыми и мы никак это не проверяем была ли это родительская/дочерняя компания, на стороне поставщика стоит тщательно выбирать кто именно выполняет погашение.

Параметры запроса (data) ​

ПараметрТипОписание
codestringОбязательное. Код сертификата.
pinstringСекретный пин-код сертификата
amountintВ случае частичного погашения необходимо передать какую часть баланса сертификата списываем. Если не передать данный параметр, будет выполнено обычное полное погашение. Если не передать данный параметр после успешных частичных погашений, будет выполнено полное погашение на оставщуюся сумму баланса сертификата. Баланс сертификата доступен в методе checkCertificate, параметр balance.

Параметры ответа (data) ​

ПараметрТипОписание
okinteger
msgstringСообщение о проведённой операции
transaction_idstringDeprecated. Идентификатор проведённой операции погашения сертификата. Данный параметр оставлен для обратной совместимости, вы не должны его использовать. Вместо него следует использовать идентификаторы из transactions_ids. Идентификатор transaction_id не будет встречаться в списке transaction_ids.
transaction_idsList<int>Идентификаторы проведённых операций погашений сертификата. Несмотря на то, метод возвращает список идентификаторов транзакций, в случае погашения сертификата поставщика этот список всегда будет содержать не более одного элемента.

Пример ​

bash
# Получаем значение для подстановки SIG
# SECRET в данном случае - это хранящийся у клиента ключ для подписи запросов к API
$ echo -n 'redeemCertificate{"code":"00342-999-999-999","pin":"9999"}SECRET' | sha256sum - | awk '{print $1}'

# Используем известный клиенту ID и сгенерированный SIG для выполнения запроса
$ curl 'https://ssl-api.giftery.ru/?cmd=redeemCertificate&id=ID&in=json&out=json&data=%7B%22code%22%3A%2200342-999-999-999%22%2C%22pin%22%3A%229999%22%7D&sig=SIG'

Результат успешного запроса ​

JSON
{
  "status": "ok",
  "data": {
    "ok": 1,
    "msg": "Сертификат погашен",
    "transaction_id": "9999",
    "transaction_ids": [
      999
    ]
  }
}

Результат в случае ошибки ​

JSON
{
    "status": "error",
    "error": {
        "code": 1402,
        "text": "Сертификат не найден"
    }
}
Код ошибкиОписание
1402Не удалось найти сертификат по предоставленному коду. Нужно проверить правильность передачи кода. Проверка пин-кода происходит только если сертификат был найден.
1403Сертификат был заблокирован. Причину блокировки можно уточнить и персонального менеджера.
3304Ошибка возникает при попытках повторного погашения сертификата