На сайте при оформлении заказа создается несколько оплат.
Как понять почему при запросе CSaleOrder::GetList в PAY_SYSTEM_ID указывается то первая оплата, то вторая?
оплата создается так:
получается что первая оплата ID=7, вторая ID=5, всегда в такой последовательности и оплата 5 в таком варианте всегда проставляется "оплачено".
Но в событии на момент оплаты заказа при вызове CSaleOrder::GetList получаю то
то
Как понять почему при запросе CSaleOrder::GetList в PAY_SYSTEM_ID указывается то первая оплата, то вторая?
оплата создается так:
Код |
---|
$paymentCollectionDop = $this->order->getPaymentCollection(); foreach ($paymentCollectionDop as $payment) { $sum = $payment->getSum(); // сумма к оплате $isPaid = $payment->isPaid(); // true, если оплачена $psID = $payment->getPaymentSystemId(); // ID платежной системы if(!$isPaid && $psID==5){ $service2 = \Bitrix\Sale\PaySystem\Manager::getObjectById(7); $payment->setFields(array( 'PAY_SYSTEM_ID' => $service2->getField("PAY_SYSTEM_ID"), 'PAY_SYSTEM_NAME' => $service2->getField("NAME"), 'SUM' => $this->order->getPrice()-$sumK, 'CURRENCY' => $this->order->getCurrency(), )); $payment5 = $paymentCollectionDop->createItem(); $paySystemService = \Bitrix\Sale\PaySystem\Manager::getObjectById(5); $payment5->setFields(array( 'PAY_SYSTEM_ID' => $paySystemService->getField("PAY_SYSTEM_ID"), 'PAY_SYSTEM_NAME' => $paySystemService->getField("NAME"), 'SUM' => $sumK, 'CURRENCY' => $this->order->getCurrency(), 'PAID' => 'Y', )); } } |
получается что первая оплата ID=7, вторая ID=5, всегда в такой последовательности и оплата 5 в таком варианте всегда проставляется "оплачено".
Но в событии на момент оплаты заказа при вызове CSaleOrder::GetList получаю то
Код |
---|
[PAY_SYSTEM_ID] => 5 [PAYED] => N |
то
Код |
---|
[PAY_SYSTEM_ID] => 7 [PAYED] => N |