Блог Горошко Андрея 1C-Битрикс,Bitrix24 Обновить REST-обработчик платежной системы sale.paysystem.handler.update

Обновить REST-обработчик платежной системы sale.paysystem.handler.update

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Обновить REST-обработчик платежной системы sale.paysystem.handler.update», разберем архитектурные особенности и предоставим готовые к интеграции примеры кода.

Обновить REST-обработчик платежной системы sale.paysystem.handler.update

> Scope: pay_system
>
> Кто может выполнять метод: администратор CRM (право «Разрешить изменять настройки»)

Метод обновляет REST-обработчик платежной системы.

Параметры метода

Название
тип
Описание
ID
sale_paysystem_handler.ID
Идентификатор REST-обработчика
FIELDS
object
Набор значений для обновления (подробное описание приведено ниже)

Параметр FIELDS

Название
тип
Описание
NAME
string
Название обработчика
CODE
string
Уникальный код обработчика в системе
SETTINGS
object
Настройки обработчика. Формат аналогичен формату в sale.paysystem.handler.add
SORT
integer
Сортировка

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"ID":3,"FIELDS":{"CODE":"newresthandlercode","NAME":"Новое название обработчика","SORT":200,"SETTINGS":{"CURRENCY":["RUB","BYN"],"FORM_DATA":{"ACTION_URI":"http://example.com/payment_form.php","METHOD":"POST","PARAMS":{"serviceid":"REST_SERVICE_ID_2","invoiceNumber":"PAYMENT_ID_2","Sum":"PAYMENT_SHOULD_PAY_2","customer":"PAYMENT_BUYER_ID_2"},"CODES":{"REST_SERVICE_ID_2":{"NAME":"Номер магазина","DESCRIPTION":"Номер магазина","SORT":"100"},"REST_SERVICE_KEY_2":{"NAME":"Секретный ключ","DESCRIPTION":"Секретный ключ","SORT":"300"},"PAYMENT_ID_2":{"NAME":"Номер оплаты","SORT":"400","GROUP":"PAYMENT","DEFAULT":{"PROVIDER_KEY":"PAYMENT","PROVIDER_VALUE":"ACCOUNT_NUMBER"}},"PAYMENT_SHOULD_PAY_2":{"NAME":"Сумма оплаты","SORT":"600","GROUP":"PAYMENT","DEFAULT":{"PROVIDER_KEY":"PAYMENT","PROVIDER_VALUE":"SUM"}},"PS_CHANGE_STATUS_PAY_2":{"NAME":"Автоматическая смена статуса оплаты","SORT":"700","INPUT":{"TYPE":"Y/N"}},"PAYMENT_BUYER_ID_2":{"NAME":"Код покупателя","SORT":"1000","GROUP":"PAYMENT","DEFAULT":{"PROVIDER_KEY":"ORDER","PROVIDER_VALUE":"USER_ID"}}}}}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/sale.paysystem.handler.update
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"ID":3,"FIELDS":{"CODE":"newresthandlercode","NAME":"Новое название обработчика","SORT":200,"SETTINGS":{"CURRENCY":["RUB","BYN"],"FORM_DATA":{"ACTION_URI":"http://example.com/payment_form.php","METHOD":"POST","PARAMS":{"serviceid":"REST_SERVICE_ID_2","invoiceNumber":"PAYMENT_ID_2","Sum":"PAYMENT_SHOULD_PAY_2","customer":"PAYMENT_BUYER_ID_2"},"CODES":{"REST_SERVICE_ID_2":{"NAME":"Номер магазина","DESCRIPTION":"Номер магазина","SORT":"100"},"REST_SERVICE_KEY_2":{"NAME":"Секретный ключ","DESCRIPTION":"Секретный ключ","SORT":"300"},"PAYMENT_ID_2":{"NAME":"Номер оплаты","SORT":"400","GROUP":"PAYMENT","DEFAULT":{"PROVIDER_KEY":"PAYMENT","PROVIDER_VALUE":"ACCOUNT_NUMBER"}},"PAYMENT_SHOULD_PAY_2":{"NAME":"Сумма оплаты","SORT":"600","GROUP":"PAYMENT","DEFAULT":{"PROVIDER_KEY":"PAYMENT","PROVIDER_VALUE":"SUM"}},"PS_CHANGE_STATUS_PAY_2":{"NAME":"Автоматическая смена статуса оплаты","SORT":"700","INPUT":{"TYPE":"Y/N"}},"PAYMENT_BUYER_ID_2":{"NAME":"Код покупателя","SORT":"1000","GROUP":"PAYMENT","DEFAULT":{"PROVIDER_KEY":"ORDER","PROVIDER_VALUE":"USER_ID"}}}}},"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/sale.paysystem.handler.update
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		"sale.paysystem.handler.update",
    		{
    			'ID': 3,
    			'FIELDS': {
    				'CODE': 'newresthandlercode',
    				'NAME': 'Новое название обработчика',
    				'SORT': 200,
    				'SETTINGS': {
    					"CURRENCY": [
    						"RUB", "BYN"
    					],
    					"FORM_DATA": {
    						"ACTION_URI": "http://example.com/payment_form.php",
    						"METHOD": "POST",
    						"PARAMS": {
    							"serviceid": "REST_SERVICE_ID_2",
    							"invoiceNumber": "PAYMENT_ID_2",
    							"Sum": "PAYMENT_SHOULD_PAY_2",
    							"customer": "PAYMENT_BUYER_ID_2"
    						}
    					},
    					"CODES": {
    						"REST_SERVICE_ID_2": {
    							"NAME": "Номер магазина",
    							"DESCRIPTION": "Номер магазина",
    							"SORT": "100"
    						},
    						"REST_SERVICE_KEY_2": {
    							"NAME": "Секретный ключ",
    							"DESCRIPTION": "Секретный ключ",
    							"SORT": "300"
    						},
    						"PAYMENT_ID_2": {
    							"NAME": "Номер оплаты",
    							"SORT": "400",
    							"GROUP": "PAYMENT",
    							"DEFAULT": {
    								"PROVIDER_KEY": "PAYMENT",
    								"PROVIDER_VALUE": "ACCOUNT_NUMBER"
    							}
    						},
    						"PAYMENT_SHOULD_PAY_2": {
    							"NAME": "Сумма оплаты",
    							"SORT": "600",
    							"GROUP": "PAYMENT",
    							"DEFAULT": {
    								"PROVIDER_KEY": "PAYMENT",
    								"PROVIDER_VALUE": "SUM"
    							}
    						},
    						"PS_CHANGE_STATUS_PAY_2": {
    							"NAME": "Автоматическая смена статуса оплаты",
    							"SORT": "700",
    							"INPUT": {
    								"TYPE": "Y/N"
    							}
    						},
    						"PAYMENT_BUYER_ID_2": {
    							"NAME": "Код покупателя",
    							"SORT": "1000",
    							"GROUP": "PAYMENT",
    							"DEFAULT": {
    								"PROVIDER_KEY": "ORDER",
    								"PROVIDER_VALUE": "USER_ID"
    							}
    						}
    					}
    				}
    			}
    		}
    	);
    	
    	const result = response.getData().result;
    	console.info(result);
    }
    catch( error )
    {
    	console.error(error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'sale.paysystem.handler.update',
                [
                    'ID'     => 3,
                    'FIELDS' => [
                        'CODE'     => 'newresthandlercode',
                        'NAME'     => 'Новое название обработчика',
                        'SORT'     => 200,
                        'SETTINGS' => [
                            'CURRENCY'  => ['RUB', 'BYN'],
                            'FORM_DATA' => [
                                'ACTION_URI' => 'http://example.com/payment_form.php',
                                'METHOD'     => 'POST',
                                'PARAMS'     => [
                                    'serviceid'    => 'REST_SERVICE_ID_2',
                                    'invoiceNumber' => 'PAYMENT_ID_2',
                                    'Sum'          => 'PAYMENT_SHOULD_PAY_2',
                                    'customer'     => 'PAYMENT_BUYER_ID_2',
                                ],
                            ],
                            'CODES'    => [
                                'REST_SERVICE_ID_2' => [
                                    'NAME'        => 'Номер магазина',
                                    'DESCRIPTION' => 'Номер магазина',
                                    'SORT'        => '100',
                                ],
                                'REST_SERVICE_KEY_2' => [
                                    'NAME'        => 'Секретный ключ',
                                    'DESCRIPTION' => 'Секретный ключ',
                                    'SORT'        => '300',
                                ],
                                'PAYMENT_ID_2' => [
                                    'NAME'   => 'Номер оплаты',
                                    'SORT'   => '400',
                                    'GROUP'  => 'PAYMENT',
                                    'DEFAULT' => [
                                        'PROVIDER_KEY'  => 'PAYMENT',
                                        'PROVIDER_VALUE' => 'ACCOUNT_NUMBER',
                                    ],
                                ],
                                'PAYMENT_SHOULD_PAY_2' => [
                                    'NAME'   => 'Сумма оплаты',
                                    'SORT'   => '600',
                                    'GROUP'  => 'PAYMENT',
                                    'DEFAULT' => [
                                        'PROVIDER_KEY'  => 'PAYMENT',
                                        'PROVIDER_VALUE' => 'SUM',
                                    ],
                                ],
                                'PS_CHANGE_STATUS_PAY_2' => [
                                    'NAME'  => 'Автоматическая смена статуса оплаты',
                                    'SORT'  => '700',
                                    'INPUT' => [
                                        'TYPE' => 'Y/N',
                                    ],
                                ],
                                'PAYMENT_BUYER_ID_2' => [
                                    'NAME'   => 'Код покупателя',
                                    'SORT'   => '1000',
                                    'GROUP'  => 'PAYMENT',
                                    'DEFAULT' => [
                                        'PROVIDER_KEY'  => 'ORDER',
                                        'PROVIDER_VALUE' => 'USER_ID',
                                    ],
                                ],
                            ],
                        ],
                    ],
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Success: ' . print_r($result, true);
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error updating payment system handler: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        "sale.paysystem.handler.update",
        {
            'ID': 3,
            'FIELDS': {
                'CODE': 'newresthandlercode',
                'NAME': 'Новое название обработчика',
                'SORT': 200,
                'SETTINGS': {
                    "CURRENCY": [
                        "RUB", "BYN"
                    ],
                    "FORM_DATA": {
                        "ACTION_URI": "http://example.com/payment_form.php",
                        "METHOD": "POST",
                        "PARAMS": {
                            "serviceid": "REST_SERVICE_ID_2",
                            "invoiceNumber": "PAYMENT_ID_2",
                            "Sum": "PAYMENT_SHOULD_PAY_2",
                            "customer": "PAYMENT_BUYER_ID_2"
                        }
                    },
                    "CODES": {
                        "REST_SERVICE_ID_2": {
                            "NAME": "Номер магазина",
                            "DESCRIPTION": "Номер магазина",
                            "SORT": "100"
                        },
                        "REST_SERVICE_KEY_2": {
                            "NAME": "Секретный ключ",
                            "DESCRIPTION": "Секретный ключ",
                            "SORT": "300"
                        },
                        "PAYMENT_ID_2": {
                            "NAME": "Номер оплаты",
                            "SORT": "400",
                            "GROUP": "PAYMENT",
                            "DEFAULT": {
                                "PROVIDER_KEY": "PAYMENT",
                                "PROVIDER_VALUE": "ACCOUNT_NUMBER"
                            }
                        },
                        "PAYMENT_SHOULD_PAY_2": {
                            "NAME": "Сумма оплаты",
                            "SORT": "600",
                            "GROUP": "PAYMENT",
                            "DEFAULT": {
                                "PROVIDER_KEY": "PAYMENT",
                                "PROVIDER_VALUE": "SUM"
                            }
                        },
                        "PS_CHANGE_STATUS_PAY_2": {
                            "NAME": "Автоматическая смена статуса оплаты",
                            "SORT": "700",
                            "INPUT": {
                                "TYPE": "Y/N"
                            }
                        },
                        "PAYMENT_BUYER_ID_2": {
                            "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(result.data());
            }
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'sale.paysystem.handler.update',
        [
            'ID' => 3,
            'FIELDS' => [
                'CODE' => 'newresthandlercode',
                'NAME' => 'Новое название обработчика',
                'SORT' => 200,
                'SETTINGS' => [
                    'CURRENCY' => ['RUB', 'BYN'],
                    'FORM_DATA' => [
                        'ACTION_URI' => 'http://example.com/payment_form.php',
                        'METHOD' => 'POST',
                        'PARAMS' => [
                            'serviceid' => 'REST_SERVICE_ID_2',
                            'invoiceNumber' => 'PAYMENT_ID_2',
                            'Sum' => 'PAYMENT_SHOULD_PAY_2',
                            'customer' => 'PAYMENT_BUYER_ID_2'
                        ]
                    ],
                    'CODES' => [
                        'REST_SERVICE_ID_2' => [
                            'NAME' => 'Номер магазина',
                            'DESCRIPTION' => 'Номер магазина',
                            'SORT' => '100'
                        ],
                        'REST_SERVICE_KEY_2' => [
                            'NAME' => 'Секретный ключ',
                            'DESCRIPTION' => 'Секретный ключ',
                            'SORT' => '300'
                        ],
                        'PAYMENT_ID_2' => [
                            'NAME' => 'Номер оплаты',
                            'SORT' => '400',
                            'GROUP' => 'PAYMENT',
                            'DEFAULT' => [
                                'PROVIDER_KEY' => 'PAYMENT',
                                'PROVIDER_VALUE' => 'ACCOUNT_NUMBER'
                            ]
                        ],
                        'PAYMENT_SHOULD_PAY_2' => [
                            'NAME' => 'Сумма оплаты',
                            'SORT' => '600',
                            'GROUP' => 'PAYMENT',
                            'DEFAULT' => [
                                'PROVIDER_KEY' => 'PAYMENT',
                                'PROVIDER_VALUE' => 'SUM'
                            ]
                        ],
                        'PS_CHANGE_STATUS_PAY_2' => [
                            'NAME' => 'Автоматическая смена статуса оплаты',
                            'SORT' => '700',
                            'INPUT' => [
                                'TYPE' => 'Y/N'
                            ]
                        ],
                        'PAYMENT_BUYER_ID_2' => [
                            'NAME' => 'Код покупателя',
                            'SORT' => '1000',
                            'GROUP' => 'PAYMENT',
                            'DEFAULT' => [
                                'PROVIDER_KEY' => 'ORDER',
                                'PROVIDER_VALUE' => 'USER_ID'
                            ]
                        ]
                    ]
                ]
            ]
        ]
    );

    echo '<PRE>';
    print_r($result);
    echo '</PRE>';

Обработка ответа

HTTP-статус: 200

{
    "result": true,
    "time": {
        "start": 1712135335.026931,
        "finish": 1712135335.407762,
        "duration": 0.3808310031890869,
        "processing": 0.0336611270904541,
        "date_start": "2024-04-03T11:08:55+02:00",
        "date_finish": "2024-04-03T11:08:55+02:00",
        "operating_reset_at": 1705765533,
        "operating": 3.3076241016387939
    }
}

Возвращаемые данные

Название
тип
Описание
result
boolean
Результат обновления REST-обработчика
time
time
Информация о времени выполнения запроса

Обработка ошибок

HTTP-статус: 400, 403

{
    "error": "ERROR_HANDLER_NOT_FOUND",
    "error_description": "Handler not found"
}

Возможные коды ошибок

КодОписаниеСтатус
ACCESS_DENIEDДоступ запрещен. Приложение пытается изменить обработчик, добавленный другим приложением, либо недостаточно прав для обновления обработчика403
ERROR_CHECK_FAILUREНе указано значение поля ID либо FIELDS400
ERROR_HANDLER_NOT_FOUNDОбработчик с указанным ID не найден400
ERROR_HANDLER_UPDATEПрочие ошибки. Подробную информацию об ошибке смотрите в error_description400
ERROR_UNEXPECTED_ANSWERНеожиданный ответ сервера. Одна из возможных причин — попытка указать обработчику неуникальный параметр CODE, уже существующий у другого обработчика400
  • [](./sale-pay-system-handler-add)
  • [](./sale-pay-system-handler-list)
  • [](./sale-pay-system-handler-delete)
  • [](./sale-pay-system-add)
  • [](./sale-pay-system-update)
  • [](./sale-pay-system-list)
  • [](./sale-pay-system-settings-get)
  • [](./sale-pay-system-settings-update)
  • [](./sale-pay-system-delete)
  • [](./sale-pay-system-pay-payment)
  • [](./sale-pay-system-pay-invoice)
  • [](./sale-pay-system-settings-payment-get)
  • [](./sale-pay-system-settings-invoice-get)

💡 Экспертное мнение и рекомендации

Ключевые выводы по теме «Обновить REST-обработчик платежной системы sale.paysystem.handler.update»:

Использование современных стандартов D7 при работе с sale.paysystem.handler.update позволяет писать чистый, масштабируемый и безопасный код. Не забывайте обрабатывать исключения (try/catch) и проверять права доступа текущего пользователя перед выполнением критических операций.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Related Post

E-commerce в D7: Программное создание заказа (Bitrix\Sale\Order)E-commerce в D7: Программное создание заказа (Bitrix\Sale\Order)

Программное создание заказа — задача, возникающая при импорте заказов, создании «заказа в 1 клик» или разработке своего API. В D7 это делается через цепочку связанных объектов. Шаг 1: Создание объекта

Зарегистрировать СМС-провайдер или провайдер сообщений messageservice.sender.addЗарегистрировать СМС-провайдер или провайдер сообщений messageservice.sender.add

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Зарегистрировать СМС-провайдер или провайдер сообщений messageservice.sender.add», разберем архитектурные

Как использовать D7Asset::addString() в 1С-Битрикс: пример кодаКак использовать D7Asset::addString() в 1С-Битрикс: пример кода

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Как использовать D7Asset::addString() в 1С-Битрикс: пример кода». Вы узнаете экспертные методики работы с