/** * Create a new Payment * * @param Payment $provider * @param $amount * @return Object\CoreShopPayment * @throws \Exception */ public function createPayment(Payment $provider, $amount) { $payment = new Object\CoreShopPayment(); $payment->setKey(uniqid()); $payment->setPublished(true); $payment->setParent(Object\Service::createFolderByPath($this->getFullPath() . "/payments/")); $payment->setAmount($amount); $payment->setTransactionIdentifier(uniqid()); $payment->setProvider($provider->getIdentifier()); $payment->save(); $this->addPayment($payment); return $payment; }
/** * Return Payment by transaction identifier * * @param $transactionIdentification * @return bool */ public static function findByTransactionIdentifier($transactionIdentification) { $list = Object\CoreShopPayment::getByTransactionIdentifier($transactionIdentification); $users = $list->getObjects(); if (count($users) > 0) { return $users[0]; } return false; }
protected function paymentSuccess(CoreShopPayment $payment) { $paymentSuccessHandled = false; $result = \CoreShop\Plugin::getEventManager()->trigger('payment.success', $this, array("payment" => $payment, "language" => $this->language), function ($v) { return is_bool($v); }); if ($result->stopped()) { $paymentSuccessHandled = $result->last(); } if (!$paymentSuccessHandled) { $order = $payment->getOrder(); if ($order instanceof CoreShopOrder) { $stateAccepted = CoreShopOrderState::getByPath("/coreshop/order-states/01-order-accepted"); //TODO: Make Order State per Type Configurable $stateAccepted->processStep($order); $statePaied = CoreShopOrderState::getByPath("/coreshop/order-states/02-payment-received"); //TODO: Make Order State per Type Configurable $statePaied->processStep($order); } } }