Payment widget

Payment widget is a pop-up form to enter card data and a payer’s email address. The widget automatically defines a payment system type: Visa, MasterCard, Maestro or MIR, and also an emitting bank of a card, and also shows corresponding logos. The form is optimized for using in any browsers and mobile devices. Within a widget an iframe opens, which guarantees a security of card data sent, and does not require a certification from TSP for usage.
Installation
To install a widget, you shall add a script on a web site to a head section.

<script src="https://widget.cloudpayments.ru/bundles/cloudpayments"></script>

For a checkout page to be displayed, you shall register a feature to call charge or auth methods.

//note: в примере используется библиотека jquery

this.pay = function () {
    var widget = new cp.CloudPayments();
    widget.charge({ // options
            publicId: 'test_api_00000000000000000000001',  //id из личного кабинета
            description: 'Пример оплаты (деньги сниматься не будут)', //назначение
            amount: 10, //сумма
            currency: 'RUB', //валюта
            invoiceId: '1234567', //номер заказа  (необязательно)
            accountId: 'user@example.com', //идентификатор плательщика (необязательно)
            data: {
                myProp: 'myProp value' //произвольный набор параметров
            }
        },
        function (options) { // success
            //действие при успешной оплате
        },
        function (reason, options) { // fail
            //действие при неуспешной оплате
        });
};    
           

and specify a function call for an event, for example, a click on the «Pay» button.

$('#checkout').click(pay);

Parameters
A call of the charge or auth function defines a payment scheme: charge for single message, auth — for dual message.

Parameter

Size

Use

Description

publicId

String

Mandatory

A web site identifier; it is located in MA.

description

String

Mandatory

Description of a payment purpose in any format

amount

Float

Mandatory

Payment value

currency

String

Mandatory

Currency: RUB/USD/EUR/GBP (see reference)

invoiceId

String

Optional

Order or invoice number

accountId

String

Mandatory to create a subscription

User identifier

email

String

Optional

User's email address

requireEmail

bool

Optional

Require a user's email address to be specified in a widget

data

Json

Optional

Any other data which will be related to a transaction, including instructions on how to create a subscription or generate an online check.
We reserved names of following parameters and display their contents in the transaction registry, downloaded in the My Account: name, firstName, middleName, lastName, nick, phone, address, comment, birthDate.

You can define a behavior of a form for a successful or unsuccessful payment using following parameters:

Parameter

Size

Use

Description

onSuccess

Function or String

Optional

Either a feature, or a web site's page is specified. If a feature is specified, it will be called after a successful payment completion. If an e-mail address is specified, the user will be directed to a specified page.

onFail

Function or String

Optional

Either a feature, or a web site's page is specified. If a feature is specified, it will be called after an unsuccessful payment completion. If an e-mail address is specified, the user will be directed to a specified page.

 

Localization
By default we display a widget in Russian. To call a widget localized for other languages, transmit in widget initialization parameters a language parameter.

var widget = new cp.CloudPayments({language: "en-US"});

Language

Time zone

Code

Russian

MSK

ru-RU

English

CET

en-US

Latvian

CET

lv

Azerbaijani

AZT

az

Russian

ALMT

kk

Kazakh

ALMT

kk-KZ

Ukrainian

EET

uk

Polish

CET

pl

Portuguese

CET

pt

 

Аfter a successful payment completion, the widget can automatically create a subscription to recurrent payments. For this you shall add some startup parameters:

Parameter

Size

Use

Description

Interval

String

Mandatory

Interval. Possible values are: Day, Week, Month.

Period

Int

Mandatory

Period. Together with an interval, 1 Month means once a month, and 2 Week once two weeks.

MaxPeriods

Int

Optional

Maximum number of payments in a subscription Default is no limitation.

Amount

Numeric

Optional

A regular payment value. The default matches a first (setup) payment value.

StartDate

DateTime

Optional

Date and time of the first regular payment. By default, a startup will occur in a specified interval and the period, for example, in a month.

СustomerReceipt

String

Optional

Data to generate an online check.

 

this.pay = function () {
    var widget = new cp.CloudPayments();
    var receipt = {
			Items: [//товарные позициии
                 {
					label: 'Наименование товара 3', //наименование товара
					price: 300.00, //цена
					quantity: 3.00, //количество
					amount: 900.00, //сумма
					vat: 18, //ставка НДС
                    method: 0, // тег-1214 признак способа расчета - признак способа расчета
    			    object: 0, // тег-1212 признак предмета расчета - признак предмета товара, работы, услуги, платежа, выплаты, иного предмета расчета
				}
			],
            taxationSystem: 0, //система налогообложения; необязательный, если у вас одна система налогообложения
			email: 'user@example.com', //e-mail покупателя, если нужно отправить письмо с чеком
			phone: '', //телефон покупателя в любом формате, если нужно отправить сообщение со ссылкой на чек
		    amounts:
	        {
		        electronic: 9.00, // Сумма оплаты электронными деньгами
		        advancePayment: 0.00, // Сумма из предоплаты (зачетом аванса) (2 знака после запятой)
		        credit: 0.00, // Сумма постоплатой(в кредит) (2 знака после запятой)
		        provision: 0.00 // Сумма оплаты встречным предоставлением (сертификаты, др. мат.ценности) (2 знака после запятой)
	        }
		};

    var data = {};
    data.cloudPayments = {recurrent: { interval: 'Month', period: 1, сustomerReceipt: receipt}}; //создание ежемесячной подписки

    widget.charge({ // options
        publicId: 'test_api_00000000000000000000001', //id из личного кабинета
        description: 'Подписка на ежемесячный доступ к сайту example.com', //назначение
        amount: 1000, //сумма
        currency: 'RUB', //валюта
        invoiceId: '1234567', //номер заказа  (необязательно)
        accountId: 'user@example.com', //идентификатор плательщика (обязательно для создания подписки)
        data: data
    },
    function (options) { // success
        //действие при успешной оплате
    },
    function (reason, options) { // fail
        //действие при неуспешной оплате
    });
};