Skip to Content
ПесочницаПодпискиТиповые ошибки

Типовые ошибки интеграции

Подпись не сходится, хотя «та же, что у платежей»

У подписок другая схема. В Callisto подпись считается двумя проходами HMAC (login + inner), здесь — одним: ключ — SecretKey, сообщение — SubscriptionProjectID + Now. Логин в подпись не входит вовсе, и секрет у подписок свой, отдельный от секрета разовых платежей.

ПричинаКак проверить
Взята формула CallistoУ подписок один проход HMAC, а не два, и без логина
Локальное время вместо UTCNow всегда UTC в формате yyyyMMddHHmmss
Подписан один Now, отправлен другойСчитайте метку один раз и кладите и в подпись, и в тело
Перепутан секретСекрет подписок отдельный от секрета разовых платежей

ApproveSubscription отвечает ExceededSubscriptionApprovingAttempts

На подбор PIN даётся три попытки. После третьей неудачи подписка навсегда переходит в ApprovingFailed: верный PIN её уже не поднимет, нужен новый CreateSubscription. Тот же ответ приходит, если подписку не подтвердили за 3 часа.

Создал подписку заново на тот же номер — SubscriptionAlreadyCreated

Подписка уникальна для пары проект + Subscriber_MSISDN: пока прежняя не отменена, повторный CreateSubscription отклоняется — так же ведёт себя боевой сервис. SubscriptionID существующей подписки печатается в ErrorDescription, чтобы можно было продолжить сценарий. Чтобы прогнать его начисто, берите другой номер или сначала вызовите CancelSubscription.

После оплаты картой коллбек не пришёл

Проверьте, что абонент дошёл до конца страницы AuthorizeUrl: подписка активируется по факту оплаты, а не по открытию ссылки. Ссылка одноразовая и живёт 15 минут. Если карта заканчивалась на 0001…0005, оплата отклонена намеренно — придёт EventType=REJECTED.

Метод возвращает ошибку разбора

Имя метода передаётся в пути и регистронезависимо, но должно быть одним из пяти поддерживаемых (см. «Методы»). Тело — XML либо application/x-www-form-urlencoded; при Content-Type: text/xml пустое тело или неразбираемый XML дают WRONG_PARAMS.