Документация для разработчиков
Темная тема

sale.paysystem.handler.add

Описание

sale.paysystem.handler.add(
 fields
)

Метод добавляет рест-обработчик.

Параметры

Параметр Описание С версии
fields Набор полей(массив вида array("поле":"значение"[, ...])), содержащий значения, описывающие обработчик. Доступные поля:
  • NAME - Название обработчика
  • CODE - Уникальный код обработчика в системе
  • SETTINGS - Настройки обработчика
  • SORT - Сортировка

Примеры

Пример 1

BX24.callMethod(
	"sale.paysystem.handler.add",
	{
		'NAME' : 'Обработчик.Rest', 							// Название обработчика
		'SORT' : 100, 											// Сортировка
		'CODE' : 'resthandlercode', 							// Уникальный код обработчика в системе
		'SETTINGS' : { 											// Настройки обработчика
			'CURRENCY' : {'RUB'}, 								// Список валют, которые поддерживает обработчик
			'FORM_DATA' : { 									// Настройки формы
				'ACTION_URI' : 'https://payment_service_url', 	// URL, на который будет отправляться форма
				'METHOD' : 'POST', 								// Метод отправки формы
				'PARAMS' : { 
// Карта соответствия полей между полями формы и параметрами обработчика: массив вида array(код_поля => код_параметра_обработчика)
					'serviceid' : 'REST_SERVICE_ID',
					'invoiceNumber' : 'PAYMENT_ID',
					'Sum' : 'PAYMENT_SHOULD_PAY',
					'customer' : 'PAYMENT_BUYER_ID',
				}
			},
			'CODES' : {											// Список параметров обработчика
				"REST_SERVICE_ID" : {							// Код параметра
					"NAME" : 'Номер магазина',					// Название параметра
					"DESCRIPTION" : 'Номер магазина',			// Описание параметра
					'SORT' : 100,								// Сортировка
				},
				"REST_SERVICE_KEY" : {
					"NAME" : 'Секретный ключ',
					"DESCRIPTION" : 'Секретный ключ',
					'SORT' : 300,
				},
				"PAYMENT_ID" : {
					"NAME" : 'Номер оплаты',
					'SORT' : 400,
					'GROUP' : 'PAYMENT',
					'DEFAULT' : {
						'PROVIDER_KEY' : 'PAYMENT',
						'PROVIDER_VALUE' : 'ACCOUNT_NUMBER'
					}
				},
				"PAYMENT_SHOULD_PAY" : {
					"NAME" : 'Сумма оплаты',
					'SORT' : 600,
					'GROUP' : 'PAYMENT',
					'DEFAULT' : {
						'PROVIDER_KEY' : 'PAYMENT',
						'PROVIDER_VALUE' : 'SUM'
					}
				},
				"PS_CHANGE_STATUS_PAY" : {
					"NAME" : 'Автоматическая смена статуса оплаты',
					'SORT' : 700,
					"INPUT" : {
						'TYPE' : 'Y/N'
					},
				},
				"PAYMENT_BUYER_ID" : {
					"NAME" : 'Код покупателя',
					'SORT' : 1000,
					'GROUP' : 'PAYMENT',						// тип значения строка, чекбокс и т.д.
					'DEFAULT' : {								// Значение по умолчанию
						'PROVIDER_KEY' : 'ORDER',				// Тип значения(см. доступный список ниже)
						'PROVIDER_VALUE' : 'USER_ID'			// Значение(см. доступный список ниже)
					}
				}
			}
		}
	},
	function(result)
	{
		if(result.error())
			console.error(result.error());
		else
			console.info("Обработчик добавлен с ID " + result.data());
	}
);

Пример 2

Начиная с версии 20.5.0 модуля sale добавлено новое значение FIELDS вместо старого PARAMS (появилась возможность передавать произвольные поля для REST-обработчиков платёжных систем).

Если значение ключа CODE - строка, то значение будет использоваться для поиска соответствия между полями формы и параметрами обработчика: массив вида array('CODE' => 'код_параметра_обработчика'). Название и значение будут получены из параметров обработчика ('CODES').

Если в ключе CODE передан объект, то в форме оплаты будет добавлено поле указанного типа. Поддерживаются типы:

  • STRING (строка)
  • Y/N (чекбокс)
  • ENUM (список)

По умолчанию поля формы скрыты. Чтобы сделать поле видимым, необходимо передать 'VISIBLE' : 'Y'.

BX.rest.callMethod(
    "sale.paysystem.handler.add",
    {
        'NAME' : 'Обработчик.Rest',
        'SORT' : 100,
        'CODE' : 'resthandlercodedoc',
        'SETTINGS' : {
            'CURRENCY' : ['RUB'],
            'FORM_DATA' : {
                'ACTION_URI' : 'https://payment_service_url',
                'METHOD' : 'POST',
                'FIELDS' : { 
                    'phone' : {
                        'CODE': {
                            'NAME' : 'Номер телефона',
                            'TYPE' : 'STRING',
                        }
                        'VISIBLE' : 'Y',
                    },
                    'paymentId' : {
                        'CODE' : 'PAYMENT_ID',
                        'VISIBLE' : 'Y'
                    },
                    'serviceid' : {
                        'CODE' : 'REST_SERVICE_ID'  
                    }
                }
            },
            'CODES' : {
                "REST_SERVICE_ID" : {
                    "NAME" : 'Номер магазина',
                    "DESCRIPTION" : 'Номер магазина',
                    'SORT' : 100,
                },
                "REST_SERVICE_KEY" : {
                    "NAME" : 'Секретный ключ',
                    "DESCRIPTION" : 'Секретный ключ',
                    'SORT' : 300,
                },
                "PAYMENT_ID" : {
                    "NAME" : 'Номер оплаты',
                    'SORT' : 400,
                    'GROUP' : 'PAYMENT',
                    'DEFAULT' : {
                        'PROVIDER_KEY' : 'PAYMENT',
                        'PROVIDER_VALUE' : 'ACCOUNT_NUMBER'
                    }
                },
                "PAYMENT_SHOULD_PAY" : {
                    "NAME" : 'Сумма оплаты',
                    'SORT' : 600,
                    'GROUP' : 'PAYMENT',
                    'DEFAULT' : {
                        'PROVIDER_KEY' : 'PAYMENT',
                        'PROVIDER_VALUE' : 'SUM'
                    }
                },
                "PS_CHANGE_STATUS_PAY" : {
                    "NAME" : 'Автоматическая смена статуса оплаты',
                    'SORT' : 700,
                    "INPUT" : {
                        'TYPE' : 'Y/N'
                    },
                },
                "PAYMENT_BUYER_ID" : {
                    "NAME" : 'Код покупателя',
                    'SORT' : 1000,
                    'GROUP' : 'PAYMENT',
                    'DEFAULT' : {
                        'PROVIDER_KEY' : 'ORDER',
                        'PROVIDER_VALUE' : 'USER_ID'
                    }
                }
            }
        }
    },
    function(result)
    {
        if(result.error())
            console.error(result.error());
        else
            console.info("Обработчик добавлен с ID " + result.data());
    }
);

Примечание: Если передавать и FIELDS, и PARAMS, то будет использоваться только FIELDS.

Возможные значения

Возможные значения PROVIDER_KEY
ORDER Параметры
PROPERTY Свойства счета
PAYMENT Оплата
USER Пользователь
VALUE Значение типа строка
Y\N Чекбокс
Возможные значения PROVIDER_VALUE
ORDER ID: ID (для счетов соответствует ID счета),
ACCOUNT_NUMBER: Номер заказа (для счетов соответствует номеру счета),
ORDER_TOPIC: Тема,
DATE_INSERT: Дата заказа (для счетов соответствует дате счета),
DATE_INSERT_DATE: Дата заказа (без времени) (для счетов соответствует дате счета (без времени)),
DATE_BILL: Дата и время выставления,
DATE_BILL_DATE: Дата выставления,
DATE_PAY_BEFORE: Срок оплаты,
SHOULD_PAY: Сумма счета (для счетов соответствует сумме счета),
CURRENCY: Валюта,
PRICE: Стоимость заказа (для счетов соответствует стоимости счета),
PRICE_DELIVERY: Стоимость доставки,
DISCOUNT_VALUE: Величина скидки,
USER_ID: Код покупателя,
PAY_SYSTEM_ID: Код платежной системы,
DELIVERY_ID: Код службы доставки,
TAX_VALUE: Налог,
USER_DESCRIPTION: Комментарий
PAYMENT ID: ID
ACCOUNT_NUMBER: Номер оплаты,
DATE_BILL: Дата и время выставления,
DATE_BILL_DATE: Дата выставления (без времени),
SUM: Сумма оплаты,
CURRENCY: Валюта
USER ID: Код покупателя,
LOGIN: Логин,
NAME: Имя,
SECOND_NAME: Отчество,
LAST_NAME: Фамилия,
EMAIL: EMail,
PERSONAL_PROFESSION: Профессия,
PERSONAL_WWW: Персональный веб-сайт,
PERSONAL_ICQ: Номер ICQ,
PERSONAL_GENDER: Пол,
PERSONAL_FAX: Номер факса,
PERSONAL_MOBILE: Номер телефона,
PERSONAL_STREET: Адрес,
PERSONAL_MAILBOX: Почтовый ящик,
PERSONAL_CITY: Город,
PERSONAL_STATE: Штат,
PERSONAL_ZIP: Индекс,
PERSONAL_COUNTRY: Страна,
WORK_COMPANY: Компания,
WORK_DEPARTMENT: Отдел,
WORK_POSITION: Должность,
WORK_WWW: Сайт компании,
WORK_PHONE: Рабочий телефон,
WORK_FAX: Рабочий факс,
WORK_STREET: Адрес компании,
WORK_MAILBOX: Рабочий почтовый ящик,
WORK_CITY: Город компании,
WORK_STATE: Штат компании,
WORK_ZIP: Индекс компании,
WORK_COUNTRY: Страна компании


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2021, «1С-Битрикс», 2021
Наверх