Awight has uploaded a new change for review.
https://gerrit.wikimedia.org/r/281081
Change subject: Move most error mapping into config
......................................................................
Move most error mapping into config
Change-Id: Ie1100666ba669cfeeeb7cc4826118e48bc1db3f7
---
M adyen_gateway/adyen.adapter.php
A adyen_gateway/config/error_map.yaml
M amazon_gateway/amazon.adapter.php
A amazon_gateway/config/error_map.yaml
M astropay_gateway/astropay.adapter.php
M gateway_common/gateway.adapter.php
A globalcollect_gateway/config/error_map.yaml
M globalcollect_gateway/globalcollect.adapter.php
A paypal_gateway/config/error_map.yaml
M paypal_gateway/paypal.adapter.php
A worldpay_gateway/config/error_map.yaml
M worldpay_gateway/worldpay.adapter.php
12 files changed, 114 insertions(+), 94 deletions(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/DonationInterface
refs/changes/81/281081/1
diff --git a/adyen_gateway/adyen.adapter.php b/adyen_gateway/adyen.adapter.php
index d2824a8..fc60460 100644
--- a/adyen_gateway/adyen.adapter.php
+++ b/adyen_gateway/adyen.adapter.php
@@ -45,12 +45,6 @@
);
}
- function defineErrorMap() {
- $this->error_map = array(
- 'internal-0000' => 'donate_interface-processing-error',
// Failed failed pre-process checks.
- );
- }
-
function defineStagedVars() {
$this->staged_vars = array(
'amount',
diff --git a/adyen_gateway/config/error_map.yaml
b/adyen_gateway/config/error_map.yaml
new file mode 100644
index 0000000..4a715b0
--- /dev/null
+++ b/adyen_gateway/config/error_map.yaml
@@ -0,0 +1,2 @@
+# Failed failed pre-process checks.
+internal-0000: donate_interface-processing-error
diff --git a/amazon_gateway/amazon.adapter.php
b/amazon_gateway/amazon.adapter.php
index 33ce5ad..998a9ee 100644
--- a/amazon_gateway/amazon.adapter.php
+++ b/amazon_gateway/amazon.adapter.php
@@ -91,6 +91,8 @@
function setGatewayDefaults() {}
public function defineErrorMap() {
+ parent::defineErrorMap();
+
$self = $this;
$differentCard = function() use ( $self ) {
$otherWays = $self->localizeGlobal( 'OtherWaysURL' );
@@ -100,15 +102,8 @@
$self->getGlobal( 'ProblemsEmail' )
);
};
- $this->error_map = array(
- // These might be transient - tell donor to try again
soon
- 'InternalServerError' => 'donate_interface-try-again',
- 'RequestThrottled' => 'donate_interface-try-again',
- 'ServiceUnavailable' => 'donate_interface-try-again',
- 'ProcessingFailure' => 'donate_interface-try-again',
- // Donor needs to select a different card
- 'InvalidPaymentMethod' => $differentCard,
- );
+ // Donor needs to select a different card.
+ $this->error_map['InvalidPaymentMethod'] = $differentCard;
}
function defineTransactions() {
diff --git a/amazon_gateway/config/error_map.yaml
b/amazon_gateway/config/error_map.yaml
new file mode 100644
index 0000000..5357945
--- /dev/null
+++ b/amazon_gateway/config/error_map.yaml
@@ -0,0 +1,5 @@
+# These might be transient - tell donor to try again soon
+InternalServerError: donate_interface-try-again
+RequestThrottled: donate_interface-try-again
+ServiceUnavailable: donate_interface-try-again
+ProcessingFailure: donate_interface-try-again
diff --git a/astropay_gateway/astropay.adapter.php
b/astropay_gateway/astropay.adapter.php
index 29c7867..fd6df1d 100644
--- a/astropay_gateway/astropay.adapter.php
+++ b/astropay_gateway/astropay.adapter.php
@@ -43,6 +43,7 @@
$this->accountInfo = $this->account_config;
}
+ // TODO: How to DRYly configurify?
function defineErrorMap() {
$this->error_map = array(
'internal-0000' => 'donate_interface-processing-error',
// Failed pre-process checks.
diff --git a/gateway_common/gateway.adapter.php
b/gateway_common/gateway.adapter.php
index e0dc8de..5bbb267 100644
--- a/gateway_common/gateway.adapter.php
+++ b/gateway_common/gateway.adapter.php
@@ -345,6 +345,13 @@
}
}
+ // TODO: see comment on definePaymentMethods
+ public function defineErrorMap() {
+ if ( isset( $this->config['error_map'] ) ) {
+ $this->error_map = $this->config['error_map'];
+ }
+ }
+
public function defineDataTransformers() {
if ( empty( $this->config['transformers'] ) ) {
return;
diff --git a/globalcollect_gateway/config/error_map.yaml
b/globalcollect_gateway/config/error_map.yaml
new file mode 100644
index 0000000..f0ba1e6
--- /dev/null
+++ b/globalcollect_gateway/config/error_map.yaml
@@ -0,0 +1,76 @@
+0: globalcollect_gateway-response-default
+# Order ID already used in a previous transaction
+300620: donate_interface-processing-error
+# Not authorised :: This message was generated when trying to attempt a direct
debit transaction from Belgium.
+430452: globalcollect_gateway-response-default
+# NO VALID PROVIDERS FOUND FOR COMBINATION MERCHANTID: NNNN, PAYMENTPRODUCT:
NNN, COUNTRYCODE: XX, CURRENCYCODE: XXX
+430900: globalcollect_gateway-response-default
+
+# Errors where the suggested action is to try again
+# COULD NOT START TRANSACTION
+20205: donate_interface-try-again
+# ANOTHER_ACTION_IS_IN_PROCESS
+103000: donate_interface-try-again
+# IDEAL_SYSTEM_MAINTENANCE
+400850: donate_interface-try-again
+# READ_REQUEST_EXCEPTION
+430150: donate_interface-try-again
+# Unable to authorize ALL_TERMINAL_IDS_FOR_MERCHANT_CURRENCY_IN_USE
+430160: donate_interface-try-again
+# Unable to authorize COMMS_FAIL_101
+430215: donate_interface-try-again
+# Unable to authorize COMMS_FAIL_103
+430220: donate_interface-try-again
+# Unable to authorize COMMS_FAIL_111
+430225: donate_interface-try-again
+# Unable to authorize COMMS_FAIL_113
+430230: donate_interface-try-again
+# Unable to authorize COMMS_FAIL_183
+430235: donate_interface-try-again
+# Unable to authorize COMMS_FAIL_601
+430240: donate_interface-try-again
+# Unable to authorize COMMS_FAIL_605
+430245: donate_interface-try-again
+# Unable to authorize TIMEOUT
+430430: donate_interface-try-again
+# Unable to authorize TOO_MUCH_USAGE
+430433: donate_interface-try-again
+# Not authorized SOFT_DECLINE_BUYER_HAS_ALTERNATE_FUNDING_SOURCE
+430581: donate_interface-try-again
+# Unable to authorize NEW_ACCOUNT_INFO_AVAILABLE
+485000: donate_interface-try-again
+# Unable to authorize TRY_AGAIN_LATER
+485010: donate_interface-try-again
+# PBS_SERVICE_NOT_AVAILABLE
+4311130: donate_interface-try-again
+# ECARD SYSTEM ERROR
+4360025: donate_interface-try-again
+# BOKU ERROR
+4500600: donate_interface-try-again
+# SUB1 ERROR
+4500700: donate_interface-try-again
+# COMMUNICATION ERROR
+22000045: donate_interface-try-again
+# ERROR_IN_PROCESSING_THE_REQUEST
+9999999999: donate_interface-try-again
+
+# Internal messages
+# Failed failed pre-process checks.
+internal-0000: donate_interface-processing-error
+# Transaction could not be processed due to an internal error.
+internal-0001: donate_interface-processing-error
+# Communication failure
+internal-0002: donate_interface-processing-error
+# Toxic card, don't retry on pain of $1000+ fine
+internal-0003: donate_interface-processing-error
+
+# Do bank validation messages
+# FIXME: Why are these commented out? Complete.
+# Account number format incorrect
+#'dbv-50' => 'globalcollect_gateway-response-dbv-50'
+# Account details missing
+#'dbv-80' => 'globalcollect_gateway-response-dbv-80'
+# Check digit format is incorrect
+#'dbv-330' => 'globalcollect_gateway-response-dbv-330'
+# Branch code not submitted
+#'dbv-340' => 'globalcollect_gateway-response-dbv-340'
diff --git a/globalcollect_gateway/globalcollect.adapter.php
b/globalcollect_gateway/globalcollect.adapter.php
index 76d45c0..ea56035 100644
--- a/globalcollect_gateway/globalcollect.adapter.php
+++ b/globalcollect_gateway/globalcollect.adapter.php
@@ -59,60 +59,6 @@
}
/**
- * Define error_map
- *
- * @todo
- * - Add: Error messages
- */
- public function defineErrorMap() {
-
- $this->error_map = array(
- 0 =>
'globalcollect_gateway-response-default',
- 300620 => 'donate_interface-processing-error', //
Order ID already used in a previous transaction
- 430452 => 'globalcollect_gateway-response-default', //
Not authorised :: This message was generated when trying to attempt a direct
debit transaction from Belgium.
- 430900 => 'globalcollect_gateway-response-default', //
NO VALID PROVIDERS FOUND FOR COMBINATION MERCHANTID: NNNN, PAYMENTPRODUCT: NNN,
COUNTRYCODE: XX, CURRENCYCODE: XXX
-
- // Errors where the suggested action is to try again
- 20205 => 'donate_interface-try-again', // COULD NOT
START TRANSACTION
- 103000 => 'donate_interface-try-again', //
ANOTHER_ACTION_IS_IN_PROCESS
- 400850 => 'donate_interface-try-again', //
IDEAL_SYSTEM_MAINTENANCE
- 430150 => 'donate_interface-try-again', //
READ_REQUEST_EXCEPTION
- 430160 => 'donate_interface-try-again', // Unable to
authorize ALL_TERMINAL_IDS_FOR_MERCHANT_CURRENCY_IN_USE
- 430215 => 'donate_interface-try-again', // Unable to
authorize COMMS_FAIL_101
- 430220 => 'donate_interface-try-again', // Unable to
authorize COMMS_FAIL_103
- 430225 => 'donate_interface-try-again', // Unable to
authorize COMMS_FAIL_111
- 430230 => 'donate_interface-try-again', // Unable to
authorize COMMS_FAIL_113
- 430235 => 'donate_interface-try-again', // Unable to
authorize COMMS_FAIL_183
- 430240 => 'donate_interface-try-again', // Unable to
authorize COMMS_FAIL_601
- 430245 => 'donate_interface-try-again', // Unable to
authorize COMMS_FAIL_605
- 430430 => 'donate_interface-try-again', // Unable to
authorize TIMEOUT
- 430433 => 'donate_interface-try-again', // Unable to
authorize TOO_MUCH_USAGE
- 430581 => 'donate_interface-try-again', // Not
authorized SOFT_DECLINE_BUYER_HAS_ALTERNATE_FUNDING_SOURCE
- 485000 => 'donate_interface-try-again', // Unable to
authorize NEW_ACCOUNT_INFO_AVAILABLE
- 485010 => 'donate_interface-try-again', // Unable to
authorize TRY_AGAIN_LATER
- 4311130 => 'donate_interface-try-again', //
PBS_SERVICE_NOT_AVAILABLE
- 4360025 => 'donate_interface-try-again', // ECARD
SYSTEM ERROR
- 4500600 => 'donate_interface-try-again', // BOKU ERROR
- 4500700 => 'donate_interface-try-again', // SUB1 ERROR
- 22000045 => 'donate_interface-try-again', //
COMMUNICATION ERROR
- 9999999999 => 'donate_interface-try-again', //
ERROR_IN_PROCESSING_THE_REQUEST
-
- // Internal messages
- 'internal-0000' => 'donate_interface-processing-error',
// Failed failed pre-process checks.
- 'internal-0001' => 'donate_interface-processing-error',
// Transaction could not be processed due to an internal error.
- 'internal-0002' => 'donate_interface-processing-error',
// Communication failure
- 'internal-0003' => 'donate_interface-processing-error',
// Toxic card, don't retry on pain of $1000+ fine
-
- // Do bank validation messages
- //'dbv-50' =>
'globalcollect_gateway-response-dbv-50', // Account number format incorrect
- //'dbv-80' =>
'globalcollect_gateway-response-dbv-80', // Account details missing
- //'dbv-330' =>
'globalcollect_gateway-response-dbv-330', // Check digit format is incorrect
- //'dbv-340' =>
'globalcollect_gateway-response-dbv-340', // Branch code not submitted
-
- );
- }
-
- /**
* Setting some GC-specific defaults.
* @param array $options These get extracted in the parent.
*/
diff --git a/paypal_gateway/config/error_map.yaml
b/paypal_gateway/config/error_map.yaml
new file mode 100644
index 0000000..0101f9f
--- /dev/null
+++ b/paypal_gateway/config/error_map.yaml
@@ -0,0 +1,7 @@
+# Internal messages
+# Failed failed pre-process checks.
+internal-0000: donate_interface-processing-error
+# Transaction could not be processed due to an internal error.
+internal-0001: donate_interface-processing-error
+# Communication failure
+internal-0002: donate_interface-processing-error
diff --git a/paypal_gateway/paypal.adapter.php
b/paypal_gateway/paypal.adapter.php
index b514da9..fc3dee5 100644
--- a/paypal_gateway/paypal.adapter.php
+++ b/paypal_gateway/paypal.adapter.php
@@ -66,19 +66,6 @@
}
function setGatewayDefaults() {}
- public function defineErrorMap() {
-
- $this->error_map = array(
- // Internal messages
- // Failed failed pre-process checks.
- 'internal-0000' => 'donate_interface-processing-error',
- // Transaction could not be processed due to an
internal error.
- 'internal-0001' => 'donate_interface-processing-error',
- // Communication failure
- 'internal-0002' => 'donate_interface-processing-error',
- );
- }
-
function defineTransactions() {
$this->transactions = array();
$this->transactions[ 'Donate' ] = array(
diff --git a/worldpay_gateway/config/error_map.yaml
b/worldpay_gateway/config/error_map.yaml
new file mode 100644
index 0000000..f809889
--- /dev/null
+++ b/worldpay_gateway/config/error_map.yaml
@@ -0,0 +1,12 @@
+# Well, this is probably going to get annoying as soon as we want to get
specific here.
+# We can't just use numbers here: We're going to have to break it out by
request and number.
+#
+# Internal messages
+# Failed failed pre-process checks.
+internal-0000: donate_interface-processing-error
+# Transaction could not be processed due to an internal error.
+internal-0001: donate_interface-processing-error
+# Communication failure
+internal-0002: donate_interface-processing-error
+# Some error code returned from one of the daisy-chained requests.
+internal-0003: donate_interface-processing-error
diff --git a/worldpay_gateway/worldpay.adapter.php
b/worldpay_gateway/worldpay.adapter.php
index c50150a..9333cde 100644
--- a/worldpay_gateway/worldpay.adapter.php
+++ b/worldpay_gateway/worldpay.adapter.php
@@ -265,18 +265,6 @@
);
}
- function defineErrorMap() {
- //Well, this is probably going to get annoying as soon as we
want to get specific here.
- //We can't just use numbers here: We're going to have to break
it out by request and number.
- $this->error_map = array(
- // Internal messages
- 'internal-0000' => 'donate_interface-processing-error',
// Failed failed pre-process checks.
- 'internal-0001' => 'donate_interface-processing-error',
// Transaction could not be processed due to an internal error.
- 'internal-0002' => 'donate_interface-processing-error',
// Communication failure
- 'internal-0003' => 'donate_interface-processing-error',
// Some error code returned from one of the daisy-chained requests.
- );
- }
-
function defineReturnValueMap() {
/* From the integration manual; this is the list of all
possible return codes
* (excluding the 3000 series which are foreign exchange system
errors which we don't use)
--
To view, visit https://gerrit.wikimedia.org/r/281081
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie1100666ba669cfeeeb7cc4826118e48bc1db3f7
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/DonationInterface
Gerrit-Branch: master
Gerrit-Owner: Awight <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits