示例#1
0
 /**
  * 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);
         }
     }
 }