2017-01-30 21:40:43 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Models;
|
2015-03-17 07:45:25 +10:00
|
|
|
|
2015-03-25 21:56:31 +02:00
|
|
|
use Eloquent;
|
|
|
|
|
|
2016-07-03 18:11:58 +02:00
|
|
|
/**
|
2017-01-30 21:40:43 +02:00
|
|
|
* Class PaymentType.
|
2016-07-03 18:11:58 +02:00
|
|
|
*/
|
2015-03-17 07:45:25 +10:00
|
|
|
class PaymentType extends Eloquent
|
|
|
|
|
{
|
2016-07-03 18:11:58 +02:00
|
|
|
/**
|
|
|
|
|
* @var bool
|
|
|
|
|
*/
|
2015-03-17 07:45:25 +10:00
|
|
|
public $timestamps = false;
|
2016-09-15 13:41:09 +03:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
|
|
|
|
*/
|
|
|
|
|
public function gatewayType()
|
|
|
|
|
{
|
|
|
|
|
return $this->belongsTo('App\Models\GatewayType');
|
|
|
|
|
}
|
2017-08-31 15:55:15 +03:00
|
|
|
|
2017-08-31 18:56:58 +03:00
|
|
|
public static function parseCardType($cardName)
|
2017-08-31 15:55:15 +03:00
|
|
|
{
|
|
|
|
|
$cardTypes = [
|
|
|
|
|
'visa' => PAYMENT_TYPE_VISA,
|
|
|
|
|
'americanexpress' => PAYMENT_TYPE_AMERICAN_EXPRESS,
|
|
|
|
|
'amex' => PAYMENT_TYPE_AMERICAN_EXPRESS,
|
|
|
|
|
'mastercard' => PAYMENT_TYPE_MASTERCARD,
|
|
|
|
|
'discover' => PAYMENT_TYPE_DISCOVER,
|
|
|
|
|
'jcb' => PAYMENT_TYPE_JCB,
|
|
|
|
|
'dinersclub' => PAYMENT_TYPE_DINERS,
|
|
|
|
|
'carteblanche' => PAYMENT_TYPE_CARTE_BLANCHE,
|
|
|
|
|
'chinaunionpay' => PAYMENT_TYPE_UNIONPAY,
|
|
|
|
|
'unionpay' => PAYMENT_TYPE_UNIONPAY,
|
|
|
|
|
'laser' => PAYMENT_TYPE_LASER,
|
|
|
|
|
'maestro' => PAYMENT_TYPE_MAESTRO,
|
|
|
|
|
'solo' => PAYMENT_TYPE_SOLO,
|
|
|
|
|
'switch' => PAYMENT_TYPE_SWITCH,
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
$cardName = strtolower(str_replace([' ', '-', '_'], '', $cardName));
|
|
|
|
|
|
|
|
|
|
if (empty($cardTypes[$cardName]) && 1 == preg_match('/^('.implode('|', array_keys($cardTypes)).')/', $cardName, $matches)) {
|
|
|
|
|
// Some gateways return extra stuff after the card name
|
|
|
|
|
$cardName = $matches[1];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (! empty($cardTypes[$cardName])) {
|
|
|
|
|
return $cardTypes[$cardName];
|
|
|
|
|
} else {
|
|
|
|
|
return PAYMENT_TYPE_CREDIT_CARD_OTHER;
|
|
|
|
|
}
|
|
|
|
|
}
|
2015-03-17 07:45:25 +10:00
|
|
|
}
|