provider.'.png'; } /** * @param $gatewayId * * @return bool */ public function isGateway($gatewayId) { return $this->id == $gatewayId; } /** * @param $type * * @return string */ public static function getPaymentTypeName($type) { return Utils::toCamelCase(strtolower(str_replace('PAYMENT_TYPE_', '', $type))); } /** * @param $gatewayIds * * @return int */ public static function hasStandardGateway($gatewayIds) { $diff = array_diff($gatewayIds, static::$alternate); return count($diff); } /** * @param $query * @param $accountGatewaysIds */ public function scopePrimary($query, $accountGatewaysIds) { $query->where('payment_library_id', '=', 1) ->where('id', '!=', GATEWAY_WEPAY) ->whereIn('id', static::$preferred) ->whereIn('id', $accountGatewaysIds); } /** * @param $query * @param $accountGatewaysIds */ public function scopeSecondary($query, $accountGatewaysIds) { $query->where('payment_library_id', '=', 1) ->where('id', '!=', GATEWAY_WEPAY) ->whereNotIn('id', static::$preferred) ->whereIn('id', $accountGatewaysIds); } /** * @return string|\Symfony\Component\Translation\TranslatorInterface */ public function getHelp() { $link = ''; if ($this->id == GATEWAY_AUTHORIZE_NET) { $link = 'http://reseller.authorize.net/application/?id=5560364'; } elseif ($this->id == GATEWAY_PAYPAL_EXPRESS) { $link = 'https://www.paypal.com/us/cgi-bin/webscr?cmd=_login-api-run'; } elseif ($this->id == GATEWAY_TWO_CHECKOUT) { $link = 'https://www.2checkout.com/referral?r=2c37ac2298'; } elseif ($this->id == GATEWAY_BITPAY) { $link = 'https://bitpay.com/dashboard/signup'; } elseif ($this->id == GATEWAY_DWOLLA) { $link = 'https://www.dwolla.com/register'; } elseif ($this->id == GATEWAY_SAGE_PAY_DIRECT || $this->id == GATEWAY_SAGE_PAY_SERVER) { $link = 'https://applications.sagepay.com/apply/2C02C252-0F8A-1B84-E10D-CF933EFCAA99'; } elseif ($this->id == GATEWAY_STRIPE) { $link = 'https://dashboard.stripe.com/account/apikeys'; } $key = 'texts.gateway_help_'.$this->id; $str = trans($key, [ 'link' => "Click here", 'complete_link' => url('/complete'), ]); return $key != $str ? $str : ''; } /** * @return mixed */ public function getFields() { if ($this->isCustom()) { return [ 'name' => '', 'text' => '', ]; } else { return Omnipay::create($this->provider)->getDefaultParameters(); } } public function isCustom() { return $this->id === GATEWAY_CUSTOM; } }