- Dropped support for PHP 7.x
- Twig 1.x is no longer supported
Payum\Core\Action\GetCurrencyAction
does not accept any constructor arguments anymore and uses alcohol/iso4217 by default- Support for Propel storage has been removed
- The
Payum\Core\Bridge\Guzzle\HttpClient
andPayum\Core\Bridge\Guzzle\HttpClientFactory
classes have been removed - The signatures in
src/Payum/Core/Registry/GatewayRegistryInterface.php
has been changed to add strict types.- Any custom class implementing this interface should update their signature. The new signatures are:
public function getGateway(string $name): GatewayInterface;
public function getGateways(): array;
- Any custom class implementing this interface should update their signature. The new signatures are:
- Dropped PHP 5.x support
- Dropped Symfony 2.x support
- Dropped Omnipay v2 support, Added v3 though
- Updated league/uri from 4 to v5
- Updated phpunit
- [http-client] When you update to Payum 1.3.0 the installation will fail because you need to install a client implementation. If you choose php-http/guzzle6-adapter everything will work exactly as before.
- Api constructor's arguments are not optional any more.
- [gateway-factory] Option 'guzzle.client' was removed.
- [security] A new method
createPayoutToken
was added toGenericTokenFactoryInterface
interface. - [request] New methods
isPayedout
andmarkPayedout
were added toGetStatusInterface
request.
- [stripe] Stripe api version updated to 2.0 - 3.x. You'll have to update any custom actions that use the Stripe api directly.
- Php required version is 5.5
- [be2bill]
Api::getOnsiteUrl
method is renamed toApi::getOffsiteUrl
- [be2bill]
Api
methods are returing array instead of Response - [http-client] kriswallsmith/buzz http client was replaced with PSR7 compatible guzzlehttp/guzzle.
Libraries and extension dependencies are not required now. You must install them if you need. This make sense for:
- "Authorizenet.NET"
- "PayPal REST API"
- "Klarna Checkout"
- "Klarna Invoice"
- "Stripe"
- "Payex"
- [order] The method getCreditCard was added to
OrderInterface
interface. - [klarna-checkout]
CreateOrderAction
andUpdateOrderAction
do not do fetch any more. Payment
class deprecated and will be removed in 0.15. UseGateway
.PaymentInterface
interface deprecated and will be removed in 0.15. UseGatewayInterface
.PaymentFactoryInterface
interface deprecated and will be removed in 0.15. UseGatewayFactoryInterface
.PaymentFactory
class deprecated and will be removed in 0.15. UseGatewayFactory
.PaymentAwareInterface
interface deprecated and will be removed in 0.15. UseGatewayAwareInterface
.PaymentFactoryRegistryInterface
interface deprecated and will be removed in 0.15. UseGatewayFactoryRegistryInterface
.- Use
GatewayFactoryRegistryInterface::getGatewayFactory
method instead ofPaymentRegistryInterface::getPaymentFactory
. - Use
GatewayFactoryRegistryInterface::getGatewayFactories
method instead ofPaymentRegistryInterface::getPaymentFactories
. PaymentRegistryInterface
interface deprecated and will be removed in 0.15. UseGatewayRegistryInterface
.- Use
GatewayRegistryInterface::getGateway
method instead ofPaymentRegistryInterface::getPayment
. - Use
GatewayRegistryInterface::getGateways
method instead ofPaymentRegistryInterface::getPayments
. PaymentConfigInterface
interface deprecated and will be removed in 0.15. UseGatewayConfigInterface
.PaymentConfig
class deprecated and will be removed in 0.15. UseGatewayConfig
.PaymentConfig::getPaymentName
and related property renamed toGatewayConfig::getGatewayName
.Order
class deprecated and will be removed in 0.15. UsePayment
.OrderInterface
interface deprecated and will be removed in 0.15. UsePaymentInterface
.Payum\AuthorizeNet\Aim\PaymentFactory
renamed toAuthorizeNetAimGatewayFactory
.Payum\Core\Bridge\Symfony\Form\Type\PaymentConfigType
renamed toGatewayConfigType
.Payum\Core\Bridge\Symfony\Form\Type\PaymentFactoriesChoiceType
renamed toGatewayFactoriesChoiceType
.- [doctrine] PaymentConfig::paymentName property renamed to
gatewayName
. You have to migrate your database. - [doctrine] Token::paymentName property renamed to
gatewayName
. You have to migrate your database. - [doctrine] Order renamed to
Payment
. Database schema was changed. You have to migrate your database. - [doctrine] The
currencyDigitsAfterDecimalPoint
property removed from ORM\ODM schema. - [propel] PaymentConfig::paymentName property renamed to
gatewayName
. You have to migrate your database. - [propel] Token::paymentName property renamed to
gatewayName
. You have to migrate your database. - [propel] Order renamed to
Payment
. Database schema was changed. You have to migrate your database. - [propel] The
currencyDigitsAfterDecimalPoint
property removed from schema. - [be2bill] Method
Api::prepareOnsitePayment
was renamed toApi::prepareOffsitePayment
. - [action] Action
CaptureOrderAction
was renamed toCapturePaymentAction
. - [action] Actions
FillOrderDetailsAction
removed. UseConvertPaymentAction
ones instead. - [request] Request
FillOrderDetails
removed. UseConvert
one instead. - [model] The method
PaymentInterface::getCurrencyDigitsAfterDecimalPoint
was removed. UseGetCurrency::getIso4217
request method to get same info. - [storage]
StorageInterface::findBy
returned value is changed. It was a model or null now it is always an array. - [extension] The method
ExtensionInterface::onReply
was removed. UseExtensionInterface::onPostExecute
and check whether context contains reply or not. - [extension] The method
ExtensionInterface::onException
was removed. UseExtensionInterface::onPostExecute
and check whether context contains exception or not. - [extension] The method
ExtensionInterface::onPreExecute
signature was changed. Now it takes instance ofContext
. - [extension] The method
ExtensionInterface::onExecute
signature was changed. Now it takes instance ofContext
. - [extension] The method
ExtensionInterface::onPostExecute
signature was changed. Now it takes instance ofContext
.
- [registry]
PaymentRegistryInterface::getDefaultPaymentName
method was removed. - [registry]
PaymentRegistryInterface::getPayment
the argumentname
is always required. - [registry]
AbstractRegistry::__construct
third$defaultPayment
argument was removed. - [storage] A new method
StorageInterface::findBy
was added.
- [request]
markSuspended
method added toGetStatusInterface
interface. - [omnipay-bridge] Omnipay bridge is not shipped with
payum\payum
code any more. Install it separatly by requiringpayum/omnipay-bridge
package. - [paypal-pro] Remove
PaymentDetails
class. - [paypal-pro] Remove
Request
andResponse
classes. Use ones from Buzz. - [paypal-pro] Remove
trxtype
option from api. - [paypal-pro] Rename
Api::doPayment
toApi::doSale
. Change the first argument now it is array and the method returns array too. - [be2bill]
Api
constructor arguments order was changed. Second argumentoptions
is now first, and the client now is second and optional. - [paypal-ipn]
Api
constructor arguments order was changed. Second argumentoptions
is now first, and the client now is second and optional. - [paypal-pro]
Api
constructor arguments order was changed. Second argumentoptions
is now first, and the client now is second and optional. - [payment] Method
PaymentInterface::addApi
was removed from interface, still available inPayment
class. - [payment] Method
PaymentInterface::addAction
was removed from interface, still available inPayment
class. - [payment] Method
PaymentInterface::addExtension
was removed from interface, still available inPayment
class. - [storage] Method
StorageInterface::createModel
was renamed tocreate
. - [storage] Method
StorageInterface::supportModel
was renamed tosupport
. - [storage] Method
StorageInterface::updateModel
was renamed toupdate
. - [storage] Method
StorageInterface::deleteModel
was renamed todelete
. - [storage] Method
StorageInterface::findModelById
was renamed tofind
. - [storage] Method
StorageInterface::getIdentificator
was renamed toidentify
. - [storage] Method
StorageInterface::findByIdentificator
was removed. Usefind
method instead. - [storage] Class
Identificator
was deprecated. UseIdentity
instead. - [factory] Payment factories were changed significantly. Now they implements
PaymentFactoryInterface
and therefor have to accept only array of options as first argument. - [be2bill] Action
CaptureOnsiteAction
was renamed toCaptureOffsiteAction
. - [be2bill] Factory
OnsitePaymentFactory
was renamed toOffsitePaymentFactory
. - [be2bill] Factory
PaymentFactory
was renamed toDirectPaymentFactory
. - [stripe] Factory
PaymentFactory
was splitted into two:JsPaymentFactory
andCheckoutPaymentFactory
.
- [refund]
createRefundToken
was added toAbstractGenericTokenFactory
. - [request]
BaseModelAware
request was renamed toGeneric
. - [request]
SecuredInterface
allows to return a null ongetToken
method call. - [request]
SecuredAuthorize
request was removed. The removed logic is now inAuthorize
request, so use it. - [request]
SecuredNotify
request was removed. The removed logic is now inNotify
request, so use it. - [request]
SecuredCapture
request was removed. The removed logic is now inCapture
request, so use it. - [request]
Notify
request does not containsnotification
array any more. You have to execute$this->payment->execute($httpRequest = new GetHttpRequest);
. - [request]
GetHumanStatus::STATUS_SUCCESS
was removed. UseSTATUS_CAPTURED
from the same class. - [request]
GetHumanStatus::markSuccess
method was removed. UsemarkCaptured
from the same class. - [request]
GetHumanStatus::isSuccess
method was removed. UseisCaptured
from the same class. - [request]
GetBinaryStatus::STATUS_SUCCESS
was removed. UseSTATUS_CAPTURED
from the same class. - [request]
GetBinaryStatus::markSuccess
method was removed. UsemarkCaptured
from the same class. - [request]
GetBinaryStatus::isSuccess
method was removed. UseisCaptured
from the same class. - [request]
SecuredInterface
was moved toSecurity
namespace and renamed toTokenAggregateInterface
. - [request]
ModelAwareInterface
was moved toModel
namespace and split into two:ModelAwareInterface
andModelAggregateInterface
. - [bridge][symfony] Minimum required version is
2.3
. - [action]
ExecuteSameRequestWithModelDetailsAction
does sub execute even for empty details. - [offline]
Payum\Offline\Constains::STATUS_SUCCESS
was removed. UseSTATUS_CAPTURED
from the same class. - [klarna-checkout]
GlobalStateSafeConnector
was removed useConfig
instead. - [klarna-checkout]
CaptureAction
was renamed toAuthorizeAction
as it is what it really means. - [klarna-checkout] The previous
success
status now meansauthorized
.
- [payment] The injection of apis and payment to an action was moved to execute method. So there maybe a slight BC break if you depend on invalid exceptions thrown when api or payment not set correctly.
- [request] Postfix
Request
was removed. For exampleCaptureRequest
becomeCapture
. - [request]
SimpleStatusRequest
was renamed toGetHumanStatus
. - [request]
BinaryMaskStatusRequest
was renamed toGetBinaryStatus
. - [request] All interactive request were replaced by reply concept. Moved to Reply namespace and renamed. For example
Request\Http\RedirectUrlInteractiveRequest
becomeReply\HttpRedirect
. - [extension] The method
onInteractiveRequest
was renamed toonReply
. The first parameter has to be an instance ofReplyInterface
. - [security] Method
createAuthorizeToken
method was added toGenericTokenInterface
. - [security] New argument
authorizePath
was added toAbstractGenericTokenFactory
andGenericTokenFactory
. - [security][symfony] New argument
authorizePath
was added toTokenFactory
from Symfony's bridge.
- [request] Class
GetHttpQueryRequest
was removed useGetRequestRequest
instead. - [request] Class
PostRedirectUrlInteractiveRequest
was moved to sub namespaceHttp
. - [request] Class
RedirectUrlInteractiveRequest
was moved to sub namespaceHttp
. - [request] Class
ResponseInteractiveRequest
was moved to sub namespaceHttp
. - [doctrine][orm] The column name
array
was renamed todetails
in mapping xml forArrayObject
class. You have to take care of the migration in your app code. - [doctrine][mongodb] The field name
array
was renamed todetails
in mapping xml forArrayObject
class. You have to take care of the migration in your app code. - [paypal ec]
Api
constructor arguments order was changed. Second argumentoptions
is now first, and the client now is second and optional. - [paypal ec]
Api
methods which used FormRequest as argument now accept an array. - [paypal ec]
Api
methods which returned Response now return an array. - [paypal ec] Class
Payum\Paypal\ExpressCheckout\Nvp\Bridge\Buzz\Response
was removed. - [paypal ec] Class
Payum\Paypal\ExpressCheckout\Nvp\Exception\HttpResponseAckNotSuccessException
was removed.
- [model] Method
CreditCardInterface::getCardHolder
renamed togetHolder
- [model] Method
CreditCardInterface::setCardHolder
renamed tosetHolder
- [model]
CreditCardInterface
getters does not returnSensitiveValue
anymore. It is used only internally. - [model] Methods
getExpiryMonth
,setExpiryMonth
,getExpiryYear
,setExpiryYear
removed. UsesetExpiredAt
andgetExpiredAt
instead. - [be2bill]
PaymentFactory
does not provide support of onsite payments. UseOnsitePaymentFactory
instead. - [omnipay] Switch to Omnipay v2.x.
- [omnipay] Rename
CaptureAction
toOnsiteCaptureAction
. It would not support credit card payments. Use newCaptureAction
for such payments. - [request]
UserInputRequiredInteractiveRequest
request was removed. - [registry]
StorageRegistryInterface::getDefaultStorageName
method was removed. - [registry]
StorageRegistryInterface::getStorageForClass
renamed togetStorage
. Do not take second argument any more. - [registry]
StorageRegistryInterface::getStorages
does not take any arguments any more.
- [Security] Second argument of
GenericTokenFactory::createNotifyToken
is optional now.
- [Registry]
Registry::registerStorageExtensions
method was removed. the logic of the method is done internally.
- [Composer] All repositories were merged to
payum\payum
one. If you need only core change it topayum\core
- All classes they were previously in
Payum
namespace moved toPayum\Core
one. PaymentRegistryInterface::getPayments
method is added.PaymentInterface::addApi
method signature was changed. Now it takes second argumentforcePrepend
.- [Be2Bill][Doctrine]
Payum\Be2Bill\Bridge\Doctrine\Entity\PaymentDetails
is removed. - [Be2Bill][Model]
Payum\Be2Bill\Model\PaymentDetails
is removed. - [Payex][Doctrine]
Payum\Payex\Bridge\Doctrine\Entity\PaymentDetails
is removed. - [Payex][Doctrine]
Payum\Payex\Bridge\Doctrine\Entity\AgreementDetails
is removed. - [Payex][Model]
Payum\Payex\Model\PaymentDetails
is removed. - [Payex][Model]
Payum\Payex\Model\AgreementDetails
is removed. - [AuthorizeNet][Model]
Payum\AuthorizeNet\Aim\Model\PaymentDetails
is removed. - [Paypal ExpressCheckout][Model]
BaseModel
was removed. - [Paypal ExpressCheckout][Model]
Payum\Paypal\ExpressCheckout\Nvp\Model\PaymentDetails
was removed. - [Paypal ExpressCheckout][Model]
Payum\Paypal\ExpressCheckout\Nvp\Model\RecurringPaymentDetails
was removed. - [Paypal ExpressCheckout][Doctrine]
Payum\Paypal\ExpressCheckout\Nvp\Bridge\Doctrine\Entity\PaymentDetails
was removed. - [Paypal ExpressCheckout][Doctrine]
Payum\Paypal\ExpressCheckout\Nvp\Bridge\Doctrine\Entity\RecurringPaymentDetails
was removed. - [Paypal ExpressCheckout][Doctrine]
Payum\Paypal\ExpressCheckout\Nvp\Bridge\Doctrine\Document\PaymentDetails
was removed. - [Paypal ExpressCheckout][Doctrine]
Payum\Paypal\ExpressCheckout\Nvp\Bridge\Doctrine\Document\RecurringPaymentDetails
was removed.
- [Storage]
AbstractStorage::findModelByIdentificator
does more strict model class comparison now. Only same classes are allowed. Subclasses not allowed any more.
- [Doctrine]
TokenizedDetails
mapping schema was updated. details field is now acceptNULL
. - [Doctrine]
TokenizedDetails
entity was deprecated useToken
instead. - [Doctrine]
TokenizedDetails
mapping changed. The fieldtoken
was renamed tohash
. - [Model]
TokenizedDetails::token
property was removed usehash
one instead. - [Security]
Random
class was moved toPayum\Security
namespace. - [Security]
TokenizedDetails
model was deprecated useToken
instead. - [Security] The default token generated in
TokenizedDetails::__constructor
not includetime()
any more. - [Storage] The method
Storage::supportModel
accepts only model object. Support of model class was removed. - [Storage] The method
Storage::findModelByIdentificator
was added to storage interface. - [Request]
CaptureTokenizedDetailsRequest
was deprecated useSecuredCaptureRequest
instead. - [Request]
NotifyTokenizedDetailsRequest
was deprecated useSecuredNotifyRequest
instead.
- A method
getIdentificator
was added toStorageInterface
interface. StorageExtension
not using scalar as model id any more. UseIdentificator
object instead.- [Paypal ExpressCheckout][Doctrine]
PaymentDetails
mapping schema was updated. Two fields added:returnurl
,cancelurl
.
- Method
StatusInterface::markInProgress
renamed toStatusInterface::markPending
- Method
StatusInterface::isInProgress
renamed toStatusInterface::isPending
StatusInterface
introduce two new statuses:expired
andsuspended
.BinaryMaskStatusRequest::STATUS_IN_PROGRESS
renamed toBinaryMaskStatusRequest::STATUS_PENDING
PaymentInstructionAggregateInterface
class renamed toDetailsAggregateInterface
DetailsAggregateInterface
class moved toPayum\Model
namespaceDetailsAggregateInterface::getPaymentInstruction
renamed toDetailsAggregateInterface::getDetails
PaymentInstructionAwareInterface
class renamed toDetailsAwareInterface
DetailsAwareInterface
class moved toPayum\Model
namespaceDetailsAwareInterface::setPaymentInstruction
renamed toDetailsAwareInterface::setDetails
ActionApiAwareInterface
interface was deleted. Use combination ofActionInterface
andApiAwareInterface
instead.ActionPaymentAwareInterface
interface was deleted. Use combination ogActionInterface
andPaymentAwareInterface
instead.- Action
ActionPaymentAware
was renamed toPaymentAwareAction
. - Exception
HttpResponseStatusNotSuccessfulException
was removed. UseHttpException
instead. HttpException
constructor signature changed. Now it is like any other basic exception.- [Authorize.Net AIM]
PaymentInstruction
was renamed toPaymentDetails
and moved toModel
namespace. - [Be2Bill]
PaymentInstruction
model was renamed toPaymentDetails
and moved toModel
namespace. - [Be2Bill][Doctrine]
PaymentInstruction
entity was renamed toPaymentDetails
. - [Paypal ExpressCheckout]
PaymentInstruction
was renamed toPaymentDetails
and moved toModel
namespace. - [Paypal ExpressCheckout][Doctrine]
PaymentDetails
mapping schema was updated. Two fields added:l_billingtypennn
,l_billingagreementdescriptionnnn
- [Paypal ProCheckout]
PaymentInstruction
model was renamed toPaymentDetails
and moved toModel
namespace.
- The
Payment::execute
method signature changed. Now you have to explicitly set when to catch interactive requests or not. InteractiveRequest
renamed toBaseInteractiveRequest
.- A method
supportModel
was added toStorageInterface
. NullStorage
was removed.- [Authorize.Net AIM] Remove
fillRequest
method fromPaymentInstruction
. - [Authorize.Net AIM] Remove
updateFromResponse
method fromPaymentInstruction
. - [Authorize.Net AIM]
Payment
class was removed usePayum\Payment
instead. - [Be2Bill] Remove
toParams
andfromParams
fromPaymentInstruction
class. - [Be2Bill]
Payment
class was removed usePayum\Payment
instead. - [Paypal ExpressCheckout] Remove
toNvp
andfromNvp
fromPaymentInstruction
class. - [Paypal ExpressCheckout]
Payment
class was removed usePayum\Payment
instead.
ModelInterface
interface was removed.PaymentInstructionInterface
interface was removed.CreatePaymentInstructionRequest
class was removed.InstructionAwareInterface
moved toPayum
namespace.InstructionAwareInterface
renamed toPaymentInstructionAwareInterface
InstructionAwareInterface::setInstruction
renamed toPaymentInstructionAwareInterface::setPaymentInstruction
InstructionAggregateInterface
moved toPayum
namespace.InstructionAggregateInterface
renamed toPaymentInstructionAggregateInterface
InstructionAggregateInterface::getInstruction
renamed toPaymentInstructionAggregateInterface::getPaymentInstruction
SimpleSell
class was removed.- Remove Model prefix from
Storages
. - Change
Storages
namespace. It wasPayum\Domain\Storage\XXX
nowPayum\Storage\XXX
. - [Authorize.Net AIM]
CaptureAction
now supports onlyCaptureRequest
with thePaymentInstruction
in it. - [Authorize.Net AIM]
StatusAction
now supports onlyStatusAction
with thePaymentInstruction
in it. - [Be2Bill]
CaptureAction
now supports onlyCaptureRequest
with thePaymentInstruction
in it. - [Be2Bill]
StatusAction
now supports onlyStatusAction
with thePaymentInstruction
in it. - [Paypal ExpressCheckout]
SyncRequest
was moved to core lib.