Mollie Payments for WooCommerce - Version 2.9.0

Version Description

  • 13/02/2018 =

  • New - Added support for new payment method: ING Home'Pay

  • New - Updated Mollie API PHP to 1.9.6 (ING Home'Pay support)

  • Fix - Check that Mollie customerID is known on current API key, solves issues for admins that switched from test to live

  • Fix - Charged back payments now update the order status to On Hold and add an order note in WooCommerce, stock is not updated

  • Fix - For 'Payment screen language' set default to 'Detect using browser language' as it is usually more accurate

  • Fix - For subscriptions also compare recurring total amount to payment method maximums, not only the order/cart total

  • Fix - Improve WPML compatibility by removing duplicate trailing slash in WooCommerce API request URL

Download this release

Release Info

Developer davdebcom
Plugin Icon wp plugin Mollie Payments for WooCommerce
Version 2.9.0
Comparing to
See all releases

Code changes from version 2.8.2 to 2.9.0

Files changed (47) hide show
  1. assets/images/inghomepay.png +0 -0
  2. assets/images/inghomepay@2x.png +0 -0
  3. includes/mollie-api-php/README.md +3 -4
  4. includes/mollie-api-php/composer.json +1 -1
  5. includes/mollie-api-php/examples/01-new-payment.php +7 -6
  6. includes/mollie-api-php/examples/02-webhook-verification.php +2 -2
  7. includes/mollie-api-php/examples/04-ideal-payment.php +7 -6
  8. includes/mollie-api-php/examples/05-payments-history.php +2 -2
  9. includes/mollie-api-php/examples/06-list-activated-methods.php +2 -2
  10. includes/mollie-api-php/examples/07-refund-payment.php +3 -3
  11. includes/mollie-api-php/examples/08-oauth-list-profiles.php +1 -1
  12. includes/mollie-api-php/examples/09-oauth-list-settlements.php +1 -1
  13. includes/mollie-api-php/examples/10-oauth-new-payment.php +6 -5
  14. includes/mollie-api-php/examples/11-new-customer.php +1 -1
  15. includes/mollie-api-php/examples/12-new-customer-payment.php +6 -5
  16. includes/mollie-api-php/examples/13-customer-payments-history.php +2 -2
  17. includes/mollie-api-php/examples/14-recurring-first-payment.php +5 -4
  18. includes/mollie-api-php/examples/15-recurring-payment.php +1 -1
  19. includes/mollie-api-php/examples/16-recurring-subscription.php +1 -1
  20. includes/mollie-api-php/examples/17-cancel-subscription.php +1 -1
  21. includes/mollie-api-php/examples/18-update-customer.php +1 -1
  22. includes/mollie-api-php/examples/19-update-profile.php +1 -1
  23. includes/mollie-api-php/examples/20-list-apikeys.php +1 -1
  24. includes/mollie-api-php/examples/21-reset-apikey.php +1 -1
  25. includes/mollie-api-php/examples/22-create-mandate-subscription.php +2 -2
  26. includes/mollie-api-php/examples/23-delete-customer.php +21 -0
  27. includes/mollie-api-php/examples/initialize.php +1 -1
  28. includes/mollie-api-php/src/Mollie/API/Client.php +46 -25
  29. includes/mollie-api-php/src/Mollie/API/Exception/ConnectionError.php +74 -0
  30. includes/mollie-api-php/src/Mollie/API/Object/Method.php +5 -0
  31. includes/mollie-api-php/src/Mollie/API/Object/Payment.php +19 -12
  32. includes/mollie-api-php/src/Mollie/API/Object/Payment/Refund.php +4 -4
  33. includes/mollie-api-php/src/Mollie/API/Object/Profile.php +2 -2
  34. includes/mollie-api-php/src/Mollie/API/Object/Profile/APIKey.php +2 -2
  35. includes/mollie-api-php/src/Mollie/API/Object/Settlement.php +1 -1
  36. includes/mollie-api-php/src/Mollie/API/Resource/Base.php +4 -4
  37. includes/mollie-api-php/src/Mollie/API/Resource/Payments.php +14 -0
  38. includes/mollie-api-php/src/Mollie/API/Resource/Profiles/APIKeys.php +2 -4
  39. includes/mollie-api-php/src/Mollie/API/cacert.pem +167 -587
  40. includes/mollie/wc/gateway/abstract.php +155 -46
  41. includes/mollie/wc/gateway/abstractsubscription.php +2 -1
  42. includes/mollie/wc/gateway/inghomepay.php +44 -0
  43. includes/mollie/wc/helper/data.php +15 -3
  44. includes/mollie/wc/helper/settings.php +8 -3
  45. includes/mollie/wc/plugin.php +2 -1
  46. mollie-payments-for-woocommerce.php +4 -2
  47. readme.txt +18 -2
assets/images/inghomepay.png ADDED
Binary file
assets/images/inghomepay@2x.png ADDED
Binary file
includes/mollie-api-php/README.md CHANGED
@@ -11,10 +11,9 @@ Accepting [iDEAL](https://www.mollie.com/ideal/), [Bancontact/Mister Cash](https
11
  ## Requirements ##
12
  To use the Mollie API client, the following things are required:
13
 
14
- + Get yourself a free [Mollie account](https://www.mollie.com/aanmelden). No sign up costs.
15
- + Create a new [Website profile](https://www.mollie.com/beheer/account/profielen/) to generate API keys (live and test mode) and setup your webhook.
16
  + Now you're ready to use the Mollie API client in test mode.
17
- + In order to accept payments in live mode, payment methods must be activated in your account. Follow [a few of steps](https://www.mollie.com/beheer/diensten), and let us handle the rest.
18
  + PHP >= 5.3
19
  + PHP cURL extension
20
  + Up-to-date OpenSSL (or other SSL/TLS toolkit)
@@ -28,7 +27,7 @@ By far the easiest way to install the Mollie API client is to require it with [C
28
 
29
  {
30
  "require": {
31
- "mollie/mollie-api-php": "1.9.*"
32
  }
33
  }
34
 
11
  ## Requirements ##
12
  To use the Mollie API client, the following things are required:
13
 
14
+ + Get yourself a free [Mollie account](https://www.mollie.com/signup). No sign up costs.
 
15
  + Now you're ready to use the Mollie API client in test mode.
16
+ + Follow [a few steps](https://www.mollie.com/dashboard/?modal=onboarding) to enable payment methods in live mode, and let us handle the rest.
17
  + PHP >= 5.3
18
  + PHP cURL extension
19
  + Up-to-date OpenSSL (or other SSL/TLS toolkit)
27
 
28
  {
29
  "require": {
30
+ "mollie/mollie-api-php": "^1.9"
31
  }
32
  }
33
 
includes/mollie-api-php/composer.json CHANGED
@@ -16,7 +16,7 @@
16
  "cbc", "gift cards", "intersolve", "fashioncheque"
17
  ],
18
  "require" : {
19
- "php": ">=5.2",
20
  "ext-curl": "*",
21
  "ext-json": "*",
22
  "ext-openssl": "*"
16
  "cbc", "gift cards", "intersolve", "fashioncheque"
17
  ],
18
  "require" : {
19
+ "php": ">=5.3",
20
  "ext-curl": "*",
21
  "ext-json": "*",
22
  "ext-openssl": "*"
includes/mollie-api-php/examples/01-new-payment.php CHANGED
@@ -8,9 +8,9 @@ try
8
  /*
9
  * Initialize the Mollie API library with your API key.
10
  *
11
- * See: https://www.mollie.com/beheer/account/profielen/
12
  */
13
- include "initialize.php";
14
 
15
  /*
16
  * Generate a unique order id for this example. It is important to include this unique attribute
@@ -48,10 +48,11 @@ try
48
  */
49
  database_write($order_id, $payment->status);
50
 
51
- /*
52
- * Send the customer off to complete the payment.
53
- */
54
- header("Location: " . $payment->getPaymentUrl());
 
55
  }
56
  catch (Mollie_API_Exception $e)
57
  {
8
  /*
9
  * Initialize the Mollie API library with your API key.
10
  *
11
+ * See: https://www.mollie.com/dashboard/settings/profiles
12
  */
13
+ require "initialize.php";
14
 
15
  /*
16
  * Generate a unique order id for this example. It is important to include this unique attribute
48
  */
49
  database_write($order_id, $payment->status);
50
 
51
+ /*
52
+ * Send the customer off to complete the payment.
53
+ * This request should always be a GET, thus we enforce 303 http response code
54
+ */
55
+ header("Location: " . $payment->getPaymentUrl(), true, 303);
56
  }
57
  catch (Mollie_API_Exception $e)
58
  {
includes/mollie-api-php/examples/02-webhook-verification.php CHANGED
@@ -8,9 +8,9 @@ try
8
  /*
9
  * Initialize the Mollie API library with your API key.
10
  *
11
- * See: https://www.mollie.com/beheer/account/profielen/
12
  */
13
- include "initialize.php";
14
 
15
  /*
16
  * Retrieve the payment's current state.
8
  /*
9
  * Initialize the Mollie API library with your API key.
10
  *
11
+ * See: https://www.mollie.com/dashboard/settings/profiles
12
  */
13
+ require "initialize.php";
14
 
15
  /*
16
  * Retrieve the payment's current state.
includes/mollie-api-php/examples/04-ideal-payment.php CHANGED
@@ -8,9 +8,9 @@ try
8
  /*
9
  * Initialize the Mollie API library with your API key.
10
  *
11
- * See: https://www.mollie.com/beheer/account/profielen/
12
  */
13
- include "initialize.php";
14
 
15
  /*
16
  * First, let the customer pick the bank in a simple HTML form. This step is actually optional.
@@ -74,10 +74,11 @@ try
74
  */
75
  database_write($order_id, $payment->status);
76
 
77
- /*
78
- * Send the customer off to complete the payment.
79
- */
80
- header("Location: " . $payment->getPaymentUrl());
 
81
  }
82
  catch (Mollie_API_Exception $e)
83
  {
8
  /*
9
  * Initialize the Mollie API library with your API key.
10
  *
11
+ * See: https://www.mollie.com/dashboard/settings/profiles
12
  */
13
+ require "initialize.php";
14
 
15
  /*
16
  * First, let the customer pick the bank in a simple HTML form. This step is actually optional.
74
  */
75
  database_write($order_id, $payment->status);
76
 
77
+ /*
78
+ * Send the customer off to complete the payment.
79
+ * This request should always be a GET, thus we enforce 303 http response code
80
+ */
81
+ header("Location: " . $payment->getPaymentUrl(), true, 303);
82
  }
83
  catch (Mollie_API_Exception $e)
84
  {
includes/mollie-api-php/examples/05-payments-history.php CHANGED
@@ -8,9 +8,9 @@ try
8
  /*
9
  * Initialize the Mollie API library with your API key.
10
  *
11
- * See: https://www.mollie.com/beheer/account/profielen/
12
  */
13
- include "initialize.php";
14
 
15
  // Pagination
16
  $offset = 0;
8
  /*
9
  * Initialize the Mollie API library with your API key.
10
  *
11
+ * See: https://www.mollie.com/dashboard/settings/profiles
12
  */
13
+ require "initialize.php";
14
 
15
  // Pagination
16
  $offset = 0;
includes/mollie-api-php/examples/06-list-activated-methods.php CHANGED
@@ -8,9 +8,9 @@ try
8
  /*
9
  * Initialize the Mollie API library with your API key.
10
  *
11
- * See: https://www.mollie.com/beheer/account/profielen/
12
  */
13
- include "initialize.php";
14
 
15
  /*
16
  * Get all the activated methods for this API key.
8
  /*
9
  * Initialize the Mollie API library with your API key.
10
  *
11
+ * See: https://www.mollie.com/dashboard/settings/profiles
12
  */
13
+ require "initialize.php";
14
 
15
  /*
16
  * Get all the activated methods for this API key.
includes/mollie-api-php/examples/07-refund-payment.php CHANGED
@@ -7,9 +7,9 @@ try
7
  /*
8
  * Initialize the Mollie API library with your API key.
9
  *
10
- * See: https://www.mollie.com/beheer/account/profielen/
11
  */
12
- include "initialize.php";
13
 
14
  /*
15
  * Retrieve the payment you want to refund from the API.
@@ -25,7 +25,7 @@ try
25
  /*
26
  * Refund € 15,00 of the payment.
27
  *
28
- * https://www.mollie.com/en/docs/refunds#refund-create
29
  */
30
  $refund = $mollie->payments->refund($payment, 15.00);
31
 
7
  /*
8
  * Initialize the Mollie API library with your API key.
9
  *
10
+ * See: https://www.mollie.com/dashboard/settings/profiles
11
  */
12
+ require "initialize.php";
13
 
14
  /*
15
  * Retrieve the payment you want to refund from the API.
25
  /*
26
  * Refund € 15,00 of the payment.
27
  *
28
+ * https://www.mollie.com/en/docs/reference/refunds/create
29
  */
30
  $refund = $mollie->payments->refund($payment, 15.00);
31
 
includes/mollie-api-php/examples/08-oauth-list-profiles.php CHANGED
@@ -8,7 +8,7 @@ try
8
  /*
9
  * Initialize the Mollie API library with your OAuth access token.
10
  */
11
- include "initialize_with_oauth.php";
12
 
13
  /*
14
  * Get the all the profiles for this account.
8
  /*
9
  * Initialize the Mollie API library with your OAuth access token.
10
  */
11
+ require "initialize_with_oauth.php";
12
 
13
  /*
14
  * Get the all the profiles for this account.
includes/mollie-api-php/examples/09-oauth-list-settlements.php CHANGED
@@ -8,7 +8,7 @@ try
8
  /*
9
  * Initialize the Mollie API library with your OAuth access token.
10
  */
11
- include "initialize_with_oauth.php";
12
 
13
  /*
14
  * Get the all the settlements for this account.
8
  /*
9
  * Initialize the Mollie API library with your OAuth access token.
10
  */
11
+ require "initialize_with_oauth.php";
12
 
13
  /*
14
  * Get the all the settlements for this account.
includes/mollie-api-php/examples/10-oauth-new-payment.php CHANGED
@@ -8,7 +8,7 @@ try
8
  /*
9
  * Initialize the Mollie API library with your OAuth access token.
10
  */
11
- include "initialize_with_oauth.php";
12
 
13
  /*
14
  * Generate a unique order id for this example. It is important to include this unique attribute
@@ -55,16 +55,17 @@ try
55
  */
56
  database_write($order_id, $payment->status);
57
 
58
- /*
59
- * Send the customer off to complete the payment.
60
- */
 
61
  if (PHP_SAPI === "cli")
62
  {
63
  echo "Redirect to: " . $payment->getPaymentUrl() . PHP_EOL;
64
  return;
65
  }
66
 
67
- header("Location: " . $payment->getPaymentUrl());
68
  }
69
  catch (Mollie_API_Exception $e)
70
  {
8
  /*
9
  * Initialize the Mollie API library with your OAuth access token.
10
  */
11
+ require "initialize_with_oauth.php";
12
 
13
  /*
14
  * Generate a unique order id for this example. It is important to include this unique attribute
55
  */
56
  database_write($order_id, $payment->status);
57
 
58
+ /*
59
+ * Send the customer off to complete the payment.
60
+ * This request should always be a GET, thus we enforce 303 http response code
61
+ */
62
  if (PHP_SAPI === "cli")
63
  {
64
  echo "Redirect to: " . $payment->getPaymentUrl() . PHP_EOL;
65
  return;
66
  }
67
 
68
+ header("Location: " . $payment->getPaymentUrl(), true, 303);
69
  }
70
  catch (Mollie_API_Exception $e)
71
  {
includes/mollie-api-php/examples/11-new-customer.php CHANGED
@@ -8,7 +8,7 @@ try
8
  /*
9
  * Initialize the Mollie API library with your API key or OAuth access token.
10
  */
11
- include "initialize.php";
12
 
13
  /*
14
  * Customer creation parameters.
8
  /*
9
  * Initialize the Mollie API library with your API key or OAuth access token.
10
  */
11
+ require "initialize.php";
12
 
13
  /*
14
  * Customer creation parameters.
includes/mollie-api-php/examples/12-new-customer-payment.php CHANGED
@@ -8,7 +8,7 @@ try
8
  /*
9
  * Initialize the Mollie API library with your API key or OAuth access token.
10
  */
11
- include "initialize.php";
12
 
13
  /*
14
  * Retrieve the last created customer for this example.
@@ -46,10 +46,11 @@ try
46
  */
47
  database_write($order_id, $payment->status);
48
 
49
- /*
50
- * Send the customer off to complete the payment.
51
- */
52
- header("Location: " . $payment->getPaymentUrl());
 
53
  }
54
  catch (Mollie_API_Exception $e)
55
  {
8
  /*
9
  * Initialize the Mollie API library with your API key or OAuth access token.
10
  */
11
+ require "initialize.php";
12
 
13
  /*
14
  * Retrieve the last created customer for this example.
46
  */
47
  database_write($order_id, $payment->status);
48
 
49
+ /*
50
+ * Send the customer off to complete the payment.
51
+ * This request should always be a GET, thus we enforce 303 http response code
52
+ */
53
+ header("Location: " . $payment->getPaymentUrl(), true, 303);
54
  }
55
  catch (Mollie_API_Exception $e)
56
  {
includes/mollie-api-php/examples/13-customer-payments-history.php CHANGED
@@ -8,9 +8,9 @@ try
8
  /*
9
  * Initialize the Mollie API library with your API key.
10
  *
11
- * See: https://www.mollie.com/beheer/account/profielen/
12
  */
13
- include "initialize.php";
14
 
15
  /*
16
  * Retrieve the last created customer for this example.
8
  /*
9
  * Initialize the Mollie API library with your API key.
10
  *
11
+ * See: https://www.mollie.com/dashboard/settings/profiles
12
  */
13
+ require "initialize.php";
14
 
15
  /*
16
  * Retrieve the last created customer for this example.
includes/mollie-api-php/examples/14-recurring-first-payment.php CHANGED
@@ -8,7 +8,7 @@ try
8
  /*
9
  * Initialize the Mollie API library with your API key or OAuth access token.
10
  */
11
- include "initialize.php";
12
 
13
  /*
14
  * Retrieve the last created customer for this example.
@@ -49,13 +49,14 @@ try
49
  */
50
  database_write($order_id, $payment->status);
51
 
52
- /*
53
- * Send the customer off to complete the first payment.
 
54
  *
55
  * After completion, the customer will have a pending or valid mandate that can be
56
  * used for recurring payments and subscriptions.
57
  */
58
- header("Location: " . $payment->getPaymentUrl());
59
  }
60
  catch (Mollie_API_Exception $e)
61
  {
8
  /*
9
  * Initialize the Mollie API library with your API key or OAuth access token.
10
  */
11
+ require "initialize.php";
12
 
13
  /*
14
  * Retrieve the last created customer for this example.
49
  */
50
  database_write($order_id, $payment->status);
51
 
52
+ /*
53
+ * Send the customer off to complete the payment.
54
+ * This request should always be a GET, thus we enforce 303 http response code
55
  *
56
  * After completion, the customer will have a pending or valid mandate that can be
57
  * used for recurring payments and subscriptions.
58
  */
59
+ header("Location: " . $payment->getPaymentUrl(), true, 303);
60
  }
61
  catch (Mollie_API_Exception $e)
62
  {
includes/mollie-api-php/examples/15-recurring-payment.php CHANGED
@@ -8,7 +8,7 @@ try
8
  /*
9
  * Initialize the Mollie API library with your API key or OAuth access token.
10
  */
11
- include "initialize.php";
12
 
13
  /*
14
  * Retrieve the last created customer for this example.
8
  /*
9
  * Initialize the Mollie API library with your API key or OAuth access token.
10
  */
11
+ require "initialize.php";
12
 
13
  /*
14
  * Retrieve the last created customer for this example.
includes/mollie-api-php/examples/16-recurring-subscription.php CHANGED
@@ -8,7 +8,7 @@ try
8
  /*
9
  * Initialize the Mollie API library with your API key or OAuth access token.
10
  */
11
- include "initialize.php";
12
 
13
  /*
14
  * Determine the url parts to these example files.
8
  /*
9
  * Initialize the Mollie API library with your API key or OAuth access token.
10
  */
11
+ require "initialize.php";
12
 
13
  /*
14
  * Determine the url parts to these example files.
includes/mollie-api-php/examples/17-cancel-subscription.php CHANGED
@@ -8,7 +8,7 @@ try
8
  /*
9
  * Initialize the Mollie API library with your API key or OAuth access token.
10
  */
11
- include "initialize.php";
12
 
13
  /**
14
  * Retrieve the last created customer for this example.
8
  /*
9
  * Initialize the Mollie API library with your API key or OAuth access token.
10
  */
11
+ require "initialize.php";
12
 
13
  /**
14
  * Retrieve the last created customer for this example.
includes/mollie-api-php/examples/18-update-customer.php CHANGED
@@ -8,7 +8,7 @@ try
8
  /*
9
  * Initialize the Mollie API library with your API key or OAuth access token.
10
  */
11
- include "initialize.php";
12
 
13
  /*
14
  * Retrieve an existing customer by his customerId
8
  /*
9
  * Initialize the Mollie API library with your API key or OAuth access token.
10
  */
11
+ require "initialize.php";
12
 
13
  /*
14
  * Retrieve an existing customer by his customerId
includes/mollie-api-php/examples/19-update-profile.php CHANGED
@@ -8,7 +8,7 @@ try
8
  /*
9
  * Initialize the Mollie API library with your API key or OAuth access token.
10
  */
11
- include "initialize_with_oauth.php";
12
 
13
  /*
14
  * Retrieve an existing profile by his profileId
8
  /*
9
  * Initialize the Mollie API library with your API key or OAuth access token.
10
  */
11
+ require "initialize_with_oauth.php";
12
 
13
  /*
14
  * Retrieve an existing profile by his profileId
includes/mollie-api-php/examples/20-list-apikeys.php CHANGED
@@ -8,7 +8,7 @@ try
8
  /*
9
  * Initialize the Mollie API library with your OAuth access token.
10
  */
11
- include "initialize_with_oauth.php";
12
 
13
  /*
14
  * Retrieve an existing profile by his profileId
8
  /*
9
  * Initialize the Mollie API library with your OAuth access token.
10
  */
11
+ require "initialize_with_oauth.php";
12
 
13
  /*
14
  * Retrieve an existing profile by his profileId
includes/mollie-api-php/examples/21-reset-apikey.php CHANGED
@@ -8,7 +8,7 @@ try
8
  /*
9
  * Initialize the Mollie API library with a OAuth access token.
10
  */
11
- include "initialize_with_oauth.php";
12
 
13
  /*
14
  * Retrieve an existing profile by his profileId
8
  /*
9
  * Initialize the Mollie API library with a OAuth access token.
10
  */
11
+ require "initialize_with_oauth.php";
12
 
13
  /*
14
  * Retrieve an existing profile by his profileId
includes/mollie-api-php/examples/22-create-mandate-subscription.php CHANGED
@@ -4,7 +4,7 @@ try
4
  /*
5
  * Initialize the Mollie API library with your API key or OAuth access token.
6
  */
7
- include "initialize.php";
8
  /*
9
  * Customer creation parameters.
10
  *
@@ -21,7 +21,7 @@ try
21
  // create mandate
22
  $mandate = $mollie->customers_mandates->withParentId($customer->id)->create(array(
23
  "method" => 'directdebit',
24
- "consumerAccount" => 'NL12ABNA654065985',
25
  "consumerName" => 'B. A. Example',
26
  ));
27
  echo "<p>Mandate created with id ". $mandate->id."</p>";
4
  /*
5
  * Initialize the Mollie API library with your API key or OAuth access token.
6
  */
7
+ require "initialize.php";
8
  /*
9
  * Customer creation parameters.
10
  *
21
  // create mandate
22
  $mandate = $mollie->customers_mandates->withParentId($customer->id)->create(array(
23
  "method" => 'directdebit',
24
+ "consumerAccount" => 'NL34ABNA0243341423',
25
  "consumerName" => 'B. A. Example',
26
  ));
27
  echo "<p>Mandate created with id ". $mandate->id."</p>";
includes/mollie-api-php/examples/23-delete-customer.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ Example 23 - Delete a customer from mollie api.
4
+ */
5
+
6
+ try
7
+ {
8
+ /*
9
+ * Initialize the Mollie API library with your API key or OAuth access token.
10
+ */
11
+ require "initialize.php";
12
+
13
+ $mollie->customers->delete("customer_id");
14
+ echo "Customer deleted!";
15
+
16
+ }
17
+ catch (Mollie_API_Exception $e)
18
+ {
19
+ error_log( "API call failed: " . htmlspecialchars($e->getMessage()));
20
+ }
21
+
includes/mollie-api-php/examples/initialize.php CHANGED
@@ -5,7 +5,7 @@ require_once dirname(__FILE__) . "/../src/Mollie/API/Autoloader.php";
5
  /*
6
  * Initialize the Mollie API library with your API key.
7
  *
8
- * See: https://www.mollie.com/beheer/account/profielen/
9
  */
10
  $mollie = new Mollie_API_Client;
11
  $mollie->setApiKey("test_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM");
5
  /*
6
  * Initialize the Mollie API library with your API key.
7
  *
8
+ * See: https://www.mollie.com/dashboard/settings/profiles
9
  */
10
  $mollie = new Mollie_API_Client;
11
  $mollie->setApiKey("test_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM");
includes/mollie-api-php/src/Mollie/API/Client.php CHANGED
@@ -34,7 +34,7 @@ class Mollie_API_Client
34
  /**
35
  * Version of our client.
36
  */
37
- const CLIENT_VERSION = "1.9.1";
38
 
39
  /**
40
  * Endpoint of the remote API.
@@ -191,22 +191,22 @@ class Mollie_API_Client
191
  $this->getCompatibilityChecker()
192
  ->checkCompatibility();
193
 
194
- $this->payments = new Mollie_API_Resource_Payments($this);
195
  $this->payments_refunds = new Mollie_API_Resource_Payments_Refunds($this);
196
- $this->issuers = new Mollie_API_Resource_Issuers($this);
197
- $this->methods = new Mollie_API_Resource_Methods($this);
198
- $this->customers = new Mollie_API_Resource_Customers($this);
199
- $this->customers_payments = new Mollie_API_Resource_Customers_Payments($this);
200
- $this->customers_mandates = new Mollie_API_Resource_Customers_Mandates($this);
201
- $this->customers_subscriptions = new Mollie_API_Resource_Customers_Subscriptions($this);
202
 
203
  // OAuth2 endpoints
204
- $this->permissions = new Mollie_API_Resource_Permissions($this);
205
- $this->organizations = new Mollie_API_Resource_Organizations($this);
206
- $this->refunds = new Mollie_API_Resource_Refunds($this);
207
- $this->profiles = new Mollie_API_Resource_Profiles($this);
208
- $this->profiles_apikeys = new Mollie_API_Resource_Profiles_APIKeys($this);
209
- $this->settlements = new Mollie_API_Resource_Settlements($this);
210
 
211
  $curl_version = curl_version();
212
 
@@ -304,7 +304,7 @@ class Mollie_API_Client
304
  */
305
  public function setPemPath ($pem_path)
306
  {
307
- $this->pem_path = strval($pem_path);
308
  }
309
 
310
  /**
@@ -314,16 +314,17 @@ class Mollie_API_Client
314
  * @see $payments
315
  * @see $isuers
316
  *
317
- * @param $http_method
318
- * @param $api_method
319
- * @param $http_body
 
320
  *
321
  * @return string
322
  * @throws Mollie_API_Exception
323
  *
324
  * @codeCoverageIgnore
325
  */
326
- public function performHttpCall ($http_method, $api_method, $http_body = NULL)
327
  {
328
  if (empty($this->api_key))
329
  {
@@ -352,7 +353,7 @@ class Mollie_API_Client
352
  curl_setopt($this->ch, CURLOPT_TIMEOUT, 10);
353
  curl_setopt($this->ch, CURLOPT_ENCODING, "");
354
 
355
- $user_agent = join(' ', $this->version_strings);
356
 
357
  if ($this->usesOAuth())
358
  {
@@ -388,14 +389,34 @@ class Mollie_API_Client
388
 
389
  $body = curl_exec($this->ch);
390
 
391
- $this->last_http_response_status_code = (int) curl_getinfo($this->ch, CURLINFO_HTTP_CODE);
392
 
393
- if (curl_errno($this->ch))
394
- {
395
- $message = "Unable to communicate with Mollie (".curl_errno($this->ch)."): " . curl_error($this->ch) . ".";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
396
 
397
  $this->closeTcpConnection();
398
- throw new Mollie_API_Exception($message);
 
 
 
 
 
399
  }
400
 
401
  if (!function_exists("curl_reset"))
34
  /**
35
  * Version of our client.
36
  */
37
+ const CLIENT_VERSION = "1.9.6";
38
 
39
  /**
40
  * Endpoint of the remote API.
191
  $this->getCompatibilityChecker()
192
  ->checkCompatibility();
193
 
194
+ $this->payments = new Mollie_API_Resource_Payments($this);
195
  $this->payments_refunds = new Mollie_API_Resource_Payments_Refunds($this);
196
+ $this->issuers = new Mollie_API_Resource_Issuers($this);
197
+ $this->methods = new Mollie_API_Resource_Methods($this);
198
+ $this->customers = new Mollie_API_Resource_Customers($this);
199
+ $this->customers_payments = new Mollie_API_Resource_Customers_Payments($this);
200
+ $this->customers_mandates = new Mollie_API_Resource_Customers_Mandates($this);
201
+ $this->customers_subscriptions = new Mollie_API_Resource_Customers_Subscriptions($this);
202
 
203
  // OAuth2 endpoints
204
+ $this->permissions = new Mollie_API_Resource_Permissions($this);
205
+ $this->organizations = new Mollie_API_Resource_Organizations($this);
206
+ $this->refunds = new Mollie_API_Resource_Refunds($this);
207
+ $this->profiles = new Mollie_API_Resource_Profiles($this);
208
+ $this->profiles_apikeys = new Mollie_API_Resource_Profiles_APIKeys($this);
209
+ $this->settlements = new Mollie_API_Resource_Settlements($this);
210
 
211
  $curl_version = curl_version();
212
 
304
  */
305
  public function setPemPath ($pem_path)
306
  {
307
+ $this->pem_path = (string) $pem_path;
308
  }
309
 
310
  /**
314
  * @see $payments
315
  * @see $isuers
316
  *
317
+ * @param string $http_method
318
+ * @param string $api_method
319
+ * @param string $http_body
320
+ * @param int $retries Number of times to retry the HTTP call. Will only be retried if there was a connection error.
321
  *
322
  * @return string
323
  * @throws Mollie_API_Exception
324
  *
325
  * @codeCoverageIgnore
326
  */
327
+ public function performHttpCall ($http_method, $api_method, $http_body = NULL, $retries = 3)
328
  {
329
  if (empty($this->api_key))
330
  {
353
  curl_setopt($this->ch, CURLOPT_TIMEOUT, 10);
354
  curl_setopt($this->ch, CURLOPT_ENCODING, "");
355
 
356
+ $user_agent = implode(' ', $this->version_strings);
357
 
358
  if ($this->usesOAuth())
359
  {
389
 
390
  $body = curl_exec($this->ch);
391
 
392
+ $this->last_http_response_status_code = (int)curl_getinfo($this->ch, CURLINFO_HTTP_CODE);
393
 
394
+ if (curl_errno($this->ch)) {
395
+
396
+ static $connectionErrors = array(
397
+ CURLE_COULDNT_RESOLVE_HOST => true,
398
+ CURLE_COULDNT_CONNECT => true,
399
+ CURLE_SSL_CONNECT_ERROR => true,
400
+ CURLE_GOT_NOTHING => true,
401
+ );
402
+
403
+ /*
404
+ * If there is a connection error, retry (using a fresh connection).
405
+ */
406
+ if (array_key_exists(curl_errno($this->ch), $connectionErrors) && $retries > 0) {
407
+ $this->closeTcpConnection();
408
+ return $this->performHttpCall($http_method, $api_method, $http_body, $retries - 1);
409
+ }
410
+
411
+ $exception = Mollie_API_Exception_ConnectionError::fromCurlFailure($this->ch);
412
 
413
  $this->closeTcpConnection();
414
+
415
+ /*
416
+ * We intentionally throw the exception after creating it and closing the connection because closing the
417
+ * connection will reset the cull resource to null.
418
+ */
419
+ throw $exception;
420
  }
421
 
422
  if (!function_exists("curl_reset"))
includes/mollie-api-php/src/Mollie/API/Exception/ConnectionError.php ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Copyright (c) 2013, Mollie B.V.
5
+ * All rights reserved.
6
+ *
7
+ * Redistribution and use in source and binary forms, with or without
8
+ * modification, are permitted provided that the following conditions are met:
9
+ *
10
+ * - Redistributions of source code must retain the above copyright notice,
11
+ * this list of conditions and the following disclaimer.
12
+ * - Redistributions in binary form must reproduce the above copyright
13
+ * notice, this list of conditions and the following disclaimer in the
14
+ * documentation and/or other materials provided with the distribution.
15
+ *
16
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
17
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19
+ * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
20
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
26
+ * DAMAGE.
27
+ *
28
+ * @license Berkeley Software Distribution License (BSD-License 2) http://www.opensource.org/licenses/bsd-license.php
29
+ * @author Mollie B.V. <info@mollie.com>
30
+ * @copyright Mollie B.V.
31
+ * @link https://www.mollie.com
32
+ */
33
+ class Mollie_API_Exception_ConnectionError extends Mollie_API_Exception
34
+ {
35
+ /**
36
+ * @var int
37
+ */
38
+ private $curlErrorCode;
39
+
40
+ /**
41
+ * @var string
42
+ */
43
+ private $curlErrorMessage;
44
+
45
+ /**
46
+ * @param resource $curl
47
+ * @return Mollie_API_Exception_ConnectionError
48
+ */
49
+ public static function fromCurlFailure($curl)
50
+ {
51
+ $e = new static("Unable to communicate with Mollie (" . curl_errno($curl) . "): " . curl_error($curl) . ".");
52
+
53
+ $e->curlErrorCode = curl_errno($curl);
54
+ $e->curlErrorMessage = curl_error($curl);
55
+
56
+ return $e;
57
+ }
58
+
59
+ /**
60
+ * @return int
61
+ */
62
+ public function getCurlErrorCode()
63
+ {
64
+ return $this->curlErrorCode;
65
+ }
66
+
67
+ /**
68
+ * @return string
69
+ */
70
+ public function getCurlErrorMessage()
71
+ {
72
+ return $this->curlErrorMessage;
73
+ }
74
+ }
includes/mollie-api-php/src/Mollie/API/Object/Method.php CHANGED
@@ -96,6 +96,11 @@ class Mollie_API_Object_Method
96
  */
97
  const KBC = "kbc";
98
 
 
 
 
 
 
99
  /**
100
  * Gift cards
101
  */
96
  */
97
  const KBC = "kbc";
98
 
99
+ /**
100
+ * @link https://www.mollie.com/nl/payments/ing-homepay
101
+ */
102
+ const INGHOMEPAY = "inghomepay";
103
+
104
  /**
105
  * Gift cards
106
  */
includes/mollie-api-php/src/Mollie/API/Object/Payment.php CHANGED
@@ -258,6 +258,13 @@ class Mollie_API_Object_Payment
258
  */
259
  public $links;
260
 
 
 
 
 
 
 
 
261
  /**
262
  * Is this payment cancelled?
263
  *
@@ -265,7 +272,7 @@ class Mollie_API_Object_Payment
265
  */
266
  public function isCancelled ()
267
  {
268
- return $this->status == self::STATUS_CANCELLED;
269
  }
270
 
271
  /**
@@ -275,7 +282,7 @@ class Mollie_API_Object_Payment
275
  */
276
  public function isExpired ()
277
  {
278
- return $this->status == self::STATUS_EXPIRED;
279
  }
280
 
281
  /**
@@ -285,7 +292,7 @@ class Mollie_API_Object_Payment
285
  */
286
  public function isOpen ()
287
  {
288
- return $this->status == self::STATUS_OPEN;
289
  }
290
 
291
  /**
@@ -295,7 +302,7 @@ class Mollie_API_Object_Payment
295
  */
296
  public function isPending ()
297
  {
298
- return $this->status == self::STATUS_PENDING;
299
  }
300
 
301
  /**
@@ -318,7 +325,7 @@ class Mollie_API_Object_Payment
318
  */
319
  public function isPaidOut ()
320
  {
321
- return $this->status == self::STATUS_PAIDOUT;
322
  }
323
 
324
  /**
@@ -328,7 +335,7 @@ class Mollie_API_Object_Payment
328
  */
329
  public function isRefunded ()
330
  {
331
- return $this->status == self::STATUS_REFUNDED;
332
  }
333
 
334
  /**
@@ -338,7 +345,7 @@ class Mollie_API_Object_Payment
338
  */
339
  public function isChargedBack ()
340
  {
341
- return $this->status == self::STATUS_CHARGED_BACK;
342
  }
343
 
344
  /**
@@ -348,7 +355,7 @@ class Mollie_API_Object_Payment
348
  */
349
  public function isFailed ()
350
  {
351
- return $this->status == self::STATUS_FAILED;
352
  }
353
 
354
  /**
@@ -369,7 +376,7 @@ class Mollie_API_Object_Payment
369
  */
370
  public function hasRecurringTypeFirst ()
371
  {
372
- return $this->recurringType == self::RECURRINGTYPE_FIRST;
373
  }
374
 
375
  /**
@@ -380,7 +387,7 @@ class Mollie_API_Object_Payment
380
  */
381
  public function hasRecurringTypeRecurring ()
382
  {
383
- return $this->recurringType == self::RECURRINGTYPE_RECURRING;
384
  }
385
 
386
  /**
@@ -423,7 +430,7 @@ class Mollie_API_Object_Payment
423
  {
424
  if ($this->amountRefunded)
425
  {
426
- return floatval($this->amountRefunded);
427
  }
428
 
429
  return 0.0;
@@ -439,7 +446,7 @@ class Mollie_API_Object_Payment
439
  {
440
  if ($this->amountRemaining)
441
  {
442
- return floatval($this->amountRemaining);
443
  }
444
 
445
  return 0.0;
258
  */
259
  public $links;
260
 
261
+ /**
262
+ * Whether or not this payment can be cancelled.
263
+ *
264
+ * @var bool|null
265
+ */
266
+ public $canBeCancelled;
267
+
268
  /**
269
  * Is this payment cancelled?
270
  *
272
  */
273
  public function isCancelled ()
274
  {
275
+ return $this->status === self::STATUS_CANCELLED;
276
  }
277
 
278
  /**
282
  */
283
  public function isExpired ()
284
  {
285
+ return $this->status === self::STATUS_EXPIRED;
286
  }
287
 
288
  /**
292
  */
293
  public function isOpen ()
294
  {
295
+ return $this->status === self::STATUS_OPEN;
296
  }
297
 
298
  /**
302
  */
303
  public function isPending ()
304
  {
305
+ return $this->status === self::STATUS_PENDING;
306
  }
307
 
308
  /**
325
  */
326
  public function isPaidOut ()
327
  {
328
+ return $this->status === self::STATUS_PAIDOUT;
329
  }
330
 
331
  /**
335
  */
336
  public function isRefunded ()
337
  {
338
+ return $this->status === self::STATUS_REFUNDED;
339
  }
340
 
341
  /**
345
  */
346
  public function isChargedBack ()
347
  {
348
+ return $this->status === self::STATUS_CHARGED_BACK;
349
  }
350
 
351
  /**
355
  */
356
  public function isFailed ()
357
  {
358
+ return $this->status === self::STATUS_FAILED;
359
  }
360
 
361
  /**
376
  */
377
  public function hasRecurringTypeFirst ()
378
  {
379
+ return $this->recurringType === self::RECURRINGTYPE_FIRST;
380
  }
381
 
382
  /**
387
  */
388
  public function hasRecurringTypeRecurring ()
389
  {
390
+ return $this->recurringType === self::RECURRINGTYPE_RECURRING;
391
  }
392
 
393
  /**
430
  {
431
  if ($this->amountRefunded)
432
  {
433
+ return (float) $this->amountRefunded;
434
  }
435
 
436
  return 0.0;
446
  {
447
  if ($this->amountRemaining)
448
  {
449
+ return (float) $this->amountRemaining;
450
  }
451
 
452
  return 0.0;
includes/mollie-api-php/src/Mollie/API/Object/Payment/Refund.php CHANGED
@@ -100,7 +100,7 @@ class Mollie_API_Object_Payment_Refund
100
  */
101
  public function isQueued ()
102
  {
103
- return $this->status == self::STATUS_QUEUED;
104
  }
105
 
106
  /**
@@ -110,7 +110,7 @@ class Mollie_API_Object_Payment_Refund
110
  */
111
  public function isPending ()
112
  {
113
- return $this->status == self::STATUS_PENDING;
114
  }
115
 
116
  /**
@@ -120,7 +120,7 @@ class Mollie_API_Object_Payment_Refund
120
  */
121
  public function isProcessing ()
122
  {
123
- return $this->status == self::STATUS_PROCESSING;
124
  }
125
 
126
  /**
@@ -130,6 +130,6 @@ class Mollie_API_Object_Payment_Refund
130
  */
131
  public function isTransferred ()
132
  {
133
- return $this->status == self::STATUS_REFUNDED;
134
  }
135
  }
100
  */
101
  public function isQueued ()
102
  {
103
+ return $this->status === self::STATUS_QUEUED;
104
  }
105
 
106
  /**
110
  */
111
  public function isPending ()
112
  {
113
+ return $this->status === self::STATUS_PENDING;
114
  }
115
 
116
  /**
120
  */
121
  public function isProcessing ()
122
  {
123
+ return $this->status === self::STATUS_PROCESSING;
124
  }
125
 
126
  /**
130
  */
131
  public function isTransferred ()
132
  {
133
+ return $this->status === self::STATUS_REFUNDED;
134
  }
135
  }
includes/mollie-api-php/src/Mollie/API/Object/Profile.php CHANGED
@@ -68,7 +68,7 @@ class Mollie_API_Object_Profile
68
  /**
69
  * Merchant category code.
70
  *
71
- * @see https://www.mollie.com/en/docs/profiles#profiles-object
72
  * @var int
73
  */
74
  public $categoryCode;
@@ -83,7 +83,7 @@ class Mollie_API_Object_Profile
83
  /**
84
  * Review object with "status" property that's either "pending" or "rejected".
85
  *
86
- * @see https://www.mollie.com/en/docs/profiles#profiles-object
87
  *
88
  * @var object|null
89
  */
68
  /**
69
  * Merchant category code.
70
  *
71
+ * @see https://www.mollie.com/en/docs/reference/profiles/get
72
  * @var int
73
  */
74
  public $categoryCode;
83
  /**
84
  * Review object with "status" property that's either "pending" or "rejected".
85
  *
86
+ * @see https://www.mollie.com/en/docs/reference/profiles/get
87
  *
88
  * @var object|null
89
  */
includes/mollie-api-php/src/Mollie/API/Object/Profile/APIKey.php CHANGED
@@ -60,7 +60,7 @@ class Mollie_API_Object_Profile_APIKey
60
  */
61
  public function isLiveKey ()
62
  {
63
- return $this->id == self::LIVE_KEY;
64
  }
65
 
66
  /**
@@ -68,6 +68,6 @@ class Mollie_API_Object_Profile_APIKey
68
  */
69
  public function isTestKey ()
70
  {
71
- return $this->id == self::TEST_KEY;
72
  }
73
  }
60
  */
61
  public function isLiveKey ()
62
  {
63
+ return $this->id === self::LIVE_KEY;
64
  }
65
 
66
  /**
68
  */
69
  public function isTestKey ()
70
  {
71
+ return $this->id === self::TEST_KEY;
72
  }
73
  }
includes/mollie-api-php/src/Mollie/API/Object/Settlement.php CHANGED
@@ -60,7 +60,7 @@ class Mollie_API_Object_Settlement
60
  /**
61
  * Revenues and costs nested per year, per month, and per payment method.
62
  *
63
- * @see https://www.mollie.com/en/docs/settlements#settlements-object
64
  * @var object
65
  */
66
  public $periods;
60
  /**
61
  * Revenues and costs nested per year, per month, and per payment method.
62
  *
63
+ * @see https://www.mollie.com/en/docs/reference/settlements/get#period-object
64
  * @var object
65
  */
66
  public $periods;
includes/mollie-api-php/src/Mollie/API/Resource/Base.php CHANGED
@@ -256,7 +256,7 @@ abstract class Mollie_API_Resource_Base
256
 
257
  if (version_compare(phpversion(), "5.3.0", ">="))
258
  {
259
- if (json_last_error() != JSON_ERROR_NONE)
260
  {
261
  throw new Mollie_API_Exception("Error encoding parameters into JSON: '" . json_last_error() . "'.");
262
  }
@@ -331,7 +331,7 @@ abstract class Mollie_API_Resource_Base
331
  {
332
  $body = $this->api->performHttpCall($http_method, $api_method, $http_body);
333
 
334
- if ($this->api->getLastHttpResponseStatusCode() == Mollie_API_Client::HTTP_STATUS_NO_CONTENT)
335
  {
336
  return NULL;
337
  }
@@ -343,7 +343,7 @@ abstract class Mollie_API_Resource_Base
343
 
344
  $object = @json_decode($body);
345
 
346
- if (json_last_error() != JSON_ERROR_NONE)
347
  {
348
  throw new Mollie_API_Exception("Unable to decode Mollie response: '{$body}'.");
349
  }
@@ -381,7 +381,7 @@ abstract class Mollie_API_Resource_Base
381
  {
382
  list($parent_resource, $child_resource) = explode("_", $this->resource_path, 2);
383
 
384
- if (!strlen($this->parent_id))
385
  {
386
  throw new Mollie_API_Exception("Subresource '{$this->resource_path}' used without parent '$parent_resource' ID.");
387
  }
256
 
257
  if (version_compare(phpversion(), "5.3.0", ">="))
258
  {
259
+ if (json_last_error() !== JSON_ERROR_NONE)
260
  {
261
  throw new Mollie_API_Exception("Error encoding parameters into JSON: '" . json_last_error() . "'.");
262
  }
331
  {
332
  $body = $this->api->performHttpCall($http_method, $api_method, $http_body);
333
 
334
+ if ($this->api->getLastHttpResponseStatusCode() === Mollie_API_Client::HTTP_STATUS_NO_CONTENT)
335
  {
336
  return NULL;
337
  }
343
 
344
  $object = @json_decode($body);
345
 
346
+ if (json_last_error() !== JSON_ERROR_NONE)
347
  {
348
  throw new Mollie_API_Exception("Unable to decode Mollie response: '{$body}'.");
349
  }
381
  {
382
  list($parent_resource, $child_resource) = explode("_", $this->resource_path, 2);
383
 
384
+ if (empty($this->parent_id))
385
  {
386
  throw new Mollie_API_Exception("Subresource '{$this->resource_path}' used without parent '$parent_resource' ID.");
387
  }
includes/mollie-api-php/src/Mollie/API/Resource/Payments.php CHANGED
@@ -31,6 +31,7 @@
31
  *
32
  * @method Mollie_API_Object_Payment[]|Mollie_API_Object_List all($offset = 0, $limit = 0, array $filters = array())
33
  * @method Mollie_API_Object_Payment create(array $data, array $filters = array())
 
34
  */
35
  class Mollie_API_Resource_Payments extends Mollie_API_Resource_Base
36
  {
@@ -113,4 +114,17 @@ class Mollie_API_Resource_Payments extends Mollie_API_Resource_Base
113
 
114
  return $this->copy($result, new Mollie_API_Object_Payment_Refund);
115
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
116
  }
31
  *
32
  * @method Mollie_API_Object_Payment[]|Mollie_API_Object_List all($offset = 0, $limit = 0, array $filters = array())
33
  * @method Mollie_API_Object_Payment create(array $data, array $filters = array())
34
+ * @method Mollie_API_Object_Payment delete($payment_id)
35
  */
36
  class Mollie_API_Resource_Payments extends Mollie_API_Resource_Base
37
  {
114
 
115
  return $this->copy($result, new Mollie_API_Object_Payment_Refund);
116
  }
117
+
118
+ /**
119
+ * Cancel the given Payment. This is just an alias of the 'delete' method.
120
+ *
121
+ * @param string $payment_id
122
+ *
123
+ * @return Mollie_API_Object_Payment
124
+ * @throws Mollie_API_Exception
125
+ */
126
+ public function cancel ($payment_id)
127
+ {
128
+ return $this->delete($payment_id);
129
+ }
130
  }
includes/mollie-api-php/src/Mollie/API/Resource/Profiles/APIKeys.php CHANGED
@@ -55,9 +55,7 @@ class Mollie_API_Resource_Profiles_APIKeys extends Mollie_API_Resource_Base
55
  public function reset ($mode)
56
  {
57
  /** @var Mollie_API_Object_Profile_APIKey $updated_api_key */
58
- $updated_api_key = $this->rest_update($this->getResourcePath(), $mode, '');
59
-
60
- return $updated_api_key;
61
  }
62
 
63
- }
55
  public function reset ($mode)
56
  {
57
  /** @var Mollie_API_Object_Profile_APIKey $updated_api_key */
58
+ return $this->rest_update($this->getResourcePath(), $mode, '');
 
 
59
  }
60
 
61
+ }
includes/mollie-api-php/src/Mollie/API/cacert.pem CHANGED
@@ -1,7 +1,7 @@
1
  ##
2
  ## Bundle of CA Root Certificates
3
  ##
4
- ## Certificate data from Mozilla as of: Wed Nov 2 04:12:05 2016 GMT
5
  ##
6
  ## This is a bundle of X.509 certificates of public Certificate Authorities
7
  ## (CA). These were automatically extracted from Mozilla's root certificates
@@ -14,7 +14,7 @@
14
  ## Just configure this file as the SSLCACertificateFile.
15
  ##
16
  ## Conversion done with mk-ca-bundle.pl version 1.27.
17
- ## SHA256: 17e2a90c8a5cfd6a675b3475d3d467e1ab1fe0d5397e907b08206182389caa08
18
  ##
19
 
20
 
@@ -130,30 +130,6 @@ Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
130
  RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
131
  -----END CERTIFICATE-----
132
 
133
- AddTrust Low-Value Services Root
134
- ================================
135
- -----BEGIN CERTIFICATE-----
136
- MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
137
- QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU
138
- cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw
139
- CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO
140
- ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB
141
- AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6
142
- 54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr
143
- oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1
144
- Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui
145
- GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w
146
- HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD
147
- AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT
148
- RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw
149
- HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt
150
- ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph
151
- iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
152
- eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr
153
- mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj
154
- ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
155
- -----END CERTIFICATE-----
156
-
157
  AddTrust External Root
158
  ======================
159
  -----BEGIN CERTIFICATE-----
@@ -178,54 +154,6 @@ e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
178
  G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
179
  -----END CERTIFICATE-----
180
 
181
- AddTrust Public Services Root
182
- =============================
183
- -----BEGIN CERTIFICATE-----
184
- MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
185
- QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU
186
- cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ
187
- BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l
188
- dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF
189
- AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu
190
- nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i
191
- d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG
192
- Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw
193
- HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G
194
- A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
195
- /zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux
196
- FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G
197
- A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4
198
- JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL
199
- +YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
200
- GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9
201
- Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H
202
- EufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
203
- -----END CERTIFICATE-----
204
-
205
- AddTrust Qualified Certificates Root
206
- ====================================
207
- -----BEGIN CERTIFICATE-----
208
- MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
209
- QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU
210
- cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx
211
- CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ
212
- IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG
213
- 9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx
214
- 64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3
215
- KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o
216
- L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR
217
- wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU
218
- MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/
219
- BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE
220
- BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y
221
- azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD
222
- ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG
223
- GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
224
- dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze
225
- RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB
226
- iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE=
227
- -----END CERTIFICATE-----
228
-
229
  Entrust Root Certification Authority
230
  ====================================
231
  -----BEGIN CERTIFICATE-----
@@ -252,27 +180,6 @@ W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
252
  tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
253
  -----END CERTIFICATE-----
254
 
255
- RSA Security 2048 v3
256
- ====================
257
- -----BEGIN CERTIFICATE-----
258
- MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK
259
- ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy
260
- MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb
261
- BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
262
- AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7
263
- Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb
264
- WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH
265
- KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP
266
- +Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/
267
- MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E
268
- FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY
269
- v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj
270
- 0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj
271
- VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395
272
- nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA
273
- pKnXwiJPZ9d37CAFYd4=
274
- -----END CERTIFICATE-----
275
-
276
  GeoTrust Global CA
277
  ==================
278
  -----BEGIN CERTIFICATE-----
@@ -294,27 +201,6 @@ XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
294
  Mw==
295
  -----END CERTIFICATE-----
296
 
297
- GeoTrust Global CA 2
298
- ====================
299
- -----BEGIN CERTIFICATE-----
300
- MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
301
- R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw
302
- MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
303
- LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
304
- ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/
305
- NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k
306
- LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA
307
- Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b
308
- HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF
309
- MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH
310
- K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7
311
- srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh
312
- ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL
313
- OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC
314
- x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF
315
- H4z1Ir+rzoPz4iIprn2DQKi6bA==
316
- -----END CERTIFICATE-----
317
-
318
  GeoTrust Universal CA
319
  =====================
320
  -----BEGIN CERTIFICATE-----
@@ -440,56 +326,6 @@ Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
440
  12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
441
  -----END CERTIFICATE-----
442
 
443
- Comodo Secure Services root
444
- ===========================
445
- -----BEGIN CERTIFICATE-----
446
- MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
447
- R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
448
- TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw
449
- MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu
450
- Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi
451
- BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
452
- ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP
453
- 9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc
454
- rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC
455
- oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V
456
- p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E
457
- FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
458
- gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj
459
- YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm
460
- aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm
461
- 4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
462
- Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL
463
- DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw
464
- pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H
465
- RR3B7Hzs/Sk=
466
- -----END CERTIFICATE-----
467
-
468
- Comodo Trusted Services root
469
- ============================
470
- -----BEGIN CERTIFICATE-----
471
- MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
472
- R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
473
- TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw
474
- MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h
475
- bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw
476
- IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC
477
- AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7
478
- 3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y
479
- /9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6
480
- juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS
481
- ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud
482
- DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
483
- /zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp
484
- ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl
485
- cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw
486
- uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
487
- pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA
488
- BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l
489
- R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O
490
- 9y5Xt5hwXsjEeLBi
491
- -----END CERTIFICATE-----
492
-
493
  QuoVadis Root CA
494
  ================
495
  -----BEGIN CERTIFICATE-----
@@ -629,32 +465,6 @@ EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
629
  llpwrN9M
630
  -----END CERTIFICATE-----
631
 
632
- UTN USERFirst Hardware Root CA
633
- ==============================
634
- -----BEGIN CERTIFICATE-----
635
- MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE
636
- BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
637
- IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd
638
- BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx
639
- OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0
640
- eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz
641
- ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3
642
- DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI
643
- wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd
644
- tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8
645
- i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf
646
- Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw
647
- gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF
648
- lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF
649
- UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF
650
- BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
651
- //bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW
652
- XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2
653
- lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn
654
- iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67
655
- nfhmqA==
656
- -----END CERTIFICATE-----
657
-
658
  Camerfirma Chambers of Commerce Root
659
  ====================================
660
  -----BEGIN CERTIFICATE-----
@@ -852,38 +662,6 @@ CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy
852
  +fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS
853
  -----END CERTIFICATE-----
854
 
855
- Swisscom Root CA 1
856
- ==================
857
- -----BEGIN CERTIFICATE-----
858
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY
872
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
884
- NY6E0F/6MBr1mmz0DlP5OlvRHA==
885
- -----END CERTIFICATE-----
886
-
887
  DigiCert Assured ID Root CA
888
  ===========================
889
  -----BEGIN CERTIFICATE-----
@@ -1241,33 +1019,6 @@ wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
1241
  ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
1242
  -----END CERTIFICATE-----
1243
 
1244
- WellsSecure Public Root Certificate Authority
1245
- =============================================
1246
- -----BEGIN CERTIFICATE-----
1247
- MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM
1248
- F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw
1249
- NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
1250
- MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl
1251
- bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD
1252
- VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
1253
- CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1
1254
- iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13
1255
- i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8
1256
- bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB
1257
- K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB
1258
- AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu
1259
- cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm
1260
- lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB
1261
- i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww
1262
- GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
1263
- Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI
1264
- K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0
1265
- bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj
1266
- qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es
1267
- E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ
1268
- tylv2G0xffX8oRAHh84vWdw+WNs=
1269
- -----END CERTIFICATE-----
1270
-
1271
  COMODO ECC Certification Authority
1272
  ==================================
1273
  -----BEGIN CERTIFICATE-----
@@ -1285,30 +1036,6 @@ FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
1285
  U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
1286
  -----END CERTIFICATE-----
1287
 
1288
- IGC/A
1289
- =====
1290
- -----BEGIN CERTIFICATE-----
1291
- MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD
1292
- VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE
1293
- Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy
1294
- MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI
1295
- EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT
1296
- STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB
1297
- IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2
1298
- TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW
1299
- So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy
1300
- HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd
1301
- frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ
1302
- tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB
1303
- egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC
1304
- iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK
1305
- q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q
1306
- MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
1307
- Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI
1308
- lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF
1309
- 0mBWWg==
1310
- -----END CERTIFICATE-----
1311
-
1312
  Security Communication EV RootCA1
1313
  =================================
1314
  -----BEGIN CERTIFICATE-----
@@ -1353,46 +1080,6 @@ hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY
1353
  okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
1354
  -----END CERTIFICATE-----
1355
 
1356
- Microsec e-Szigno Root CA
1357
- =========================
1358
- -----BEGIN CERTIFICATE-----
1359
- MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE
1360
- BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL
1361
- EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0
1362
- MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz
1363
- dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT
1364
- GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
1365
- AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG
1366
- d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N
1367
- oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc
1368
- QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ
1369
- PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb
1370
- MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG
1371
- IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD
1372
- VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3
1373
- LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A
1374
- dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
1375
- AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA
1376
- 4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg
1377
- AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA
1378
- egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6
1379
- Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO
1380
- PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv
1381
- c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h
1382
- cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw
1383
- IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT
1384
- WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV
1385
- MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER
1386
- MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp
1387
- Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal
1388
- HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT
1389
- nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE
1390
- aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
1391
- 86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK
1392
- yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB
1393
- S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
1394
- -----END CERTIFICATE-----
1395
-
1396
  Certigna
1397
  ========
1398
  -----BEGIN CERTIFICATE-----
@@ -1518,58 +1205,6 @@ LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M
1518
  dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
1519
  -----END CERTIFICATE-----
1520
 
1521
- Buypass Class 2 CA 1
1522
- ====================
1523
- -----BEGIN CERTIFICATE-----
1524
- MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
1525
- QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2
1526
- MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
1527
- c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI
1528
- hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M
1529
- cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83
1530
- 0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4
1531
- 0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R
1532
- uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC
1533
- MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P
1534
- AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV
1535
- 1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt
1536
- 7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2
1537
- fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w
1538
- wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
1539
- -----END CERTIFICATE-----
1540
-
1541
- EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
1542
- ==========================================================================
1543
- -----BEGIN CERTIFICATE-----
1544
- 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
- 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
- QmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXptZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAe
1547
- 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
- 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
- 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
- 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
- X3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAktiHq6yOU/im/+4mRDGSaBUorzAzu8T2b
1552
- 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
- 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
- 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
- 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
- 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
- qkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMWOeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vm
1558
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
1571
- -----END CERTIFICATE-----
1572
-
1573
  certSIGN ROOT CA
1574
  ================
1575
  -----BEGIN CERTIFICATE-----
@@ -1590,49 +1225,6 @@ vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
1590
  TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
1591
  -----END CERTIFICATE-----
1592
 
1593
- CNNIC ROOT
1594
- ==========
1595
- -----BEGIN CERTIFICATE-----
1596
- MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE
1597
- ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw
1598
- OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw
1599
- ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD
1600
- o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz
1601
- VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT
1602
- VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or
1603
- czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK
1604
- y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC
1605
- wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S
1606
- lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5
1607
- Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM
1608
- O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8
1609
- BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2
1610
- G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m
1611
- mxE=
1612
- -----END CERTIFICATE-----
1613
-
1614
- ApplicationCA - Japanese Government
1615
- ===================================
1616
- -----BEGIN CERTIFICATE-----
1617
- MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT
1618
- SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw
1619
- MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl
1620
- cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
1621
- CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4
1622
- fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN
1623
- wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE
1624
- jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu
1625
- nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU
1626
- WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV
1627
- BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD
1628
- vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs
1629
- o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g
1630
- /DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD
1631
- io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW
1632
- dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
1633
- rosot4LKGAfmt1t06SAZf7IbiVQ=
1634
- -----END CERTIFICATE-----
1635
-
1636
  GeoTrust Primary Certification Authority - G3
1637
  =============================================
1638
  -----BEGIN CERTIFICATE-----
@@ -1763,7 +1355,7 @@ A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx
1763
  AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
1764
  -----END CERTIFICATE-----
1765
 
1766
- NetLock Arany (Class Gold) Főtanúsítvány
1767
  ========================================
1768
  -----BEGIN CERTIFICATE-----
1769
  MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
@@ -1819,34 +1411,6 @@ IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm
1819
  66+KAQ==
1820
  -----END CERTIFICATE-----
1821
 
1822
- Juur-SK
1823
- =======
1824
- -----BEGIN CERTIFICATE-----
1825
- MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA
1826
- c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw
1827
- DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG
1828
- SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy
1829
- aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
1830
- ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf
1831
- TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC
1832
- +Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw
1833
- UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa
1834
- Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF
1835
- MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD
1836
- HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh
1837
- AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA
1838
- cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr
1839
- AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw
1840
- cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE
1841
- FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G
1842
- A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo
1843
- ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL
1844
- abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678
1845
- IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh
1846
- Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2
1847
- yyqcjg==
1848
- -----END CERTIFICATE-----
1849
-
1850
  Hongkong Post Root CA 1
1851
  =======================
1852
  -----BEGIN CERTIFICATE-----
@@ -2279,7 +1843,7 @@ Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
2279
  03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
2280
  -----END CERTIFICATE-----
2281
 
2282
- Certinomis - Autorité Racine
2283
  ============================
2284
  -----BEGIN CERTIFICATE-----
2285
  MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
@@ -2310,41 +1874,6 @@ wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/
2310
  vgt2Fl43N+bYdJeimUV5
2311
  -----END CERTIFICATE-----
2312
 
2313
- Root CA Generalitat Valenciana
2314
- ==============================
2315
- -----BEGIN CERTIFICATE-----
2316
- MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE
2317
- ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290
2318
- IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3
2319
- WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE
2320
- CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G
2321
- CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2
2322
- F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B
2323
- ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ
2324
- D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte
2325
- JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB
2326
- AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n
2327
- dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB
2328
- ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl
2329
- AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA
2330
- YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy
2331
- AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
2332
- aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt
2333
- AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA
2334
- YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu
2335
- AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA
2336
- OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0
2337
- dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV
2338
- BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G
2339
- A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S
2340
- b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh
2341
- TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz
2342
- Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63
2343
- NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH
2344
- iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt
2345
- +GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
2346
- -----END CERTIFICATE-----
2347
-
2348
  TWCA Root Certification Authority
2349
  =================================
2350
  -----BEGIN CERTIFICATE-----
@@ -2790,93 +2319,6 @@ poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y
2790
  eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km
2791
  -----END CERTIFICATE-----
2792
 
2793
- China Internet Network Information Center EV Certificates Root
2794
- ==============================================================
2795
- -----BEGIN CERTIFICATE-----
2796
- MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCQ04xMjAwBgNV
2797
- BAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyMUcwRQYDVQQDDD5D
2798
- aGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMg
2799
- Um9vdDAeFw0xMDA4MzEwNzExMjVaFw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAG
2800
- A1UECgwpQ2hpbmEgSW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMM
2801
- PkNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRpZmljYXRl
2802
- cyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z7r07eKpkQ0H1UN+U8i6y
2803
- jUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV
2804
- 98YPjUesWgbdYavi7NifFy2cyjw1l1VxzUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2H
2805
- klY0bBoQCxfVWhyXWIQ8hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23
2806
- KzhmBsUs4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54ugQEC
2807
- 7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oYNJKiyoOCWTAPBgNV
2808
- HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfHJLOcfA22KlT5uqGDSSosqD
2809
- glkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd5
2810
- 0XPFtQO3WKwMVC/GVhMPMdoG52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM
2811
- 7+czV0I664zBechNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws
2812
- ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrIzo9uoV1/A3U0
2813
- 5K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATywy39FCqQmbkHzJ8=
2814
- -----END CERTIFICATE-----
2815
-
2816
- Swisscom Root CA 2
2817
- ==================
2818
- -----BEGIN CERTIFICATE-----
2819
- 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
- EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
2821
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- NLCK/RJOlrDrcH+eOfdmQrGrrFLadkBXeyq96G4DsguAhYidDMfCd7Camlf0uPoTXGiTOmekl9Ab
2831
- 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
- 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
- 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
- HQYDVR0hBBYwFDASBgdghXQBUwIBBgdghXQBUwIBMBIGA1UdEwEB/wQIMAYBAf8CAQcwHQYDVR0O
2835
- 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
- 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
- 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
- 82YqZh6NM4OKb3xuqFp1mrjX2lhIREeoTPpMSQpKwhI3qEAMw8jh0FcNlzKVxzqfl9NX+Ave5XLz
2839
- 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
- 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
- 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
- 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
- +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
- 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
2845
- 5OfNeOI5wSsSnqaeG8XmDtkx2Q==
2846
- -----END CERTIFICATE-----
2847
-
2848
- Swisscom Root EV CA 2
2849
- =====================
2850
- -----BEGIN CERTIFICATE-----
2851
- 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
- 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
- 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
- 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
- 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
- Q0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMT3HS9X6lds93BdY7BxUglgRCgz
2857
- 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
- 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
- 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
- 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
- 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
- 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
- m3Rc6I8k9l2dRsQs0h4rIWqDJ2dVSqTjyDKXZpBy2uPUZC5f46Fq9mDU5zXNysRojddxyNMkM3Ox
2864
- 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
- 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
- BAQDAgGGMB0GA1UdIQQWMBQwEgYHYIV0AVMCAgYHYIV0AVMCAjASBgNVHRMBAf8ECDAGAQH/AgED
2867
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
2877
- l8PVP3wbI+2ksx0WckNLIOFZfsLorSa/ovc=
2878
- -----END CERTIFICATE-----
2879
-
2880
  CA Disig Root R1
2881
  ================
2882
  -----BEGIN CERTIFICATE-----
@@ -3674,7 +3116,7 @@ kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C
3674
  ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
3675
  -----END CERTIFICATE-----
3676
 
3677
- TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5
3678
  ====================================================
3679
  -----BEGIN CERTIFICATE-----
3680
  MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN
@@ -3698,30 +3140,6 @@ lpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CFYv4HAqGEVka+lgqaE9chTLd8
3698
  B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU=
3699
  -----END CERTIFICATE-----
3700
 
3701
- TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H6
3702
- ====================================================
3703
- -----BEGIN CERTIFICATE-----
3704
- MIIEJjCCAw6gAwIBAgIGfaHyZeyKMA0GCSqGSIb3DQEBCwUAMIGxMQswCQYDVQQGEwJUUjEPMA0G
3705
- A1UEBwwGQW5rYXJhMU0wSwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
3706
- acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBF
3707
- bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg2MB4XDTEzMTIxODA5
3708
- MDQxMFoXDTIzMTIxNjA5MDQxMFowgbExCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExTTBL
3709
- BgNVBAoMRFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBCaWxpxZ9pbSBHw7x2ZW5sacSf
3710
- aSBIaXptZXRsZXJpIEEuxZ4uMUIwQAYDVQQDDDlUw5xSS1RSVVNUIEVsZWt0cm9uaWsgU2VydGlm
3711
- aWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLEgSDYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
3712
- AoIBAQCdsGjW6L0UlqMACprx9MfMkU1xeHe59yEmFXNRFpQJRwXiM/VomjX/3EsvMsew7eKC5W/a
3713
- 2uqsxgbPJQ1BgfbBOCK9+bGlprMBvD9QFyv26WZV1DOzXPhDIHiTVRZwGTLmiddk671IUP320EED
3714
- wnS3/faAz1vFq6TWlRKb55cTMgPp1KtDWxbtMyJkKbbSk60vbNg9tvYdDjTu0n2pVQ8g9P0pu5Fb
3715
- HH3GQjhtQiht1AH7zYiXSX6484P4tZgvsycLSF5W506jM7NE1qXyGJTtHB6plVxiSvgNZ1GpryHV
3716
- +DKdeboaX+UEVU0TRv/yz3THGmNtwx8XEsMeED5gCLMxAgMBAAGjQjBAMB0GA1UdDgQWBBTdVRcT
3717
- 9qzoSCHK77Wv0QAy7Z6MtTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
3718
- 9w0BAQsFAAOCAQEAb1gNl0OqFlQ+v6nfkkU/hQu7VtMMUszIv3ZnXuaqs6fvuay0EBQNdH49ba3R
3719
- fdCaqaXKGDsCQC4qnFAUi/5XfldcEQlLNkVS9z2sFP1E34uXI9TDwe7UU5X+LEr+DXCqu4svLcsy
3720
- o4LyVN/Y8t3XSHLuSqMplsNEzm61kod2pLv0kmzOLBQJZo6NrRa1xxsJYTvjIKIDgI6tflEATseW
3721
- hvtDmHd9KMeP2Cpu54Rvl0EpABZeTeIT6lnAY2c6RPuY/ATTMHKm9ocJV612ph1jmv3XZch4gyt1
3722
- O6VbuA1df74jrlZVlFjvH4GMKrLN5ptjnhi85WsGtAuYSyher4hYyw==
3723
- -----END CERTIFICATE-----
3724
-
3725
  Certinomis - Root CA
3726
  ====================
3727
  -----BEGIN CERTIFICATE-----
@@ -4064,3 +3482,165 @@ YVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPAmRGunUHBcnWEvgJBQl9n
4064
  JEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57demyPxgcYxn/eR44/KJ4EBs+lVDR3veyJ
4065
  m+kXQ99b21/+jh5Xos1AnX5iItreGCc=
4066
  -----END CERTIFICATE-----
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ##
2
  ## Bundle of CA Root Certificates
3
  ##
4
+ ## Certificate data from Mozilla as of: Wed Sep 20 03:12:05 2017 GMT
5
  ##
6
  ## This is a bundle of X.509 certificates of public Certificate Authorities
7
  ## (CA). These were automatically extracted from Mozilla's root certificates
14
  ## Just configure this file as the SSLCACertificateFile.
15
  ##
16
  ## Conversion done with mk-ca-bundle.pl version 1.27.
17
+ ## SHA256: 2b2dbe5244e0047e088c597998883a913f6c5fffd1cb5c0fe5a368c8466cb2ec
18
  ##
19
 
20
 
130
  RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
131
  -----END CERTIFICATE-----
132
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  AddTrust External Root
134
  ======================
135
  -----BEGIN CERTIFICATE-----
154
  G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
155
  -----END CERTIFICATE-----
156
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  Entrust Root Certification Authority
158
  ====================================
159
  -----BEGIN CERTIFICATE-----
180
  tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
181
  -----END CERTIFICATE-----
182
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
183
  GeoTrust Global CA
184
  ==================
185
  -----BEGIN CERTIFICATE-----
201
  Mw==
202
  -----END CERTIFICATE-----
203
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
204
  GeoTrust Universal CA
205
  =====================
206
  -----BEGIN CERTIFICATE-----
326
  12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
327
  -----END CERTIFICATE-----
328
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
329
  QuoVadis Root CA
330
  ================
331
  -----BEGIN CERTIFICATE-----
465
  llpwrN9M
466
  -----END CERTIFICATE-----
467
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
468
  Camerfirma Chambers of Commerce Root
469
  ====================================
470
  -----BEGIN CERTIFICATE-----
662
  +fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS
663
  -----END CERTIFICATE-----
664
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
665
  DigiCert Assured ID Root CA
666
  ===========================
667
  -----BEGIN CERTIFICATE-----
1019
  ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
1020
  -----END CERTIFICATE-----
1021
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1022
  COMODO ECC Certification Authority
1023
  ==================================
1024
  -----BEGIN CERTIFICATE-----
1036
  U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
1037
  -----END CERTIFICATE-----
1038
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1039
  Security Communication EV RootCA1
1040
  =================================
1041
  -----BEGIN CERTIFICATE-----
1080
  okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
1081
  -----END CERTIFICATE-----
1082
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1083
  Certigna
1084
  ========
1085
  -----BEGIN CERTIFICATE-----
1205
  dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
1206
  -----END CERTIFICATE-----
1207
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1208
  certSIGN ROOT CA
1209
  ================
1210
  -----BEGIN CERTIFICATE-----
1225
  TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
1226
  -----END CERTIFICATE-----
1227
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1228
  GeoTrust Primary Certification Authority - G3
1229
  =============================================
1230
  -----BEGIN CERTIFICATE-----
1355
  AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
1356
  -----END CERTIFICATE-----
1357
 
1358
+ NetLock Arany (Class Gold) Főtanúsítvány
1359
  ========================================
1360
  -----BEGIN CERTIFICATE-----
1361
  MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
1411
  66+KAQ==
1412
  -----END CERTIFICATE-----
1413
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1414
  Hongkong Post Root CA 1
1415
  =======================
1416
  -----BEGIN CERTIFICATE-----
1843
  03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
1844
  -----END CERTIFICATE-----
1845
 
1846
+ Certinomis - Autorité Racine
1847
  ============================
1848
  -----BEGIN CERTIFICATE-----
1849
  MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
1874
  vgt2Fl43N+bYdJeimUV5
1875
  -----END CERTIFICATE-----
1876
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1877
  TWCA Root Certification Authority
1878
  =================================
1879
  -----BEGIN CERTIFICATE-----
2319
  eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km
2320
  -----END CERTIFICATE-----
2321
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2322
  CA Disig Root R1
2323
  ================
2324
  -----BEGIN CERTIFICATE-----
3116
  ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
3117
  -----END CERTIFICATE-----
3118
 
3119
+ TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5
3120
  ====================================================
3121
  -----BEGIN CERTIFICATE-----
3122
  MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN
3140
  B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU=
3141
  -----END CERTIFICATE-----
3142
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3143
  Certinomis - Root CA
3144
  ====================
3145
  -----BEGIN CERTIFICATE-----
3482
  JEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57demyPxgcYxn/eR44/KJ4EBs+lVDR3veyJ
3483
  m+kXQ99b21/+jh5Xos1AnX5iItreGCc=
3484
  -----END CERTIFICATE-----
3485
+
3486
+ AC RAIZ FNMT-RCM
3487
+ ================
3488
+ -----BEGIN CERTIFICATE-----
3489
+ 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
3514
+ -----END CERTIFICATE-----
3515
+
3516
+ Amazon Root CA 1
3517
+ ================
3518
+ -----BEGIN CERTIFICATE-----
3519
+ MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsFADA5MQswCQYD
3520
+ VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAxMB4XDTE1
3521
+ MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv
3522
+ bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
3523
+ ggEBALJ4gHHKeNXjca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgH
3524
+ FzZM9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qwIFAGbHrQ
3525
+ gLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6VOujw5H5SNz/0egwLX0t
3526
+ dHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L93FcXmn/6pUCyziKrlA4b9v7LWIbxcce
3527
+ VOF34GfID5yHI9Y/QCB/IIDEgEw+OyQmjgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB
3528
+ /zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3
3529
+ DQEBCwUAA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDIU5PM
3530
+ CCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUsN+gDS63pYaACbvXy
3531
+ 8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vvo/ufQJVtMVT8QtPHRh8jrdkPSHCa
3532
+ 2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2
3533
+ xJNDd2ZhwLnoQdeXeGADbkpyrqXRfboQnoZsG4q5WTP468SQvvG5
3534
+ -----END CERTIFICATE-----
3535
+
3536
+ Amazon Root CA 2
3537
+ ================
3538
+ -----BEGIN CERTIFICATE-----
3539
+ MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwFADA5MQswCQYD
3540
+ VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAyMB4XDTE1
3541
+ MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv
3542
+ bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
3543
+ ggIBAK2Wny2cSkxKgXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4
3544
+ kHbZW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg1dKmSYXp
3545
+ N+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K8nu+NQWpEjTj82R0Yiw9
3546
+ AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvd
3547
+ fLC6HM783k81ds8P+HgfajZRRidhW+mez/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAEx
3548
+ kv8LV/SasrlX6avvDXbR8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSS
3549
+ btqDT6ZjmUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz7Mt0
3550
+ Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6+XUyo05f7O0oYtlN
3551
+ c/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI0u1ufm8/0i2BWSlmy5A5lREedCf+
3552
+ 3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSw
3553
+ DPBMMPQFWAJI/TPlUq9LhONmUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oA
3554
+ A7CXDpO8Wqj2LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY
3555
+ +gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kSk5Nrp+gvU5LE
3556
+ YFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl7uxMMne0nxrpS10gxdr9HIcW
3557
+ xkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygmbtmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQ
3558
+ gj9sAq+uEjonljYE1x2igGOpm/HlurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbW
3559
+ aQbLU8uz/mtBzUF+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoV
3560
+ Yh63n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE76KlXIx3
3561
+ KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H9jVlpNMKVv/1F2Rs76gi
3562
+ JUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT4PsJYGw=
3563
+ -----END CERTIFICATE-----
3564
+
3565
+ Amazon Root CA 3
3566
+ ================
3567
+ -----BEGIN CERTIFICATE-----
3568
+ MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG
3569
+ EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy
3570
+ NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ
3571
+ MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB
3572
+ f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr
3573
+ Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43
3574
+ rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc
3575
+ eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw==
3576
+ -----END CERTIFICATE-----
3577
+
3578
+ Amazon Root CA 4
3579
+ ================
3580
+ -----BEGIN CERTIFICATE-----
3581
+ MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYDVQQG
3582
+ EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTE1MDUy
3583
+ NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ
3584
+ MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN
3585
+ /sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri
3586
+ 83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
3587
+ HQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WBMAoGCCqGSM49BAMDA2gA
3588
+ MGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlwCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1
3589
+ AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJElMzrdfkviT8tQp21KW8EA==
3590
+ -----END CERTIFICATE-----
3591
+
3592
+ LuxTrust Global Root 2
3593
+ ======================
3594
+ -----BEGIN CERTIFICATE-----
3595
+ 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
3621
+ -----END CERTIFICATE-----
3622
+
3623
+ TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1
3624
+ =============================================
3625
+ -----BEGIN CERTIFICATE-----
3626
+ MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIxGDAWBgNVBAcT
3627
+ D0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxpbXNlbCB2ZSBUZWtub2xvamlr
3628
+ IEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0wKwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24g
3629
+ TWVya2V6aSAtIEthbXUgU00xNjA0BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRp
3630
+ ZmlrYXNpIC0gU3VydW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYD
3631
+ VQQGEwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXllIEJpbGlt
3632
+ c2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklUQUsxLTArBgNVBAsTJEth
3633
+ bXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBTTTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11
3634
+ IFNNIFNTTCBLb2sgU2VydGlmaWthc2kgLSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
3635
+ MIIBCgKCAQEAr3UwM6q7a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y8
3636
+ 6Ij5iySrLqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INrN3wc
3637
+ wv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2XYacQuFWQfw4tJzh0
3638
+ 3+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/iSIzL+aFCr2lqBs23tPcLG07xxO9
3639
+ WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4fAJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQU
3640
+ ZT/HiobGPN08VFw1+DrtUgxHV8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJ
3641
+ KoZIhvcNAQELBQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh
3642
+ AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPfIPP54+M638yc
3643
+ lNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4lzwDGrpDxpa5RXI4s6ehlj2R
3644
+ e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0j
3645
+ q5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM=
3646
+ -----END CERTIFICATE-----
includes/mollie/wc/gateway/abstract.php CHANGED
@@ -38,6 +38,13 @@ abstract class Mollie_WC_Gateway_Abstract extends WC_Payment_Gateway
38
  */
39
  public $max_amount = 0;
40
 
 
 
 
 
 
 
 
41
  /**
42
  *
43
  */
@@ -245,35 +252,46 @@ abstract class Mollie_WC_Gateway_Abstract extends WC_Payment_Gateway
245
  return true;
246
  }
247
 
248
- /**
249
- * Check if the gateway is available for use
250
- *
251
- * @return bool
252
- */
253
- public function is_available()
254
- {
255
- if (!parent::is_available())
256
- {
257
- return false;
258
- }
259
 
260
- if (WC()->cart && $this->get_order_total() > 0)
261
- {
262
- // Validate min amount
263
- if (0 < $this->min_amount && $this->min_amount > $this->get_order_total())
264
- {
265
- return false;
266
- }
267
 
268
- // Validate max amount
269
- if (0 < $this->max_amount && $this->max_amount < $this->get_order_total())
270
- {
271
- return false;
272
- }
273
- }
274
 
275
- return true;
276
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
277
 
278
  /**
279
  * Will the payment confirmation be delivered after a couple of days.
@@ -603,8 +621,9 @@ abstract class Mollie_WC_Gateway_Abstract extends WC_Payment_Gateway
603
  * @param WC_Order $order
604
  * @param string $new_status
605
  * @param string $note
 
606
  */
607
- public function updateOrderStatus (WC_Order $order, $new_status, $note = '')
608
  {
609
  $order->update_status($new_status, $note);
610
 
@@ -613,12 +632,14 @@ abstract class Mollie_WC_Gateway_Abstract extends WC_Payment_Gateway
613
  switch ($new_status)
614
  {
615
  case self::STATUS_ON_HOLD:
616
- if (!get_post_meta($order->id, '_order_stock_reduced', $single = true))
617
- {
618
- // Reduce order stock
619
- $order->reduce_order_stock();
620
 
621
- Mollie_WC_Plugin::debug(__METHOD__ . ": Stock for order {$order->id} reduced.");
 
 
 
 
 
 
622
  }
623
 
624
  break;
@@ -642,12 +663,14 @@ abstract class Mollie_WC_Gateway_Abstract extends WC_Payment_Gateway
642
  switch ($new_status)
643
  {
644
  case self::STATUS_ON_HOLD:
645
- if ( ! $order->get_meta( '_order_stock_reduced', true ) )
646
- {
647
- // Reduce order stock
648
- wc_reduce_stock_levels( $order->get_id() );
649
 
650
- Mollie_WC_Plugin::debug(__METHOD__ . ": Stock for order {$order->get_id()} reduced.");
 
 
 
 
 
 
651
  }
652
 
653
  break;
@@ -735,12 +758,14 @@ abstract class Mollie_WC_Gateway_Abstract extends WC_Payment_Gateway
735
  return;
736
  }
737
 
738
- // Order does not need a payment
739
- if (!$this->orderNeedsPayment($order))
740
- {
741
- $this->handlePayedOrderWebhook($order, $payment);
742
- return;
743
- }
 
 
744
 
745
  if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
746
  Mollie_WC_Plugin::debug($this->id . ": Mollie payment {$payment->id} (" . $payment->mode . ") webhook call for order {$order->id}.", true);
@@ -748,7 +773,7 @@ abstract class Mollie_WC_Gateway_Abstract extends WC_Payment_Gateway
748
  Mollie_WC_Plugin::debug($this->id . ": Mollie payment {$payment->id} (" . $payment->mode . ") webhook call for order {$order->get_id()}.", true);
749
  }
750
 
751
- $method_name = 'onWebhook' . ucfirst($payment->status);
752
 
753
  if (method_exists($this, $method_name))
754
  {
@@ -958,6 +983,54 @@ abstract class Mollie_WC_Gateway_Abstract extends WC_Payment_Gateway
958
 
959
  }
960
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
961
  /**
962
  * @param WC_Order $order
963
  *
@@ -1351,7 +1424,8 @@ abstract class Mollie_WC_Gateway_Abstract extends WC_Payment_Gateway
1351
  {
1352
  $site_url = get_site_url();
1353
 
1354
- $return_url = WC()->api_request_url('mollie_return');
 
1355
 
1356
  if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
1357
  $return_url = add_query_arg(array(
@@ -1379,7 +1453,8 @@ abstract class Mollie_WC_Gateway_Abstract extends WC_Payment_Gateway
1379
  {
1380
  $site_url = get_site_url();
1381
 
1382
- $webhook_url = WC()->api_request_url(strtolower(get_class($this)));
 
1383
 
1384
  if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
1385
  $webhook_url = add_query_arg(array(
@@ -1399,6 +1474,22 @@ abstract class Mollie_WC_Gateway_Abstract extends WC_Payment_Gateway
1399
  return apply_filters(Mollie_WC_Plugin::PLUGIN_ID . '_webhook_url', $webhook_url, $order);
1400
  }
1401
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1402
  /**
1403
  * Check if any multi language plugins are enabled and return the correct site url.
1404
  *
@@ -1535,5 +1626,23 @@ abstract class Mollie_WC_Gateway_Abstract extends WC_Payment_Gateway
1535
  return ( function_exists( 'wcs_order_contains_subscription' ) && ( wcs_order_contains_subscription( $order_id ) || wcs_is_subscription( $order_id ) || wcs_order_contains_renewal( $order_id ) ) );
1536
  }
1537
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1538
 
1539
  }
38
  */
39
  public $max_amount = 0;
40
 
41
+ /**
42
+ * Recurring total, zero does not define a recurring total
43
+ *
44
+ * @var int
45
+ */
46
+ public $recurring_total = 0;
47
+
48
  /**
49
  *
50
  */
252
  return true;
253
  }
254
 
255
+ /**
256
+ * Check if the gateway is available for use
257
+ *
258
+ * @return bool
259
+ */
260
+ public function is_available() {
 
 
 
 
 
261
 
262
+ // In WooCommerce check if the gateway is available for use (WooCommerce settings)
263
+ if ( $this->enabled != 'yes' ) {
 
 
 
 
 
264
 
265
+ return false;
266
+ }
 
 
 
 
267
 
268
+ // Only in WooCommerce checkout, check min/max amounts
269
+ if ( WC()->cart ) {
270
+
271
+ // Get the regular order total for this order
272
+ $order_total = $this->get_order_total();
273
+
274
+ // If WooCommerce Subscriptions is installed, get the recurring order total
275
+ if ( class_exists( 'WC_Subscriptions_Product' ) ) {
276
+ $order_total = $this->get_recurring_total();
277
+ }
278
+
279
+ // If order total is more then zero, check min/max amounts
280
+ if ( $order_total > 0 ) {
281
+ // Validate min amount
282
+ if ( 0 < $this->min_amount && $this->min_amount > $order_total ) {
283
+ return false;
284
+ }
285
+
286
+ // Validate max amount
287
+ if ( 0 < $this->max_amount && $this->max_amount < $order_total ) {
288
+ return false;
289
+ }
290
+ }
291
+ }
292
+
293
+ return true;
294
+ }
295
 
296
  /**
297
  * Will the payment confirmation be delivered after a couple of days.
621
  * @param WC_Order $order
622
  * @param string $new_status
623
  * @param string $note
624
+ * @param bool $restore_stock
625
  */
626
+ public function updateOrderStatus (WC_Order $order, $new_status, $note = '', $restore_stock = true )
627
  {
628
  $order->update_status($new_status, $note);
629
 
632
  switch ($new_status)
633
  {
634
  case self::STATUS_ON_HOLD:
 
 
 
 
635
 
636
+ if ( $restore_stock == true ) {
637
+ if ( ! get_post_meta( $order->id, '_order_stock_reduced', $single = true ) ) {
638
+ // Reduce order stock
639
+ $order->reduce_order_stock();
640
+
641
+ Mollie_WC_Plugin::debug( __METHOD__ . ": Stock for order {$order->id} reduced." );
642
+ }
643
  }
644
 
645
  break;
663
  switch ($new_status)
664
  {
665
  case self::STATUS_ON_HOLD:
 
 
 
 
666
 
667
+ if ( $restore_stock == true ) {
668
+ if ( ! $order->get_meta( '_order_stock_reduced', true ) ) {
669
+ // Reduce order stock
670
+ wc_reduce_stock_levels( $order->get_id() );
671
+
672
+ Mollie_WC_Plugin::debug( __METHOD__ . ": Stock for order {$order->get_id()} reduced." );
673
+ }
674
  }
675
 
676
  break;
758
  return;
759
  }
760
 
761
+ // Order does not need a payment
762
+ if ( ! $this->orderNeedsPayment( $order ) &&
763
+ ( $payment->status != 'charged_back' )
764
+ ) {
765
+ $this->handlePayedOrderWebhook( $order, $payment );
766
+
767
+ return;
768
+ }
769
 
770
  if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
771
  Mollie_WC_Plugin::debug($this->id . ": Mollie payment {$payment->id} (" . $payment->mode . ") webhook call for order {$order->id}.", true);
773
  Mollie_WC_Plugin::debug($this->id . ": Mollie payment {$payment->id} (" . $payment->mode . ") webhook call for order {$order->get_id()}.", true);
774
  }
775
 
776
+ $method_name = 'onWebhook' . str_replace( '_', '', ucfirst($payment->status));
777
 
778
  if (method_exists($this, $method_name))
779
  {
983
 
984
  }
985
 
986
+ /**
987
+ * @param WC_Order $order
988
+ * @param Mollie_API_Object_Payment $payment
989
+ */
990
+ protected function onWebhookChargedback( WC_Order $order, Mollie_API_Object_Payment $payment ) {
991
+
992
+ // Get order ID in the correct way depending on WooCommerce version
993
+ if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
994
+ $order_id = $order->id;
995
+ } else {
996
+ $order_id = $order->get_id();
997
+ }
998
+
999
+ // Add messages to log
1000
+ Mollie_WC_Plugin::debug( __METHOD__ . ' called for order ' . $order_id );
1001
+
1002
+ // New order status
1003
+ $new_order_status = self::STATUS_ON_HOLD;
1004
+
1005
+ // Overwrite plugin-wide
1006
+ $new_order_status = apply_filters( Mollie_WC_Plugin::PLUGIN_ID . '_order_status_on_hold', $new_order_status );
1007
+
1008
+ // Overwrite gateway-wide
1009
+ $new_order_status = apply_filters( Mollie_WC_Plugin::PLUGIN_ID . '_order_status_on_hold_' . $this->id, $new_order_status );
1010
+
1011
+ $paymentMethodTitle = $this->getPaymentMethodTitle( $payment );
1012
+
1013
+ // Update order status for order with charged_back payment, don't restore stock
1014
+ $this->updateOrderStatus(
1015
+ $order,
1016
+ $new_order_status,
1017
+ sprintf(
1018
+ /* translators: Placeholder 1: payment method title, placeholder 2: payment ID */
1019
+ __( '%s payment charged back via Mollie (%s). You will need to manually review the payment and adjust product stocks if you use them.', 'mollie-payments-for-woocommerce' ),
1020
+ $paymentMethodTitle,
1021
+ $payment->id . ( $payment->mode == 'test' ? ( ' - ' . __( 'test mode', 'mollie-payments-for-woocommerce' ) ) : '' )
1022
+ ),
1023
+ $restore_stock = false
1024
+ );
1025
+
1026
+ // Send a "Failed order" email to notify the admin
1027
+ $emails = WC()->mailer()->get_emails();
1028
+ if ( ! empty( $emails ) && ! empty( $order_id ) ) {
1029
+ $emails['WC_Email_Failed_Order']->trigger( $order_id );
1030
+ }
1031
+
1032
+ }
1033
+
1034
  /**
1035
  * @param WC_Order $order
1036
  *
1424
  {
1425
  $site_url = get_site_url();
1426
 
1427
+ $return_url = WC()->api_request_url( 'mollie_return' );
1428
+ $return_url = $this->removeTrailingSlashAfterParamater( $return_url );
1429
 
1430
  if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
1431
  $return_url = add_query_arg(array(
1453
  {
1454
  $site_url = get_site_url();
1455
 
1456
+ $webhook_url = WC()->api_request_url( strtolower( get_class( $this ) ) );
1457
+ $webhook_url = $this->removeTrailingSlashAfterParamater( $webhook_url );
1458
 
1459
  if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
1460
  $webhook_url = add_query_arg(array(
1474
  return apply_filters(Mollie_WC_Plugin::PLUGIN_ID . '_webhook_url', $webhook_url, $order);
1475
  }
1476
 
1477
+ /**
1478
+ * Remove a trailing slash after a query string if there is one in the WooCommerce API request URL.
1479
+ * For example WMPL adds a query string with trailing slash like /?lang=de/ to WC()->api_request_url.
1480
+ * This causes issues when we append to that URL with add_query_arg.
1481
+ *
1482
+ * @return string
1483
+ */
1484
+ protected function removeTrailingSlashAfterParamater( $url ) {
1485
+
1486
+ if ( strpos( $url, '?' ) ) {
1487
+ $url = untrailingslashit( $url );
1488
+ }
1489
+
1490
+ return $url;
1491
+ }
1492
+
1493
  /**
1494
  * Check if any multi language plugins are enabled and return the correct site url.
1495
  *
1626
  return ( function_exists( 'wcs_order_contains_subscription' ) && ( wcs_order_contains_subscription( $order_id ) || wcs_is_subscription( $order_id ) || wcs_order_contains_renewal( $order_id ) ) );
1627
  }
1628
 
1629
+ /**
1630
+ * @return mixed
1631
+ */
1632
+ protected function get_recurring_total() {
1633
+
1634
+ if ( isset( WC()->cart ) ) {
1635
+
1636
+ foreach ( WC()->cart->cart_contents as $item_key => $item ) {
1637
+ $item_quantity = $item['quantity'];
1638
+ $item_price = WC_Subscriptions_Product::get_price( $item['product_id'] );
1639
+ $item_recurring_total = $item_quantity * $item_price;
1640
+ $this->recurring_total += $item_recurring_total;
1641
+ }
1642
+ }
1643
+
1644
+ return $this->recurring_total;
1645
+ }
1646
+
1647
 
1648
  }
includes/mollie/wc/gateway/abstractsubscription.php CHANGED
@@ -188,6 +188,7 @@ abstract class Mollie_WC_Gateway_AbstractSubscription extends Mollie_WC_Gateway_
188
  $methods_needing_update = array (
189
  'mollie_wc_gateway_directdebit',
190
  'mollie_wc_gateway_ideal',
 
191
  'mollie_wc_gateway_mistercash',
192
  'mollie_wc_gateway_bancontact',
193
  'mollie_wc_gateway_sofort',
@@ -284,7 +285,7 @@ abstract class Mollie_WC_Gateway_AbstractSubscription extends Mollie_WC_Gateway_
284
  Mollie_WC_Plugin::debug($this->id . ': Valid mandate ' . $renewal_order_id);
285
  $payment = Mollie_WC_Plugin::getApiHelper()->getApiClient($test_mode)->payments->create($data);
286
  } else {
287
- Mollie_WC_Plugin::debug($this->id . 'Payment problem ' . $renewal_order_id);
288
  throw new Mollie_API_Exception(__('Payment cannot be processed, no valid mandate.', 'mollie-payments-for-woocommerce-mandate-problem'));
289
  }
290
  }
188
  $methods_needing_update = array (
189
  'mollie_wc_gateway_directdebit',
190
  'mollie_wc_gateway_ideal',
191
+ 'mollie_wc_gateway_inghomepay',
192
  'mollie_wc_gateway_mistercash',
193
  'mollie_wc_gateway_bancontact',
194
  'mollie_wc_gateway_sofort',
285
  Mollie_WC_Plugin::debug($this->id . ': Valid mandate ' . $renewal_order_id);
286
  $payment = Mollie_WC_Plugin::getApiHelper()->getApiClient($test_mode)->payments->create($data);
287
  } else {
288
+ Mollie_WC_Plugin::debug($this->id . ': Payment problem ' . $renewal_order_id);
289
  throw new Mollie_API_Exception(__('Payment cannot be processed, no valid mandate.', 'mollie-payments-for-woocommerce-mandate-problem'));
290
  }
291
  }
includes/mollie/wc/gateway/inghomepay.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Mollie_WC_Gateway_IngHomePay extends Mollie_WC_Gateway_AbstractSepaRecurring {
4
+ /**
5
+ *
6
+ */
7
+ public function __construct() {
8
+ $this->supports = array (
9
+ 'products',
10
+ 'refunds',
11
+ );
12
+
13
+ parent::__construct();
14
+ }
15
+
16
+ /**
17
+ * @return string
18
+ */
19
+ public function getMollieMethodId() {
20
+ return Mollie_API_Object_Method::INGHOMEPAY;
21
+ }
22
+
23
+ /**
24
+ * @return string
25
+ */
26
+ public function getDefaultTitle() {
27
+ return __( 'ING Home\'Pay', 'mollie-payments-for-woocommerce' );
28
+ }
29
+
30
+ /**
31
+ * @return string
32
+ */
33
+ protected function getSettingsDescription() {
34
+ return '';
35
+ }
36
+
37
+ /**
38
+ * @return string
39
+ */
40
+ protected function getDefaultDescription() {
41
+ return '';
42
+ }
43
+
44
+ }
includes/mollie/wc/helper/data.php CHANGED
@@ -572,6 +572,17 @@ class Mollie_WC_Helper_Data
572
  $customer_id = $customer->get_meta( 'mollie_customer_id' );
573
  }
574
 
 
 
 
 
 
 
 
 
 
 
 
575
  if (empty($customer_id))
576
  {
577
  try
@@ -596,12 +607,13 @@ class Mollie_WC_Helper_Data
596
  $this->setUserMollieCustomerId($user_id, $customer->id);
597
 
598
  $customer_id = $customer->id;
 
 
 
599
  }
600
  catch (Exception $e)
601
  {
602
- Mollie_WC_Plugin::debug(
603
- __FUNCTION__ . ": Could not create customer $user_id (" . ($test_mode ? 'test' : 'live') . "): " . $e->getMessage() . ' (' . get_class($e) . ')'
604
- );
605
  }
606
  }
607
 
572
  $customer_id = $customer->get_meta( 'mollie_customer_id' );
573
  }
574
 
575
+ // Check that customer ID is valid for this API key
576
+ try {
577
+ $this->api_helper->getApiClient( $test_mode )->customers->get( $customer_id );
578
+ }
579
+ catch ( Exception $e ) {
580
+ Mollie_WC_Plugin::debug( __FUNCTION__ . ": Mollie Customer ID " . $customer_id . " not valid for this API key, try to create a new one (" . ( $test_mode ? 'test' : 'live' ) . ")." );
581
+ $customer_id = '';
582
+
583
+ }
584
+
585
+ // If there is no Mollie Customer ID set, try to create a new Mollie Customer
586
  if (empty($customer_id))
587
  {
588
  try
607
  $this->setUserMollieCustomerId($user_id, $customer->id);
608
 
609
  $customer_id = $customer->id;
610
+
611
+ Mollie_WC_Plugin::debug( __FUNCTION__ . ": Created a Mollie Customer for WordPress user with ID $user_id (" . ( $test_mode ? 'test' : 'live' ) . ")." );
612
+
613
  }
614
  catch (Exception $e)
615
  {
616
+ Mollie_WC_Plugin::debug( __FUNCTION__ . ": Could not create Mollie Customer for WordPress user with ID $user_id (" . ( $test_mode ? 'test' : 'live' ) . "): " . $e->getMessage() . ' (' . get_class( $e ) . ')' );
 
 
617
  }
618
  }
619
 
includes/mollie/wc/helper/settings.php CHANGED
@@ -387,9 +387,9 @@ class Mollie_WC_Helper_Settings
387
  'title' => __('Payment screen language', 'mollie-payments-for-woocommerce'),
388
  'type' => 'select',
389
  'options' => array(
390
- '' => __('Detect using browser language', 'mollie-payments-for-woocommerce'),
391
  /* translators: Placeholder 1: Current WordPress locale */
392
- 'wp_locale' => sprintf(__('Send WordPress language (%s)', 'mollie-payments-for-woocommerce'), $this->getCurrentLocale()) . ' (' . __('default', 'mollie-payments-for-woocommerce') . ')',
393
  'nl_NL' => __('Dutch', 'mollie-payments-for-woocommerce'),
394
  'nl_BE' => __('Flemish (Belgium)', 'mollie-payments-for-woocommerce'),
395
  'en' => __('English', 'mollie-payments-for-woocommerce'),
@@ -398,7 +398,12 @@ class Mollie_WC_Helper_Settings
398
  'fr_FR' => __('French', 'mollie-payments-for-woocommerce'),
399
  'fr_BE' => __('French (Belgium)', 'mollie-payments-for-woocommerce'),
400
  ),
401
- 'default' => 'wp_locale',
 
 
 
 
 
402
  ),
403
  array(
404
  'id' => $this->getSettingId('customer_details'),
387
  'title' => __('Payment screen language', 'mollie-payments-for-woocommerce'),
388
  'type' => 'select',
389
  'options' => array(
390
+ '' => __('Detect using browser language', 'mollie-payments-for-woocommerce') . ' (' . __('default', 'mollie-payments-for-woocommerce') . ')',
391
  /* translators: Placeholder 1: Current WordPress locale */
392
+ 'wp_locale' => sprintf(__('Send WordPress language (%s)', 'mollie-payments-for-woocommerce'), $this->getCurrentLocale()),
393
  'nl_NL' => __('Dutch', 'mollie-payments-for-woocommerce'),
394
  'nl_BE' => __('Flemish (Belgium)', 'mollie-payments-for-woocommerce'),
395
  'en' => __('English', 'mollie-payments-for-woocommerce'),
398
  'fr_FR' => __('French', 'mollie-payments-for-woocommerce'),
399
  'fr_BE' => __('French (Belgium)', 'mollie-payments-for-woocommerce'),
400
  ),
401
+ 'desc' => sprintf(
402
+ __('The option \'Detect using browser language\' is usually more accurate. Only use \'Send WordPress language\' if you are sure all languages/locales on your website are supported by Mollie %s(see \'locale\' under \'Parameters\')%s. Currently supported locales: <code>en_US</code>, <code>de_AT</code>, <code>de_CH</code>, <code>de_DE</code>, <code>es_ES</code>, <code>fr_BE</code>, <code>fr_FR</code>, <code>nl_BE</code>, <code>nl_NL</code>.', 'mollie-payments-for-woocommerce'),
403
+ '<a href="https://www.mollie.com/nl/docs/reference/payments/create" target="_blank">',
404
+ '</a>'
405
+ ),
406
+ 'default' => '',
407
  ),
408
  array(
409
  'id' => $this->getSettingId('customer_details'),
includes/mollie/wc/plugin.php CHANGED
@@ -7,7 +7,7 @@ class Mollie_WC_Plugin
7
  {
8
  const PLUGIN_ID = 'mollie-payments-for-woocommerce';
9
  const PLUGIN_TITLE = 'Mollie Payments for WooCommerce';
10
- const PLUGIN_VERSION = '2.8.2';
11
 
12
  const DB_VERSION = '1.0';
13
  const DB_VERSION_PARAM_NAME = 'mollie-db-version';
@@ -28,6 +28,7 @@ class Mollie_WC_Plugin
28
  'Mollie_WC_Gateway_Creditcard',
29
  'Mollie_WC_Gateway_DirectDebit',
30
  'Mollie_WC_Gateway_Ideal',
 
31
  'Mollie_WC_Gateway_Kbc',
32
  'Mollie_WC_Gateway_MisterCash',
33
  'Mollie_WC_Gateway_PayPal',
7
  {
8
  const PLUGIN_ID = 'mollie-payments-for-woocommerce';
9
  const PLUGIN_TITLE = 'Mollie Payments for WooCommerce';
10
+ const PLUGIN_VERSION = '2.9.0';
11
 
12
  const DB_VERSION = '1.0';
13
  const DB_VERSION_PARAM_NAME = 'mollie-db-version';
28
  'Mollie_WC_Gateway_Creditcard',
29
  'Mollie_WC_Gateway_DirectDebit',
30
  'Mollie_WC_Gateway_Ideal',
31
+ 'Mollie_WC_Gateway_IngHomePay',
32
  'Mollie_WC_Gateway_Kbc',
33
  'Mollie_WC_Gateway_MisterCash',
34
  'Mollie_WC_Gateway_PayPal',
mollie-payments-for-woocommerce.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Mollie Payments for WooCommerce
4
  * Plugin URI: https://github.com/mollie/WooCommerce
5
  * Description: Accept payments in WooCommerce with the official Mollie plugin
6
- * Version: 2.8.2
7
  * Author: Mollie
8
  * Author URI: https://www.mollie.com
9
  * Requires at least: 3.8
@@ -97,7 +97,7 @@ function mollie_wc_plugin_inactive() {
97
  }
98
 
99
  if ( ! is_admin() ) {
100
- return;
101
  }
102
 
103
  if ( ! is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
@@ -105,6 +105,7 @@ function mollie_wc_plugin_inactive() {
105
  echo '<div class="error"><p>';
106
  echo sprintf( esc_html__( '%1$sMollie Payments for WooCommerce is inactive.%2$s The %3$sWooCommerce plugin%4$s must be active for it to work. Please %5$sinstall & activate WooCommerce &raquo;%6$s', 'mollie-payments-for-woocommerce' ), '<strong>', '</strong>', '<a href="https://wordpress.org/plugins/woocommerce/">', '</a>', '<a href="' . esc_url( admin_url( 'plugins.php' ) ) . '">', '</a>' );
107
  echo '</p></div>';
 
108
  }
109
 
110
  if ( version_compare( get_option( 'woocommerce_db_version' ), '2.2', '<' ) ) {
@@ -112,6 +113,7 @@ function mollie_wc_plugin_inactive() {
112
  echo '<div class="error"><p>';
113
  echo sprintf( esc_html__( '%1$sMollie Payments for WooCommerce is inactive.%2$s This version requires WooCommerce 2.2 or newer. Please %3$supdate WooCommerce to version 2.2 or newer &raquo;%4$s', 'mollie-payments-for-woocommerce' ), '<strong>', '</strong>', '<a href="' . esc_url( admin_url( 'plugins.php' ) ) . '">', '</a>' );
114
  echo '</p></div>';
 
115
 
116
  }
117
  }
3
  * Plugin Name: Mollie Payments for WooCommerce
4
  * Plugin URI: https://github.com/mollie/WooCommerce
5
  * Description: Accept payments in WooCommerce with the official Mollie plugin
6
+ * Version: 2.9.0
7
  * Author: Mollie
8
  * Author URI: https://www.mollie.com
9
  * Requires at least: 3.8
97
  }
98
 
99
  if ( ! is_admin() ) {
100
+ return false;
101
  }
102
 
103
  if ( ! is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
105
  echo '<div class="error"><p>';
106
  echo sprintf( esc_html__( '%1$sMollie Payments for WooCommerce is inactive.%2$s The %3$sWooCommerce plugin%4$s must be active for it to work. Please %5$sinstall & activate WooCommerce &raquo;%6$s', 'mollie-payments-for-woocommerce' ), '<strong>', '</strong>', '<a href="https://wordpress.org/plugins/woocommerce/">', '</a>', '<a href="' . esc_url( admin_url( 'plugins.php' ) ) . '">', '</a>' );
107
  echo '</p></div>';
108
+ return false;
109
  }
110
 
111
  if ( version_compare( get_option( 'woocommerce_db_version' ), '2.2', '<' ) ) {
113
  echo '<div class="error"><p>';
114
  echo sprintf( esc_html__( '%1$sMollie Payments for WooCommerce is inactive.%2$s This version requires WooCommerce 2.2 or newer. Please %3$supdate WooCommerce to version 2.2 or newer &raquo;%4$s', 'mollie-payments-for-woocommerce' ), '<strong>', '</strong>', '<a href="' . esc_url( admin_url( 'plugins.php' ) ) . '">', '</a>' );
115
  echo '</p></div>';
116
+ return false;
117
 
118
  }
119
  }
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: mollie, payments, woocommerce, payment gateway, e-commerce, credit card, i
4
  Requires at least: 3.8
5
  Tested up to: 4.9
6
  Requires PHP: 5.3
7
- Stable tag: 2.8.2
8
  Requires PHP: 5.3
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -38,6 +38,7 @@ Alternative payment methods:
38
 
39
  * iDEAL (Netherlands)
40
  * Bancontact (Belgium)
 
41
  * PayPal (International)
42
  * SOFORTbanking (EU)
43
  * Belfius (Belgium)
@@ -55,7 +56,7 @@ Please go to the [signup page](https://www.mollie.com/signup) to create a new Mo
55
  = FEATURES =
56
 
57
  * Support for all available Mollie payment methods
58
- * Compatible with WooCommerce Subscriptions for recurring payments (credit card, iDEAL, SEPA Direct Debit)
59
  * Transparent pricing. No startup fees, no monthly fees, and no gateway fees. No hidden fees, period.
60
  * Edit the order, title and description of every payment method in WooCommerce checkout
61
  * Support for full and partial payment refunds (WooCommerce 2.2+)
@@ -108,6 +109,10 @@ To download translations manually:
108
 
109
  If you want to help translate the plugin, read the instructions in the [Translate strings instructions](https://make.wordpress.org/polyglots/handbook/tools/glotpress-translate-wordpress-org/#translating-strings).
110
 
 
 
 
 
111
  = Why do orders with payment method BankTransfer and Direct Debit get the status 'on-hold'? =
112
 
113
  These payment methods take longer than a few hours to complete. The order status is set to 'on-hold' to prevent the WooCommerce setting 'Hold stock (minutes)' (https://docs.woothemes.com/document/configuring-woocommerce-settings/#inventory-options) will
@@ -159,6 +164,17 @@ Automatic updates should work like a charm; as always though, ensure you backup
159
 
160
  == Changelog ==
161
 
 
 
 
 
 
 
 
 
 
 
 
162
  = 2.8.2 - 15/01/2018 =
163
 
164
  * Fix - Fixed a PHP error by setting an argument default for onOrderReceivedTitle(), because post ID not set in all WordPress versions
4
  Requires at least: 3.8
5
  Tested up to: 4.9
6
  Requires PHP: 5.3
7
+ Stable tag: 2.9.0
8
  Requires PHP: 5.3
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
38
 
39
  * iDEAL (Netherlands)
40
  * Bancontact (Belgium)
41
+ * ING Home'Pay (Belgium)
42
  * PayPal (International)
43
  * SOFORTbanking (EU)
44
  * Belfius (Belgium)
56
  = FEATURES =
57
 
58
  * Support for all available Mollie payment methods
59
+ * Compatible with WooCommerce Subscriptions for recurring payments (credit card, iDEAL, SEPA Direct Debit and more)
60
  * Transparent pricing. No startup fees, no monthly fees, and no gateway fees. No hidden fees, period.
61
  * Edit the order, title and description of every payment method in WooCommerce checkout
62
  * Support for full and partial payment refunds (WooCommerce 2.2+)
109
 
110
  If you want to help translate the plugin, read the instructions in the [Translate strings instructions](https://make.wordpress.org/polyglots/handbook/tools/glotpress-translate-wordpress-org/#translating-strings).
111
 
112
+ = Can I add payment fees to payment methods? =
113
+
114
+ Yes, you can with a separate plugin. At the moment we have tested and can recommend [Payment Gateway Based Fees and Discounts for WooCommerce](https://wordpress.org/plugins/checkout-fees-for-woocommerce/). Other plugins might also work. For more specific information, also see [helpful snippets](https://github.com/mollie/WooCommerce/wiki/Helpful-snippets#add-payment-fee-to-payment-methods).
115
+
116
  = Why do orders with payment method BankTransfer and Direct Debit get the status 'on-hold'? =
117
 
118
  These payment methods take longer than a few hours to complete. The order status is set to 'on-hold' to prevent the WooCommerce setting 'Hold stock (minutes)' (https://docs.woothemes.com/document/configuring-woocommerce-settings/#inventory-options) will
164
 
165
  == Changelog ==
166
 
167
+ = 2.9.0 - 13/02/2018 =
168
+
169
+ * New - Added support for new payment method: [ING Home'Pay](https://www.mollie.com/en/payments/ing-homepay)
170
+ * New - Updated Mollie API PHP to 1.9.6 (ING Home'Pay support)
171
+
172
+ * Fix - Check that Mollie customerID is known on current API key, solves issues for admins that switched from test to live
173
+ * Fix - Charged back payments now update the order status to On Hold and add an order note in WooCommerce, stock is not updated
174
+ * Fix - For 'Payment screen language' set default to 'Detect using browser language' as it is usually more accurate
175
+ * Fix - For subscriptions also compare recurring total amount to payment method maximums, not only the order/cart total
176
+ * Fix - Improve WPML compatibility by removing duplicate trailing slash in WooCommerce API request URL
177
+
178
  = 2.8.2 - 15/01/2018 =
179
 
180
  * Fix - Fixed a PHP error by setting an argument default for onOrderReceivedTitle(), because post ID not set in all WordPress versions