PHP не регистрирует успех в БД - PullRequest
0 голосов
/ 21 января 2019

Я использую Magento 2.2, у которого есть задание cron для обработки успешного заказа на другом сервере, на котором я отправляю запрос POST на второй сервер и должен получить обратно {"orderId":"1234","isSuccess":true}.Главный сервер помечает указанный порядок в БД во вновь созданном столбце (sent) как true.

Однако это не так.Иногда получение успешного ответа не помечает мою БД.Иногда это так.Мое состояние после получения ответа таково:

        if ($this->verifySendSuccess($response, $order)) {
             $orderCollectionFactory = $this->orderCollectionFactory->create();
             $connection = $orderCollectionFactory->getConnection();
             $connection->update(
                 $orderCollectionFactory->getMainTable(),
                 [self::ORDER_SENT_COL => true],
                 [self::ORDER_INCREMENT_ID_COL . ' = ?' => $order->getIncrementId()]
             );
         }

......
    private function verifySendSuccess($response, \Magento\Sales\Model\Order $order)
    {
        $orderValid = isset($response['orderId']) && $response['orderId'] == $order->getIncrementId();
        return $orderValid && isset($response['isSuccess']);
    }

FYI - БД будет печататься в БД независимо от того, какое значение isSuccess возвращается как.

...