/** * Create a new payment for an order */ public function createPayment($gateway) { if (!GatewayInfo::isSupported($gateway)) { $this->error(_t("PaymentProcessor.InvalidGateway", "`{gateway}` isn't a valid payment gateway.", 'gateway is the name of the payment gateway', array('gateway' => $gateway))); return false; } if (!$this->order->canPay(Member::currentUser())) { $this->error(_t("PaymentProcessor.CantPay", "Order can't be paid for.")); return false; } $payment = Payment::create()->init($gateway, $this->order->TotalOutstanding(true), ShopConfig::get_base_currency()); $this->order->Payments()->add($payment); return $payment; }