Version: current

# Class PaymentMethod

Класс Способ оплаты Хранит информацию о способе оплаты, параметры подключения

  Object
  ViewableData implements IteratorAggregate
  DataObject implements DataObjectInterface, i18nEntityProvider
  PaymentMethod

### Direct known subclasses

`ChequePayment`, `CustomPayment`, `PayPalPayment`, `SberbankPayment`, `UnitellerPayment`, `YaMoneyPayment`

Author: menedem
Located at cart_payment/code/PaymentMethod.php

## Methods summary

`public` | # `getDefaultPaymentObject( )`
`public` | # `setDefaultPaymentObject( mixed $obj )`
`public static` | # `method_is_disabled( mixed $name )`
`public static` | # `set_disabled_methods( mixed $val )`
`public static` | # `disable_method( mixed $name )`
`public static` | # `enable_method( mixed $name )`
`public static` | # `get_disabled_methods( )`
`public` | # `getPaymentHandler( )`
`public` | # `populateDefaults( )` Load the default values in from the self::$defaults array. Will traverse the defaults of the current class and all its parent classes. Called by the constructor when creating new records. Load the default values in from the self::$defaults array. Will traverse the defaults of the current class and all its parent classes. Called by the constructor when creating new records. #### Uses ``DataObjectDecorator::populateDefaults()`` #### Overrides `DataObject::populateDefaults`
`public array|string` | # `fieldLabels( boolean $includerelations = true )` Get any user defined searchable fields labels that exist. Allows overriding of default field names in the form interface actually presented to the user. Get any user defined searchable fields labels that exist. Allows overriding of default field names in the form interface actually presented to the user. The reason for keeping this separate from searchable_fields, which would be a logical place for this functionality, is to avoid bloating and complicating the configuration array. Currently much of this system is based on sensible defaults, and this property would generally only be set in the case of more complex relationships between data object being required in the search interface. Generates labels based on name of the field itself, if no static property `DataObject::$field_labels` exists. #### Parameters $includerelations boolean $includerelations a boolean value to indicate if the labels returned include relation fields #### Returns `array|string` Array of all element labels if no argument given, otherwise the label of the field #### Uses `mixed` ``FormField::name_to_label()`` #### Overrides `DataObject::fieldLabels`
`public` | # `PaymentTypeName( )`
`public` | # `CanCreate( mixed $member = null )`
`public `FieldSet`` | # `getCMSFields( )` Centerpiece of every data administration interface in Silverstripe, which returns a `FieldSet` suitable for a `Form` object. If not overloaded, we're using `DataObject::scaffoldFormFields()` to automatically generate this set. To customize, overload this method in a subclass or decorate onto it by using DataObjectDecorator->updateCMSFields(). Centerpiece of every data administration interface in Silverstripe, which returns a `FieldSet` suitable for a `Form` object. If not overloaded, we're using `DataObject::scaffoldFormFields()` to automatically generate this set. To customize, overload this method in a subclass or decorate onto it by using DataObjectDecorator->updateCMSFields().
    klass MyCustomClass extends DataObject {
            static $db = array('CustomProperty'=>'Boolean');

            public function getCMSFields() {
                    $fields = parent::getCMSFields();
                    $fields->addFieldToTab('Root.Content',new CheckboxField('CustomProperty'));
            return $fields;
    }
    }
#### Returns ``FieldSet`` Returns a TabSet for usage within the CMS - don't use for frontend forms. #### See Good example of complex FormField building: SiteTree::getCMSFields() #### Overrides `DataObject::getCMSFields`
`public` | # `paymentLink( mixed $paymentID )`
`public` | # `getClearPaymentLink( )`
`public` | # `PaymentIcon( )`
`public` | # `ListTitle( )`
`public static array` | # `get_supported_methods( )` Получение поддерживаемых способов оплаты Получение поддерживаемых способов оплаты #### Returns `array` array
`public static` | # `set_supported_methods( array $methodMap )` Задание поддерживаемых способов оплаты (для использования в _config.php) Задание поддерживаемых способов оплаты (для использования в _config.php) #### Parameters $methodMap array $methodMap
`public static` | # `add_supported_method( string $method )` Добавление поддерживаемого способа оплаты (для использования в _config.php) Добавление поддерживаемого способа оплаты (для использования в _config.php) #### Parameters $method string $method
`public static` | # `remove_supported_method( string $method )` Удаление поддерживаемого способа оплаты (для использования в _config.php) Удаление поддерживаемого способа оплаты (для использования в _config.php) #### Parameters $method string $method
`public static `DataObjectSet`` | # `getPaymentMethods( )` Возврат всех поддерживаемых способов оплаты (объектов) Возврат всех поддерживаемых способов оплаты (объектов) #### Returns ``DataObjectSet`` DataObjectSet
`public <type>` | # `createPayment( <type> $order, <type> $paymentClass = 'Payment' )` Create a new payment for an order Create a new payment for an order #### Parameters $order <type> $order $paymentClass <type> $paymentClass #### Returns `<type>` <type>
`public string` | # `makePayment( mixed $order, mixed $paymentClass = 'Payment' )` Создает платеж и выполняет действия с ним (основная ф-ия, запускается на последнем шаге офорления заказа. Способы оплаты (занесенные в БД) выводятся в форме, пользователь выбирает нужный, берем его экземпляр и для него создаем платежи) Создает платеж и выполняет действия с ним (основная ф-ия, запускается на последнем шаге офорления заказа. Способы оплаты (занесенные в БД) выводятся в форме, пользователь выбирает нужный, берем его экземпляр и для него создаем платежи) #### Returns `string` - HTML для вставки на страницу (может быть просто сообщение, ссылка или форма для оплаты по картам)
`public` | # `getForm( )`
`public` | # `processPayment( mixed $order )`

### Methods inherited from DataObject

`Aggregate()`, `RelationshipAggregate()`, `__construct()`, `baseTable()`, `belongs_to()`, `buildDataObjectSet()`, `buildSQL()`, `can()`, `canCreate()`, `canDelete()`, `canEdit()`, `canView()`, `castedUpdate()`, `composite_fields()`, `context_obj()`, `customDatabaseFields()`, `custom_database_fields()`, `data()`, `databaseFields()`, `databaseIndexes()`, `database_extensions()`, `database_fields()`, `db()`, `dbObject()`, `debug()`, `defaultSearchFilters()`, `defineMethods()`, `delete()`, `delete_by_id()`, `destroy()`, `disableCMSFieldsExtensions()`, `disable_subclass_access()`, `duplicate()`, `enableCMSFieldsExtensions()`, `enable_subclass_access()`, `exists()`, `extendedSQL()`, `fieldLabel()`, `flushCache()`, `flush_and_destroy_cache()`, `forceChange()`, `get()`, `getAllFields()`, `getCMSActions()`, `getChangedFields()`, `getClassAncestry()`, `getComponent()`, `getComponents()`, `getComponentsQuery()`, `getDefaultSearchContext()`, `getField()`, `getFrontEndFields()`, `getManyManyComponents()`, `getManyManyComponentsQuery()`, `getManyManyFilter()`, `getManyManyJoin()`, `getRemoteJoinField()`, `getReverseAssociation()`, `getTitle()`, `get_by_id()`, `get_one()`, `get_validation_enabled()`, `hasDatabaseField()`, `hasField()`, `hasOwnTableDatabaseField()`, `hasValue()`, `has_many()`, `has_one()`, `has_own_table()`, `i18n_plural_name()`, `i18n_singular_name()`, `inheritedDatabaseFields()`, `instance_get()`, `instance_get_one()`, `isChanged()`, `isEmpty()`, `isInDB()`, `is_composite_field()`, `many_many()`, `many_many_extraFields()`, `merge()`, `newClassInstance()`, `onAfterDelete()`, `onAfterWrite()`, `onBeforeDelete()`, `onBeforeWrite()`, `plural_name()`, `provideI18nEntities()`, `relObject()`, `requireDefaultRecords()`, `requireTable()`, `reset()`, `scaffoldFormFields()`, `scaffoldSearchFields()`, `searchableFields()`, `setCastedField()`, `setClassName()`, `setComponent()`, `setField()`, `set_context_obj()`, `set_validation_enabled()`, `singular_name()`, `summaryFields()`, `toMap()`, `update()`, `validate()`, `write()`, `writeComponents()`, `writeWithoutVersion()`

### Methods inherited from ViewableData

`ATT_val()`, `BaseHref()`, `CSSClasses()`, `ColumnBreak()`, `ColumnCalc()`, `ColumnNumber()`, `ColumnPad()`, `ColumnPos()`, `CurrentMember()`, `CurrentPage()`, `Debug()`, `Even()`, `EvenOdd()`, `First()`, `FirstLast()`, `HasPerm()`, `IsAjax()`, `JS_val()`, `Last()`, `Me()`, `Middle()`, `MiddleString()`, `Modulus()`, `MultipleOf()`, `Odd()`, `Pos()`, `RAW_val()`, `SQL_val()`, `ThemeDir()`, `ThemeName()`, `Top()`, `TotalItems()`, `XML_val()`, `__get()`, `__isset()`, `__set()`, `buildCastingCache()`, `cachedCall()`, `castingClass()`, `castingHelper()`, `castingHelperPair()`, `castingObjectCreator()`, `castingObjectCreatorPair()`, `customise()`, `escapeTypeForField()`, `getIterator()`, `getSecurityID()`, `getXMLValues()`, `i18nLocale()`, `iteratorProperties()`, `obj()`, `renderWith()`, `setCustomisedObj()`

### Methods inherited from Object

`__call()`, `__toString()`, `__wakeup()`, `addMethodsFrom()`, `addStaticVars()`, `addWrapperMethod()`, `add_extension()`, `add_static_var()`, `allMethodNames()`, `cacheToFile()`, `cacheToFileWithArgs()`, `clearCache()`, `combined_static()`, `create()`, `createMethod()`, `create_from_string()`, `extInstance()`, `extend()`, `getCustomClass()`, `getExtensionInstance()`, `getExtensionInstances()`, `get_extensions()`, `get_static()`, `hasExtension()`, `hasMethod()`, `has_extension()`, `invokeWithExtensions()`, `is_a()`, `loadCache()`, `parentClass()`, `parse_class_spec()`, `remove_extension()`, `sanitiseCachename()`, `saveCache()`, `set_stat()`, `set_static()`, `set_uninherited()`, `stat()`, `strong_create()`, `uninherited()`, `uninherited_static()`, `useCustomClass()`

### Magic methods summary

## Properties summary

`public static array` | $db | # Database field definitions. This is a map from field names to field type. The field type should be a class that extends . Database field definitions. This is a map from field names to field type. The field type should be a class that extends .
`public static array` | $has_one | # One-to-zero relationship defintion. This is a map of component name to data type. In order to turn this into a true one-to-one relationship you can add a `DataObject::$belongs_to` relationship on the child class. One-to-zero relationship defintion. This is a map of component name to data type. In order to turn this into a true one-to-one relationship you can add a `DataObject::$belongs_to` relationship on the child class. Note that you cannot have a has_one and belongs_to relationship with the same name.
`public static array` | $has_many | # This defines a one-to-many relationship. It is a map of component name to the remote data class. This defines a one-to-many relationship. It is a map of component name to the remote data class. This relationship type does not actually create a data structure itself - you need to define a matching $has_one relationship on the child class. Also, if the $has_one relationship on the child class has multiple links to this class you can use the syntax "ClassName.HasOneRelationshipName" in the remote data class definition to show which foreign key to use.
`public static string` | $default_sort | # The default sort expression. This will be inserted in the ORDER BY clause of a SQL query if no other sort expression is provided. The default sort expression. This will be inserted in the ORDER BY clause of a SQL query if no other sort expression is provided.
`public static array` | $paymentMethodIcons | #
`public static array` | $disabled_methods | #
`public static array` | $summary_fields | # Provides a default list of fields to be used by a 'summary' view of this object. Provides a default list of fields to be used by a 'summary' view of this object.
`public static array` | $searchable_fields | # Default list of fields that can be scaffolded by the ModelAdmin search interface. Default list of fields that can be scaffolded by the ModelAdmin search interface. Overriding the default filter, with a custom defined filter:
           static $searchable_fields = array(
              "Name" => "PartialMatchFilter"
    );
Overriding the default form fields, with a custom defined field. The 'filter' parameter will be generated from `DBField::$default_search_filter_class`. The 'title' parameter will be generated from DataObject->fieldLabels().
           static $searchable_fields = array(
              "Name" => array(
                           "field" => "TextField"
                   )
    );
Overriding the default form field, filter and title:
           static $searchable_fields = array(
              "Organisation.ZipCode" => array(
                           "field" => "TextField",
                           "filter" => "PartialMatchFilter",
                           "title" => 'Organisation ZIP'
                   )
    );
`public static array` | $casting | # Use a casting object for a field. This is a map from field name to class name of the casting object. Use a casting object for a field. This is a map from field name to class name of the casting object.
`protected mixed` | $error | #
`protected static array` | $supported_methods | #

### Properties inherited from DataObject

`$allowed_actions`, `$ancestry`, `$api_access`, `$belongs_many_many`, `$belongs_to`, `$brokenOnDelete`, `$brokenOnWrite`, `$cache_get_one`, `$cache_has_own_table`, `$cache_has_own_table_field`, `$componentCache`, `$components`, `$create_table_options`, `$default_records`, `$defaults`, `$destroyed`, `$field_labels`, `$indexes`, `$many_many`, `$many_many_extraFields`, `$original`, `$plural_name`, `$record`, `$singular_name`

### Properties inherited from ViewableData

`$customisedObject`, `$default_cast`, `$failover`, `$iteratorPos`, `$iteratorTotalItems`

### Properties inherited from Object

`$class`, `$extension_instances`, `$extensions`

[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -