NAV
  • Платежи через виджет
  • Платежи через виджет

    Подключение

    Для того, чтобы на вашем сайте встроить платежный виджет, необходимо подключить JavaScript-код на странице оплаты.

    <script src="https://paymaster.ru/cpay/sdk/payment-widget.js"></script>
    

    Для отображения виджета необходимо вызвать функцию инициализии, передав туда необходимые параметры.

    function pay () {
    
        var paymentWidget = new cpay.PaymentWidget();
    
        paymentWidget.init({
            merchantId: "cf128151-127b-44ed-bde5-26c531cad20d",
            invoice: {
                description: "test payment"
            },
            amount: {
                value: 10.50,
                currency: "RUB"
            }
        });
    }
    

    Функция инициализии может быть вызвана, например, по нажатию кнопки "Оплатить".

    <button onclick="pay()">Оплатить</button>
    

    Описание параметров

    Обязательные параметры выделены жирным шрифтом.

    ПараметрТипОписание
    merchantIdstringИдентификатор магазина
    invoiceДетали счета
    descriptionstringНазначение платежа (макс. 255)
    orderNostringНомер заказа в системе магазина (макс. 50)
    expiresstringСрок действия счета (формат ISO 8601, например 2022-12-01T00:00:00Z)
    urlstringСсылка на оплату, полученная через API
    amountСтоимость
    valuenumberСумма к оплате
    currencystringКод валюты (например RUB)
    paymentMethodstringСпособ оплаты
    customerДанные пользователя
    emailstringE-mail пользователя
    phonestringТелефон пользователя
    receiptДанные чека
    clientДанные покупателя
    emailstringE-mail покупателя
    phonestringТелефон покупателя
    namestringНаименование компании (макс. 150)
    innstringИНН компании
    itemsПеречисление позиций чека (макс. 110)
    namestringНаименования (макс. 255)
    quantitynumberКоличество (например 5.425)
    pricenumberЦена (например 10.50)
    excisenumberАкциз (например 10.50)
    product
    codestringКод товара (формат base64)
    countrystringКод страны происхождения (например ru)
    declarationstringНомер таможенной декларации (макс. 32)
    vatTypestringСтавка НДС
    paymentSubjectstringПризнак предмета расчета
    paymentMethodstringПризнак способа расчета
    agentTypestringПризнак агента
    supplierДанные поставщика
    namestringНаименование поставщика (макс. 150)
    innstringИНН поставщика
    phonestringТелефон поставщика
    paymentFormДанные платежной формы
    themestringТема (светлая light или темная dark)
    primaryColorstringФирменный цвет (hex формат, например #a5227d)
    productCardКарточка товара / услуги
    titlestringНаименование товара / услуги (макс. 80)
    descriptionstringОписание товара / услуги (макс. 250)
    imageUrlstringURL изображения товара
    fieldsПеречисление дополнительных полей (макс. 30)
    typestringТип поля (например input, select, checkbox)
    namestringУникальное внутреннее название поля (макс. 150)
    labelstringНазвание поля для отображения (макс. 30)
    hintstringПримечание поля (только для типа поля input, макс. 40)
    requiredbooleanОбязательность заполнения поля (только для типов поля input и select)
    selectOptionsПеречисление опций для выбора (только для типа поля select)
    labelstringНазвание опции (макс. 30)
    valuestringЗначение опции (макс. 30)
    additionalAmountnumberДобавочная сумма (например 10.50)
    additionalAmountnumberДобавочная сумма (только для типа поля checkbox, например 10.50)
    onSuccessfunctionФункция обратного вызова при успешной оплате
    onFailfunctionФункция обратного вызова при неуспешной оплате

    Дополнительные поля

    У полей с типами select и checkbox вы можете задать добавочную сумму additionalAmount, которая будет автоматически добавляться к основной сумме счета, в зависимости от выбора плательщика.

    Если вы хотите, чтобы плательщик сам указывал сумму, то amount.value необходимо задать 0 и добавить поле с типом input и названием amount. Поле должно быть обязательным.

    Также, если вы хотите, чтобы плательщик сам выбирал сумму, то amount.value необходимо задать 0 и добавить поле с типом select, у которого все опции selectOptions содержат additionalAmount. Поле также должно быть обязательным.

    Для того, чтобы плательщик указывал свой e-mail или телефон, вам необходимо добавить поле с типом input и названием customerEmail или customerPhone соответственно. Поля могут быть необязательными.

    Создание счета через API

    Если вы используете API для создания счета и хотите использовать платежный виджет, то полученную ссылку на оплату необходимо передать в функцию инициализии.

    var paymentWidget = new cpay.PaymentWidget();
    
    paymentWidget.init({
        invoice: {
            url: "https://paymaster.ru/cpay/a62beecb68c84778b2424294f635b370"
        }
    });