Здравствуйте!
Разрабатываю компонент упрощенной формы оформления заказа, в котором будет выбор способа оплаты из списка платежных систем, полученных методом: CSalePaySystemAction::GetList
который возвращает такой массив платежных систем:
Array
(
[0] => Array
(
[ID] => 7
[PAY_SYSTEM_ID] =>
[PERSON_TYPE_ID] =>
[ACTION_FILE] => INNER_BUDGET
[RESULT_FILE] =>
[NEW_WINDOW] => N
[PARAMS] => a:1:{s:16:"BX_PAY_SYSTEM_ID";a:2:{s:4:"TYPE";s:0:"";s:5:"VALUE";s:1:"7";}}
[TARIF] =>
[ENCODING] =>
[LOGOTIP] => 223
[NAME] => Внутренний счет
)
[1] => Array
(
[ID] => 8
[PAY_SYSTEM_ID] => 8
[PERSON_TYPE_ID] =>
[ACTION_FILE] => /bitrix/modules/sale/payment/cash
[RESULT_FILE] =>
[NEW_WINDOW] => N
[PARAMS] => a:1:{s:16:"BX_PAY_SYSTEM_ID";a:2:{s:4:"TYPE";s:0:"";s:5:"VALUE";s:1:"8";}}
[TARIF] =>
[ENCODING] =>
[LOGOTIP] => 231
[NAME] => Наличный расчет
)
[2] => Array
(
[ID] => 9
[PAY_SYSTEM_ID] => 9
[PERSON_TYPE_ID] =>
[ACTION_FILE] => /bitrix/php_interface/include/sale_payment/payment
[RESULT_FILE] =>
[NEW_WINDOW] => N
[PARAMS] => a:13:{s:12:"ORDER_NUMBER";a:2:{s:4:"TYPE";s:5:"ORDER";s:5:"VALUE";s:2:"ID";}s:6:"AMOUNT";a:2:{s:4:"TYPE";s:5:"ORDER";s:5:"VALUE";s:10:"SHOULD_PAY";}s:9:"USER_NAME";a:2:{s:4:"TYPE";s:0:"";s:5:"VALUE";s:0:"";}s:8:"PASSWORD";a:2:{s:4:"TYPE";s:0:"";s:5:"VALUE";s:0:"";}s:9:"TEST_MODE";a:2:{s:4:"TYPE";s:8:"CHECKBOX";s:5:"VALUE";s:1:"Y";}s:7:"LOGGING";a:2:{s:4:"TYPE";s:8:"CHECKBOX";s:5:"VALUE";s:1:"Y";}s:9:"TWO_STAGE";a:2:{s:4:"TYPE";s:8:"CHECKBOX";s:5:"VALUE";s:1:"N";}s:14:"AUTO_OPEN_FORM";a:2:{s:4:"TYPE";s:8:"CHECKBOX";s:5:"VALUE";s:1:"N";}s:15:"SHIPMENT_ENABLE";a:2:{s:4:"TYPE";s:8:"CHECKBOX";s:5:"VALUE";s:1:"N";}s:10:"FFD_FORMAT";a:2:{s:4:"TYPE";s:6:"SELECT";s:5:"VALUE";s:2:"v1";}s:18:"FFD_PAYMENT_METHOD";a:2:{s:4:"TYPE";s:6:"SELECT";s:5:"VALUE";s:1:"4";}s:18:"FFD_PAYMENT_OBJECT";a:2:{s:4:"TYPE";s:6:"SELECT";s:5:"VALUE";s:1:"1";}s:16:"BX_PAY_SYSTEM_ID";a:2:{s:4:"TYPE";s:0:"";s:5:"VALUE";s:1:"9";}}
[TARIF] =>
[ENCODING] =>
[LOGOTIP] =>
[NAME] => Сбербанк
)
)
С оплатой с внутр. счета я разобрался, деньги списываются статус заказа меняется оплата устанавливается.
Но вот как быть с оплатой по внешней платежной системе (например от модуля Сбербанк эквайрингаhttps://marketplace.1c-bitrix.ru/solutions/sberbank.ecom/ ) [PAY_SYSTEM_ID] => 9 ?
Там есть путь [ACTION_FILE] => /bitrix/php_interface/include/sale_payment/payment , я помотрел что там есть три файла
в payment.php и result.php я добавил коды
Bitrix\Main\Diag\Debug::writeToFile('bitrix/php_interface/include/sale_payment/payment/payment.php');
Bitrix\Main\Diag\Debug::writeToFile($_REQUEST);
Bitrix\Main\Diag\Debug::writeToFile('bitrix/php_interface/include/sale_payment/payment/result.php');
Bitrix\Main\Diag\Debug::writeToFile($_REQUEST);
И выполнил оплату через sale.order.ajax, выбрав эту плат.систему от Сбербанка
В итоге в лог файле прописалось следующее
bitrix/php_interface/include/sale_payment/payment/payment.php
Array
(
[ORDER_ID] => 21
[display] => grid
[BITRIX_SM_SOUND_LOGIN_PLAYED] => Y
[BX_USER_ID] => 7edd626bad23f7c77434253b66354f5b
[BITRIX_SM_LOGIN] => admin
[PHPSESSID] => 83f16f756ac06fa26567872653e6569b
[BITRIX_SM_SALE_UID] => 417e33c3e0dc6d2fef991cc9e4b1f41b
[BITRIX_CONVERSION_CONTEXT_s1] => {"ID":1,"EXPIRE":1561669140,"UNIQUE":["conversion_visit_day","sale_order_add_day","sale_payment_add_day"]}
)
Т.е мне нужно понять:
1) какие данные и как передавать на itrix/php_interface/include/sale_payment/payment/payment.php после сохр. заказа в моем кастомном компоненте (если выбран Сбербанк или например другая система оплаты Intellectmoney)?
2) Что нужно выполнять далее? (как понять что юзер оплатил на шлюзе, как получить эти данные, добавлять потом оплату менять статус заказа ит.д и т.п)
Я вам прикрепляю архив с компонентом, смотрите файл sale.order.simple/class.php в нем функция создания заказа это saveOrder() и там в конце функции как раз я и упираюсь в этот вопрос... что дальше...
Разрабатываю компонент упрощенной формы оформления заказа, в котором будет выбор способа оплаты из списка платежных систем, полученных методом: CSalePaySystemAction::GetList
который возвращает такой массив платежных систем:
Array
(
[0] => Array
(
[ID] => 7
[PAY_SYSTEM_ID] =>
[PERSON_TYPE_ID] =>
[ACTION_FILE] => INNER_BUDGET
[RESULT_FILE] =>
[NEW_WINDOW] => N
[PARAMS] => a:1:{s:16:"BX_PAY_SYSTEM_ID";a:2:{s:4:"TYPE";s:0:"";s:5:"VALUE";s:1:"7";}}
[TARIF] =>
[ENCODING] =>
[LOGOTIP] => 223
[NAME] => Внутренний счет
)
[1] => Array
(
[ID] => 8
[PAY_SYSTEM_ID] => 8
[PERSON_TYPE_ID] =>
[ACTION_FILE] => /bitrix/modules/sale/payment/cash
[RESULT_FILE] =>
[NEW_WINDOW] => N
[PARAMS] => a:1:{s:16:"BX_PAY_SYSTEM_ID";a:2:{s:4:"TYPE";s:0:"";s:5:"VALUE";s:1:"8";}}
[TARIF] =>
[ENCODING] =>
[LOGOTIP] => 231
[NAME] => Наличный расчет
)
[2] => Array
(
[ID] => 9
[PAY_SYSTEM_ID] => 9
[PERSON_TYPE_ID] =>
[ACTION_FILE] => /bitrix/php_interface/include/sale_payment/payment
[RESULT_FILE] =>
[NEW_WINDOW] => N
[PARAMS] => a:13:{s:12:"ORDER_NUMBER";a:2:{s:4:"TYPE";s:5:"ORDER";s:5:"VALUE";s:2:"ID";}s:6:"AMOUNT";a:2:{s:4:"TYPE";s:5:"ORDER";s:5:"VALUE";s:10:"SHOULD_PAY";}s:9:"USER_NAME";a:2:{s:4:"TYPE";s:0:"";s:5:"VALUE";s:0:"";}s:8:"PASSWORD";a:2:{s:4:"TYPE";s:0:"";s:5:"VALUE";s:0:"";}s:9:"TEST_MODE";a:2:{s:4:"TYPE";s:8:"CHECKBOX";s:5:"VALUE";s:1:"Y";}s:7:"LOGGING";a:2:{s:4:"TYPE";s:8:"CHECKBOX";s:5:"VALUE";s:1:"Y";}s:9:"TWO_STAGE";a:2:{s:4:"TYPE";s:8:"CHECKBOX";s:5:"VALUE";s:1:"N";}s:14:"AUTO_OPEN_FORM";a:2:{s:4:"TYPE";s:8:"CHECKBOX";s:5:"VALUE";s:1:"N";}s:15:"SHIPMENT_ENABLE";a:2:{s:4:"TYPE";s:8:"CHECKBOX";s:5:"VALUE";s:1:"N";}s:10:"FFD_FORMAT";a:2:{s:4:"TYPE";s:6:"SELECT";s:5:"VALUE";s:2:"v1";}s:18:"FFD_PAYMENT_METHOD";a:2:{s:4:"TYPE";s:6:"SELECT";s:5:"VALUE";s:1:"4";}s:18:"FFD_PAYMENT_OBJECT";a:2:{s:4:"TYPE";s:6:"SELECT";s:5:"VALUE";s:1:"1";}s:16:"BX_PAY_SYSTEM_ID";a:2:{s:4:"TYPE";s:0:"";s:5:"VALUE";s:1:"9";}}
[TARIF] =>
[ENCODING] =>
[LOGOTIP] =>
[NAME] => Сбербанк
)
)
С оплатой с внутр. счета я разобрался, деньги списываются статус заказа меняется оплата устанавливается.
Но вот как быть с оплатой по внешней платежной системе (например от модуля Сбербанк эквайринга
Там есть путь [ACTION_FILE] => /bitrix/php_interface/include/sale_payment/payment , я помотрел что там есть три файла
в payment.php и result.php я добавил коды
Bitrix\Main\Diag\Debug::writeToFile('bitrix/php_interface/include/sale_payment/payment/payment.php');
Bitrix\Main\Diag\Debug::writeToFile($_REQUEST);
Bitrix\Main\Diag\Debug::writeToFile('bitrix/php_interface/include/sale_payment/payment/result.php');
Bitrix\Main\Diag\Debug::writeToFile($_REQUEST);
И выполнил оплату через sale.order.ajax, выбрав эту плат.систему от Сбербанка
В итоге в лог файле прописалось следующее
bitrix/php_interface/include/sale_payment/payment/payment.php
Array
(
[ORDER_ID] => 21
[display] => grid
[BITRIX_SM_SOUND_LOGIN_PLAYED] => Y
[BX_USER_ID] => 7edd626bad23f7c77434253b66354f5b
[BITRIX_SM_LOGIN] => admin
[PHPSESSID] => 83f16f756ac06fa26567872653e6569b
[BITRIX_SM_SALE_UID] => 417e33c3e0dc6d2fef991cc9e4b1f41b
[BITRIX_CONVERSION_CONTEXT_s1] => {"ID":1,"EXPIRE":1561669140,"UNIQUE":["conversion_visit_day","sale_order_add_day","sale_payment_add_day"]}
)
Т.е мне нужно понять:
1) какие данные и как передавать на itrix/php_interface/include/sale_payment/payment/payment.php после сохр. заказа в моем кастомном компоненте (если выбран Сбербанк или например другая система оплаты Intellectmoney)?
2) Что нужно выполнять далее? (как понять что юзер оплатил на шлюзе, как получить эти данные, добавлять потом оплату менять статус заказа ит.д и т.п)
Я вам прикрепляю архив с компонентом, смотрите файл sale.order.simple/class.php в нем функция создания заказа это saveOrder() и там в конце функции как раз я и упираюсь в этот вопрос... что дальше...
С ув. Вячеслав Докукин