public final function applyCharge(PhortunePaymentMethod $payment_method, PhortuneCharge $charge) { $charge->setStatus(PhortuneCharge::STATUS_CHARGING); $charge->save(); $this->executeCharge($payment_method, $charge); $charge->setStatus(PhortuneCharge::STATUS_CHARGED); $charge->save(); }
public function didFailRefund(PhortuneCharge $charge, PhortuneCharge $refund) { $refund->setStatus(PhortuneCharge::STATUS_FAILED); $this->openTransaction(); $this->beginReadLocking(); $copy = clone $charge; $copy->reload(); if ($charge->getRefundingPHID() !== $refund->getPHID()) { throw new Exception(pht('Charge is in the wrong refunding state!')); } $charge->setRefundingPHID(null); $charge->save(); $refund->save(); $this->endReadLocking(); $this->saveTransaction(); }