Skip to content

Commit

Permalink
MOL-1250: Add TWINT payment method
Browse files Browse the repository at this point in the history
  • Loading branch information
boxblinkracer committed Sep 25, 2023
1 parent 72c3e1b commit bfe6ab3
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 8 deletions.
32 changes: 32 additions & 0 deletions src/Handler/Method/TwintPayment.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?php

namespace Kiener\MolliePayments\Handler\Method;

use Kiener\MolliePayments\Handler\PaymentHandler;
use Mollie\Api\Types\PaymentMethod;
use Shopware\Core\Checkout\Customer\CustomerEntity;
use Shopware\Core\Checkout\Order\OrderEntity;
use Shopware\Core\System\Locale\LocaleEntity;
use Shopware\Core\System\SalesChannel\SalesChannelContext;

class TwintPayment extends PaymentHandler
{
public const PAYMENT_METHOD_NAME = 'twint';
public const PAYMENT_METHOD_DESCRIPTION = 'TWINT';

/** @var string */
protected $paymentMethod = self::PAYMENT_METHOD_NAME;


/**
* @param array<mixed> $orderData
* @param OrderEntity $orderEntity
* @param SalesChannelContext $salesChannelContext
* @param CustomerEntity $customer
* @return array<mixed>
*/
public function processPaymentMethodSpecificParameters(array $orderData, OrderEntity $orderEntity, SalesChannelContext $salesChannelContext, CustomerEntity $customer): array
{
return $orderData;
}
}
7 changes: 7 additions & 0 deletions src/Resources/config/services/handlers.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,13 @@
<tag name="shopware.payment.method.async"/>
</service>

<!-- TWINT PaymentHandler -->
<service id="Kiener\MolliePayments\Handler\Method\TwintPayment" class="Kiener\MolliePayments\Handler\Method\TwintPayment">
<argument type="service" id="mollie_payments.logger"/>
<argument type="service" id="service_container"/>
<tag name="shopware.payment.method.async"/>
</service>

<!-- Sofort PaymentHandler -->
<service id="Kiener\MolliePayments\Handler\Method\SofortPayment" class="Kiener\MolliePayments\Handler\Method\SofortPayment">
<argument type="service" id="mollie_payments.logger"/>
Expand Down
21 changes: 13 additions & 8 deletions src/Service/PaymentMethodService.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
use Kiener\MolliePayments\Handler\Method\PosPayment;
use Kiener\MolliePayments\Handler\Method\Przelewy24Payment;
use Kiener\MolliePayments\Handler\Method\SofortPayment;
use Kiener\MolliePayments\Handler\Method\TwintPayment;
use Kiener\MolliePayments\Handler\Method\VoucherPayment;
use Kiener\MolliePayments\MolliePayments;
use Kiener\MolliePayments\Repository\Media\MediaRepository;
Expand All @@ -44,23 +45,29 @@

class PaymentMethodService
{
/** @var MediaService */
/**
* @var MediaService
*/
private $mediaService;

/**
* @var PaymentMethodRepositoryInterface
*/
private $paymentRepository;

/** @var PluginIdProvider */
/**
* @var PluginIdProvider
*/
private $pluginIdProvider;

/**
* @var MediaRepositoryInterface
*/
private $mediaRepository;

/** @var HttpClientInterface */
/**
* @var HttpClientInterface
*/
private $httpClient;


Expand Down Expand Up @@ -267,11 +274,8 @@ public function disablePaymentMethod(string $handlerName, Context $context): voi
*
* @return EntityWrittenContainerEvent
*/
public function setPaymentMethodActivated(
string $paymentMethodId,
bool $active,
Context $context
): EntityWrittenContainerEvent {
public function setPaymentMethodActivated(string $paymentMethodId, bool $active, Context $context): EntityWrittenContainerEvent
{
return $this->paymentRepository->upsert(
[
[
Expand Down Expand Up @@ -385,6 +389,7 @@ public function getPaymentHandlers(): array
VoucherPayment::class,
In3Payment::class,
PosPayment::class,
TwintPayment::class,
// IngHomePayPayment::class, // not allowed anymore
// DirectDebitPayment::class, // only allowed when updating subsriptions, aka => not allowed anymore
];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ const device = devices.getFirstDevice();


const payments = [
{caseId: 'C1617016', key: 'twint', name: 'TWINT'},
{caseId: 'C4101', key: 'credit-card', name: 'Card'},
{caseId: 'C4111', key: 'paypal', name: 'PayPal'},
{caseId: 'C466903', key: 'billie', name: 'Billie'},
Expand Down

0 comments on commit bfe6ab3

Please sign in to comment.