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

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
Наверх