Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
Adyen Magento2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Shared Libs
Adyen Magento2
Commits
ee09cf18
Commit
ee09cf18
authored
Nov 03, 2017
by
Rik ter Beek
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add duplicate check into notificaiton processing and fix formatting
parent
058eb3c0
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
107 additions
and
65 deletions
+107
-65
Model/Cron.php
Model/Cron.php
+99
-58
Model/Notification.php
Model/Notification.php
+8
-7
No files found.
Model/Cron.php
View file @
ee09cf18
...
@@ -226,7 +226,7 @@ class Cron
...
@@ -226,7 +226,7 @@ class Cron
{
{
// needed for Magento < 2.2.0 https://github.com/magento/magento2/pull/8413
// needed for Magento < 2.2.0 https://github.com/magento/magento2/pull/8413
$renderer
=
Phrase
::
getRenderer
();
$renderer
=
Phrase
::
getRenderer
();
if
(
$renderer
instanceof
Placeholder
)
{
if
(
$renderer
instanceof
Placeholder
)
{
$this
->
_areaList
->
getArea
(
Area
::
AREA_CRONTAB
)
->
load
(
Area
::
PART_TRANSLATE
);
$this
->
_areaList
->
getArea
(
Area
::
AREA_CRONTAB
)
->
load
(
Area
::
PART_TRANSLATE
);
}
}
...
@@ -247,34 +247,36 @@ class Cron
...
@@ -247,34 +247,36 @@ class Cron
foreach
(
$notifications
as
$notification
)
{
foreach
(
$notifications
as
$notification
)
{
// set Cron processing to true
// set Cron processing to true
$notification
->
setProcessing
(
true
);
$this
->
_updateNotification
(
$notification
,
true
,
false
);
$notification
->
setUpdatedAt
(
new
\DateTime
());
$notification
->
save
();
}
}
// loop over the notifications
// loop over the notifications
$count
=
0
;
$count
=
0
;
foreach
(
$notifications
as
$notification
)
{
foreach
(
$notifications
as
$notification
)
{
// ignore duplicate notification
if
(
$this
->
_isDuplicate
(
$notification
))
{
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
sprintf
(
"Processing notification %s"
,
$notification
->
getEntityId
())
"This is a duplicate notification and will be ignored"
);
);
$this
->
_updateNotification
(
$notification
,
false
,
true
);
++
$count
;
continue
;
}
/**
/**
* If the event is a RECURRING_CONTRACT wait an extra 5 minutes
* If the event is a RECURRING_CONTRACT wait an extra 5 minutes
* before processing so we are sure the RECURRING_CONTRACT
* before processing so we are sure the RECURRING_CONTRACT
*/
*/
if
(
trim
(
$notification
->
getEventCode
())
==
Notification
::
RECURRING_CONTRACT
&&
if
(
trim
(
$notification
->
getEventCode
())
==
Notification
::
RECURRING_CONTRACT
&&
strtotime
(
$notification
->
getCreatedAt
())
>=
strtotime
(
'-5 minutes'
,
time
()))
{
strtotime
(
$notification
->
getCreatedAt
())
>=
strtotime
(
'-5 minutes'
,
time
())
)
{
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
"This is a recurring_contract notification wait an extra 5 minutes
"This is a recurring_contract notification wait an extra 5 minutes
before processing this to make sure the contract exists"
before processing this to make sure the contract exists"
);
);
// set processing back to false
// set processing back to false
$notification
->
setProcessing
(
false
);
$this
->
_updateNotification
(
$notification
,
false
,
false
);
$notification
->
setUpdatedAt
(
$dateEnd
);
$notification
->
save
();
continue
;
continue
;
}
}
...
@@ -311,7 +313,8 @@ class Cron
...
@@ -311,7 +313,8 @@ class Cron
*/
*/
if
(
$this
->
_order
->
getState
()
===
\Magento\Sales\Model\Order
::
STATE_PENDING_PAYMENT
||
if
(
$this
->
_order
->
getState
()
===
\Magento\Sales\Model\Order
::
STATE_PENDING_PAYMENT
||
$this
->
_order
->
getState
()
===
\Magento\Sales\Model\Order
::
STATE_PAYMENT_REVIEW
||
$this
->
_order
->
getState
()
===
\Magento\Sales\Model\Order
::
STATE_PAYMENT_REVIEW
||
$this
->
_eventCode
==
Notification
::
ORDER_CLOSED
)
{
$this
->
_eventCode
==
Notification
::
ORDER_CLOSED
)
{
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
'Going to cancel the order'
);
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
'Going to cancel the order'
);
...
@@ -328,7 +331,8 @@ class Cron
...
@@ -328,7 +331,8 @@ class Cron
* refund/cancelled as well so if it is a split payment that failed cancel the order as well
* refund/cancelled as well so if it is a split payment that failed cancel the order as well
*/
*/
if
(
$previousAdyenEventCode
!=
"AUTHORISATION : TRUE"
||
if
(
$previousAdyenEventCode
!=
"AUTHORISATION : TRUE"
||
$this
->
_eventCode
==
Notification
::
ORDER_CLOSED
)
{
$this
->
_eventCode
==
Notification
::
ORDER_CLOSED
)
{
$this
->
_holdCancelOrder
(
false
);
$this
->
_holdCancelOrder
(
false
);
}
else
{
}
else
{
$this
->
_order
->
setData
(
'adyen_notification_event_code'
,
$previousAdyenEventCode
);
$this
->
_order
->
setData
(
'adyen_notification_event_code'
,
$previousAdyenEventCode
);
...
@@ -349,12 +353,8 @@ class Cron
...
@@ -349,12 +353,8 @@ class Cron
}
}
$this
->
_order
->
save
();
$this
->
_order
->
save
();
// set done to true
// set done to true
$notification
->
setDone
(
true
);
$this
->
_updateNotification
(
$notification
,
false
,
true
);
$notification
->
setProcessing
(
false
);
$notification
->
setUpdatedAt
(
new
\DateTime
());
$notification
->
save
();
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
sprintf
(
"Notification %s is processed"
,
$notification
->
getEntityId
())
sprintf
(
"Notification %s is processed"
,
$notification
->
getEntityId
())
);
);
...
@@ -366,6 +366,35 @@ class Cron
...
@@ -366,6 +366,35 @@ class Cron
}
}
}
}
/**
* @param $notification
* @param $processing
* @param $done
*/
protected
function
_updateNotification
(
$notification
,
$processing
,
$done
)
{
if
(
$done
)
{
$notification
->
setDone
(
true
);
}
$notification
->
setProcessing
(
$processing
);
$notification
->
setUpdatedAt
(
new
\DateTime
());
$notification
->
save
();
}
/**
* Check if the notification is already executed if so this is a duplicate and ignore this one
*
* @param $notification
* @return bool
*/
protected
function
_isDuplicate
(
$notification
)
{
return
$notification
->
isDuplicate
(
$notification
->
getPspreference
(),
$notification
->
getEventCode
(),
$notification
->
getSuccess
(),
$notification
->
getOriginalReference
(),
true
);
}
/**
/**
* Declare private variables for processing notification
* Declare private variables for processing notification
*
*
...
@@ -461,10 +490,10 @@ class Cron
...
@@ -461,10 +490,10 @@ class Cron
// check if it is a full or partial refund
// check if it is a full or partial refund
$amount
=
$this
->
_value
;
$amount
=
$this
->
_value
;
$orderAmount
=
(
int
)
$this
->
_adyenHelper
->
formatAmount
(
$this
->
_order
->
getGrandTotal
(),
$currency
);
$orderAmount
=
(
int
)
$this
->
_adyenHelper
->
formatAmount
(
$this
->
_order
->
getGrandTotal
(),
$currency
);
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
'amount notification:'
.
$amount
.
' amount order:'
.
$orderAmount
'amount notification:'
.
$amount
.
' amount order:'
.
$orderAmount
);
);
if
(
$amount
==
$orderAmount
)
{
if
(
$amount
==
$orderAmount
)
{
...
@@ -487,7 +516,8 @@ class Cron
...
@@ -487,7 +516,8 @@ class Cron
if
((
$this
->
_paymentMethod
==
"klarna"
||
$this
->
_paymentMethod
==
"afterpay_default"
||
if
((
$this
->
_paymentMethod
==
"klarna"
||
$this
->
_paymentMethod
==
"afterpay_default"
||
$this
->
_paymentMethod
==
"openinvoice"
||
$this
->
_paymentMethod
==
"ratepay"
$this
->
_paymentMethod
==
"openinvoice"
||
$this
->
_paymentMethod
==
"ratepay"
)
&&
(
$this
->
_klarnaReservationNumber
!=
null
&&
)
&&
(
$this
->
_klarnaReservationNumber
!=
null
&&
$this
->
_klarnaReservationNumber
!=
""
))
{
$this
->
_klarnaReservationNumber
!=
""
)
)
{
$klarnaReservationNumberText
=
"<br /> reservationNumber: "
.
$this
->
_klarnaReservationNumber
;
$klarnaReservationNumberText
=
"<br /> reservationNumber: "
.
$this
->
_klarnaReservationNumber
;
}
else
{
}
else
{
$klarnaReservationNumberText
=
""
;
$klarnaReservationNumberText
=
""
;
...
@@ -520,7 +550,8 @@ class Cron
...
@@ -520,7 +550,8 @@ class Cron
// if manual review is accepted and a status is selected. Change the status through this comment history item
// if manual review is accepted and a status is selected. Change the status through this comment history item
if
(
$this
->
_eventCode
==
Notification
::
MANUAL_REVIEW_ACCEPT
if
(
$this
->
_eventCode
==
Notification
::
MANUAL_REVIEW_ACCEPT
&&
$this
->
_getFraudManualReviewAcceptStatus
()
!=
""
)
{
&&
$this
->
_getFraudManualReviewAcceptStatus
()
!=
""
)
{
$manualReviewAcceptStatus
=
$this
->
_getFraudManualReviewAcceptStatus
();
$manualReviewAcceptStatus
=
$this
->
_getFraudManualReviewAcceptStatus
();
$this
->
_order
->
addStatusHistoryComment
(
$comment
,
$manualReviewAcceptStatus
);
$this
->
_order
->
addStatusHistoryComment
(
$comment
,
$manualReviewAcceptStatus
);
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
'Created comment history for this notification with status change to: '
.
$manualReviewAcceptStatus
);
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
'Created comment history for this notification with status change to: '
.
$manualReviewAcceptStatus
);
...
@@ -543,7 +574,8 @@ class Cron
...
@@ -543,7 +574,8 @@ class Cron
if
(
$this
->
_eventCode
==
Notification
::
AUTHORISATION
if
(
$this
->
_eventCode
==
Notification
::
AUTHORISATION
||
$this
->
_eventCode
==
Notification
::
HANDLED_EXTERNALLY
||
$this
->
_eventCode
==
Notification
::
HANDLED_EXTERNALLY
||
(
$this
->
_eventCode
==
Notification
::
CAPTURE
&&
$_paymentCode
==
"adyen_pos"
))
{
||
(
$this
->
_eventCode
==
Notification
::
CAPTURE
&&
$_paymentCode
==
"adyen_pos"
)
)
{
/*
/*
* if current notification is authorisation : false and
* if current notification is authorisation : false and
...
@@ -551,7 +583,8 @@ class Cron
...
@@ -551,7 +583,8 @@ class Cron
*/
*/
if
(
strcmp
(
$this
->
_success
,
'false'
)
==
0
||
if
(
strcmp
(
$this
->
_success
,
'false'
)
==
0
||
strcmp
(
$this
->
_success
,
'0'
)
==
0
||
strcmp
(
$this
->
_success
,
'0'
)
==
0
||
strcmp
(
$this
->
_success
,
''
)
==
0
)
{
strcmp
(
$this
->
_success
,
''
)
==
0
)
{
$previousAdyenEventCode
=
$this
->
_order
->
getData
(
'adyen_notification_event_code'
);
$previousAdyenEventCode
=
$this
->
_order
->
getData
(
'adyen_notification_event_code'
);
if
(
$previousAdyenEventCode
!=
"AUTHORISATION : TRUE"
)
{
if
(
$previousAdyenEventCode
!=
"AUTHORISATION : TRUE"
)
{
...
@@ -684,6 +717,7 @@ class Cron
...
@@ -684,6 +717,7 @@ class Cron
*/
*/
protected
function
_processNotification
()
protected
function
_processNotification
()
{
{
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
'Processing the notification'
);
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
'Processing the notification'
);
$_paymentCode
=
$this
->
_paymentMethodCode
();
$_paymentCode
=
$this
->
_paymentMethodCode
();
...
@@ -752,7 +786,7 @@ class Cron
...
@@ -752,7 +786,7 @@ class Cron
}
}
break
;
break
;
case
Notification
::
OFFER_CLOSED
:
case
Notification
::
OFFER_CLOSED
:
if
(
!
$this
->
_order
->
canCancel
())
{
if
(
!
$this
->
_order
->
canCancel
())
{
// Move the order from PAYMENT_REVIEW to NEW, so that can be cancelled
// Move the order from PAYMENT_REVIEW to NEW, so that can be cancelled
$this
->
_order
->
setState
(
\Magento\Sales\Model\Order
::
STATE_NEW
);
$this
->
_order
->
setState
(
\Magento\Sales\Model\Order
::
STATE_NEW
);
}
}
...
@@ -774,12 +808,14 @@ class Cron
...
@@ -774,12 +808,14 @@ class Cron
}
}
}
else
{
}
else
{
if
(
$this
->
_order
->
isCanceled
()
||
if
(
$this
->
_order
->
isCanceled
()
||
$this
->
_order
->
getState
()
===
\Magento\Sales\Model\Order
::
STATE_HOLDED
)
{
$this
->
_order
->
getState
()
===
\Magento\Sales\Model\Order
::
STATE_HOLDED
)
{
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
'Order is already cancelled or holded so do nothing'
'Order is already cancelled or holded so do nothing'
);
);
}
else
if
(
$this
->
_order
->
canCancel
()
||
$this
->
_order
->
canHold
())
{
}
else
{
if
(
$this
->
_order
->
canCancel
()
||
$this
->
_order
->
canHold
())
{
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
'try to cancel the order'
);
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
'try to cancel the order'
);
$this
->
_holdCancelOrder
(
true
);
$this
->
_holdCancelOrder
(
true
);
}
else
{
}
else
{
...
@@ -790,6 +826,7 @@ class Cron
...
@@ -790,6 +826,7 @@ class Cron
$this
->
_setRefundAuthorized
();
$this
->
_setRefundAuthorized
();
}
}
}
}
}
break
;
break
;
case
Notification
::
RECURRING_CONTRACT
:
case
Notification
::
RECURRING_CONTRACT
:
...
@@ -800,7 +837,8 @@ class Cron
...
@@ -800,7 +837,8 @@ class Cron
$customerReference
=
$this
->
_order
->
getCustomerId
();
$customerReference
=
$this
->
_order
->
getCustomerId
();
$listRecurringContracts
=
null
;
$listRecurringContracts
=
null
;
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
__
(
'CustomerReference is: %1 and storeId is %2 and RecurringDetailsReference is %3'
,
$customerReference
,
$storeId
,
$recurringDetailReference
)
__
(
'CustomerReference is: %1 and storeId is %2 and RecurringDetailsReference is %3'
,
$customerReference
,
$storeId
,
$recurringDetailReference
)
);
);
try
{
try
{
$listRecurringContracts
=
$this
->
_adyenPaymentRequest
->
getRecurringContractsForShopper
(
$listRecurringContracts
=
$this
->
_adyenPaymentRequest
->
getRecurringContractsForShopper
(
...
@@ -817,7 +855,8 @@ class Cron
...
@@ -817,7 +855,8 @@ class Cron
foreach
(
$listRecurringContracts
as
$rc
)
{
foreach
(
$listRecurringContracts
as
$rc
)
{
$recurringReferencesList
[]
=
$rc
[
'recurringDetailReference'
];
$recurringReferencesList
[]
=
$rc
[
'recurringDetailReference'
];
if
(
isset
(
$rc
[
'recurringDetailReference'
])
&&
if
(
isset
(
$rc
[
'recurringDetailReference'
])
&&
$rc
[
'recurringDetailReference'
]
==
$recurringDetailReference
)
{
$rc
[
'recurringDetailReference'
]
==
$recurringDetailReference
)
{
$contractDetail
=
$rc
;
$contractDetail
=
$rc
;
}
}
}
}
...
@@ -867,8 +906,7 @@ class Cron
...
@@ -867,8 +906,7 @@ class Cron
$billingAgreement
->
setStoreId
(
$this
->
_order
->
getStoreId
());
$billingAgreement
->
setStoreId
(
$this
->
_order
->
getStoreId
());
$billingAgreement
->
importOrderPayment
(
$this
->
_order
->
getPayment
());
$billingAgreement
->
importOrderPayment
(
$this
->
_order
->
getPayment
());
$message
=
__
(
'Created billing agreement #%1.'
,
$recurringDetailReference
);
$message
=
__
(
'Created billing agreement #%1.'
,
$recurringDetailReference
);
}
}
else
{
else
{
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
"Using existing Billing Agreement"
);
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
"Using existing Billing Agreement"
);
$billingAgreement
->
setIsObjectChanged
(
true
);
$billingAgreement
->
setIsObjectChanged
(
true
);
$message
=
__
(
'Updated billing agreement #%1.'
,
$recurringDetailReference
);
$message
=
__
(
'Updated billing agreement #%1.'
,
$recurringDetailReference
);
...
@@ -888,7 +926,7 @@ class Cron
...
@@ -888,7 +926,7 @@ class Cron
throw
new
\Exception
(
$message
);
throw
new
\Exception
(
$message
);
}
}
}
catch
(
\Exception
$exception
)
{
}
catch
(
\Exception
$exception
)
{
$message
=
$exception
->
getMessage
();
$message
=
$exception
->
getMessage
();
}
}
...
@@ -1009,7 +1047,8 @@ class Cron
...
@@ -1009,7 +1047,8 @@ class Cron
if
((
$this
->
_paymentMethod
==
"c_cash"
&&
if
((
$this
->
_paymentMethod
==
"c_cash"
&&
$this
->
_getConfigData
(
'create_shipment'
,
'adyen_cash'
,
$this
->
_order
->
getStoreId
()))
||
$this
->
_getConfigData
(
'create_shipment'
,
'adyen_cash'
,
$this
->
_order
->
getStoreId
()))
||
(
$this
->
_getConfigData
(
'create_shipment'
,
'adyen_pos'
,
$this
->
_order
->
getStoreId
())
&&
(
$this
->
_getConfigData
(
'create_shipment'
,
'adyen_pos'
,
$this
->
_order
->
getStoreId
())
&&
$_paymentCode
==
"adyen_pos"
))
{
$_paymentCode
==
"adyen_pos"
)
)
{
$this
->
_createShipment
();
$this
->
_createShipment
();
}
}
...
@@ -1025,7 +1064,7 @@ class Cron
...
@@ -1025,7 +1064,7 @@ class Cron
try
{
try
{
$this
->
_orderSender
->
send
(
$this
->
_order
);
$this
->
_orderSender
->
send
(
$this
->
_order
);
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
'Send orderconfirmation email to shopper'
);
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
'Send orderconfirmation email to shopper'
);
}
catch
(
\Exception
$exception
)
{
}
catch
(
\Exception
$exception
)
{
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
"Exception in Send Mail in Magento. This is an issue in the the core of Magento"
.
"Exception in Send Mail in Magento. This is an issue in the the core of Magento"
.
$exception
->
getMessage
()
$exception
->
getMessage
()
...
@@ -1093,7 +1132,7 @@ class Cron
...
@@ -1093,7 +1132,7 @@ class Cron
}
}
}
}
$createPendingInvoice
=
(
bool
)
$this
->
_getConfigData
(
$createPendingInvoice
=
(
bool
)
$this
->
_getConfigData
(
'create_pending_invoice'
,
'adyen_abstract'
,
$this
->
_order
->
getStoreId
()
'create_pending_invoice'
,
'adyen_abstract'
,
$this
->
_order
->
getStoreId
()
);
);
...
@@ -1158,7 +1197,8 @@ class Cron
...
@@ -1158,7 +1197,8 @@ class Cron
* There will be a capture send to indicate if payment is successful
* There will be a capture send to indicate if payment is successful
*/
*/
if
((
$_paymentCode
==
"adyen_sepa"
||
$this
->
_paymentMethod
==
"sepadirectdebit"
)
&&
if
((
$_paymentCode
==
"adyen_sepa"
||
$this
->
_paymentMethod
==
"sepadirectdebit"
)
&&
$sepaFlow
==
"authcap"
)
{
$sepaFlow
==
"authcap"
)
{
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
'Manual Capture is applied for sepa because it is in authcap flow'
'Manual Capture is applied for sepa because it is in authcap flow'
);
);
...
@@ -1167,10 +1207,11 @@ class Cron
...
@@ -1167,10 +1207,11 @@ class Cron
// payment method ideal, cash adyen_boleto or adyen_pos has direct capture
// payment method ideal, cash adyen_boleto or adyen_pos has direct capture
if
(
$_paymentCode
==
"adyen_pos"
||
((
$_paymentCode
==
"adyen_sepa"
||
if
(
$_paymentCode
==
"adyen_pos"
||
((
$_paymentCode
==
"adyen_sepa"
||
$this
->
_paymentMethod
==
"sepadirectdebit"
)
&&
$sepaFlow
!=
"authcap"
))
{
$this
->
_paymentMethod
==
"sepadirectdebit"
)
&&
$sepaFlow
!=
"authcap"
)
)
{
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
'This payment method does not allow manual capture.(2) paymentCode:'
.
'This payment method does not allow manual capture.(2) paymentCode:'
.
$_paymentCode
.
' paymentMethod:'
.
$this
->
_paymentMethod
.
' sepaFLow:'
.
$sepaFlow
$_paymentCode
.
' paymentMethod:'
.
$this
->
_paymentMethod
.
' sepaFLow:'
.
$sepaFlow
);
);
return
true
;
return
true
;
}
}
...
@@ -1185,13 +1226,13 @@ class Cron
...
@@ -1185,13 +1226,13 @@ class Cron
return
true
;
return
true
;
}
}
// if PayPal capture modues is different from the default use this one
// if PayPal capture modues is different from the default use this one
if
(
strcmp
(
$this
->
_paymentMethod
,
'paypal'
)
===
0
&&
$captureModePayPal
!=
""
)
{
if
(
strcmp
(
$this
->
_paymentMethod
,
'paypal'
)
===
0
&&
$captureModePayPal
!=
""
)
{
if
(
strcmp
(
$captureModePayPal
,
'auto'
)
===
0
)
{
if
(
strcmp
(
$captureModePayPal
,
'auto'
)
===
0
)
{
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
'This payment method is paypal and configured to work as auto capture'
'This payment method is paypal and configured to work as auto capture'
);
);
return
true
;
return
true
;
}
elseif
(
strcmp
(
$captureModePayPal
,
'manual'
)
===
0
)
{
}
elseif
(
strcmp
(
$captureModePayPal
,
'manual'
)
===
0
)
{
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
'This payment method is paypal and configured to work as manual capture'
'This payment method is paypal and configured to work as manual capture'
);
);
...
@@ -1234,7 +1275,7 @@ class Cron
...
@@ -1234,7 +1275,7 @@ class Cron
$manualCaptureAllowed
=
null
;
$manualCaptureAllowed
=
null
;
$paymentMethod
=
$this
->
_paymentMethod
;
$paymentMethod
=
$this
->
_paymentMethod
;
switch
(
$paymentMethod
)
{
switch
(
$paymentMethod
)
{
case
'cup'
:
case
'cup'
:
case
'cartebancaire'
:
case
'cartebancaire'
:
case
'visa'
:
case
'visa'
:
...
@@ -1311,7 +1352,7 @@ class Cron
...
@@ -1311,7 +1352,7 @@ class Cron
);
);
// get total amount of the order
// get total amount of the order
$grandTotal
=
(
int
)
$this
->
_adyenHelper
->
formatAmount
(
$this
->
_order
->
getGrandTotal
(),
$orderCurrencyCode
);
$grandTotal
=
(
int
)
$this
->
_adyenHelper
->
formatAmount
(
$this
->
_order
->
getGrandTotal
(),
$orderCurrencyCode
);
// check if total amount of the order is authorised
// check if total amount of the order is authorised
$res
=
$this
->
_adyenOrderPaymentCollectionFactory
$res
=
$this
->
_adyenOrderPaymentCollectionFactory
...
@@ -1365,7 +1406,7 @@ class Cron
...
@@ -1365,7 +1406,7 @@ class Cron
$autoCapture
=
$this
->
_isAutoCapture
();
$autoCapture
=
$this
->
_isAutoCapture
();
$createPendingInvoice
=
(
bool
)
$this
->
_getConfigData
(
$createPendingInvoice
=
(
bool
)
$this
->
_getConfigData
(
'create_pending_invoice'
,
'adyen_abstract'
,
$this
->
_order
->
getStoreId
()
'create_pending_invoice'
,
'adyen_abstract'
,
$this
->
_order
->
getStoreId
()
);
);
...
@@ -1395,7 +1436,7 @@ class Cron
...
@@ -1395,7 +1436,7 @@ class Cron
$this
->
_setPaymentAuthorized
();
$this
->
_setPaymentAuthorized
();
$invoiceAutoMail
=
(
bool
)
$this
->
_getConfigData
(
$invoiceAutoMail
=
(
bool
)
$this
->
_getConfigData
(
'send_invoice_update_mail'
,
'adyen_abstract'
,
$this
->
_order
->
getStoreId
()
'send_invoice_update_mail'
,
'adyen_abstract'
,
$this
->
_order
->
getStoreId
()
);
);
...
@@ -1419,12 +1460,12 @@ class Cron
...
@@ -1419,12 +1460,12 @@ class Cron
// if full amount is captured create invoice
// if full amount is captured create invoice
$currency
=
$this
->
_order
->
getOrderCurrencyCode
();
$currency
=
$this
->
_order
->
getOrderCurrencyCode
();
$amount
=
$this
->
_value
;
$amount
=
$this
->
_value
;
$orderAmount
=
(
int
)
$this
->
_adyenHelper
->
formatAmount
(
$this
->
_order
->
getGrandTotal
(),
$currency
);
$orderAmount
=
(
int
)
$this
->
_adyenHelper
->
formatAmount
(
$this
->
_order
->
getGrandTotal
(),
$currency
);
// create invoice for the capture notification if you are on manual capture
// create invoice for the capture notification if you are on manual capture
if
(
$createInvoice
==
true
&&
$amount
==
$orderAmount
)
{
if
(
$createInvoice
==
true
&&
$amount
==
$orderAmount
)
{
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
$this
->
_adyenLogger
->
addAdyenNotificationCronjob
(
'amount notification:'
.
$amount
.
' amount order:'
.
$orderAmount
'amount notification:'
.
$amount
.
' amount order:'
.
$orderAmount
);
);
$this
->
_createInvoice
();
$this
->
_createInvoice
();
}
}
...
...
Model/Notification.php
View file @
ee09cf18
...
@@ -86,11 +86,12 @@ class Notification extends \Magento\Framework\Model\AbstractModel
...
@@ -86,11 +86,12 @@ class Notification extends \Magento\Framework\Model\AbstractModel
* @param $eventCode
* @param $eventCode
* @param $success
* @param $success
* @param $originalReference
* @param $originalReference
* @return bool (true if the notification is a duplicate)
* @param null $done
* @return bool
*/
*/
public
function
isDuplicate
(
$pspReference
,
$eventCode
,
$success
,
$originalReference
)
public
function
isDuplicate
(
$pspReference
,
$eventCode
,
$success
,
$originalReference
,
$done
=
null
)
{
{
$result
=
$this
->
getResource
()
->
getNotification
(
$pspReference
,
$eventCode
,
$success
,
$originalReference
);
$result
=
$this
->
getResource
()
->
getNotification
(
$pspReference
,
$eventCode
,
$success
,
$originalReference
,
$done
);
return
(
empty
(
$result
))
?
false
:
true
;
return
(
empty
(
$result
))
?
false
:
true
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment