diff options
author | Christian Grothoff <christian@grothoff.org> | 2020-10-13 00:21:11 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2020-10-13 00:21:11 +0200 |
commit | 8935b56a545b0423ebf7dc7b66b46f6b4107dde9 (patch) | |
tree | cbe630da2b6d864b086717786c0a97344e76d630 | |
parent | e43cb4e2739f6a0f954947c99a6f4bcefe2a511c (diff) | |
download | woocommerce-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.php | 13 |
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) ); } } |