,-----. |start| |-----| `-----' | | ,-------------------------------. |orphan_slayer_process_orphans()| |-------------------------------| `-------------------------------' | ,------------------------------------. |$orphan = OrphanSlayer::get_oldest()| |------------------------------------| `------------------------------------' | ,-. | | |-| `-' ,-------------------------. |$slayer->rectify($orphan)| |-------------------------| `-------------------------' ,--------------------------------. ,------------------------. |$adapter->rectifyOrphan($orphan)| |$slayer->cancel($orphan)| |--------------------------------| |------------------------| `--------------------------------' `------------------------' | | | | ,-. ,--------------------. | | | |Skip pending record.| | |-|--|--------------------| | `-' `--------------------' | | | ,-. | | | | |-| | `-' | | | ,------------------------------. | |$adapter->processDonorReturn()| | |------------------------------| | `------------------------------' | | ,----------------------------------------------. ,-------------------------. |$adapter->do_transaction('Confirm_CreditCard')| |$adapter->cancel($orphan)| |----------------------------------------------| |-------------------------| `----------------------------------------------' `-------------------------' ,----------------------------------------------. |$status = $this->getOrderStatusFromProcessor()| |----------------------------------------------| `----------------------------------------------' ,-----------------------------------------------. |$adapter->post_process_getHostedPaymentStatus()| |-----------------------------------------------| | `-----------------------------------------------' | | ,----------------------------------------. | |$adapter->post_process_get_orderstatus()| | |----------------------------------------| | `----------------------------------------' | | | ,-------------------------------. | |$adapter->runAntifraudFilters()| | |-------------------------------| | `-------------------------------' | | ,------------------------------------. | |$fraudFilter->sendAntifraudMessage()| | |------------------------------------| | `------------------------------------' | | ,---------------------------------. | |pushMessage('payments-antifraud')| | |---------------------------------| | `---------------------------------' | | | ,-. ,-. ,-----------------------------------. | | | | | |$adapter->cancelCreditCardPayment()| | |-|---|-|---|-----------------------------------| | `-' `-' `-----------------------------------' | | ,-------------------------------------. | |$adapter->finalizeCreditCardPayment()| | |-------------------------------------| | `-------------------------------------' | | | ,---------------------. ,--------------------------. | |Try again later. bug?| |$adapter->approvePayment()| | | |---------------------| |--------------------------| | | `---------------------' `--------------------------' | | | | ,----------------------------------. | | |$adapter->finalizeInternalStatus()| | | |----------------------------------| | | `----------------------------------' | | | | | ,----------------------------------. | | |$adapter->sendFinalStatusMessage()| | | | |----------------------------------| | | | `----------------------------------' | | | | | | | | | ,----------------------------. | | | |pushMessage('payments-init')| | | | |----------------------------| | | | `----------------------------' | | | | | | ,-------------------------------. | | | |$adapter->postProcessDonation()| | | |-------------------------------| `-------------------------------' ,------------------------. |pushMessage('donations')| |------------------------| `------------------------' ,----------------------------------------. |PendingDatabase::deleteMessage($orphan);| |----------------------------------------| `----------------------------------------'