summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2020-10-13 00:21:11 +0200
committerChristian Grothoff <christian@grothoff.org>2020-10-13 00:21:11 +0200
commit8935b56a545b0423ebf7dc7b66b46f6b4107dde9 (patch)
treecbe630da2b6d864b086717786c0a97344e76d630
parente43cb4e2739f6a0f954947c99a6f4bcefe2a511c (diff)
downloadwoocommerce-taler-8935b56a545b0423ebf7dc7b66b46f6b4107dde9.tar.gz
woocommerce-taler-8935b56a545b0423ebf7dc7b66b46f6b4107dde9.tar.bz2
woocommerce-taler-8935b56a545b0423ebf7dc7b66b46f6b4107dde9.zip
improve refund error handling
-rw-r--r--plugin/GNU-Taler-Payment-Gateway/class-wc-gnutaler-gateway.php13
1 files changed, 11 insertions, 2 deletions
diff --git a/plugin/GNU-Taler-Payment-Gateway/class-wc-gnutaler-gateway.php b/plugin/GNU-Taler-Payment-Gateway/class-wc-gnutaler-gateway.php
index db2b6a5..16d7284 100644
--- a/plugin/GNU-Taler-Payment-Gateway/class-wc-gnutaler-gateway.php
+++ b/plugin/GNU-Taler-Payment-Gateway/class-wc-gnutaler-gateway.php
@@ -818,6 +818,9 @@ function gnutaler_init_gateway_class()
$refund_url) );
}
return true;
+ case 403:
+ return new WP_Error( 'error',
+ __('Refunds are disabled for this order. Check the refund_delay option for the Taler payment plugin.', 'gnutaler' ) );
case 404:
$refund_error = json_decode ($refund_body, $assoc=true);
if (! $refund_error)
@@ -847,9 +850,15 @@ function gnutaler_init_gateway_class()
return new WP_Error( 'error',
__('Wire transfer already happened. It is too late for a refund with Taler!', 'gnutaler' ) );
default:
+ $refund_error = json_decode ($refund_body, $assoc=true);
+ if (! $refund_error)
+ $ec = $refund_error['code'];
+ else
+ $ec = 0;
return new WP_Error( 'error',
- sprintf( __('Unexpected failure %s from Taler backend', 'gnutaler' ),
- $refund_http_status) );
+ sprintf( __('Unexpected failure %s/%s from Taler backend', 'gnutaler' ),
+ $refund_http_status,
+ $ec) );
}
}