Добрый день.
С введением 54-го ФЗ подключили к робокассе атол.онлайн, но возникла проблема в робокассу не уходит номенклатура.
Вообщем как оказалось у них обновился протокол и добавился параметр Receipt (читать здесь [URL=https://docs.robokassa.ru/#6865]https://docs.robokassa.ru/#6865[/URL]), который отвечает как раз таки за передачу содержимого чека в Атол.Онлайн.
Насколько я понял модуль из коробки данный параметр никак не поддерживает. Залез под капот (если быть точным сюда: /bitrix/modules/sale/handlers/paysystem/roboxchange/handler.php), как оказалось вообщем-то с точки зрения "поддержать" всё достаточно просто - в метод [B]initiatePay()[/B] нужно добавить кусок который будет дёргать товары и доставку из оплаты и упаковывать их в JSON.
Только возникла одна маленькая деталь - как достать эту самую номенклатуру.
[CODE]public function initiatePay(Payment $payment, Request $request = null)
{
$test = '';
if ($this->isTestMode($payment))
$test = '_TEST';
$paymentShouldPay = (float)$this->getBusinessValue($payment, 'PAYMENT_SHOULD_PAY');
$signatureValue = md5(
$this->getBusinessValue($payment, 'ROBOXCHANGE_SHOPLOGIN').":".
$paymentShouldPay.":".
$this->getBusinessValue($payment, 'PAYMENT_ID').":".
$this->getBusinessValue($payment, 'ROBOXCHANGE_SHOPPASSWORD'.$test).':'.
'SHP_BX_PAYSYSTEM_CODE='.$payment->getPaymentSystemId().':'.
'SHP_HANDLER=ROBOXCHANGE'
);
$params = array(
'URL' => $this->getUrl($payment, 'pay'),
'PS_MODE' => $this->service->getField('PS_MODE'),
'SIGNATURE_VALUE' => $signatureValue,
'BX_PAYSYSTEM_CODE' => $payment->getPaymentSystemId(),
'PAYMENT_SHOULD_PAY' => $paymentShouldPay,
);
$this->setExtraParams($params);
return $this->showTemplate($payment, "template");
}
[/CODE]
В этом методе есть собственно [B]$payment [/B]в которой и состав заказа и доставка и налоги есть, только небольшая проблема - непонятно как достать. Может кто-нибудь подсказать как это грамотно сделать, т.к. прочтение доки по API знаний не прибавило в данном вопросе?