Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SL-219 Saving cards #193

Closed
Closed
Show file tree
Hide file tree
Changes from 6 commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
51bc5de
Merge pull request #155 from Invertus/release-1.2.2
GytisZum May 23, 2024
1a4c5ab
upgrade api to 1.37->1.40, init wechatpay and upgrade module to 1.2.3
zuk3975 Jun 11, 2024
4271164
wechatpay handle unsupported capture/cancel
zuk3975 Jun 12, 2024
f4aaea2
wip
zuk3975 Jun 12, 2024
f35ac76
force create order before checkout for a2a. add upgrade and new pend…
zuk3975 Jun 26, 2024
68fb81f
remove testing todo
zuk3975 Jun 26, 2024
18a7df4
handle pending decline
zuk3975 Jun 27, 2024
389e39e
add wait tpl and remove order creation from return
zuk3975 Jun 27, 2024
b3bac09
remove todo
zuk3975 Jun 27, 2024
c1d83af
fix pending status
zuk3975 Jun 28, 2024
adb4c5d
Merge pull request #171 from Invertus/wechat-and-wait
zuk3975 Jul 1, 2024
ba49048
apply changes from branch SL-232/conflicting-calls. Return contorlle…
zuk3975 Jul 1, 2024
5cc5042
Merge pull request #172 from Invertus/lock-rebase
zuk3975 Jul 1, 2024
8a3052f
cleanup and fix payment authorization issues
zuk3975 Jul 3, 2024
8d87ae5
Merge pull request #173 from Invertus/SL-238
zuk3975 Jul 3, 2024
19c4132
fix return failure and set complete for uncapturable payments
zuk3975 Jul 5, 2024
c78bc95
Merge pull request #174 from Invertus/fix-return-and-complete
zuk3975 Jul 5, 2024
6fd4d5e
changlelog updated
GytisZum Jul 5, 2024
156a021
changlelog updated
GytisZum Jul 5, 2024
c424c21
max version increased
GytisZum Jul 5, 2024
9b1fc36
wait template for ps16
zuk3975 Jul 8, 2024
3c89b8b
Merge pull request #175 from Invertus/wait-tpl-16
zuk3975 Jul 8, 2024
55cebc4
fix loop by separating controller and allow asserting without update
zuk3975 Jul 10, 2024
6b8d97e
install fixed
GytisZum Jul 16, 2024
781d604
order states fix on old prestashop versions
GytisZum Jul 22, 2024
f599f44
ps16 compatibility
GytisZum Jul 23, 2024
1ae06bf
not needed logs deleted
GytisZum Jul 23, 2024
2070564
fix bo for ps 1.6
GytisZum Jul 23, 2024
ce1555b
fix payments on 1.6 ps
GytisZum Jul 25, 2024
c2b7205
fix
GytisZum Jul 25, 2024
2e3bc85
fix
GytisZum Jul 25, 2024
867ec7c
Merge pull request #182 from Invertus/SV-23/ps16-improvements
GytisZum Jul 25, 2024
e4786d7
check order captured state on failure if multiple statuses comes at once
GytisZum Jul 31, 2024
ab06e19
conflict fix
GytisZum Aug 1, 2024
9c9e747
Merge pull request #183 from Invertus/SL-247/order-states-fix
GytisZum Aug 1, 2024
008f558
Merge pull request #176 from Invertus/fix-loop-and-assert-write
GytisZum Aug 1, 2024
2e5dc6f
fix types for amount in order capturing with php 8.1 version
GytisZum Aug 7, 2024
feface4
Merge pull request #186 from Invertus/SL-249/transaction-status
GytisZum Aug 8, 2024
5f5fd16
duplicate mail fix
GytisZum Aug 8, 2024
52a0ae5
fix order conf mail
GytisZum Aug 9, 2024
fed9698
make file updated for module preparation
GytisZum Aug 9, 2024
9dfbcf2
Merge pull request #187 from Invertus/SL-249/transaction-status
GytisZum Aug 9, 2024
e185635
Merge pull request #184 from Invertus/release-1.2.3
GytisZum Sep 17, 2024
4627df2
[SL-257] init
MarijusCoding Sep 20, 2024
60cb882
[SL-234] fix not rendering
MarijusCoding Sep 20, 2024
b7f101d
[SL-234] fix
MarijusCoding Sep 20, 2024
acd2f60
[SL-234] fix
MarijusCoding Sep 20, 2024
f3f85c2
[SL-234] fix
MarijusCoding Sep 20, 2024
ce82051
[SL-230] init
MarijusCoding Sep 20, 2024
908b462
[SL-244] optimized images querys
MarijusCoding Sep 22, 2024
61cbcd1
[SL-244] fix
MarijusCoding Sep 23, 2024
3f5d318
[SL-244] WIP
MarijusCoding Sep 23, 2024
d2d2aea
[SL-244] fix
MarijusCoding Sep 23, 2024
ad707d6
[SL-234] fix
MarijusCoding Sep 23, 2024
e478360
[SL-234] fix
MarijusCoding Sep 23, 2024
4e65cce
Merge pull request #189 from Invertus/SL-257/add-holdername
MarijusCoding Sep 23, 2024
6b4b0f7
[SL-219] init
MarijusCoding Sep 24, 2024
63b9273
init
MarijusCoding Sep 24, 2024
1938ef2
[SL-219] fix
MarijusCoding Sep 24, 2024
106ef68
[SL-219] fix
MarijusCoding Sep 24, 2024
3ab3985
[SL-219] fix
MarijusCoding Sep 25, 2024
17fdb72
Merge pull request #191 from Invertus/SL-230/cancel-order
MarijusCoding Sep 30, 2024
2e1e4f4
Merge branch 'release-v1.2.4' of github.com:Invertus/saferpayofficial…
MarijusCoding Sep 30, 2024
d0d0c4a
[SL-244] fix
MarijusCoding Sep 30, 2024
08b2b1e
[SL-244] rename
MarijusCoding Sep 30, 2024
3794fbe
[SL-234] fix
MarijusCoding Oct 1, 2024
f5ab091
[SL-219] phpDoc
MarijusCoding Oct 1, 2024
4524b9e
Merge pull request #192 from Invertus/SL-244/performance-issues
MarijusCoding Oct 1, 2024
56a734b
[SL-219] fix ternary
MarijusCoding Oct 2, 2024
7e197ab
Merge pull request #190 from Invertus/SL-234/my-account-override
MarijusCoding Oct 2, 2024
ba78b82
fix
MarijusCoding Oct 2, 2024
bcb6dcc
Revert "fix"
MarijusCoding Oct 2, 2024
61d229f
Merge branch 'SL-219/saved-card-iframe' into SL-219/saving-cards-bugs
MarijusCoding Oct 2, 2024
3bf3ffb
Revert "Merge branch 'SL-219/saved-card-iframe' into SL-219/saving-ca…
MarijusCoding Oct 3, 2024
c66a403
revert
MarijusCoding Oct 3, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 0 additions & 31 deletions controllers/front/successIFrame.php
Original file line number Diff line number Diff line change
Expand Up @@ -62,37 +62,6 @@ public function postProcess()

$this->redirectWithNotifications($this->getOrderLink());
}

try {
Tools::redirect($this->getOrderConfirmationLink($cartId, $moduleId, $orderId, $secureKey));
} catch (Exception $e) {
PrestaShopLogger::addLog(
sprintf(
'%s has caught an error: %s',
__CLASS__,
$e->getMessage()
),
1,
null,
null,
null,
true
);

Tools::redirect(
$this->context->link->getModuleLink(
$this->module->name,
ControllerName::FAIL_IFRAME,
[
'cartId' => $cartId,
'secureKey' => $secureKey,
'orderId' => $orderId,
\Invertus\SaferPay\Config\SaferPayConfig::IS_BUSINESS_LICENCE => true,
],
true
)
);
}
}

public function initContent()
Expand Down
14 changes: 13 additions & 1 deletion src/Api/Request/AuthorizationService.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
use Invertus\SaferPay\EntityBuilder\SaferPayAssertBuilder;
use Invertus\SaferPay\EntityBuilder\SaferPayCardAliasBuilder;
use Invertus\SaferPay\Exception\Api\SaferPayApiException;
use Invertus\SaferPay\Repository\SaferPayCardAliasRepository;
use Invertus\SaferPay\Service\Response\AssertResponseObjectCreator;

if (!defined('_PS_VERSION_')) {
Expand Down Expand Up @@ -61,16 +62,20 @@ class AuthorizationService
*/
private $aliasBuilder;

private $aliasRepository;

public function __construct(
ApiRequest $apiRequest,
AssertResponseObjectCreator $assertResponseObjectCreator,
SaferPayAssertBuilder $assertBuilder,
SaferPayCardAliasBuilder $aliasBuilder
SaferPayCardAliasBuilder $aliasBuilder,
SaferPayCardAliasRepository $aliasRepository
) {
$this->apiRequest = $apiRequest;
$this->assertResponseObjectCreator = $assertResponseObjectCreator;
$this->assertBuilder = $assertBuilder;
$this->aliasBuilder = $aliasBuilder;
$this->aliasRepository = $aliasRepository;
}

public function authorize(AuthorizationRequest $authorizationRequest)
Expand Down Expand Up @@ -103,6 +108,13 @@ public function createObjectsFromAuthorizationResponse(
$assertBody = $this->assertResponseObjectCreator->createAssertObject($responseBody);
$this->assertBuilder->createAssert($assertBody, $saferPayOrderId);
$isPaymentSafe = $assertBody->getLiability()->getLiabilityShift();
$allSavedCards = array_column($this->aliasRepository->getSavedCardsNumbersByCustomerId($customerId), 'card_number');
$currentCard = $assertBody->getPaymentMeans()->getDisplayText();

if (in_array($currentCard, $allSavedCards)) {
MarijusCoding marked this conversation as resolved.
Show resolved Hide resolved
return $assertBody;
}

if ((int) $selectedCardOption === SaferPayConfig::CREDIT_CARD_OPTION_SAVE && $isPaymentSafe) {
$this->aliasBuilder->createCardAlias($assertBody, $customerId);
}
Expand Down
38 changes: 36 additions & 2 deletions src/Repository/SaferPayCardAliasRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,13 @@

class SaferPayCardAliasRepository
{
/**
* @param $userId
* @param $paymentMethod
* @param $currentDate
*
* @return array
*/
public function getSavedValidCardsByUserIdAndPaymentMethod($userId, $paymentMethod, $currentDate)
{
$query = new DbQuery();
Expand All @@ -41,9 +48,13 @@ public function getSavedValidCardsByUserIdAndPaymentMethod($userId, $paymentMeth
$query->where('payment_method = "' . pSQL($paymentMethod) . '"');
$query->where('valid_till > "' . pSQL($currentDate) . '"');

return Db::getInstance()->executeS($query);
return (array) Db::getInstance()->executeS($query) ?? [];
MarijusCoding marked this conversation as resolved.
Show resolved Hide resolved
}

/**
* @param $id
* @return false|string
*/
public function getSavedCardAliasFromId($id)
{
$query = new DbQuery();
Expand All @@ -54,6 +65,11 @@ public function getSavedCardAliasFromId($id)
return Db::getInstance()->getValue($query);
}

/**
* @param $customerId
* @param $aliasId
* @return false|string
*/
public function getSavedCardIdByCustomerIdAndAliasId($customerId, $aliasId)
{
$query = new DbQuery();
Expand All @@ -65,13 +81,31 @@ public function getSavedCardIdByCustomerIdAndAliasId($customerId, $aliasId)
return Db::getInstance()->getValue($query);
}

/**
* @param $customerId
* @return array
*/
public function getSavedCardsByCustomerId($customerId)
{
$query = new DbQuery();
$query->select('*');
$query->from('saferpay_card_alias');
$query->where('id_customer = "' . (int) $customerId . '"');

return Db::getInstance()->executeS($query);
return Db::getInstance()->executeS($query) ?? [];
}

/**
* @param $customerId
* @return array
*/
public function getSavedCardsNumbersByCustomerId($customerId)
{
$query = new DbQuery();
$query->select('`card_number`');
$query->from('saferpay_card_alias');
$query->where('id_customer = "' . (int) $customerId . '"');

return Db::getInstance()->executeS($query) ?? [];
}
}