spryker / app-payment
AppPayment module
Installs: 1 246
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 20
Forks: 0
Open Issues: 2
Requires
- php: >=8.1
- spryker/glue-application-extension: ^1.0.0
- spryker/kernel: ^3.30.0
- spryker/log: ^3.0.0
- spryker/message-broker: ^1.11.0
- spryker/symfony: ^3.0.0
- spryker/transfer: ^3.33.0
Requires (Dev)
- codeception/codeception: ^5.0
- codeception/module-asserts: ^3.0.0
- codeception/module-cli: ^2.0.0
- codeception/module-filesystem: ^3.0.0
- codeception/module-phpbrowser: ^3.0.0
- codeception/module-rest: ^3.0.0
- codeception/module-webdriver: ^3.0.0
- codeception/phpunit-wrapper: ^9.0.0
- galbar/jsonpath: ^3.0
- infection/codeception-adapter: ^0.4.3
- infection/infection: ^0.29.6
- phpstan/phpdoc-parser: 1.25.0
- phpstan/phpstan: 1.10.66
- rector/rector: ^0.19.0
- spryker-sdk/async-api: dev-master as 0.3.1
- spryker/app-kernel: ^1.0.0
- spryker/app-webhook: ^1.0.0
- spryker/code-sniffer: *
- spryker/container: *
- spryker/development: ^3.34.0
- spryker/event-dispatcher: ^1.6
- spryker/glue-backend-api-application: *
- spryker/glue-json-api-convention: ^1.3
- spryker/http: ^1.11
- spryker/message-broker-aws: *
- spryker/propel: *
- spryker/router: ^1.19
- spryker/testify: *
- spryker/testify-async-api: *
- spryker/translator: ^1.13
- dev-master / 2.0.x-dev
- 2.0.0
- 1.1.1
- 1.1.0
- 1.0.0
- dev-feature/acp-2930/master-stripe-app-disconnection-criteria
- dev-feature/acp-3507-investigate-how-the-apis-to-enable-projects-embed-payment-elements-to-yves-or-in-headless-scenario-should-be-built
- dev-feature/acp-3507/acp-3636-add-update-documentations
- dev-feature/acp-2626-docs
This package is auto-updated.
Last update: 2024-09-19 08:20:29 UTC
README
Provides SyncAPI and AsyncAPI schema files and the needed code to be used in a Payment Service Provider App.
Installation
composer require spryker/app-payment
Configure
App Identifier
config/Shared/config_default.php
use Spryker\Shared\AppPayment\AppConstants;
$config[AppConstants::APP_IDENTIFIER] = getenv('APP_IDENTIFIER') ?: 'hello-world';
Testing the AppPayment
You can test the AppPayment as usual with Codeception. Before that you need to run some commands:
composer setup
With these commands you've set up the AppPayment and can start the tests
vendor/bin/codecept build
vendor/bin/codecept run
Plugins
The following plugins can be used inside your Payment Service Provider App.
GlueApplication
\Spryker\Glue\AppPaymentBackendApi\Plugin\GlueApplication\AppPaymentBackendApiRouteProviderPlugin
This plugin provides the routes for the AppPaymentBackendApi module.
Routes provided
- /private/initialize-payment - Used from the Tenant side to initialize a payment.
AppKernel
- \Spryker\Glue\AppPaymentBackendApi\Plugin\AppKernel\PaymentConfigurationValidatorPlugin
- \Spryker\Zed\AppPayment\Communication\Plugin\AppKernel\DeleteTenantPaymentsConfigurationAfterDeletePlugin
- \Spryker\Zed\AppPayment\Communication\Plugin\AppKernel\SendAddPaymentMethodMessageConfigurationAfterSavePlugin
- \Spryker\Zed\AppPayment\Communication\Plugin\AppKernel\SendDeletePaymentMethodMessageConfigurationAfterDeletePlugin
AppWebhook
- \Spryker\Zed\AppPayment\Communication\Plugin\AppWebhook\PaymentWebhookHandlerPlugin
MessageBroker
- \Spryker\Zed\AppPayment\Communication\Plugin\MessageBroker\CancelPaymentMessageHandlerPlugin
- \Spryker\Zed\AppPayment\Communication\Plugin\MessageBroker\CapturePaymentMessageHandlerPlugin
- \Spryker\Zed\AppPayment\Communication\Plugin\MessageBroker\RefundPaymentMessageHandlerPlugin
MessageBrokerAws
- \Spryker\Zed\AppPayment\Communication\Plugin\MessageBrokerAws\ConsumerIdHttpChannelMessageReceiverRequestExpanderPlugin
Configure the MessageBroker
Add this to your project configuration:
$config[MessageBrokerConstants::MESSAGE_TO_CHANNEL_MAP] =
$config[MessageBrokerAwsConstants::MESSAGE_TO_CHANNEL_MAP] = [
PaymentAuthorizedTransfer::class => 'payment-events',
PaymentAuthorizationFailedTransfer::class => 'payment-events',
PaymentCapturedTransfer::class => 'payment-events',
PaymentCaptureFailedTransfer::class => 'payment-events',
PaymentRefundedTransfer::class => 'payment-events',
PaymentRefundFailedTransfer::class => 'payment-events',
PaymentCanceledTransfer::class => 'payment-events',
PaymentCancellationFailedTransfer::class => 'payment-events',
CancelPaymentTransfer::class => 'payment-commands',
CapturePaymentTransfer::class => 'payment-commands',
RefundPaymentTransfer::class => 'payment-commands',
AddPaymentMethodTransfer::class => 'payment-method-commands',
DeletePaymentMethodTransfer::class => 'payment-method-commands',
PaymentCreatedTransfer::class => 'payment-events',
// App event
AppConfigUpdatedTransfer::class => 'app-events',
];
$config[MessageBrokerConstants::CHANNEL_TO_TRANSPORT_MAP] = [
'app-events' => MessageBrokerAwsConfig::HTTP_TRANSPORT,
'payment-events' => MessageBrokerAwsConfig::HTTP_TRANSPORT,
'payment-method-commands' => MessageBrokerAwsConfig::HTTP_TRANSPORT,
'payment-commands' => MessageBrokerAwsConfig::SQS_TRANSPORT,
];
$config[MessageBrokerAwsConstants::CHANNEL_TO_SENDER_TRANSPORT_MAP] = [
'app-events' => MessageBrokerAwsConfig::HTTP_TRANSPORT,
'payment-events' => MessageBrokerAwsConfig::HTTP_TRANSPORT,
'payment-method-commands' => MessageBrokerAwsConfig::HTTP_TRANSPORT,
];
$config[MessageBrokerAwsConstants::CHANNEL_TO_RECEIVER_TRANSPORT_MAP] = [
'payment-commands' => MessageBrokerAwsConfig::SQS_TRANSPORT,
];