Skip to content

Commit

Permalink
Merge pull request #35 from answear/support-mit-payment
Browse files Browse the repository at this point in the history
support mit payment
  • Loading branch information
konradkozaczenko authored May 13, 2024
2 parents f2b5585 + 4f82750 commit 696112f
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 4 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,5 +62,5 @@ $gateway->execute($captureRequest);

### Missing features

* `OrderRequest` params `cardOnFile`, `recurring`, `mcpData`, `threeDsAuthentication`, `credit`
* `OrderRequest` params `recurring`, `mcpData`, `threeDsAuthentication`, `credit`
* ...
3 changes: 2 additions & 1 deletion src/Action/CaptureAction.php
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,8 @@ private function prepareOrderRequest(Capture $request, TokenInterface $token, Mo
$payMethod,
$model->additionalDescription(),
$model->visibleDescription(),
$model->statementDescription()
$model->statementDescription(),
$model->cardOnFile()
);
}

Expand Down
11 changes: 11 additions & 0 deletions src/Enum/CardOnFileEnum.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php

declare(strict_types=1);

namespace Answear\Payum\PayU\Enum;

enum CardOnFileEnum: string
{
case First = 'FIRST';
case StandardMerchant = 'STANDARD_MERCHANT';
}
1 change: 1 addition & 0 deletions src/Enum/ModelFields.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,5 @@ enum ModelFields
public const REFUND_ID = 'refundId';
public const EXT_REFUND_ID = 'extRefundId';
public const PROPERTIES = 'properties';
public const CARD_ON_FILE = 'cardOnFile';
}
11 changes: 11 additions & 0 deletions src/Model/Model.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

namespace Answear\Payum\PayU\Model;

use Answear\Payum\PayU\Enum\CardOnFileEnum;
use Answear\Payum\PayU\Enum\ModelFields;
use Answear\Payum\PayU\Enum\OrderStatus;
use Answear\Payum\PayU\Enum\PayMethodType;
Expand Down Expand Up @@ -177,6 +178,16 @@ public function setCreditCardMaskedNumber(?string $creditCardMaskedNumber): void
$this[ModelFields::CREDIT_CARD_MASKED_NUMBER] = $creditCardMaskedNumber;
}

public function cardOnFile(): ?CardOnFileEnum
{
return CardOnFileEnum::tryFrom($this[ModelFields::CARD_ON_FILE] ?? '');
}

public function setCardOnFile(?CardOnFileEnum $cardOnFileEnum): void
{
$this[ModelFields::CARD_ON_FILE] = $cardOnFileEnum?->value;
}

public function setPayUResponse(Response\OrderCreatedResponse $orderCreatedResponse): void
{
$this[ModelFields::PAYU_RESPONSE] = $orderCreatedResponse->toArray();
Expand Down
5 changes: 3 additions & 2 deletions src/ValueObject/Request/OrderRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
namespace Answear\Payum\PayU\ValueObject\Request;

use Answear\Payum\PayU\Enum\AuthType;
use Answear\Payum\PayU\Enum\CardOnFileEnum;
use Answear\Payum\PayU\Enum\RecurringEnum;
use Answear\Payum\PayU\ValueObject\Buyer;
use Answear\Payum\PayU\ValueObject\Product;
Expand Down Expand Up @@ -35,7 +36,7 @@ public function __construct(
public readonly ?string $additionalDescription = null,
public readonly ?string $visibleDescription = null,
public readonly ?string $statementDescription = null,
public ?string $cardOnFile = null,
public ?CardOnFileEnum $cardOnFile = null,
public ?string $recurring = null,
) {
Assert::notEmpty($this->products);
Expand Down Expand Up @@ -63,7 +64,7 @@ public function toArray(string $merchantPosId): array
'buyer' => $this->buyer?->toArray(),
'products' => array_map(static fn(Product $product) => $product->toArray(), $this->products),
'payMethods' => null === $this->payMethod ? null : ['payMethod' => $this->payMethod->toArray()],
'cardOnFile' => $this->cardOnFile,
'cardOnFile' => $this->cardOnFile?->value,
'recurring' => $this->recurring,
];
}
Expand Down

0 comments on commit 696112f

Please sign in to comment.