Разработчикам/Экосистема и ресурсы

CardV для Dujiao-Next

Подключите CardV как поставщика в своём магазине Dujiao-Next. Вы импортируете подарочные карты и игровые пополнения CardV как свои товары и сами устанавливаете цены. Когда покупатель оплачивает заказ, ваш магазин покупает товар у CardV с вашего баланса CardV, и код автоматически появляется на странице заказа покупателя.

Получить API-ключ ↗

#Что понадобится

Dujiao-Nextv1.5.0 или новее, с функцией подключения к поставщику (меню Integration)
Аккаунт CardVОдобренный аккаунт мерчанта с включённым доступом к API
API-ключПодписанный API-ключ из личного кабинета (ID ключа + секрет подписи)
БалансПредоплаченный баланс CardV в USD. Каждый заказ вашего магазина оплачивается с него

Продавцом для ваших покупателей являетесь вы: вы устанавливаете цены, отвечаете на их вопросы и занимаетесь их возвратами.

#Шаг 1: получите API-ключ

Используйте API-ключ, который у вас уже есть в личном кабинете (Merchant Portal) в разделе API и вебхуки > API-ключи. Отдельный ключ для Dujiao-Next не нужен.

  • ID ключа начинается с ck_live_.
  • Секрет подписи начинается с cs_live_. Он показывается только один раз, при создании ключа. Если у вас его больше нет, нажмите у ключа Сгенерировать новый секрет. ID ключа не меняется, а старый секрет сразу перестаёт работать.

Старые ключи без ID ключа использовать нельзя. Вместо этого создайте в личном кабинете новый ключ.

Страница API-ключей в личном кабинете (ID ключа размыт)

#Шаг 2: добавьте подключение

В админке Dujiao-Next откройте Integration > Connection Management > New Connection и заполните форму:

ПолеЧто ввестиЗачем
NameНапример, CardV (USD)Его видите только вы. Валюта в названии поможет не запутаться позже
Base URLhttps://b2b.cardv.net/dujiaoС /dujiao и без чего-либо после него, без косой черты в конце
API KeyВаш ID ключа (ck_live_…)
API SecretВаш секрет подписи (cs_live_…)Если позже вы будете редактировать подключение, оставьте поле пустым, чтобы оставить сохранённый секрет
Protocoldujiao-next
Callback URLОставьте пустымCardV не отправляет обратные вызовы (callbacks). Ваш магазин сам проверяет результат каждого заказа (см. Как работает выдача)
Max Retries / Retry IntervalsОставьте значения по умолчанию (3 / 30,60,120)Повторы применяются только к временным ошибкам
Exchange RateФиксированное число, которое вы вводите сами: текущий реальный курс USD к валюте вашего магазина, немного выше него для запаса. Введите 1, если ваш магазин продаёт в USDЦены CardV всегда в USD. Dujiao-Next не получает курсы в реальном времени, а CardV не может задать это значение за вас. По умолчанию стоит 1, поэтому магазин, который продаёт в другой валюте, выставил бы карту за 10 USD по цене 10 в своей валюте
Price Markup (%)Ваша наценка, например 15По умолчанию 0, то есть без прибыли
Price RoundingRound up (0.1) или Round up (integer)При округлении вверх цена никогда не опускается ниже вашей себестоимости
Auto-update price on syncYesКогда цена CardV меняется, ваша цена продажи пересчитывается при следующей синхронизации

Курс и наценка применяются так: цена CardV × курс × (1 + наценка), затем округление. Например, при курсе 7.2 (это только пример; введите текущий курс, который вы найдёте сами) и наценке 15% карта за 5.78 USD продаётся за 47.9.

Форма нового подключения с Base URL, курсом и наценкой (курс 7.2 и наценка 15% — примерные значения)

Когда курс меняется, обновите его в подключении и нажмите Reapply Markup, чтобы обновить цены уже импортированных товаров. Сделайте то же самое, когда меняете наценку.

#Шаг 3: проверьте подключение

Нажмите Ping у подключения. Ping succeeded означает, что ключ работает, и статус подключения меняется на Active. Если вместо этого появилась ошибка, см. Решение проблем.

Ping succeeded, подключение активно

#Шаг 4: импортируйте товары

  1. Откройте Integration > Product Mappings > Import from Upstream и выберите подключение CardV.
  2. Просматривайте товары по категориям или переключитесь на Flat List, чтобы выбрать отдельные товары.
  3. Выберите локальную категорию или отметьте Auto-create local categories. Товар нельзя сохранить без категории.
  4. Импортируйте. Каждый товар сохраняет название, описание, инструкцию по активации и номиналы (например, 10 USD).

Import from Upstream, просмотр по категориям

Импортированные товары сняты с продажи. Проверьте каждый товар, затем включите Active в редакторе товара.

Product Mappings с ценами продажи после наценки

#Шаг 5: одна единица товара в заказе

Для каждого импортированного товара откройте редактор товара и установите Max purchase quantity на 1.

CardV выдаёт одну единицу товара на заказ. Если покупатель оплатит два кода в одном заказе, CardV отклонит покупку, и вам придётся разбираться с этим заказом вручную. Dujiao-Next не может получить это ограничение от CardV автоматически, поэтому установите его сами.

Пока вы в редакторе, мы также рекомендуем:

  • Отображение остатка на витрине: выберите Hide quantity. CardV покупает у бренда, когда поступает заказ, поэтому остаток, который показывает ваш магазин, означает только «в наличии».
  • Изображения: добавьте свои, если у товара их нет.

Редактор товара с Max purchase quantity, равным 1

#Как работает выдача

  1. Покупатель оплачивает заказ в вашем магазине.
  2. Ваш магазин отправляет покупку в CardV, и CardV списывает сумму с вашего баланса CardV.
  3. Ваш магазин проверяет заказ в CardV. В наших тестах код приходил в течение минуты.
  4. Код появляется на странице заказа покупателя как Code, PIN (если у карты он есть) и Expires (если у карты есть срок действия). Это всегда код, а не ссылка.

Прямые пополнения. Некоторые товары зачисляются прямо на игровой аккаунт или аккаунт в приложении покупателя. При оформлении заказа покупатель вводит данные, которые нужны товару, например ID игрока или номер телефона. Когда пополнение выполнено, на странице заказа покупателя отображается Top-up completed.

Если CardV не может выдать товар. CardV возвращает сумму заказа на ваш баланс CardV, а ваш магазин помечает покупку как отменённую. Дальше вы делаете возврат покупателю или помогаете ему в своём магазине.

Покупатель вводит данные аккаунта для прямого пополнения

Код выдан на странице заказа покупателя (здесь размыт)

#Что недоступно

В списке импорта есть только товары, которые ваш магазин может продавать через это подключение:

  • Только фиксированные номиналы. Карты, где покупатель вводит свою сумму, в списке не показываются.
  • Не показываются: пополнения мобильной связи, платёжные продукты и кошельки, криптовалюта и предоплаченные платёжные карты.
  • Только коды. Товары, которые можно выдать только ссылкой, в списке не показываются.

Цены, которые вы видите, — это ваши собственные цены CardV в USD.

#Список разрешённых IP

Если вы настроили в личном кабинете список разрешённых IP, добавьте публичный IP-адрес сервера, на котором работает ваш магазин Dujiao-Next. Иначе CardV будет отклонять все запросы с него. Для CardV API и для Dujiao-Next действуют один и тот же ключ, один и тот же список разрешённых IP и одни и те же лимиты запросов.

#Решение проблем

Эти сообщения появляются в админке Dujiao-Next: после Ping, во время импорта или у покупки в Procurement Orders.

СообщениеПричинаЧто делать
status 401 (invalid_signature): signature verification failedAPI Secret неверный, или вы сгенерировали новый секрет в личном кабинетеСкопируйте текущий секрет подписи в подключение
status 403 (invalid_api_key): api key is invalid or disabledВ API Key указан не ID ключа (ck_live_…), или ключ отключёнИспользуйте ID ключа активного ключа
status 403 (user_disabled): merchant API access is not enabledВаш аккаунт ещё не одобрен для доступа к APIПройдите проверку компании в личном кабинете
status 403 (forbidden): source IP is not allowed for this merchantВ вашем списке разрешённых IP нет сервера магазинаДобавьте публичный IP-адрес сервера в личном кабинете
status 401 (timestamp_expired): timestamp expiredЧасы вашего сервера расходятся больше чем на 60 секундВключите на сервере автоматическую синхронизацию времени (NTP)
status 404 и затем веб-страницаBase URL неверный, обычно не хватает /dujiaoИспользуйте https://b2b.cardv.net/dujiao
CardV wallet balance is insufficientВашего баланса CardV не хватает на покупку. Заказ покупателя остаётся оплаченнымПополните баланс CardV, затем нажмите Retry у покупки в Procurement Orders
quantity must be 1: CardV accepts one item per orderПокупатель заказал больше одной единицы товараУстановите Max purchase quantity на 1 (Шаг 5), затем обработайте заказ вручную
sku is invalid or not availableТовар больше не доступен в CardVЗапустите синхронизацию для этого сопоставления. Товары, которые CardV больше не предлагает, снимаются с продажи
status 429 (rate_limited)Слишком много запросов за одну минутуВаш магазин повторит запрос сам. Если это повторяется, уменьшите частоту синхронизации

#FAQ

Нужен ли новый API-ключ для Dujiao-Next? Нет. Используйте подписанный API-ключ, который у вас уже есть. Если вы также используете ключ для своей интеграции с CardV API, у них общие лимиты запросов.

Почему Callback URL оставляют пустым? CardV не отправляет обратные вызовы магазинам. Ваш магазин Dujiao-Next сам проверяет каждый заказ, пока не получит окончательный результат.

Что происходит, когда меняются цены CardV? Если Auto-update price on sync включено, ваши цены продажи пересчитываются с вашим курсом и наценкой при следующей синхронизации. Если выключено, магазин продолжает продавать по старой цене.

Где увидеть эти заказы в CardV? На странице Заказы в личном кабинете. Значение в столбце Ваш ID заказа начинается с dujiao:, за которым идёт номер подзаказа Dujiao-Next (например, dujiao:DJ…-01). Если вы настроили вебхуки CardV, они срабатывают и для этих заказов.

Заказы из Dujiao-Next в личном кабинете (суммы размыты)

Можно ли менять названия, описания и изображения товаров? Да. Синхронизация обновляет цены и наличие. Ваши названия и изображения она не перезаписывает.

Можно ли продавать произвольные суммы? Через Dujiao-Next пока нет. Доступны только фиксированные номиналы.

#Поддержка

Напишите на [email protected] и укажите ваш Merchant ID, номер заказа Dujiao-Next и текст ошибки. Использование CardV регулируется нашими Условиями обслуживания.

Вопросы по интеграции? Напишите на [email protected], указав ваш Merchant ID и ID заказа или запроса.