GiroCheckout - Version 4.0.0.0

Version Notes

This version has the following changes compared to the previous one:
- Added payment method giropay+giropay-ID
- Added payment method Paydirekt
- Added payment method Sofort Überweisung
- Bank selection widget is now pure JS
- Enhanced logos for credit cards
- New eps logo
- Minor corrections and enhancements

Download this release

Release Info

Developer Oliver Marx
Extension GiroCheckout
Version 4.0.0.0
Comparing to
See all releases


Version 4.0.0.0

Files changed (135) hide show
  1. app/code/community/Girosolution/.DS_Store +0 -0
  2. app/code/community/Girosolution/Giroconnect/.DS_Store +0 -0
  3. app/code/community/Girosolution/Giroconnect/Block/Form/Creditcard.php +14 -0
  4. app/code/community/Girosolution/Giroconnect/Block/Form/Directdebit.php +14 -0
  5. app/code/community/Girosolution/Giroconnect/Block/Form/Eps.php +14 -0
  6. app/code/community/Girosolution/Giroconnect/Block/Form/Giropay.php +14 -0
  7. app/code/community/Girosolution/Giroconnect/Block/Form/Ideal.php +16 -0
  8. app/code/community/Girosolution/Giroconnect/Block/Form/Paydirekt.php +14 -0
  9. app/code/community/Girosolution/Giroconnect/Block/Form/Sofortuw.php +14 -0
  10. app/code/community/Girosolution/Giroconnect/Helper/AbstractPaymentProxy.php +353 -0
  11. app/code/community/Girosolution/Giroconnect/Helper/Creditcard.php +18 -0
  12. app/code/community/Girosolution/Giroconnect/Helper/CreditcardPaymentProxy.php +221 -0
  13. app/code/community/Girosolution/Giroconnect/Helper/Data.php +21 -0
  14. app/code/community/Girosolution/Giroconnect/Helper/Directdebit.php +18 -0
  15. app/code/community/Girosolution/Giroconnect/Helper/DirectdebitPaymentProxy.php +257 -0
  16. app/code/community/Girosolution/Giroconnect/Helper/Eps.php +18 -0
  17. app/code/community/Girosolution/Giroconnect/Helper/EpsPaymentProxy.php +228 -0
  18. app/code/community/Girosolution/Giroconnect/Helper/Giropay.php +18 -0
  19. app/code/community/Girosolution/Giroconnect/Helper/GiropayPaymentProxy.php +231 -0
  20. app/code/community/Girosolution/Giroconnect/Helper/Ideal.php +20 -0
  21. app/code/community/Girosolution/Giroconnect/Helper/IdealPaymentProxy.php +236 -0
  22. app/code/community/Girosolution/Giroconnect/Helper/Paydirekt.php +18 -0
  23. app/code/community/Girosolution/Giroconnect/Helper/PaydirektPaymentProxy.php +204 -0
  24. app/code/community/Girosolution/Giroconnect/Helper/Sofortuw.php +18 -0
  25. app/code/community/Girosolution/Giroconnect/Helper/SofortuwPaymentProxy.php +187 -0
  26. app/code/community/Girosolution/Giroconnect/Model/Observer.php +36 -0
  27. app/code/community/Girosolution/Giroconnect/Model/Payment/Abstract.php +141 -0
  28. app/code/community/Girosolution/Giroconnect/Model/Payment/Creditcard.php +71 -0
  29. app/code/community/Girosolution/Giroconnect/Model/Payment/Directdebit.php +134 -0
  30. app/code/community/Girosolution/Giroconnect/Model/Payment/Eps.php +93 -0
  31. app/code/community/Girosolution/Giroconnect/Model/Payment/Giropay.php +93 -0
  32. app/code/community/Girosolution/Giroconnect/Model/Payment/Ideal.php +93 -0
  33. app/code/community/Girosolution/Giroconnect/Model/Payment/Paydirekt.php +72 -0
  34. app/code/community/Girosolution/Giroconnect/Model/Payment/Sofortuw.php +71 -0
  35. app/code/community/Girosolution/Giroconnect/controllers/CreditcardController.php +190 -0
  36. app/code/community/Girosolution/Giroconnect/controllers/DirectdebitController.php +93 -0
  37. app/code/community/Girosolution/Giroconnect/controllers/EpsController.php +193 -0
  38. app/code/community/Girosolution/Giroconnect/controllers/GiropayController.php +217 -0
  39. app/code/community/Girosolution/Giroconnect/controllers/IdealController.php +195 -0
  40. app/code/community/Girosolution/Giroconnect/controllers/PaydirektController.php +191 -0
  41. app/code/community/Girosolution/Giroconnect/controllers/SofortuwController.php +190 -0
  42. app/code/community/Girosolution/Giroconnect/etc/config.xml +158 -0
  43. app/code/community/Girosolution/Giroconnect/etc/system.xml +850 -0
  44. app/design/frontend/base/default/layout/giroconnect/giroconnectlayout.xml +31 -0
  45. app/design/frontend/base/default/template/giroconnect/creditcard/form.phtml +31 -0
  46. app/design/frontend/base/default/template/giroconnect/directdebit/form.phtml +105 -0
  47. app/design/frontend/base/default/template/giroconnect/eps/form.phtml +35 -0
  48. app/design/frontend/base/default/template/giroconnect/giropay/form.phtml +35 -0
  49. app/design/frontend/base/default/template/giroconnect/ideal/form.phtml +53 -0
  50. app/design/frontend/base/default/template/giroconnect/paydirekt/form.phtml +23 -0
  51. app/design/frontend/base/default/template/giroconnect/sofortuw/form.phtml +23 -0
  52. app/etc/modules/Girosolution_Giroconnect.xml +12 -0
  53. app/locale/de_DE/Girosolution_Giroconnect.csv +106 -0
  54. lib/GiroCheckout_SDK/GiroCheckout_SDK.php +54 -0
  55. lib/GiroCheckout_SDK/GiroCheckout_SDK_Config.php +67 -0
  56. lib/GiroCheckout_SDK/GiroCheckout_SDK_Notify.php +270 -0
  57. lib/GiroCheckout_SDK/GiroCheckout_SDK_Request.php +293 -0
  58. lib/GiroCheckout_SDK/GiroCheckout_SDK_Request_Cart.php +43 -0
  59. lib/GiroCheckout_SDK/GiroCheckout_SDK_Tools.php +47 -0
  60. lib/GiroCheckout_SDK/api/GiroCheckout_SDK_AbstractApi.php +193 -0
  61. lib/GiroCheckout_SDK/api/GiroCheckout_SDK_InterfaceApi.php +66 -0
  62. lib/GiroCheckout_SDK/api/creditcard/GiroCheckout_SDK_CreditCardCapture.php +80 -0
  63. lib/GiroCheckout_SDK/api/creditcard/GiroCheckout_SDK_CreditCardGetPKN.php +51 -0
  64. lib/GiroCheckout_SDK/api/creditcard/GiroCheckout_SDK_CreditCardRecurringTransaction.php +80 -0
  65. lib/GiroCheckout_SDK/api/creditcard/GiroCheckout_SDK_CreditCardRefund.php +80 -0
  66. lib/GiroCheckout_SDK/api/creditcard/GiroCheckout_SDK_CreditCardTransaction.php +82 -0
  67. lib/GiroCheckout_SDK/api/directdebit/GiroCheckout_SDK_DirectDebitCapture.php +79 -0
  68. lib/GiroCheckout_SDK/api/directdebit/GiroCheckout_SDK_DirectDebitGetPKN.php +52 -0
  69. lib/GiroCheckout_SDK/api/directdebit/GiroCheckout_SDK_DirectDebitRefund.php +79 -0
  70. lib/GiroCheckout_SDK/api/directdebit/GiroCheckout_SDK_DirectDebitTransaction.php +90 -0
  71. lib/GiroCheckout_SDK/api/directdebit/GiroCheckout_SDK_DirectDebitTransactionWithPaymentPage.php +88 -0
  72. lib/GiroCheckout_SDK/api/eps/GiroCheckout_SDK_EpsBankstatus.php +56 -0
  73. lib/GiroCheckout_SDK/api/eps/GiroCheckout_SDK_EpsIssuerList.php +50 -0
  74. lib/GiroCheckout_SDK/api/eps/GiroCheckout_SDK_EpsTransaction.php +79 -0
  75. lib/GiroCheckout_SDK/api/girocode/GiroCheckout_SDK_GiroCodeCreateEpc.php +61 -0
  76. lib/GiroCheckout_SDK/api/girocode/GiroCheckout_SDK_GiroCodeCreatePayment.php +63 -0
  77. lib/GiroCheckout_SDK/api/girocode/GiroCheckout_SDK_GiroCodeGetEpc.php +52 -0
  78. lib/GiroCheckout_SDK/api/giropay/GiroCheckout_SDK_GiropayBankstatus.php +59 -0
  79. lib/GiroCheckout_SDK/api/giropay/GiroCheckout_SDK_GiropayIDCheck.php +86 -0
  80. lib/GiroCheckout_SDK/api/giropay/GiroCheckout_SDK_GiropayIssuerList.php +50 -0
  81. lib/GiroCheckout_SDK/api/giropay/GiroCheckout_SDK_GiropayTransaction.php +91 -0
  82. lib/GiroCheckout_SDK/api/giropay/GiroCheckout_SDK_GiropayTransactionWithGiropayID.php +96 -0
  83. lib/GiroCheckout_SDK/api/ideal/GiroCheckout_SDK_IdealIssuerList.php +50 -0
  84. lib/GiroCheckout_SDK/api/ideal/GiroCheckout_SDK_IdealPayment.php +79 -0
  85. lib/GiroCheckout_SDK/api/ideal/GiroCheckout_SDK_IdealPaymentRefund.php +78 -0
  86. lib/GiroCheckout_SDK/api/paydirekt/GiroCheckout_SDK_PaydirektCapture.php +77 -0
  87. lib/GiroCheckout_SDK/api/paydirekt/GiroCheckout_SDK_PaydirektRefund.php +76 -0
  88. lib/GiroCheckout_SDK/api/paydirekt/GiroCheckout_SDK_PaydirektTransaction.php +96 -0
  89. lib/GiroCheckout_SDK/api/paypal/GiroCheckout_SDK_PaypalTransaction.php +78 -0
  90. lib/GiroCheckout_SDK/api/sofortuw/GiroCheckout_SDK_SofortUwTransaction.php +79 -0
  91. lib/GiroCheckout_SDK/api/tools/GiroCheckout_SDK_Tools_GetTransaction.php +67 -0
  92. lib/GiroCheckout_SDK/cacert.pem +3866 -0
  93. lib/GiroCheckout_SDK/helper/GiroCheckout_SDK_Curl_helper.php +133 -0
  94. lib/GiroCheckout_SDK/helper/GiroCheckout_SDK_Debug_helper.php +212 -0
  95. lib/GiroCheckout_SDK/helper/GiroCheckout_SDK_Exception_helper.php +11 -0
  96. lib/GiroCheckout_SDK/helper/GiroCheckout_SDK_Hash_helper.php +65 -0
  97. lib/GiroCheckout_SDK/helper/GiroCheckout_SDK_ResponseCode_helper.php +288 -0
  98. lib/GiroCheckout_SDK/helper/GiroCheckout_SDK_TransactionType_helper.php +70 -0
  99. lib/GiroCheckout_SDK/log/.htaccess +2 -0
  100. package.xml +34 -0
  101. skin/frontend/base/default/images/giroconnect/.DS_Store +0 -0
  102. skin/frontend/base/default/images/giroconnect/Logo_EC_40_px.jpg +0 -0
  103. skin/frontend/base/default/images/giroconnect/Logo_EC_50_px.jpg +0 -0
  104. skin/frontend/base/default/images/giroconnect/Logo_EC_60_px.jpg +0 -0
  105. skin/frontend/base/default/images/giroconnect/Logo_VISA_MC_40_px.jpg +0 -0
  106. skin/frontend/base/default/images/giroconnect/Logo_VISA_MC_50_px.jpg +0 -0
  107. skin/frontend/base/default/images/giroconnect/Logo_VISA_MC_60_px.jpg +0 -0
  108. skin/frontend/base/default/images/giroconnect/Logo_eps_40_px.jpg +0 -0
  109. skin/frontend/base/default/images/giroconnect/Logo_eps_50_px.jpg +0 -0
  110. skin/frontend/base/default/images/giroconnect/Logo_eps_60_px.jpg +0 -0
  111. skin/frontend/base/default/images/giroconnect/Logo_giropay_40_px.jpg +0 -0
  112. skin/frontend/base/default/images/giroconnect/Logo_giropay_50_px.jpg +0 -0
  113. skin/frontend/base/default/images/giroconnect/Logo_giropay_60_px.jpg +0 -0
  114. skin/frontend/base/default/images/giroconnect/Logo_iDeal_40_px.jpg +0 -0
  115. skin/frontend/base/default/images/giroconnect/Logo_iDeal_50_px.jpg +0 -0
  116. skin/frontend/base/default/images/giroconnect/Logo_iDeal_60_px.jpg +0 -0
  117. skin/frontend/base/default/images/giroconnect/Logo_paydirekt_40_px.jpg +0 -0
  118. skin/frontend/base/default/images/giroconnect/Logo_paydirekt_50_px.jpg +0 -0
  119. skin/frontend/base/default/images/giroconnect/Logo_paydirekt_60_px.jpg +0 -0
  120. skin/frontend/base/default/images/giroconnect/Logo_sofort_40_px.jpg +0 -0
  121. skin/frontend/base/default/images/giroconnect/Logo_sofort_50_px.jpg +0 -0
  122. skin/frontend/base/default/images/giroconnect/Logo_sofort_60_px.jpg +0 -0
  123. skin/frontend/base/default/images/giroconnect/amex_40px.jpg +0 -0
  124. skin/frontend/base/default/images/giroconnect/amex_40px.png +0 -0
  125. skin/frontend/base/default/images/giroconnect/amex_jcb_40px.jpg +0 -0
  126. skin/frontend/base/default/images/giroconnect/jcb_40px.jpg +0 -0
  127. skin/frontend/base/default/images/giroconnect/jcb_40px.png +0 -0
  128. skin/frontend/base/default/images/giroconnect/visa_msc_40px.jpg +0 -0
  129. skin/frontend/base/default/images/giroconnect/visa_msc_40px.png +0 -0
  130. skin/frontend/base/default/images/giroconnect/visa_msc_amex_40px.jpg +0 -0
  131. skin/frontend/base/default/images/giroconnect/visa_msc_amex_40px.png +0 -0
  132. skin/frontend/base/default/images/giroconnect/visa_msc_amex_jcb_40px.jpg +0 -0
  133. skin/frontend/base/default/images/giroconnect/visa_msc_amex_jcb_40px.png +0 -0
  134. skin/frontend/base/default/images/giroconnect/visa_msc_jcb_40px.jpg +0 -0
  135. skin/frontend/base/default/images/giroconnect/visa_msc_jcb_40px.png +0 -0
app/code/community/Girosolution/.DS_Store ADDED
Binary file
app/code/community/Girosolution/Giroconnect/.DS_Store ADDED
Binary file
app/code/community/Girosolution/Giroconnect/Block/Form/Creditcard.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Creditcard.php.
5
+ */
6
+ class Girosolution_Giroconnect_Block_Form_Creditcard extends Mage_Payment_Block_Form {
7
+
8
+ protected function _construct() {
9
+ parent::_construct();
10
+ $this->setTemplate('giroconnect/creditcard/form.phtml');
11
+ } // End _construct
12
+
13
+ } // End Girosolution_Giroconnect_Block_Form_Creditcard
14
+ ?>
app/code/community/Girosolution/Giroconnect/Block/Form/Directdebit.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Directdebit.php
5
+ */
6
+ class Girosolution_Giroconnect_Block_Form_Directdebit extends Mage_Payment_Block_Form {
7
+
8
+ protected function _construct() {
9
+ parent::_construct();
10
+ $this->setTemplate('giroconnect/directdebit/form.phtml');
11
+ } // End _construct
12
+
13
+ } // End Girosolution_Giroconnect_Block_Form_Directdebit
14
+ ?>
app/code/community/Girosolution/Giroconnect/Block/Form/Eps.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * eps.php
5
+ */
6
+ class Girosolution_Giroconnect_Block_Form_Eps extends Mage_Payment_Block_Form {
7
+
8
+ protected function _construct() {
9
+ parent::_construct();
10
+ $this->setTemplate('giroconnect/eps/form.phtml');
11
+ } // End _construct
12
+
13
+ } // End Girosolution_Giroconnect_Block_Form_Eps
14
+ ?>
app/code/community/Girosolution/Giroconnect/Block/Form/Giropay.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Giropay.php
5
+ */
6
+ class Girosolution_Giroconnect_Block_Form_Giropay extends Mage_Payment_Block_Form {
7
+
8
+ protected function _construct() {
9
+ parent::_construct();
10
+ $this->setTemplate('giroconnect/giropay/form.phtml');
11
+ } // End _construct
12
+
13
+ } // End Girosolution_Giroconnect_Block_Form_Giropay
14
+ ?>
app/code/community/Girosolution/Giroconnect/Block/Form/Ideal.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Ideal.php
5
+ */
6
+
7
+
8
+ class Girosolution_Giroconnect_Block_Form_Ideal extends Mage_Payment_Block_Form {
9
+
10
+ protected function _construct() {
11
+ parent::_construct();
12
+ $this->setTemplate('giroconnect/ideal/form.phtml');
13
+ } // End _construct
14
+
15
+ } // End Girosolution_Giroconnect_Block_Form_Ideal
16
+ ?>
app/code/community/Girosolution/Giroconnect/Block/Form/Paydirekt.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Paydirekt.php.
5
+ */
6
+ class Girosolution_Giroconnect_Block_Form_Paydirekt extends Mage_Payment_Block_Form {
7
+
8
+ protected function _construct() {
9
+ parent::_construct();
10
+ $this->setTemplate('giroconnect/paydirekt/form.phtml');
11
+ } // End _construct
12
+
13
+ } // End Girosolution_Giroconnect_Block_Form_Paydirekt
14
+ ?>
app/code/community/Girosolution/Giroconnect/Block/Form/Sofortuw.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Sofortuw.php.
5
+ */
6
+ class Girosolution_Giroconnect_Block_Form_Sofortuw extends Mage_Payment_Block_Form {
7
+
8
+ protected function _construct() {
9
+ parent::_construct();
10
+ $this->setTemplate('giroconnect/sofortuw/form.phtml');
11
+ } // End _construct
12
+
13
+ } // End Girosolution_Giroconnect_Block_Form_Sofortuw
14
+ ?>
app/code/community/Girosolution/Giroconnect/Helper/AbstractPaymentProxy.php ADDED
@@ -0,0 +1,353 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * AbstractPaymentProxy.php.
5
+ */
6
+
7
+ class Girosolution_Giroconnect_Helper_AbstractPaymentProxy {
8
+
9
+ protected $paymentMethod = '';
10
+ protected $baseUrlWeb = '';
11
+ protected $baseUrl = '';
12
+ protected $merchantId = '';
13
+ protected $projectId = '';
14
+ protected $projectPassword = '';
15
+ protected $urlRedirect = '';
16
+ protected $urlNotify = '';
17
+ protected $transactionData = NULL;
18
+ protected $sendEmail = TRUE;
19
+ protected $createInvoice = FALSE;
20
+ protected $languageCode = '';
21
+ protected $sourceId = '194e7c84d1803d643e35f94accff7752';
22
+ protected $purpose = '';
23
+
24
+ public function __construct() {
25
+ $this->includeGiroCheckoutLibrary();
26
+ }
27
+
28
+ // End constructor
29
+
30
+ public function setPaymentMethod($pm = '') {
31
+ $pm = isset($pm) ? $pm : '';
32
+ $this->paymentMethod = $pm;
33
+ }
34
+
35
+ // End setPaymentMethod
36
+
37
+ public function getPaymentMethod() {
38
+ return $this->paymentMethod;
39
+ }
40
+
41
+ // End getPaymentMethod
42
+
43
+ public function getBaseUrlWeb() {
44
+ return $this->baseUrlWeb;
45
+ }
46
+
47
+ // End getBaseUrlWeb
48
+
49
+ public function getBaseUrl() {
50
+ return $this->baseUrl;
51
+ }
52
+
53
+ // End getBaseUrl
54
+
55
+ public function getMerchantId() {
56
+ return $this->merchantId;
57
+ }
58
+
59
+ // End getMerchantId
60
+
61
+ public function getProjectId() {
62
+ return $this->projectId;
63
+ }
64
+
65
+ // End getProjectId
66
+
67
+ public function getProjectPassword() {
68
+ return $this->projectPassword;
69
+ }
70
+
71
+ // End getProjectPassword
72
+
73
+ public function getNotifyUrl() {
74
+ return $this->urlNotify;
75
+ }
76
+
77
+ // End getNotifyUrl
78
+
79
+ public function getRedirectUrl() {
80
+ return $this->urlRedirect;
81
+ }
82
+
83
+ // End getRedirectUrl
84
+
85
+ public function getLanguageCode() {
86
+ return $this->languageCode;
87
+ }
88
+
89
+ // End getLanguageCode
90
+
91
+ public function canSendEmail() {
92
+ return $this->sendEmail;
93
+ }
94
+
95
+ // End canSendEmail
96
+
97
+ public function canCreateInvoice() {
98
+ return $this->createInvoice;
99
+ }
100
+
101
+ public function getPurpose($order) {
102
+
103
+ $strPurpose = $this->purpose;
104
+ if( empty($strPurpose) )
105
+ $strPurpose = "Best. {ORDERID}, {SHOPNAME}";
106
+
107
+ $strLastName = "";
108
+ $strFirstName = "";
109
+ $strShopName = "";
110
+ $orderid = $order->getRealOrderId();
111
+
112
+ $aOrderData = $order->getData();
113
+ $aShippingAddressData = $order->getShippingAddress()->getData();
114
+ $strLastName = $aShippingAddressData['lastname'];
115
+ $strFirstName = $aShippingAddressData['firstname'];
116
+ $strName = $strFirstName . " " . $strLastName;
117
+ $iCustomerNr = $order->getCustomerId();
118
+ $strShopName = Mage::app()->getStore()->getName();
119
+
120
+ $strPurpose = str_replace( "{ORDERID}", $orderid, $strPurpose );
121
+ $strPurpose = str_replace( "{CUSTOMERID}", $iCustomerNr, $strPurpose );
122
+ $strPurpose = str_replace( "{SHOPNAME}", $strShopName, $strPurpose );
123
+ $strPurpose = str_replace( "{CUSTOMERNAME}", $strName, $strPurpose );
124
+ $strPurpose = str_replace( "{CUSTOMERFIRSTNAME}", $strFirstName, $strPurpose );
125
+ $strPurpose = str_replace( "{CUSTOMERLASTNAME}", $strLastName, $strPurpose );
126
+
127
+ return substr($strPurpose, 0, 27);
128
+ }
129
+
130
+ public function getShippingOrderInfo($order) {
131
+ $aShippingInfo = array();
132
+
133
+ $aOrderData = $order->getData();
134
+ $aShippingAddressData = $order->getShippingAddress()->getData();
135
+ $aBillingAddress = $order->getBillingAddress()->getData();
136
+ $aProducts = array();
137
+ foreach( $order->getAllItems() as $item ) {
138
+ $aProduct = $item->getData();
139
+ $aProducts[] = array( $aProduct['name'], round($aProduct['qty_ordered'],2), round($aProduct['price'],2), $aProduct['sku'] );
140
+ }
141
+
142
+ $aShippingInfo['LastName'] = $aShippingAddressData['lastname'];
143
+ $aShippingInfo['FirstName'] = $aShippingAddressData['firstname'];
144
+ $aShippingInfo['Mail'] = $aShippingAddressData['email'];
145
+ $aShippingInfo['Amount'] = round($aOrderData['shipping_amount'], 2);
146
+ $aShippingInfo['orderAmount'] = round($aOrderData['subtotal'], 2);
147
+ $aShippingInfo['Company'] = $aShippingAddressData['company'];
148
+ $aShippingInfo['AdditionalAddressInformation'] = '';
149
+ $aShippingInfo['Street'] = $aShippingAddressData['street'];
150
+ $aShippingInfo['ZipCode'] = $aShippingAddressData['postcode'];
151
+ $aShippingInfo['City'] = $aShippingAddressData['city'];
152
+ $aShippingInfo['CountryIso'] = $aShippingAddressData['country_id'];
153
+ $aShippingInfo['Products'] = $aProducts;
154
+
155
+ return $aShippingInfo;
156
+ }
157
+
158
+ // End getProjectPassword
159
+ // End canCreateInvoice
160
+
161
+ public function getPaymentOrderComment($success = FALSE) {
162
+ $success = isset($success) ? (is_bool($success) ? $success : FALSE) : FALSE;
163
+ $result = '';
164
+ if ($success == TRUE) {
165
+ if ($this->paymentMethod == "gc_creditcard")
166
+ $result = Mage::helper('giroconnect')->__('Payment with Creditcard was successful');
167
+ else if ($this->paymentMethod == "gc_directdebit")
168
+ $result = Mage::helper('giroconnect')->__('Payment with Direct Debit was successful');
169
+ else if ($this->paymentMethod == "gc_giropay")
170
+ $result = Mage::helper('giroconnect')->__('Payment with giropay was successful');
171
+ else if ($this->paymentMethod == "gc_ideal")
172
+ $result = Mage::helper('giroconnect')->__('Payment with iDEAL was successful');
173
+ else if ($this->paymentMethod == "gc_eps")
174
+ $result = Mage::helper('giroconnect')->__('Payment with eps was successful');
175
+ else if ($this->paymentMethod == "gc_eps")
176
+ $result = Mage::helper('giroconnect')->__('Payment with eps was successful');
177
+ else if ($this->paymentMethod == "gc_sofortuw")
178
+ $result = Mage::helper('giroconnect')->__('Payment with sofort was successful');
179
+ else if ($this->paymentMethod == "gc_paydirekt")
180
+ $result = Mage::helper('giroconnect')->__('Payment with paydirekt was successful');
181
+ else
182
+ $result = Mage::helper('giroconnect')->__('Payment was successful');
183
+ }
184
+ else {
185
+ if ($this->paymentMethod == "gc_creditcard")
186
+ $result = Mage::helper('giroconnect')->__('Payment with Creditcard failed');
187
+ else if ($this->paymentMethod == "gc_directdebit")
188
+ $result = Mage::helper('giroconnect')->__('Payment with Direct Debit failed');
189
+ else if ($this->paymentMethod == "gc_giropay")
190
+ $result = Mage::helper('giroconnect')->__('Payment with giropay failed');
191
+ else if ($this->paymentMethod == "gc_ideal")
192
+ $result = Mage::helper('giroconnect')->__('Payment with iDEAL failed');
193
+ else if ($this->paymentMethod == "gc_eps")
194
+ $result = Mage::helper('giroconnect')->__('Payment with eps failed');
195
+ else if ($this->paymentMethod == "gc_sofortuw")
196
+ $result = Mage::helper('giroconnect')->__('Payment with Sofort failed');
197
+ else if ($this->paymentMethod == "gc_paydirekt")
198
+ $result = Mage::helper('giroconnect')->__('Payment with Paydirekt failed');
199
+ else
200
+ $result = Mage::helper('giroconnect')->__('Payment failed');
201
+ }
202
+
203
+ return $result;
204
+ }
205
+
206
+ // End getPaymentOrderComment
207
+
208
+ public function getInvoiceComment() {
209
+ if ($this->paymentMethod == "gc_creditcard")
210
+ return Mage::helper('giroconnect')->__('Automatically generated by Credit Card payment confirmation');
211
+ else if ($this->paymentMethod == "gc_directdebit")
212
+ return Mage::helper('giroconnect')->__('Automatically generated by Direct Debit payment confirmation');
213
+ else if ($this->paymentMethod == "gc_giropay")
214
+ return Mage::helper('giroconnect')->__('Automatically generated by giropay payment confirmation');
215
+ else if ($this->paymentMethod == "gc_ideal")
216
+ return Mage::helper('giroconnect')->__('Automatically generated by iDEAL payment confirmation');
217
+ else if ($this->paymentMethod == "gc_eps")
218
+ return Mage::helper('giroconnect')->__('Automatically generated by eps payment confirmation');
219
+ else if ($this->paymentMethod == "gc_sofortuw")
220
+ return Mage::helper('giroconnect')->__('Automatically generated by Sofort payment confirmation');
221
+ else if ($this->paymentMethod == "gc_paydirekt")
222
+ return Mage::helper('giroconnect')->__('Automatically generated by Paydirekt payment confirmation');
223
+ else
224
+ return Mage::helper('giroconnect')->__('Automatically generated by payment confirmation');
225
+ }
226
+
227
+ public function getValidationErrorText() {
228
+ if ($this->paymentMethod == "gc_creditcard")
229
+ return Mage::helper('giroconnect')->__('Invalid Creditcard payment configuration. Please contact the administrator.');
230
+ else if ($this->paymentMethod == "gc_directdebit")
231
+ return Mage::helper('giroconnect')->__('Invalid Direct Debit payment configuration. Please contact the administrator.');
232
+ else if ($this->paymentMethod == "gc_giropay")
233
+ return Mage::helper('giroconnect')->__('Invalid giropay payment configuration. Please contact the administrator.');
234
+ else if ($this->paymentMethod == "gc_ideal")
235
+ return Mage::helper('giroconnect')->__('Invalid iDEAL payment configuration. Please contact the administrator.');
236
+ else if ($this->paymentMethod == "gc_eps")
237
+ return Mage::helper('giroconnect')->__('Invalid eps payment configuration. Please contact the administrator.');
238
+ else if ($this->paymentMethod == "gc_sofortuw")
239
+ return Mage::helper('giroconnect')->__('Invalid SOFORT payment configuration. Please contact the administrator.');
240
+ else if ($this->paymentMethod == "gc_paydirekt")
241
+ return Mage::helper('giroconnect')->__('Invalid Paydirekt payment configuration. Please contact the administrator.');
242
+ else
243
+ return Mage::helper('giroconnect')->__('Invalid payment configuration. Please contact the administrator.');
244
+ }
245
+
246
+ // End getValidationErrorText
247
+
248
+ public function getTransactionData() {
249
+ return $this->transactionData;
250
+ }
251
+
252
+ // End getTransactionData
253
+ //get Source param.
254
+ public function getGcSource() {
255
+
256
+ $Mage = new Mage;
257
+
258
+ return "Magento " . $Mage->getVersion() . ";Magento Plugin " . Mage::getConfig()->getNode()->modules->Girosolution_Giroconnect->version;
259
+ }
260
+
261
+ // End getGcSource
262
+
263
+ public function getAsBoolean($value = FALSE) {
264
+ if ($value == 1 || $value == TRUE)
265
+ return TRUE;
266
+ else
267
+ return FALSE;
268
+ }
269
+
270
+ // End getAsBoolean
271
+
272
+ public function getAsInt($value = '3') {
273
+ $result = 1;
274
+ $value = isset($value) ? trim($value) : '';
275
+ if ($value != '') {
276
+ if (ctype_digit($value)) {
277
+ $result = intval($value);
278
+ $result = abs($result);
279
+ }
280
+ }
281
+ return $result;
282
+ }
283
+
284
+ // End getAsInt
285
+
286
+ public function stringStartsWith($str = '', $prefix = '') {
287
+ $str = isset($str) ? $str : '';
288
+ $prefix = isset($prefix) ? $prefix : '';
289
+
290
+ if (strlen($str) >= strlen($prefix)) {
291
+ if (strlen($str) == strlen($prefix)) {
292
+ if ($str == $prefix)
293
+ return TRUE;
294
+ else
295
+ return FALSE;
296
+ }
297
+ else {
298
+ $part = substr($str, 0, strlen($prefix));
299
+ if ($part == $prefix)
300
+ return TRUE;
301
+ else
302
+ return FALSE;
303
+ }
304
+ }
305
+ else {
306
+ return FALSE;
307
+ }
308
+ }
309
+
310
+ // End stringStartsWith
311
+
312
+ public function stringEndsWith($str = '', $postfix = '') {
313
+ $str = isset($str) ? $str : '';
314
+ $postfix = isset($postfix) ? $postfix : '';
315
+
316
+ if (strlen($str) >= strlen($postfix)) {
317
+ if (strlen($str) == strlen($postfix)) {
318
+ if ($str == $postfix)
319
+ return TRUE;
320
+ else
321
+ return FALSE;
322
+ }
323
+ else {
324
+ $startPos = strlen($str) - strlen($postfix);
325
+ $part = substr($str, $startPos, strlen($postfix));
326
+ if ($part == $postfix)
327
+ return TRUE;
328
+ else
329
+ return FALSE;
330
+ }
331
+ }
332
+ else {
333
+ return FALSE;
334
+ }
335
+ }
336
+
337
+ // End stringEndsWith
338
+ //I include the Girocheckout SDK
339
+ private function includeGiroCheckoutLibrary() {
340
+ $libDIR = Mage::getBaseDir('lib');
341
+ $classPath = $libDIR . '/GiroCheckout_SDK/GiroCheckout_SDK.php';
342
+ if (is_file($classPath)) {
343
+ include_once $classPath;
344
+ }
345
+
346
+ GiroCheckout_SDK_Config::getInstance()->setConfig('DEBUG_LOG_PATH',Mage::getBaseDir('log').'/GiroCheckout');
347
+ }
348
+
349
+ // End includeGiroconnectLibrary
350
+ }
351
+
352
+ // *** End class AbstractPaymentProxy ***
353
+ ?>
app/code/community/Girosolution/Giroconnect/Helper/Creditcard.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Creditcard.php.
5
+ */
6
+
7
+ // include_once 'AbstractPaymentProxy.php';
8
+ // include_once 'CreditcardPaymentProxy.php';
9
+
10
+ class Girosolution_Giroconnect_Helper_Creditcard extends Mage_Core_Helper_Abstract {
11
+
12
+ public function getCreditcardPaymentProxy() {
13
+ $result = Girosolution_Giroconnect_Helper_CreditcardPaymentProxy::getInstance();
14
+ return $result;
15
+ } // End getCreditcardPaymentProxy
16
+
17
+ } // *** End class Girosolution_Giroconnect_Helper_Creditcard ***
18
+ ?>
app/code/community/Girosolution/Giroconnect/Helper/CreditcardPaymentProxy.php ADDED
@@ -0,0 +1,221 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * CreditcardPaymentProxy.php.
5
+ */
6
+
7
+ class Girosolution_Giroconnect_Helper_CreditcardPaymentProxy extends Girosolution_Giroconnect_Helper_AbstractPaymentProxy {
8
+
9
+ private static $refINSTANCE = NULL;
10
+ protected $UseVisaMaster = false;
11
+ protected $UseAMEX = false;
12
+ protected $UseJCB = false;
13
+
14
+ public function __construct() {
15
+ parent::__construct();
16
+ self::$refINSTANCE = $this;
17
+ $this->setPaymentMethod("gc_creditcard");
18
+ $this->pReadConfiguration();
19
+ // $this->pCreateGiroConnectPaymentClass();
20
+ }
21
+
22
+ // End constructor
23
+
24
+ public static function getInstance() {
25
+ if (isset(self::$refINSTANCE))
26
+ return self::$refINSTANCE;
27
+ else {
28
+ $result = new Girosolution_Giroconnect_Helper_CreditcardPaymentProxy();
29
+ return $result;
30
+ }
31
+ }
32
+
33
+ // End getInstance
34
+
35
+ public function validate() {
36
+
37
+ $result = array(
38
+ 'status' => 1001,
39
+ );
40
+
41
+
42
+ if ($this->merchantId == '' ||
43
+ $this->projectId == '' ||
44
+ $this->projectPassword == '') {
45
+ $result['status'] = 1002;
46
+ $result['msg'] = $this->getValidationErrorText();
47
+ }
48
+
49
+ return $result;
50
+ }
51
+
52
+ // End validate
53
+
54
+ public function modifyOrderAfterPayment($paymentSuccessful = FALSE, $orderid = '', $updateOrderState = FALSE, $gcRef = null, $gcTransInfo = null) {
55
+ $paymentSuccessful = isset($paymentSuccessful) ? (is_bool($paymentSuccessful) ? $paymentSuccessful : FALSE) : FALSE;
56
+ $orderid = isset($orderid) ? $orderid : '';
57
+ $updateOrderState = isset($updateOrderState) ? (is_bool($updateOrderState) ? $updateOrderState : FALSE) : FALSE;
58
+ if( $paymentSuccessful == TRUE ) {
59
+ $orderStateFinished = Mage_Sales_Model_Order::STATE_PROCESSING;
60
+ }
61
+
62
+ $creditcardModel = Mage::getModel('giroconnect/payment_creditcard');
63
+ if (isset($creditcardModel)) {
64
+ $result = $creditcardModel->modifyOrderAfterPayment($paymentSuccessful, $orderid, $updateOrderState, $this->getPaymentOrderComment($paymentSuccessful), $this->canSendEmail(), $this->canCreateInvoice(), $this->getInvoiceComment(), $gcRef, $gcTransInfo, $orderStateFinished);
65
+ return $result;
66
+ } else {
67
+ return FALSE;
68
+ }
69
+ }
70
+
71
+ // End getCardTypes
72
+
73
+ public function startTransaction($amount = '', $currency = '', $orderId = '', $purpose = '', $clientId = '', $realorderId = '') {
74
+ $this->transactionData = NULL;
75
+ $amount = isset($amount) ? (is_string($amount) ? trim($amount) : '') : '';
76
+ $currency = isset($currency) ? (is_string($currency) ? trim($currency) : 'EUR') : 'EUR';
77
+ $orderId = isset($orderId) ? (is_string($orderId) ? trim($orderId) : '') : '';
78
+ $sourceParam = $this->getGcSource();
79
+ $result = array(
80
+ 'status' => 1002,
81
+ );
82
+ try {
83
+
84
+ //Sends request to Girocheckout.
85
+ $request = new GiroCheckout_SDK_Request('creditCardTransaction');
86
+ $request->setSecret($this->projectPassword);
87
+ $request->addParam('merchantId', $this->merchantId)
88
+ ->addParam('projectId', $this->projectId)
89
+ ->addParam('merchantTxId', $orderId)
90
+ ->addParam('amount', $amount * 100)
91
+ ->addParam('currency', $currency)
92
+ ->addParam('purpose', $purpose)
93
+ ->addParam('locale', $this->languageCode)
94
+ ->addParam('urlRedirect', $this->urlRedirect)
95
+ ->addParam('urlNotify', $this->urlNotify)
96
+ ->addParam('sourceId', $sourceParam)
97
+ ->addParam('orderId', $realorderId)
98
+ ->addParam('customerId', $clientId)
99
+ ->submit();
100
+
101
+ if ($request->requestHasSucceeded()) {
102
+ $strUrlRedirect = $request->getResponseParam('redirect');
103
+
104
+ $result["status"] = 1001;
105
+ $result["redirect"] = $strUrlRedirect;
106
+ $result["reference"] = $request->getResponseParam('reference');
107
+ $result["gcTransInfo"] = $request->getResponseParams();
108
+ } else {
109
+ $iReturnCode = $request->getResponseParam('rc');
110
+ $strResponseMsg = $request->getResponseMessage($iReturnCode, $this->languageCode);
111
+
112
+ if ($request->getResponseParam('reference')) {
113
+ $order = Mage::getModel('sales/order');
114
+ $order->loadByIncrementId($orderId);
115
+ $payment = $order->getPayment();
116
+ $payment->setTransactionId($request->getResponseParam('reference'));
117
+ $transaction = $payment->addTransaction('order', null, false, '');
118
+ $transaction->setParentTxnId($request->getResponseParam('reference'));
119
+ $transaction->setIsClosed(1);
120
+ $transaction->setAdditionalInformation("arrInfo", serialize($request->getResponseParams()));
121
+ $transaction->save();
122
+ $order->save();
123
+ }
124
+
125
+ $controller = Girosolution_Giroconnect_CreditcardController::getInstance();
126
+ if (isset($controller)) {
127
+ Mage::getSingleton('core/session')->addError($strResponseMsg);
128
+ $controller->redirectToPath('checkout/onepage', array('_secure' => true));
129
+ } else {
130
+ $msg = $strResponseMsg;
131
+ Mage::throwException($msg);
132
+ }
133
+ }
134
+ } catch (Exception $e) {
135
+ $controller = Girosolution_Giroconnect_CreditcardController::getInstance();
136
+ if (isset($controller)) {
137
+ Mage::getSingleton('core/session')->addError(GiroCheckout_SDK_ResponseCode_helper::getMessage(5100, $this->languageCode));
138
+ $controller->redirectToPath('checkout/onepage', array('_secure' => true));
139
+ } else {
140
+ $msg = GiroCheckout_SDK_ResponseCode_helper::getMessage(5100, $this->languageCode);
141
+ Mage::throwException($msg);
142
+ }
143
+ }
144
+ return $result;
145
+ }
146
+
147
+ // End startTransaction
148
+
149
+ private function pReadConfiguration() {
150
+ $baseurlweb = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
151
+ $this->baseUrlWeb = $baseurlweb;
152
+
153
+ $baseurl = Mage::getBaseUrl();
154
+ $baseurl = rtrim($baseurl, "/\\");
155
+ $this->baseUrl = $baseurl;
156
+
157
+ $value = Mage::getStoreConfig('payment/giroconnect_creditcard/creditcard_mid');
158
+ if (isset($value)) {
159
+ $this->merchantId = $value;
160
+ }
161
+ $value = Mage::getStoreConfig('payment/giroconnect_creditcard/creditcard_pid');
162
+ if (isset($value)) {
163
+ $this->projectId = $value;
164
+ }
165
+ $value = Mage::getStoreConfig('payment/giroconnect_creditcard/creditcard_security');
166
+ if (isset($value)) {
167
+ $this->projectPassword = $value;
168
+ }
169
+ $value = Mage::getStoreConfig('payment/giroconnect_creditcard/creditcard_createinvoice');
170
+ if (isset($value)) {
171
+ $this->createInvoice = $this->getAsBoolean($value);
172
+ }
173
+ $value = Mage::getStoreConfig('payment/giroconnect_creditcard/creditcard_visamaster');
174
+ if (isset($value)) {
175
+ $this->UseVisaMaster = $this->getAsBoolean($value);
176
+ }
177
+ $value = Mage::getStoreConfig('payment/giroconnect_creditcard/creditcard_amex');
178
+ if (isset($value)) {
179
+ $this->UseAMEX = $this->getAsBoolean($value);
180
+ }
181
+ $value = Mage::getStoreConfig('payment/giroconnect_creditcard/creditcard_jcb');
182
+ if (isset($value)) {
183
+ $this->UseJCB = $this->getAsBoolean($value);
184
+ }
185
+ $value = Mage::getStoreConfig('payment/giroconnect_creditcard/creditcard_purpose');
186
+ if (isset($value)) {
187
+ $this->purpose = $value;
188
+ }
189
+
190
+ $value = Mage::helper('giroconnect')->getLanguageCode();
191
+ if (isset($value)) {
192
+ $this->languageCode = $value;
193
+ }
194
+
195
+ $this->urlRedirect = $this->baseUrl . '/giroconnect/creditcard/redirect';
196
+ $this->urlNotify = $this->baseUrl . '/giroconnect/creditcard/notify';
197
+ }
198
+
199
+ /**
200
+ * Get the extended logo for creditcards.
201
+ *
202
+ * @author GiroSolution AG
203
+ * @package GiroCheckout
204
+ * @copyright Copyright (c) 2014, GiroSolution AG
205
+ * @return string
206
+ */
207
+ public function getExtendedLogo() {
208
+ $visa_msc = $this->UseVisaMaster;
209
+ $amex = $this->UseAMEX;
210
+ $jcb = $this->UseJCB;
211
+
212
+ if( !$visa_msc && !$amex && !$jcb )
213
+ $visa_msc = true;
214
+
215
+ return GiroCheckout_SDK_Tools::getCreditCardLogoName($visa_msc, $amex, $jcb);
216
+ }
217
+ // End pReadConfiguration
218
+ }
219
+
220
+ // *** End class CreditcardPaymentProxy ***
221
+ ?>
app/code/community/Girosolution/Giroconnect/Helper/Data.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Data.php.
5
+ */
6
+ class Girosolution_Giroconnect_Helper_Data extends Mage_Core_Helper_Abstract {
7
+
8
+ public function getLanguageCode() {
9
+ $result = 'en';
10
+ $languageCode = Mage::getStoreConfig('general/locale/code', Mage::app()->getStore()->getId());
11
+ if(isset($languageCode)) {
12
+ if(strlen($languageCode) > 2) {
13
+ $languageCode = substr($languageCode, 0, 2);
14
+ $result = strtolower($languageCode);
15
+ }
16
+ }
17
+ return $result;
18
+ } // End getLanguageCode
19
+
20
+ } // *** End class Girosolution_Giroconnect_Helper_Data ***
21
+ ?>
app/code/community/Girosolution/Giroconnect/Helper/Directdebit.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Directdebit.php
5
+ */
6
+
7
+ // include_once 'AbstractPaymentProxy.php';
8
+ // include_once 'DirectdebitPaymentProxy.php';
9
+
10
+ class Girosolution_Giroconnect_Helper_Directdebit extends Mage_Core_Helper_Abstract {
11
+
12
+ public function getDirectdebitPaymentProxy() {
13
+ $result = Girosolution_Giroconnect_Helper_DirectdebitPaymentProxy::getInstance();
14
+ return $result;
15
+ } // End getDirectdebitPaymentProxy
16
+
17
+ } // *** End class Girosolution_Giroconnect_Helper_Directdebit ***
18
+ ?>
app/code/community/Girosolution/Giroconnect/Helper/DirectdebitPaymentProxy.php ADDED
@@ -0,0 +1,257 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * DirectdebitPaymentProxy.php
5
+ */
6
+
7
+ class Girosolution_Giroconnect_Helper_DirectdebitPaymentProxy extends Girosolution_Giroconnect_Helper_AbstractPaymentProxy {
8
+
9
+ private static $refINSTANCE = NULL;
10
+ protected $showbankacc = false;
11
+
12
+ public function __construct() {
13
+ parent::__construct();
14
+ self::$refINSTANCE = $this;
15
+ $this->setPaymentMethod("gc_directdebit");
16
+ $this->pReadConfiguration();
17
+ }
18
+
19
+ // End constructor
20
+
21
+ public static function getInstance() {
22
+ if (isset(self::$refINSTANCE))
23
+ return self::$refINSTANCE;
24
+ else {
25
+ $result = new Girosolution_Giroconnect_Helper_DirectdebitPaymentProxy();
26
+ return $result;
27
+ }
28
+ }
29
+
30
+ public function getShowBankAcc() {
31
+ return $this->showbankacc;
32
+ }
33
+
34
+ // End getMerchantId
35
+
36
+ // End getInstance
37
+
38
+ public function validate() {
39
+ $result = array(
40
+ 'status' => 1001,
41
+ );
42
+
43
+ if ($this->merchantId == '' ||
44
+ $this->projectId == '' ||
45
+ $this->projectPassword == '') {
46
+ $result['status'] = 1002;
47
+ $result['msg'] = $this->getValidationErrorText();
48
+ }
49
+
50
+ return $result;
51
+ }
52
+
53
+ // End validate
54
+
55
+ public function modifyOrderAfterPayment($paymentSuccessful = FALSE, $orderid = '', $updateOrderState = FALSE, $gcRef = null, $gcTransInfo = null) {
56
+ $paymentSuccessful = isset($paymentSuccessful) ? (is_bool($paymentSuccessful) ? $paymentSuccessful : FALSE) : FALSE;
57
+ $orderid = isset($orderid) ? $orderid : '';
58
+ $updateOrderState = isset($updateOrderState) ? (is_bool($updateOrderState) ? $updateOrderState : FALSE) : FALSE;
59
+ if ($paymentSuccessful == TRUE) {
60
+ $orderStateFinished = Mage_Sales_Model_Order::STATE_PROCESSING;
61
+ }
62
+
63
+ $directdebitModel = Mage::getModel('giroconnect/payment_directdebit');
64
+ if (isset($directdebitModel)) {
65
+ $result = $directdebitModel->modifyOrderAfterPayment($paymentSuccessful, $orderid, $updateOrderState, $this->getPaymentOrderComment($paymentSuccessful), $this->canSendEmail(), $this->canCreateInvoice(), $this->getInvoiceComment(), $gcRef, $gcTransInfo, $orderStateFinished);
66
+
67
+ return $result;
68
+ } else {
69
+ return FALSE;
70
+ }
71
+ }
72
+
73
+ // End modifyOrderAfterPayment
74
+
75
+ public function validateDirectDebitData($bankCode = '', $accountNumber = '', $IBAN = '', $accountHolder = '', $databankcheck = '') {
76
+ $bankCode = isset($bankCode) ? (is_string($bankCode) ? trim($bankCode) : '') : '';
77
+ $accountNumber = isset($accountNumber) ? (is_string($accountNumber) ? trim($accountNumber) : '') : '';
78
+ $IBAN = isset($IBAN) ? (is_string($IBAN) ? trim($IBAN) : '') : '';
79
+ $accountHolder = isset($accountHolder) ? (is_string($accountHolder) ? trim($accountHolder) : '') : '';
80
+ $databankcheck = isset($databankcheck) ? (is_string($databankcheck) ? trim($databankcheck) : '') : '';
81
+ $EinstellShowBank = $this->getShowBankAcc();
82
+
83
+ $result = array(
84
+ 'status' => 1002,
85
+ 'msg' => Mage::helper('giroconnect')->__('Payment information missing.'),
86
+ );
87
+
88
+ //Validates that the Iban field or the Bank code and Account number fields are not empty.
89
+ if( !$EinstellShowBank ) {
90
+ if (!empty($IBAN) && !empty($accountHolder) ) {
91
+ $result["status"] = 1001;
92
+ $result["msg"] = "";
93
+ }
94
+ }
95
+ else {
96
+ if (!empty($databankcheck) && !empty($accountHolder)) {
97
+ if ($databankcheck == "rbIbanDirectdebit") {
98
+ if (!empty($IBAN)) {
99
+ $result["status"] = 1001;
100
+ $result["msg"] = "";
101
+ }
102
+ } else {
103
+ if (!empty($bankCode) && !empty($accountNumber)) {
104
+ $result["status"] = 1001;
105
+ $result["msg"] = "";
106
+ }
107
+ }
108
+ }
109
+ }
110
+ return $result;
111
+ }
112
+
113
+ // End validateDirectDebitData
114
+
115
+ public function startTransaction($amount = '', $currency = '', $transactionId = '', $purpose = '', $bankCode = '', $accountNumber = '', $IBAN = '', $accountHolder = '', $databankcheck = '', $clientId = '', $realorderId = '') {
116
+ $this->transactionData = NULL;
117
+ $EinstellShowBank = $this->getShowBankAcc();
118
+ $amount = isset($amount) ? (is_string($amount) ? trim($amount) : '') : '';
119
+ $currency = isset($currency) ? (is_string($currency) ? trim($currency) : 'EUR') : 'EUR';
120
+ $transactionId = isset($transactionId) ? (is_string($transactionId) ? trim($transactionId) : '') : '';
121
+ $bankCode = isset($bankCode) ? (is_string($bankCode) ? trim($bankCode) : '') : '';
122
+ $accountNumber = isset($accountNumber) ? (is_string($accountNumber) ? trim($accountNumber) : '') : '';
123
+ $IBAN = isset($IBAN) ? (is_string($IBAN) ? trim($IBAN) : '') : '';
124
+ $IBAN = str_replace(" ", "", $IBAN);
125
+ $accountHolder = isset($accountHolder) ? (is_string($accountHolder) ? trim($accountHolder) : '') : '';
126
+ $databankcheck = isset($databankcheck) ? (is_string($databankcheck) ? trim($databankcheck) : '') : '';
127
+ $sourceParam = $this->getGcSource();
128
+ $result = array(
129
+ 'status' => 1002,
130
+ );
131
+
132
+ $accountHolder = substr($accountHolder, 0, 27);
133
+
134
+ try {
135
+
136
+ //Send request to Girocheckout based on which radiobutton is checked ($databankcheck).
137
+ if ($databankcheck == "rbIbanDirectdebit" || ! $EinstellShowBank) {
138
+ $request = new GiroCheckout_SDK_Request('directDebitTransaction');
139
+ $request->setSecret($this->projectPassword);
140
+ $request->addParam('merchantId', $this->merchantId)
141
+ ->addParam('projectId', $this->projectId)
142
+ ->addParam('merchantTxId', $transactionId)
143
+ ->addParam('amount', $amount * 100)
144
+ ->addParam('currency', $currency)
145
+ ->addParam('purpose', $purpose)
146
+ ->addParam('iban', $IBAN)
147
+ ->addParam('accountHolder', $accountHolder)
148
+ ->addParam('sourceId', $sourceParam)
149
+ ->addParam('orderId', $realorderId)
150
+ ->addParam('customerId', $clientId)
151
+ ->submit();
152
+ } else {
153
+ $request = new GiroCheckout_SDK_Request('directDebitTransaction');
154
+ $request->setSecret($this->projectPassword);
155
+ $request->addParam('merchantId', $this->merchantId)
156
+ ->addParam('projectId', $this->projectId)
157
+ ->addParam('merchantTxId', $transactionId)
158
+ ->addParam('amount', $amount * 100)
159
+ ->addParam('currency', $currency)
160
+ ->addParam('purpose', $purpose)
161
+ ->addParam('bankcode', $bankCode)
162
+ ->addParam('bankaccount', $accountNumber)
163
+ ->addParam('accountHolder', $accountHolder)
164
+ ->addParam('sourceId', $sourceParam)
165
+ ->addParam('orderId', $realorderId)
166
+ ->addParam('customerId', $clientId)
167
+ ->submit();
168
+ }
169
+
170
+ if ($request->requestHasSucceeded() && $request->paymentSuccessful()) {
171
+ $result["status"] = 1001;
172
+ $result["gcRef"] = $request->getResponseParam('reference');
173
+ $result["gcTransInfo"] = $request->getResponseParams();
174
+ } else {
175
+
176
+ if (!$request->requestHasSucceeded()) {
177
+ $strResponseMsg = GiroCheckout_SDK_ResponseCode_helper::getMessage($request->getResponseParam('rc'), $language->language);
178
+ } else if (!$request->paymentSuccessful()) {
179
+ $strResponseMsg = GiroCheckout_SDK_ResponseCode_helper::getMessage($request->getResponseParam('resultPayment'), $language->language);
180
+ }
181
+
182
+ $controller = Girosolution_Giroconnect_DirectdebitController::getInstance();
183
+ if (isset($controller)) {
184
+ Mage::getSingleton('core/session')->addError($strResponseMsg);
185
+ $controller->redirectToPath('checkout/onepage', array('_secure' => true));
186
+ } else {
187
+ $msg = $strResponseMsg;
188
+ Mage::throwException($msg);
189
+ }
190
+ }
191
+ } catch (Exception $e) {
192
+
193
+ $controller = Girosolution_Giroconnect_DirectdebitController::getInstance();
194
+ if (isset($controller)) {
195
+ Mage::getSingleton('core/session')->addError(GiroCheckout_SDK_ResponseCode_helper::getMessage(5100, $this->languageCode));
196
+ $controller->redirectToPath('checkout/onepage', array('_secure' => true));
197
+ } else {
198
+ $msg = GiroCheckout_SDK_ResponseCode_helper::getMessage(5100, $this->languageCode);
199
+ Mage::throwException($msg);
200
+ }
201
+ }
202
+ return $result;
203
+ }
204
+
205
+ // End startTransaction
206
+
207
+ private function pReadConfiguration() {
208
+ $baseurlweb = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
209
+ $this->baseUrlWeb = $baseurlweb;
210
+
211
+ $baseurl = Mage::getBaseUrl();
212
+ $baseurl = rtrim($baseurl, "/\\");
213
+ $this->baseUrl = $baseurl;
214
+
215
+ $value = Mage::getStoreConfig('payment/giroconnect_directdebit/directdebit_mid');
216
+ if (isset($value)) {
217
+ $this->merchantId = $value;
218
+ }
219
+ $value = Mage::getStoreConfig('payment/giroconnect_directdebit/directdebit_pid');
220
+ if (isset($value)) {
221
+ $this->projectId = $value;
222
+ }
223
+ $value = Mage::getStoreConfig('payment/giroconnect_directdebit/directdebit_security');
224
+ if (isset($value)) {
225
+ $this->projectPassword = $value;
226
+ }
227
+
228
+ $value = Mage::getStoreConfig('payment/giroconnect_directdebit/directdebit_createinvoice');
229
+ if (isset($value)) {
230
+ $this->createInvoice = $this->getAsBoolean($value);
231
+ }
232
+
233
+ $value = Mage::getStoreConfig('payment/giroconnect_directdebit/directdebit_purpose');
234
+ if (isset($value)) {
235
+ $this->purpose = $value;
236
+ }
237
+
238
+ $value = Mage::getStoreConfig('payment/giroconnect_directdebit/directdebit_showbankacc');
239
+ if (isset($value)) {
240
+ $this->showbankacc = $value;
241
+ }
242
+
243
+ $value = Mage::helper('giroconnect')->getLanguageCode();
244
+ if (isset($value)) {
245
+ $this->languageCode = $value;
246
+ }
247
+
248
+
249
+ $this->urlRedirect = $this->baseUrl . '/giroconnect/directdebit/redirect';
250
+ $this->urlNotify = $this->baseUrl . '/giroconnect/directdebit/notify';
251
+ }
252
+
253
+ // End pReadConfiguration
254
+ }
255
+
256
+ // *** End class DirectdebitPaymentProxy ***
257
+ ?>
app/code/community/Girosolution/Giroconnect/Helper/Eps.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Eps.php.
5
+ */
6
+
7
+ // include_once 'AbstractPaymentProxy.php';
8
+ // include_once 'EpsPaymentProxy.php';
9
+
10
+ class Girosolution_Giroconnect_Helper_Eps extends Mage_Core_Helper_Abstract {
11
+
12
+ public function getEpsPaymentProxy() {
13
+ $result = Girosolution_Giroconnect_Helper_EpsPaymentProxy::getInstance();
14
+ return $result;
15
+ } // End getEpsPaymentProxy
16
+
17
+ } // *** End class Girosolution_Giroconnect_Helper_Eps ***
18
+ ?>
app/code/community/Girosolution/Giroconnect/Helper/EpsPaymentProxy.php ADDED
@@ -0,0 +1,228 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * EpsPaymentProxy.php
5
+ */
6
+
7
+ class Girosolution_Giroconnect_Helper_EpsPaymentProxy extends Girosolution_Giroconnect_Helper_AbstractPaymentProxy {
8
+
9
+ private static $refINSTANCE = NULL;
10
+
11
+ public function __construct() {
12
+ parent::__construct();
13
+ self::$refINSTANCE = $this;
14
+ $this->setPaymentMethod("gc_eps");
15
+ $this->pReadConfiguration();
16
+ }
17
+
18
+ // End constructor
19
+
20
+ public static function getInstance() {
21
+ if (isset(self::$refINSTANCE))
22
+ return self::$refINSTANCE;
23
+ else {
24
+ $result = new Girosolution_Giroconnect_Helper_EpsPaymentProxy();
25
+ return $result;
26
+ }
27
+ }
28
+
29
+ // End getInstance
30
+
31
+ public function validate() {
32
+ $result = array(
33
+ 'status' => 1001,
34
+ );
35
+
36
+ if ($this->merchantId == '' ||
37
+ $this->projectId == '' ||
38
+ $this->projectPassword == '') {
39
+ $result['status'] = 1002;
40
+ $result['msg'] = $this->getValidationErrorText();
41
+ }
42
+
43
+ return $result;
44
+ }
45
+
46
+ // End validate
47
+ public function modifyOrderAfterPayment($paymentSuccessful = FALSE, $orderid = '', $updateOrderState = FALSE, $gcRef = null, $gcTransInfo = null) {
48
+ $paymentSuccessful = isset($paymentSuccessful) ? (is_bool($paymentSuccessful) ? $paymentSuccessful : FALSE) : FALSE;
49
+ $orderid = isset($orderid) ? $orderid : '';
50
+ $updateOrderState = isset($updateOrderState) ? (is_bool($updateOrderState) ? $updateOrderState : FALSE) : FALSE;
51
+ if( $paymentSuccessful == TRUE ) {
52
+ $orderStateFinished = Mage_Sales_Model_Order::STATE_PROCESSING;
53
+ }
54
+
55
+ $epsModel = Mage::getModel('giroconnect/payment_eps');
56
+ if (isset($epsModel)) {
57
+ $result = $epsModel->modifyOrderAfterPayment($paymentSuccessful, $orderid, $updateOrderState, $this->getPaymentOrderComment($paymentSuccessful), $this->canSendEmail(), $this->canCreateInvoice(), $this->getInvoiceComment(), $gcRef, $gcTransInfo, $orderStateFinished);
58
+ return $result;
59
+ } else {
60
+ return FALSE;
61
+ }
62
+ }
63
+
64
+ // End modifyOrderAfterPayment
65
+
66
+ public function validateBicEps($BIC_eps = '') {
67
+ $BIC_eps = isset($BIC_eps) ? (is_string($BIC_eps) ? trim($BIC_eps) : '') : '';
68
+ $result = array(
69
+ 'status' => 1002,
70
+ 'code' => 'sb999',
71
+ 'msg' => Mage::helper('giroconnect')->__('eps general error'),
72
+ );
73
+ $sourceParam = $this->getGcSource();
74
+
75
+ try {
76
+ //Check if the bank provides eps from BIC.
77
+ $request = new GiroCheckout_SDK_Request('epsBankstatus');
78
+ $request->setSecret($this->projectPassword);
79
+ $request->addParam('merchantId', $this->merchantId)
80
+ ->addParam('projectId', $this->projectId)
81
+ ->addParam('sourceId', $sourceParam)
82
+ ->addParam('bic', $BIC_eps)
83
+ ->submit();
84
+
85
+ if ($request->requestHasSucceeded()) {
86
+ $result["status"] = 1001;
87
+ $result["msg"] = "";
88
+ } else {
89
+ $iReturnCode = $request->getResponseParam('rc');
90
+ $result["msg"] = $request->getResponseMessage($iReturnCode, $this->languageCode);
91
+ $result["status"] = 1002;
92
+ }
93
+
94
+ } catch (Exception $e) {
95
+
96
+ }
97
+ return $result;
98
+ }
99
+
100
+ // End validateBankcode
101
+
102
+ public function startTransaction($amount = '', $currency = '', $transactionId = '', $purpose = '', $BIC_eps = '', $clientId = '', $realorderId = '') {
103
+ $this->transactionData = NULL;
104
+ $amount = isset($amount) ? (is_string($amount) ? trim($amount) : '') : '';
105
+ $currency = isset($currency) ? (is_string($currency) ? trim($currency) : 'EUR') : 'EUR';
106
+ $transactionId = isset($transactionId) ? (is_string($transactionId) ? trim($transactionId) : '') : '';
107
+ $BIC_eps = isset($BIC_eps) ? (is_string($BIC_eps) ? trim($BIC_eps) : '') : '';
108
+ $sourceParam = $this->getGcSource();
109
+
110
+ $result = array(
111
+ 'status' => 1002,
112
+ );
113
+
114
+ try {
115
+
116
+ //Sends request to Girocheckout.
117
+ $request = new GiroCheckout_SDK_Request('epsTransaction');
118
+ $request->setSecret($this->projectPassword);
119
+ $request->addParam('merchantId', $this->merchantId)
120
+ ->addParam('projectId', $this->projectId)
121
+ ->addParam('merchantTxId', $transactionId)
122
+ ->addParam('amount', $amount * 100)
123
+ ->addParam('currency', $currency)
124
+ ->addParam('purpose', $purpose)
125
+ ->addParam('bic', $BIC_eps)
126
+ ->addParam('urlRedirect', $this->urlRedirect)
127
+ ->addParam('urlNotify', $this->urlNotify)
128
+ ->addParam('sourceId', $sourceParam)
129
+ ->addParam('orderId', $realorderId)
130
+ ->addParam('customerId', $clientId)
131
+ ->submit();
132
+
133
+ if ($request->requestHasSucceeded()) {
134
+ $strUrlRedirect = $request->getResponseParam('redirect');
135
+
136
+ $result["status"] = 1001;
137
+ $result["redirect"] = $strUrlRedirect;
138
+ $result["reference"] = $request->getResponseParam('reference');
139
+ $result["gcTransInfo"] = $request->getResponseParams();
140
+ } else {
141
+
142
+ $iReturnCode = $request->getResponseParam('rc');
143
+ $strResponseMsg = $request->getResponseMessage($iReturnCode, $this->languageCode);
144
+
145
+ if ($request->getResponseParam('reference')) {
146
+ $order = Mage::getModel('sales/order');
147
+ $order->loadByIncrementId($transactionId);
148
+
149
+ $payment = $order->getPayment();
150
+ $payment->setTransactionId($request->getResponseParam('reference'));
151
+ $transaction = $payment->addTransaction('order', null, false, '');
152
+ $transaction->setParentTxnId($request->getResponseParam('reference'));
153
+ $transaction->setIsClosed(1);
154
+ $transaction->setAdditionalInformation("arrInfo", serialize($request->getResponseParams()));
155
+ $transaction->save();
156
+ $order->save();
157
+ }
158
+
159
+ $controller = Girosolution_Giroconnect_EpsController::getInstance();
160
+ if (isset($controller)) {
161
+ Mage::getSingleton('core/session')->addError($strResponseMsg);
162
+ $controller->redirectToPath('checkout/onepage', array('_secure' => true));
163
+ } else {
164
+ $msg = $strResponseMsg;
165
+ Mage::throwException($msg);
166
+ }
167
+ }
168
+ } catch (Exception $e) {
169
+ $controller = Girosolution_Giroconnect_EpsController::getInstance();
170
+ if (isset($controller)) {
171
+ Mage::getSingleton('core/session')->addError(GiroCheckout_SDK_ResponseCode_helper::getMessage(5100, $this->languageCode));
172
+ $controller->redirectToPath('checkout/onepage', array('_secure' => true));
173
+ } else {
174
+ $msg = GiroCheckout_SDK_ResponseCode_helper::getMessage(5100, $this->languageCode);
175
+ Mage::throwException($msg);
176
+ }
177
+ }
178
+ return $result;
179
+ }
180
+
181
+ // End startTransaction
182
+
183
+ private function pReadConfiguration() {
184
+ $baseurlweb = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
185
+ $this->baseUrlWeb = $baseurlweb;
186
+
187
+ $baseurl = Mage::getBaseUrl();
188
+ $baseurl = rtrim($baseurl, "/\\");
189
+ $this->baseUrl = $baseurl;
190
+
191
+ $value = Mage::getStoreConfig('payment/giroconnect_eps/eps_mid');
192
+ if (isset($value)) {
193
+ $this->merchantId = $value;
194
+ }
195
+ $value = Mage::getStoreConfig('payment/giroconnect_eps/eps_pid');
196
+ if (isset($value)) {
197
+ $this->projectId = $value;
198
+ }
199
+ $value = Mage::getStoreConfig('payment/giroconnect_eps/eps_security');
200
+ if (isset($value)) {
201
+ $this->projectPassword = $value;
202
+ }
203
+
204
+ $value = Mage::getStoreConfig('payment/giroconnect_eps/eps_createinvoice');
205
+ if (isset($value)) {
206
+ $this->createInvoice = $this->getAsBoolean($value);
207
+ }
208
+
209
+ $value = Mage::getStoreConfig('payment/giroconnect_eps/eps_purpose');
210
+ if (isset($value)) {
211
+ $this->purpose = $value;
212
+ }
213
+
214
+ $value = Mage::helper('giroconnect')->getLanguageCode();
215
+ if (isset($value)) {
216
+ $this->languageCode = $value;
217
+ }
218
+
219
+
220
+ $this->urlRedirect = $this->baseUrl . '/giroconnect/eps/redirect';
221
+ $this->urlNotify = $this->baseUrl . '/giroconnect/eps/notify';
222
+ }
223
+
224
+ // End pReadConfiguration
225
+ }
226
+
227
+ // *** End class EpsPaymentProxy ***
228
+ ?>
app/code/community/Girosolution/Giroconnect/Helper/Giropay.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Giropay.php.
5
+ */
6
+
7
+ // include_once 'AbstractPaymentProxy.php';
8
+ // include_once 'GiropayPaymentProxy.php';
9
+
10
+ class Girosolution_Giroconnect_Helper_Giropay extends Mage_Core_Helper_Abstract {
11
+
12
+ public function getGiropayPaymentProxy() {
13
+ $result = Girosolution_Giroconnect_Helper_GiropayPaymentProxy::getInstance();
14
+ return $result;
15
+ } // End getGiropayPaymentProxy
16
+
17
+ } // *** End class Girosolution_Giroconnect_Helper_Giropay ***
18
+ ?>
app/code/community/Girosolution/Giroconnect/Helper/GiropayPaymentProxy.php ADDED
@@ -0,0 +1,231 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * GiropayPaymentProxy.php
5
+ */
6
+
7
+ class Girosolution_Giroconnect_Helper_GiropayPaymentProxy extends Girosolution_Giroconnect_Helper_AbstractPaymentProxy {
8
+
9
+ private static $refINSTANCE = NULL;
10
+
11
+ public function __construct() {
12
+ parent::__construct();
13
+ self::$refINSTANCE = $this;
14
+ $this->setPaymentMethod("gc_giropay");
15
+ $this->pReadConfiguration();
16
+ // $this->pCreateGiroConnectPaymentClass();
17
+ }
18
+
19
+ // End constructor
20
+
21
+ public static function getInstance() {
22
+ if (isset(self::$refINSTANCE))
23
+ return self::$refINSTANCE;
24
+ else {
25
+ $result = new Girosolution_Giroconnect_Helper_GiropayPaymentProxy();
26
+ return $result;
27
+ }
28
+ }
29
+
30
+ // End getInstance
31
+
32
+ public function validate() {
33
+ $result = array(
34
+ 'status' => 1001,
35
+ );
36
+
37
+ if ($this->merchantId == '' ||
38
+ $this->projectId == '' ||
39
+ $this->projectPassword == '') {
40
+ $result['status'] = 1002;
41
+ $result['msg'] = $this->getValidationErrorText();
42
+ }
43
+
44
+ return $result;
45
+ }
46
+
47
+ // End validate
48
+ public function modifyOrderAfterPayment($paymentSuccessful = FALSE, $orderid = '', $updateOrderState = FALSE, $strMsgPayment = '', $gcRef = null, $gcTransInfo = null) {
49
+ $paymentSuccessful = isset($paymentSuccessful) ? (is_bool($paymentSuccessful) ? $paymentSuccessful : FALSE) : FALSE;
50
+ $orderid = isset($orderid) ? $orderid : '';
51
+ $updateOrderState = isset($updateOrderState) ? (is_bool($updateOrderState) ? $updateOrderState : FALSE) : FALSE;
52
+ if( $paymentSuccessful == TRUE ) {
53
+ $orderStateFinished = Mage_Sales_Model_Order::STATE_PROCESSING;
54
+ }
55
+ $strMsg = $this->getPaymentOrderComment($paymentSuccessful);
56
+ if( !empty($strMsgPayment) )
57
+ $strMsg = $strMsgPayment;
58
+
59
+ $giropayModel = Mage::getModel('giroconnect/payment_giropay');
60
+ if (isset($giropayModel)) {
61
+ $result = $giropayModel->modifyOrderAfterPayment($paymentSuccessful, $orderid, $updateOrderState, $strMsg, $this->canSendEmail(), $this->canCreateInvoice(), $this->getInvoiceComment(), $gcRef, $gcTransInfo, $orderStateFinished);
62
+ return $result;
63
+ } else {
64
+ return FALSE;
65
+ }
66
+ }
67
+
68
+ // End modifyOrderAfterPayment
69
+
70
+ public function validateBic($BIC = '') {
71
+ $BIC = isset($BIC) ? (is_string($BIC) ? trim($BIC) : '') : '';
72
+ $result = array(
73
+ 'status' => 1002,
74
+ 'code' => 'sb999',
75
+ 'msg' => Mage::helper('giroconnect')->__('Giropay general error'),
76
+ );
77
+ $sourceParam = $this->getGcSource();
78
+
79
+ try {
80
+ //Check if the bank provides giropay from BIC.
81
+ $request = new GiroCheckout_SDK_Request('giropayBankstatus');
82
+ $request->setSecret($this->projectPassword);
83
+ $request->addParam('merchantId', $this->merchantId)
84
+ ->addParam('projectId', $this->projectId)
85
+ ->addParam('sourceId', $sourceParam)
86
+ ->addParam('bic', $BIC)
87
+ ->submit();
88
+
89
+ if ($request->requestHasSucceeded()) {
90
+ $result["status"] = 1001;
91
+ $result["msg"] = "";
92
+ } else {
93
+ $iReturnCode = $request->getResponseParam('rc');
94
+ $result["msg"] = $request->getResponseMessage($iReturnCode, $this->languageCode);
95
+ $result["status"] = 1002;
96
+ }
97
+
98
+ } catch (Exception $e) {
99
+
100
+ }
101
+ return $result;
102
+ }
103
+
104
+ // End validateBankcode
105
+
106
+ public function startTransaction($amount = '', $currency = '', $transactionId = '', $purpose = '', $BIC = '', $clientId = '', $realorderId = '') {
107
+ $this->transactionData = NULL;
108
+ $amount = isset($amount) ? (is_string($amount) ? trim($amount) : '') : '';
109
+ $currency = isset($currency) ? (is_string($currency) ? trim($currency) : 'EUR') : 'EUR';
110
+ $transactionId = isset($transactionId) ? (is_string($transactionId) ? trim($transactionId) : '') : '';
111
+ $BIC = isset($BIC) ? (is_string($BIC) ? trim($BIC) : '') : '';
112
+ $sourceParam = $this->getGcSource();
113
+
114
+ $result = array(
115
+ 'status' => 1002,
116
+ );
117
+
118
+ try {
119
+ //Sends request to Girocheckout.
120
+ $request = new GiroCheckout_SDK_Request('giropayTransaction');
121
+ $request->setSecret($this->projectPassword);
122
+ $request->addParam('merchantId', $this->merchantId)
123
+ ->addParam('projectId', $this->projectId)
124
+ ->addParam('merchantTxId', $transactionId)
125
+ ->addParam('amount', $amount * 100)
126
+ ->addParam('currency', $currency)
127
+ ->addParam('purpose', $purpose)
128
+ ->addParam('bic', $BIC)
129
+ ->addParam('urlRedirect', $this->urlRedirect)
130
+ ->addParam('urlNotify', $this->urlNotify)
131
+ ->addParam('sourceId', $sourceParam)
132
+ ->addParam('orderId', $realorderId)
133
+ ->addParam('customerId', $clientId)
134
+ ->submit();
135
+
136
+ if ($request->requestHasSucceeded()) {
137
+ $strUrlRedirect = $request->getResponseParam('redirect');
138
+
139
+ $result["status"] = 1001;
140
+ $result["redirect"] = $strUrlRedirect;
141
+ $result["reference"] = $request->getResponseParam('reference');
142
+ $result["gcTransInfo"] = $request->getResponseParams();
143
+ } else {
144
+
145
+ $iReturnCode = $request->getResponseParam('rc');
146
+ $strResponseMsg = $request->getResponseMessage($iReturnCode, $this->languageCode);
147
+
148
+ if ($request->getResponseParam('reference')) {
149
+ $order = Mage::getModel('sales/order');
150
+ $order->loadByIncrementId($transactionId);
151
+
152
+ $payment = $order->getPayment();
153
+ $payment->setTransactionId($request->getResponseParam('reference'));
154
+ $transaction = $payment->addTransaction('order', null, false, '');
155
+ $transaction->setParentTxnId($request->getResponseParam('reference'));
156
+ $transaction->setIsClosed(1);
157
+ $transaction->setAdditionalInformation("arrInfo", serialize($request->getResponseParams()));
158
+ $transaction->save();
159
+ $order->save();
160
+ }
161
+
162
+ $controller = Girosolution_Giroconnect_GiropayController::getInstance();
163
+ if (isset($controller)) {
164
+ Mage::getSingleton('core/session')->addError($strResponseMsg);
165
+ $controller->redirectToPath('checkout/onepage', array('_secure' => true));
166
+ } else {
167
+ $msg = $strResponseMsg;
168
+ Mage::throwException($msg);
169
+ }
170
+ }
171
+ } catch (Exception $e) {
172
+ $controller = Girosolution_Giroconnect_GiropayController::getInstance();
173
+ if (isset($controller)) {
174
+ Mage::getSingleton('core/session')->addError(GiroCheckout_SDK_ResponseCode_helper::getMessage(5100, $this->languageCode));
175
+ $controller->redirectToPath('checkout/onepage', array('_secure' => true));
176
+ } else {
177
+ $msg = GiroCheckout_SDK_ResponseCode_helper::getMessage(5100, $this->languageCode);
178
+ Mage::throwException($msg);
179
+ }
180
+ }
181
+ return $result;
182
+ }
183
+
184
+ // End startTransaction
185
+
186
+ private function pReadConfiguration() {
187
+ $baseurlweb = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
188
+ $this->baseUrlWeb = $baseurlweb;
189
+
190
+ $baseurl = Mage::getBaseUrl();
191
+ $baseurl = rtrim($baseurl, "/\\");
192
+ $this->baseUrl = $baseurl;
193
+
194
+ $value = Mage::getStoreConfig('payment/giroconnect_giropay/giropay_mid');
195
+ if (isset($value)) {
196
+ $this->merchantId = $value;
197
+ }
198
+ $value = Mage::getStoreConfig('payment/giroconnect_giropay/giropay_pid');
199
+ if (isset($value)) {
200
+ $this->projectId = $value;
201
+ }
202
+ $value = Mage::getStoreConfig('payment/giroconnect_giropay/giropay_security');
203
+ if (isset($value)) {
204
+ $this->projectPassword = $value;
205
+ }
206
+
207
+ $value = Mage::getStoreConfig('payment/giroconnect_giropay/giropay_createinvoice');
208
+ if (isset($value)) {
209
+ $this->createInvoice = $this->getAsBoolean($value);
210
+ }
211
+
212
+ $value = Mage::getStoreConfig('payment/giroconnect_giropay/giropay_purpose');
213
+ if (isset($value)) {
214
+ $this->purpose = $value;
215
+ }
216
+
217
+ $value = Mage::helper('giroconnect')->getLanguageCode();
218
+ if (isset($value)) {
219
+ $this->languageCode = $value;
220
+ }
221
+
222
+
223
+ $this->urlRedirect = $this->baseUrl . '/giroconnect/giropay/redirect';
224
+ $this->urlNotify = $this->baseUrl . '/giroconnect/giropay/notify';
225
+ }
226
+
227
+ // End pReadConfiguration
228
+ }
229
+
230
+ // *** End class GiropayPaymentProxy ***
231
+ ?>
app/code/community/Girosolution/Giroconnect/Helper/Ideal.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Ideal.php
5
+ */
6
+
7
+ // include_once 'AbstractPaymentProxy.php';
8
+ // include_once 'IdealPaymentProxy.php';
9
+
10
+
11
+ class Girosolution_Giroconnect_Helper_Ideal extends Mage_Core_Helper_Abstract {
12
+
13
+ public function getIdealPaymentProxy() {
14
+ $result = Girosolution_Giroconnect_Helper_IdealPaymentProxy::getInstance();
15
+ return $result;
16
+ } // End getIdealPaymentProxy
17
+
18
+ } // *** End class Girosolution_Giroconnect_Helper_Ideal ***
19
+
20
+ ?>
app/code/community/Girosolution/Giroconnect/Helper/IdealPaymentProxy.php ADDED
@@ -0,0 +1,236 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * IdealPaymentProxy.php
5
+ */
6
+
7
+ class Girosolution_Giroconnect_Helper_IdealPaymentProxy extends Girosolution_Giroconnect_Helper_AbstractPaymentProxy {
8
+
9
+ private static $refINSTANCE = NULL;
10
+
11
+ public function __construct() {
12
+ parent::__construct();
13
+ self::$refINSTANCE = $this;
14
+ $this->setPaymentMethod("gc_ideal");
15
+ $this->pReadConfiguration();
16
+ }
17
+
18
+ // End constructor
19
+
20
+ public static function getInstance() {
21
+ if (isset(self::$refINSTANCE))
22
+ return self::$refINSTANCE;
23
+ else {
24
+ $result = new Girosolution_Giroconnect_Helper_IdealPaymentProxy();
25
+ return $result;
26
+ }
27
+ }
28
+
29
+ // End getInstance
30
+
31
+ public function validate() {
32
+ $result = array(
33
+ 'status' => 1001,
34
+ );
35
+
36
+ if ($this->merchantId == '' ||
37
+ $this->projectId == '' ||
38
+ $this->projectPassword == '') {
39
+ $result['status'] = 1002;
40
+ $result['msg'] = $this->getValidationErrorText();
41
+ }
42
+
43
+ return $result;
44
+ }
45
+
46
+ // End validate
47
+
48
+ public function modifyOrderAfterPayment($paymentSuccessful = FALSE, $orderid = '', $updateOrderState = FALSE, $gcRef = null, $gcTransInfo = null) {
49
+ $paymentSuccessful = isset($paymentSuccessful) ? (is_bool($paymentSuccessful) ? $paymentSuccessful : FALSE) : FALSE;
50
+ $orderid = isset($orderid) ? $orderid : '';
51
+ $updateOrderState = isset($updateOrderState) ? (is_bool($updateOrderState) ? $updateOrderState : FALSE) : FALSE;
52
+ if( $paymentSuccessful == TRUE ) {
53
+ $orderStateFinished = Mage_Sales_Model_Order::STATE_PROCESSING;
54
+ }
55
+
56
+ $idealModel = Mage::getModel('giroconnect/payment_ideal');
57
+ if (isset($idealModel)) {
58
+ $result = $idealModel->modifyOrderAfterPayment($paymentSuccessful, $orderid, $updateOrderState, $this->getPaymentOrderComment($paymentSuccessful), $this->canSendEmail(), $this->canCreateInvoice(), $this->getInvoiceComment(), $gcRef, $gcTransInfo, $orderStateFinished);
59
+ return $result;
60
+ } else {
61
+ return FALSE;
62
+ }
63
+ }
64
+
65
+ // End modifyOrderAfterPayment
66
+
67
+ public function getIssuers() {
68
+ $issuers = array(
69
+ '' => 'No issuers banks found.',
70
+ );
71
+ $aSessionIssuer = Mage::getSingleton('checkout/session')->getIdealIssuerList();
72
+
73
+ if( !is_array($aSessionIssuer) ) {
74
+ try {
75
+ if ($this->merchantId == '' ||
76
+ $this->projectId == '' ||
77
+ $this->projectPassword == '') {
78
+
79
+ }else{
80
+
81
+ $sourceParam = $this->getGcSource();
82
+ //Sends request to Girocheckout to get the list of the issuers.
83
+ $request = new GiroCheckout_SDK_Request('idealIssuerList');
84
+ $request->setSecret($this->projectPassword);
85
+ $request->addParam('merchantId', $this->merchantId)
86
+ ->addParam('projectId', $this->projectId)
87
+ ->addParam('sourceId', $sourceParam)
88
+ ->submit();
89
+ /* if request succeeded get the issuer list */
90
+ if ($request->requestHasSucceeded()) {
91
+ $issuers = $request->getResponseParam('issuer'); //now you can parse the array
92
+ Mage::getSingleton('checkout/session')->setIdealIssuerList($issuers);
93
+ }
94
+
95
+ /* if the request did not succeed, get the responsecode and notify the customer */ else {
96
+ $iReturnCode = $request->getResponseParam('rc');
97
+ $strResponseMsg = $request->getResponseMessage($iReturnCode, $this->languageCode);
98
+
99
+ Mage::throwException($strResponseMsg);
100
+ }
101
+ }
102
+ } catch (Exception $e) {
103
+ }
104
+ }
105
+ else {
106
+ $issuers = $aSessionIssuer;
107
+ }
108
+
109
+ return $issuers;
110
+ }
111
+
112
+ // End getIssuers
113
+
114
+ public function startTransaction($amount = '', $currency = '', $transactionId = '', $purpose = '', $issuer = '', $clientId = '', $realorderId = '') {
115
+
116
+ $this->transactionData = NULL;
117
+ $amount = isset($amount) ? (is_string($amount) ? trim($amount) : '') : '';
118
+ $currency = isset($currency) ? (is_string($currency) ? trim($currency) : 'EUR') : 'EUR';
119
+ $transactionId = isset($transactionId) ? (is_string($transactionId) ? trim($transactionId) : '') : '';
120
+ $issuer = isset($issuer) ? (is_string($issuer) ? trim($issuer) : '') : '';
121
+ $sourceParam = $this->getGcSource();
122
+
123
+ $result = array(
124
+ 'status' => 1002,
125
+ );
126
+ try {
127
+
128
+ //Sends request to Girocheckout.
129
+ $request = new GiroCheckout_SDK_Request('idealPayment');
130
+ $request->setSecret($this->projectPassword);
131
+ $request->addParam('merchantId', $this->merchantId)
132
+ ->addParam('projectId', $this->projectId)
133
+ ->addParam('merchantTxId', $transactionId)
134
+ ->addParam('amount', $amount * 100)
135
+ ->addParam('currency', $currency)
136
+ ->addParam('purpose', $purpose)
137
+ ->addParam('issuer', $issuer)
138
+ ->addParam('urlRedirect', $this->urlRedirect)
139
+ ->addParam('urlNotify', $this->urlNotify)
140
+ ->addParam('sourceId', $sourceParam)
141
+ ->addParam('orderId', $realorderId)
142
+ ->addParam('customerId', $clientId)
143
+ ->submit();
144
+
145
+ if ($request->requestHasSucceeded()) {
146
+ $strUrlRedirect = $request->getResponseParam('redirect');
147
+ $result["status"] = 1001;
148
+ $result["redirect"] = $strUrlRedirect;
149
+ $result["reference"] = $request->getResponseParam('reference');
150
+ $result["gcTransInfo"] = $request->getResponseParams();
151
+ } else {
152
+
153
+ $iReturnCode = $request->getResponseParam('rc');
154
+ $strResponseMsg = $request->getResponseMessage($iReturnCode, $this->languageCode);
155
+
156
+ if ($request->getResponseParam('reference')) {
157
+ $order = Mage::getModel('sales/order');
158
+ $order->loadByIncrementId($transactionId);
159
+
160
+ $payment = $order->getPayment();
161
+ $payment->setTransactionId($request->getResponseParam('reference'));
162
+ $transaction = $payment->addTransaction('order', null, false, '');
163
+ $transaction->setParentTxnId($request->getResponseParam('reference'));
164
+ $transaction->setIsClosed(1);
165
+ $transaction->setAdditionalInformation("arrInfo", serialize($request->getResponseParams()));
166
+ $transaction->save();
167
+ $order->save();
168
+ }
169
+ $controller = Girosolution_Giroconnect_IdealController::getInstance();
170
+ if (isset($controller)) {
171
+ Mage::getSingleton('core/session')->addError($strResponseMsg);
172
+ $controller->redirectToPath('checkout/onepage', array('_secure' => true));
173
+ } else {
174
+ $msg = $strResponseMsg;
175
+ Mage::throwException($msg);
176
+ }
177
+ }
178
+ } catch (Exception $e) {
179
+ $controller = Girosolution_Giroconnect_IdealController::getInstance();
180
+ if (isset($controller)) {
181
+ Mage::getSingleton('core/session')->addError(GiroCheckout_SDK_ResponseCode_helper::getMessage(5100, $this->languageCode));
182
+ $controller->redirectToPath('checkout/onepage', array('_secure' => true));
183
+ } else {
184
+ $msg = GiroCheckout_SDK_ResponseCode_helper::getMessage(5100, $this->languageCode);
185
+ Mage::throwException($msg);
186
+ }
187
+ }
188
+ return $result;
189
+ }
190
+
191
+ // End startTransaction
192
+
193
+ private function pReadConfiguration() {
194
+ $baseurlweb = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
195
+ $this->baseUrlWeb = $baseurlweb;
196
+
197
+ $baseurl = Mage::getBaseUrl();
198
+ $baseurl = rtrim($baseurl, "/\\");
199
+ $this->baseUrl = $baseurl;
200
+
201
+ $value = Mage::getStoreConfig('payment/giroconnect_ideal/ideal_mid');
202
+ if (isset($value)) {
203
+ $this->merchantId = $value;
204
+ }
205
+ $value = Mage::getStoreConfig('payment/giroconnect_ideal/ideal_pid');
206
+ if (isset($value)) {
207
+ $this->projectId = $value;
208
+ }
209
+ $value = Mage::getStoreConfig('payment/giroconnect_ideal/ideal_security');
210
+ if (isset($value)) {
211
+ $this->projectPassword = $value;
212
+ }
213
+
214
+ $value = Mage::getStoreConfig('payment/giroconnect_ideal/ideal_createinvoice');
215
+ if (isset($value)) {
216
+ $this->createInvoice = $this->getAsBoolean($value);
217
+ }
218
+
219
+ $value = Mage::getStoreConfig('payment/giroconnect_ideal/ideal_purpose');
220
+ if (isset($value)) {
221
+ $this->purpose = $value;
222
+ }
223
+
224
+ $value = Mage::helper('giroconnect')->getLanguageCode();
225
+ if (isset($value)) {
226
+ $this->languageCode = $value;
227
+ }
228
+
229
+ $this->urlRedirect = $this->baseUrl . '/giroconnect/ideal/redirect';
230
+ $this->urlNotify = $this->baseUrl . '/giroconnect/ideal/notify';
231
+ }
232
+
233
+ // End pReadConfiguration
234
+ }
235
+
236
+ ?>
app/code/community/Girosolution/Giroconnect/Helper/Paydirekt.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Paydirekt.php.
5
+ */
6
+
7
+ // include_once 'AbstractPaymentProxy.php';
8
+ // include_once 'PaydirektPaymentProxy.php';
9
+
10
+ class Girosolution_Giroconnect_Helper_Paydirekt extends Mage_Core_Helper_Abstract {
11
+
12
+ public function getPaydirektPaymentProxy() {
13
+ $result = Girosolution_Giroconnect_Helper_PaydirektPaymentProxy::getInstance();
14
+ return $result;
15
+ } // End getPaydirektPaymentProxy
16
+
17
+ } // *** End class Girosolution_Giroconnect_Helper_Paydirekt ***
18
+ ?>
app/code/community/Girosolution/Giroconnect/Helper/PaydirektPaymentProxy.php ADDED
@@ -0,0 +1,204 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * PaydirektPaymentProxy.php.
5
+ */
6
+
7
+ class Girosolution_Giroconnect_Helper_PaydirektPaymentProxy extends Girosolution_Giroconnect_Helper_AbstractPaymentProxy {
8
+
9
+ private static $refINSTANCE = NULL;
10
+
11
+ public function __construct() {
12
+ parent::__construct();
13
+ self::$refINSTANCE = $this;
14
+ $this->setPaymentMethod("gc_paydirekt");
15
+ $this->pReadConfiguration();
16
+ // $this->pCreateGiroConnectPaymentClass();
17
+ }
18
+
19
+ // End constructor
20
+
21
+ public static function getInstance() {
22
+ if (isset(self::$refINSTANCE))
23
+ return self::$refINSTANCE;
24
+ else {
25
+ $result = new Girosolution_Giroconnect_Helper_PaydirektPaymentProxy();
26
+ return $result;
27
+ }
28
+ }
29
+
30
+ // End getInstance
31
+
32
+ public function validate() {
33
+
34
+ $result = array(
35
+ 'status' => 1001,
36
+ );
37
+
38
+
39
+ if ($this->merchantId == '' ||
40
+ $this->projectId == '' ||
41
+ $this->projectPassword == '') {
42
+ $result['status'] = 1002;
43
+ $result['msg'] = $this->getValidationErrorText();
44
+ }
45
+
46
+ return $result;
47
+ }
48
+
49
+ // End validate
50
+
51
+ public function modifyOrderAfterPayment($paymentSuccessful = FALSE, $orderid = '', $updateOrderState = FALSE, $gcRef = null, $gcTransInfo = null) {
52
+ $paymentSuccessful = isset($paymentSuccessful) ? (is_bool($paymentSuccessful) ? $paymentSuccessful : FALSE) : FALSE;
53
+ $orderid = isset($orderid) ? $orderid : '';
54
+ $updateOrderState = isset($updateOrderState) ? (is_bool($updateOrderState) ? $updateOrderState : FALSE) : FALSE;
55
+ if ($paymentSuccessful == TRUE) {
56
+ $orderStateFinished = Mage_Sales_Model_Order::STATE_PROCESSING;
57
+ }
58
+
59
+ $paydirektModel = Mage::getModel('giroconnect/payment_paydirekt');
60
+ if (isset($paydirektModel)) {
61
+ $result = $paydirektModel->modifyOrderAfterPayment($paymentSuccessful, $orderid, $updateOrderState, $this->getPaymentOrderComment($paymentSuccessful), $this->canSendEmail(), $this->canCreateInvoice(), $this->getInvoiceComment(), $gcRef, $gcTransInfo, $orderStateFinished);
62
+ return $result;
63
+ } else {
64
+ return FALSE;
65
+ }
66
+ }
67
+
68
+ // End getCardTypes
69
+
70
+ public function startTransaction($amount = '', $currency = '', $orderId = '', $purpose = '', $clientId = '', $realorderId = '', $aShippingData = array() ) {
71
+ $this->transactionData = NULL;
72
+ $amount = isset($amount) ? (is_string($amount) ? trim($amount) : '') : '';
73
+ $currency = isset($currency) ? (is_string($currency) ? trim($currency) : 'EUR') : 'EUR';
74
+ $orderId = isset($orderId) ? (is_string($orderId) ? trim($orderId) : '') : '';
75
+ $sourceParam = $this->getGcSource();
76
+ $result = array(
77
+ 'status' => 1002,
78
+ );
79
+
80
+ try {
81
+ $oCart = new GiroCheckout_SDK_Request_Cart();
82
+ foreach( $aShippingData['Products'] as $item ) {
83
+ $oCart->addItem( $item[0], $item[1], $item[2], $item[3]);
84
+ }
85
+
86
+ //Sends request to Girocheckout.
87
+ $request = new GiroCheckout_SDK_Request('paydirektTransaction');
88
+ $request->setSecret($this->projectPassword);
89
+ $request->addParam('merchantId', $this->merchantId)
90
+ ->addParam('projectId', $this->projectId)
91
+ ->addParam('merchantTxId', $orderId)
92
+ ->addParam('amount', $amount * 100)
93
+ ->addParam('currency', $currency)
94
+ ->addParam('purpose', $purpose)
95
+ ->addParam('shippingAmount', $aShippingData["Amount"] * 100)
96
+ ->addParam('shippingAddresseFirstName', $aShippingData["FirstName"])
97
+ ->addParam('shippingAddresseLastName', $aShippingData["LastName"])
98
+ ->addParam('shippingCompany', $aShippingData["Company"])
99
+ ->addParam('shippingAdditionalAddressInformation', $aShippingData["AdditionalAddressInformation"])
100
+ ->addParam('shippingStreet', $aShippingData["Street"])
101
+ ->addParam('shippingZipCode', $aShippingData["ZipCode"])
102
+ ->addParam('shippingCity', $aShippingData["City"])
103
+ ->addParam('shippingCountry', $aShippingData["CountryIso"])
104
+ ->addParam('orderAmount', $aShippingData["orderAmount"] * 100)
105
+ ->addParam('customerMail', $aShippingData["Mail"])
106
+ ->addParam('cart', $oCart)
107
+ ->addParam('urlRedirect', $this->urlRedirect)
108
+ ->addParam('urlNotify', $this->urlNotify)
109
+ ->addParam('sourceId', $sourceParam)
110
+ ->addParam('orderId', $realorderId)
111
+ ->addParam('customerId', $clientId)
112
+ ->submit();
113
+
114
+ if ($request->requestHasSucceeded()) {
115
+ $strUrlRedirect = $request->getResponseParam('redirect');
116
+
117
+ $result["status"] = 1001;
118
+ $result["redirect"] = $strUrlRedirect;
119
+ $result["reference"] = $request->getResponseParam('reference');
120
+ $result["gcTransInfo"] = $request->getResponseParams();
121
+ } else {
122
+ $iReturnCode = $request->getResponseParam('rc');
123
+ $strResponseMsg = $request->getResponseMessage($iReturnCode, $this->languageCode);
124
+
125
+ if ($request->getResponseParam('reference')) {
126
+ $order = Mage::getModel('sales/order');
127
+ $order->loadByIncrementId($orderId);
128
+ $payment = $order->getPayment();
129
+ $payment->setTransactionId($request->getResponseParam('reference'));
130
+ $transaction = $payment->addTransaction('order', null, false, '');
131
+ $transaction->setParentTxnId($request->getResponseParam('reference'));
132
+ $transaction->setIsClosed(1);
133
+ $transaction->setAdditionalInformation("arrInfo", serialize($request->getResponseParams()));
134
+ $transaction->save();
135
+ $order->save();
136
+ }
137
+
138
+ $controller = Girosolution_Giroconnect_PaydirektController::getInstance();
139
+ if (isset($controller)) {
140
+ Mage::getSingleton('core/session')->addError($strResponseMsg);
141
+ $controller->redirectToPath('checkout/onepage', array('_secure' => true));
142
+ } else {
143
+ $msg = $strResponseMsg;
144
+ Mage::throwException($msg);
145
+ }
146
+ }
147
+ } catch (Exception $e) {
148
+ $controller = Girosolution_Giroconnect_PaydirektController::getInstance();
149
+ if (isset($controller)) {
150
+ Mage::getSingleton('core/session')->addError(GiroCheckout_SDK_ResponseCode_helper::getMessage(5100, $this->languageCode));
151
+ $controller->redirectToPath('checkout/onepage', array('_secure' => true));
152
+ } else {
153
+ $msg = GiroCheckout_SDK_ResponseCode_helper::getMessage(5100, $this->languageCode);
154
+ Mage::throwException($msg);
155
+ }
156
+ }
157
+ return $result;
158
+ }
159
+
160
+ // End startTransaction
161
+
162
+ private function pReadConfiguration() {
163
+ $baseurlweb = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
164
+ $this->baseUrlWeb = $baseurlweb;
165
+
166
+ $baseurl = Mage::getBaseUrl();
167
+ $baseurl = rtrim($baseurl, "/\\");
168
+ $this->baseUrl = $baseurl;
169
+
170
+ $value = Mage::getStoreConfig('payment/giroconnect_paydirekt/paydirekt_mid');
171
+ if (isset($value)) {
172
+ $this->merchantId = $value;
173
+ }
174
+ $value = Mage::getStoreConfig('payment/giroconnect_paydirekt/paydirekt_pid');
175
+ if (isset($value)) {
176
+ $this->projectId = $value;
177
+ }
178
+ $value = Mage::getStoreConfig('payment/giroconnect_paydirekt/paydirekt_security');
179
+ if (isset($value)) {
180
+ $this->projectPassword = $value;
181
+ }
182
+ $value = Mage::getStoreConfig('payment/giroconnect_paydirekt/paydirekt_createinvoice');
183
+ if (isset($value)) {
184
+ $this->createInvoice = $this->getAsBoolean($value);
185
+ }
186
+ $value = Mage::getStoreConfig('payment/giroconnect_paydirekt/paydirekt_purpose');
187
+ if (isset($value)) {
188
+ $this->purpose = $value;
189
+ }
190
+
191
+ $value = Mage::helper('giroconnect')->getLanguageCode();
192
+ if (isset($value)) {
193
+ $this->languageCode = $value;
194
+ }
195
+
196
+ $this->urlRedirect = $this->baseUrl . '/giroconnect/paydirekt/redirect';
197
+ $this->urlNotify = $this->baseUrl . '/giroconnect/paydirekt/notify';
198
+ }
199
+
200
+ // End pReadConfiguration
201
+ }
202
+
203
+ // *** End class PaydirektPaymentProxy ***
204
+ ?>
app/code/community/Girosolution/Giroconnect/Helper/Sofortuw.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Sofortuw.php.
5
+ */
6
+
7
+ // include_once 'AbstractPaymentProxy.php';
8
+ // include_once 'SofortuwPaymentProxy.php';
9
+
10
+ class Girosolution_Giroconnect_Helper_Sofortuw extends Mage_Core_Helper_Abstract {
11
+
12
+ public function getSofortuwPaymentProxy() {
13
+ $result = Girosolution_Giroconnect_Helper_SofortuwPaymentProxy::getInstance();
14
+ return $result;
15
+ } // End getSofortuwPaymentProxy
16
+
17
+ } // *** End class Girosolution_Giroconnect_Helper_Sofortuw ***
18
+ ?>
app/code/community/Girosolution/Giroconnect/Helper/SofortuwPaymentProxy.php ADDED
@@ -0,0 +1,187 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * SofortuwPaymentProxy.php.
5
+ */
6
+
7
+ class Girosolution_Giroconnect_Helper_SofortuwPaymentProxy extends Girosolution_Giroconnect_Helper_AbstractPaymentProxy {
8
+
9
+ private static $refINSTANCE = NULL;
10
+
11
+ public function __construct() {
12
+ parent::__construct();
13
+ self::$refINSTANCE = $this;
14
+ $this->setPaymentMethod("gc_sofortuw");
15
+ $this->pReadConfiguration();
16
+ // $this->pCreateGiroConnectPaymentClass();
17
+ }
18
+
19
+ // End constructor
20
+
21
+ public static function getInstance() {
22
+ if (isset(self::$refINSTANCE))
23
+ return self::$refINSTANCE;
24
+ else {
25
+ $result = new Girosolution_Giroconnect_Helper_SofortuwPaymentProxy();
26
+ return $result;
27
+ }
28
+ }
29
+
30
+ // End getInstance
31
+
32
+ public function validate() {
33
+
34
+ $result = array(
35
+ 'status' => 1001,
36
+ );
37
+
38
+
39
+ if ($this->merchantId == '' ||
40
+ $this->projectId == '' ||
41
+ $this->projectPassword == '') {
42
+ $result['status'] = 1002;
43
+ $result['msg'] = $this->getValidationErrorText();
44
+ }
45
+
46
+ return $result;
47
+ }
48
+
49
+ // End validate
50
+
51
+ public function modifyOrderAfterPayment($paymentSuccessful = FALSE, $orderid = '', $updateOrderState = FALSE, $gcRef = null, $gcTransInfo = null) {
52
+ $paymentSuccessful = isset($paymentSuccessful) ? (is_bool($paymentSuccessful) ? $paymentSuccessful : FALSE) : FALSE;
53
+ $orderid = isset($orderid) ? $orderid : '';
54
+ $updateOrderState = isset($updateOrderState) ? (is_bool($updateOrderState) ? $updateOrderState : FALSE) : FALSE;
55
+ if( $paymentSuccessful == TRUE ) {
56
+ $orderStateFinished = Mage_Sales_Model_Order::STATE_PROCESSING;
57
+ }
58
+
59
+ $sofortuwModel = Mage::getModel('giroconnect/payment_sofortuw');
60
+ if (isset($sofortuwModel)) {
61
+ $result = $sofortuwModel->modifyOrderAfterPayment($paymentSuccessful, $orderid, $updateOrderState, $this->getPaymentOrderComment($paymentSuccessful), $this->canSendEmail(), $this->canCreateInvoice(), $this->getInvoiceComment(), $gcRef, $gcTransInfo, $orderStateFinished);
62
+ return $result;
63
+ } else {
64
+ return FALSE;
65
+ }
66
+ }
67
+
68
+ // End getCardTypes
69
+
70
+ public function startTransaction($amount = '', $currency = '', $orderId = '', $purpose = '', $clientId = '', $realorderId = '') {
71
+ $this->transactionData = NULL;
72
+ $amount = isset($amount) ? (is_string($amount) ? trim($amount) : '') : '';
73
+ $currency = isset($currency) ? (is_string($currency) ? trim($currency) : 'EUR') : 'EUR';
74
+ $orderId = isset($orderId) ? (is_string($orderId) ? trim($orderId) : '') : '';
75
+ $sourceParam = $this->getGcSource();
76
+ $result = array(
77
+ 'status' => 1002,
78
+ );
79
+ try {
80
+
81
+ //Sends request to Girocheckout.
82
+ $request = new GiroCheckout_SDK_Request('sofortuwTransaction');
83
+ $request->setSecret($this->projectPassword);
84
+ $request->addParam('merchantId', $this->merchantId)
85
+ ->addParam('projectId', $this->projectId)
86
+ ->addParam('merchantTxId', $orderId)
87
+ ->addParam('amount', $amount * 100)
88
+ ->addParam('currency', $currency)
89
+ ->addParam('purpose', $purpose)
90
+ ->addParam('urlRedirect', $this->urlRedirect)
91
+ ->addParam('urlNotify', $this->urlNotify)
92
+ ->addParam('sourceId', $sourceParam)
93
+ ->addParam('orderId', $realorderId)
94
+ ->addParam('customerId', $clientId)
95
+ ->submit();
96
+
97
+ if ($request->requestHasSucceeded()) {
98
+ $strUrlRedirect = $request->getResponseParam('redirect');
99
+
100
+ $result["status"] = 1001;
101
+ $result["redirect"] = $strUrlRedirect;
102
+ $result["reference"] = $request->getResponseParam('reference');
103
+ $result["gcTransInfo"] = $request->getResponseParams();
104
+ } else {
105
+ $iReturnCode = $request->getResponseParam('rc');
106
+ $strResponseMsg = $request->getResponseMessage($iReturnCode, $this->languageCode);
107
+
108
+ if ($request->getResponseParam('reference')) {
109
+ $order = Mage::getModel('sales/order');
110
+ $order->loadByIncrementId($orderId);
111
+ $payment = $order->getPayment();
112
+ $payment->setTransactionId($request->getResponseParam('reference'));
113
+ $transaction = $payment->addTransaction('order', null, false, '');
114
+ $transaction->setParentTxnId($request->getResponseParam('reference'));
115
+ $transaction->setIsClosed(1);
116
+ $transaction->setAdditionalInformation("arrInfo", serialize($request->getResponseParams()));
117
+ $transaction->save();
118
+ $order->save();
119
+ }
120
+
121
+ $controller = Girosolution_Giroconnect_SofortuwController::getInstance();
122
+ if (isset($controller)) {
123
+ Mage::getSingleton('core/session')->addError($strResponseMsg);
124
+ $controller->redirectToPath('checkout/onepage', array('_secure' => true));
125
+ } else {
126
+ $msg = $strResponseMsg;
127
+ Mage::throwException($msg);
128
+ }
129
+ }
130
+ } catch (Exception $e) {
131
+ $controller = Girosolution_Giroconnect_SofortuwController::getInstance();
132
+ if (isset($controller)) {
133
+ Mage::getSingleton('core/session')->addError(GiroCheckout_SDK_ResponseCode_helper::getMessage(5100, $this->languageCode));
134
+ $controller->redirectToPath('checkout/onepage', array('_secure' => true));
135
+ } else {
136
+ $msg = GiroCheckout_SDK_ResponseCode_helper::getMessage(5100, $this->languageCode);
137
+ Mage::throwException($msg);
138
+ }
139
+ }
140
+ return $result;
141
+ }
142
+
143
+ // End startTransaction
144
+
145
+ private function pReadConfiguration() {
146
+ $baseurlweb = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
147
+ $this->baseUrlWeb = $baseurlweb;
148
+
149
+ $baseurl = Mage::getBaseUrl();
150
+ $baseurl = rtrim($baseurl, "/\\");
151
+ $this->baseUrl = $baseurl;
152
+
153
+ $value = Mage::getStoreConfig('payment/giroconnect_sofortuw/sofortuw_mid');
154
+ if (isset($value)) {
155
+ $this->merchantId = $value;
156
+ }
157
+ $value = Mage::getStoreConfig('payment/giroconnect_sofortuw/sofortuw_pid');
158
+ if (isset($value)) {
159
+ $this->projectId = $value;
160
+ }
161
+ $value = Mage::getStoreConfig('payment/giroconnect_sofortuw/sofortuw_security');
162
+ if (isset($value)) {
163
+ $this->projectPassword = $value;
164
+ }
165
+ $value = Mage::getStoreConfig('payment/giroconnect_sofortuw/sofortuw_createinvoice');
166
+ if (isset($value)) {
167
+ $this->createInvoice = $this->getAsBoolean($value);
168
+ }
169
+ $value = Mage::getStoreConfig('payment/giroconnect_sofortuw/sofortuw_purpose');
170
+ if (isset($value)) {
171
+ $this->purpose = $value;
172
+ }
173
+
174
+ $value = Mage::helper('giroconnect')->getLanguageCode();
175
+ if (isset($value)) {
176
+ $this->languageCode = $value;
177
+ }
178
+
179
+ $this->urlRedirect = $this->baseUrl . '/giroconnect/sofortuw/redirect';
180
+ $this->urlNotify = $this->baseUrl . '/giroconnect/sofortuw/notify';
181
+ }
182
+
183
+ // End pReadConfiguration
184
+ }
185
+
186
+ // *** End class SofortuwPaymentProxy ***
187
+ ?>
app/code/community/Girosolution/Giroconnect/Model/Observer.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Observer.php.
5
+ */
6
+
7
+ class Girosolution_Giroconnect_Model_Observer {
8
+
9
+ public function paymentMethodIsActive(Varien_Event_Observer $observer) {
10
+ $event = $observer->getEvent();
11
+ $method = $event->getMethodInstance();
12
+ $result = $event->getResult();
13
+ $currencyCode = Mage::app()->getStore()->getCurrentCurrencyCode();
14
+
15
+ if(empty($result->isDeniedInConfig)){
16
+ if( $currencyCode != 'EUR'){
17
+ if($method->getCode() == 'giroconnect_creditcard' ){
18
+ $result->isAvailable = true;
19
+ }else if($method->getCode() == 'giroconnect_giropay' ){
20
+ $result->isAvailable = false;
21
+ }else if($method->getCode() == 'giroconnect_eps' ){
22
+ $result->isAvailable = false;
23
+ }else if($method->getCode() == 'giroconnect_ideal' ){
24
+ $result->isAvailable = false;
25
+ }else if($method->getCode() == 'giroconnect_directdebit' ){
26
+ $result->isAvailable = false;
27
+ }else if($method->getCode() == 'giroconnect_sofortuw' ){
28
+ $result->isAvailable = false;
29
+ }else if($method->getCode() == 'giroconnect_paydirekt' ){
30
+ $result->isAvailable = false;
31
+ }
32
+ }
33
+ }
34
+ }
35
+
36
+ }
app/code/community/Girosolution/Giroconnect/Model/Payment/Abstract.php ADDED
@@ -0,0 +1,141 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Abstract.php.
5
+ */
6
+
7
+ abstract class Girosolution_Giroconnect_Model_Payment_Abstract extends Mage_Payment_Model_Method_Abstract {
8
+
9
+
10
+ /**
11
+ * @see Mage_Payment_Model_Method_Abstract::authorize()
12
+ *
13
+ * @param Varien_Object $payment
14
+ * @param unknown_type $amount
15
+ * @return Mage_Payment_Model_Abstract
16
+ */
17
+ public function authorize(Varien_Object $payment, $amount) {
18
+ return $this;
19
+ } // End authorize
20
+
21
+ /**
22
+ * Loads an order by its id. If the order was found, the order is returned, otherwise FALSE.
23
+ * @param type $orderid the orderid to load
24
+ * @return Mage_Sales_Model_Order if the order was found or FALSE if the order was not found
25
+ */
26
+ public function getExistingOrder($orderid = '') {
27
+ $orderid = isset($orderid) ? $orderid : '';
28
+
29
+ $order = Mage::getModel('sales/order');
30
+ $order->loadByIncrementId($orderid);
31
+
32
+ // if no order found
33
+ if (!$order->getId())
34
+ return FALSE;
35
+ else
36
+ return $order;
37
+ } // End getExistingOrder
38
+
39
+
40
+ public function modifyOrderAfterPayment($paymentSuccessful = FALSE,
41
+ $orderid = '',
42
+ $updateOrderState = FALSE,
43
+ $orderStateComment = '',
44
+ $sendEmail = FALSE,
45
+ $createInvoice = FALSE,
46
+ $invoiceComment = '',
47
+ $gcRef = null,
48
+ $gcTransInfo = null,
49
+ $orderStateFinished = Mage_Sales_Model_Order::STATE_PROCESSING) {
50
+
51
+ $paymentSuccessful = isset($paymentSuccessful) ? (is_bool($paymentSuccessful) ? $paymentSuccessful : FALSE) : FALSE;
52
+ $orderid = isset($orderid) ? $orderid : '';
53
+ $updateOrderState = isset($updateOrderState) ? (is_bool($updateOrderState) ? $updateOrderState : FALSE) : FALSE;
54
+ $orderStateComment = isset($orderStateComment) ? $orderStateComment : '';
55
+
56
+ if($orderStateComment == '') {
57
+ if($paymentSuccessful == TRUE)
58
+ $orderStateComment = 'Payment was successful';
59
+ else
60
+ $orderStateComment = 'Payment failed';
61
+ }
62
+ $sendEmail = isset($sendEmail) ? (is_bool($sendEmail) ? $sendEmail : FALSE) : FALSE;
63
+ $createInvoice = isset($createInvoice) ? (is_bool($createInvoice) ? $createInvoice : FALSE) : FALSE;
64
+ $invoiceComment = isset($invoiceComment) ? $invoiceComment : '';
65
+ if($invoiceComment == '') {
66
+ $invoiceComment = 'Automatically generated by payment confirmation';
67
+ }
68
+
69
+
70
+ $order = $this->getExistingOrder($orderid);
71
+ // If order was not found, return FALSE
72
+ if($order === FALSE) {
73
+ return FALSE;
74
+ }
75
+
76
+ //If order was already updated, do not update again.
77
+ if($order->getState() != Mage_Sales_Model_Order::STATE_PENDING_PAYMENT) {
78
+ $updateOrderState = FALSE;
79
+ }
80
+ else {
81
+ //update transaction
82
+ $payment = $order->getPayment();
83
+ $payment->setTransactionId($orderid);
84
+ $transaction = $payment->addTransaction('order', null, false, '');
85
+ $transaction->setParentTxnId($orderid);
86
+ $transaction->setIsClosed(1);
87
+ $transaction->setAdditionalInformation("arrInfo", serialize($gcTransInfo));
88
+ $transaction->save();
89
+ $order->save();
90
+ }
91
+
92
+ if($paymentSuccessful == FALSE) {
93
+ // If no update was required, return TRUE, because the order was found
94
+ if($updateOrderState == FALSE) {
95
+ return TRUE;
96
+ }
97
+
98
+ $order->cancel();
99
+ $order->addStatusToHistory($order->getStatus(), $orderStateComment);
100
+ $order->save();
101
+ return TRUE;
102
+ } // end failed payment
103
+
104
+
105
+ // SUCCESSFUL PAYMENT
106
+ // Set customers shopping cart inactive
107
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(false)->save();
108
+ // If no update was required, return TRUE, because the order was found
109
+ if($updateOrderState == FALSE) {
110
+ return TRUE;
111
+ }
112
+
113
+ if(empty($orderStateFinished)) {
114
+ $orderStateFinished = true;
115
+ }
116
+
117
+ // Modify payment
118
+ $order->setState(Mage_Sales_Model_Order::STATE_PROCESSING,
119
+ $orderStateFinished,
120
+ $orderStateComment);
121
+
122
+ // Send email
123
+ if($sendEmail == TRUE) {
124
+ $order->sendNewOrderEmail();
125
+ $order->setEmailSent(true);
126
+ }
127
+
128
+ if($createInvoice == TRUE) {
129
+ if($order->canInvoice()) {
130
+ $invoice = $order->prepareInvoice()->addComment($invoiceComment)->register()->pay();
131
+ Mage::getModel('core/resource_transaction')->addObject($invoice)->addObject($invoice->getOrder())->save();
132
+ $invoice->sendEmail(true, '');
133
+ $order->setState(Mage_Sales_Model_Order::STATE_PROCESSING, $orderStateFinished, $invoiceComment);
134
+ }
135
+ }
136
+
137
+ $order->save();
138
+ return TRUE;
139
+ } // End modifyOrderAfterPayment
140
+
141
+ } // *** End class Girosolution_Giroconnect_Model_Payment_Abstract ***
app/code/community/Girosolution/Giroconnect/Model/Payment/Creditcard.php ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Creditcard.php.
5
+ */
6
+ class Girosolution_Giroconnect_Model_Payment_Creditcard extends Girosolution_Giroconnect_Model_Payment_Abstract {
7
+
8
+ protected $_code = 'giroconnect_creditcard';
9
+ protected $_formBlockType = 'giroconnect/form_creditcard';
10
+ protected $_canUseInternal = true;
11
+ protected $_canUseForMultishipping = false;
12
+ protected $_isGateway = true;
13
+ protected $_canAuthorize = true;
14
+ protected $_canCapture = true;
15
+ protected $_canUseCheckout = true;
16
+
17
+ public function __construct() {
18
+ } // End constructor
19
+
20
+ public function getCheckout() {
21
+ $result = Mage::getSingleton('checkout/session');
22
+ return $result;
23
+ } // End getCheckout
24
+
25
+ /**
26
+ * Return the redirect url.
27
+ *
28
+ * @return string
29
+ */
30
+ public function getOrderPlaceRedirectUrl() {
31
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(true)->save();
32
+ $url = Mage::getUrl('giroconnect/creditcard', array('_secure' => true));
33
+ return $url;
34
+ } // End getOrderPlaceRedirectUrl
35
+
36
+ public function getCreditcardTransactionFields() {
37
+ $order_id = $this->getCheckout()->getLastRealOrderId();
38
+ $order = Mage::getModel('sales/order')->loadByIncrementId($order_id);
39
+ $amount = trim(round($order->getGrandTotal(), 2));
40
+ $description = Mage::helper('giroconnect')->__('Thank you for your visit');
41
+ $currencyCode = Mage::app()->getStore()->getCurrentCurrencyCode();
42
+ $result = array(
43
+ 'amount' => $amount,
44
+ //'currency' => 'EUR',
45
+ 'currency' => $currencyCode,
46
+ 'txId' => $order_id,
47
+ 'desc' => $description,
48
+ );
49
+ return $result;
50
+ } // End getCreditcardTransactionFields
51
+
52
+ public function assignData($data) {
53
+ if (!($data instanceof Varien_Object)) {
54
+ $data = new Varien_Object($data);
55
+ }
56
+ return $this;
57
+ } // End assignData
58
+
59
+ public function validate() {
60
+ $helper = Mage::helper('giroconnect/creditcard');
61
+ $proxy = $helper->getCreditcardPaymentProxy();
62
+ $validationResult = $proxy->validate();
63
+
64
+ if($validationResult['status'] != 1001) {
65
+ Mage::throwException($validationResult['msg']);
66
+ }
67
+ return $this;
68
+ } // End validate
69
+
70
+ } // *** End class Girosolution_Giroconnect_Model_Payment_Creditcard
71
+ ?>
app/code/community/Girosolution/Giroconnect/Model/Payment/Directdebit.php ADDED
@@ -0,0 +1,134 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Directdebit.php
5
+ */
6
+
7
+ class Girosolution_Giroconnect_Model_Payment_Directdebit extends Girosolution_Giroconnect_Model_Payment_Abstract {
8
+
9
+ protected $_code = 'giroconnect_directdebit';
10
+ protected $_formBlockType = 'giroconnect/form_directdebit';
11
+ protected $_canUseInternal = false;
12
+ protected $_canUseForMultishipping = false;
13
+ protected $_isGateway = true;
14
+ protected $_canAuthorize = true;
15
+ protected $_canCapture = true;
16
+
17
+ public function __construct() {
18
+
19
+ }
20
+
21
+ // End constructor
22
+
23
+ public function getCheckout() {
24
+ $result = Mage::getSingleton('checkout/session');
25
+ return $result;
26
+ }
27
+
28
+ // End getCheckout
29
+
30
+ /**
31
+ * Return the redirect url.
32
+ *
33
+ * @return string
34
+ */
35
+ public function getOrderPlaceRedirectUrl() {
36
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(true)->save();
37
+ $url = Mage::getUrl('giroconnect/directdebit', array('_secure' => true));
38
+ return $url;
39
+ }
40
+
41
+ // End getOrderPlaceRedirectUrl
42
+
43
+ public function getDirectdebitTransactionFields() {
44
+ $order_id = $this->getCheckout()->getLastRealOrderId();
45
+ $order = Mage::getModel('sales/order')->loadByIncrementId($order_id);
46
+ $amount = trim(round($order->getGrandTotal(), 2));
47
+ $description = Mage::helper('giroconnect')->__('Thank you for your visit');
48
+ $bankcode = Mage::getSingleton('checkout/session')->getDirectdebitBankcode();
49
+ $bankaccount = Mage::getSingleton('checkout/session')->getDirectdebitBankaccount();
50
+ $IBAN = Mage::getSingleton('checkout/session')->getDirectdebitIban();
51
+ $accountHolder = Mage::getSingleton('checkout/session')->getDirectdebitAccountholder();
52
+ $databankcheck = Mage::getSingleton('checkout/session')->getDirectdebitCdatabankcheck();
53
+ $currencyCode = Mage::app()->getStore()->getCurrentCurrencyCode();
54
+ $result = array(
55
+ 'amount' => $amount,
56
+ //'currency' => 'EUR',
57
+ 'currency' => $currencyCode,
58
+ 'txId' => $order_id,
59
+ 'desc' => $description,
60
+ 'bankcode' => $bankcode,
61
+ 'bankaccount' => $bankaccount,
62
+ 'iban' => $IBAN,
63
+ 'accountholder' => $accountHolder,
64
+ 'cdatabankcheck' => $databankcheck,
65
+ );
66
+ return $result;
67
+ }
68
+
69
+ // End getDirectdebitTransactionFields
70
+
71
+ public function assignData($data) {
72
+ if (!($data instanceof Varien_Object)) {
73
+ $data = new Varien_Object($data);
74
+ }
75
+ Mage::getSingleton('checkout/session')->setDirectdebitBankcode($data->getGiroconnectDirectdebitBankcode());
76
+ Mage::getSingleton('checkout/session')->setDirectdebitBankaccount($data->getGiroconnectDirectdebitBankaccount());
77
+ Mage::getSingleton('checkout/session')->setDirectdebitIban($data->getGiroconnectDirectdebitIban());
78
+ Mage::getSingleton('checkout/session')->setDirectdebitAccountholder($data->getGiroconnectDirectdebitAccountholder());
79
+ Mage::getSingleton('checkout/session')->setDirectdebitCdatabankcheck($data->getGiroconnectDirectdebitCdatabankcheck());
80
+ return $this;
81
+ }
82
+
83
+ // End assignData
84
+
85
+ public function validate() {
86
+ //parent::validate();
87
+ $helper = Mage::helper('giroconnect/directdebit');
88
+ $proxy = $helper->getDirectdebitPaymentProxy();
89
+ $validationResult = $proxy->validate();
90
+ if ($validationResult['status'] != 1001) {
91
+ Mage::throwException($validationResult['msg']);
92
+ }
93
+
94
+ $errorMessage = '';
95
+ $bankcode = Mage::getSingleton('checkout/session')->getDirectdebitBankcode();
96
+ if (!isset($bankcode)) {
97
+ $bankcode = '';
98
+ }
99
+ $bankaccount = Mage::getSingleton('checkout/session')->getDirectdebitBankaccount();
100
+ if (!isset($bankaccount)) {
101
+ $bankaccount = '';
102
+ }
103
+ $IBAN = Mage::getSingleton('checkout/session')->getDirectdebitIban();
104
+ if (!isset($IBAN)) {
105
+ $IBAN = '';
106
+ }
107
+ $accountHolder = Mage::getSingleton('checkout/session')->getDirectdebitAccountholder();
108
+ if (!isset($accountHolder)) {
109
+ $accountHolder = '';
110
+ }
111
+
112
+ $databankcheck = Mage::getSingleton('checkout/session')->getDirectdebitCdatabankcheck();
113
+ if (!isset($databankcheck)) {
114
+ $databankcheck = '';
115
+ }
116
+
117
+ $validationResult = $proxy->validateDirectDebitData($bankcode, $bankaccount, $IBAN, $accountHolder, $databankcheck);
118
+ if ($validationResult['status'] != 1001) {
119
+ if (isset($validationResult['msg'])) {
120
+ $errorMessage = $validationResult['msg'];
121
+ }
122
+ }
123
+
124
+ if ($errorMessage != '') {
125
+ Mage::throwException($errorMessage);
126
+ }
127
+ return $this;
128
+ }
129
+
130
+ // End validate
131
+ }
132
+
133
+ // *** End class Girosolution_Giroconnect_Model_Payment_Directdebit ***
134
+ ?>
app/code/community/Girosolution/Giroconnect/Model/Payment/Eps.php ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Eps.php.
5
+ */
6
+
7
+ class Girosolution_Giroconnect_Model_Payment_Eps extends Girosolution_Giroconnect_Model_Payment_Abstract {
8
+
9
+ protected $_code = 'giroconnect_eps';
10
+ protected $_formBlockType = 'giroconnect/form_eps';
11
+ protected $_canUseInternal = false;
12
+ protected $_canUseForMultishipping = false;
13
+ protected $_isGateway = true;
14
+ protected $_canAuthorize = true;
15
+ protected $_canCapture = true;
16
+
17
+ public function __construct() {
18
+ } // End constructor
19
+
20
+ public function getCheckout() {
21
+ $result = Mage::getSingleton('checkout/session');
22
+ return $result;
23
+ } // End getCheckout
24
+
25
+ /**
26
+ * Return the redirect url.
27
+ *
28
+ * @return string
29
+ */
30
+ public function getOrderPlaceRedirectUrl() {
31
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(true)->save();
32
+ $url = Mage::getUrl('giroconnect/eps', array('_secure' => true));
33
+ return $url;
34
+ } // End getOrderPlaceRedirectUrl
35
+
36
+ public function getEpsTransactionFields() {
37
+ $order_id = $this->getCheckout()->getLastRealOrderId();
38
+ $order = Mage::getModel('sales/order')->loadByIncrementId($order_id);
39
+ $amount = trim(round($order->getGrandTotal(), 2));
40
+ $description = Mage::helper('giroconnect')->__('Thank you for your visit');
41
+ $BIC_eps = Mage::getSingleton('checkout/session')->getEpsBic();
42
+
43
+ $currencyCode = Mage::app()->getStore()->getCurrentCurrencyCode();
44
+ $result = array(
45
+ 'amount' => $amount,
46
+ //'currency' => 'EUR',
47
+ 'currency' => $currencyCode,
48
+ 'txId' => $order_id,
49
+ 'desc' => $description,
50
+ 'bic' => $BIC_eps,
51
+ );
52
+ return $result;
53
+ } // End getEpsTransactionFields
54
+
55
+ public function assignData($data) {
56
+ if (!($data instanceof Varien_Object)) {
57
+ $data = new Varien_Object($data);
58
+ }
59
+ Mage::getSingleton('checkout/session')->setEpsBic($data->getGiroconnectEpsBic());
60
+ return $this;
61
+ } // End assignData
62
+
63
+ public function validate() {
64
+ //parent::validate();
65
+ $helper = Mage::helper('giroconnect/eps');
66
+ $proxy = $helper->getEpsPaymentProxy();
67
+ $validationResult = $proxy->validate();
68
+ if($validationResult['status'] != 1001) {
69
+ Mage::throwException($validationResult['msg']);
70
+ return $this;
71
+ }
72
+
73
+ $errorMessage = '';
74
+ $BIC_eps = Mage::getSingleton('checkout/session')->getEpsBic();
75
+ if(!isset($BIC_eps)) {
76
+ $BIC_eps = '';
77
+ }
78
+
79
+ $validationResult = $proxy->validateBicEps($BIC_eps);
80
+ if($validationResult['status'] != 1001) {
81
+ if(isset($validationResult['msg'])) {
82
+ $errorMessage = $validationResult['msg'];
83
+ }
84
+ }
85
+
86
+ if($errorMessage != '') {
87
+ Mage::throwException($errorMessage);
88
+ }
89
+ return $this;
90
+ } // End validate
91
+
92
+ } // *** End class Girosolution_Giroconnect_Model_Payment_Eps ***
93
+ ?>
app/code/community/Girosolution/Giroconnect/Model/Payment/Giropay.php ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Giropay.php.
5
+ */
6
+
7
+ class Girosolution_Giroconnect_Model_Payment_Giropay extends Girosolution_Giroconnect_Model_Payment_Abstract {
8
+
9
+ protected $_code = 'giroconnect_giropay';
10
+ protected $_formBlockType = 'giroconnect/form_giropay';
11
+ protected $_canUseInternal = false;
12
+ protected $_canUseForMultishipping = false;
13
+ protected $_isGateway = true;
14
+ protected $_canAuthorize = true;
15
+ protected $_canCapture = true;
16
+
17
+ public function __construct() {
18
+ } // End constructor
19
+
20
+ public function getCheckout() {
21
+ $result = Mage::getSingleton('checkout/session');
22
+ return $result;
23
+ } // End getCheckout
24
+
25
+ /**
26
+ * Return the redirect url.
27
+ *
28
+ * @return string
29
+ */
30
+ public function getOrderPlaceRedirectUrl() {
31
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(true)->save();
32
+ $url = Mage::getUrl('giroconnect/giropay', array('_secure' => true));
33
+ return $url;
34
+ } // End getOrderPlaceRedirectUrl
35
+
36
+ public function getGiropayTransactionFields() {
37
+ $order_id = $this->getCheckout()->getLastRealOrderId();
38
+ $order = Mage::getModel('sales/order')->loadByIncrementId($order_id);
39
+ $amount = trim(round($order->getGrandTotal(), 2));
40
+ $description = Mage::helper('giroconnect')->__('Thank you for your visit');
41
+ $BIC = Mage::getSingleton('checkout/session')->getGiropayBic();
42
+
43
+ $currencyCode = Mage::app()->getStore()->getCurrentCurrencyCode();
44
+ $result = array(
45
+ 'amount' => $amount,
46
+ //'currency' => 'EUR',
47
+ 'currency' => $currencyCode,
48
+ 'txId' => $order_id,
49
+ 'desc' => $description,
50
+ 'bic' => $BIC,
51
+ );
52
+ return $result;
53
+ } // End getGiropayTransactionFields
54
+
55
+ public function assignData($data) {
56
+ if (!($data instanceof Varien_Object)) {
57
+ $data = new Varien_Object($data);
58
+ }
59
+ Mage::getSingleton('checkout/session')->setGiropayBic($data->getGiroconnectGiropayBic());
60
+ return $this;
61
+ } // End assignData
62
+
63
+ public function validate() {
64
+ //parent::validate();
65
+ $helper = Mage::helper('giroconnect/giropay');
66
+ $proxy = $helper->getGiropayPaymentProxy();
67
+ $validationResult = $proxy->validate();
68
+ if($validationResult['status'] != 1001) {
69
+ Mage::throwException($validationResult['msg']);
70
+ return $this;
71
+ }
72
+
73
+ $errorMessage = '';
74
+ $BIC = Mage::getSingleton('checkout/session')->getGiropayBic();
75
+ if(!isset($BIC)) {
76
+ $BIC = '';
77
+ }
78
+
79
+ $validationResult = $proxy->validateBic($BIC);
80
+ if($validationResult['status'] != 1001) {
81
+ if(isset($validationResult['msg'])) {
82
+ $errorMessage = $validationResult['msg'];
83
+ }
84
+ }
85
+
86
+ if($errorMessage != '') {
87
+ Mage::throwException($errorMessage);
88
+ }
89
+ return $this;
90
+ } // End validate
91
+
92
+ } // *** End class Girosolution_Giroconnect_Model_Payment_Giropay ***
93
+ ?>
app/code/community/Girosolution/Giroconnect/Model/Payment/Ideal.php ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Ideal.php.
5
+ */
6
+
7
+
8
+
9
+ class Girosolution_Giroconnect_Model_Payment_Ideal extends Girosolution_Giroconnect_Model_Payment_Abstract {
10
+
11
+ protected $_code = 'giroconnect_ideal';
12
+ protected $_formBlockType = 'giroconnect/form_ideal';
13
+ protected $_canUseInternal = false;
14
+ protected $_canUseForMultishipping = false;
15
+ protected $_isGateway = true;
16
+ protected $_canAuthorize = true;
17
+ protected $_canCapture = true;
18
+
19
+ public function __construct() {
20
+ } // End constructor
21
+
22
+ public function getCheckout() {
23
+ $result = Mage::getSingleton('checkout/session');
24
+ return $result;
25
+ } // End getCheckout
26
+
27
+ /**
28
+ * Return the redirect url.
29
+ *
30
+ * @return string
31
+ */
32
+ public function getOrderPlaceRedirectUrl() {
33
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(true)->save();
34
+ $url = Mage::getUrl('giroconnect/ideal', array('_secure' => true));
35
+ return $url;
36
+ } // End getOrderPlaceRedirectUrl
37
+
38
+ public function getIdealTransactionFields() {
39
+ $order_id = $this->getCheckout()->getLastRealOrderId();
40
+ $order = Mage::getModel('sales/order')->loadByIncrementId($order_id);
41
+ $amount = trim(round($order->getGrandTotal(), 2));
42
+ $description = Mage::helper('giroconnect')->__('Thank you for your visit');
43
+ $issuer = Mage::getSingleton('checkout/session')->getIdealIssuer();
44
+
45
+ $currencyCode = Mage::app()->getStore()->getCurrentCurrencyCode();
46
+ $result = array(
47
+ 'amount' => $amount,
48
+ //'currency' => 'EUR',
49
+ 'currency' => $currencyCode,
50
+ 'txId' => $order_id,
51
+ 'desc' => $description,
52
+ 'issuer' => $issuer,
53
+ );
54
+
55
+ return $result;
56
+ } // End getGiropayTransactionFields
57
+
58
+ public function assignData($data) {
59
+ if (!($data instanceof Varien_Object)) {
60
+ $data = new Varien_Object($data);
61
+ }
62
+ Mage::getSingleton('checkout/session')->setIdealIssuer($data->getGiroconnectIdealIssuer());
63
+ return $this;
64
+ } // End assignData
65
+
66
+ public function validate() {
67
+ $helper = Mage::helper('giroconnect/ideal');
68
+ $proxy = $helper->getIdealPaymentProxy();
69
+ $validationResult = $proxy->validate();
70
+ if($validationResult['status'] != 1001) {
71
+ Mage::throwException($validationResult['msg']);
72
+ return $this;
73
+ }
74
+
75
+ $errorMessage = '';
76
+ $Issuer = Mage::getSingleton('checkout/session')->getIdealIssuer();
77
+
78
+ if(!isset($Issuer)) {
79
+ $Issuer = '';
80
+ $errorMessage = 'No issuer bank selected.';
81
+ }
82
+
83
+ if($errorMessage != '') {
84
+ Mage::throwException($errorMessage);
85
+ }
86
+
87
+
88
+ return $this;
89
+ } // End validate
90
+
91
+
92
+ }// *** End class Girosolution_Giroconnect_Model_Payment_Ideal ***
93
+ ?>
app/code/community/Girosolution/Giroconnect/Model/Payment/Paydirekt.php ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Paydirekt.php.
5
+ */
6
+ class Girosolution_Giroconnect_Model_Payment_Paydirekt extends Girosolution_Giroconnect_Model_Payment_Abstract {
7
+
8
+ protected $_code = 'giroconnect_paydirekt';
9
+ protected $_formBlockType = 'giroconnect/form_paydirekt';
10
+ protected $_canUseInternal = true;
11
+ protected $_canUseForMultishipping = false;
12
+ protected $_isGateway = true;
13
+ protected $_canAuthorize = true;
14
+ protected $_canCapture = true;
15
+ protected $_canUseCheckout = true;
16
+
17
+ public function __construct() {
18
+ } // End constructor
19
+
20
+ public function getCheckout() {
21
+ $result = Mage::getSingleton('checkout/session');
22
+ return $result;
23
+ } // End getCheckout
24
+
25
+ /**
26
+ * Return the redirect url.
27
+ *
28
+ * @return string
29
+ */
30
+ public function getOrderPlaceRedirectUrl() {
31
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(true)->save();
32
+ $url = Mage::getUrl('giroconnect/paydirekt', array('_secure' => true));
33
+ return $url;
34
+ } // End getOrderPlaceRedirectUrl
35
+
36
+ public function getPaydirektTransactionFields() {
37
+ $order_id = $this->getCheckout()->getLastRealOrderId();
38
+ $order = Mage::getModel('sales/order')->loadByIncrementId($order_id);
39
+ $amount = trim(round($order->getGrandTotal(), 2));
40
+ $description = Mage::helper('giroconnect')->__('Thank you for your visit');
41
+ $currencyCode = Mage::app()->getStore()->getCurrentCurrencyCode();
42
+ $result = array(
43
+ 'amount' => $amount,
44
+ //'currency' => 'EUR',
45
+ 'currency' => $currencyCode,
46
+ 'txId' => $order_id,
47
+ 'desc' => $description,
48
+ 'order' => $order,
49
+ );
50
+ return $result;
51
+ } // End getPaydirektTransactionFields
52
+
53
+ public function assignData($data) {
54
+ if (!($data instanceof Varien_Object)) {
55
+ $data = new Varien_Object($data);
56
+ }
57
+ return $this;
58
+ } // End assignData
59
+
60
+ public function validate() {
61
+ $helper = Mage::helper('giroconnect/paydirekt');
62
+ $proxy = $helper->getPaydirektPaymentProxy();
63
+ $validationResult = $proxy->validate();
64
+
65
+ if($validationResult['status'] != 1001) {
66
+ Mage::throwException($validationResult['msg']);
67
+ }
68
+ return $this;
69
+ } // End validate
70
+
71
+ } // *** End class Girosolution_Giroconnect_Model_Payment_Paydirekt
72
+ ?>
app/code/community/Girosolution/Giroconnect/Model/Payment/Sofortuw.php ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Sofortuw.php.
5
+ */
6
+ class Girosolution_Giroconnect_Model_Payment_Sofortuw extends Girosolution_Giroconnect_Model_Payment_Abstract {
7
+
8
+ protected $_code = 'giroconnect_sofortuw';
9
+ protected $_formBlockType = 'giroconnect/form_sofortuw';
10
+ protected $_canUseInternal = true;
11
+ protected $_canUseForMultishipping = false;
12
+ protected $_isGateway = true;
13
+ protected $_canAuthorize = true;
14
+ protected $_canCapture = true;
15
+ protected $_canUseCheckout = true;
16
+
17
+ public function __construct() {
18
+ } // End constructor
19
+
20
+ public function getCheckout() {
21
+ $result = Mage::getSingleton('checkout/session');
22
+ return $result;
23
+ } // End getCheckout
24
+
25
+ /**
26
+ * Return the redirect url.
27
+ *
28
+ * @return string
29
+ */
30
+ public function getOrderPlaceRedirectUrl() {
31
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(true)->save();
32
+ $url = Mage::getUrl('giroconnect/sofortuw', array('_secure' => true));
33
+ return $url;
34
+ } // End getOrderPlaceRedirectUrl
35
+
36
+ public function getSofortuwTransactionFields() {
37
+ $order_id = $this->getCheckout()->getLastRealOrderId();
38
+ $order = Mage::getModel('sales/order')->loadByIncrementId($order_id);
39
+ $amount = trim(round($order->getGrandTotal(), 2));
40
+ $description = Mage::helper('giroconnect')->__('Thank you for your visit');
41
+ $currencyCode = Mage::app()->getStore()->getCurrentCurrencyCode();
42
+ $result = array(
43
+ 'amount' => $amount,
44
+ //'currency' => 'EUR',
45
+ 'currency' => $currencyCode,
46
+ 'txId' => $order_id,
47
+ 'desc' => $description,
48
+ );
49
+ return $result;
50
+ } // End getSofortuwTransactionFields
51
+
52
+ public function assignData($data) {
53
+ if (!($data instanceof Varien_Object)) {
54
+ $data = new Varien_Object($data);
55
+ }
56
+ return $this;
57
+ } // End assignData
58
+
59
+ public function validate() {
60
+ $helper = Mage::helper('giroconnect/sofortuw');
61
+ $proxy = $helper->getSofortuwPaymentProxy();
62
+ $validationResult = $proxy->validate();
63
+
64
+ if($validationResult['status'] != 1001) {
65
+ Mage::throwException($validationResult['msg']);
66
+ }
67
+ return $this;
68
+ } // End validate
69
+
70
+ } // *** End class Girosolution_Giroconnect_Model_Payment_Sofortuw
71
+ ?>
app/code/community/Girosolution/Giroconnect/controllers/CreditcardController.php ADDED
@@ -0,0 +1,190 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * CreditcardController.php.
5
+ */
6
+
7
+ class Girosolution_Giroconnect_CreditcardController extends Mage_Core_Controller_Front_Action {
8
+
9
+ private static $instance = null;
10
+
11
+ protected function _construct() {
12
+ self::$instance = $this;
13
+ }
14
+
15
+ // End custom constructor
16
+
17
+ public static function getInstance() {
18
+ return self::$instance;
19
+ }
20
+
21
+ // End getInstance
22
+
23
+ protected function _getCheckout() {
24
+ $result = Mage::getSingleton('checkout/session');
25
+ return $result;
26
+ }
27
+
28
+ // End _getCheckout
29
+
30
+ public function redirectToPath($path, $arguments = array()) {
31
+ $this->_redirect($path, $arguments);
32
+ }
33
+
34
+ // End redirectToPath
35
+
36
+ public function indexAction() {
37
+ $helper = Mage::helper('giroconnect/creditcard');
38
+ $proxy = $helper->getCreditcardPaymentProxy();
39
+
40
+ $session = $this->_getCheckout();
41
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(true)->save();
42
+ $order = Mage::getModel('sales/order');
43
+ $order->loadByIncrementId($session->getLastRealOrderId());
44
+ if (!$order->getId()) {
45
+ Mage::throwException('No order for processing found');
46
+ }
47
+ $status = Mage_Sales_Model_Order::STATE_PENDING_PAYMENT;
48
+ $order->setState($status, true, Mage::helper('giroconnect')->__('The customer pays with Creditcard.'));
49
+ $order->save();
50
+
51
+ $creditcardModel = Mage::getModel('giroconnect/payment_creditcard');
52
+ $transactionData = $creditcardModel->getCreditcardTransactionFields();
53
+ $amount = $transactionData['amount'];
54
+ $currency = $transactionData['currency'];
55
+ $transactionId = $transactionData['txId'];
56
+ $purpose = $proxy->getPurpose($order);
57
+
58
+ if( $order->getCustomerId() == NULL )
59
+ $CustomerNr = "";
60
+ else
61
+ $CustomerNr = $order->getCustomerId();
62
+
63
+ $resultTransaction = $proxy->startTransaction($amount, $currency, $transactionId, $purpose, $CustomerNr, $order->getRealOrderId());
64
+
65
+ if (is_array($resultTransaction) && $resultTransaction["status"] == 1001) {
66
+
67
+ $payment = $order->getPayment();
68
+ $payment->setTransactionId($resultTransaction['reference']);
69
+ $transaction = $payment->addTransaction('order', null, false, '');
70
+ $transaction->setParentTxnId($resultTransaction['reference']);
71
+ $transaction->setIsClosed(1);
72
+ $transaction->setAdditionalInformation("arrInfo", serialize($resultTransaction['gcTransInfo']));
73
+ $transaction->save();
74
+ $order->save();
75
+
76
+
77
+ $this->_redirectUrl($resultTransaction["redirect"], array('_secure' => true));
78
+ }
79
+ }
80
+
81
+ // End indexAction
82
+
83
+ public function redirectAction() {
84
+
85
+ $helper = Mage::helper('giroconnect/creditcard');
86
+ $proxy = $helper->getCreditcardPaymentProxy();
87
+
88
+ //Retrieves the project password.
89
+ $projectPassword = $proxy->getProjectPassword();
90
+ try {
91
+ //Get the notification
92
+ $notify = new GiroCheckout_SDK_Notify('creditCardTransaction');
93
+ $notify->setSecret($projectPassword);
94
+ $notify->parseNotification($_GET);
95
+
96
+ //Checks if the payment was successful and redirects the user
97
+ if (!$notify->paymentSuccessful()) {
98
+ Mage::getSingleton('core/session')->addError(Mage::helper('giroconnect')->__('Payment with Creditcard failed'));
99
+ $this->_redirect('checkout/onepage', array('_secure' => true));
100
+ } else {
101
+ // Set customers shopping cart inactive
102
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(false)->save();
103
+ $this->_redirect('checkout/onepage/success', array('_secure' => true));
104
+ }
105
+ } catch (Exception $e) {
106
+ Mage::getSingleton('core/session')->addError(Mage::helper('giroconnect')->__('An unexpected error occured, please check your order'));
107
+ $this->_redirect('checkout/onepage', array('_secure' => true));
108
+ }
109
+ }
110
+
111
+ // End redirectAction
112
+
113
+ public function notifyAction() {
114
+
115
+ // do nothing, if not a GET request
116
+ if (!$this->getRequest()->isGet()) {
117
+ $this->norouteAction();
118
+ return;
119
+ }
120
+
121
+ $helper = Mage::helper('giroconnect/creditcard');
122
+ $proxy = $helper->getCreditcardPaymentProxy();
123
+
124
+ //Retrieves the project password.
125
+ $projectPassword = $proxy->getProjectPassword();
126
+ // clear response
127
+ $this->getResponse()->clearAllHeaders()->clearBody();
128
+
129
+ $notifyOK = TRUE;
130
+ $strMsg = "";
131
+ $CustomerNr = "";
132
+ $order = Mage::getModel('sales/order')->loadByIncrementId($_GET['gcMerchantTxId']);
133
+
134
+ if( $order->getCustomerIsGuest() ){
135
+ $CustomerNr = "";
136
+ }
137
+ //else, it's a normal registered user
138
+ else {
139
+ $CustomerNr = $order->getCustomerId();
140
+ }
141
+
142
+ try {
143
+ //Get the notification
144
+ $notify = new GiroCheckout_SDK_Notify('creditCardTransaction');
145
+ $notify->setSecret($projectPassword);
146
+ $notify->parseNotification($_GET);
147
+
148
+ if( !$notify->paymentSuccessful() ) {
149
+ $orderFound = $proxy->modifyOrderAfterPayment(FALSE, $_GET['gcMerchantTxId'], TRUE, $notify->getResponseParam('gcReference'), $notify->getResponseParams());
150
+ $notifyOK = false;
151
+ } else {
152
+ $orderFound = $proxy->modifyOrderAfterPayment(TRUE, $_GET['gcMerchantTxId'], TRUE, $notify->getResponseParam('gcReference'), $notify->getResponseParams());
153
+ $notifyOK = true;
154
+ }
155
+ } catch (Exception $e) {
156
+ $notifyOK = false;
157
+ $strMsg = $e->getMessage();
158
+ }
159
+
160
+ if( $notifyOK == TRUE ) {
161
+ //$this->getResponse()->setHttpResponseCode(200);
162
+ //$this->getResponse()->sendResponse();
163
+ $notify->sendOkStatus();
164
+ $notify->setNotifyResponseParam('Result', 'OK');
165
+ $notify->setNotifyResponseParam('ErrorMessage', '');
166
+ $notify->setNotifyResponseParam('MailSent', '');
167
+ $notify->setNotifyResponseParam('OrderId', $order->getRealOrderId());
168
+ $notify->setNotifyResponseParam('CustomerId', $CustomerNr);
169
+ echo $notify->getNotifyResponseStringJson();
170
+ } else {
171
+ //$this->getResponse()->setHttpResponseCode(503);
172
+ //$this->getResponse()->sendResponse();
173
+ $strMsg = $notify->getResponseMessage($notify->getResponseParam('gcResultPayment'),'DE');
174
+ $notify->sendServiceUnavailableStatus();
175
+ $notify->setNotifyResponseParam('Result', 'ERROR');
176
+ $notify->setNotifyResponseParam('ErrorMessage', $strMsg);
177
+ $notify->setNotifyResponseParam('MailSent', '');
178
+ $notify->setNotifyResponseParam('OrderId', $order->getRealOrderId());
179
+ $notify->setNotifyResponseParam('CustomerId', $CustomerNr);
180
+ echo $notify->getNotifyResponseStringJson();
181
+ }
182
+
183
+ exit;
184
+ }
185
+
186
+ // End notifyAction
187
+ }
188
+
189
+ // *** End class Girosolution_Giroconnect_CreditcardController ***
190
+ ?>
app/code/community/Girosolution/Giroconnect/controllers/DirectdebitController.php ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * DirectdebitController.php
5
+ */
6
+ //define('__GIROCKECKOUT_SDK_DEBUG__',true);
7
+ class Girosolution_Giroconnect_DirectdebitController extends Mage_Core_Controller_Front_Action {
8
+
9
+ private static $instance = null;
10
+
11
+ protected function _construct() {
12
+ self::$instance = $this;
13
+ } // End custom constructor
14
+
15
+
16
+ public static function getInstance() {
17
+ return self::$instance;
18
+ } // End getInstance
19
+
20
+ protected function _getCheckout() {
21
+ $result = Mage::getSingleton('checkout/session');
22
+ return $result;
23
+ } // End _getCheckout
24
+
25
+ public function redirectToPath($path, $arguments = array()) {
26
+ $this->_redirect($path, $arguments);
27
+ } // End redirectToPath
28
+
29
+ public function indexAction() {
30
+ $helper = Mage::helper('giroconnect/directdebit');
31
+ $proxy = $helper->getDirectdebitPaymentProxy();
32
+
33
+
34
+ $session = $this->_getCheckout();
35
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(true)->save();
36
+ $order = Mage::getModel('sales/order');
37
+ $order->loadByIncrementId($session->getLastRealOrderId());
38
+ if (!$order->getId()) {
39
+ Mage::throwException('No order for processing found');
40
+ }
41
+ $status = Mage_Sales_Model_Order::STATE_PENDING_PAYMENT;
42
+ $order->setState($status, true, Mage::helper('giroconnect')->__('The customer pays with Direct Debit.') );
43
+ $order->save();
44
+
45
+
46
+ $directdebitModel = Mage::getModel('giroconnect/payment_directdebit');
47
+ $transactionData = $directdebitModel->getDirectdebitTransactionFields();
48
+ $amount = $transactionData['amount'];
49
+ $currency = $transactionData['currency'];
50
+ $transactionId = $transactionData['txId'];
51
+ $bankCode = $transactionData['bankcode'];
52
+ $bankAccount = $transactionData['bankaccount'];
53
+ $IBAN = $transactionData['iban'];
54
+ $accountHolder = $transactionData['accountholder'];
55
+ $databankcheck = $transactionData['cdatabankcheck'];
56
+ $purpose = $proxy->getPurpose($order);
57
+
58
+ if( $order->getCustomerId() == NULL )
59
+ $CustomerNr = "";
60
+ else
61
+ $CustomerNr = $order->getCustomerId();
62
+
63
+ $resultTransaction = $proxy->startTransaction($amount, $currency, $transactionId, $purpose, $bankCode, $bankAccount, $IBAN, $accountHolder, $databankcheck, $CustomerNr, $order->getRealOrderId());
64
+
65
+ if(is_array($resultTransaction) && $resultTransaction["status"]== 1001){
66
+ $orderFound = $proxy->modifyOrderAfterPayment(TRUE, $transactionId, TRUE,$resultTransaction["gcRef"], $resultTransaction["gcTransInfo"]);
67
+ $this->_redirect('checkout/onepage/success', array('_secure' => true));
68
+ }
69
+ else {
70
+ $orderFound = $proxy->modifyOrderAfterPayment(FALSE, $transactionId, TRUE,$resultTransaction["gcRef"], $resultTransaction["gcTransInfo"]);
71
+ Mage::getSingleton('core/session')->addError(Mage::helper('giroconnect')->__('Payment with direct debit failed'));
72
+ $this->_redirect('checkout/onepage', array('_secure' => true));
73
+ }
74
+ } // End indexAction
75
+
76
+ public function redirectAction() {
77
+
78
+ } // End redirectAction
79
+
80
+ public function notifyAction() {
81
+
82
+ // do nothing, if not a GET request
83
+ if (!$this->getRequest()->isGet()) {
84
+ $this->norouteAction();
85
+ return;
86
+ }
87
+
88
+ exit;
89
+ } // End notifyAction
90
+
91
+
92
+ } // *** End class Girosolution_Giroconnect_DirectdebitController ***
93
+ ?>
app/code/community/Girosolution/Giroconnect/controllers/EpsController.php ADDED
@@ -0,0 +1,193 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * EpsController.php.
5
+ */
6
+
7
+ class Girosolution_Giroconnect_EpsController extends Mage_Core_Controller_Front_Action {
8
+
9
+ private static $instance = null;
10
+
11
+ protected function _construct() {
12
+ self::$instance = $this;
13
+ }
14
+
15
+ // End custom constructor
16
+
17
+ public static function getInstance() {
18
+ return self::$instance;
19
+ }
20
+
21
+ // End getInstance
22
+
23
+ protected function _getCheckout() {
24
+ $result = Mage::getSingleton('checkout/session');
25
+ return $result;
26
+ }
27
+
28
+ // End _getCheckout
29
+
30
+ public function redirectToPath($path, $arguments = array()) {
31
+ $this->_redirect($path, $arguments);
32
+ }
33
+
34
+ // End redirectToPath
35
+
36
+ public function indexAction() {
37
+ $helper = Mage::helper('giroconnect/eps');
38
+ $proxy = $helper->getEpsPaymentProxy();
39
+
40
+
41
+ $session = $this->_getCheckout();
42
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(true)->save();
43
+ $order = Mage::getModel('sales/order');
44
+ $order->loadByIncrementId($session->getLastRealOrderId());
45
+ if (!$order->getId()) {
46
+ Mage::throwException('No order for processing found');
47
+ }
48
+ $status = Mage_Sales_Model_Order::STATE_PENDING_PAYMENT;
49
+ $order->setState($status, true, Mage::helper('giroconnect')->__('The customer was redirected to eps.'));
50
+ $order->save();
51
+
52
+
53
+ $epsModel = Mage::getModel('giroconnect/payment_eps');
54
+ $transactionData = $epsModel->getEpsTransactionFields();
55
+ $amount = $transactionData['amount'];
56
+ $currency = $transactionData['currency'];
57
+ $transactionId = $transactionData['txId'];
58
+ $BIC_eps = $transactionData['bic'];
59
+ $purpose = $proxy->getPurpose($order);
60
+
61
+ if( $order->getCustomerId() == NULL )
62
+ $CustomerNr = "";
63
+ else
64
+ $CustomerNr = $order->getCustomerId();
65
+
66
+ $resultTransaction = $proxy->startTransaction($amount, $currency, $transactionId, $purpose, $BIC_eps, $CustomerNr, $order->getRealOrderId());
67
+
68
+ if (is_array($resultTransaction) && $resultTransaction["status"] == 1001) {
69
+
70
+ $payment = $order->getPayment();
71
+ $payment->setTransactionId($resultTransaction['reference']);
72
+ $transaction = $payment->addTransaction('order', null, false, '');
73
+ $transaction->setParentTxnId($resultTransaction['reference']);
74
+ $transaction->setIsClosed(1);
75
+ $transaction->setAdditionalInformation("arrInfo", serialize($resultTransaction['gcTransInfo']));
76
+ $transaction->save();
77
+ $order->save();
78
+ $this->_redirectUrl($resultTransaction["redirect"], array('_secure' => true));
79
+ }
80
+ }
81
+
82
+ // End indexAction
83
+
84
+ public function redirectAction() {
85
+ $helper = Mage::helper('giroconnect/eps');
86
+ $proxy = $helper->getEpsPaymentProxy();
87
+
88
+ //Retrieves the project password.
89
+ $projectPassword = $proxy->getProjectPassword();
90
+ try {
91
+ //Get the notification
92
+ $notify = new GiroCheckout_SDK_Notify('epsTransaction');
93
+ $notify->setSecret($projectPassword);
94
+ $notify->parseNotification($_GET);
95
+
96
+ //Checks if the payment was successful and redirects the user
97
+ if (!$notify->paymentSuccessful()) {
98
+ // Set messages or error codes
99
+ Mage::getSingleton('core/session')->addError(Mage::helper('giroconnect')->__('Payment with eps failed'));
100
+ $this->_redirect('checkout/onepage', array('_secure' => true));
101
+ } else {
102
+ // Set customers shopping cart inactive
103
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(false)->save();
104
+ $this->_redirect('checkout/onepage/success', array('_secure' => true));
105
+ }
106
+ } catch (Exception $e) {
107
+ // $orderFound = $proxy->modifyOrderAfterPayment(FALSE, $_GET['gcMerchantTxId'], TRUE, $notify->getResponseParam('gcReference'), $notify->getResponseParams());
108
+ Mage::getSingleton('core/session')->addError(Mage::helper('giroconnect')->__('An unexpected error occured, please check your order'));
109
+ $this->_redirect('checkout/onepage', array('_secure' => true));
110
+ }
111
+ }
112
+
113
+ // End redirectAction
114
+
115
+ public function notifyAction() {
116
+
117
+ // do nothing, if not a GET request
118
+ if (!$this->getRequest()->isGet()) {
119
+ $this->norouteAction();
120
+ return;
121
+ }
122
+
123
+ $helper = Mage::helper('giroconnect/eps');
124
+ $proxy = $helper->getEpsPaymentProxy();
125
+
126
+ //Retrieves the project password.
127
+ $projectPassword = $proxy->getProjectPassword();
128
+
129
+ // clear response
130
+ $this->getResponse()->clearAllHeaders()->clearBody();
131
+
132
+ $notifyOK = TRUE;
133
+ $strMsg = "";
134
+ $CustomerNr = "";
135
+ $order = Mage::getModel('sales/order')->loadByIncrementId($_GET['gcMerchantTxId']);
136
+
137
+ if( $order->getCustomerIsGuest() ){
138
+ $CustomerNr = "";
139
+ }
140
+ //else, it's a normal registered user
141
+ else {
142
+ $CustomerNr = $order->getCustomerId();
143
+ }
144
+
145
+ try {
146
+ //Get the notification
147
+ $notify = new GiroCheckout_SDK_Notify('epsTransaction');
148
+ $notify->setSecret($projectPassword);
149
+ $notify->parseNotification($_GET);
150
+
151
+ if( !$notify->paymentSuccessful() ) {
152
+ $orderFound = $proxy->modifyOrderAfterPayment(FALSE, $notify->getResponseParam('gcMerchantTxId'), TRUE, $notify->getResponseParam('gcReference'), $notify->getResponseParams());
153
+ $notifyOK = false;
154
+ } else {
155
+ $orderFound = $proxy->modifyOrderAfterPayment(TRUE, $notify->getResponseParam('gcMerchantTxId'), TRUE, $notify->getResponseParam('gcReference'), $notify->getResponseParams());
156
+ $notifyOK = true;
157
+ }
158
+ } catch (Exception $e) {
159
+ $notifyOK = false;
160
+ $strMsg = $e->getMessage();
161
+ }
162
+
163
+ if( $notifyOK == TRUE ) {
164
+ //$this->getResponse()->setHttpResponseCode(200);
165
+ //$this->getResponse()->sendResponse();
166
+ $notify->sendOkStatus();
167
+ $notify->setNotifyResponseParam('Result', 'OK');
168
+ $notify->setNotifyResponseParam('ErrorMessage', '');
169
+ $notify->setNotifyResponseParam('MailSent', '');
170
+ $notify->setNotifyResponseParam('OrderId', $order->getRealOrderId());
171
+ $notify->setNotifyResponseParam('CustomerId', $CustomerNr);
172
+ echo $notify->getNotifyResponseStringJson();
173
+ } else {
174
+ //$this->getResponse()->setHttpResponseCode(503);
175
+ //$this->getResponse()->sendResponse();
176
+ $strMsg = $notify->getResponseMessage($notify->getResponseParam('gcResultPayment'),'DE');
177
+ $notify->sendServiceUnavailableStatus();
178
+ $notify->setNotifyResponseParam('Result', 'ERROR');
179
+ $notify->setNotifyResponseParam('ErrorMessage', $strMsg);
180
+ $notify->setNotifyResponseParam('MailSent', '');
181
+ $notify->setNotifyResponseParam('OrderId', $order->getRealOrderId());
182
+ $notify->setNotifyResponseParam('CustomerId', $CustomerNr);
183
+ echo $notify->getNotifyResponseStringJson();
184
+ }
185
+
186
+ exit;
187
+ }
188
+
189
+ // End notifyAction
190
+ }
191
+
192
+ // *** End class Girosolution_Giroconnect_EpsController ***
193
+ ?>
app/code/community/Girosolution/Giroconnect/controllers/GiropayController.php ADDED
@@ -0,0 +1,217 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * GiropayController.php.
5
+ */
6
+
7
+
8
+ class Girosolution_Giroconnect_GiropayController extends Mage_Core_Controller_Front_Action {
9
+
10
+ private static $instance = null;
11
+
12
+ protected function _construct() {
13
+ self::$instance = $this;
14
+ }
15
+
16
+ // End custom constructor
17
+
18
+ public static function getInstance() {
19
+ return self::$instance;
20
+ }
21
+
22
+ // End getInstance
23
+
24
+ protected function _getCheckout() {
25
+ $result = Mage::getSingleton('checkout/session');
26
+ return $result;
27
+ }
28
+
29
+ // End _getCheckout
30
+
31
+ public function redirectToPath($path, $arguments = array()) {
32
+ $this->_redirect($path, $arguments);
33
+ }
34
+
35
+ // End redirectToPath
36
+
37
+ public function indexAction() {
38
+
39
+ $helper = Mage::helper('giroconnect/giropay');
40
+ $proxy = $helper->getGiropayPaymentProxy();
41
+
42
+
43
+ $session = $this->_getCheckout();
44
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(true)->save();
45
+ $order = Mage::getModel('sales/order');
46
+ $order->loadByIncrementId($session->getLastRealOrderId());
47
+ if (!$order->getId()) {
48
+ Mage::throwException('No order for processing found');
49
+ }
50
+ $status = Mage_Sales_Model_Order::STATE_PENDING_PAYMENT;
51
+ $order->setState($status, true, Mage::helper('giroconnect')->__('The customer was redirected to giropay.'));
52
+ $order->save();
53
+
54
+
55
+ $giropayModel = Mage::getModel('giroconnect/payment_giropay');
56
+ $transactionData = $giropayModel->getGiropayTransactionFields();
57
+ $amount = $transactionData['amount'];
58
+ $currency = $transactionData['currency'];
59
+ $transactionId = $transactionData['txId'];
60
+ $BIC = $transactionData['bic'];
61
+ $purpose = $proxy->getPurpose($order);
62
+
63
+ if( $order->getCustomerId() == NULL )
64
+ $CustomerNr = "";
65
+ else
66
+ $CustomerNr = $order->getCustomerId();
67
+
68
+ $resultTransaction = $proxy->startTransaction($amount, $currency, $transactionId, $purpose, $BIC, $CustomerNr, $order->getRealOrderId());
69
+
70
+ if (is_array($resultTransaction) && $resultTransaction["status"] == 1001) {
71
+
72
+ $payment = $order->getPayment();
73
+ $payment->setTransactionId($resultTransaction['reference']);
74
+ $transaction = $payment->addTransaction('order', null, false, '');
75
+ $transaction->setParentTxnId($resultTransaction['reference']);
76
+ $transaction->setIsClosed(1);
77
+ $transaction->setAdditionalInformation("arrInfo", serialize($resultTransaction['gcTransInfo']));
78
+ $transaction->save();
79
+ $order->save();
80
+ $this->_redirectUrl($resultTransaction["redirect"], array('_secure' => true));
81
+ }
82
+ }
83
+
84
+ // End indexAction
85
+
86
+ public function redirectAction() {
87
+
88
+
89
+ $helper = Mage::helper('giroconnect/giropay');
90
+ $proxy = $helper->getGiropayPaymentProxy();
91
+ $language = $proxy->getLanguageCode();
92
+
93
+ //Retrieves the project password.
94
+ $projectPassword = $proxy->getProjectPassword();
95
+ try {
96
+ //Get the notification
97
+ $notify = new GiroCheckout_SDK_Notify('giropayTransaction');
98
+ $notify->setSecret($projectPassword);
99
+ $notify->parseNotification($_GET);
100
+
101
+ //Checks if the payment was successful and redirects the user
102
+ if( !$notify->paymentSuccessful() ) {
103
+ $strErrMsg = Mage::helper('giroconnect')->__('Payment with giropay failed');
104
+ $iReturnCodeAVS = $notify->getResponseParam('gcResultAVS');
105
+ if( !$notify->avsSuccessful() ) {
106
+ $strErrMsg = $notify->getResponseMessage($iReturnCodeAVS, $language);
107
+ }
108
+
109
+ // Set messages or error codes
110
+ Mage::getSingleton('core/session')->addError($strErrMsg);
111
+ $this->_redirect('checkout/onepage', array('_secure' => true));
112
+ } else {
113
+ // Set customers shopping cart inactive
114
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(false)->save();
115
+ $this->_redirect('checkout/onepage/success', array('_secure' => true));
116
+ }
117
+ } catch (Exception $e) {
118
+ //$orderFound = $proxy->modifyOrderAfterPayment(FALSE, $_GET['gcMerchantTxId'], TRUE,$notify->getResponseParam('gcReference'),$notify->getResponseParams());
119
+ Mage::getSingleton('core/session')->addError(Mage::helper('giroconnect')->__('An unexpected error occured, please check your order'));
120
+ $this->_redirect('checkout/onepage', array('_secure' => true));
121
+ }
122
+ }
123
+
124
+ // End redirectAction
125
+
126
+ public function notifyAction() {
127
+
128
+ // do nothing, if not a GET request
129
+ if (!$this->getRequest()->isGet()) {
130
+ $this->norouteAction();
131
+ return;
132
+ }
133
+
134
+ $helper = Mage::helper('giroconnect/giropay');
135
+ $proxy = $helper->getGiropayPaymentProxy();
136
+ $language = $proxy->getLanguageCode();
137
+
138
+ //Retrieves the project password.
139
+ $projectPassword = $proxy->getProjectPassword();
140
+
141
+ // clear response
142
+ $this->getResponse()->clearAllHeaders()->clearBody();
143
+
144
+ $notifyOK = TRUE;
145
+ $strMsg = "";
146
+ $CustomerNr = "";
147
+ $order = Mage::getModel('sales/order')->loadByIncrementId($_GET['gcMerchantTxId']);
148
+
149
+ if( $order->getCustomerIsGuest() ){
150
+ $CustomerNr = "";
151
+ }
152
+ //else, it's a normal registered user
153
+ else {
154
+ $CustomerNr = $order->getCustomerId();
155
+ }
156
+
157
+ try {
158
+ //Get the notification
159
+ $notify = new GiroCheckout_SDK_Notify('giropayTransaction');
160
+ $notify->setSecret($projectPassword);
161
+ $notify->parseNotification($_GET);
162
+
163
+ $iReturnCode = $notify->getResponseParam('gcResultPayment');
164
+ $iReturnCodeAVS = $notify->getResponseParam('gcResultAVS');
165
+
166
+ $strMsg = $notify->getResponseMessage($iReturnCode, $language);
167
+
168
+ if( !$notify->paymentSuccessful() ) {
169
+ if( !$notify->avsSuccessful() ) {
170
+ $strMsg .= ", " . $notify->getResponseMessage($iReturnCodeAVS, $language);
171
+ }
172
+
173
+ $orderFound = $proxy->modifyOrderAfterPayment(FALSE, $notify->getResponseParam('gcMerchantTxId'), TRUE, $strMsg, $notify->getResponseParam('gcReference'), $notify->getResponseParams());
174
+ $notifyOK = false;
175
+ } else {
176
+ if( !empty($iReturnCodeAVS) )
177
+ $strMsg .= ", " . $notify->getResponseMessage($iReturnCodeAVS, $language);
178
+
179
+ $orderFound = $proxy->modifyOrderAfterPayment(TRUE, $notify->getResponseParam('gcMerchantTxId'), TRUE, $strMsg, $notify->getResponseParam('gcReference'), $notify->getResponseParams());
180
+ $notifyOK = true;
181
+ }
182
+ } catch (Exception $e) {
183
+ $notifyOK = false;
184
+ $strMsg = $e->getMessage();
185
+ }
186
+
187
+ if( $notifyOK == TRUE ) {
188
+ //$this->getResponse()->setHttpResponseCode(200);
189
+ //$this->getResponse()->sendResponse();
190
+ $notify->sendOkStatus();
191
+ $notify->setNotifyResponseParam('Result', 'OK');
192
+ $notify->setNotifyResponseParam('ErrorMessage', '');
193
+ $notify->setNotifyResponseParam('MailSent', '');
194
+ $notify->setNotifyResponseParam('OrderId', $order->getRealOrderId());
195
+ $notify->setNotifyResponseParam('CustomerId', $CustomerNr);
196
+ echo $notify->getNotifyResponseStringJson();
197
+ } else {
198
+ //$this->getResponse()->setHttpResponseCode(503);
199
+ //$this->getResponse()->sendResponse();
200
+ $strMsg = $notify->getResponseMessage($notify->getResponseParam('gcResultPayment'),'DE');
201
+ $notify->sendServiceUnavailableStatus();
202
+ $notify->setNotifyResponseParam('Result', 'ERROR');
203
+ $notify->setNotifyResponseParam('ErrorMessage', $strMsg);
204
+ $notify->setNotifyResponseParam('MailSent', '');
205
+ $notify->setNotifyResponseParam('OrderId', $order->getRealOrderId());
206
+ $notify->setNotifyResponseParam('CustomerId', $CustomerNr);
207
+ echo $notify->getNotifyResponseStringJson();
208
+ }
209
+
210
+ exit;
211
+ }
212
+
213
+ // End notifyAction
214
+ }
215
+
216
+ // *** End class Girosolution_Giroconnect_GiropayController ***
217
+ ?>
app/code/community/Girosolution/Giroconnect/controllers/IdealController.php ADDED
@@ -0,0 +1,195 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * To change this template, choose Tools | Templates
5
+ * and open the template in the editor.
6
+ */
7
+
8
+ class Girosolution_Giroconnect_IdealController extends Mage_Core_Controller_Front_Action {
9
+
10
+ private static $instance = null;
11
+
12
+ protected function _construct() {
13
+ self::$instance = $this;
14
+ }
15
+
16
+ // End custom constructor
17
+
18
+ public static function getInstance() {
19
+ return self::$instance;
20
+ }
21
+
22
+ // End getInstance
23
+
24
+ protected function _getCheckout() {
25
+ $result = Mage::getSingleton('checkout/session');
26
+ return $result;
27
+ }
28
+
29
+ // End _getCheckout
30
+
31
+ public function redirectToPath($path, $arguments = array()) {
32
+ $this->_redirect($path, $arguments);
33
+ }
34
+
35
+ // End redirectToPath
36
+
37
+ public function indexAction() {
38
+
39
+ $helper = Mage::helper('giroconnect/ideal');
40
+ $proxy = $helper->getIdealPaymentProxy();
41
+
42
+ $session = $this->_getCheckout();
43
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(true)->save();
44
+ $order = Mage::getModel('sales/order');
45
+ $order->loadByIncrementId($session->getLastRealOrderId());
46
+ if (!$order->getId()) {
47
+ Mage::throwException('No order for processing found');
48
+ }
49
+ $status = Mage_Sales_Model_Order::STATE_PENDING_PAYMENT;
50
+ $order->setState($status, true, Mage::helper('giroconnect')->__('The customer was redirected to iDEAL.'));
51
+ $order->save();
52
+
53
+ $idealModel = Mage::getModel('giroconnect/payment_ideal');
54
+ $transactionData = $idealModel->getIdealTransactionFields();
55
+ $amount = $transactionData['amount'];
56
+ $currency = $transactionData['currency'];
57
+ $transactionId = $transactionData['txId'];
58
+ $issuer = $transactionData['issuer'];
59
+ $purpose = $proxy->getPurpose($order);
60
+
61
+ if( $order->getCustomerId() == NULL )
62
+ $CustomerNr = "";
63
+ else
64
+ $CustomerNr = $order->getCustomerId();
65
+
66
+ $resultTransaction = $proxy->startTransaction($amount, $currency, $transactionId, $purpose, $issuer, $CustomerNr, $order->getRealOrderId());
67
+
68
+ if (is_array($resultTransaction) && $resultTransaction["status"] == 1001) {
69
+
70
+ $payment = $order->getPayment();
71
+ $payment->setTransactionId($resultTransaction['reference']);
72
+ $transaction = $payment->addTransaction('order', null, false, '');
73
+ $transaction->setParentTxnId($resultTransaction['reference']);
74
+ $transaction->setIsClosed(1);
75
+ $transaction->setAdditionalInformation("arrInfo", serialize($resultTransaction['gcTransInfo']));
76
+ $transaction->save();
77
+ $order->save();
78
+
79
+ //Redirecting the user.
80
+ $this->_redirectUrl($resultTransaction["redirect"], array('_secure' => true));
81
+ }
82
+ }
83
+
84
+ // End indexAction
85
+
86
+ public function redirectAction() {
87
+ $helper = Mage::helper('giroconnect/ideal');
88
+ $proxy = $helper->getIdealPaymentProxy();
89
+
90
+ //Retrieves the project password.
91
+ $projectPassword = $proxy->getProjectPassword();
92
+ try {
93
+ //Get the notification
94
+ $notify = new GiroCheckout_SDK_Notify('idealPayment');
95
+ $notify->setSecret($projectPassword);
96
+ $notify->parseNotification($_GET);
97
+
98
+ //Checks if the payment was successful and redirects the user
99
+ if (!$notify->paymentSuccessful()) {
100
+ // Set messages or error codes
101
+ Mage::getSingleton('core/session')->addError(Mage::helper('giroconnect')->__('Payment with iDEAL failed'));
102
+ $this->_redirect('checkout/onepage', array('_secure' => true));
103
+ } else {
104
+ // Set customers shopping cart inactive
105
+ Mage::getSingleton('checkout/session')->unsIdealIssuerList();
106
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(false)->save();
107
+ $this->_redirect('checkout/onepage/success', array('_secure' => true));
108
+ }
109
+ } catch (Exception $e) {
110
+ //$orderFound = $proxy->modifyOrderAfterPayment(FALSE, $_GET['gcMerchantTxId'], TRUE,$notify->getResponseParam('gcReference'),$notify->getResponseParams());
111
+ Mage::getSingleton('core/session')->addError(Mage::helper('giroconnect')->__('An unexpected error occured, please check your order'));
112
+ $this->_redirect('checkout/onepage', array('_secure' => true));
113
+ }
114
+ }
115
+
116
+ // End redirectAction
117
+
118
+ public function notifyAction() {
119
+ // do nothing, if not a GET request
120
+ if (!$this->getRequest()->isGet()) {
121
+ $this->norouteAction();
122
+ return;
123
+ }
124
+
125
+ $helper = Mage::helper('giroconnect/ideal');
126
+ $proxy = $helper->getIdealPaymentProxy();
127
+
128
+ //Retrieves the project password.
129
+ $projectPassword = $proxy->getProjectPassword();
130
+
131
+ // clear response
132
+ $this->getResponse()->clearAllHeaders()->clearBody();
133
+
134
+ $notifyOK = TRUE;
135
+ $strMsg = "";
136
+ $CustomerNr = "";
137
+ $order = Mage::getModel('sales/order')->loadByIncrementId($_GET['gcMerchantTxId']);
138
+
139
+ if( $order->getCustomerIsGuest() ){
140
+ $CustomerNr = "";
141
+ }
142
+ //else, it's a normal registered user
143
+ else {
144
+ $CustomerNr = $order->getCustomerId();
145
+ }
146
+
147
+ try {
148
+ //Get the notification
149
+ $notify = new GiroCheckout_SDK_Notify('idealPayment');
150
+ $notify->setSecret($projectPassword);
151
+ $notify->parseNotification($_GET);
152
+
153
+ if (!$notify->paymentSuccessful()) {
154
+ $orderFound = $proxy->modifyOrderAfterPayment(FALSE, $_GET['gcMerchantTxId'], TRUE, $notify->getResponseParam('gcReference'), $notify->getResponseParams());
155
+ $notifyOK = false;
156
+ } else {
157
+ $orderFound = $proxy->modifyOrderAfterPayment(TRUE, $_GET['gcMerchantTxId'], TRUE, $notify->getResponseParam('gcReference'), $notify->getResponseParams());
158
+ $notifyOK = true;
159
+ }
160
+ } catch (Exception $e) {
161
+ $notifyOK = false;
162
+ $strMsg = $e->getMessage();
163
+ }
164
+
165
+ if( $notifyOK == TRUE ) {
166
+ //$this->getResponse()->setHttpResponseCode(200);
167
+ //$this->getResponse()->sendResponse();
168
+ $notify->sendOkStatus();
169
+ $notify->setNotifyResponseParam('Result', 'OK');
170
+ $notify->setNotifyResponseParam('ErrorMessage', '');
171
+ $notify->setNotifyResponseParam('MailSent', '');
172
+ $notify->setNotifyResponseParam('OrderId', $order->getRealOrderId());
173
+ $notify->setNotifyResponseParam('CustomerId', $CustomerNr);
174
+ echo $notify->getNotifyResponseStringJson();
175
+ } else {
176
+ //$this->getResponse()->setHttpResponseCode(503);
177
+ //$this->getResponse()->sendResponse();
178
+ $strMsg = $notify->getResponseMessage($notify->getResponseParam('gcResultPayment'),'DE');
179
+ $notify->sendServiceUnavailableStatus();
180
+ $notify->setNotifyResponseParam('Result', 'ERROR');
181
+ $notify->setNotifyResponseParam('ErrorMessage', $strMsg);
182
+ $notify->setNotifyResponseParam('MailSent', '');
183
+ $notify->setNotifyResponseParam('OrderId', $order->getRealOrderId());
184
+ $notify->setNotifyResponseParam('CustomerId', $CustomerNr);
185
+ echo $notify->getNotifyResponseStringJson();
186
+ }
187
+
188
+ exit;
189
+ }
190
+
191
+ // End notifyAction
192
+ }
193
+
194
+ // *** End class Girosolution_Giroconnect_IdealController ***
195
+ ?>
app/code/community/Girosolution/Giroconnect/controllers/PaydirektController.php ADDED
@@ -0,0 +1,191 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * PaydirektController.php.
5
+ */
6
+
7
+ class Girosolution_Giroconnect_PaydirektController extends Mage_Core_Controller_Front_Action {
8
+
9
+ private static $instance = null;
10
+
11
+ protected function _construct() {
12
+ self::$instance = $this;
13
+ }
14
+
15
+ // End custom constructor
16
+
17
+ public static function getInstance() {
18
+ return self::$instance;
19
+ }
20
+
21
+ // End getInstance
22
+
23
+ protected function _getCheckout() {
24
+ $result = Mage::getSingleton('checkout/session');
25
+ return $result;
26
+ }
27
+
28
+ // End _getCheckout
29
+
30
+ public function redirectToPath($path, $arguments = array()) {
31
+ $this->_redirect($path, $arguments);
32
+ }
33
+
34
+ // End redirectToPath
35
+
36
+ public function indexAction() {
37
+ $helper = Mage::helper('giroconnect/paydirekt');
38
+ $proxy = $helper->getPaydirektPaymentProxy();
39
+
40
+ $session = $this->_getCheckout();
41
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(true)->save();
42
+ $order = Mage::getModel('sales/order');
43
+ $order->loadByIncrementId($session->getLastRealOrderId());
44
+ if (!$order->getId()) {
45
+ Mage::throwException('No order for processing found');
46
+ }
47
+ $status = Mage_Sales_Model_Order::STATE_PENDING_PAYMENT;
48
+ $order->setState($status, true, Mage::helper('giroconnect')->__('The customer pays with Paydirekt.'));
49
+ $order->save();
50
+
51
+ $paydirektModel = Mage::getModel('giroconnect/payment_paydirekt');
52
+ $transactionData = $paydirektModel->getPaydirektTransactionFields();
53
+ $amount = $transactionData['amount'];
54
+ $currency = $transactionData['currency'];
55
+ $transactionId = $transactionData['txId'];
56
+ $purpose = $proxy->getPurpose($order);
57
+ $aShippingInfo = $proxy->getShippingOrderInfo($order);
58
+
59
+ if( $order->getCustomerId() == NULL )
60
+ $CustomerNr = "";
61
+ else
62
+ $CustomerNr = $order->getCustomerId();
63
+
64
+ $resultTransaction = $proxy->startTransaction($amount, $currency, $transactionId, $purpose, $CustomerNr, $order->getRealOrderId(), $aShippingInfo);
65
+
66
+ if (is_array($resultTransaction) && $resultTransaction["status"] == 1001) {
67
+
68
+ $payment = $order->getPayment();
69
+ $payment->setTransactionId($resultTransaction['reference']);
70
+ $transaction = $payment->addTransaction('order', null, false, '');
71
+ $transaction->setParentTxnId($resultTransaction['reference']);
72
+ $transaction->setIsClosed(1);
73
+ $transaction->setAdditionalInformation("arrInfo", serialize($resultTransaction['gcTransInfo']));
74
+ $transaction->save();
75
+ $order->save();
76
+
77
+
78
+ $this->_redirectUrl($resultTransaction["redirect"], array('_secure' => true));
79
+ }
80
+ }
81
+
82
+ // End indexAction
83
+
84
+ public function redirectAction() {
85
+
86
+ $helper = Mage::helper('giroconnect/paydirekt');
87
+ $proxy = $helper->getPaydirektPaymentProxy();
88
+
89
+ //Retrieves the project password.
90
+ $projectPassword = $proxy->getProjectPassword();
91
+ try {
92
+ //Get the notification
93
+ $notify = new GiroCheckout_SDK_Notify('paydirektTransaction');
94
+ $notify->setSecret($projectPassword);
95
+ $notify->parseNotification($_GET);
96
+
97
+ //Checks if the payment was successful and redirects the user
98
+ if (!$notify->paymentSuccessful()) {
99
+ Mage::getSingleton('core/session')->addError(Mage::helper('giroconnect')->__('Payment with Paydirekt failed'));
100
+ $this->_redirect('checkout/onepage', array('_secure' => true));
101
+ } else {
102
+ // Set customers shopping cart inactive
103
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(false)->save();
104
+ $this->_redirect('checkout/onepage/success', array('_secure' => true));
105
+ }
106
+ } catch (Exception $e) {
107
+ Mage::getSingleton('core/session')->addError(Mage::helper('giroconnect')->__('An unexpected error occured, please check your order'));
108
+ $this->_redirect('checkout/onepage', array('_secure' => true));
109
+ }
110
+ }
111
+
112
+ // End redirectAction
113
+
114
+ public function notifyAction() {
115
+
116
+ // do nothing, if not a GET request
117
+ if (!$this->getRequest()->isGet()) {
118
+ $this->norouteAction();
119
+ return;
120
+ }
121
+
122
+ $helper = Mage::helper('giroconnect/paydirekt');
123
+ $proxy = $helper->getPaydirektPaymentProxy();
124
+
125
+ //Retrieves the project password.
126
+ $projectPassword = $proxy->getProjectPassword();
127
+ // clear response
128
+ $this->getResponse()->clearAllHeaders()->clearBody();
129
+
130
+ $notifyOK = TRUE;
131
+ $strMsg = "";
132
+ $CustomerNr = "";
133
+ $order = Mage::getModel('sales/order')->loadByIncrementId($_GET['gcMerchantTxId']);
134
+
135
+ if( $order->getCustomerIsGuest() ){
136
+ $CustomerNr = "";
137
+ }
138
+ //else, it's a normal registered user
139
+ else {
140
+ $CustomerNr = $order->getCustomerId();
141
+ }
142
+
143
+ try {
144
+ //Get the notification
145
+ $notify = new GiroCheckout_SDK_Notify('paydirektTransaction');
146
+ $notify->setSecret($projectPassword);
147
+ $notify->parseNotification($_GET);
148
+
149
+ if( !$notify->paymentSuccessful() ) {
150
+ $orderFound = $proxy->modifyOrderAfterPayment(FALSE, $_GET['gcMerchantTxId'], TRUE, $notify->getResponseParam('gcReference'), $notify->getResponseParams());
151
+ $notifyOK = false;
152
+ } else {
153
+ $orderFound = $proxy->modifyOrderAfterPayment(TRUE, $_GET['gcMerchantTxId'], TRUE, $notify->getResponseParam('gcReference'), $notify->getResponseParams());
154
+ $notifyOK = true;
155
+ }
156
+ } catch (Exception $e) {
157
+ $notifyOK = false;
158
+ $strMsg = $e->getMessage();
159
+ }
160
+
161
+ if( $notifyOK == TRUE ) {
162
+ //$this->getResponse()->setHttpResponseCode(200);
163
+ //$this->getResponse()->sendResponse();
164
+ $notify->sendOkStatus();
165
+ $notify->setNotifyResponseParam('Result', 'OK');
166
+ $notify->setNotifyResponseParam('ErrorMessage', '');
167
+ $notify->setNotifyResponseParam('MailSent', '');
168
+ $notify->setNotifyResponseParam('OrderId', $order->getRealOrderId());
169
+ $notify->setNotifyResponseParam('CustomerId', $CustomerNr);
170
+ echo $notify->getNotifyResponseStringJson();
171
+ } else {
172
+ //$this->getResponse()->setHttpResponseCode(503);
173
+ //$this->getResponse()->sendResponse();
174
+ $strMsg = $notify->getResponseMessage($notify->getResponseParam('gcResultPayment'),'DE');
175
+ $notify->sendServiceUnavailableStatus();
176
+ $notify->setNotifyResponseParam('Result', 'ERROR');
177
+ $notify->setNotifyResponseParam('ErrorMessage', $strMsg);
178
+ $notify->setNotifyResponseParam('MailSent', '');
179
+ $notify->setNotifyResponseParam('OrderId', $order->getRealOrderId());
180
+ $notify->setNotifyResponseParam('CustomerId', $CustomerNr);
181
+ echo $notify->getNotifyResponseStringJson();
182
+ }
183
+
184
+ exit;
185
+ }
186
+
187
+ // End notifyAction
188
+ }
189
+
190
+ // *** End class Girosolution_Giroconnect_PaydirektController ***
191
+ ?>
app/code/community/Girosolution/Giroconnect/controllers/SofortuwController.php ADDED
@@ -0,0 +1,190 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * SofortuwController.php.
5
+ */
6
+
7
+ class Girosolution_Giroconnect_SofortuwController extends Mage_Core_Controller_Front_Action {
8
+
9
+ private static $instance = null;
10
+
11
+ protected function _construct() {
12
+ self::$instance = $this;
13
+ }
14
+
15
+ // End custom constructor
16
+
17
+ public static function getInstance() {
18
+ return self::$instance;
19
+ }
20
+
21
+ // End getInstance
22
+
23
+ protected function _getCheckout() {
24
+ $result = Mage::getSingleton('checkout/session');
25
+ return $result;
26
+ }
27
+
28
+ // End _getCheckout
29
+
30
+ public function redirectToPath($path, $arguments = array()) {
31
+ $this->_redirect($path, $arguments);
32
+ }
33
+
34
+ // End redirectToPath
35
+
36
+ public function indexAction() {
37
+ $helper = Mage::helper('giroconnect/sofortuw');
38
+ $proxy = $helper->getSofortuwPaymentProxy();
39
+
40
+ $session = $this->_getCheckout();
41
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(true)->save();
42
+ $order = Mage::getModel('sales/order');
43
+ $order->loadByIncrementId($session->getLastRealOrderId());
44
+ if (!$order->getId()) {
45
+ Mage::throwException('No order for processing found');
46
+ }
47
+ $status = Mage_Sales_Model_Order::STATE_PENDING_PAYMENT;
48
+ $order->setState($status, true, Mage::helper('giroconnect')->__('The customer pays with Sofortuw.'));
49
+ $order->save();
50
+
51
+ $sofortuwModel = Mage::getModel('giroconnect/payment_sofortuw');
52
+ $transactionData = $sofortuwModel->getSofortuwTransactionFields();
53
+ $amount = $transactionData['amount'];
54
+ $currency = $transactionData['currency'];
55
+ $transactionId = $transactionData['txId'];
56
+ $purpose = $proxy->getPurpose($order);
57
+
58
+ if( $order->getCustomerId() == NULL )
59
+ $CustomerNr = "";
60
+ else
61
+ $CustomerNr = $order->getCustomerId();
62
+
63
+ $resultTransaction = $proxy->startTransaction($amount, $currency, $transactionId, $purpose, $CustomerNr, $order->getRealOrderId());
64
+
65
+ if (is_array($resultTransaction) && $resultTransaction["status"] == 1001) {
66
+
67
+ $payment = $order->getPayment();
68
+ $payment->setTransactionId($resultTransaction['reference']);
69
+ $transaction = $payment->addTransaction('order', null, false, '');
70
+ $transaction->setParentTxnId($resultTransaction['reference']);
71
+ $transaction->setIsClosed(1);
72
+ $transaction->setAdditionalInformation("arrInfo", serialize($resultTransaction['gcTransInfo']));
73
+ $transaction->save();
74
+ $order->save();
75
+
76
+
77
+ $this->_redirectUrl($resultTransaction["redirect"], array('_secure' => true));
78
+ }
79
+ }
80
+
81
+ // End indexAction
82
+
83
+ public function redirectAction() {
84
+
85
+ $helper = Mage::helper('giroconnect/sofortuw');
86
+ $proxy = $helper->getSofortuwPaymentProxy();
87
+
88
+ //Retrieves the project password.
89
+ $projectPassword = $proxy->getProjectPassword();
90
+ try {
91
+ //Get the notification
92
+ $notify = new GiroCheckout_SDK_Notify('sofortuwTransaction');
93
+ $notify->setSecret($projectPassword);
94
+ $notify->parseNotification($_GET);
95
+
96
+ //Checks if the payment was successful and redirects the user
97
+ if (!$notify->paymentSuccessful()) {
98
+ Mage::getSingleton('core/session')->addError(Mage::helper('giroconnect')->__('Payment with Sofortuw failed'));
99
+ $this->_redirect('checkout/onepage', array('_secure' => true));
100
+ } else {
101
+ // Set customers shopping cart inactive
102
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(false)->save();
103
+ $this->_redirect('checkout/onepage/success', array('_secure' => true));
104
+ }
105
+ } catch (Exception $e) {
106
+ Mage::getSingleton('core/session')->addError(Mage::helper('giroconnect')->__('An unexpected error occured, please check your order'));
107
+ $this->_redirect('checkout/onepage', array('_secure' => true));
108
+ }
109
+ }
110
+
111
+ // End redirectAction
112
+
113
+ public function notifyAction() {
114
+
115
+ // do nothing, if not a GET request
116
+ if (!$this->getRequest()->isGet()) {
117
+ $this->norouteAction();
118
+ return;
119
+ }
120
+
121
+ $helper = Mage::helper('giroconnect/sofortuw');
122
+ $proxy = $helper->getSofortuwPaymentProxy();
123
+
124
+ //Retrieves the project password.
125
+ $projectPassword = $proxy->getProjectPassword();
126
+ // clear response
127
+ $this->getResponse()->clearAllHeaders()->clearBody();
128
+
129
+ $notifyOK = TRUE;
130
+ $strMsg = "";
131
+ $CustomerNr = "";
132
+ $order = Mage::getModel('sales/order')->loadByIncrementId($_GET['gcMerchantTxId']);
133
+
134
+ if( $order->getCustomerIsGuest() ){
135
+ $CustomerNr = "";
136
+ }
137
+ //else, it's a normal registered user
138
+ else {
139
+ $CustomerNr = $order->getCustomerId();
140
+ }
141
+
142
+ try {
143
+ //Get the notification
144
+ $notify = new GiroCheckout_SDK_Notify('sofortuwTransaction');
145
+ $notify->setSecret($projectPassword);
146
+ $notify->parseNotification($_GET);
147
+
148
+ if( !$notify->paymentSuccessful() ) {
149
+ $orderFound = $proxy->modifyOrderAfterPayment(FALSE, $_GET['gcMerchantTxId'], TRUE, $notify->getResponseParam('gcReference'), $notify->getResponseParams());
150
+ $notifyOK = false;
151
+ } else {
152
+ $orderFound = $proxy->modifyOrderAfterPayment(TRUE, $_GET['gcMerchantTxId'], TRUE, $notify->getResponseParam('gcReference'), $notify->getResponseParams());
153
+ $notifyOK = true;
154
+ }
155
+ } catch (Exception $e) {
156
+ $notifyOK = false;
157
+ $strMsg = $e->getMessage();
158
+ }
159
+
160
+ if( $notifyOK == TRUE ) {
161
+ //$this->getResponse()->setHttpResponseCode(200);
162
+ //$this->getResponse()->sendResponse();
163
+ $notify->sendOkStatus();
164
+ $notify->setNotifyResponseParam('Result', 'OK');
165
+ $notify->setNotifyResponseParam('ErrorMessage', '');
166
+ $notify->setNotifyResponseParam('MailSent', '');
167
+ $notify->setNotifyResponseParam('OrderId', $order->getRealOrderId());
168
+ $notify->setNotifyResponseParam('CustomerId', $CustomerNr);
169
+ echo $notify->getNotifyResponseStringJson();
170
+ } else {
171
+ //$this->getResponse()->setHttpResponseCode(503);
172
+ //$this->getResponse()->sendResponse();
173
+ $strMsg = $notify->getResponseMessage($notify->getResponseParam('gcResultPayment'),'DE');
174
+ $notify->sendServiceUnavailableStatus();
175
+ $notify->setNotifyResponseParam('Result', 'ERROR');
176
+ $notify->setNotifyResponseParam('ErrorMessage', $strMsg);
177
+ $notify->setNotifyResponseParam('MailSent', '');
178
+ $notify->setNotifyResponseParam('OrderId', $order->getRealOrderId());
179
+ $notify->setNotifyResponseParam('CustomerId', $CustomerNr);
180
+ echo $notify->getNotifyResponseStringJson();
181
+ }
182
+
183
+ exit;
184
+ }
185
+
186
+ // End notifyAction
187
+ }
188
+
189
+ // *** End class Girosolution_Giroconnect_SofortuwController ***
190
+ ?>
app/code/community/Girosolution/Giroconnect/etc/config.xml ADDED
@@ -0,0 +1,158 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <Girosolution_Giroconnect>
5
+ <version>4.0.0.0</version>
6
+ </Girosolution_Giroconnect>
7
+ </modules>
8
+ <global>
9
+ <models>
10
+ <giroconnect>
11
+ <class>Girosolution_Giroconnect_Model</class>
12
+ </giroconnect>
13
+ </models>
14
+ <helpers>
15
+ <giroconnect>
16
+ <class>Girosolution_Giroconnect_Helper</class>
17
+ </giroconnect>
18
+ </helpers>
19
+ <blocks>
20
+ <giroconnect>
21
+ <class>Girosolution_Giroconnect_Block</class>
22
+ </giroconnect>
23
+ </blocks>
24
+ <resources>
25
+ <giroconnect_setup>
26
+ <setup>
27
+ <module>Girosolution_Giroconnect</module>
28
+ </setup>
29
+ <connection>
30
+ <use>core_setup</use>
31
+ </connection>
32
+ </giroconnect_setup>
33
+ <giroconnect_write>
34
+ <connection>
35
+ <use>core_write</use>
36
+ </connection>
37
+ </giroconnect_write>
38
+ <giroconnect_read>
39
+ <connection>
40
+ <use>core_read</use>
41
+ </connection>
42
+ </giroconnect_read>
43
+ </resources>
44
+ </global>
45
+
46
+ <frontend>
47
+
48
+ <translate>
49
+ <modules>
50
+ <Girosolution_Giroconnect>
51
+ <files>
52
+ <default>Girosolution_Giroconnect.csv</default>
53
+ </files>
54
+ </Girosolution_Giroconnect>
55
+ </modules>
56
+ </translate>
57
+ <routers>
58
+ <giroconnect>
59
+ <use>standard</use>
60
+ <args>
61
+ <module>Girosolution_Giroconnect</module>
62
+ <frontName>giroconnect</frontName>
63
+ </args>
64
+ </giroconnect>
65
+ </routers>
66
+ <layout>
67
+ <updates>
68
+ <giroconnect>
69
+ <file>giroconnect/giroconnectlayout.xml</file>
70
+ </giroconnect>
71
+ </updates>
72
+ </layout>
73
+ <events>
74
+ <payment_method_is_active>
75
+ <observers>
76
+ <giroconnect_payment_method_is_active>
77
+ <type>singleton</type>
78
+ <class>giroconnect/observer</class>
79
+ <method>paymentMethodIsActive</method>
80
+ </giroconnect_payment_method_is_active>
81
+ </observers>
82
+ </payment_method_is_active>
83
+ </events>
84
+ </frontend>
85
+
86
+ <adminhtml>
87
+ <translate>
88
+ <modules>
89
+ <Girosolution_Giroconnect>
90
+ <files>
91
+ <default>Girosolution_Giroconnect.csv</default>
92
+ </files>
93
+ </Girosolution_Giroconnect>
94
+ </modules>
95
+ </translate>
96
+ </adminhtml>
97
+
98
+ <default>
99
+ <payment>
100
+ <giroconnect_giropay>
101
+ <model>giroconnect/payment_giropay</model>
102
+ <active>1</active>
103
+ <title>giropay</title>
104
+ <order_status>1</order_status>
105
+ <payment_action>authorize</payment_action>
106
+ <giropay_purpose>Best. {ORDERID}, {SHOPNAME}</giropay_purpose>
107
+ </giroconnect_giropay>
108
+ <giroconnect_directdebit>
109
+ <model>giroconnect/payment_directdebit</model>
110
+ <active>0</active>
111
+ <title>Direct Debit</title>
112
+ <order_status>1</order_status>
113
+ <payment_action>authorize</payment_action>
114
+ <directdebit_purpose>Best. {ORDERID}, {SHOPNAME}</directdebit_purpose>
115
+ </giroconnect_directdebit>
116
+ <giroconnect_creditcard>
117
+ <model>giroconnect/payment_creditcard</model>
118
+ <active>0</active>
119
+ <title>Credit Card</title>
120
+ <order_status>1</order_status>
121
+ <payment_action>authorize</payment_action>
122
+ <creditcard_purpose>Best. {ORDERID}, {SHOPNAME}</creditcard_purpose>
123
+ </giroconnect_creditcard>
124
+ <giroconnect_ideal>
125
+ <model>giroconnect/payment_ideal</model>
126
+ <active>0</active>
127
+ <title>iDEAL</title>
128
+ <order_status>1</order_status>
129
+ <payment_action>authorize</payment_action>
130
+ <ideal_purpose>Best. {ORDERID}, {SHOPNAME}</ideal_purpose>
131
+ </giroconnect_ideal>
132
+ <giroconnect_eps>
133
+ <model>giroconnect/payment_eps</model>
134
+ <active>0</active>
135
+ <title>eps</title>
136
+ <order_status>1</order_status>
137
+ <payment_action>authorize</payment_action>
138
+ <eps_purpose>Best. {ORDERID}, {SHOPNAME}</eps_purpose>
139
+ </giroconnect_eps>
140
+ <giroconnect_sofortuw>
141
+ <model>giroconnect/payment_sofortuw</model>
142
+ <active>0</active>
143
+ <title>SOFORT</title>
144
+ <order_status>1</order_status>
145
+ <payment_action>authorize</payment_action>
146
+ <sofortuw_purpose>Best. {ORDERID}, {SHOPNAME}</sofortuw_purpose>
147
+ </giroconnect_sofortuw>
148
+ <giroconnect_paydirekt>
149
+ <model>giroconnect/payment_paydirekt</model>
150
+ <active>0</active>
151
+ <title>Paydirekt</title>
152
+ <order_status>1</order_status>
153
+ <payment_action>authorize</payment_action>
154
+ <paydirekt_purpose>Best. {ORDERID}, {SHOPNAME}</paydirekt_purpose>
155
+ </giroconnect_paydirekt>
156
+ </payment>
157
+ </default>
158
+ </config>
app/code/community/Girosolution/Giroconnect/etc/system.xml ADDED
@@ -0,0 +1,850 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <config>
3
+ <sections>
4
+ <payment translate="label" module="giroconnect">
5
+ <groups>
6
+ <giroconnect_giropay translate="label">
7
+ <label>Giropay (GiroCheckout)</label>
8
+ <sort_order>991</sort_order>
9
+ <show_in_default>1</show_in_default>
10
+ <show_in_website>1</show_in_website>
11
+ <show_in_store>1</show_in_store>
12
+ <fields>
13
+ <active translate="label">
14
+ <label>Enabled</label>
15
+ <frontend_type>select</frontend_type>
16
+ <source_model>adminhtml/system_config_source_yesno</source_model>
17
+ <sort_order>1</sort_order>
18
+ <show_in_default>1</show_in_default>
19
+ <show_in_website>1</show_in_website>
20
+ <show_in_store>1</show_in_store>
21
+ </active>
22
+ <title translate="label">
23
+ <label>Title</label>
24
+ <frontend_type>text</frontend_type>
25
+ <sort_order>10</sort_order>
26
+ <show_in_default>1</show_in_default>
27
+ <show_in_website>1</show_in_website>
28
+ <show_in_store>1</show_in_store>
29
+ <!--<validate>required-entry</validate>-->
30
+ </title>
31
+ <order_status translate="label">
32
+ <label>New order status</label>
33
+ <frontend_type>select</frontend_type>
34
+ <source_model>adminhtml/system_config_source_order_status_new</source_model>
35
+ <sort_order>15</sort_order>
36
+ <show_in_default>1</show_in_default>
37
+ <show_in_website>1</show_in_website>
38
+ <show_in_store>1</show_in_store>
39
+ </order_status>
40
+ <giropay_mid translate="label">
41
+ <label>Merchant-ID</label>
42
+ <frontend_type>text</frontend_type>
43
+ <sort_order>20</sort_order>
44
+ <show_in_default>1</show_in_default>
45
+ <show_in_website>1</show_in_website>
46
+ <show_in_store>1</show_in_store>
47
+ <comment>Information from GiroCockpit</comment>
48
+ </giropay_mid>
49
+ <giropay_pid translate="label">
50
+ <label>Project-ID</label>
51
+ <frontend_type>text</frontend_type>
52
+ <sort_order>25</sort_order>
53
+ <show_in_default>1</show_in_default>
54
+ <show_in_website>1</show_in_website>
55
+ <show_in_store>1</show_in_store>
56
+ <comment>Information from GiroCockpit</comment>
57
+ </giropay_pid>
58
+ <giropay_security translate="label">
59
+ <label>Project-Password</label>
60
+ <frontend_type>text</frontend_type>
61
+ <sort_order>30</sort_order>
62
+ <show_in_default>1</show_in_default>
63
+ <show_in_website>1</show_in_website>
64
+ <show_in_store>1</show_in_store>
65
+ <comment>Information from GiroCockpit</comment>
66
+ </giropay_security>
67
+ <allowspecific translate="label">
68
+ <label>Payment from Applicable Countries</label>
69
+ <frontend_type>allowspecific</frontend_type>
70
+ <sort_order>35</sort_order>
71
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
72
+ <show_in_default>1</show_in_default>
73
+ <show_in_website>1</show_in_website>
74
+ <show_in_store>1</show_in_store>
75
+ </allowspecific>
76
+ <specificcountry translate="label">
77
+ <label>Payment from Specific Countries</label>
78
+ <frontend_type>multiselect</frontend_type>
79
+ <sort_order>40</sort_order>
80
+ <source_model>adminhtml/system_config_source_country</source_model>
81
+ <show_in_default>1</show_in_default>
82
+ <show_in_website>1</show_in_website>
83
+ <show_in_store>1</show_in_store>
84
+ </specificcountry>
85
+ <giropay_createinvoice translate="label">
86
+ <label>Create invoice after successful payment</label>
87
+ <frontend_type>select</frontend_type>
88
+ <source_model>adminhtml/system_config_source_yesno</source_model>
89
+ <sort_order>45</sort_order>
90
+ <show_in_default>1</show_in_default>
91
+ <show_in_website>1</show_in_website>
92
+ <show_in_store>1</show_in_store>
93
+ </giropay_createinvoice>
94
+ <sort_order translate="label">
95
+ <label>Sort Order</label>
96
+ <frontend_type>text</frontend_type>
97
+ <sort_order>50</sort_order>
98
+ <show_in_default>1</show_in_default>
99
+ <show_in_website>1</show_in_website>
100
+ <show_in_store>1</show_in_store>
101
+ </sort_order>
102
+ <giropay_purpose translate="label">
103
+ <label>Purpose</label>
104
+ <frontend_type>text</frontend_type>
105
+ <sort_order>60</sort_order>
106
+ <show_in_default>1</show_in_default>
107
+ <show_in_website>1</show_in_website>
108
+ <show_in_store>1</show_in_store>
109
+ <comment>You can define your own purpose using this placeholders:
110
+ {ORDERID}: Bestellnummer
111
+ {CUSTOMERID}: Kundennummer
112
+ {SHOPNAME}: Shop Name
113
+ {CUSTOMERNAME}: Kundenname
114
+ {CUSTOMERFIRSTNAME}: Kunde Vorname
115
+ {CUSTOMERLASTNAME}: Kunde Nachname
116
+ For example: If your purpose is Best. {ORDERID}, {SHOPNAME} then the submitted purpose must be Best. 55342, TestShop
117
+ The maximum length of the purpose is 27 characters.</comment>
118
+ </giropay_purpose>
119
+ </fields>
120
+ </giroconnect_giropay>
121
+ <giroconnect_directdebit translate="label">
122
+ <label>Direct Debit (GiroCheckout)</label>
123
+ <sort_order>992</sort_order>
124
+ <show_in_default>1</show_in_default>
125
+ <show_in_website>1</show_in_website>
126
+ <show_in_store>1</show_in_store>
127
+ <fields>
128
+ <active translate="label">
129
+ <label>Enabled</label>
130
+ <frontend_type>select</frontend_type>
131
+ <source_model>adminhtml/system_config_source_yesno</source_model>
132
+ <sort_order>1</sort_order>
133
+ <show_in_default>1</show_in_default>
134
+ <show_in_website>1</show_in_website>
135
+ <show_in_store>1</show_in_store>
136
+ </active>
137
+ <title translate="label">
138
+ <label>Title</label>
139
+ <frontend_type>text</frontend_type>
140
+ <sort_order>10</sort_order>
141
+ <show_in_default>1</show_in_default>
142
+ <show_in_website>1</show_in_website>
143
+ <show_in_store>1</show_in_store>
144
+ <!--<validate>required-entry</validate>-->
145
+ </title>
146
+ <order_status translate="label">
147
+ <label>New order status</label>
148
+ <frontend_type>select</frontend_type>
149
+ <source_model>adminhtml/system_config_source_order_status_new</source_model>
150
+ <sort_order>15</sort_order>
151
+ <show_in_default>1</show_in_default>
152
+ <show_in_website>1</show_in_website>
153
+ <show_in_store>1</show_in_store>
154
+ </order_status>
155
+ <directdebit_mid translate="label">
156
+ <label>Merchant-ID</label>
157
+ <frontend_type>text</frontend_type>
158
+ <sort_order>20</sort_order>
159
+ <show_in_default>1</show_in_default>
160
+ <show_in_website>1</show_in_website>
161
+ <show_in_store>1</show_in_store>
162
+ <comment>Information from GiroCockpit</comment>
163
+ </directdebit_mid>
164
+ <directdebit_pid translate="label">
165
+ <label>Project-ID</label>
166
+ <frontend_type>text</frontend_type>
167
+ <sort_order>25</sort_order>
168
+ <show_in_default>1</show_in_default>
169
+ <show_in_website>1</show_in_website>
170
+ <show_in_store>1</show_in_store>
171
+ <comment>Information from GiroCockpit</comment>
172
+ </directdebit_pid>
173
+ <directdebit_security translate="label">
174
+ <label>Project-Password</label>
175
+ <frontend_type>text</frontend_type>
176
+ <sort_order>30</sort_order>
177
+ <show_in_default>1</show_in_default>
178
+ <show_in_website>1</show_in_website>
179
+ <show_in_store>1</show_in_store>
180
+ <comment>Information from GiroCockpit</comment>
181
+ </directdebit_security>
182
+ <allowspecific translate="label">
183
+ <label>Payment from Applicable Countries</label>
184
+ <frontend_type>allowspecific</frontend_type>
185
+ <sort_order>35</sort_order>
186
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
187
+ <show_in_default>1</show_in_default>
188
+ <show_in_website>1</show_in_website>
189
+ <show_in_store>1</show_in_store>
190
+ </allowspecific>
191
+ <specificcountry translate="label">
192
+ <label>Payment from Specific Countries</label>
193
+ <frontend_type>multiselect</frontend_type>
194
+ <sort_order>40</sort_order>
195
+ <source_model>adminhtml/system_config_source_country</source_model>
196
+ <show_in_default>1</show_in_default>
197
+ <show_in_website>1</show_in_website>
198
+ <show_in_store>1</show_in_store>
199
+ </specificcountry>
200
+ <directdebit_createinvoice translate="label">
201
+ <label>Create invoice after successful payment</label>
202
+ <frontend_type>select</frontend_type>
203
+ <source_model>adminhtml/system_config_source_yesno</source_model>
204
+ <sort_order>45</sort_order>
205
+ <show_in_default>1</show_in_default>
206
+ <show_in_website>1</show_in_website>
207
+ <show_in_store>1</show_in_store>
208
+ </directdebit_createinvoice>
209
+ <sort_order translate="label">
210
+ <label>Sort Order</label>
211
+ <frontend_type>text</frontend_type>
212
+ <sort_order>50</sort_order>
213
+ <show_in_default>1</show_in_default>
214
+ <show_in_website>1</show_in_website>
215
+ <show_in_store>1</show_in_store>
216
+ </sort_order>
217
+ <directdebit_purpose translate="label">
218
+ <label>Purpose</label>
219
+ <frontend_type>text</frontend_type>
220
+ <sort_order>60</sort_order>
221
+ <show_in_default>1</show_in_default>
222
+ <show_in_website>1</show_in_website>
223
+ <show_in_store>1</show_in_store>
224
+ <comment>You can define your own purpose using this placeholders:
225
+ {ORDERID}: Bestellnummer
226
+ {CUSTOMERID}: Kundennummer
227
+ {SHOPNAME}: Shop Name
228
+ {CUSTOMERNAME}: Kundenname
229
+ {CUSTOMERFIRSTNAME}: Kunde Vorname
230
+ {CUSTOMERLASTNAME}: Kunde Nachname
231
+ For example: If your purpose is Best. {ORDERID}, {SHOPNAME} then the submitted purpose must be Best. 55342, TestShop
232
+ The maximum length of the purpose is 27 characters.</comment>
233
+ </directdebit_purpose>
234
+ <directdebit_showbankacc translate="label">
235
+ <label>Show Bank Account/ Bank Code input field</label>
236
+ <frontend_type>select</frontend_type>
237
+ <source_model>adminhtml/system_config_source_yesno</source_model>
238
+ <sort_order>70</sort_order>
239
+ <show_in_default>1</show_in_default>
240
+ <show_in_website>1</show_in_website>
241
+ <show_in_store>1</show_in_store>
242
+ </directdebit_showbankacc>
243
+ </fields>
244
+ </giroconnect_directdebit>
245
+ <giroconnect_creditcard translate="label">
246
+ <label>Credit Card (GiroCheckout)</label>
247
+ <sort_order>994</sort_order>
248
+ <show_in_default>1</show_in_default>
249
+ <show_in_website>1</show_in_website>
250
+ <show_in_store>1</show_in_store>
251
+ <fields>
252
+ <active translate="label">
253
+ <label>Enabled</label>
254
+ <frontend_type>select</frontend_type>
255
+ <source_model>adminhtml/system_config_source_yesno</source_model>
256
+ <sort_order>1</sort_order>
257
+ <show_in_default>1</show_in_default>
258
+ <show_in_website>1</show_in_website>
259
+ <show_in_store>1</show_in_store>
260
+ </active>
261
+ <title translate="label">
262
+ <label>Title</label>
263
+ <frontend_type>text</frontend_type>
264
+ <sort_order>10</sort_order>
265
+ <show_in_default>1</show_in_default>
266
+ <show_in_website>1</show_in_website>
267
+ <show_in_store>1</show_in_store>
268
+ <!--<validate>required-entry</validate>-->
269
+ </title>
270
+ <order_status translate="label">
271
+ <label>New order status</label>
272
+ <frontend_type>select</frontend_type>
273
+ <source_model>adminhtml/system_config_source_order_status_new</source_model>
274
+ <sort_order>15</sort_order>
275
+ <show_in_default>1</show_in_default>
276
+ <show_in_website>1</show_in_website>
277
+ <show_in_store>1</show_in_store>
278
+ </order_status>
279
+ <creditcard_mid translate="label">
280
+ <label>Merchant-ID</label>
281
+ <frontend_type>text</frontend_type>
282
+ <sort_order>20</sort_order>
283
+ <show_in_default>1</show_in_default>
284
+ <show_in_website>1</show_in_website>
285
+ <show_in_store>1</show_in_store>
286
+ <comment>Information from GiroCockpit</comment>
287
+ </creditcard_mid>
288
+ <creditcard_pid translate="label">
289
+ <label>Project-ID</label>
290
+ <frontend_type>text</frontend_type>
291
+ <sort_order>25</sort_order>
292
+ <show_in_default>1</show_in_default>
293
+ <show_in_website>1</show_in_website>
294
+ <show_in_store>1</show_in_store>
295
+ <comment>Information from GiroCockpit</comment>
296
+ </creditcard_pid>
297
+ <creditcard_security translate="label">
298
+ <label>Project-Password</label>
299
+ <frontend_type>text</frontend_type>
300
+ <sort_order>30</sort_order>
301
+ <show_in_default>1</show_in_default>
302
+ <show_in_website>1</show_in_website>
303
+ <show_in_store>1</show_in_store>
304
+ <comment>Information from GiroCockpit</comment>
305
+ </creditcard_security>
306
+ <allowspecific translate="label">
307
+ <label>Payment from Applicable Countries</label>
308
+ <frontend_type>allowspecific</frontend_type>
309
+ <sort_order>35</sort_order>
310
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
311
+ <show_in_default>1</show_in_default>
312
+ <show_in_website>1</show_in_website>
313
+ <show_in_store>1</show_in_store>
314
+ </allowspecific>
315
+ <specificcountry translate="label">
316
+ <label>Payment from Specific Countries</label>
317
+ <frontend_type>multiselect</frontend_type>
318
+ <sort_order>40</sort_order>
319
+ <source_model>adminhtml/system_config_source_country</source_model>
320
+ <show_in_default>1</show_in_default>
321
+ <show_in_website>1</show_in_website>
322
+ <show_in_store>1</show_in_store>
323
+ </specificcountry>
324
+ <creditcard_createinvoice translate="label">
325
+ <label>Create invoice after successful payment</label>
326
+ <frontend_type>select</frontend_type>
327
+ <source_model>adminhtml/system_config_source_yesno</source_model>
328
+ <sort_order>45</sort_order>
329
+ <show_in_default>1</show_in_default>
330
+ <show_in_website>1</show_in_website>
331
+ <show_in_store>1</show_in_store>
332
+ </creditcard_createinvoice>
333
+ <sort_order translate="label">
334
+ <label>Sort Order</label>
335
+ <frontend_type>text</frontend_type>
336
+ <sort_order>50</sort_order>
337
+ <show_in_default>1</show_in_default>
338
+ <show_in_website>1</show_in_website>
339
+ <show_in_store>1</show_in_store>
340
+ </sort_order>
341
+ <creditcard_purpose translate="label">
342
+ <label>Purpose</label>
343
+ <frontend_type>text</frontend_type>
344
+ <sort_order>60</sort_order>
345
+ <show_in_default>1</show_in_default>
346
+ <show_in_website>1</show_in_website>
347
+ <show_in_store>1</show_in_store>
348
+ <comment>You can define your own purpose using this placeholders:
349
+ {ORDERID}: Bestellnummer
350
+ {CUSTOMERID}: Kundennummer
351
+ {SHOPNAME}: Shop Name
352
+ {CUSTOMERNAME}: Kundenname
353
+ {CUSTOMERFIRSTNAME}: Kunde Vorname
354
+ {CUSTOMERLASTNAME}: Kunde Nachname
355
+ For example: If your purpose is Best. {ORDERID}, {SHOPNAME} then the submitted purpose must be Best. 55342, TestShop
356
+ The maximum length of the purpose is 27 characters.</comment>
357
+ </creditcard_purpose>
358
+ <creditcard_visamaster translate="label">
359
+ <label>Enable Visa/Mastercard</label>
360
+ <frontend_type>select</frontend_type>
361
+ <source_model>adminhtml/system_config_source_yesno</source_model>
362
+ <sort_order>46</sort_order>
363
+ <show_in_default>1</show_in_default>
364
+ <show_in_website>1</show_in_website>
365
+ <show_in_store>1</show_in_store>
366
+ </creditcard_visamaster>
367
+ <creditcard_amex translate="label">
368
+ <label>Enable AMEX</label>
369
+ <frontend_type>select</frontend_type>
370
+ <source_model>adminhtml/system_config_source_yesno</source_model>
371
+ <sort_order>47</sort_order>
372
+ <show_in_default>1</show_in_default>
373
+ <show_in_website>1</show_in_website>
374
+ <show_in_store>1</show_in_store>
375
+ </creditcard_amex>
376
+ <creditcard_jcb translate="label">
377
+ <label>Enable JCB</label>
378
+ <frontend_type>select</frontend_type>
379
+ <source_model>adminhtml/system_config_source_yesno</source_model>
380
+ <sort_order>48</sort_order>
381
+ <show_in_default>1</show_in_default>
382
+ <show_in_website>1</show_in_website>
383
+ <show_in_store>1</show_in_store>
384
+ </creditcard_jcb>
385
+ </fields>
386
+ </giroconnect_creditcard>
387
+ <giroconnect_ideal translate="label">
388
+ <label>iDEAL (GiroCheckout)</label>
389
+ <sort_order>995</sort_order>
390
+ <show_in_default>1</show_in_default>
391
+ <show_in_website>1</show_in_website>
392
+ <show_in_store>1</show_in_store>
393
+ <fields>
394
+ <active translate="label">
395
+ <label>Enabled</label>
396
+ <frontend_type>select</frontend_type>
397
+ <source_model>adminhtml/system_config_source_yesno</source_model>
398
+ <sort_order>1</sort_order>
399
+ <show_in_default>1</show_in_default>
400
+ <show_in_website>1</show_in_website>
401
+ <show_in_store>1</show_in_store>
402
+ </active>
403
+ <title translate="label">
404
+ <label>Title</label>
405
+ <frontend_type>text</frontend_type>
406
+ <sort_order>10</sort_order>
407
+ <show_in_default>1</show_in_default>
408
+ <show_in_website>1</show_in_website>
409
+ <show_in_store>1</show_in_store>
410
+ <!--<validate>required-entry</validate>-->
411
+ </title>
412
+ <order_status translate="label">
413
+ <label>New order status</label>
414
+ <frontend_type>select</frontend_type>
415
+ <source_model>adminhtml/system_config_source_order_status_new</source_model>
416
+ <sort_order>15</sort_order>
417
+ <show_in_default>1</show_in_default>
418
+ <show_in_website>1</show_in_website>
419
+ <show_in_store>1</show_in_store>
420
+ </order_status>
421
+ <ideal_mid translate="label">
422
+ <label>Merchant-ID</label>
423
+ <frontend_type>text</frontend_type>
424
+ <sort_order>20</sort_order>
425
+ <show_in_default>1</show_in_default>
426
+ <show_in_website>1</show_in_website>
427
+ <show_in_store>1</show_in_store>
428
+ <comment>Information from GiroCockpit</comment>
429
+ </ideal_mid>
430
+ <ideal_pid translate="label">
431
+ <label>Project-ID</label>
432
+ <frontend_type>text</frontend_type>
433
+ <sort_order>25</sort_order>
434
+ <show_in_default>1</show_in_default>
435
+ <show_in_website>1</show_in_website>
436
+ <show_in_store>1</show_in_store>
437
+ <comment>Information from GiroCockpit</comment>
438
+ </ideal_pid>
439
+ <ideal_security translate="label">
440
+ <label>Project-Password</label>
441
+ <frontend_type>text</frontend_type>
442
+ <sort_order>30</sort_order>
443
+ <show_in_default>1</show_in_default>
444
+ <show_in_website>1</show_in_website>
445
+ <show_in_store>1</show_in_store>
446
+ <comment>Information from GiroCockpit</comment>
447
+ </ideal_security>
448
+ <allowspecific translate="label">
449
+ <label>Payment from Applicable Countries</label>
450
+ <frontend_type>allowspecific</frontend_type>
451
+ <sort_order>35</sort_order>
452
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
453
+ <show_in_default>1</show_in_default>
454
+ <show_in_website>1</show_in_website>
455
+ <show_in_store>1</show_in_store>
456
+ </allowspecific>
457
+ <specificcountry translate="label">
458
+ <label>Payment from Specific Countries</label>
459
+ <frontend_type>multiselect</frontend_type>
460
+ <sort_order>40</sort_order>
461
+ <source_model>adminhtml/system_config_source_country</source_model>
462
+ <show_in_default>1</show_in_default>
463
+ <show_in_website>1</show_in_website>
464
+ <show_in_store>1</show_in_store>
465
+ </specificcountry>
466
+ <ideal_createinvoice translate="label">
467
+ <label>Create invoice after successful payment</label>
468
+ <frontend_type>select</frontend_type>
469
+ <source_model>adminhtml/system_config_source_yesno</source_model>
470
+ <sort_order>45</sort_order>
471
+ <show_in_default>1</show_in_default>
472
+ <show_in_website>1</show_in_website>
473
+ <show_in_store>1</show_in_store>
474
+ </ideal_createinvoice>
475
+ <sort_order translate="label">
476
+ <label>Sort Order</label>
477
+ <frontend_type>text</frontend_type>
478
+ <sort_order>50</sort_order>
479
+ <show_in_default>1</show_in_default>
480
+ <show_in_website>1</show_in_website>
481
+ <show_in_store>1</show_in_store>
482
+ </sort_order>
483
+ <ideal_purpose translate="label">
484
+ <label>Purpose</label>
485
+ <frontend_type>text</frontend_type>
486
+ <sort_order>60</sort_order>
487
+ <show_in_default>1</show_in_default>
488
+ <show_in_website>1</show_in_website>
489
+ <show_in_store>1</show_in_store>
490
+ <comment>You can define your own purpose using this placeholders:
491
+ {ORDERID}: Bestellnummer
492
+ {CUSTOMERID}: Kundennummer
493
+ {SHOPNAME}: Shop Name
494
+ {CUSTOMERNAME}: Kundenname
495
+ {CUSTOMERFIRSTNAME}: Kunde Vorname
496
+ {CUSTOMERLASTNAME}: Kunde Nachname
497
+ For example: If your purpose is Best. {ORDERID}, {SHOPNAME} then the submitted purpose must be Best. 55342, TestShop
498
+ The maximum length of the purpose is 27 characters.</comment>
499
+ </ideal_purpose>
500
+ </fields>
501
+ </giroconnect_ideal>
502
+ <giroconnect_eps translate="label">
503
+ <label>eps (GiroCheckout)</label>
504
+ <sort_order>996</sort_order>
505
+ <show_in_default>1</show_in_default>
506
+ <show_in_website>1</show_in_website>
507
+ <show_in_store>1</show_in_store>
508
+ <fields>
509
+ <active translate="label">
510
+ <label>Enabled</label>
511
+ <frontend_type>select</frontend_type>
512
+ <source_model>adminhtml/system_config_source_yesno</source_model>
513
+ <sort_order>1</sort_order>
514
+ <show_in_default>1</show_in_default>
515
+ <show_in_website>1</show_in_website>
516
+ <show_in_store>1</show_in_store>
517
+ </active>
518
+ <title translate="label">
519
+ <label>Title</label>
520
+ <frontend_type>text</frontend_type>
521
+ <sort_order>10</sort_order>
522
+ <show_in_default>1</show_in_default>
523
+ <show_in_website>1</show_in_website>
524
+ <show_in_store>1</show_in_store>
525
+ <!--<validate>required-entry</validate>-->
526
+ </title>
527
+ <order_status translate="label">
528
+ <label>New order status</label>
529
+ <frontend_type>select</frontend_type>
530
+ <source_model>adminhtml/system_config_source_order_status_new</source_model>
531
+ <sort_order>15</sort_order>
532
+ <show_in_default>1</show_in_default>
533
+ <show_in_website>1</show_in_website>
534
+ <show_in_store>1</show_in_store>
535
+ </order_status>
536
+ <eps_mid translate="label">
537
+ <label>Merchant-ID</label>
538
+ <frontend_type>text</frontend_type>
539
+ <sort_order>20</sort_order>
540
+ <show_in_default>1</show_in_default>
541
+ <show_in_website>1</show_in_website>
542
+ <show_in_store>1</show_in_store>
543
+ <comment>Information from GiroCockpit</comment>
544
+ </eps_mid>
545
+ <eps_pid translate="label">
546
+ <label>Project-ID</label>
547
+ <frontend_type>text</frontend_type>
548
+ <sort_order>25</sort_order>
549
+ <show_in_default>1</show_in_default>
550
+ <show_in_website>1</show_in_website>
551
+ <show_in_store>1</show_in_store>
552
+ <comment>Information from GiroCockpit</comment>
553
+ </eps_pid>
554
+ <eps_security translate="label">
555
+ <label>Project-Password</label>
556
+ <frontend_type>text</frontend_type>
557
+ <sort_order>30</sort_order>
558
+ <show_in_default>1</show_in_default>
559
+ <show_in_website>1</show_in_website>
560
+ <show_in_store>1</show_in_store>
561
+ <comment>Information from GiroCockpit</comment>
562
+ </eps_security>
563
+ <allowspecific translate="label">
564
+ <label>Payment from Applicable Countries</label>
565
+ <frontend_type>allowspecific</frontend_type>
566
+ <sort_order>35</sort_order>
567
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
568
+ <show_in_default>1</show_in_default>
569
+ <show_in_website>1</show_in_website>
570
+ <show_in_store>1</show_in_store>
571
+ </allowspecific>
572
+ <specificcountry translate="label">
573
+ <label>Payment from Specific Countries</label>
574
+ <frontend_type>multiselect</frontend_type>
575
+ <sort_order>40</sort_order>
576
+ <source_model>adminhtml/system_config_source_country</source_model>
577
+ <show_in_default>1</show_in_default>
578
+ <show_in_website>1</show_in_website>
579
+ <show_in_store>1</show_in_store>
580
+ </specificcountry>
581
+ <eps_createinvoice translate="label">
582
+ <label>Create invoice after successful payment</label>
583
+ <frontend_type>select</frontend_type>
584
+ <source_model>adminhtml/system_config_source_yesno</source_model>
585
+ <sort_order>45</sort_order>
586
+ <show_in_default>1</show_in_default>
587
+ <show_in_website>1</show_in_website>
588
+ <show_in_store>1</show_in_store>
589
+ </eps_createinvoice>
590
+ <sort_order translate="label">
591
+ <label>Sort Order</label>
592
+ <frontend_type>text</frontend_type>
593
+ <sort_order>50</sort_order>
594
+ <show_in_default>1</show_in_default>
595
+ <show_in_website>1</show_in_website>
596
+ <show_in_store>1</show_in_store>
597
+ </sort_order>
598
+ <eps_purpose translate="label">
599
+ <label>Purpose</label>
600
+ <frontend_type>text</frontend_type>
601
+ <sort_order>60</sort_order>
602
+ <show_in_default>1</show_in_default>
603
+ <show_in_website>1</show_in_website>
604
+ <show_in_store>1</show_in_store>
605
+ <comment>You can define your own purpose using this placeholders:
606
+ {ORDERID}: Bestellnummer
607
+ {CUSTOMERID}: Kundennummer
608
+ {SHOPNAME}: Shop Name
609
+ {CUSTOMERNAME}: Kundenname
610
+ {CUSTOMERFIRSTNAME}: Kunde Vorname
611
+ {CUSTOMERLASTNAME}: Kunde Nachname
612
+ For example: If your purpose is Best. {ORDERID}, {SHOPNAME} then the submitted purpose must be Best. 55342, TestShop
613
+ The maximum length of the purpose is 27 characters.</comment>
614
+ </eps_purpose>
615
+ </fields>
616
+ </giroconnect_eps>
617
+ <giroconnect_sofortuw translate="label">
618
+ <label>SOFORT Überweisung (GiroCheckout)</label>
619
+ <sort_order>995</sort_order>
620
+ <show_in_default>1</show_in_default>
621
+ <show_in_website>1</show_in_website>
622
+ <show_in_store>1</show_in_store>
623
+ <fields>
624
+ <active translate="label">
625
+ <label>Enabled</label>
626
+ <frontend_type>select</frontend_type>
627
+ <source_model>adminhtml/system_config_source_yesno</source_model>
628
+ <sort_order>1</sort_order>
629
+ <show_in_default>1</show_in_default>
630
+ <show_in_website>1</show_in_website>
631
+ <show_in_store>1</show_in_store>
632
+ </active>
633
+ <title translate="label">
634
+ <label>Title</label>
635
+ <frontend_type>text</frontend_type>
636
+ <sort_order>10</sort_order>
637
+ <show_in_default>1</show_in_default>
638
+ <show_in_website>1</show_in_website>
639
+ <show_in_store>1</show_in_store>
640
+ <!--<validate>required-entry</validate>-->
641
+ </title>
642
+ <order_status translate="label">
643
+ <label>New order status</label>
644
+ <frontend_type>select</frontend_type>
645
+ <source_model>adminhtml/system_config_source_order_status_new</source_model>
646
+ <sort_order>15</sort_order>
647
+ <show_in_default>1</show_in_default>
648
+ <show_in_website>1</show_in_website>
649
+ <show_in_store>1</show_in_store>
650
+ </order_status>
651
+ <sofortuw_mid translate="label">
652
+ <label>Merchant-ID</label>
653
+ <frontend_type>text</frontend_type>
654
+ <sort_order>20</sort_order>
655
+ <show_in_default>1</show_in_default>
656
+ <show_in_website>1</show_in_website>
657
+ <show_in_store>1</show_in_store>
658
+ <comment>Information from GiroCockpit</comment>
659
+ </sofortuw_mid>
660
+ <sofortuw_pid translate="label">
661
+ <label>Project-ID</label>
662
+ <frontend_type>text</frontend_type>
663
+ <sort_order>25</sort_order>
664
+ <show_in_default>1</show_in_default>
665
+ <show_in_website>1</show_in_website>
666
+ <show_in_store>1</show_in_store>
667
+ <comment>Information from GiroCockpit</comment>
668
+ </sofortuw_pid>
669
+ <sofortuw_security translate="label">
670
+ <label>Project-Password</label>
671
+ <frontend_type>text</frontend_type>
672
+ <sort_order>30</sort_order>
673
+ <show_in_default>1</show_in_default>
674
+ <show_in_website>1</show_in_website>
675
+ <show_in_store>1</show_in_store>
676
+ <comment>Information from GiroCockpit</comment>
677
+ </sofortuw_security>
678
+ <allowspecific translate="label">
679
+ <label>Payment from Applicable Countries</label>
680
+ <frontend_type>allowspecific</frontend_type>
681
+ <sort_order>35</sort_order>
682
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
683
+ <show_in_default>1</show_in_default>
684
+ <show_in_website>1</show_in_website>
685
+ <show_in_store>1</show_in_store>
686
+ </allowspecific>
687
+ <specificcountry translate="label">
688
+ <label>Payment from Specific Countries</label>
689
+ <frontend_type>multiselect</frontend_type>
690
+ <sort_order>40</sort_order>
691
+ <source_model>adminhtml/system_config_source_country</source_model>
692
+ <show_in_default>1</show_in_default>
693
+ <show_in_website>1</show_in_website>
694
+ <show_in_store>1</show_in_store>
695
+ </specificcountry>
696
+ <sofortuw_createinvoice translate="label">
697
+ <label>Create invoice after successful payment</label>
698
+ <frontend_type>select</frontend_type>
699
+ <source_model>adminhtml/system_config_source_yesno</source_model>
700
+ <sort_order>45</sort_order>
701
+ <show_in_default>1</show_in_default>
702
+ <show_in_website>1</show_in_website>
703
+ <show_in_store>1</show_in_store>
704
+ </sofortuw_createinvoice>
705
+ <sort_order translate="label">
706
+ <label>Sort Order</label>
707
+ <frontend_type>text</frontend_type>
708
+ <sort_order>50</sort_order>
709
+ <show_in_default>1</show_in_default>
710
+ <show_in_website>1</show_in_website>
711
+ <show_in_store>1</show_in_store>
712
+ </sort_order>
713
+ <sofortuw_purpose translate="label">
714
+ <label>Purpose</label>
715
+ <frontend_type>text</frontend_type>
716
+ <sort_order>60</sort_order>
717
+ <show_in_default>1</show_in_default>
718
+ <show_in_website>1</show_in_website>
719
+ <show_in_store>1</show_in_store>
720
+ <comment>You can define your own purpose using this placeholders:
721
+ {ORDERID}: Bestellnummer
722
+ {CUSTOMERID}: Kundennummer
723
+ {SHOPNAME}: Shop Name
724
+ {CUSTOMERNAME}: Kundenname
725
+ {CUSTOMERFIRSTNAME}: Kunde Vorname
726
+ {CUSTOMERLASTNAME}: Kunde Nachname
727
+ For example: If your purpose is Best. {ORDERID}, {SHOPNAME} then the submitted purpose must be Best. 55342, TestShop
728
+ The maximum length of the purpose is 27 characters.</comment>
729
+ </sofortuw_purpose>
730
+ </fields>
731
+ </giroconnect_sofortuw>
732
+ <giroconnect_paydirekt translate="label">
733
+ <label>Paydirekt (GiroCheckout)</label>
734
+ <sort_order>996</sort_order>
735
+ <show_in_default>1</show_in_default>
736
+ <show_in_website>1</show_in_website>
737
+ <show_in_store>1</show_in_store>
738
+ <fields>
739
+ <active translate="label">
740
+ <label>Enabled</label>
741
+ <frontend_type>select</frontend_type>
742
+ <source_model>adminhtml/system_config_source_yesno</source_model>
743
+ <sort_order>1</sort_order>
744
+ <show_in_default>1</show_in_default>
745
+ <show_in_website>1</show_in_website>
746
+ <show_in_store>1</show_in_store>
747
+ </active>
748
+ <title translate="label">
749
+ <label>Title</label>
750
+ <frontend_type>text</frontend_type>
751
+ <sort_order>10</sort_order>
752
+ <show_in_default>1</show_in_default>
753
+ <show_in_website>1</show_in_website>
754
+ <show_in_store>1</show_in_store>
755
+ <!--<validate>required-entry</validate>-->
756
+ </title>
757
+ <order_status translate="label">
758
+ <label>New order status</label>
759
+ <frontend_type>select</frontend_type>
760
+ <source_model>adminhtml/system_config_source_order_status_new</source_model>
761
+ <sort_order>15</sort_order>
762
+ <show_in_default>1</show_in_default>
763
+ <show_in_website>1</show_in_website>
764
+ <show_in_store>1</show_in_store>
765
+ </order_status>
766
+ <paydirekt_mid translate="label">
767
+ <label>Merchant-ID</label>
768
+ <frontend_type>text</frontend_type>
769
+ <sort_order>20</sort_order>
770
+ <show_in_default>1</show_in_default>
771
+ <show_in_website>1</show_in_website>
772
+ <show_in_store>1</show_in_store>
773
+ <comment>Information from GiroCockpit</comment>
774
+ </paydirekt_mid>
775
+ <paydirekt_pid translate="label">
776
+ <label>Project-ID</label>
777
+ <frontend_type>text</frontend_type>
778
+ <sort_order>25</sort_order>
779
+ <show_in_default>1</show_in_default>
780
+ <show_in_website>1</show_in_website>
781
+ <show_in_store>1</show_in_store>
782
+ <comment>Information from GiroCockpit</comment>
783
+ </paydirekt_pid>
784
+ <paydirekt_security translate="label">
785
+ <label>Project-Password</label>
786
+ <frontend_type>text</frontend_type>
787
+ <sort_order>30</sort_order>
788
+ <show_in_default>1</show_in_default>
789
+ <show_in_website>1</show_in_website>
790
+ <show_in_store>1</show_in_store>
791
+ <comment>Information from GiroCockpit</comment>
792
+ </paydirekt_security>
793
+ <allowspecific translate="label">
794
+ <label>Payment from Applicable Countries</label>
795
+ <frontend_type>allowspecific</frontend_type>
796
+ <sort_order>35</sort_order>
797
+ <source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
798
+ <show_in_default>1</show_in_default>
799
+ <show_in_website>1</show_in_website>
800
+ <show_in_store>1</show_in_store>
801
+ </allowspecific>
802
+ <specificcountry translate="label">
803
+ <label>Payment from Specific Countries</label>
804
+ <frontend_type>multiselect</frontend_type>
805
+ <sort_order>40</sort_order>
806
+ <source_model>adminhtml/system_config_source_country</source_model>
807
+ <show_in_default>1</show_in_default>
808
+ <show_in_website>1</show_in_website>
809
+ <show_in_store>1</show_in_store>
810
+ </specificcountry>
811
+ <paydirekt_createinvoice translate="label">
812
+ <label>Create invoice after successful payment</label>
813
+ <frontend_type>select</frontend_type>
814
+ <source_model>adminhtml/system_config_source_yesno</source_model>
815
+ <sort_order>45</sort_order>
816
+ <show_in_default>1</show_in_default>
817
+ <show_in_website>1</show_in_website>
818
+ <show_in_store>1</show_in_store>
819
+ </paydirekt_createinvoice>
820
+ <sort_order translate="label">
821
+ <label>Sort Order</label>
822
+ <frontend_type>text</frontend_type>
823
+ <sort_order>50</sort_order>
824
+ <show_in_default>1</show_in_default>
825
+ <show_in_website>1</show_in_website>
826
+ <show_in_store>1</show_in_store>
827
+ </sort_order>
828
+ <paydirekt_purpose translate="label">
829
+ <label>Purpose</label>
830
+ <frontend_type>text</frontend_type>
831
+ <sort_order>60</sort_order>
832
+ <show_in_default>1</show_in_default>
833
+ <show_in_website>1</show_in_website>
834
+ <show_in_store>1</show_in_store>
835
+ <comment>You can define your own purpose using this placeholders:
836
+ {ORDERID}: Bestellnummer
837
+ {CUSTOMERID}: Kundennummer
838
+ {SHOPNAME}: Shop Name
839
+ {CUSTOMERNAME}: Kundenname
840
+ {CUSTOMERFIRSTNAME}: Kunde Vorname
841
+ {CUSTOMERLASTNAME}: Kunde Nachname
842
+ For example: If your purpose is Best. {ORDERID}, {SHOPNAME} then the submitted purpose must be Best. 55342, TestShop
843
+ The maximum length of the purpose is 27 characters.</comment>
844
+ </paydirekt_purpose>
845
+ </fields>
846
+ </giroconnect_paydirekt>
847
+ </groups>
848
+ </payment>
849
+ </sections>
850
+ </config>
app/design/frontend/base/default/layout/giroconnect/giroconnectlayout.xml ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <layout version="0.1.1">
3
+ <checkout_onepage_index>
4
+ <reference name="head">
5
+ <block type="core/text" name="girocheckoutwidget">
6
+ <action method="setText">
7
+ <text>
8
+ <![CDATA[
9
+ <link rel="stylesheet" href="https://bankauswahl.giropay.de/widget/v2/style.css" />
10
+ <script src="https://bankauswahl.giropay.de/widget/v2/girocheckoutwidget.js"></script>
11
+ ]]>
12
+ </text>
13
+ </action>
14
+ </block>
15
+ </reference>
16
+ </checkout_onepage_index>
17
+ <ultimatecheckout_index_index>
18
+ <reference name="head">
19
+ <block type="core/text" name="girocheckoutwidget">
20
+ <action method="setText">
21
+ <text>
22
+ <![CDATA[
23
+ <link rel="stylesheet" href="https://bankauswahl.giropay.de/widget/v2/style.css" />
24
+ <script src="https://bankauswahl.giropay.de/widget/v2/girocheckoutwidget.js"></script>
25
+ ]]>
26
+ </text>
27
+ </action>
28
+ </block>
29
+ </reference>
30
+ </ultimatecheckout_index_index>
31
+ </layout>
app/design/frontend/base/default/template/giroconnect/creditcard/form.phtml ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Payment selection block for Creditcard.
4
+ */
5
+
6
+ //$languageCode = Mage::app()->getStore()->getCode();
7
+ //$languageCode = Mage::helper('giroconnect')->getLanguageCode();
8
+
9
+ //Get the logo url.
10
+ $logoMarkupURL = $this->getSkinUrl('images/giroconnect/Logo_VISA_MC_50_px.jpg');
11
+
12
+
13
+ $_code = $this->getMethodCode();
14
+ $helperForm = Mage::helper('giroconnect/creditcard');
15
+ $proxyForm = $helperForm->getCreditcardPaymentProxy();
16
+
17
+ $strLogoName = $proxyForm->getExtendedLogo();
18
+ if( strlen($strLogoName) > 0 )
19
+ $logoMarkupURL = $this->getSkinUrl('images/giroconnect/'.$strLogoName);
20
+ else
21
+ $logoMarkupURL = $this->getSkinUrl('images/giroconnect/Logo_VISA_MC_50_px.jpg');
22
+ ?>
23
+ <ul class="form-list" id="payment_form_<?php print($_code); ?>" style="display:none;">
24
+ <li>
25
+ <img src="<?php echo $logoMarkupURL; ?>" alt="Credit Card"/>
26
+ </li>
27
+ <li>
28
+ <?php print($this->__('On the following secure website, you are asked to enter your credit card data. If your credit card is enabled for 3D Secure (Verified by Visa or MasterCard Secure Code), additional information will be passed for a security check at your bank.')); ?>
29
+ </li>
30
+ </ul>
31
+
app/design/frontend/base/default/template/giroconnect/directdebit/form.phtml ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Payment selection block for DirectDebit.
4
+ * Sie erteilen die Genehmigung, den Betrag von Ihrem Konto einzuziehen. Bitte geben Ihre Kontonummer
5
+ * und Bankleitzahl ein. Die Sicherheit Ihrer persönlichen Daten ist uns sehr wichtig.
6
+ * Deshalb speichern wir Ihre Kontodaten nicht in unserem System. Bei jeder Bestellung ist
7
+ * eine Neuangabe Ihrer Bankverbindung in unserem Shop erforderlich.
8
+ */
9
+
10
+ //$languageCode = Mage::app()->getStore()->getCode();
11
+ //$languageCode = Mage::helper('giroconnect')->getLanguageCode();
12
+ //Get the logo url.
13
+ $logoMarkupURL = $this->getSkinUrl('images/giroconnect/Logo_EC_50_px.jpg');
14
+
15
+ $_code = $this->getMethodCode();
16
+
17
+ $strVisibleDivIban = "block;";
18
+ $strVisibleDivBank = "none;";
19
+
20
+ $helperForm = Mage::helper('giroconnect/directdebit');
21
+ $proxyForm = $helperForm->getDirectdebitPaymentProxy();
22
+ ?>
23
+ <script>
24
+ var j = jQuery.noConflict();
25
+
26
+ j(document).ready(function () {
27
+ j("input[name='payment[<?php print($_code); ?>_cdatabankcheck]']").click(function () {
28
+
29
+ var rbValor = j(this).val();
30
+ if (rbValor === "rbIbanDirectdebit") {
31
+ j("#divBankDatasDirectdebit").hide();
32
+ j("#divIbanDirectdebit").show();
33
+
34
+ j("#<?php print($_code); ?>_bankaccount").val("").removeClass("input-text required-entry");
35
+ j("#<?php print($_code); ?>_bankcode").val("").removeClass("input-text required-entry");
36
+ j("#<?php print($_code); ?>_iban").addClass("input-text required-entry");
37
+
38
+ } else {
39
+ j("#divIbanDirectdebit").hide();
40
+ j("#divBankDatasDirectdebit").show();
41
+
42
+ j("#<?php print($_code); ?>_bankaccount").addClass("input-text required-entry");
43
+ j("#<?php print($_code); ?>_bankcode").addClass("input-text required-entry");
44
+ j("#<?php print($_code); ?>_iban").val("").removeClass("input-text required-entry");
45
+ }
46
+ });
47
+ });
48
+ </script>
49
+
50
+ <ul class="form-list" id="payment_form_<?php print($_code); ?>" style="display:none;">
51
+ <li>
52
+ <img src="<?php echo $logoMarkupURL; ?>" alt="Direct Debit"/>
53
+ </li>
54
+ <li>
55
+ <?php print($this->__('Hereby you authorize us to charge your current account with the invoiced amount by direct debit.')); ?>
56
+ </li>
57
+
58
+ <li>
59
+ <?php if( $proxyForm->getShowBankAcc() ) { ?>
60
+ <dl>
61
+ <dd>
62
+ <input type="radio" name="payment[<?php print($_code); ?>_cdatabankcheck]" id="rbIbanDirectdebit" checked="checked" value="rbIbanDirectdebit"/><label class="gs_dd_toggle" for="rbIbanDirectdebit"><?php print($this->__('IBAN')); ?></label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
63
+ <input type="radio" name="payment[<?php print($_code); ?>_cdatabankcheck]" id="rbBankDatasDirectdebit" value="rbBankDatasDirectdebit"/><label class="gs_dd_toggle" for="rbBankDatasDirectdebit"><?php print($this->__('use bank account/bank code')); ?></label>
64
+ </dd>
65
+ </dl>
66
+ <?php } ?>
67
+ <p>
68
+ <label for="<?php print($_code); ?>_check_date" ><?php print($this->__('Account holder')); ?>:</label><br>
69
+ <span class="input-box">
70
+ <input type="text" maxlength="27" class="input-text required-entry" title="<?php print($this->__('Account holder')); ?>" id="<?php print($_code); ?>_accountholder" name="payment[<?php print($_code); ?>_accountholder]" value="<?php print($this->htmlEscape(Mage::getSingleton('checkout/session')->getDirectdebitAccountholder())); ?>" />
71
+ <br>
72
+ </span>
73
+ </p>
74
+ <div id ="divIbanDirectdebit" style="display: <?php echo $strVisibleDivIban; ?>">
75
+ <p>
76
+ <label for="<?php print($_code); ?>_check_date" ><?php print($this->__('IBAN')); ?>:</label><br>
77
+ <span class="input-box">
78
+ <input type="text" size="24" class="input-text required-entry" title="<?php print($this->__('IBAN')); ?>" id="<?php print($_code); ?>_iban" name="payment[<?php print($_code); ?>_iban]" value="<?php print($this->htmlEscape(Mage::getSingleton('checkout/session')->getDirectdebitIban())); ?>" />
79
+ </span>
80
+ </p>
81
+ </div>
82
+ <div id ="divBankDatasDirectdebit" style="display: <?php echo $strVisibleDivBank; ?>">
83
+ <p>
84
+ <label for="<?php print($_code); ?>_check_date" ><?php print($this->__('Account number')); ?>:</label><br>
85
+ <span class="input-box">
86
+ <input type="text" maxlength="15" title="<?php print($this->__('Account number')); ?>" id="<?php print($_code); ?>_bankaccount" name="payment[<?php print($_code); ?>_bankaccount]" value="<?php print($this->htmlEscape(Mage::getSingleton('checkout/session')->getDirectdebitBankaccount())); ?>" />
87
+ <br><?php // print($this->__('(Plicht, w keine IBAN angegeben ist)')); ?>
88
+ </span>
89
+ </p>
90
+ <p>
91
+ <label for="<?php print($_code); ?>_check_date" ><?php print($this->__('Bank code')); ?>:</label><br>
92
+ <span class="input-box">
93
+ <input type="text" maxlength="8" title="<?php print($this->__('Bank code')); ?>" id="<?php print($_code); ?>_bankcode" name="payment[<?php print($_code); ?>_bankcode]" value="<?php print($this->htmlEscape(Mage::getSingleton('checkout/session')->getDirectdebitBankcode())); ?>" />
94
+ <br><?php // print($this->__('(Plicht, wenn keine IBAN angegeben ist)')); ?>
95
+ </span>
96
+ </p>
97
+ </div>
98
+ </li>
99
+
100
+ </ul>
101
+ <script type="text/javascript">
102
+ //< ![CDATA[
103
+ var customForm = new VarienForm('payment_form_<?php print($_code); ?>');
104
+ //]]>
105
+ </script>
app/design/frontend/base/default/template/giroconnect/eps/form.phtml ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Payment selection block for eps.
4
+ * Mit eps zahlen Sie im Internet einfach, schnell und sicher per Online-Überweisung.
5
+ * Das Online-Zahlverfahren eps wurde innerhalb der deutschen Kreditwirtschaft entwickelt
6
+ * und hat mit der Postbank, den Sparkassen und den Volksbanken Raiffeisenbanken starke
7
+ * vertrauensvolle Partner, die höchste Sicherheitsstandards garantieren.
8
+ */
9
+
10
+ //$languageCode = Mage::helper('giroconnect')->getLanguageCode();
11
+
12
+ //Get the logo url.
13
+ $logoMarkupURL = $this->getSkinUrl('images/giroconnect/Logo_eps_50_px.jpg');
14
+ $_code = $this->getMethodCode();
15
+ ?>
16
+
17
+ <ul class="form-list" id="payment_form_<?php print($_code); ?>" style="display:none;">
18
+ <li>
19
+ <img src="<?php echo $logoMarkupURL; ?>" alt="Eps"/>
20
+ </li>
21
+ <li>
22
+ <?php print($this->__('With eps online transfer you pay simply, fast and secure by online banking of your bank. Your will be redirected to the online banking at your bank where you authorize the credit transfer with PIN and TAN.'))?>
23
+ </li>
24
+ <li>
25
+ <label for="<?php print($_code); ?>_check_date" class="required"><em>*</em><?php print($this->__('Bank (BIC)')); ?>:</label>
26
+ <span class="input-box">
27
+ <input class="card-number required-entry" name="payment[<?php print($_code); ?>_bic]" id="<?php print($_code); ?>_bic" onkeyup="girocheckout_widget(this, event, 'bic', '3')" type="text" size="60" value="<?php print($this->htmlEscape(Mage::getSingleton('checkout/session')->getEpsBic())); ?>" autocomplete="off" style="z-index:1000;"/><br><?php print($this->__('(Suchen Sie nach Bankname, BLZ, Ort oder BIC.)')); ?>
28
+ </span>
29
+ </li>
30
+ </ul>
31
+ <script type="text/javascript">
32
+ //< ![CDATA[
33
+ var customForm = new VarienForm('payment_form_<?php print($_code); ?>');
34
+ //]]>
35
+ </script>
app/design/frontend/base/default/template/giroconnect/giropay/form.phtml ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Payment selection block for GiroPay.
4
+ * Mit giropay zahlen Sie im Internet einfach, schnell und sicher per Online-Überweisung.
5
+ * Das Online-Zahlverfahren giropay wurde innerhalb der deutschen Kreditwirtschaft entwickelt
6
+ * und hat mit der Postbank, den Sparkassen und den Volksbanken Raiffeisenbanken starke
7
+ * vertrauensvolle Partner, die höchste Sicherheitsstandards garantieren.
8
+ */
9
+
10
+ //$languageCode = Mage::helper('giroconnect')->getLanguageCode();
11
+
12
+ //Get the logo url.
13
+ $logoMarkupURL = $this->getSkinUrl('images/giroconnect/Logo_giropay_50_px.jpg');
14
+ $_code = $this->getMethodCode();
15
+ ?>
16
+
17
+ <ul class="form-list" id="payment_form_<?php print($_code); ?>" style="display:none;">
18
+ <li>
19
+ <img src="<?php echo $logoMarkupURL; ?>" alt="Giropay"/>
20
+ </li>
21
+ <li>
22
+ <?php print($this->__('With giropay you pay simply, fast and secure by the online banking of your participating bank. You will be redirected to the online banking of your bank where you authorize the credit transfer.'))?>
23
+ </li>
24
+ <li>
25
+ <label for="<?php print($_code); ?>_check_date" class="required"><em>*</em><?php print($this->__('Bank (BIC)')); ?>:</label>
26
+ <span class="input-box">
27
+ <input class="card-number required-entry" name="payment[<?php print($_code); ?>_bic]" id="<?php print($_code); ?>_bic" onkeyup="girocheckout_widget(this, event, 'bic', '0')" type="text" size="60" value="<?php print($this->htmlEscape(Mage::getSingleton('checkout/session')->getGiropayBic())); ?>" autocomplete="off" style="z-index:1000;"/><br><?php print($this->__('(Suchen Sie nach Bankname, BLZ, Ort oder BIC.)')); ?>
28
+ </span>
29
+ </li>
30
+ </ul>
31
+ <script type="text/javascript">
32
+ //< ![CDATA[
33
+ var customForm = new VarienForm('payment_form_<?php print($_code); ?>');
34
+ //]]>
35
+ </script>
app/design/frontend/base/default/template/giroconnect/ideal/form.phtml ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * Payment selection block for iDEAL.
5
+ */
6
+
7
+
8
+ //$languageCode = Mage::helper('giroconnect')->getLanguageCode();
9
+
10
+ $helper = Mage::helper('giroconnect/ideal');
11
+ $proxy = $helper->getIdealPaymentProxy();
12
+
13
+ //Get the list of issuers for iDEAL.
14
+ $issuers = $proxy->getIssuers();
15
+
16
+ //Get the logo url.
17
+ $logoMarkupURL = $this->getSkinUrl('images/giroconnect/Logo_iDeal_50_px.jpg'); //Find Icon
18
+
19
+
20
+
21
+ $_code = $this->getMethodCode();
22
+ ?>
23
+
24
+ <ul class="form-list" id="payment_form_<?php print($_code); ?>" style="display:none;">
25
+ <li>
26
+ <img src="<?php echo $logoMarkupURL; ?>" alt="iDEAL"/>
27
+ </li>
28
+ <li>
29
+ <?php print($this->__('With iDEAL you pay simply, fast and secure by online banking of your bank. You will be redirected to the online banking of your bank where you authorize the credit transfer with PIN and TAN.')); ?>&nbsp;
30
+ </li>
31
+ <li>
32
+ <label for="<?php print($_code); ?>_issuer" class="required"><em>*</em><?php print($this->__('Issuer List')); ?>:</label>
33
+ <div class="input-box">
34
+ <div class="v-fix">
35
+ <select id="<?php echo $_code ?>_issuer" name="payment[<?php echo $_code ?>_issuer]">
36
+ <?php
37
+ $boolSelected = TRUE;
38
+ $markup = '';
39
+ foreach($issuers as $ccKey => $ccName) {
40
+ $markup .= '<option value="' . $ccKey . '" ';
41
+ if($boolSelected == TRUE) {
42
+ $boolSelected = FALSE;
43
+ $markup .= 'selected="selected"';
44
+ }
45
+ $markup .= '>' . $ccName . '</option>';
46
+ }
47
+ print($markup);
48
+ ?>
49
+ </select>
50
+ </div>
51
+ </div>
52
+ </li>
53
+ </ul>
app/design/frontend/base/default/template/giroconnect/paydirekt/form.phtml ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Payment selection block for Paydirekt.
4
+ */
5
+
6
+ //$languageCode = Mage::app()->getStore()->getCode();
7
+ //$languageCode = Mage::helper('giroconnect')->getLanguageCode();
8
+
9
+ //Get the logo url.
10
+ $logoMarkupURL = $this->getSkinUrl('images/giroconnect/Logo_paydirekt_50_px.jpg');
11
+
12
+
13
+ $_code = $this->getMethodCode();
14
+ ?>
15
+ <ul class="form-list" id="payment_form_<?php print($_code); ?>" style="display:none;">
16
+ <li>
17
+ <img src="<?php echo $logoMarkupURL; ?>" alt="Paydirekt"/>
18
+ </li>
19
+ <li>
20
+ <?php print($this->__('The online payment method of the German banks and Sparkassen. You will be redirected to the Paydirekt web site, where you will log into your personal account and authorize the payment. You require prior registration with Paydirekt. This payment method only works with German banking accounts.')); ?>
21
+ </li>
22
+ </ul>
23
+
app/design/frontend/base/default/template/giroconnect/sofortuw/form.phtml ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Payment selection block for Sofortuw.
4
+ */
5
+
6
+ //$languageCode = Mage::app()->getStore()->getCode();
7
+ //$languageCode = Mage::helper('giroconnect')->getLanguageCode();
8
+
9
+ //Get the logo url.
10
+ $logoMarkupURL = $this->getSkinUrl('images/giroconnect/Logo_sofort_50_px.jpg');
11
+
12
+
13
+ $_code = $this->getMethodCode();
14
+ ?>
15
+ <ul class="form-list" id="payment_form_<?php print($_code); ?>" style="display:none;">
16
+ <li>
17
+ <img src="<?php echo $logoMarkupURL; ?>" alt="SOFORT Überweisung"/>
18
+ </li>
19
+ <li>
20
+ <?php print($this->__('Direct payment via online banking. Make payments the easy way with your own online banking details – fast and direct. You will be redirected to the web site of SOFORT, where you will enter your banking data and initiate the electronic wire transfer.')); ?>
21
+ </li>
22
+ </ul>
23
+
app/etc/modules/Girosolution_Giroconnect.xml ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <Girosolution_Giroconnect>
5
+ <active>true</active>
6
+ <codePool>community</codePool>
7
+ <depends>
8
+ <Mage_Payment />
9
+ </depends>
10
+ </Girosolution_Giroconnect>
11
+ </modules>
12
+ </config>
app/locale/de_DE/Girosolution_Giroconnect.csv ADDED
@@ -0,0 +1,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "Yes","Ja"
2
+ "No","Nein"
3
+ "Enabled","Aktiviert"
4
+ "Title","Titel"
5
+ "Create invoice after successful payment","Nach erfolgreicher Bezahlung Rechnung erstellen"
6
+ "GiroMobile (GiroCheckout)","GiroMobile (GiroCheckout)"
7
+ "giropay (GiroCheckout)","giropay (GiroCheckout)"
8
+ "Direct Debit (GiroCheckout)","Lastschrift (GiroCheckout)"
9
+ "GiroTrust (GiroCheckout)","GiroTreuhand (GiroCheckout)"
10
+ "Credit Card (GiroCheckout)","Kreditkarte (GiroCheckout)"
11
+ "Merchant-ID","Verk&auml;ufer-ID"
12
+ "Project-ID","Projekt-ID"
13
+ "Project-Password","Projekt-Passwort"
14
+ "Information from GiroCockpit","Information aus dem GiroCockpit"
15
+ "The customer was redirected to GiroMobile.","Der Kunde wurde zu GiroMobile geleitet."
16
+ "Payment with GiroMobile was successful","Bezahlung mit GiroMobile war erfolgreich"
17
+ "Payment with GiroMobile failed","Bezahlung mit GiroMobile ist fehlgeschlagen"
18
+ "Error while creating GiroMobile transaction","Fehler beim Erzeugen der Giromobile Transaktion"
19
+ "Cancel","Abbrechen"
20
+ "New order status","Status einer neuen Order"
21
+ "Payment was successful","Bezahlung war erfolgreich"
22
+ "Please wait...","Bitte warten..."
23
+ "Payment failed","Bezahlung fehlgeschlagen"
24
+ "Sorry, this iframe cannot be displayed","Hintergrund kann nicht angezeigt werden"
25
+ "Thank you for your visit","Vielen Dank für Ihren Einkauf"
26
+ "Bank code","Bankleitzahl"
27
+ "Account number","Kontonummer"
28
+ "The customer pays with Direct Debit.","Der Kunde bezahlt per Lastschrift."
29
+ "Payment with Direct Debit failed","Bezahlung per Lastschrift fehlgeschlagen"
30
+ "Payment with Direct Debit was successful","Bezahlung per Lastschrift war erfolgreich"
31
+ "The customer was redirected to giropay.","Der Kunde wurde zu giropay weitergeleitet."
32
+ "Payment with giropay failed","Bezahlung mit giropay fehlgeschlagen"
33
+ "Payment with giropay was successful","Bezahlung mit giropay war erfolgreich"
34
+ "Giropay general error","Genereller Giropay Fehler"
35
+ "The customer pays with Girotrust.","Der Kunde bezahlt mit GiroTrust"
36
+ "Payment with Girotrust failed","Bezahlung mit GiroTrust fehlgeschlagen"
37
+ "Payment with Girotrust was successful","Bezahlung mit GrioTrust war erfolgreich"
38
+ "Payment with Girotrust failed","Bezahlung mit GiroTrust fehlgeschlagen"
39
+ "Creator ID","Ersteller-ID"
40
+ "Trustee ID","Treuhand-ID"
41
+ "Payment result data are invalid","Bezahlungs Resultat Daten sind ungültig"
42
+ "The customer pays with Creditcard.","Der Kunde bezahlt mit Kreditkarte"
43
+ "Payment with Creditcard failed","Bezahlung mit Kreditkarte fehlgeschlagen"
44
+ "Payment with Creditcard was successful","Bezahlung mit Kreditkarte war erfolgreich"
45
+ "Automatically generated by Credit Card payment confirmation","Automatisch generiert durch Kreditkarten Zahlungsbestätigung"
46
+ "Automatically generated by Direct Debit payment confirmation","Automatisch generiert durch Lastschrift Zahlungsbestätigung"
47
+ "Automatically generated by Giromobile payment confirmation","Automatisch generiert durch Giromobile Zahlungsbestätigung"
48
+ "Automatically generated by giropay payment confirmation","Automatisch generiert durch giropay Zahlungsbestätigung"
49
+ "Automatically generated by Girotrust payment confirmation","Automatisch generiert durch Girotrust Zahlungsbestätigung"
50
+ "Seconds","Sekunden"
51
+ "Second","Sekunde"
52
+ "Minute","Minute"
53
+ "Order No.:","Best."
54
+ "Invalid Creditcard payment configuration. Please contact the administrator.","Ungültige Kreditkarten Bezahl Konfiguration. Bitte kontaktieren Sie den Administrator."
55
+ "Invalid Direct Debit payment configuration. Please contact the administrator.","Ungültige Lastschrift Bezahl Konfiguration. Bitte kontaktieren Sie den Administrator."
56
+ "Invalid Giromobile payment configuration. Please contact the administrator.","Ungültige Giromobile Bezahl Konfiguration. Bitte kontaktieren Sie den Administrator."
57
+ "Invalid giropay payment configuration. Please contact the administrator.","Ungültige giropay Bezahl Konfiguration. Bitte kontaktieren Sie den Administrator."
58
+ "Invalid Girotrust payment configuration. Please contact the administrator.","Ungültige Girotreuhand Bezahl Konfiguration. Bitte kontaktieren Sie den Administrator."
59
+ "Invalid iDEAL payment configuration. Please contact the administrator.","Ungültige iDEAL Bezahl Konfiguration. Bitte kontaktieren Sie den Administrator."
60
+ "Invalid payment configuration. Please contact the administrator.","Ungültige Bezahl Konfiguration. Bitte kontaktieren Sie den Administrator."
61
+ "eps (GiroCheckout)","eps (GiroCheckout)"
62
+ "The customer was redirected to eps.","Der Kunde wurde zu eps weitergeleitet."
63
+ "Payment with eps failed","Bezahlung mit eps fehlgeschlagen"
64
+ "Payment with eps was successful","Bezahlung mit eps war erfolgreich"
65
+ "eps general error","Genereller eps Fehler"
66
+ "Automatically generated by eps payment confirmation","Automatisch generiert durch eps Zahlungsbestätigung"
67
+ "Invalid eps payment configuration. Please contact the administrator.","Ungültige eps Bezahl Konfiguration. Bitte kontaktieren Sie den Administrator."
68
+ "An unexpected error occured, please check your order","Es ist ein unerwarteter Fehler aufgetrete, prüfen Sie bitte Ihre Bestellung"
69
+ "eps settings missing","eps Einstellungen fehlen"
70
+ "giropay settings missing","giropay Einstellungen fehlen"
71
+ "With giropay you pay simply, fast and secure by the online banking of your participating bank. You will be redirected to the online banking of your bank where you authorize the credit transfer.","Mit giropay zahlen Sie einfach, schnell und sicher im Online-Banking Ihrer teilnehmenden Bank oder Sparkasse. Sie werden direkt zum Online-Banking Ihrer Bank weitergeleitet, wo Sie die Überweisung durch Eingabe von PIN und TAN freigeben."
72
+ "Hereby you authorize us to charge your current account with the invoiced amount by direct debit.","Hiermit ermächtigen Sie uns, den fälligen Betrag von Ihrem Konto mittels Lastschrift einzuziehen."
73
+ "On the following secure website, you are asked to enter your credit card data. If your credit card is enabled for 3D Secure (Verified by Visa or MasterCard Secure Code), additional information will be passed for a security check at your bank.","Im nächsten Schritt werden Sie aufgefordert, Ihre Kreditkartendaten einzugeben. Wenn Ihre Kreditkarte für 3D-Secure (Verified by Visa bzw. MasterCard SecureCode) freigeschaltet ist, werden Sie während des Bezahlprozesses zur Sicherheitsabfrage Ihrer Bank weitergeleitet."
74
+ "With iDEAL you pay simply, fast and secure by online banking of your bank. You will be redirected to the online banking of your bank where you authorize the credit transfer with PIN and TAN.","iDEAL ist das Online Überweisungssystem der niederländischen Banken, das auf dem etablierten Onlinebanking-Verfahren der Kreditinstitute basiert. Im folgenden müssen Sie Ihre Bank auswählen und können anschließend die Zahlung in Ihrem Online-Banking durchführen."
75
+ "With eps online transfer you pay simply, fast and secure by online banking of your bank. Your will be redirected to the online banking at your bank where you authorize the credit transfer with PIN and TAN.","Mit eps Online-Überweisung zahlen Sie einfach, schnell und sicher im Online-Banking Ihrer Bank. Im nächsten Schritt werden Sie direkt zum Online-Banking Ihrer Bank weitergeleitet, wo Sie die Zahlung durch Eingabe von PIN und TAN freigeben."
76
+ "No issuers banks found.","Es wurde keine Bank gefunden."
77
+ "use bank account/bank code","Kontonummer/BLZ verwenden"
78
+ "Account holder","Kontoinhaber"
79
+ "Show Bank Account/ Bank Code input field","Zeige Kontonummer/ BLZ Eingabefeld"
80
+ "Purpose","Verwendungszweck"
81
+ "You can define your own purpose using this placeholders:
82
+ {ORDERID}: Bestellnummer
83
+ {CUSTOMERID}: Kundennummer
84
+ {SHOPNAME}: Shop Name
85
+ {CUSTOMERNAME}: Kundenname
86
+ {CUSTOMERFIRSTNAME}: Kunde Vorname
87
+ {CUSTOMERLASTNAME}: Kunde Nachname
88
+ For example: If your purpose is Best. {ORDERID}, {SHOPNAME} then the submitted purpose must be Best. 55342, TestShop
89
+ The maximum length of the purpose is 27 characters.", "Sie können in Ihrem Verwendungszweck die folgenden Platzhalter verwenden:
90
+ {ORDERID}: Bestellnummer
91
+ {CUSTOMERID}: Kundennummer
92
+ {SHOPNAME}: Shop Name
93
+ {CUSTOMERNAME}: Kundenname
94
+ {CUSTOMERFIRSTNAME}: Kunde Vorname
95
+ {CUSTOMERLASTNAME}: Kunde Nachname
96
+
97
+ Beispiel: Wenn Ihr Verwendungszweck Best. 55342, TestShop lauten soll, dann müssen Sie folgendes angeben: Best. {ORDERID}, {SHOPNAME}.
98
+ Die maximale Länge beträgt 27 Zeichen."
99
+ "The maximum length of the purpose is 27 characters.","Die maximale Länge beträgt 27 Zeichen."
100
+ "SOFORT Überweisung","SOFORT Überweisung"
101
+ "Direct payment via online banking. Make payments the easy way with your own online banking details – fast and direct. You will be redirected to the web site of SOFORT, where you will enter your banking data and initiate the electronic wire transfer.","Mit SOFORT Überweisung geht das online Bezahlen einfach wie nie! Sie nutzen dabei ganz bequem Ihre vertrauten Online-Banking Daten und sind so auf der sicheren Seite. Sie werden auf die SOFORT-Webseiten weiter geleitet, geben dort Ihre Bankdaten ein und lösen die Online-Überweisung aus."
102
+ "Paydirekt","Paydirekt"
103
+ "The online payment method of the German banks and Sparkassen. You will be redirected to the Paydirekt web site, where you will log into your personal account and authorize the payment. You require prior registration with Paydirekt. This payment method only works with German banking accounts.","Das Online-Behalverfahren Ihrer Banken und Sparkassen. Sie werden auf die Webseiten von Paydirekt weiter geleitet, wo Sie sich mit Ihren persönlichen Zugangsdaten anmelden und dann die Zahlung bestätigen. Sie benötigen vorab eine Registrierung bei Paydirekt."
104
+ "Enable Visa/Mastercard", "Aktiviert Visa/Mastercard"
105
+ "Enable AMEX","Aktiviert AMEX"
106
+ "Enable JCB","Aktiviert JCB"
lib/GiroCheckout_SDK/GiroCheckout_SDK.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * GiroCheckout SDK.
4
+ *
5
+ * Include just this file. It will load any required files to use the SDK.
6
+ * View examples for API calls.
7
+ *
8
+ * @package GiroCheckout
9
+ * @version $Revision: 153 $ / $Date: 2016-06-08 16:33:53 -0300 (Mi, 08 Jun 2016) $
10
+ */
11
+ define('__GIROCHECKOUT_SDK_VERSION__', '2.0.2');
12
+
13
+ spl_autoload_register( array('GiroCheckout_SDK_Autoloader', 'load'), TRUE, TRUE );
14
+
15
+ if( defined('__GIROCHECKOUT_SDK_DEBUG__') && __GIROCHECKOUT_SDK_DEBUG__ === TRUE ) {
16
+ GiroCheckout_SDK_Config::getInstance()->setConfig('DEBUG_MODE',TRUE);
17
+ }
18
+
19
+ class GiroCheckout_SDK_Autoloader {
20
+ public static function load($classname) {
21
+ $filename = $classname . '.php';
22
+
23
+ $pathsArray = array ('api',
24
+ 'helper',
25
+ './',
26
+ 'api/giropay',
27
+ 'api/directdebit',
28
+ 'api/creditcard',
29
+ 'api/eps',
30
+ 'api/ideal',
31
+ 'api/paypal',
32
+ 'api/tools',
33
+ 'api/girocode',
34
+ 'api/paydirekt',
35
+ 'api/sofortuw'
36
+ );
37
+
38
+ foreach($pathsArray as $path) {
39
+ if($path == './') {
40
+ $pathToFile = dirname(__FILE__) . DIRECTORY_SEPARATOR . $filename;
41
+ } else {
42
+ $pathToFile = dirname(__FILE__) . DIRECTORY_SEPARATOR . $path . DIRECTORY_SEPARATOR . $filename;
43
+ }
44
+
45
+ if (file_exists($pathToFile)) {
46
+ require_once $pathToFile;
47
+ return true;
48
+ } else {
49
+ continue;
50
+ }
51
+ }
52
+ return false;
53
+ }
54
+ }
lib/GiroCheckout_SDK/GiroCheckout_SDK_Config.php ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Loads GiroCheckout SDK Config
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 106 $ / $Date: 2015-05-05 11:57:59 +0200 (Di, 05 Mai 2015) $
7
+ */
8
+ class GiroCheckout_SDK_Config
9
+ {
10
+ static private $instance = null;
11
+ private $config = null;
12
+
13
+ static public function getInstance()
14
+ {
15
+ if (null === self::$instance) {
16
+ self::$instance = new self;
17
+
18
+ //set default values
19
+ self::$instance->setConfig('CURLOPT_CAINFO',null);
20
+ self::$instance->setConfig('CURLOPT_SSL_VERIFYPEER',TRUE);
21
+ self::$instance->setConfig('CURLOPT_SSL_VERIFYHOST',2);
22
+ self::$instance->setConfig('CURLOPT_CONNECTTIMEOUT',3);
23
+
24
+ self::$instance->setConfig('DEBUG_MODE',FALSE);
25
+ self::$instance->setConfig('DEBUG_LOG_PATH',dirname(__FILE__).'/log');
26
+ }
27
+ return self::$instance;
28
+ }
29
+
30
+ private function __construct(){}
31
+ private function __clone(){}
32
+
33
+ /** Getter for config values
34
+ *
35
+ * @param $key
36
+ * @return null
37
+ */
38
+ public function getConfig($key) {
39
+ if (isset($this->config[$key])) return $this->config[$key];
40
+ return null;
41
+ }
42
+
43
+ /** Setter for config values
44
+ *
45
+ * @param $key
46
+ * @param $value
47
+ * @return bool
48
+ */
49
+ public function setConfig($key,$value) {
50
+
51
+ switch ($key) {
52
+ //curl options
53
+ case 'CURLOPT_CAINFO':
54
+ case 'CURLOPT_SSL_VERIFYPEER':
55
+ case 'CURLOPT_SSL_VERIFYHOST':
56
+ case 'CURLOPT_CONNECTTIMEOUT':
57
+
58
+ //debug
59
+ case 'DEBUG_LOG_PATH':
60
+ case 'DEBUG_MODE': $this->config[$key] = $value;
61
+ return true;
62
+ break;
63
+ default: return false;
64
+ }
65
+ }
66
+
67
+ }
lib/GiroCheckout_SDK/GiroCheckout_SDK_Notify.php ADDED
@@ -0,0 +1,270 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Used for notification and redirect calls from GiroCheckout to the merchant.
4
+ *
5
+ * - notify means that GiroCheckout sends the final result of an initiated transaction.
6
+ * - redirect means that the customer is sent back to the merchant, if he was redirected to somewhere outside
7
+ * the merchants website.
8
+ *
9
+ * how to use (see example section):
10
+ * 1. Instantiate a new Notify class and pass an api method to the constructor.
11
+ * 2. Parse the notification by given array including the GET Params.
12
+ * 3. Check the success of the transaction.
13
+ *
14
+ * @package GiroCheckout
15
+ * @version $Revision: 123 $ / $Date: 2016-04-13 12:36:55 -0300 (Mi, 13 Apr 2016) $
16
+ */
17
+
18
+ class GiroCheckout_SDK_Notify {
19
+
20
+ /*
21
+ * stores any committed notify parameter which was sent to GiroConnect
22
+ */
23
+ private $notifyParams = array();
24
+
25
+ /*
26
+ * stores given secret
27
+ */
28
+ private $secret = '';
29
+
30
+ /*
31
+ * stores the api request method object
32
+ */
33
+ private $requestMethod;
34
+
35
+ /*
36
+ * stores the api request method object
37
+ */
38
+ private $notifyResponse = array();
39
+
40
+
41
+ /**
42
+ * instantiates notification
43
+ *
44
+ * a request method instance has to be passed (see examples section)
45
+ *
46
+ * @param InterfaceApi/String $apiCallMethod
47
+ * @throws Exception if notification is not possible
48
+ */
49
+ function __construct($apiCallMethod) {
50
+ $Config = GiroCheckout_SDK_Config::getInstance();
51
+
52
+ if(is_object($apiCallMethod)) {
53
+ if($Config->getConfig('DEBUG_MODE')) {
54
+ $callMethod = str_replace("GiroCheckout_SDK_",'', get_class($apiCallMethod));
55
+ GiroCheckout_SDK_Debug_helper::getInstance()->init('notify-'.$callMethod);
56
+ GiroCheckout_SDK_Debug_helper::getInstance()->logTransaction($callMethod);
57
+ }
58
+ $this->requestMethod = $apiCallMethod;
59
+ }
60
+ elseif (is_string($apiCallMethod)) {
61
+ if($Config->getConfig('DEBUG_MODE')) {
62
+ GiroCheckout_SDK_Debug_helper::getInstance()->init('notify-'.$apiCallMethod);
63
+ GiroCheckout_SDK_Debug_helper::getInstance()->logTransaction($apiCallMethod);
64
+ }
65
+ $this->requestMethod = GiroCheckout_SDK_TransactionType_helper::getTransactionTypeByName($apiCallMethod);
66
+
67
+ if(is_null($this->requestMethod))
68
+ throw new GiroCheckout_SDK_Exception_helper('Failure: API call method unknown');
69
+ }
70
+
71
+ if (!$this->requestMethod->hasNotifyURL() && !$this->requestMethod->hasRedirectURL()) {
72
+ if($Config->getConfig('DEBUG_MODE')) GiroCheckout_SDK_Debug_helper::getInstance()->init('notify-'.$apiCallMethod);
73
+ throw new GiroCheckout_SDK_Exception_helper('Failure: notify or redirect not possible with this api call');
74
+ }
75
+ }
76
+
77
+ /**
78
+ * returns the data from the given parameter
79
+ *
80
+ * @param String $param response parameter key
81
+ * @return String data of the given response key
82
+ */
83
+ public function getResponseParam($param) {
84
+ if(isset($this->notifyParams[$param]))
85
+ return $this->notifyParams[$param];
86
+ return null;
87
+ }
88
+
89
+
90
+ /**
91
+ * returns the whole notification param data
92
+ *
93
+ * @return Mixed[] array of data
94
+ */
95
+ public function getResponseParams() {
96
+ if(isset($this->notifyParams))
97
+ return $this->notifyParams;
98
+ return null;
99
+ }
100
+
101
+ /*
102
+ * Sets the secret which is used for hash generation or hash comparison.
103
+ *
104
+ * @param String $secret
105
+ * @return String $this own instance
106
+ */
107
+ public function setSecret($secret) {
108
+ $this->secret = $secret;
109
+ return $this;
110
+ }
111
+
112
+ /*
113
+ * parses the given notification array
114
+ *
115
+ * @param mixed[] $params pas the $_GET array or validated input
116
+ * @return boolean if no error occurred
117
+ * @throws Exception if an error occurs
118
+ */
119
+ public function parseNotification($params) {
120
+ $Config = GiroCheckout_SDK_Config::getInstance();
121
+
122
+ if($Config->getConfig('DEBUG_MODE')) GiroCheckout_SDK_Debug_helper::getInstance()->logNotificationInput($params);
123
+
124
+ if(!is_array($params) || empty($params)) throw new GiroCheckout_SDK_Exception_helper('no data given');
125
+ try {
126
+ $this->notifyParams = $this->requestMethod->checkNotification($params);
127
+
128
+ if($Config->getConfig('DEBUG_MODE')) GiroCheckout_SDK_Debug_helper::getInstance()->logNotificationParams($this->notifyParams);
129
+
130
+ if (!$this->checkHash()) {
131
+ throw new GiroCheckout_SDK_Exception_helper('hash mismatch');
132
+ }
133
+ }
134
+ catch (Exception $e) {
135
+ throw new GiroCheckout_SDK_Exception_helper('Failure: '. $e->getMessage()."\n");
136
+ }
137
+
138
+ return TRUE;
139
+ }
140
+
141
+ /*
142
+ * validates the submitted hash by comparing to a self generated Hash
143
+ *
144
+ * @return boolean true if hash test passed
145
+ */
146
+ public function checkHash() {
147
+ $string = '';
148
+ $hashFieldName = $this->requestMethod->getNotifyHashName();
149
+
150
+ foreach ($this->notifyParams as $k => $v) {
151
+ if ($k !== $hashFieldName)
152
+ $string .= $v;
153
+ }
154
+
155
+ if ($this->notifyParams[$hashFieldName] === hash_hmac('md5', $string, $this->secret)) {
156
+ return true;
157
+ }
158
+
159
+ return false;
160
+ }
161
+
162
+ /*
163
+ * returns true if the payment transaction was successful
164
+ *
165
+ * @return boolean result of payment
166
+ */
167
+ public function paymentSuccessful() {
168
+ if ($this->requestMethod->getTransactionSuccessfulCode() != null) {
169
+ return $this->requestMethod->getTransactionSuccessfulCode() == $this->notifyParams['gcResultPayment'];
170
+ }
171
+
172
+ return false;
173
+ }
174
+
175
+ /*
176
+ * returns true if the age verification was successful
177
+ *
178
+ * @return boolean result of age verification
179
+ */
180
+ public function avsSuccessful() {
181
+ if ($this->requestMethod->getAVSSuccessfulCode() != null) {
182
+ return $this->requestMethod->getAVSSuccessfulCode() == $this->notifyParams['gcResultAVS'];
183
+ }
184
+
185
+ return false;
186
+ }
187
+
188
+ /*
189
+ * sends header with 200 OK status
190
+ */
191
+ public function sendOkStatus() {
192
+ $Config = GiroCheckout_SDK_Config::getInstance();
193
+
194
+ if($Config->getConfig('DEBUG_MODE')) GiroCheckout_SDK_Debug_helper::getInstance()->logNotificationOutput('sendOkStatus');
195
+ header('HTTP/1.1 200 OK');
196
+ }
197
+
198
+ /*
199
+ * sends header with 400 Bad Request status
200
+ */
201
+ public function sendBadRequestStatus() {
202
+ $Config = GiroCheckout_SDK_Config::getInstance();
203
+
204
+ if($Config->getConfig('DEBUG_MODE')) GiroCheckout_SDK_Debug_helper::getInstance()->logNotificationOutput('sendBadRequestStatus');
205
+ header('HTTP/1.1 400 Bad Request');
206
+ }
207
+
208
+ /*
209
+ * sends header with 503 Service Unavailable status
210
+ */
211
+ public function sendServiceUnavailableStatus() {
212
+ $Config = GiroCheckout_SDK_Config::getInstance();
213
+
214
+ if($Config->getConfig('DEBUG_MODE')) GiroCheckout_SDK_Debug_helper::getInstance()->logNotificationOutput('sendServiceUnavailableStatus');
215
+ header('HTTP/1.1 503 Service Unavailable');
216
+ }
217
+
218
+ /*
219
+ * sends header with 404 Not Found status
220
+ */
221
+ public function sendOtherStatus() {
222
+ $Config = GiroCheckout_SDK_Config::getInstance();
223
+
224
+ if($Config->getConfig('DEBUG_MODE')) GiroCheckout_SDK_Debug_helper::getInstance()->logNotificationOutput('sendOtherStatus');
225
+ header('HTTP/1.1 404 Not Found');
226
+ }
227
+
228
+ /*
229
+ * Gives response message to given code number in the given language.
230
+ *
231
+ * @param integer code
232
+ * @param String language
233
+ * @return String thee codes description in given language
234
+ */
235
+ public function getResponseMessage($responseCode,$lang = 'DE') {
236
+ return GiroCheckout_SDK_ResponseCode_helper::getMessage($responseCode,$lang);
237
+ }
238
+
239
+ /*
240
+ * Stores notification response params used for sending additional info back to GiroCheckout.
241
+ *
242
+ * @param String key
243
+ * @value String value
244
+ */
245
+ public function setNotifyResponseParam($key,$value) {
246
+ switch($key) {
247
+ case 'Result':
248
+ case 'ErrorMessage':
249
+ case 'OrderId':
250
+ case 'CustomerId':
251
+ case 'MailSent': $this->notifyResponse[$key] = $value; break;
252
+ }
253
+ }
254
+
255
+ /**
256
+ * returns a JSON string to be printed to the notification output
257
+ *
258
+ * @return String JSON string
259
+ */
260
+ public function getNotifyResponseStringJson() {
261
+ $response['Result'] = $this->notifyResponse['Result'];
262
+ $response['ErrorMessage'] = $this->notifyResponse['ErrorMessage'];
263
+ $response['OrderId'] = $this->notifyResponse['OrderId'];
264
+ $response['CustomerId'] = $this->notifyResponse['CustomerId'];
265
+ $response['MailSent'] = $this->notifyResponse['MailSent'];
266
+ $response['Timestamp'] = time();
267
+
268
+ return json_encode($this->notifyResponse);
269
+ }
270
+ }
lib/GiroCheckout_SDK/GiroCheckout_SDK_Request.php ADDED
@@ -0,0 +1,293 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Request class which manages API calls to GiroCheckout
4
+ *
5
+ * how to use (see example section):
6
+ * 1. Instantiate a new Request class and pass an api method to the constructor.
7
+ * 2. Pass the submit params (see api documentation) and call submit().
8
+ * 3. Use the getResponseParam to retrieve the result.
9
+ *
10
+ * @package GiroCheckout
11
+ * @version $Revision: 123 $ / $Date: 2016-04-13 12:36:55 -0300 (Mi, 13 Apr 2016) $
12
+ */
13
+
14
+ class GiroCheckout_SDK_Request {
15
+
16
+ /*
17
+ * stores any committed request parameter which should be sent to GiroCheckout
18
+ */
19
+ private $params = Array();
20
+
21
+ /*
22
+ * stores any response parameter from GiroCheckout answer
23
+ */
24
+ private $response = Array();
25
+
26
+ /*
27
+ * stores the raw response from GiroCheckout
28
+ */
29
+ private $responseRaw = '';
30
+
31
+ /*
32
+ * stores given secret
33
+ */
34
+ private $secret = '';
35
+
36
+ /*
37
+ * stores the api call request method object
38
+ */
39
+ private $requestMethod;
40
+
41
+
42
+ /**
43
+ * instantiates request
44
+ *
45
+ * a request method instance has to be passed (see examples section)
46
+ *
47
+ * @param InterfaceApi/String $apiCallMethod
48
+ * @throws GiroCheckout_SDK_Exception_helper
49
+ */
50
+ function __construct($apiCallMethod) {
51
+ $Config = GiroCheckout_SDK_Config::getInstance();
52
+
53
+ if(is_object($apiCallMethod)) {
54
+ $this->requestMethod = $apiCallMethod;
55
+
56
+ if($Config->getConfig('DEBUG_MODE')) {
57
+ $callMethod = str_replace("GiroCheckout_SDK_",'', get_class($apiCallMethod));
58
+
59
+ GiroCheckout_SDK_Debug_helper::getInstance()->init('request-'.$callMethod);
60
+ GiroCheckout_SDK_Debug_helper::getInstance()->logTransaction($callMethod);
61
+ }
62
+ }
63
+ elseif (is_string($apiCallMethod)) {
64
+ if($Config->getConfig('DEBUG_MODE')) {
65
+ GiroCheckout_SDK_Debug_helper::getInstance()->init('request-'.$apiCallMethod);
66
+ GiroCheckout_SDK_Debug_helper::getInstance()->logTransaction($apiCallMethod);
67
+ }
68
+
69
+ $this->requestMethod = GiroCheckout_SDK_TransactionType_helper::getTransactionTypeByName($apiCallMethod);
70
+
71
+ if(is_null($this->requestMethod))
72
+ throw new GiroCheckout_SDK_Exception_helper('Failure: API call method unknown');
73
+ }
74
+ }
75
+
76
+ /*
77
+ * Adds a key value pair to the params variable. Used to fill the request with data.
78
+ *
79
+ * @param String $param key
80
+ * @param String $value value
81
+ * @return Request $this own instance
82
+ */
83
+ public function addParam($param, $value){
84
+
85
+ if(!$this->requestMethod->hasParam($param)) {
86
+ throw new GiroCheckout_SDK_Exception_helper('Failure: param "'.$param.'" not valid or misspelled. Please check API Params List.');
87
+ }
88
+
89
+ if( $value instanceof GiroCheckout_SDK_Request_Cart ) {
90
+ $this->params[$param] = $value->getAllItems();
91
+ }
92
+ else {
93
+ $this->params[$param] = $value;
94
+ }
95
+
96
+ return $this;
97
+ }
98
+
99
+ /*
100
+ * Removes a key value pair from the params variable.
101
+ *
102
+ * @param String $param key
103
+ * @return Request $this own instance
104
+ */
105
+ public function unsetParam($param) {
106
+ unset($this->params[$param]);
107
+ return $this;
108
+ }
109
+
110
+ /*
111
+ * Returns the value from the params variable by the given key.
112
+ *
113
+ * @param String $param key
114
+ * @return String $value value assigned to the given key
115
+ */
116
+ public function getParam($param){
117
+ if(isset($this->params[$param])) {
118
+ return $this->params[$param];
119
+ }
120
+ return null;
121
+ }
122
+
123
+ /*
124
+ * Returns the value from the response of the request.
125
+ *
126
+ * @param String $param key
127
+ * @return null/String $value value assigned to the given key
128
+ */
129
+ public function getResponseParam($param){
130
+ if(isset($this->response[$param])) {
131
+ return $this->response[$param];
132
+ }
133
+ return null;
134
+ }
135
+
136
+ /**
137
+ * Returns an array of all values from the response of the request.
138
+ *
139
+ * @return array Response values
140
+ */
141
+ public function getResponseParams() {
142
+ return $this->response;
143
+ }
144
+
145
+ /**
146
+ * Returns the raw response of the request.
147
+ *
148
+ * @return array Response values
149
+ */
150
+ public function getResponseRaw() {
151
+ return $this->responseRaw;
152
+ }
153
+
154
+ /**
155
+ * Sets the secret which is used for hash generation or hash comparison.
156
+ *
157
+ * @param String $secret
158
+ * @return String $this own instance
159
+ */
160
+ public function setSecret($secret){
161
+ $this->secret = $secret;
162
+ return $this;
163
+ }
164
+
165
+ /**
166
+ * Submits the request to the GiroCheckout API by using the given request method. Uses all given and needed
167
+ * params in the correct order.
168
+ *
169
+ * @return boolean
170
+ * @throws GiroCheckout_SDK_Exception_helper
171
+ */
172
+ public function submit() {
173
+ $header = array();
174
+ $body = '';
175
+ $Config = GiroCheckout_SDK_Config::getInstance();
176
+
177
+ if($Config->getConfig('DEBUG_MODE')) GiroCheckout_SDK_Debug_helper::getInstance()->logParamsSet($this->params);
178
+
179
+ try {
180
+ $submitParams = $this->requestMethod->getSubmitParams($this->params);
181
+
182
+ if($this->requestMethod->needsHash()) {
183
+ $submitParams['hash'] = GiroCheckout_SDK_Hash_helper::getHMACMD5Hash($this->secret, $submitParams);
184
+ }
185
+
186
+ $submitParams['sourceId'] = $this->getHostSourceId().';'.__GIROCHECKOUT_SDK_VERSION__.';';
187
+
188
+ if(isset($this->params['sourceId'])) {
189
+ $submitParams['sourceId'] .= $this->params['sourceId'];
190
+ } else {
191
+ $submitParams['sourceId'] .= ';';
192
+ }
193
+
194
+ //send additional info fields for support reasons
195
+ if(isset($_SERVER['HTTP_USER_AGENT'])) $submitParams['userAgent'] = $_SERVER['HTTP_USER_AGENT'];
196
+ if(isset($this->params['orderId'])) $submitParams['orderId'] = $this->params['orderId'];
197
+ if(isset($this->params['customerId'])) $submitParams['customerId'] = $this->params['customerId'];
198
+
199
+ list($header,$body) = GiroCheckout_SDK_Curl_helper::submit($this->requestMethod->getRequestURL(), $submitParams);
200
+ $this->responseRaw = print_r($header,1)."\n$body";
201
+
202
+ $response = GiroCheckout_SDK_Curl_helper::getJSONResponseToArray($body);
203
+
204
+ if($response['rc'] == 5000 || $response['rc'] == 5001) {
205
+ throw new GiroCheckout_SDK_Exception_helper('authentication failure');
206
+ }
207
+ elseif (!isset($header['hash'])) {
208
+ throw new GiroCheckout_SDK_Exception_helper('hash in response is missing');
209
+ }
210
+ elseif (isset($header['hash']) && $header['hash'] !== GiroCheckout_SDK_Hash_helper::getHMACMD5HashString($this->secret,$body)) {
211
+ throw new GiroCheckout_SDK_Exception_helper('hash mismatch in response');
212
+ }
213
+ else {
214
+ $this->response = $this->requestMethod->checkResponse($response);
215
+ if($Config->getConfig('DEBUG_MODE')) GiroCheckout_SDK_Debug_helper::getInstance()->logReplyParams($this->response);
216
+ }
217
+ }
218
+ catch (Exception $e) {
219
+ throw new GiroCheckout_SDK_Exception_helper('Failure: '. $e->getMessage()."\n".implode("\r\n",$header).$body);
220
+ }
221
+
222
+ return TRUE;
223
+ }
224
+
225
+ /**
226
+ * Returns true if the request has succeeded and the response had no ErrorCode. It doesn't check if the transaction
227
+ * or payment has succeeded.
228
+ *
229
+ * @return bool
230
+ */
231
+ public function requestHasSucceeded() {
232
+ if(isset($this->response['rc'])
233
+ && $this->response['rc'] == 0) return TRUE;
234
+
235
+ return FALSE;
236
+ }
237
+
238
+ /**
239
+ * modifies header to sent redirect location by GiroCheckout
240
+ */
241
+ public function redirectCustomerToPaymentProvider() {
242
+ if(isset($this->response['redirect'])) {
243
+ header('location:'.$this->response['redirect']);
244
+ exit;
245
+ }
246
+ }
247
+
248
+ /*
249
+ * Gives response message to given code number in the given language.
250
+ *
251
+ * @param integer code
252
+ * @param String language
253
+ * @return String thee codes description in given language
254
+ */
255
+ public function getResponseMessage($responseCode,$lang = 'DE') {
256
+ return GiroCheckout_SDK_ResponseCode_helper::getMessage($responseCode,$lang);
257
+ }
258
+
259
+ /*
260
+ * returns true if the payment transaction was successful
261
+ *
262
+ * @return boolean result of payment
263
+ */
264
+ public function paymentSuccessful() {
265
+ if ($this->requestHasSucceeded() && $this->requestMethod->isDirectPayment()) {
266
+ return $this->requestMethod->getTransactionSuccessfulCode() == $this->response['resultPayment'];
267
+ }
268
+
269
+ return false;
270
+ }
271
+
272
+ /*
273
+ * returns sourceId of this SDK
274
+ *
275
+ * @return $sdkSourceId of this SDK
276
+ */
277
+ public function getSDKSourceId() {
278
+ if(isset($this->sdkSourceId))
279
+ return $this->sdkSourceId;
280
+ return '';
281
+ }
282
+
283
+ /*
284
+ * returns sourceId of the host
285
+ *
286
+ * @return sourceId of the host
287
+ */
288
+ public function getHostSourceId() {
289
+ if(isset($_SERVER['SERVER_NAME']))
290
+ return $_SERVER['SERVER_NAME'];
291
+ return '';
292
+ }
293
+ }
lib/GiroCheckout_SDK/GiroCheckout_SDK_Request_Cart.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Handles shopping cart object (initially mainly for Paydirekt)
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 31 $ / $Date: 2014-06-11 03:55:39 -0400 (Mi, 11 Jun 2014) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_Request_Cart {
10
+
11
+ private $m_aItems = array();
12
+
13
+ /**
14
+ * Add item to cart.
15
+ *
16
+ * @param string $p_strName Item name
17
+ * @param integer $p_iQuantity Number of items of this kind in the cart
18
+ * @param integer $p_iGrossAmt Gross amount (value) of the item
19
+ * @param string $p_strEAN (optional) Item id number
20
+ */
21
+ public function addItem( $p_strName, $p_iQuantity, $p_iGrossAmt, $p_strEAN = "" ) {
22
+ $aItem = array(
23
+ "name" => $p_strName,
24
+ "quantity" => $p_iQuantity,
25
+ "grossAmount" => $p_iGrossAmt
26
+ );
27
+
28
+ if( !empty($p_strEAN) ) {
29
+ $aItem["ean"] = $p_strEAN;
30
+ }
31
+
32
+ $this->m_aItems[] = $aItem;
33
+ }
34
+
35
+ /**
36
+ * Returns all items as a JSON string.
37
+ *
38
+ * @return string JSON encoded item array.
39
+ */
40
+ public function getAllItems() {
41
+ return json_encode( $this->m_aItems );
42
+ }
43
+ }
lib/GiroCheckout_SDK/GiroCheckout_SDK_Tools.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Tools for non specific functionalities
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 94 $ / $Date: 2015-01-08 10:06:53 +0100 (Do, 08 Jan 2015) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_Tools {
10
+
11
+ const HORIZONTAL = 1;
12
+ const VERTICAL = 2;
13
+
14
+ /** returns logname by given credit card types and size
15
+ *
16
+ * @param bool $visa_msc
17
+ * @param bool $amex
18
+ * @param bool $jcb
19
+ * @param bool $diners
20
+ * @param integer $size
21
+ * @param string $layout
22
+ * @return string
23
+ *
24
+ */
25
+ public static function getCreditCardLogoName($visa_msc = false, $amex = false, $jcb = false) {
26
+
27
+ if( $visa_msc == false && $amex == false && $jcb == false ) {
28
+ return null;
29
+ }
30
+
31
+ $logoName = '';
32
+
33
+ if( $visa_msc ) {
34
+ $logoName .= 'visa_msc_';
35
+ }
36
+ if( $amex ) {
37
+ $logoName .= 'amex_';
38
+ }
39
+ if( $jcb ) {
40
+ $logoName .= 'jcb_';
41
+ }
42
+
43
+ $logoName .= '40px.jpg';
44
+
45
+ return $logoName;
46
+ }
47
+ }
lib/GiroCheckout_SDK/api/GiroCheckout_SDK_AbstractApi.php ADDED
@@ -0,0 +1,193 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Abstract API class for all GiroCheckout API calls.
4
+ * Provides most of the interfaces functions. A new payment method should use this class.
5
+ *
6
+ * @package GiroCheckout
7
+ * @version $Revision: 151 $ / $Date: 2016-06-08 16:02:47 -0300 (Mi, 08 Jun 2016) $
8
+ */
9
+
10
+ class GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi{
11
+
12
+ /*
13
+ * for developent use only
14
+ */
15
+ function __construct() {
16
+ try {
17
+ if( (function_exists('apache_getenv') && strlen(apache_getenv('GIROCHECKOUT_SERVER'))) ||
18
+ (getenv('GIROCHECKOUT_SERVER') ) ) {
19
+ $url = parse_url($this->requestURL);
20
+
21
+ if( function_exists('apache_getenv') && strlen(apache_getenv('GIROCHECKOUT_SERVER') ) ) {
22
+ $this->requestURL = apache_getenv('GIROCHECKOUT_SERVER').$url['path'];
23
+ }
24
+ else {
25
+ $this->requestURL = getenv('GIROCHECKOUT_SERVER').$url['path'];
26
+ }
27
+ }
28
+ }
29
+ catch(Exception $e) {}
30
+ }
31
+
32
+ /**
33
+ * Checks if the param exists. Check is case sensitive.
34
+ *
35
+ * @param String $param
36
+ * @return boolean true if param exists
37
+ */
38
+ public function hasParam($paramName) {
39
+ if(isset($this->paramFields[$paramName])) return true;
40
+ elseif('sourceId' === $paramName) return true; //default field due to support issues
41
+ elseif('userAgent' === $paramName) return true; //default field due to support issues
42
+ elseif('orderId' === $paramName) return true; //default field due to support issues
43
+ elseif('customerId' === $paramName) return true; //default field due to support issues
44
+ return false;
45
+ }
46
+
47
+
48
+ /**
49
+ * Returns all API call param fields in the correct order.
50
+ * Complains if a mandatory field is not present or empty.
51
+ *
52
+ * @param mixed[] $params
53
+ * @return mixed[] $submitParams
54
+ * @throws Exception if one of the mandatory fields is not set
55
+ */
56
+ public function getSubmitParams($params) {
57
+
58
+ foreach($this->paramFields as $k=>$mandatory) {
59
+ if( isset($params[$k]) && strlen($params[$k]) > 0 ) {
60
+ $submitParams[$k] = $params[$k];
61
+ }
62
+ elseif( (!isset($params[$k]) || strlen($params[$k]) == 0) && $mandatory ) {
63
+ throw new Exception('mandatory field '.$k.' is unset or empty');
64
+ }
65
+ }
66
+
67
+ return $submitParams;
68
+ }
69
+
70
+ /**
71
+ * Returns all response param fields in the correct order.
72
+ *
73
+ * @param mixed[] $response
74
+ * @return mixed[] $responseParams
75
+ * @throws Exception if one of the mandatory fields is not set
76
+ */
77
+ public function checkResponse($response) {
78
+ if(!is_array($response)) {
79
+ return FALSE;
80
+ }
81
+
82
+ foreach( $this->responseFields as $k=>$mandatory ) {
83
+ if(isset($response[$k])) {
84
+ $responseParams[$k] = $response[$k];
85
+ }
86
+ elseif( !isset($response[$k]) && $mandatory ) {
87
+ throw new Exception('expected response field '.$k.' is missing');
88
+ }
89
+ }
90
+
91
+ return $responseParams;
92
+ }
93
+
94
+ /**
95
+ * Returns all notify param fields in the correct order.
96
+ *
97
+ * @param mixed[] $notify
98
+ * @return mixed[] $notifyParams
99
+ * @throws Exception if one of the mandatory fields is not set
100
+ */
101
+ public function checkNotification($notify){
102
+ if(!is_array($notify)) return FALSE;
103
+
104
+ foreach($this->notifyFields as $k=>$mandatory) {
105
+
106
+ if(isset($notify[$k]))
107
+ $notifyParams[$k] = $notify[$k];
108
+ elseif(!isset($notify[$k]) && $mandatory)
109
+ throw new Exception('expected notification field '.$k.' is missing');
110
+ }
111
+
112
+ return $notifyParams;
113
+ }
114
+
115
+ /**
116
+ * Returns true if a hash has to be added to the API call.
117
+ *
118
+ * @return boolean
119
+ */
120
+ public function needsHash() {
121
+ return $this->needsHash;
122
+ }
123
+
124
+ /**
125
+ * Returns the API request URL where the call has to be sent to.
126
+ *
127
+ * @return String requestURL
128
+ */
129
+ public function getRequestURL() {
130
+ return $this->requestURL;
131
+ }
132
+
133
+ /**
134
+ * Returns the API needs a notify URL, where the transaction result has to be sent to.
135
+ *
136
+ * @return String notifyURL
137
+ */
138
+ public function hasNotifyURL() {
139
+ return $this->hasNotifyURL;
140
+ }
141
+
142
+ /**
143
+ * Returns if the API needs a redirect URL, where the customer has to be sent to after payment.
144
+ *
145
+ * @return String redirectURL
146
+ */
147
+ public function hasRedirectURL() {
148
+ return $this->hasRedirectURL;
149
+ }
150
+
151
+ /**
152
+ * Returns the ResultCode of an successful transaction.
153
+ *
154
+ * @return int/null notifyURL
155
+ */
156
+ public function getTransactionSuccessfulCode() {
157
+ if(isset($this->paymentSuccessfulCode))
158
+ return $this->paymentSuccessfulCode;
159
+ return NULL;
160
+ }
161
+
162
+ /**
163
+ * Returns the ResultCode of an successful AVS check (age verification system).
164
+ *
165
+ * @return int/null notifyURL
166
+ */
167
+ public function getAVSSuccessfulCode() {
168
+ if(isset($this->avsSuccessfulCode))
169
+ return $this->avsSuccessfulCode;
170
+ return NULL;
171
+ }
172
+
173
+ /**
174
+ * Returns the parameter name of the hash in the notify or redirect API call from GiroConnect.
175
+ *
176
+ * @return int/null notifyURL
177
+ */
178
+ public function getNotifyHashName() {
179
+ if(isset($this->notifyHashName))
180
+ return $this->notifyHashName;
181
+
182
+ return NULL;
183
+ }
184
+
185
+ /**
186
+ * Returns true if the api is direct payment (without init and payment page)
187
+ *
188
+ * @return bool
189
+ */
190
+ public function isDirectPayment() {
191
+ return isset($this->responseFields['resultPayment']);
192
+ }
193
+ }
lib/GiroCheckout_SDK/api/GiroCheckout_SDK_InterfaceApi.php ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Interface API has to be implemented, if a a new payment method has to be created
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 24 $ / $Date: 2014-05-22 08:30:12 -0400 (Do, 22 Mai 2014) $
7
+ */
8
+
9
+ interface GiroCheckout_SDK_InterfaceApi {
10
+
11
+ /**
12
+ * Returns all API call param fields in the correct order.
13
+ *
14
+ * @param mixed[] $params
15
+ */
16
+ public function getSubmitParams($params);
17
+
18
+ /**
19
+ * Returns all response param fields in the correct order.
20
+ *
21
+ * @param mixed[] $response
22
+ */
23
+ public function checkResponse($response);
24
+
25
+ /**
26
+ * Returns all notify param fields in the correct order.
27
+ *
28
+ * @param mixed[] $notify
29
+ */
30
+ public function checkNotification($notify);
31
+
32
+ /**
33
+ * Returns true if a hash has to be added to the API call.
34
+ */
35
+ public function needsHash();
36
+
37
+ /**
38
+ * Returns the API request URL where the call has to be sent to.
39
+ */
40
+ public function getRequestURL();
41
+
42
+ /**
43
+ * Returns the API needs a notify URL, where the transaction result has to be sent to.
44
+ */
45
+ public function hasNotifyURL();
46
+
47
+ /**
48
+ * Returns if the API needs a redirect URL, where the customer has to be sent to after payment.
49
+ */
50
+ public function hasRedirectURL();
51
+
52
+ /**
53
+ * Returns the ResultCode of an successful transaction.
54
+ */
55
+ public function getTransactionSuccessfulCode();
56
+
57
+ /**
58
+ * Returns the ResultCode of an successful AVS check (age verification system).
59
+ */
60
+ public function getAVSSuccessfulCode();
61
+
62
+ /**
63
+ * Returns the parameter name of the hash in the notify or redirect API call from GiroConnect.
64
+ */
65
+ public function getNotifyHashName();
66
+ }
lib/GiroCheckout_SDK/api/creditcard/GiroCheckout_SDK_CreditCardCapture.php ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for a credit card API call.
4
+ *
5
+ * @package GiroCheckout
6
+ */
7
+
8
+ class GiroCheckout_SDK_CreditCardCapture extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
9
+
10
+ /*
11
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
12
+ * For further information use the API documentation.
13
+ */
14
+ protected $paramFields = array(
15
+ 'merchantId' => TRUE,
16
+ 'projectId' => TRUE,
17
+ 'merchantTxId' => TRUE,
18
+ 'amount' => TRUE,
19
+ 'currency' => TRUE,
20
+ 'reference' => TRUE,
21
+ );
22
+
23
+ /*
24
+ * Includes any response field parameter of the API.
25
+ */
26
+ protected $responseFields = array(
27
+ 'rc'=> TRUE,
28
+ 'msg' => TRUE,
29
+ 'reference' => TRUE,
30
+ 'referenceParent' => TRUE,
31
+ 'merchantTxId' => TRUE,
32
+ 'backendTxId' => TRUE,
33
+ 'amount' => TRUE,
34
+ 'currency' => TRUE,
35
+ 'resultPayment' => TRUE,
36
+ );
37
+
38
+ /*
39
+ * Includes any notify parameter of the API.
40
+ */
41
+ protected $notifyFields = array(
42
+ 'gcReference'=> TRUE,
43
+ 'gcMerchantTxId' => TRUE,
44
+ 'gcBackendTxId' => TRUE,
45
+ 'gcAmount' => TRUE,
46
+ 'gcCurrency' => TRUE,
47
+ 'gcResultPayment' => TRUE,
48
+ 'gcHash' => TRUE,
49
+ );
50
+
51
+ /*
52
+ * True if a hash is needed. It will be automatically added to the post data.
53
+ */
54
+ protected $needsHash = TRUE;
55
+
56
+ /*
57
+ * The field name in which the hash is sent to the notify or redirect page.
58
+ */
59
+ protected $notifyHashName = 'gcHash';
60
+
61
+ /*
62
+ * The request url of the GiroCheckout API for this request.
63
+ */
64
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/transaction/capture";
65
+
66
+ /*
67
+ * If true the request method needs a notify page to receive the transactions result.
68
+ */
69
+ protected $hasNotifyURL = TRUE;
70
+
71
+ /*
72
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
73
+ */
74
+ protected $hasRedirectURL = TRUE;
75
+
76
+ /*
77
+ * The result code number of a successful transaction
78
+ */
79
+ protected $paymentSuccessfulCode = 4000;
80
+ }
lib/GiroCheckout_SDK/api/creditcard/GiroCheckout_SDK_CreditCardGetPKN.php ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an credit card API call.
4
+ *
5
+ * @package GiroCheckout
6
+ */
7
+
8
+ class GiroCheckout_SDK_CreditCardGetPKN extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
9
+
10
+ /*
11
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
12
+ * For further information use the API documentation.
13
+ */
14
+ protected $paramFields = array(
15
+ 'merchantId' => TRUE,
16
+ 'projectId' => TRUE,
17
+ 'reference' => TRUE,
18
+ );
19
+
20
+ /*
21
+ * Includes any response field parameter of the API.
22
+ */
23
+ protected $responseFields = array(
24
+ 'rc'=> TRUE,
25
+ 'msg' => TRUE,
26
+ 'pkn' => FALSE,
27
+ 'cardnumber' => FALSE,
28
+ 'expiremonth' => FALSE,
29
+ 'expireyear' => FALSE,
30
+ );
31
+
32
+ /*
33
+ * True if a hash is needed. It will be automatically added to the post data.
34
+ */
35
+ protected $needsHash = TRUE;
36
+
37
+ /*
38
+ * The request url of the GiroCheckout API for this request.
39
+ */
40
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/creditcard/pkninfo";
41
+
42
+ /*
43
+ * If true the request method needs a notify page to receive the transactions result.
44
+ */
45
+ protected $hasNotifyURL = FALSE;
46
+
47
+ /*
48
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
49
+ */
50
+ protected $hasRedirectURL = FALSE;
51
+ }
lib/GiroCheckout_SDK/api/creditcard/GiroCheckout_SDK_CreditCardRecurringTransaction.php ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an credit card API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 80 $ / $Date: 2014-10-21 13:49:14 -0300 (Di, 21 Okt 2014) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_CreditCardRecurringTransaction extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
10
+
11
+ /*
12
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
13
+ * For further information use the API documentation.
14
+ */
15
+ protected $paramFields = array(
16
+ 'merchantId' => TRUE,
17
+ 'projectId' => TRUE,
18
+ 'merchantTxId' => TRUE,
19
+ 'amount' => TRUE,
20
+ 'currency' => TRUE,
21
+ 'purpose' => TRUE,
22
+ 'pkn' => TRUE,
23
+ 'recurring' => TRUE,
24
+ 'urlNotify' => FALSE,
25
+ );
26
+
27
+ /*
28
+ * Includes any response field parameter of the API.
29
+ */
30
+ protected $responseFields = array(
31
+ 'rc'=> TRUE,
32
+ 'msg' => TRUE,
33
+ 'reference' => FALSE,
34
+ 'backendTxId' => FALSE,
35
+ 'resultPayment' => FALSE,
36
+ );
37
+
38
+ /*
39
+ * Includes any notify parameter of the API.
40
+ */
41
+ protected $notifyFields = array(
42
+ 'gcReference'=> TRUE,
43
+ 'gcMerchantTxId' => TRUE,
44
+ 'gcBackendTxId' => TRUE,
45
+ 'gcAmount' => TRUE,
46
+ 'gcCurrency' => TRUE,
47
+ 'gcResultPayment' => TRUE,
48
+ 'gcHash' => TRUE,
49
+ );
50
+
51
+ /*
52
+ * True if a hash is needed. It will be automatically added to the post data.
53
+ */
54
+ protected $needsHash = TRUE;
55
+
56
+ /*
57
+ * The field name in which the hash is sent to the notify or redirect page.
58
+ */
59
+ protected $notifyHashName = 'gcHash';
60
+
61
+ /*
62
+ * The request url of the GiroCheckout API for this request.
63
+ */
64
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/transaction/payment";
65
+
66
+ /*
67
+ * If true the request method needs a notify page to receive the transactions result.
68
+ */
69
+ protected $hasNotifyURL = TRUE;
70
+
71
+ /*
72
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
73
+ */
74
+ protected $hasRedirectURL = FALSE;
75
+
76
+ /*
77
+ * The result code number of a successful transaction
78
+ */
79
+ protected $paymentSuccessfulCode = 4000;
80
+ }
lib/GiroCheckout_SDK/api/creditcard/GiroCheckout_SDK_CreditCardRefund.php ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for a credit card API call.
4
+ *
5
+ * @package GiroCheckout
6
+ */
7
+
8
+ class GiroCheckout_SDK_CreditCardRefund extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
9
+
10
+ /*
11
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
12
+ * For further information use the API documentation.
13
+ */
14
+ protected $paramFields = array(
15
+ 'merchantId' => TRUE,
16
+ 'projectId' => TRUE,
17
+ 'merchantTxId' => TRUE,
18
+ 'amount' => TRUE,
19
+ 'currency' => TRUE,
20
+ 'reference' => TRUE,
21
+ );
22
+
23
+ /*
24
+ * Includes any response field parameter of the API.
25
+ */
26
+ protected $responseFields = array(
27
+ 'rc'=> TRUE,
28
+ 'msg' => TRUE,
29
+ 'reference' => TRUE,
30
+ 'referenceParent' => TRUE,
31
+ 'merchantTxId' => TRUE,
32
+ 'backendTxId' => TRUE,
33
+ 'amount' => TRUE,
34
+ 'currency' => TRUE,
35
+ 'resultPayment' => TRUE,
36
+ );
37
+
38
+ /*
39
+ * Includes any notify parameter of the API.
40
+ */
41
+ protected $notifyFields = array(
42
+ 'gcReference'=> TRUE,
43
+ 'gcMerchantTxId' => TRUE,
44
+ 'gcBackendTxId' => TRUE,
45
+ 'gcAmount' => TRUE,
46
+ 'gcCurrency' => TRUE,
47
+ 'gcResultPayment' => TRUE,
48
+ 'gcHash' => TRUE,
49
+ );
50
+
51
+ /*
52
+ * True if a hash is needed. It will be automatically added to the post data.
53
+ */
54
+ protected $needsHash = TRUE;
55
+
56
+ /*
57
+ * The field name in which the hash is sent to the notify or redirect page.
58
+ */
59
+ protected $notifyHashName = 'gcHash';
60
+
61
+ /*
62
+ * The request url of the GiroCheckout API for this request.
63
+ */
64
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/transaction/refund";
65
+
66
+ /*
67
+ * If true the request method needs a notify page to receive the transactions result.
68
+ */
69
+ protected $hasNotifyURL = TRUE;
70
+
71
+ /*
72
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
73
+ */
74
+ protected $hasRedirectURL = TRUE;
75
+
76
+ /*
77
+ * The result code number of a successful transaction
78
+ */
79
+ protected $paymentSuccessfulCode = 4000;
80
+ }
lib/GiroCheckout_SDK/api/creditcard/GiroCheckout_SDK_CreditCardTransaction.php ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an credit card API call.
4
+ *
5
+ * @package GiroCheckout
6
+ */
7
+
8
+ class GiroCheckout_SDK_CreditCardTransaction extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
9
+
10
+ /*
11
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
12
+ * For further information use the API documentation.
13
+ */
14
+ protected $paramFields = array(
15
+ 'merchantId' => TRUE,
16
+ 'projectId' => TRUE,
17
+ 'merchantTxId' => TRUE,
18
+ 'amount' => TRUE,
19
+ 'currency' => TRUE,
20
+ 'purpose' => TRUE,
21
+ 'type' => FALSE,
22
+ 'locale' => FALSE,
23
+ 'mobile' => FALSE,
24
+ 'pkn' => FALSE,
25
+ 'recurring' => FALSE,
26
+ 'urlRedirect' => TRUE,
27
+ 'urlNotify' => TRUE,
28
+ );
29
+
30
+ /*
31
+ * Includes any response field parameter of the API.
32
+ */
33
+ protected $responseFields = array(
34
+ 'rc'=> TRUE,
35
+ 'msg' => TRUE,
36
+ 'reference' => FALSE,
37
+ 'redirect' => FALSE,
38
+ );
39
+
40
+ /*
41
+ * Includes any notify parameter of the API.
42
+ */
43
+ protected $notifyFields = array(
44
+ 'gcReference'=> TRUE,
45
+ 'gcMerchantTxId' => TRUE,
46
+ 'gcBackendTxId' => TRUE,
47
+ 'gcAmount' => TRUE,
48
+ 'gcCurrency' => TRUE,
49
+ 'gcResultPayment' => TRUE,
50
+ 'gcHash' => TRUE,
51
+ );
52
+
53
+ /*
54
+ * True if a hash is needed. It will be automatically added to the post data.
55
+ */
56
+ protected $needsHash = TRUE;
57
+
58
+ /*
59
+ * The field name in which the hash is sent to the notify or redirect page.
60
+ */
61
+ protected $notifyHashName = 'gcHash';
62
+
63
+ /*
64
+ * The request url of the GiroCheckout API for this request.
65
+ */
66
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/transaction/start";
67
+
68
+ /*
69
+ * If true the request method needs a notify page to receive the transactions result.
70
+ */
71
+ protected $hasNotifyURL = TRUE;
72
+
73
+ /*
74
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
75
+ */
76
+ protected $hasRedirectURL = TRUE;
77
+
78
+ /*
79
+ * The result code number of a successful transaction
80
+ */
81
+ protected $paymentSuccessfulCode = 4000;
82
+ }
lib/GiroCheckout_SDK/api/directdebit/GiroCheckout_SDK_DirectDebitCapture.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an direct debit API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 139 $ / $Date: 2016-04-27 16:25:30 -0300 (Mi, 27 Apr 2016) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_DirectDebitCapture extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
10
+
11
+ /*
12
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
13
+ * For further information use the API documentation.
14
+ */
15
+ protected $paramFields = array(
16
+ 'merchantId' => TRUE,
17
+ 'projectId' => TRUE,
18
+ 'merchantTxId' => TRUE,
19
+ 'amount' => TRUE,
20
+ 'currency' => TRUE,
21
+ 'reference' => TRUE
22
+ );
23
+
24
+
25
+ /*
26
+ * Includes any response field parameter of the API.
27
+ */
28
+ protected $responseFields = array(
29
+ 'rc'=> TRUE,
30
+ 'msg' => TRUE,
31
+ 'reference' => FALSE,
32
+ 'backendTxId' => FALSE,
33
+ 'mandateReference' => FALSE,
34
+ 'resultPayment' => FALSE
35
+ );
36
+
37
+ /*
38
+ * Includes any notify parameter of the API.
39
+ */
40
+ protected $notifyFields = array(
41
+ 'gcReference'=> TRUE,
42
+ 'gcMerchantTxId' => TRUE,
43
+ 'gcBackendTxId' => TRUE,
44
+ 'gcAmount' => TRUE,
45
+ 'gcCurrency' => TRUE,
46
+ 'gcResultPayment' => TRUE,
47
+ 'gcHash' => TRUE,
48
+ );
49
+
50
+ /*
51
+ * True if a hash is needed. It will be automatically added to the post data.
52
+ */
53
+ protected $needsHash = TRUE;
54
+
55
+ /*
56
+ * The field name in which the hash is sent to the notify or redirect page.
57
+ */
58
+ protected $notifyHashName = 'gcHash';
59
+
60
+ /*
61
+ * The request url of the GiroCheckout API for this request.
62
+ */
63
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/transaction/capture";
64
+
65
+ /*
66
+ * If true the request method needs a notify page to receive the transactions result.
67
+ */
68
+ protected $hasNotifyURL = TRUE;
69
+
70
+ /*
71
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
72
+ */
73
+ protected $hasRedirectURL = FALSE;
74
+
75
+ /*
76
+ * The result code number of a successful transaction
77
+ */
78
+ protected $paymentSuccessfulCode = 4000;
79
+ }
lib/GiroCheckout_SDK/api/directdebit/GiroCheckout_SDK_DirectDebitGetPKN.php ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an credit card API call.
4
+ *
5
+ * @package GiroCheckout
6
+ */
7
+
8
+ class GiroCheckout_SDK_DirectDebitGetPKN extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
9
+
10
+ /*
11
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
12
+ * For further information use the API documentation.
13
+ */
14
+ protected $paramFields = array(
15
+ 'merchantId' => TRUE,
16
+ 'projectId' => TRUE,
17
+ 'reference' => TRUE,
18
+ );
19
+
20
+ /*
21
+ * Includes any response field parameter of the API.
22
+ */
23
+ protected $responseFields = array(
24
+ 'rc'=> TRUE,
25
+ 'msg' => TRUE,
26
+ 'pkn' => FALSE,
27
+ 'holder' => FALSE,
28
+ 'bankcode' => FALSE,
29
+ 'bankaccount' => FALSE,
30
+ 'iban' => FALSE,
31
+ );
32
+
33
+ /*
34
+ * True if a hash is needed. It will be automatically added to the post data.
35
+ */
36
+ protected $needsHash = TRUE;
37
+
38
+ /*
39
+ * The request url of the GiroCheckout API for this request.
40
+ */
41
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/directdebit/pkninfo";
42
+
43
+ /*
44
+ * If true the request method needs a notify page to receive the transactions result.
45
+ */
46
+ protected $hasNotifyURL = FALSE;
47
+
48
+ /*
49
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
50
+ */
51
+ protected $hasRedirectURL = FALSE;
52
+ }
lib/GiroCheckout_SDK/api/directdebit/GiroCheckout_SDK_DirectDebitRefund.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an direct debit API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 139 $ / $Date: 2016-04-27 16:25:30 -0300 (Mi, 27 Apr 2016) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_DirectDebitRefund extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
10
+
11
+ /*
12
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
13
+ * For further information use the API documentation.
14
+ */
15
+ protected $paramFields = array(
16
+ 'merchantId' => TRUE,
17
+ 'projectId' => TRUE,
18
+ 'merchantTxId' => TRUE,
19
+ 'amount' => TRUE,
20
+ 'currency' => TRUE,
21
+ 'reference' => TRUE
22
+ );
23
+
24
+
25
+ /*
26
+ * Includes any response field parameter of the API.
27
+ */
28
+ protected $responseFields = array(
29
+ 'rc'=> TRUE,
30
+ 'msg' => TRUE,
31
+ 'reference' => FALSE,
32
+ 'backendTxId' => FALSE,
33
+ 'mandateReference' => FALSE,
34
+ 'resultPayment' => FALSE
35
+ );
36
+
37
+ /*
38
+ * Includes any notify parameter of the API.
39
+ */
40
+ protected $notifyFields = array(
41
+ 'gcReference'=> TRUE,
42
+ 'gcMerchantTxId' => TRUE,
43
+ 'gcBackendTxId' => TRUE,
44
+ 'gcAmount' => TRUE,
45
+ 'gcCurrency' => TRUE,
46
+ 'gcResultPayment' => TRUE,
47
+ 'gcHash' => TRUE,
48
+ );
49
+
50
+ /*
51
+ * True if a hash is needed. It will be automatically added to the post data.
52
+ */
53
+ protected $needsHash = TRUE;
54
+
55
+ /*
56
+ * The field name in which the hash is sent to the notify or redirect page.
57
+ */
58
+ protected $notifyHashName = 'gcHash';
59
+
60
+ /*
61
+ * The request url of the GiroCheckout API for this request.
62
+ */
63
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/transaction/refund";
64
+
65
+ /*
66
+ * If true the request method needs a notify page to receive the transactions result.
67
+ */
68
+ protected $hasNotifyURL = TRUE;
69
+
70
+ /*
71
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
72
+ */
73
+ protected $hasRedirectURL = FALSE;
74
+
75
+ /*
76
+ * The result code number of a successful transaction
77
+ */
78
+ protected $paymentSuccessfulCode = 4000;
79
+ }
lib/GiroCheckout_SDK/api/directdebit/GiroCheckout_SDK_DirectDebitTransaction.php ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an direct debit API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 139 $ / $Date: 2016-04-27 16:25:30 -0300 (Mi, 27 Apr 2016) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_DirectDebitTransaction extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
10
+
11
+ /*
12
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
13
+ * For further information use the API documentation.
14
+ */
15
+ protected $paramFields = array(
16
+ 'merchantId'=> TRUE,
17
+ 'projectId' => TRUE,
18
+ 'merchantTxId' => TRUE,
19
+ 'amount' => TRUE,
20
+ 'currency' => TRUE,
21
+ 'purpose' => TRUE,
22
+ 'type' => FALSE,
23
+ 'bankcode' => FALSE,
24
+ 'bankaccount' => FALSE,
25
+ 'iban' => FALSE,
26
+ 'accountHolder' => FALSE,
27
+ 'mandateReference' => FALSE,
28
+ 'mandateSignedOn' => FALSE,
29
+ 'mandateReceiverName' => FALSE,
30
+ 'mandateSequence' => FALSE,
31
+ 'pkn' => FALSE,
32
+ 'urlNotify' => FALSE,
33
+ );
34
+
35
+
36
+ /*
37
+ * Includes any response field parameter of the API.
38
+ */
39
+ protected $responseFields = array(
40
+ 'rc'=> TRUE,
41
+ 'msg' => TRUE,
42
+ 'reference' => FALSE,
43
+ 'backendTxId' => FALSE,
44
+ 'mandateReference' => FALSE,
45
+ 'resultPayment' => FALSE
46
+ );
47
+
48
+ /*
49
+ * Includes any notify parameter of the API.
50
+ */
51
+ protected $notifyFields = array(
52
+ 'gcReference'=> TRUE,
53
+ 'gcMerchantTxId' => TRUE,
54
+ 'gcBackendTxId' => TRUE,
55
+ 'gcAmount' => TRUE,
56
+ 'gcCurrency' => TRUE,
57
+ 'gcResultPayment' => TRUE,
58
+ 'gcHash' => TRUE,
59
+ );
60
+
61
+ /*
62
+ * True if a hash is needed. It will be automatically added to the post data.
63
+ */
64
+ protected $needsHash = TRUE;
65
+
66
+ /*
67
+ * The field name in which the hash is sent to the notify or redirect page.
68
+ */
69
+ protected $notifyHashName = 'gcHash';
70
+
71
+ /*
72
+ * The request url of the GiroCheckout API for this request.
73
+ */
74
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/transaction/payment";
75
+
76
+ /*
77
+ * If true the request method needs a notify page to receive the transactions result.
78
+ */
79
+ protected $hasNotifyURL = TRUE;
80
+
81
+ /*
82
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
83
+ */
84
+ protected $hasRedirectURL = FALSE;
85
+
86
+ /*
87
+ * The result code number of a successful transaction
88
+ */
89
+ protected $paymentSuccessfulCode = 4000;
90
+ }
lib/GiroCheckout_SDK/api/directdebit/GiroCheckout_SDK_DirectDebitTransactionWithPaymentPage.php ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an direct debit API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 139 $ / $Date: 2016-04-27 16:25:30 -0300 (Mi, 27 Apr 2016) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_DirectDebitTransactionWithPaymentPage extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
10
+
11
+ /*
12
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
13
+ * For further information use the API documentation.
14
+ */
15
+ protected $paramFields = array(
16
+ 'merchantId'=> TRUE,
17
+ 'projectId' => TRUE,
18
+ 'merchantTxId' => TRUE,
19
+ 'amount' => TRUE,
20
+ 'currency' => TRUE,
21
+ 'purpose' => TRUE,
22
+ 'type' => FALSE,
23
+ 'locale' => FALSE,
24
+ 'mobile' => FALSE,
25
+ 'mandateReference' => FALSE,
26
+ 'mandateSignedOn' => FALSE,
27
+ 'mandateReceiverName' => FALSE,
28
+ 'mandateSequence' => FALSE,
29
+ 'pkn' => FALSE,
30
+ 'urlRedirect' => TRUE,
31
+ 'urlNotify' => TRUE,
32
+ );
33
+
34
+
35
+ /*
36
+ * Includes any response field parameter of the API.
37
+ */
38
+ protected $responseFields = array(
39
+ 'rc'=> TRUE,
40
+ 'msg' => TRUE,
41
+ 'reference' => FALSE,
42
+ 'mandate' => FALSE,
43
+ 'redirect' => FALSE,
44
+ );
45
+
46
+ /*
47
+ * Includes any notify parameter of the API.
48
+ */
49
+ protected $notifyFields = array(
50
+ 'gcReference'=> TRUE,
51
+ 'gcMerchantTxId' => TRUE,
52
+ 'gcBackendTxId' => TRUE,
53
+ 'gcAmount' => TRUE,
54
+ 'gcCurrency' => TRUE,
55
+ 'gcResultPayment' => TRUE,
56
+ 'gcHash' => TRUE,
57
+ );
58
+
59
+ /*
60
+ * True if a hash is needed. It will be automatically added to the post data.
61
+ */
62
+ protected $needsHash = TRUE;
63
+
64
+ /*
65
+ * The field name in which the hash is sent to the notify or redirect page.
66
+ */
67
+ protected $notifyHashName = 'gcHash';
68
+
69
+ /*
70
+ * The request url of the GiroCheckout API for this request.
71
+ */
72
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/transaction/start";
73
+
74
+ /*
75
+ * If true the request method needs a notify page to receive the transactions result.
76
+ */
77
+ protected $hasNotifyURL = TRUE;
78
+
79
+ /*
80
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
81
+ */
82
+ protected $hasRedirectURL = TRUE;
83
+
84
+ /*
85
+ * The result code number of a successful transaction
86
+ */
87
+ protected $paymentSuccessfulCode = 4000;
88
+ }
lib/GiroCheckout_SDK/api/eps/GiroCheckout_SDK_EpsBankstatus.php ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an eps API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 24 $ / $Date: 2014-05-22 14:30:12 +0200 (Do, 22 Mai 2014) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_EpsBankstatus extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
10
+
11
+ /*
12
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
13
+ * For further information use the API documentation.
14
+ */
15
+ protected $paramFields = array(
16
+ 'merchantId'=> TRUE,
17
+ 'projectId' => TRUE,
18
+ 'bic' => TRUE,
19
+ );
20
+
21
+ /*
22
+ * Includes any response field parameter of the API.
23
+ */
24
+ protected $responseFields = array(
25
+ 'rc'=> TRUE,
26
+ 'msg' => TRUE,
27
+ 'bankname' => FALSE,
28
+ 'eps' => FALSE,
29
+ );
30
+
31
+ /*
32
+ * True if a hash is needed. It will be automatically added to the post data.
33
+ */
34
+ protected $needsHash = TRUE;
35
+
36
+ /*
37
+ * The field name in which the hash is sent to the notify or redirect page.
38
+ */
39
+ protected $notifyHashName = 'gcHash';
40
+
41
+ /*
42
+ * The request url of the GiroCheckout API for this request.
43
+ */
44
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/eps/bankstatus";
45
+
46
+ /*
47
+ * If true the request method needs a notify page to receive the transactions result.
48
+ */
49
+ protected $hasNotifyURL = FALSE;
50
+
51
+ /*
52
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
53
+ */
54
+ protected $hasRedirectURL = FALSE;
55
+
56
+ }
lib/GiroCheckout_SDK/api/eps/GiroCheckout_SDK_EpsIssuerList.php ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an iDEAL API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 24 $ / $Date: 2014-05-22 14:30:12 +0200 (Do, 22 Mai 2014) $
7
+ */
8
+ class GiroCheckout_SDK_EpsIssuerList extends GiroCheckout_SDK_AbstractApi{
9
+
10
+ /*
11
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
12
+ * For further information use the API documentation.
13
+ */
14
+ protected $paramFields = array( 'merchantId'=> TRUE,
15
+ 'projectId' => TRUE,
16
+ );
17
+
18
+ /*
19
+ * Includes any response field parameter of the API.
20
+ */
21
+ protected $responseFields = array('rc'=> TRUE,
22
+ 'msg' => TRUE,
23
+ 'issuer' => TRUE,
24
+ );
25
+
26
+ /*
27
+ * True if a hash is needed. It will be automatically added to the post data.
28
+ */
29
+ protected $needsHash = TRUE;
30
+
31
+ /*
32
+ * The field name in which the hash is sent to the notify or redirect page.
33
+ */
34
+ protected $notifyHashName = 'gcHash';
35
+
36
+ /*
37
+ * The request url of the GiroCheckout API for this request.
38
+ */
39
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/eps/issuer";
40
+
41
+ /*
42
+ * If true the request method needs a notify page to receive the transactions result.
43
+ */
44
+ protected $hasNotifyURL = FALSE;
45
+
46
+ /*
47
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
48
+ */
49
+ protected $hasRedirectURL = FALSE;
50
+ }
lib/GiroCheckout_SDK/api/eps/GiroCheckout_SDK_EpsTransaction.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an eps API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 24 $ / $Date: 2014-05-22 14:30:12 +0200 (Do, 22 Mai 2014) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_EpsTransaction extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
10
+
11
+ /*
12
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
13
+ * For further information use the API documentation.
14
+ */
15
+ protected $paramFields = array(
16
+ 'merchantId'=> TRUE,
17
+ 'projectId' => TRUE,
18
+ 'merchantTxId' => TRUE,
19
+ 'amount' => TRUE,
20
+ 'currency' => TRUE,
21
+ 'purpose' => TRUE,
22
+ 'bic' => FALSE,
23
+ 'urlRedirect' => TRUE,
24
+ 'urlNotify' => TRUE,
25
+ );
26
+
27
+ /*
28
+ * Includes any response field parameter of the API.
29
+ */
30
+ protected $responseFields = array(
31
+ 'rc'=> TRUE,
32
+ 'msg' => TRUE,
33
+ 'reference' => FALSE,
34
+ 'redirect' => FALSE,
35
+ );
36
+
37
+ /*
38
+ * Includes any notify parameter of the API.
39
+ */
40
+ protected $notifyFields = array(
41
+ 'gcReference'=> TRUE,
42
+ 'gcMerchantTxId' => TRUE,
43
+ 'gcBackendTxId' => TRUE,
44
+ 'gcAmount' => TRUE,
45
+ 'gcCurrency' => TRUE,
46
+ 'gcResultPayment' => TRUE,
47
+ 'gcHash' => TRUE,
48
+ );
49
+
50
+ /*
51
+ * True if a hash is needed. It will be automatically added to the post data.
52
+ */
53
+ protected $needsHash = TRUE;
54
+
55
+ /*
56
+ * The field name in which the hash is sent to the notify or redirect page.
57
+ */
58
+ protected $notifyHashName = 'gcHash';
59
+
60
+ /*
61
+ * The request url of the GiroCheckout API for this request.
62
+ */
63
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/transaction/start";
64
+
65
+ /*
66
+ * If true the request method needs a notify page to receive the transactions result.
67
+ */
68
+ protected $hasNotifyURL = TRUE;
69
+
70
+ /*
71
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
72
+ */
73
+ protected $hasRedirectURL = TRUE;
74
+
75
+ /*
76
+ * The result code number of a successful transaction
77
+ */
78
+ protected $paymentSuccessfulCode = 4000;
79
+ }
lib/GiroCheckout_SDK/api/girocode/GiroCheckout_SDK_GiroCodeCreateEpc.php ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an direct debit API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 46 $ / $Date: 2014-07-04 16:24:28 +0200 (Fr, 04 Jul 2014) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_GiroCodeCreateEpc extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
10
+
11
+ /*
12
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
13
+ * For further information use the API documentation.
14
+ */
15
+ protected $paramFields = array(
16
+ 'merchantId'=> TRUE,
17
+ 'projectId' => TRUE,
18
+ 'amount' => FALSE,
19
+ 'currency' => FALSE,
20
+ 'purposetext' => FALSE,
21
+ 'paymentreference' => FALSE,
22
+ 'purposecode' => FALSE,
23
+ 'infotext' => FALSE,
24
+ 'receivername' => FALSE,
25
+ 'receiveriban' => FALSE,
26
+ 'receiverbic' => FALSE,
27
+ 'format' => TRUE,
28
+ 'resolution' => FALSE,
29
+ );
30
+
31
+
32
+ /*
33
+ * Includes any response field parameter of the API.
34
+ */
35
+ protected $responseFields = array(
36
+ 'rc'=> TRUE,
37
+ 'msg' => TRUE,
38
+ 'girocodereference' => FALSE,
39
+ 'image' => FALSE,
40
+ );
41
+
42
+ /*
43
+ * True if a hash is needed. It will be automatically added to the post data.
44
+ */
45
+ protected $needsHash = TRUE;
46
+
47
+ /*
48
+ * The request url of the GiroCheckout API for this request.
49
+ */
50
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/girocode/createepc";
51
+
52
+ /*
53
+ * If true the request method needs a notify page to receive the transactions result.
54
+ */
55
+ protected $hasNotifyURL = FALSE;
56
+
57
+ /*
58
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
59
+ */
60
+ protected $hasRedirectURL = FALSE;
61
+ }
lib/GiroCheckout_SDK/api/girocode/GiroCheckout_SDK_GiroCodeCreatePayment.php ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an direct debit API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 46 $ / $Date: 2014-07-04 16:24:28 +0200 (Fr, 04 Jul 2014) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_GiroCodeCreatePayment extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
10
+
11
+ /*
12
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
13
+ * For further information use the API documentation.
14
+ */
15
+ protected $paramFields = array(
16
+ 'merchantId'=> TRUE,
17
+ 'projectId' => TRUE,
18
+ 'merchantTxId' => TRUE,
19
+ 'amount' => TRUE,
20
+ 'currency' => TRUE,
21
+ 'purposetext' => TRUE,
22
+ 'urlRedirect' => FALSE,
23
+ 'urlNotify' => FALSE,
24
+ 'format' => TRUE,
25
+ 'resolution' => FALSE,
26
+ );
27
+
28
+ /*
29
+ * Includes any response field parameter of the API.
30
+ */
31
+ protected $responseFields = array(
32
+ 'rc'=> TRUE,
33
+ 'msg' => TRUE,
34
+ 'girocodereference' => FALSE,
35
+ 'image' => FALSE,
36
+ 'url' => FALSE,
37
+ );
38
+
39
+ /*
40
+ * True if a hash is needed. It will be automatically added to the post data.
41
+ */
42
+ protected $needsHash = TRUE;
43
+
44
+ /*
45
+ * The request url of the GiroCheckout API for this request.
46
+ */
47
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/girocode/createpayment";
48
+
49
+ /*
50
+ * If true the request method needs a notify page to receive the transactions result.
51
+ */
52
+ protected $hasNotifyURL = TRUE;
53
+
54
+ /*
55
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
56
+ */
57
+ protected $hasRedirectURL = TRUE;
58
+
59
+ /*
60
+ * The result code number of a successful transaction
61
+ */
62
+ protected $paymentSuccessfulCode = 4000;
63
+ }
lib/GiroCheckout_SDK/api/girocode/GiroCheckout_SDK_GiroCodeGetEpc.php ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an direct debit API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 46 $ / $Date: 2014-07-04 16:24:28 +0200 (Fr, 04 Jul 2014) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_GiroCodeGetEpc extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
10
+
11
+ /*
12
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
13
+ * For further information use the API documentation.
14
+ */
15
+ protected $paramFields = array(
16
+ 'merchantId'=> TRUE,
17
+ 'projectId' => TRUE,
18
+ 'girocodereference' => TRUE,
19
+ 'format' => TRUE,
20
+ 'resolution' => TRUE,
21
+ );
22
+ /*
23
+ * Includes any response field parameter of the API.
24
+ */
25
+ protected $responseFields = array(
26
+ 'rc'=> TRUE,
27
+ 'msg' => TRUE,
28
+ 'girocodereference' => FALSE,
29
+ 'image' => FALSE,
30
+ 'url' => FALSE,
31
+ );
32
+
33
+ /*
34
+ * True if a hash is needed. It will be automatically added to the post data.
35
+ */
36
+ protected $needsHash = TRUE;
37
+
38
+ /*
39
+ * The request url of the GiroCheckout API for this request.
40
+ */
41
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/girocode/getepc";
42
+
43
+ /*
44
+ * If true the request method needs a notify page to receive the transactions result.
45
+ */
46
+ protected $hasNotifyURL = FALSE;
47
+
48
+ /*
49
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
50
+ */
51
+ protected $hasRedirectURL = FALSE;
52
+ }
lib/GiroCheckout_SDK/api/giropay/GiroCheckout_SDK_GiropayBankstatus.php ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an giropay API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 24 $ / $Date: 2014-05-22 08:30:12 -0400 (Do, 22 Mai 2014) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_GiropayBankstatus extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
10
+
11
+ /*
12
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
13
+ * For further information use the API documentation.
14
+ */
15
+ protected $paramFields = array(
16
+ 'merchantId'=> TRUE,
17
+ 'projectId' => TRUE,
18
+ 'bic' => TRUE,
19
+ );
20
+
21
+ /*
22
+ * Includes any response field parameter of the API.
23
+ */
24
+ protected $responseFields = array(
25
+ 'rc'=> TRUE,
26
+ 'msg' => TRUE,
27
+ 'bankcode' => FALSE,
28
+ 'bic' => FALSE,
29
+ 'bankname' => FALSE,
30
+ 'giropay' => FALSE,
31
+ 'giropayid' => FALSE,
32
+ );
33
+
34
+ /*
35
+ * True if a hash is needed. It will be automatically added to the post data.
36
+ */
37
+ protected $needsHash = TRUE;
38
+
39
+ /*
40
+ * The field name in which the hash is sent to the notify or redirect page.
41
+ */
42
+ protected $notifyHashName = 'gcHash';
43
+
44
+ /*
45
+ * The request url of the GiroCheckout API for this request.
46
+ */
47
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/giropay/bankstatus";
48
+
49
+ /*
50
+ * If true the request method needs a notify page to receive the transactions result.
51
+ */
52
+ protected $hasNotifyURL = FALSE;
53
+
54
+ /*
55
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
56
+ */
57
+ protected $hasRedirectURL = FALSE;
58
+
59
+ }
lib/GiroCheckout_SDK/api/giropay/GiroCheckout_SDK_GiropayIDCheck.php ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an giropay API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 111 $ / $Date: 2015-06-19 07:49:36 -0300 (Fr, 19 Jun 2015) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_GiropayIDCheck extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
10
+
11
+ /*
12
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
13
+ * For further information use the API documentation.
14
+ */
15
+ protected $paramFields = array(
16
+ 'merchantId'=> TRUE,
17
+ 'projectId' => TRUE,
18
+ 'merchantTxId' => TRUE,
19
+ 'bic' => TRUE,
20
+ 'iban' => FALSE,
21
+ 'info1Label' => FALSE,
22
+ 'info1Text' => FALSE,
23
+ 'info2Label' => FALSE,
24
+ 'info2Text' => FALSE,
25
+ 'info3Label' => FALSE,
26
+ 'info3Text' => FALSE,
27
+ 'info4Label' => FALSE,
28
+ 'info4Text' => FALSE,
29
+ 'info5Label' => FALSE,
30
+ 'info5Text' => FALSE,
31
+ 'urlRedirect' => TRUE,
32
+ 'urlNotify' => TRUE,
33
+ );
34
+
35
+ /*
36
+ * Includes any response field parameter of the API.
37
+ */
38
+ protected $responseFields = array(
39
+ 'rc'=> TRUE,
40
+ 'msg' => TRUE,
41
+ 'reference' => FALSE,
42
+ 'redirect' => FALSE,
43
+ );
44
+
45
+ /*
46
+ * Includes any notify parameter of the API.
47
+ */
48
+ protected $notifyFields = array(
49
+ 'gcReference'=> TRUE,
50
+ 'gcMerchantTxId' => TRUE,
51
+ 'gcBackendTxId' => TRUE,
52
+ 'gcResultAVS' => TRUE,
53
+ 'gcObvName' => FALSE,
54
+ 'gcHash' => TRUE,
55
+ );
56
+
57
+ /*
58
+ * True if a hash is needed. It will be automatically added to the post data.
59
+ */
60
+ protected $needsHash = TRUE;
61
+
62
+ /*
63
+ * The field name in which the hash is sent to the notify or redirect page.
64
+ */
65
+ protected $notifyHashName = 'gcHash';
66
+
67
+ /*
68
+ * The request url of the GiroCheckout API for this request.
69
+ */
70
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/transaction/start";
71
+
72
+ /*
73
+ * If true the request method needs a notify page to receive the transactions result.
74
+ */
75
+ protected $hasNotifyURL = TRUE;
76
+
77
+ /*
78
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
79
+ */
80
+ protected $hasRedirectURL = TRUE;
81
+
82
+ /*
83
+ * The result code number of a successful avs check
84
+ */
85
+ protected $avsSuccessfulCode = 4020;
86
+ }
lib/GiroCheckout_SDK/api/giropay/GiroCheckout_SDK_GiropayIssuerList.php ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an iDEAL API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 24 $ / $Date: 2014-05-22 14:30:12 +0200 (Do, 22 Mai 2014) $
7
+ */
8
+ class GiroCheckout_SDK_GiropayIssuerList extends GiroCheckout_SDK_AbstractApi{
9
+
10
+ /*
11
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
12
+ * For further information use the API documentation.
13
+ */
14
+ protected $paramFields = array( 'merchantId'=> TRUE,
15
+ 'projectId' => TRUE,
16
+ );
17
+
18
+ /*
19
+ * Includes any response field parameter of the API.
20
+ */
21
+ protected $responseFields = array('rc'=> TRUE,
22
+ 'msg' => TRUE,
23
+ 'issuer' => TRUE,
24
+ );
25
+
26
+ /*
27
+ * True if a hash is needed. It will be automatically added to the post data.
28
+ */
29
+ protected $needsHash = TRUE;
30
+
31
+ /*
32
+ * The field name in which the hash is sent to the notify or redirect page.
33
+ */
34
+ protected $notifyHashName = 'gcHash';
35
+
36
+ /*
37
+ * The request url of the GiroCheckout API for this request.
38
+ */
39
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/giropay/issuer";
40
+
41
+ /*
42
+ * If true the request method needs a notify page to receive the transactions result.
43
+ */
44
+ protected $hasNotifyURL = FALSE;
45
+
46
+ /*
47
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
48
+ */
49
+ protected $hasRedirectURL = FALSE;
50
+ }
lib/GiroCheckout_SDK/api/giropay/GiroCheckout_SDK_GiropayTransaction.php ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an giropay API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 146 $ / $Date: 2016-05-11 16:47:29 -0300 (Mi, 11 Mai 2016) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_GiropayTransaction extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
10
+
11
+ /*
12
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
13
+ * For further information use the API documentation.
14
+ */
15
+ protected $paramFields = array(
16
+ 'merchantId'=> TRUE,
17
+ 'projectId' => TRUE,
18
+ 'merchantTxId' => TRUE,
19
+ 'amount' => TRUE,
20
+ 'currency' => TRUE,
21
+ 'purpose' => TRUE,
22
+ 'bic' => FALSE,
23
+ 'iban' => FALSE,
24
+ 'info1Label' => FALSE,
25
+ 'info1Text' => FALSE,
26
+ 'info2Label' => FALSE,
27
+ 'info2Text' => FALSE,
28
+ 'info3Label' => FALSE,
29
+ 'info3Text' => FALSE,
30
+ 'info4Label' => FALSE,
31
+ 'info4Text' => FALSE,
32
+ 'info5Label' => FALSE,
33
+ 'info5Text' => FALSE,
34
+ 'urlRedirect' => TRUE,
35
+ 'urlNotify' => TRUE,
36
+ );
37
+
38
+ /*
39
+ * Includes any response field parameter of the API.
40
+ */
41
+ protected $responseFields = array(
42
+ 'rc'=> TRUE,
43
+ 'msg' => TRUE,
44
+ 'reference' => FALSE,
45
+ 'redirect' => FALSE,
46
+ );
47
+
48
+ /*
49
+ * Includes any notify parameter of the API.
50
+ */
51
+ protected $notifyFields = array(
52
+ 'gcReference'=> TRUE,
53
+ 'gcMerchantTxId' => TRUE,
54
+ 'gcBackendTxId' => TRUE,
55
+ 'gcAmount' => TRUE,
56
+ 'gcCurrency' => TRUE,
57
+ 'gcResultPayment' => TRUE,
58
+ 'gcResultAVS' => FALSE,
59
+ 'gcHash' => TRUE,
60
+ );
61
+
62
+ /*
63
+ * True if a hash is needed. It will be automatically added to the post data.
64
+ */
65
+ protected $needsHash = TRUE;
66
+
67
+ /*
68
+ * The field name in which the hash is sent to the notify or redirect page.
69
+ */
70
+ protected $notifyHashName = 'gcHash';
71
+
72
+ /*
73
+ * The request url of the GiroCheckout API for this request.
74
+ */
75
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/transaction/start";
76
+
77
+ /*
78
+ * If true the request method needs a notify page to receive the transactions result.
79
+ */
80
+ protected $hasNotifyURL = TRUE;
81
+
82
+ /*
83
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
84
+ */
85
+ protected $hasRedirectURL = TRUE;
86
+
87
+ /*
88
+ * The result code number of a successful transaction
89
+ */
90
+ protected $paymentSuccessfulCode = 4000;
91
+ }
lib/GiroCheckout_SDK/api/giropay/GiroCheckout_SDK_GiropayTransactionWithGiropayID.php ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an giropay API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 136 $ / $Date: 2016-04-25 18:54:50 -0300 (Mo, 25 Apr 2016) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_GiropayTransactionWithGiropayID extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
10
+
11
+ /*
12
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
13
+ * For further information use the API documentation.
14
+ */
15
+ protected $paramFields = array(
16
+ 'merchantId'=> TRUE,
17
+ 'projectId' => TRUE,
18
+ 'merchantTxId' => TRUE,
19
+ 'amount' => TRUE,
20
+ 'currency' => TRUE,
21
+ 'purpose' => TRUE,
22
+ 'bic' => FALSE,
23
+ 'iban' => FALSE,
24
+ 'info1Label' => FALSE,
25
+ 'info1Text' => FALSE,
26
+ 'info2Label' => FALSE,
27
+ 'info2Text' => FALSE,
28
+ 'info3Label' => FALSE,
29
+ 'info3Text' => FALSE,
30
+ 'info4Label' => FALSE,
31
+ 'info4Text' => FALSE,
32
+ 'info5Label' => FALSE,
33
+ 'info5Text' => FALSE,
34
+ 'urlRedirect' => TRUE,
35
+ 'urlNotify' => TRUE,
36
+ );
37
+
38
+ /*
39
+ * Includes any response field parameter of the API.
40
+ */
41
+ protected $responseFields = array(
42
+ 'rc'=> TRUE,
43
+ 'msg' => TRUE,
44
+ 'reference' => FALSE,
45
+ 'redirect' => FALSE,
46
+ );
47
+
48
+ /*
49
+ * Includes any notify parameter of the API.
50
+ */
51
+ protected $notifyFields = array(
52
+ 'gcReference'=> TRUE,
53
+ 'gcMerchantTxId' => TRUE,
54
+ 'gcBackendTxId' => TRUE,
55
+ 'gcAmount' => TRUE,
56
+ 'gcCurrency' => TRUE,
57
+ 'gcResultPayment' => TRUE,
58
+ 'gcResultAVS' => TRUE,
59
+ 'gcHash' => TRUE,
60
+ );
61
+
62
+ /*
63
+ * True if a hash is needed. It will be automatically added to the post data.
64
+ */
65
+ protected $needsHash = TRUE;
66
+
67
+ /*
68
+ * The field name in which the hash is sent to the notify or redirect page.
69
+ */
70
+ protected $notifyHashName = 'gcHash';
71
+
72
+ /*
73
+ * The request url of the GiroCheckout API for this request.
74
+ */
75
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/transaction/start";
76
+
77
+ /*
78
+ * If true the request method needs a notify page to receive the transactions result.
79
+ */
80
+ protected $hasNotifyURL = TRUE;
81
+
82
+ /*
83
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
84
+ */
85
+ protected $hasRedirectURL = TRUE;
86
+
87
+ /*
88
+ * The result code number of a successful transaction
89
+ */
90
+ protected $paymentSuccessfulCode = 4000;
91
+
92
+ /*
93
+ * The result code number of a successful avs check
94
+ */
95
+ protected $avsSuccessfulCode = 4020;
96
+ }
lib/GiroCheckout_SDK/api/ideal/GiroCheckout_SDK_IdealIssuerList.php ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an iDEAL API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 24 $ / $Date: 2014-05-22 08:30:12 -0400 (Do, 22 Mai 2014) $
7
+ */
8
+ class GiroCheckout_SDK_IdealIssuerList extends GiroCheckout_SDK_AbstractApi{
9
+
10
+ /*
11
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
12
+ * For further information use the API documentation.
13
+ */
14
+ protected $paramFields = array( 'merchantId'=> TRUE,
15
+ 'projectId' => TRUE,
16
+ );
17
+
18
+ /*
19
+ * Includes any response field parameter of the API.
20
+ */
21
+ protected $responseFields = array('rc'=> TRUE,
22
+ 'msg' => TRUE,
23
+ 'issuer' => TRUE,
24
+ );
25
+
26
+ /*
27
+ * True if a hash is needed. It will be automatically added to the post data.
28
+ */
29
+ protected $needsHash = TRUE;
30
+
31
+ /*
32
+ * The field name in which the hash is sent to the notify or redirect page.
33
+ */
34
+ protected $notifyHashName = 'gcHash';
35
+
36
+ /*
37
+ * The request url of the GiroCheckout API for this request.
38
+ */
39
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/ideal/issuer";
40
+
41
+ /*
42
+ * If true the request method needs a notify page to receive the transactions result.
43
+ */
44
+ protected $hasNotifyURL = FALSE;
45
+
46
+ /*
47
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
48
+ */
49
+ protected $hasRedirectURL = FALSE;
50
+ }
lib/GiroCheckout_SDK/api/ideal/GiroCheckout_SDK_IdealPayment.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an iDEAL API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 24 $ / $Date: 2014-05-22 08:30:12 -0400 (Do, 22 Mai 2014) $
7
+ */
8
+ class GiroCheckout_SDK_IdealPayment extends GiroCheckout_SDK_AbstractApi{
9
+
10
+ /*
11
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
12
+ * For further information use the API documentation.
13
+ */
14
+ protected $paramFields = array( 'merchantId'=> TRUE,
15
+ 'projectId' => TRUE,
16
+ 'merchantTxId' => TRUE,
17
+ 'amount' => TRUE,
18
+ 'currency' => TRUE,
19
+ 'purpose' => TRUE,
20
+ 'issuer' => TRUE,
21
+ 'urlRedirect' => TRUE,
22
+ 'urlNotify' => TRUE,
23
+ );
24
+
25
+ /*
26
+ * Includes any response field parameter of the API.
27
+ */
28
+ protected $responseFields = array('rc'=> TRUE,
29
+ 'msg' => TRUE,
30
+ 'reference' => FALSE,
31
+ 'redirect' => FALSE,
32
+ );
33
+
34
+
35
+ /*
36
+ * Includes any notify parameter of the API.
37
+ */
38
+ protected $notifyFields = array(
39
+ 'gcReference'=> TRUE,
40
+ 'gcMerchantTxId' => TRUE,
41
+ 'gcBackendTxId' => TRUE,
42
+ 'gcAmount' => TRUE,
43
+ 'gcCurrency' => TRUE,
44
+ 'gcResultPayment' => TRUE,
45
+ 'gcHash' => TRUE,
46
+ );
47
+
48
+
49
+
50
+ /*
51
+ * True if a hash is needed. It will be automatically added to the post data.
52
+ */
53
+ protected $needsHash = TRUE;
54
+
55
+ /*
56
+ * The field name in which the hash is sent to the notify or redirect page.
57
+ */
58
+ protected $notifyHashName = 'gcHash';
59
+
60
+ /*
61
+ * The request url of the GiroCheckout API for this request.
62
+ */
63
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/transaction/start";
64
+
65
+ /*
66
+ * If true the request method needs a notify page to receive the transactions result.
67
+ */
68
+ protected $hasNotifyURL = TRUE;
69
+
70
+ /*
71
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
72
+ */
73
+ protected $hasRedirectURL = TRUE;
74
+
75
+ /*
76
+ * The result code number of a successful transaction
77
+ */
78
+ protected $paymentSuccessfulCode = 4000;
79
+ }
lib/GiroCheckout_SDK/api/ideal/GiroCheckout_SDK_IdealPaymentRefund.php ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an iDEAL API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 138 $ / $Date: 2016-04-27 12:23:07 -0300 (Mi, 27 Apr 2016) $
7
+ */
8
+ class GiroCheckout_SDK_IdealPaymentRefund extends GiroCheckout_SDK_AbstractApi{
9
+
10
+ /*
11
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
12
+ * For further information use the API documentation.
13
+ */
14
+ protected $paramFields = array(
15
+ 'merchantId' => TRUE,
16
+ 'projectId' => TRUE,
17
+ 'merchantTxId' => TRUE,
18
+ 'amount' => TRUE,
19
+ 'currency' => TRUE,
20
+ 'reference' => TRUE,
21
+ );
22
+
23
+ /*
24
+ * Includes any response field parameter of the API.
25
+ */
26
+ protected $responseFields = array(
27
+ 'rc'=> TRUE,
28
+ 'msg' => TRUE,
29
+ 'reference' => FALSE,
30
+ 'redirect' => FALSE,
31
+ );
32
+
33
+
34
+ /*
35
+ * Includes any notify parameter of the API.
36
+ */
37
+ protected $notifyFields = array(
38
+ 'gcReference'=> TRUE,
39
+ 'gcMerchantTxId' => TRUE,
40
+ 'gcBackendTxId' => TRUE,
41
+ 'gcAmount' => TRUE,
42
+ 'gcCurrency' => TRUE,
43
+ 'gcResultPayment' => TRUE,
44
+ 'gcHash' => TRUE,
45
+ );
46
+
47
+
48
+
49
+ /*
50
+ * True if a hash is needed. It will be automatically added to the post data.
51
+ */
52
+ protected $needsHash = TRUE;
53
+
54
+ /*
55
+ * The field name in which the hash is sent to the notify or redirect page.
56
+ */
57
+ protected $notifyHashName = 'gcHash';
58
+
59
+ /*
60
+ * The request url of the GiroCheckout API for this request.
61
+ */
62
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/transaction/refund";
63
+
64
+ /*
65
+ * If true the request method needs a notify page to receive the transactions result.
66
+ */
67
+ protected $hasNotifyURL = TRUE;
68
+
69
+ /*
70
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
71
+ */
72
+ protected $hasRedirectURL = TRUE;
73
+
74
+ /*
75
+ * The result code number of a successful transaction
76
+ */
77
+ protected $paymentSuccessfulCode = 4000;
78
+ }
lib/GiroCheckout_SDK/api/paydirekt/GiroCheckout_SDK_PaydirektCapture.php ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an Paydirekt API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 24 $ / $Date: 2014-05-22 14:30:12 +0200 (Do, 22 Mai 2014) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_PaydirektCapture extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
10
+
11
+ /*
12
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
13
+ * For further information use the API documentation.
14
+ */
15
+ protected $paramFields = array(
16
+ 'merchantId'=> TRUE,
17
+ 'projectId' => TRUE,
18
+ 'merchantTxId' => TRUE,
19
+ 'amount' => TRUE,
20
+ 'currency' => TRUE,
21
+ 'purpose' => TRUE,
22
+ 'reference' => TRUE,
23
+ 'final' => FALSE
24
+ );
25
+
26
+ /*
27
+ * Includes any response field parameter of the API.
28
+ */
29
+ protected $responseFields = array(
30
+ 'rc'=> TRUE,
31
+ 'msg' => TRUE,
32
+ 'reference' => TRUE
33
+ );
34
+
35
+ /*
36
+ * Includes any notify parameter of the API.
37
+ */
38
+ protected $notifyFields = array(
39
+ 'gcReference'=> TRUE,
40
+ 'gcMerchantTxId' => TRUE,
41
+ 'gcBackendTxId' => TRUE,
42
+ 'gcAmount' => TRUE,
43
+ 'gcCurrency' => TRUE,
44
+ 'gcResultPayment' => TRUE,
45
+ 'gcHash' => TRUE,
46
+ );
47
+
48
+ /*
49
+ * True if a hash is needed. It will be automatically added to the post data.
50
+ */
51
+ protected $needsHash = TRUE;
52
+
53
+ /*
54
+ * The field name in which the hash is sent to the notify or redirect page.
55
+ */
56
+ protected $notifyHashName = 'gcHash';
57
+
58
+ /*
59
+ * The request url of the GiroCheckout API for this request.
60
+ */
61
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/transaction/capture";
62
+
63
+ /*
64
+ * If true the request method needs a notify page to receive the transactions result.
65
+ */
66
+ protected $hasNotifyURL = TRUE;
67
+
68
+ /*
69
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
70
+ */
71
+ protected $hasRedirectURL = TRUE;
72
+
73
+ /*
74
+ * The result code number of a successful transaction
75
+ */
76
+ protected $paymentSuccessfulCode = 4000;
77
+ }
lib/GiroCheckout_SDK/api/paydirekt/GiroCheckout_SDK_PaydirektRefund.php ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an Paydirekt API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 24 $ / $Date: 2014-05-22 14:30:12 +0200 (Do, 22 Mai 2014) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_PaydirektRefund extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
10
+
11
+ /*
12
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
13
+ * For further information use the API documentation.
14
+ */
15
+ protected $paramFields = array(
16
+ 'merchantId'=> TRUE,
17
+ 'projectId' => TRUE,
18
+ 'merchantTxId' => TRUE,
19
+ 'amount' => TRUE,
20
+ 'currency' => TRUE,
21
+ 'purpose' => TRUE,
22
+ 'reference' => TRUE
23
+ );
24
+
25
+ /*
26
+ * Includes any response field parameter of the API.
27
+ */
28
+ protected $responseFields = array(
29
+ 'rc'=> TRUE,
30
+ 'msg' => TRUE,
31
+ 'reference' => TRUE
32
+ );
33
+
34
+ /*
35
+ * Includes any notify parameter of the API.
36
+ */
37
+ protected $notifyFields = array(
38
+ 'gcReference'=> TRUE,
39
+ 'gcMerchantTxId' => TRUE,
40
+ 'gcBackendTxId' => TRUE,
41
+ 'gcAmount' => TRUE,
42
+ 'gcCurrency' => TRUE,
43
+ 'gcResultPayment' => TRUE,
44
+ 'gcHash' => TRUE,
45
+ );
46
+
47
+ /*
48
+ * True if a hash is needed. It will be automatically added to the post data.
49
+ */
50
+ protected $needsHash = TRUE;
51
+
52
+ /*
53
+ * The field name in which the hash is sent to the notify or redirect page.
54
+ */
55
+ protected $notifyHashName = 'gcHash';
56
+
57
+ /*
58
+ * The request url of the GiroCheckout API for this request.
59
+ */
60
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/transaction/refund";
61
+
62
+ /*
63
+ * If true the request method needs a notify page to receive the transactions result.
64
+ */
65
+ protected $hasNotifyURL = TRUE;
66
+
67
+ /*
68
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
69
+ */
70
+ protected $hasRedirectURL = TRUE;
71
+
72
+ /*
73
+ * The result code number of a successful transaction
74
+ */
75
+ protected $paymentSuccessfulCode = 4000;
76
+ }
lib/GiroCheckout_SDK/api/paydirekt/GiroCheckout_SDK_PaydirektTransaction.php ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an Paydirekt API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 24 $ / $Date: 2014-05-22 14:30:12 +0200 (Do, 22 Mai 2014) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_PaydirektTransaction extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
10
+
11
+ /*
12
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
13
+ * For further information use the API documentation.
14
+ */
15
+ protected $paramFields = array(
16
+ 'merchantId'=> TRUE,
17
+ 'projectId' => TRUE,
18
+ 'merchantTxId' => TRUE,
19
+ 'amount' => TRUE,
20
+ 'currency' => TRUE,
21
+ 'purpose' => TRUE,
22
+ 'type' => FALSE,
23
+ 'customerId' => FALSE,
24
+ 'shippingAmount' => TRUE,
25
+ 'shippingAddresseFirstName' => TRUE,
26
+ 'shippingAddresseLastName' => TRUE,
27
+ 'shippingCompany' => FALSE,
28
+ 'shippingAdditionalAddressInformation' => FALSE,
29
+ 'shippingStreet' => FALSE,
30
+ 'shippingStreetNumber' => FALSE,
31
+ 'shippingZipCode' => TRUE,
32
+ 'shippingCity' => TRUE,
33
+ 'shippingCountry' => TRUE,
34
+ 'orderAmount' => TRUE,
35
+ 'orderId' => TRUE,
36
+ 'cart' => FALSE,
37
+ 'invoiceId' => FALSE,
38
+ 'customerMail' => FALSE,
39
+ 'minimumAge' => FALSE,
40
+ 'urlRedirect' => TRUE,
41
+ 'urlNotify' => TRUE,
42
+ );
43
+
44
+ /*
45
+ * Includes any response field parameter of the API.
46
+ */
47
+ protected $responseFields = array(
48
+ 'rc'=> TRUE,
49
+ 'msg' => TRUE,
50
+ 'reference' => FALSE,
51
+ 'redirect' => FALSE,
52
+ );
53
+
54
+ /*
55
+ * Includes any notify parameter of the API.
56
+ */
57
+ protected $notifyFields = array(
58
+ 'gcReference'=> TRUE,
59
+ 'gcMerchantTxId' => TRUE,
60
+ 'gcBackendTxId' => TRUE,
61
+ 'gcAmount' => TRUE,
62
+ 'gcCurrency' => TRUE,
63
+ 'gcResultPayment' => TRUE,
64
+ 'gcHash' => TRUE,
65
+ );
66
+
67
+ /*
68
+ * True if a hash is needed. It will be automatically added to the post data.
69
+ */
70
+ protected $needsHash = TRUE;
71
+
72
+ /*
73
+ * The field name in which the hash is sent to the notify or redirect page.
74
+ */
75
+ protected $notifyHashName = 'gcHash';
76
+
77
+ /*
78
+ * The request url of the GiroCheckout API for this request.
79
+ */
80
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/transaction/start";
81
+
82
+ /*
83
+ * If true the request method needs a notify page to receive the transactions result.
84
+ */
85
+ protected $hasNotifyURL = TRUE;
86
+
87
+ /*
88
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
89
+ */
90
+ protected $hasRedirectURL = TRUE;
91
+
92
+ /*
93
+ * The result code number of a successful transaction
94
+ */
95
+ protected $paymentSuccessfulCode = 4000;
96
+ }
lib/GiroCheckout_SDK/api/paypal/GiroCheckout_SDK_PaypalTransaction.php ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an PayPal API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 24 $ / $Date: 2014-05-22 08:30:12 -0400 (Do, 22 Mai 2014) $
7
+ */
8
+ class GiroCheckout_SDK_PaypalTransaction extends GiroCheckout_SDK_AbstractApi{
9
+
10
+ /*
11
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
12
+ * For further information use the API documentation.
13
+ */
14
+ protected $paramFields = array( 'merchantId'=> TRUE,
15
+ 'projectId' => TRUE,
16
+ 'merchantTxId' => TRUE,
17
+ 'amount' => TRUE,
18
+ 'currency' => TRUE,
19
+ 'purpose' => TRUE,
20
+ 'urlRedirect' => TRUE,
21
+ 'urlNotify' => TRUE,
22
+ );
23
+
24
+ /*
25
+ * Includes any response field parameter of the API.
26
+ */
27
+ protected $responseFields = array('rc'=> TRUE,
28
+ 'msg' => TRUE,
29
+ 'reference' => FALSE,
30
+ 'redirect' => FALSE,
31
+ );
32
+
33
+
34
+ /*
35
+ * Includes any notify parameter of the API.
36
+ */
37
+ protected $notifyFields = array(
38
+ 'gcReference'=> TRUE,
39
+ 'gcMerchantTxId' => TRUE,
40
+ 'gcBackendTxId' => TRUE,
41
+ 'gcAmount' => TRUE,
42
+ 'gcCurrency' => TRUE,
43
+ 'gcResultPayment' => TRUE,
44
+ 'gcHash' => TRUE,
45
+ );
46
+
47
+
48
+
49
+ /*
50
+ * True if a hash is needed. It will be automatically added to the post data.
51
+ */
52
+ protected $needsHash = TRUE;
53
+
54
+ /*
55
+ * The field name in which the hash is sent to the notify or redirect page.
56
+ */
57
+ protected $notifyHashName = 'gcHash';
58
+
59
+ /*
60
+ * The request url of the GiroCheckout API for this request.
61
+ */
62
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/transaction/start";
63
+
64
+ /*
65
+ * If true the request method needs a notify page to receive the transactions result.
66
+ */
67
+ protected $hasNotifyURL = TRUE;
68
+
69
+ /*
70
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
71
+ */
72
+ protected $hasRedirectURL = TRUE;
73
+
74
+ /*
75
+ * The result code number of a successful transaction
76
+ */
77
+ protected $paymentSuccessfulCode = 4000;
78
+ }
lib/GiroCheckout_SDK/api/sofortuw/GiroCheckout_SDK_SofortUwTransaction.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for a Sofortuw API call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 24 $ / $Date: 2014-05-22 14:30:12 +0200 (Do, 22 Mai 2014) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_SofortUwTransaction extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
10
+
11
+ /*
12
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
13
+ * For further information use the API documentation.
14
+ */
15
+ protected $paramFields = array(
16
+ 'merchantId' => TRUE,
17
+ 'projectId' => TRUE,
18
+ 'merchantTxId' => TRUE,
19
+ 'amount' => TRUE,
20
+ 'currency' => TRUE,
21
+ 'purpose' => TRUE,
22
+ 'urlRedirect' => TRUE,
23
+ 'urlNotify' => TRUE,
24
+ );
25
+
26
+ /*
27
+ * Includes any response field parameter of the API.
28
+ */
29
+ protected $responseFields = array(
30
+ 'rc'=> TRUE,
31
+ 'msg' => TRUE,
32
+ 'reference' => FALSE,
33
+ 'redirect' => FALSE,
34
+ );
35
+
36
+ /*
37
+ * Includes any notify parameter of the API.
38
+ */
39
+ protected $notifyFields = array(
40
+ 'gcReference'=> TRUE,
41
+ 'gcMerchantTxId' => TRUE,
42
+ 'gcBackendTxId' => TRUE,
43
+ 'gcAmount' => TRUE,
44
+ 'gcCurrency' => TRUE,
45
+ 'gcResultPayment' => TRUE,
46
+ 'gcHash' => TRUE,
47
+ );
48
+
49
+ /*
50
+ * True if a hash is needed. It will be automatically added to the post data.
51
+ */
52
+ protected $needsHash = TRUE;
53
+
54
+ /*
55
+ * The field name in which the hash is sent to the notify or redirect page.
56
+ */
57
+ protected $notifyHashName = 'gcHash';
58
+
59
+ /*
60
+ * The request url of the GiroCheckout API for this request.
61
+ */
62
+ //protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/transaction/start";
63
+ protected $requestURL = "https://dev.girosolution.de/girocheckout/api/v2/transaction/start";
64
+
65
+ /*
66
+ * If true the request method needs a notify page to receive the transactions result.
67
+ */
68
+ protected $hasNotifyURL = TRUE;
69
+
70
+ /*
71
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
72
+ */
73
+ protected $hasRedirectURL = TRUE;
74
+
75
+ /*
76
+ * The result code number of a successful transaction
77
+ */
78
+ protected $paymentSuccessfulCode = 4000;
79
+ }
lib/GiroCheckout_SDK/api/tools/GiroCheckout_SDK_Tools_GetTransaction.php ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides configuration for an get transaction call.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 111 $ / $Date: 2015-06-19 07:49:36 -0300 (Fr, 19 Jun 2015) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_Tools_GetTransaction extends GiroCheckout_SDK_AbstractApi implements GiroCheckout_SDK_InterfaceApi {
10
+
11
+ /*
12
+ * Includes any parameter field of the API call. True parameter are mandatory, false parameter are optional.
13
+ * For further information use the API documentation.
14
+ */
15
+ protected $paramFields = array(
16
+ 'merchantId'=> TRUE,
17
+ 'projectId' => TRUE,
18
+ 'reference' => TRUE,
19
+ );
20
+
21
+
22
+ /*
23
+ * Includes any response field parameter of the API.
24
+ */
25
+ protected $responseFields = array(
26
+ 'rc'=> TRUE,
27
+ 'msg' => TRUE,
28
+ 'reference' => FALSE,
29
+ 'merchantTxId' => FALSE,
30
+ 'backendTxId' => FALSE,
31
+ 'amount' => FALSE,
32
+ 'currency' => FALSE,
33
+ 'resultPayment' => FALSE,
34
+ 'resultAVS' => FALSE,
35
+ 'obvName' => FALSE,
36
+ );
37
+
38
+ /*
39
+ * True if a hash is needed. It will be automatically added to the post data.
40
+ */
41
+ protected $needsHash = TRUE;
42
+
43
+ /*
44
+ * The request url of the GiroCheckout API for this request.
45
+ */
46
+ protected $requestURL = "https://payment.girosolution.de/girocheckout/api/v2/transaction/status";
47
+
48
+ /*
49
+ * If true the request method needs a notify page to receive the transactions result.
50
+ */
51
+ protected $hasNotifyURL = FALSE;
52
+
53
+ /*
54
+ * If true the request method needs a redirect page where the customer is sent back to the merchant.
55
+ */
56
+ protected $hasRedirectURL = FALSE;
57
+
58
+ /*
59
+ * The result code number of a successful transaction
60
+ */
61
+ protected $paymentSuccessfulCode = 4000;
62
+
63
+ /*
64
+ * The result code number of a successful avs check
65
+ */
66
+ protected $avsSuccessfulCode = 4020;
67
+ }
lib/GiroCheckout_SDK/cacert.pem ADDED
@@ -0,0 +1,3866 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ##
2
+ ## ca-bundle.crt -- Bundle of CA Root Certificates
3
+ ##
4
+ ## Certificate data from Mozilla as of: Tue Apr 22 08:29:31 2014
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
8
+ ## file (certdata.txt). This file can be found in the mozilla source tree:
9
+ ## http://mxr.mozilla.org/mozilla-release/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1
10
+ ##
11
+ ## It contains the certificates in PEM format and therefore
12
+ ## can be directly used with curl / libcurl / php_curl, or with
13
+ ## an Apache+mod_ssl webserver for SSL client authentication.
14
+ ## Just configure this file as the SSLCACertificateFile.
15
+ ##
16
+
17
+
18
+ GTE CyberTrust Global Root
19
+ ==========================
20
+ -----BEGIN CERTIFICATE-----
21
+ MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg
22
+ Q29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEG
23
+ A1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJvb3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEz
24
+ MjM1OTAwWjB1MQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQL
25
+ Ex5HVEUgQ3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0
26
+ IEdsb2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrHiM3dFw4u
27
+ sJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTSr41tiGeA5u2ylc9yMcql
28
+ HHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X404Wqk2kmhXBIgD8SFcd5tB8FLztimQID
29
+ AQABMA0GCSqGSIb3DQEBBAUAA4GBAG3rGwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMW
30
+ M4ETCJ57NE7fQMh017l93PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OF
31
+ NMQkpw0PlZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/
32
+ -----END CERTIFICATE-----
33
+
34
+ Thawte Server CA
35
+ ================
36
+ -----BEGIN CERTIFICATE-----
37
+ MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT
38
+ DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
39
+ dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UE
40
+ AxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5j
41
+ b20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNV
42
+ BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29u
43
+ c3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcG
44
+ A1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0
45
+ ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl
46
+ /Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg7
47
+ 1CcEJRCXL+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzAR
48
+ MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWDTSEwjsrZqG9J
49
+ GubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6eQNuozDJ0uW8NxuOzRAvZim+aKZuZ
50
+ GCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc=
51
+ -----END CERTIFICATE-----
52
+
53
+ Thawte Premium Server CA
54
+ ========================
55
+ -----BEGIN CERTIFICATE-----
56
+ MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT
57
+ DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
58
+ dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE
59
+ AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl
60
+ ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT
61
+ AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU
62
+ VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2
63
+ aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ
64
+ cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2
65
+ aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh
66
+ Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/
67
+ qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm
68
+ SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf
69
+ 8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t
70
+ UCemDaYj+bvLpgcUQg==
71
+ -----END CERTIFICATE-----
72
+
73
+ Equifax Secure CA
74
+ =================
75
+ -----BEGIN CERTIFICATE-----
76
+ MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
77
+ ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
78
+ MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
79
+ B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
80
+ nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
81
+ fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
82
+ 8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
83
+ A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
84
+ CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
85
+ A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
86
+ spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
87
+ Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
88
+ zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
89
+ BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
90
+ 70+sB3c4
91
+ -----END CERTIFICATE-----
92
+
93
+ Verisign Class 3 Public Primary Certification Authority
94
+ =======================================================
95
+ -----BEGIN CERTIFICATE-----
96
+ MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx
97
+ FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5
98
+ IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow
99
+ XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz
100
+ IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
101
+ A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94
102
+ f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol
103
+ hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtMEivPLCYA
104
+ TxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59Ah
105
+ WM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2Omuf
106
+ Tqj/ZA1k
107
+ -----END CERTIFICATE-----
108
+
109
+ Verisign Class 3 Public Primary Certification Authority - G2
110
+ ============================================================
111
+ -----BEGIN CERTIFICATE-----
112
+ MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT
113
+ MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
114
+ eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
115
+ biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
116
+ dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT
117
+ MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
118
+ eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
119
+ biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
120
+ dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCO
121
+ FoUgRm1HP9SFIIThbbP4pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71
122
+ lSk8UOg013gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwIDAQAB
123
+ MA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSkU01UbSuvDV1Ai2TT
124
+ 1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7iF6YM40AIOw7n60RzKprxaZLvcRTD
125
+ Oaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpYoJ2daZH9
126
+ -----END CERTIFICATE-----
127
+
128
+ GlobalSign Root CA
129
+ ==================
130
+ -----BEGIN CERTIFICATE-----
131
+ MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
132
+ GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
133
+ b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
134
+ BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
135
+ VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
136
+ DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
137
+ THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
138
+ Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
139
+ c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
140
+ gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
141
+ HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
142
+ AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
143
+ Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
144
+ j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
145
+ hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
146
+ X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
147
+ -----END CERTIFICATE-----
148
+
149
+ GlobalSign Root CA - R2
150
+ =======================
151
+ -----BEGIN CERTIFICATE-----
152
+ MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv
153
+ YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
154
+ bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
155
+ aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
156
+ bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6
157
+ ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp
158
+ s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN
159
+ S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL
160
+ TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C
161
+ ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
162
+ FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i
163
+ YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN
164
+ BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp
165
+ 9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu
166
+ 01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7
167
+ 9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
168
+ TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
169
+ -----END CERTIFICATE-----
170
+
171
+ ValiCert Class 1 VA
172
+ ===================
173
+ -----BEGIN CERTIFICATE-----
174
+ MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
175
+ b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
176
+ YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
177
+ bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIy
178
+ MjM0OFoXDTE5MDYyNTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
179
+ d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEg
180
+ UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
181
+ LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
182
+ A4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9YLqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIi
183
+ GQj4/xEjm84H9b9pGib+TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCm
184
+ DuJWBQ8YTfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0LBwG
185
+ lN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLWI8sogTLDAHkY7FkX
186
+ icnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPwnXS3qT6gpf+2SQMT2iLM7XGCK5nP
187
+ Orf1LXLI
188
+ -----END CERTIFICATE-----
189
+
190
+ ValiCert Class 2 VA
191
+ ===================
192
+ -----BEGIN CERTIFICATE-----
193
+ MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
194
+ b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
195
+ YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
196
+ bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw
197
+ MTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
198
+ d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIg
199
+ UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
200
+ LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
201
+ A4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVC
202
+ CSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7Rf
203
+ ZHM047QSv4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZ
204
+ SWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZoDJJKPTEjlbV
205
+ UjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwCW/POuZ6lcg5Ktz885hZo+L7tdEy8
206
+ W9ViH0Pd
207
+ -----END CERTIFICATE-----
208
+
209
+ RSA Root Certificate 1
210
+ ======================
211
+ -----BEGIN CERTIFICATE-----
212
+ MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
213
+ b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
214
+ YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
215
+ bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw
216
+ MjIzM1oXDTE5MDYyNjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
217
+ d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMg
218
+ UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
219
+ LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
220
+ A4GNADCBiQKBgQDjmFGWHOjVsQaBalfDcnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td
221
+ 3zZxFJmP3MKS8edgkpfs2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89H
222
+ BFx1cQqYJJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliEZwgs
223
+ 3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJn0WuPIqpsHEzXcjF
224
+ V9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/APhmcGcwTTYJBtYze4D1gCCAPRX5r
225
+ on+jjBXu
226
+ -----END CERTIFICATE-----
227
+
228
+ Verisign Class 3 Public Primary Certification Authority - G3
229
+ ============================================================
230
+ -----BEGIN CERTIFICATE-----
231
+ MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
232
+ UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
233
+ cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
234
+ IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
235
+ dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
236
+ CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
237
+ dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
238
+ cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg
239
+ Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
240
+ ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1
241
+ EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc
242
+ cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw
243
+ EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj
244
+ 055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
245
+ ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
246
+ j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
247
+ /Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0
248
+ xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
249
+ t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
250
+ -----END CERTIFICATE-----
251
+
252
+ Verisign Class 4 Public Primary Certification Authority - G3
253
+ ============================================================
254
+ -----BEGIN CERTIFICATE-----
255
+ MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
256
+ UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
257
+ cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
258
+ IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
259
+ dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
260
+ CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
261
+ dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
262
+ cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg
263
+ Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
264
+ ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS
265
+ tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM
266
+ 8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW
267
+ Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX
268
+ Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
269
+ j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt
270
+ mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
271
+ fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd
272
+ RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG
273
+ UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
274
+ -----END CERTIFICATE-----
275
+
276
+ Entrust.net Secure Server CA
277
+ ============================
278
+ -----BEGIN CERTIFICATE-----
279
+ MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMCVVMxFDASBgNV
280
+ BAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5uZXQvQ1BTIGluY29ycC4gYnkg
281
+ cmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRl
282
+ ZDE6MDgGA1UEAxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhv
283
+ cml0eTAeFw05OTA1MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIG
284
+ A1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBi
285
+ eSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1p
286
+ dGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0
287
+ aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQ
288
+ aO2f55M28Qpku0f1BBc/I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5
289
+ gXpa0zf3wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OCAdcw
290
+ ggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHboIHYpIHVMIHSMQsw
291
+ CQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5l
292
+ dC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF
293
+ bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENl
294
+ cnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu
295
+ dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0MFqBDzIwMTkw
296
+ NTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7UISX8+1i0Bow
297
+ HQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAaMAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EA
298
+ BAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyN
299
+ Ewr75Ji174z4xRAN95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9
300
+ n9cd2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
301
+ -----END CERTIFICATE-----
302
+
303
+ Entrust.net Premium 2048 Secure Server CA
304
+ =========================================
305
+ -----BEGIN CERTIFICATE-----
306
+ MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
307
+ ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp
308
+ bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
309
+ BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx
310
+ NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
311
+ d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
312
+ MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
313
+ ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
314
+ MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL
315
+ Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr
316
+ hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW
317
+ nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi
318
+ VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E
319
+ BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ
320
+ KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy
321
+ T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
322
+ zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT
323
+ J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e
324
+ nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE=
325
+ -----END CERTIFICATE-----
326
+
327
+ Baltimore CyberTrust Root
328
+ =========================
329
+ -----BEGIN CERTIFICATE-----
330
+ MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE
331
+ ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li
332
+ ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC
333
+ SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs
334
+ dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME
335
+ uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB
336
+ UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C
337
+ G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9
338
+ XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr
339
+ l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI
340
+ VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
341
+ BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh
342
+ cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5
343
+ hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa
344
+ Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
345
+ RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
346
+ -----END CERTIFICATE-----
347
+
348
+ Equifax Secure Global eBusiness CA
349
+ ==================================
350
+ -----BEGIN CERTIFICATE-----
351
+ MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
352
+ RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp
353
+ bmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMx
354
+ HDAaBgNVBAoTE0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEds
355
+ b2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRV
356
+ PEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzN
357
+ qfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxn
358
+ hcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j
359
+ BBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hs
360
+ MA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okEN
361
+ I7SS+RkAZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIY
362
+ NMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
363
+ -----END CERTIFICATE-----
364
+
365
+ Equifax Secure eBusiness CA 1
366
+ =============================
367
+ -----BEGIN CERTIFICATE-----
368
+ MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
369
+ RXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENB
370
+ LTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQwMDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UE
371
+ ChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNz
372
+ IENBLTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ
373
+ 1MRoRvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBuWqDZQu4a
374
+ IZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKwEnv+j6YDAgMBAAGjZjBk
375
+ MBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEp4MlIR21kW
376
+ Nl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRKeDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQF
377
+ AAOBgQB1W6ibAxHm6VZMzfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5
378
+ lSE/9dR+WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN/Bf+
379
+ KpYrtWKmpj29f5JZzVoqgrI3eQ==
380
+ -----END CERTIFICATE-----
381
+
382
+ AddTrust Low-Value Services Root
383
+ ================================
384
+ -----BEGIN CERTIFICATE-----
385
+ MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
386
+ QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU
387
+ cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw
388
+ CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO
389
+ ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB
390
+ AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6
391
+ 54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr
392
+ oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1
393
+ Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui
394
+ GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w
395
+ HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD
396
+ AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT
397
+ RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw
398
+ HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt
399
+ ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph
400
+ iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
401
+ eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr
402
+ mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj
403
+ ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
404
+ -----END CERTIFICATE-----
405
+
406
+ AddTrust External Root
407
+ ======================
408
+ -----BEGIN CERTIFICATE-----
409
+ MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
410
+ QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD
411
+ VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw
412
+ NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU
413
+ cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg
414
+ Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821
415
+ +iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw
416
+ Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo
417
+ aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy
418
+ 2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7
419
+ 7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P
420
+ BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL
421
+ VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk
422
+ VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB
423
+ IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
424
+ j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
425
+ 6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355
426
+ e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
427
+ G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
428
+ -----END CERTIFICATE-----
429
+
430
+ AddTrust Public Services Root
431
+ =============================
432
+ -----BEGIN CERTIFICATE-----
433
+ MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
434
+ QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU
435
+ cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ
436
+ BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l
437
+ dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF
438
+ AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu
439
+ nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i
440
+ d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG
441
+ Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw
442
+ HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G
443
+ A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
444
+ /zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux
445
+ FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G
446
+ A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4
447
+ JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL
448
+ +YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
449
+ GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9
450
+ Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H
451
+ EufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
452
+ -----END CERTIFICATE-----
453
+
454
+ AddTrust Qualified Certificates Root
455
+ ====================================
456
+ -----BEGIN CERTIFICATE-----
457
+ MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
458
+ QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU
459
+ cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx
460
+ CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ
461
+ IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG
462
+ 9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx
463
+ 64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3
464
+ KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o
465
+ L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR
466
+ wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU
467
+ MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/
468
+ BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE
469
+ BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y
470
+ azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD
471
+ ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG
472
+ GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
473
+ dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze
474
+ RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB
475
+ iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE=
476
+ -----END CERTIFICATE-----
477
+
478
+ Entrust Root Certification Authority
479
+ ====================================
480
+ -----BEGIN CERTIFICATE-----
481
+ MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV
482
+ BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw
483
+ b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG
484
+ A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0
485
+ MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
486
+ MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu
487
+ Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v
488
+ dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
489
+ ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz
490
+ A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww
491
+ Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68
492
+ j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN
493
+ rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw
494
+ DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1
495
+ MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH
496
+ hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
497
+ A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM
498
+ Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa
499
+ v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS
500
+ W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
501
+ tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
502
+ -----END CERTIFICATE-----
503
+
504
+ RSA Security 2048 v3
505
+ ====================
506
+ -----BEGIN CERTIFICATE-----
507
+ MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK
508
+ ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy
509
+ MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb
510
+ BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
511
+ AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7
512
+ Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb
513
+ WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH
514
+ KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP
515
+ +Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/
516
+ MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E
517
+ FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY
518
+ v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj
519
+ 0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj
520
+ VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395
521
+ nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA
522
+ pKnXwiJPZ9d37CAFYd4=
523
+ -----END CERTIFICATE-----
524
+
525
+ GeoTrust Global CA
526
+ ==================
527
+ -----BEGIN CERTIFICATE-----
528
+ MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
529
+ Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw
530
+ MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
531
+ LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
532
+ CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo
533
+ BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet
534
+ 8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc
535
+ T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU
536
+ vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD
537
+ AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk
538
+ DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q
539
+ zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4
540
+ d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2
541
+ mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p
542
+ XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
543
+ Mw==
544
+ -----END CERTIFICATE-----
545
+
546
+ GeoTrust Global CA 2
547
+ ====================
548
+ -----BEGIN CERTIFICATE-----
549
+ MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
550
+ R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw
551
+ MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
552
+ LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
553
+ ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/
554
+ NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k
555
+ LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA
556
+ Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b
557
+ HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF
558
+ MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH
559
+ K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7
560
+ srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh
561
+ ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL
562
+ OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC
563
+ x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF
564
+ H4z1Ir+rzoPz4iIprn2DQKi6bA==
565
+ -----END CERTIFICATE-----
566
+
567
+ GeoTrust Universal CA
568
+ =====================
569
+ -----BEGIN CERTIFICATE-----
570
+ MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
571
+ R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1
572
+ MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu
573
+ Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
574
+ ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t
575
+ JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e
576
+ RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs
577
+ 7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d
578
+ 8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V
579
+ qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga
580
+ Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB
581
+ Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu
582
+ KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08
583
+ ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0
584
+ XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB
585
+ hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
586
+ aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2
587
+ qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL
588
+ oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK
589
+ xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF
590
+ KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2
591
+ DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK
592
+ xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU
593
+ p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI
594
+ P/rmMuGNG2+k5o7Y+SlIis5z/iw=
595
+ -----END CERTIFICATE-----
596
+
597
+ GeoTrust Universal CA 2
598
+ =======================
599
+ -----BEGIN CERTIFICATE-----
600
+ MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
601
+ R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0
602
+ MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg
603
+ SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA
604
+ A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0
605
+ DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17
606
+ j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q
607
+ JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a
608
+ QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2
609
+ WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP
610
+ 20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn
611
+ ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC
612
+ SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG
613
+ 8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2
614
+ +/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E
615
+ BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
616
+ dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ
617
+ 4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+
618
+ mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq
619
+ A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg
620
+ Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP
621
+ pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d
622
+ FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp
623
+ gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm
624
+ X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
625
+ -----END CERTIFICATE-----
626
+
627
+ America Online Root Certification Authority 1
628
+ =============================================
629
+ -----BEGIN CERTIFICATE-----
630
+ MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
631
+ QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp
632
+ Y2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkG
633
+ A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg
634
+ T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQAD
635
+ ggEPADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lkhsmj76CG
636
+ v2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym1BW32J/X3HGrfpq/m44z
637
+ DyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsWOqMFf6Dch9Wc/HKpoH145LcxVR5lu9Rh
638
+ sCFg7RAycsWSJR74kEoYeEfffjA3PlAb2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP
639
+ 8c9GsEsPPt2IYriMqQkoO3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0T
640
+ AQH/BAUwAwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAUAK3Z
641
+ o/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQB8itEf
642
+ GDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkFZu90821fnZmv9ov761KyBZiibyrF
643
+ VL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAbLjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft
644
+ 3OJvx8Fi8eNy1gTIdGcL+oiroQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43g
645
+ Kd8hdIaC2y+CMMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds
646
+ sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7
647
+ -----END CERTIFICATE-----
648
+
649
+ America Online Root Certification Authority 2
650
+ =============================================
651
+ -----BEGIN CERTIFICATE-----
652
+ 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
677
+ cX/9XhmgD0uRuMRUvAawRY8mkaKO/qk=
678
+ -----END CERTIFICATE-----
679
+
680
+ Visa eCommerce Root
681
+ ===================
682
+ -----BEGIN CERTIFICATE-----
683
+ MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG
684
+ EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug
685
+ QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2
686
+ WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm
687
+ VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
688
+ bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL
689
+ F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b
690
+ RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0
691
+ TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI
692
+ /k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs
693
+ GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG
694
+ MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc
695
+ CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW
696
+ YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz
697
+ zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu
698
+ YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
699
+ 398znM/jra6O1I7mT1GvFpLgXPYHDw==
700
+ -----END CERTIFICATE-----
701
+
702
+ Certum Root CA
703
+ ==============
704
+ -----BEGIN CERTIFICATE-----
705
+ MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK
706
+ ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla
707
+ Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u
708
+ by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x
709
+ wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL
710
+ kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ
711
+ 89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K
712
+ Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P
713
+ NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
714
+ hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+
715
+ GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg
716
+ GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/
717
+ 0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS
718
+ qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw==
719
+ -----END CERTIFICATE-----
720
+
721
+ Comodo AAA Services root
722
+ ========================
723
+ -----BEGIN CERTIFICATE-----
724
+ MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
725
+ R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
726
+ TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw
727
+ MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
728
+ c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
729
+ BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
730
+ ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG
731
+ C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs
732
+ i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW
733
+ Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH
734
+ Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK
735
+ Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f
736
+ BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl
737
+ cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
738
+ LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
739
+ 7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
740
+ Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
741
+ 8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C
742
+ 12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
743
+ -----END CERTIFICATE-----
744
+
745
+ Comodo Secure Services root
746
+ ===========================
747
+ -----BEGIN CERTIFICATE-----
748
+ MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
749
+ R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
750
+ TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw
751
+ MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu
752
+ Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi
753
+ BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
754
+ ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP
755
+ 9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc
756
+ rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC
757
+ oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V
758
+ p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E
759
+ FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
760
+ gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj
761
+ YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm
762
+ aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm
763
+ 4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
764
+ Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL
765
+ DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw
766
+ pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H
767
+ RR3B7Hzs/Sk=
768
+ -----END CERTIFICATE-----
769
+
770
+ Comodo Trusted Services root
771
+ ============================
772
+ -----BEGIN CERTIFICATE-----
773
+ MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
774
+ R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
775
+ TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw
776
+ MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h
777
+ bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw
778
+ IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC
779
+ AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7
780
+ 3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y
781
+ /9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6
782
+ juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS
783
+ ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud
784
+ DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
785
+ /zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp
786
+ ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl
787
+ cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw
788
+ uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
789
+ pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA
790
+ BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l
791
+ R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O
792
+ 9y5Xt5hwXsjEeLBi
793
+ -----END CERTIFICATE-----
794
+
795
+ QuoVadis Root CA
796
+ ================
797
+ -----BEGIN CERTIFICATE-----
798
+ MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE
799
+ ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
800
+ eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz
801
+ MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp
802
+ cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD
803
+ EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
804
+ AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk
805
+ J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL
806
+ F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL
807
+ YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen
808
+ AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w
809
+ PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y
810
+ ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7
811
+ MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj
812
+ YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
813
+ ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
814
+ Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW
815
+ Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu
816
+ BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw
817
+ FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
818
+ aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6
819
+ tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo
820
+ fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul
821
+ LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x
822
+ gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi
823
+ 5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi
824
+ 5nrQNiOKSnQ2+Q==
825
+ -----END CERTIFICATE-----
826
+
827
+ QuoVadis Root CA 2
828
+ ==================
829
+ -----BEGIN CERTIFICATE-----
830
+ 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
856
+ -----END CERTIFICATE-----
857
+
858
+ QuoVadis Root CA 3
859
+ ==================
860
+ -----BEGIN CERTIFICATE-----
861
+ MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
862
+ EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx
863
+ OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
864
+ aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
865
+ DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg
866
+ DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij
867
+ KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K
868
+ DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv
869
+ BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp
870
+ p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8
871
+ nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX
872
+ MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM
873
+ Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz
874
+ uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT
875
+ BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj
876
+ YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
877
+ aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB
878
+ BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD
879
+ VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4
880
+ ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE
881
+ AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV
882
+ qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s
883
+ hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z
884
+ POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2
885
+ Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp
886
+ 8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC
887
+ bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu
888
+ g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p
889
+ vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr
890
+ qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
891
+ -----END CERTIFICATE-----
892
+
893
+ Security Communication Root CA
894
+ ==============================
895
+ -----BEGIN CERTIFICATE-----
896
+ MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
897
+ U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
898
+ HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
899
+ U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
900
+ ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
901
+ 8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
902
+ DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
903
+ 5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
904
+ DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
905
+ JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
906
+ DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
907
+ 0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
908
+ mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
909
+ s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
910
+ 6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
911
+ FL39vmwLAw==
912
+ -----END CERTIFICATE-----
913
+
914
+ Sonera Class 2 Root CA
915
+ ======================
916
+ -----BEGIN CERTIFICATE-----
917
+ MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
918
+ U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw
919
+ NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
920
+ IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3
921
+ /Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT
922
+ dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG
923
+ f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P
924
+ tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH
925
+ nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT
926
+ XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt
927
+ 0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI
928
+ cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph
929
+ Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx
930
+ EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
931
+ llpwrN9M
932
+ -----END CERTIFICATE-----
933
+
934
+ Staat der Nederlanden Root CA
935
+ =============================
936
+ -----BEGIN CERTIFICATE-----
937
+ MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE
938
+ ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g
939
+ Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w
940
+ HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh
941
+ bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt
942
+ vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P
943
+ jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca
944
+ C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth
945
+ vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6
946
+ 22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV
947
+ HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v
948
+ dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN
949
+ BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR
950
+ EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw
951
+ MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y
952
+ nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
953
+ iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
954
+ -----END CERTIFICATE-----
955
+
956
+ TDC Internet Root CA
957
+ ====================
958
+ -----BEGIN CERTIFICATE-----
959
+ MIIEKzCCAxOgAwIBAgIEOsylTDANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJESzEVMBMGA1UE
960
+ ChMMVERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTAeFw0wMTA0MDUx
961
+ NjMzMTdaFw0yMTA0MDUxNzAzMTdaMEMxCzAJBgNVBAYTAkRLMRUwEwYDVQQKEwxUREMgSW50ZXJu
962
+ ZXQxHTAbBgNVBAsTFFREQyBJbnRlcm5ldCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
963
+ MIIBCgKCAQEAxLhAvJHVYx/XmaCLDEAedLdInUaMArLgJF/wGROnN4NrXceO+YQwzho7+vvOi20j
964
+ xsNuZp+Jpd/gQlBn+h9sHvTQBda/ytZO5GhgbEaqHF1j4QeGDmUApy6mcca8uYGoOn0a0vnRrEvL
965
+ znWv3Hv6gXPU/Lq9QYjUdLP5Xjg6PEOo0pVOd20TDJ2PeAG3WiAfAzc14izbSysseLlJ28TQx5yc
966
+ 5IogCSEWVmb/Bexb4/DPqyQkXsN/cHoSxNK1EKC2IeGNeGlVRGn1ypYcNIUXJXfi9i8nmHj9eQY6
967
+ otZaQ8H/7AQ77hPv01ha/5Lr7K7a8jcDR0G2l8ktCkEiu7vmpwIDAQABo4IBJTCCASEwEQYJYIZI
968
+ AYb4QgEBBAQDAgAHMGUGA1UdHwReMFwwWqBYoFakVDBSMQswCQYDVQQGEwJESzEVMBMGA1UEChMM
969
+ VERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTENMAsGA1UEAxMEQ1JM
970
+ MTArBgNVHRAEJDAigA8yMDAxMDQwNTE2MzMxN1qBDzIwMjEwNDA1MTcwMzE3WjALBgNVHQ8EBAMC
971
+ AQYwHwYDVR0jBBgwFoAUbGQBx/2FbazI2p5QCIUItTxWqFAwHQYDVR0OBBYEFGxkAcf9hW2syNqe
972
+ UAiFCLU8VqhQMAwGA1UdEwQFMAMBAf8wHQYJKoZIhvZ9B0EABBAwDhsIVjUuMDo0LjADAgSQMA0G
973
+ CSqGSIb3DQEBBQUAA4IBAQBOQ8zR3R0QGwZ/t6T609lN+yOfI1Rb5osvBCiLtSdtiaHsmGnc540m
974
+ gwV5dOy0uaOXwTUA/RXaOYE6lTGQ3pfphqiZdwzlWqCE/xIWrG64jcN7ksKsLtB9KOy282A4aW8+
975
+ 2ARVPp7MVdK6/rtHBNcK2RYKNCn1WBPVT8+PVkuzHu7TmHnaCB4Mb7j4Fifvwm899qNLPg7kbWzb
976
+ O0ESm70NRyN/PErQr8Cv9u8btRXE64PECV90i9kR+8JWsTz4cMo0jUNAE4z9mQNUecYu6oah9jrU
977
+ Cbz0vGbMPVjQV0kK7iXiQe4T+Zs4NNEA9X7nlB38aQNiuJkFBT1reBK9sG9l
978
+ -----END CERTIFICATE-----
979
+
980
+ UTN DATACorp SGC Root CA
981
+ ========================
982
+ -----BEGIN CERTIFICATE-----
983
+ MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE
984
+ BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
985
+ IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ
986
+ BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa
987
+ MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w
988
+ HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy
989
+ dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC
990
+ AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys
991
+ raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo
992
+ wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA
993
+ 9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv
994
+ 33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud
995
+ DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9
996
+ BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD
997
+ LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3
998
+ DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
999
+ Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0
1000
+ I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx
1001
+ EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP
1002
+ DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI
1003
+ -----END CERTIFICATE-----
1004
+
1005
+ UTN USERFirst Hardware Root CA
1006
+ ==============================
1007
+ -----BEGIN CERTIFICATE-----
1008
+ MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE
1009
+ BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
1010
+ IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd
1011
+ BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx
1012
+ OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0
1013
+ eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz
1014
+ ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3
1015
+ DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI
1016
+ wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd
1017
+ tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8
1018
+ i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf
1019
+ Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw
1020
+ gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF
1021
+ lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF
1022
+ UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF
1023
+ BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
1024
+ //bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW
1025
+ XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2
1026
+ lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn
1027
+ iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67
1028
+ nfhmqA==
1029
+ -----END CERTIFICATE-----
1030
+
1031
+ Camerfirma Chambers of Commerce Root
1032
+ ====================================
1033
+ -----BEGIN CERTIFICATE-----
1034
+ MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
1035
+ QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
1036
+ ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx
1037
+ NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp
1038
+ cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn
1039
+ MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC
1040
+ AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU
1041
+ xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH
1042
+ NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW
1043
+ DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV
1044
+ d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud
1045
+ EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v
1046
+ cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P
1047
+ AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh
1048
+ bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD
1049
+ VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
1050
+ aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi
1051
+ fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD
1052
+ L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN
1053
+ UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n
1054
+ ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1
1055
+ erfutGWaIZDgqtCYvDi1czyL+Nw=
1056
+ -----END CERTIFICATE-----
1057
+
1058
+ Camerfirma Global Chambersign Root
1059
+ ==================================
1060
+ -----BEGIN CERTIFICATE-----
1061
+ MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
1062
+ QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
1063
+ ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx
1064
+ NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt
1065
+ YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg
1066
+ MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw
1067
+ ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J
1068
+ 1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O
1069
+ by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl
1070
+ 6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c
1071
+ 8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/
1072
+ BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j
1073
+ aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B
1074
+ Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj
1075
+ aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y
1076
+ ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
1077
+ bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA
1078
+ PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y
1079
+ gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ
1080
+ PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4
1081
+ IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
1082
+ t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
1083
+ -----END CERTIFICATE-----
1084
+
1085
+ NetLock Notary (Class A) Root
1086
+ =============================
1087
+ -----BEGIN CERTIFICATE-----
1088
+ MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI
1089
+ EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
1090
+ dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j
1091
+ ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX
1092
+ DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH
1093
+ EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD
1094
+ VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz
1095
+ cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM
1096
+ D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ
1097
+ z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC
1098
+ /tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7
1099
+ tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6
1100
+ 4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG
1101
+ A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC
1102
+ Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv
1103
+ bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
1104
+ IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn
1105
+ LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0
1106
+ ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz
1107
+ IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh
1108
+ IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu
1109
+ b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh
1110
+ bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg
1111
+ Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp
1112
+ bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5
1113
+ ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP
1114
+ ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB
1115
+ CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr
1116
+ KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM
1117
+ 8CgHrTwXZoi1/baI
1118
+ -----END CERTIFICATE-----
1119
+
1120
+ NetLock Business (Class B) Root
1121
+ ===============================
1122
+ -----BEGIN CERTIFICATE-----
1123
+ MIIFSzCCBLSgAwIBAgIBaTANBgkqhkiG9w0BAQQFADCBmTELMAkGA1UEBhMCSFUxETAPBgNVBAcT
1124
+ CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV
1125
+ BAsTEVRhbnVzaXR2YW55a2lhZG9rMTIwMAYDVQQDEylOZXRMb2NrIFV6bGV0aSAoQ2xhc3MgQikg
1126
+ VGFudXNpdHZhbnlraWFkbzAeFw05OTAyMjUxNDEwMjJaFw0xOTAyMjAxNDEwMjJaMIGZMQswCQYD
1127
+ VQQGEwJIVTERMA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRv
1128
+ bnNhZ2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxMjAwBgNVBAMTKU5ldExvY2sg
1129
+ VXpsZXRpIChDbGFzcyBCKSBUYW51c2l0dmFueWtpYWRvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
1130
+ iQKBgQCx6gTsIKAjwo84YM/HRrPVG/77uZmeBNwcf4xKgZjupNTKihe5In+DCnVMm8Bp2GQ5o+2S
1131
+ o/1bXHQawEfKOml2mrriRBf8TKPV/riXiK+IA4kfpPIEPsgHC+b5sy96YhQJRhTKZPWLgLViqNhr
1132
+ 1nGTLbO/CVRY7QbrqHvcQ7GhaQIDAQABo4ICnzCCApswEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV
1133
+ HQ8BAf8EBAMCAAYwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZ
1134
+ RUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRh
1135
+ dGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQuIEEgaGl0
1136
+ ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRv
1137
+ c2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUg
1138
+ YXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJh
1139
+ c2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBz
1140
+ Oi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6ZXNA
1141
+ bmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQgdGhl
1142
+ IHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sgQ1BTIGF2
1143
+ YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBj
1144
+ cHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4GBAATbrowXr/gOkDFOzT4JwG06sPgzTEdM
1145
+ 43WIEJessDgVkcYplswhwG08pXTP2IKlOcNl40JwuyKQ433bNXbhoLXan3BukxowOR0w2y7jfLKR
1146
+ stE3Kfq51hdcR0/jHTjrn9V7lagonhVK0dHQKwCXoOKSNitjrFgBazMpUIaD8QFI
1147
+ -----END CERTIFICATE-----
1148
+
1149
+ NetLock Express (Class C) Root
1150
+ ==============================
1151
+ -----BEGIN CERTIFICATE-----
1152
+ MIIFTzCCBLigAwIBAgIBaDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMCSFUxETAPBgNVBAcT
1153
+ CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV
1154
+ BAsTEVRhbnVzaXR2YW55a2lhZG9rMTQwMgYDVQQDEytOZXRMb2NrIEV4cHJlc3N6IChDbGFzcyBD
1155
+ KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNTE0MDgxMVoXDTE5MDIyMDE0MDgxMVowgZsxCzAJ
1156
+ BgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
1157
+ dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE0MDIGA1UEAxMrTmV0TG9j
1158
+ ayBFeHByZXNzeiAoQ2xhc3MgQykgVGFudXNpdHZhbnlraWFkbzCBnzANBgkqhkiG9w0BAQEFAAOB
1159
+ jQAwgYkCgYEA6+ywbGGKIyWvYCDj2Z/8kwvbXY2wobNAOoLO/XXgeDIDhlqGlZHtU/qdQPzm6N3Z
1160
+ W3oDvV3zOwzDUXmbrVWg6dADEK8KuhRC2VImESLH0iDMgqSaqf64gXadarfSNnU+sYYJ9m5tfk63
1161
+ euyucYT2BDMIJTLrdKwWRMbkQJMdf60CAwEAAaOCAp8wggKbMBIGA1UdEwEB/wQIMAYBAf8CAQQw
1162
+ DgYDVR0PAQH/BAQDAgAGMBEGCWCGSAGG+EIBAQQEAwIABzCCAmAGCWCGSAGG+EIBDQSCAlEWggJN
1163
+ RklHWUVMRU0hIEV6ZW4gdGFudXNpdHZhbnkgYSBOZXRMb2NrIEtmdC4gQWx0YWxhbm9zIFN6b2xn
1164
+ YWx0YXRhc2kgRmVsdGV0ZWxlaWJlbiBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBB
1165
+ IGhpdGVsZXNpdGVzIGZvbHlhbWF0YXQgYSBOZXRMb2NrIEtmdC4gdGVybWVrZmVsZWxvc3NlZy1i
1166
+ aXp0b3NpdGFzYSB2ZWRpLiBBIGRpZ2l0YWxpcyBhbGFpcmFzIGVsZm9nYWRhc2FuYWsgZmVsdGV0
1167
+ ZWxlIGF6IGVsb2lydCBlbGxlbm9yemVzaSBlbGphcmFzIG1lZ3RldGVsZS4gQXogZWxqYXJhcyBs
1168
+ ZWlyYXNhIG1lZ3RhbGFsaGF0byBhIE5ldExvY2sgS2Z0LiBJbnRlcm5ldCBob25sYXBqYW4gYSBo
1169
+ dHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIGNpbWVuIHZhZ3kga2VyaGV0byBheiBlbGxlbm9y
1170
+ emVzQG5ldGxvY2submV0IGUtbWFpbCBjaW1lbi4gSU1QT1JUQU5UISBUaGUgaXNzdWFuY2UgYW5k
1171
+ IHRoZSB1c2Ugb2YgdGhpcyBjZXJ0aWZpY2F0ZSBpcyBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIENQ
1172
+ UyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cubmV0bG9jay5uZXQvZG9jcyBvciBieSBlLW1haWwg
1173
+ YXQgY3BzQG5ldGxvY2submV0LjANBgkqhkiG9w0BAQQFAAOBgQAQrX/XDDKACtiG8XmYta3UzbM2
1174
+ xJZIwVzNmtkFLp++UOv0JhQQLdRmF/iewSf98e3ke0ugbLWrmldwpu2gpO0u9f38vf5NNwgMvOOW
1175
+ gyL1SRt/Syu0VMGAfJlOHdCM7tCs5ZL6dVb+ZKATj7i4Fp1hBWeAyNDYpQcCNJgEjTME1A==
1176
+ -----END CERTIFICATE-----
1177
+
1178
+ XRamp Global CA Root
1179
+ ====================
1180
+ -----BEGIN CERTIFICATE-----
1181
+ MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE
1182
+ BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj
1183
+ dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
1184
+ dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx
1185
+ HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg
1186
+ U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
1187
+ dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu
1188
+ IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx
1189
+ foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE
1190
+ zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs
1191
+ AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry
1192
+ xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
1193
+ EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap
1194
+ oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC
1195
+ AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc
1196
+ /Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
1197
+ qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n
1198
+ nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz
1199
+ 8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw=
1200
+ -----END CERTIFICATE-----
1201
+
1202
+ Go Daddy Class 2 CA
1203
+ ===================
1204
+ -----BEGIN CERTIFICATE-----
1205
+ MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY
1206
+ VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp
1207
+ ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG
1208
+ A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
1209
+ RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD
1210
+ ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
1211
+ 2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32
1212
+ qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j
1213
+ YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY
1214
+ vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O
1215
+ BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o
1216
+ atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu
1217
+ MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG
1218
+ A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim
1219
+ PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt
1220
+ I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
1221
+ HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI
1222
+ Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b
1223
+ vZ8=
1224
+ -----END CERTIFICATE-----
1225
+
1226
+ Starfield Class 2 CA
1227
+ ====================
1228
+ -----BEGIN CERTIFICATE-----
1229
+ MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc
1230
+ U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg
1231
+ Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo
1232
+ MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG
1233
+ A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG
1234
+ SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY
1235
+ bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ
1236
+ JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm
1237
+ epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN
1238
+ F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF
1239
+ MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f
1240
+ hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo
1241
+ bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g
1242
+ QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs
1243
+ afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM
1244
+ PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
1245
+ xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD
1246
+ KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
1247
+ QBFGmh95DmK/D5fs4C8fF5Q=
1248
+ -----END CERTIFICATE-----
1249
+
1250
+ StartCom Certification Authority
1251
+ ================================
1252
+ -----BEGIN CERTIFICATE-----
1253
+ MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
1254
+ U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
1255
+ ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
1256
+ NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
1257
+ LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
1258
+ U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
1259
+ ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
1260
+ o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
1261
+ Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
1262
+ eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
1263
+ 2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
1264
+ 6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
1265
+ osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
1266
+ untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
1267
+ UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
1268
+ 37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
1269
+ FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0
1270
+ Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj
1271
+ YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH
1272
+ AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw
1273
+ Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg
1274
+ U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5
1275
+ LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl
1276
+ cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh
1277
+ cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT
1278
+ dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC
1279
+ AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh
1280
+ 3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm
1281
+ vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk
1282
+ fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3
1283
+ fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ
1284
+ EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
1285
+ yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl
1286
+ 1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/
1287
+ lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro
1288
+ g14=
1289
+ -----END CERTIFICATE-----
1290
+
1291
+ Taiwan GRCA
1292
+ ===========
1293
+ -----BEGIN CERTIFICATE-----
1294
+ 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
1319
+ -----END CERTIFICATE-----
1320
+
1321
+ Swisscom Root CA 1
1322
+ ==================
1323
+ -----BEGIN CERTIFICATE-----
1324
+ MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG
1325
+ EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
1326
+ dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4
1327
+ MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln
1328
+ aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC
1329
+ IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM
1330
+ MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF
1331
+ NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe
1332
+ AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC
1333
+ b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn
1334
+ 7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN
1335
+ cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp
1336
+ WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5
1337
+ haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY
1338
+ MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
1339
+ HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j
1340
+ BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9
1341
+ MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn
1342
+ jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ
1343
+ MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H
1344
+ VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl
1345
+ vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl
1346
+ OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3
1347
+ 1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq
1348
+ nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy
1349
+ x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW
1350
+ NY6E0F/6MBr1mmz0DlP5OlvRHA==
1351
+ -----END CERTIFICATE-----
1352
+
1353
+ DigiCert Assured ID Root CA
1354
+ ===========================
1355
+ -----BEGIN CERTIFICATE-----
1356
+ MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG
1357
+ EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
1358
+ IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx
1359
+ MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
1360
+ ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew
1361
+ ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO
1362
+ 9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy
1363
+ UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW
1364
+ /lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy
1365
+ oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
1366
+ GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF
1367
+ 66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
1368
+ hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc
1369
+ EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn
1370
+ SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
1371
+ 8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
1372
+ +o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
1373
+ -----END CERTIFICATE-----
1374
+
1375
+ DigiCert Global Root CA
1376
+ =======================
1377
+ -----BEGIN CERTIFICATE-----
1378
+ MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG
1379
+ EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
1380
+ HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw
1381
+ MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
1382
+ dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq
1383
+ hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn
1384
+ TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5
1385
+ BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H
1386
+ 4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y
1387
+ 7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB
1388
+ o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm
1389
+ 8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF
1390
+ BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr
1391
+ EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt
1392
+ tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
1393
+ UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
1394
+ CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
1395
+ -----END CERTIFICATE-----
1396
+
1397
+ DigiCert High Assurance EV Root CA
1398
+ ==================================
1399
+ -----BEGIN CERTIFICATE-----
1400
+ MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
1401
+ EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
1402
+ KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
1403
+ MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
1404
+ MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
1405
+ Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
1406
+ Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
1407
+ OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
1408
+ MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
1409
+ NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
1410
+ h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
1411
+ Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
1412
+ JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
1413
+ V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
1414
+ myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
1415
+ mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
1416
+ vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
1417
+ -----END CERTIFICATE-----
1418
+
1419
+ Certplus Class 2 Primary CA
1420
+ ===========================
1421
+ -----BEGIN CERTIFICATE-----
1422
+ MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
1423
+ BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
1424
+ OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
1425
+ dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
1426
+ ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
1427
+ 5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
1428
+ Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
1429
+ YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
1430
+ e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
1431
+ CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
1432
+ YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
1433
+ L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
1434
+ P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
1435
+ TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
1436
+ 7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
1437
+ //1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
1438
+ l7+ijrRU
1439
+ -----END CERTIFICATE-----
1440
+
1441
+ DST Root CA X3
1442
+ ==============
1443
+ -----BEGIN CERTIFICATE-----
1444
+ MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK
1445
+ ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X
1446
+ DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1
1447
+ cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD
1448
+ ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT
1449
+ rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9
1450
+ UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy
1451
+ xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d
1452
+ utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T
1453
+ AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ
1454
+ MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug
1455
+ dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE
1456
+ GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw
1457
+ RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
1458
+ fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
1459
+ -----END CERTIFICATE-----
1460
+
1461
+ DST ACES CA X6
1462
+ ==============
1463
+ -----BEGIN CERTIFICATE-----
1464
+ MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG
1465
+ EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT
1466
+ MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha
1467
+ MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE
1468
+ CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC
1469
+ AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI
1470
+ DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa
1471
+ pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow
1472
+ GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy
1473
+ MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud
1474
+ EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu
1475
+ Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy
1476
+ dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU
1477
+ CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2
1478
+ 5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t
1479
+ Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
1480
+ nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs
1481
+ vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
1482
+ oKfN5XozNmr6mis=
1483
+ -----END CERTIFICATE-----
1484
+
1485
+ TURKTRUST Certificate Services Provider Root 1
1486
+ ==============================================
1487
+ -----BEGIN CERTIFICATE-----
1488
+ MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
1489
+ bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEP
1490
+ MA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0
1491
+ acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMx
1492
+ MDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsg
1493
+ U2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZB
1494
+ TktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBC
1495
+ aWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOC
1496
+ AQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GX
1497
+ yGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8i
1498
+ Si9BB35JYbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ
1499
+ 8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm5Rh8i27fbMx4
1500
+ W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51b0dewQIDAQABoxAwDjAMBgNVHRME
1501
+ BTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46
1502
+ sWrv7/hg0Uw2ZkUd82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE
1503
+ q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy
1504
+ B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdAaLX/7KfS0zgY
1505
+ nNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H
1506
+ -----END CERTIFICATE-----
1507
+
1508
+ TURKTRUST Certificate Services Provider Root 2
1509
+ ==============================================
1510
+ -----BEGIN CERTIFICATE-----
1511
+ MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF
1512
+ bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
1513
+ MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
1514
+ QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN
1515
+ MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr
1516
+ dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G
1517
+ A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
1518
+ acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G
1519
+ CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe
1520
+ LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI
1521
+ x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g
1522
+ QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr
1523
+ 5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB
1524
+ AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G
1525
+ A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt
1526
+ Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4
1527
+ Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+
1528
+ hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P
1529
+ 9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5
1530
+ UrbnBEI=
1531
+ -----END CERTIFICATE-----
1532
+
1533
+ SwissSign Gold CA - G2
1534
+ ======================
1535
+ -----BEGIN CERTIFICATE-----
1536
+ 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
1562
+ -----END CERTIFICATE-----
1563
+
1564
+ SwissSign Silver CA - G2
1565
+ ========================
1566
+ -----BEGIN CERTIFICATE-----
1567
+ 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
1593
+ -----END CERTIFICATE-----
1594
+
1595
+ GeoTrust Primary Certification Authority
1596
+ ========================================
1597
+ -----BEGIN CERTIFICATE-----
1598
+ MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG
1599
+ EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD
1600
+ ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx
1601
+ CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ
1602
+ cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
1603
+ CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN
1604
+ b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9
1605
+ nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge
1606
+ RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt
1607
+ tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
1608
+ AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI
1609
+ hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K
1610
+ Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN
1611
+ NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa
1612
+ Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
1613
+ 1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
1614
+ -----END CERTIFICATE-----
1615
+
1616
+ thawte Primary Root CA
1617
+ ======================
1618
+ -----BEGIN CERTIFICATE-----
1619
+ MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE
1620
+ BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
1621
+ aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
1622
+ cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3
1623
+ MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
1624
+ SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv
1625
+ KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT
1626
+ FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs
1627
+ oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ
1628
+ 1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc
1629
+ q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K
1630
+ aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p
1631
+ afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
1632
+ VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF
1633
+ AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
1634
+ uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
1635
+ xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89
1636
+ jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH
1637
+ z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
1638
+ -----END CERTIFICATE-----
1639
+
1640
+ VeriSign Class 3 Public Primary Certification Authority - G5
1641
+ ============================================================
1642
+ -----BEGIN CERTIFICATE-----
1643
+ MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
1644
+ BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
1645
+ ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
1646
+ IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
1647
+ ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
1648
+ yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
1649
+ biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
1650
+ dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
1651
+ YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
1652
+ ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
1653
+ j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
1654
+ Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
1655
+ Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
1656
+ fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
1657
+ BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
1658
+ Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
1659
+ aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
1660
+ SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
1661
+ X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
1662
+ KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
1663
+ Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
1664
+ ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
1665
+ -----END CERTIFICATE-----
1666
+
1667
+ SecureTrust CA
1668
+ ==============
1669
+ -----BEGIN CERTIFICATE-----
1670
+ MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG
1671
+ EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy
1672
+ dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe
1673
+ BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC
1674
+ ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX
1675
+ OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t
1676
+ DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH
1677
+ GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b
1678
+ 01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH
1679
+ ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/
1680
+ BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj
1681
+ aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
1682
+ KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu
1683
+ SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf
1684
+ mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ
1685
+ nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
1686
+ 3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
1687
+ -----END CERTIFICATE-----
1688
+
1689
+ Secure Global CA
1690
+ ================
1691
+ -----BEGIN CERTIFICATE-----
1692
+ MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG
1693
+ EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH
1694
+ bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg
1695
+ MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg
1696
+ Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx
1697
+ YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ
1698
+ bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g
1699
+ 8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV
1700
+ HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi
1701
+ 0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
1702
+ EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn
1703
+ oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA
1704
+ MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+
1705
+ OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn
1706
+ CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5
1707
+ 3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
1708
+ f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
1709
+ -----END CERTIFICATE-----
1710
+
1711
+ COMODO Certification Authority
1712
+ ==============================
1713
+ -----BEGIN CERTIFICATE-----
1714
+ MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE
1715
+ BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
1716
+ A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1
1717
+ dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb
1718
+ MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
1719
+ T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
1720
+ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH
1721
+ +7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww
1722
+ xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV
1723
+ 4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA
1724
+ 1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI
1725
+ rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E
1726
+ BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k
1727
+ b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC
1728
+ AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP
1729
+ OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
1730
+ RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc
1731
+ IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
1732
+ +8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
1733
+ -----END CERTIFICATE-----
1734
+
1735
+ Network Solutions Certificate Authority
1736
+ =======================================
1737
+ -----BEGIN CERTIFICATE-----
1738
+ MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
1739
+ EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
1740
+ IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
1741
+ MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
1742
+ MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
1743
+ CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
1744
+ jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
1745
+ aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
1746
+ crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
1747
+ /Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
1748
+ AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
1749
+ BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
1750
+ bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
1751
+ A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
1752
+ 4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
1753
+ GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
1754
+ wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
1755
+ ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
1756
+ -----END CERTIFICATE-----
1757
+
1758
+ WellsSecure Public Root Certificate Authority
1759
+ =============================================
1760
+ -----BEGIN CERTIFICATE-----
1761
+ MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM
1762
+ F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw
1763
+ NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
1764
+ MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl
1765
+ bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD
1766
+ VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
1767
+ CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1
1768
+ iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13
1769
+ i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8
1770
+ bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB
1771
+ K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB
1772
+ AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu
1773
+ cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm
1774
+ lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB
1775
+ i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww
1776
+ GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
1777
+ Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI
1778
+ K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0
1779
+ bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj
1780
+ qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es
1781
+ E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ
1782
+ tylv2G0xffX8oRAHh84vWdw+WNs=
1783
+ -----END CERTIFICATE-----
1784
+
1785
+ COMODO ECC Certification Authority
1786
+ ==================================
1787
+ -----BEGIN CERTIFICATE-----
1788
+ MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC
1789
+ R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
1790
+ ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB
1791
+ dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix
1792
+ GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
1793
+ Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo
1794
+ b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X
1795
+ 4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni
1796
+ wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E
1797
+ BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG
1798
+ FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
1799
+ U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
1800
+ -----END CERTIFICATE-----
1801
+
1802
+ IGC/A
1803
+ =====
1804
+ -----BEGIN CERTIFICATE-----
1805
+ MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD
1806
+ VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE
1807
+ Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy
1808
+ MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI
1809
+ EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT
1810
+ STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB
1811
+ IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2
1812
+ TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW
1813
+ So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy
1814
+ HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd
1815
+ frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ
1816
+ tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB
1817
+ egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC
1818
+ iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK
1819
+ q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q
1820
+ MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
1821
+ Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI
1822
+ lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF
1823
+ 0mBWWg==
1824
+ -----END CERTIFICATE-----
1825
+
1826
+ Security Communication EV RootCA1
1827
+ =================================
1828
+ -----BEGIN CERTIFICATE-----
1829
+ MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
1830
+ U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh
1831
+ dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE
1832
+ BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl
1833
+ Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
1834
+ AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO
1835
+ /VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX
1836
+ WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z
1837
+ ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4
1838
+ bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK
1839
+ 9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
1840
+ SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm
1841
+ iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG
1842
+ Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW
1843
+ mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW
1844
+ T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
1845
+ -----END CERTIFICATE-----
1846
+
1847
+ OISTE WISeKey Global Root GA CA
1848
+ ===============================
1849
+ -----BEGIN CERTIFICATE-----
1850
+ MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE
1851
+ BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG
1852
+ A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH
1853
+ bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD
1854
+ VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw
1855
+ IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5
1856
+ IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9
1857
+ Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg
1858
+ Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD
1859
+ d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ
1860
+ /yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R
1861
+ LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
1862
+ AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
1863
+ KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm
1864
+ MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4
1865
+ +vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
1866
+ hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY
1867
+ okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
1868
+ -----END CERTIFICATE-----
1869
+
1870
+ Microsec e-Szigno Root CA
1871
+ =========================
1872
+ -----BEGIN CERTIFICATE-----
1873
+ MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE
1874
+ BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL
1875
+ EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0
1876
+ MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz
1877
+ dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT
1878
+ GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
1879
+ AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG
1880
+ d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N
1881
+ oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc
1882
+ QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ
1883
+ PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb
1884
+ MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG
1885
+ IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD
1886
+ VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3
1887
+ LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A
1888
+ dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
1889
+ AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA
1890
+ 4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg
1891
+ AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA
1892
+ egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6
1893
+ Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO
1894
+ PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv
1895
+ c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h
1896
+ cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw
1897
+ IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT
1898
+ WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV
1899
+ MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER
1900
+ MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp
1901
+ Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal
1902
+ HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT
1903
+ nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE
1904
+ aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
1905
+ 86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK
1906
+ yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB
1907
+ S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
1908
+ -----END CERTIFICATE-----
1909
+
1910
+ Certigna
1911
+ ========
1912
+ -----BEGIN CERTIFICATE-----
1913
+ MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw
1914
+ EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3
1915
+ MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI
1916
+ Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q
1917
+ XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH
1918
+ GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p
1919
+ ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg
1920
+ DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf
1921
+ Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ
1922
+ tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ
1923
+ BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J
1924
+ SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA
1925
+ hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+
1926
+ ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu
1927
+ PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
1928
+ 1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
1929
+ WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
1930
+ -----END CERTIFICATE-----
1931
+
1932
+ AC Ra\xC3\xADz Certic\xC3\xA1mara S.A.
1933
+ ======================================
1934
+ -----BEGIN CERTIFICATE-----
1935
+ MIIGZjCCBE6gAwIBAgIPB35Sk3vgFeNX8GmMy+wMMA0GCSqGSIb3DQEBBQUAMHsxCzAJBgNVBAYT
1936
+ AkNPMUcwRQYDVQQKDD5Tb2NpZWRhZCBDYW1lcmFsIGRlIENlcnRpZmljYWNpw7NuIERpZ2l0YWwg
1937
+ LSBDZXJ0aWPDoW1hcmEgUy5BLjEjMCEGA1UEAwwaQUMgUmHDrXogQ2VydGljw6FtYXJhIFMuQS4w
1938
+ HhcNMDYxMTI3MjA0NjI5WhcNMzAwNDAyMjE0MjAyWjB7MQswCQYDVQQGEwJDTzFHMEUGA1UECgw+
1939
+ U29jaWVkYWQgQ2FtZXJhbCBkZSBDZXJ0aWZpY2FjacOzbiBEaWdpdGFsIC0gQ2VydGljw6FtYXJh
1940
+ IFMuQS4xIzAhBgNVBAMMGkFDIFJhw616IENlcnRpY8OhbWFyYSBTLkEuMIICIjANBgkqhkiG9w0B
1941
+ AQEFAAOCAg8AMIICCgKCAgEAq2uJo1PMSCMI+8PPUZYILrgIem08kBeGqentLhM0R7LQcNzJPNCN
1942
+ yu5LF6vQhbCnIwTLqKL85XXbQMpiiY9QngE9JlsYhBzLfDe3fezTf3MZsGqy2IiKLUV0qPezuMDU
1943
+ 2s0iiXRNWhU5cxh0T7XrmafBHoi0wpOQY5fzp6cSsgkiBzPZkc0OnB8OIMfuuzONj8LSWKdf/WU3
1944
+ 4ojC2I+GdV75LaeHM/J4Ny+LvB2GNzmxlPLYvEqcgxhaBvzz1NS6jBUJJfD5to0EfhcSM2tXSExP
1945
+ 2yYe68yQ54v5aHxwD6Mq0Do43zeX4lvegGHTgNiRg0JaTASJaBE8rF9ogEHMYELODVoqDA+bMMCm
1946
+ 8Ibbq0nXl21Ii/kDwFJnmxL3wvIumGVC2daa49AZMQyth9VXAnow6IYm+48jilSH5L887uvDdUhf
1947
+ HjlvgWJsxS3EF1QZtzeNnDeRyPYL1epjb4OsOMLzP96a++EjYfDIJss2yKHzMI+ko6Kh3VOz3vCa
1948
+ Mh+DkXkwwakfU5tTohVTP92dsxA7SH2JD/ztA/X7JWR1DhcZDY8AFmd5ekD8LVkH2ZD6mq093ICK
1949
+ 5lw1omdMEWux+IBkAC1vImHFrEsm5VoQgpukg3s0956JkSCXjrdCx2bD0Omk1vUgjcTDlaxECp1b
1950
+ czwmPS9KvqfJpxAe+59QafMCAwEAAaOB5jCB4zAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
1951
+ AwIBBjAdBgNVHQ4EFgQU0QnQ6dfOeXRU+Tows/RtLAMDG2gwgaAGA1UdIASBmDCBlTCBkgYEVR0g
1952
+ ADCBiTArBggrBgEFBQcCARYfaHR0cDovL3d3dy5jZXJ0aWNhbWFyYS5jb20vZHBjLzBaBggrBgEF
1953
+ BQcCAjBOGkxMaW1pdGFjaW9uZXMgZGUgZ2FyYW507WFzIGRlIGVzdGUgY2VydGlmaWNhZG8gc2Ug
1954
+ cHVlZGVuIGVuY29udHJhciBlbiBsYSBEUEMuMA0GCSqGSIb3DQEBBQUAA4ICAQBclLW4RZFNjmEf
1955
+ AygPU3zmpFmps4p6xbD/CHwso3EcIRNnoZUSQDWDg4902zNc8El2CoFS3UnUmjIz75uny3XlesuX
1956
+ EpBcunvFm9+7OSPI/5jOCk0iAUgHforA1SBClETvv3eiiWdIG0ADBaGJ7M9i4z0ldma/Jre7Ir5v
1957
+ /zlXdLp6yQGVwZVR6Kss+LGGIOk/yzVb0hfpKv6DExdA7ohiZVvVO2Dpezy4ydV/NgIlqmjCMRW3
1958
+ MGXrfx1IebHPOeJCgBbT9ZMj/EyXyVo3bHwi2ErN0o42gzmRkBDI8ck1fj+404HGIGQatlDCIaR4
1959
+ 3NAvO2STdPCWkPHv+wlaNECW8DYSwaN0jJN+Qd53i+yG2dIPPy3RzECiiWZIHiCznCNZc6lEc7wk
1960
+ eZBWN7PGKX6jD/EpOe9+XCgycDWs2rjIdWb8m0w5R44bb5tNAlQiM+9hup4phO9OSzNHdpdqy35f
1961
+ /RWmnkJDW2ZaiogN9xa5P1FlK2Zqi9E4UqLWRhH6/JocdJ6PlwsCT2TG9WjTSy3/pDceiz+/RL5h
1962
+ RqGEPQgnTIEgd4kI6mdAXmwIUV80WoyWaM3X94nCHNMyAK9Sy9NgWyo6R35rMDOhYil/SrnhLecU
1963
+ Iw4OGEfhefwVVdCx/CVxY3UzHCMrr1zZ7Ud3YA47Dx7SwNxkBYn8eNZcLCZDqQ==
1964
+ -----END CERTIFICATE-----
1965
+
1966
+ TC TrustCenter Class 2 CA II
1967
+ ============================
1968
+ -----BEGIN CERTIFICATE-----
1969
+ MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
1970
+ REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
1971
+ IENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYw
1972
+ MTEyMTQzODQzWhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
1973
+ c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UE
1974
+ AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
1975
+ AQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jftMjWQ+nEdVl//OEd+DFw
1976
+ IxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKguNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2
1977
+ xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2JXjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQ
1978
+ Xa7pIXSSTYtZgo+U4+lK8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7u
1979
+ SNQZu+995OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1UdEwEB
1980
+ /wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3kUrL84J6E1wIqzCB
1981
+ 7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
1982
+ Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
1983
+ cnVzdENlbnRlciUyMENsYXNzJTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
1984
+ SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
1985
+ TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iSGNn3Bzn1LL4G
1986
+ dXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprtZjluS5TmVfwLG4t3wVMTZonZ
1987
+ KNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8au0WOB9/WIFaGusyiC2y8zl3gK9etmF1Kdsj
1988
+ TYjKUCjLhdLTEKJZbtOTVAB6okaVhgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kP
1989
+ JOzHdiEoZa5X6AeIdUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfk
1990
+ vQ==
1991
+ -----END CERTIFICATE-----
1992
+
1993
+ TC TrustCenter Class 3 CA II
1994
+ ============================
1995
+ -----BEGIN CERTIFICATE-----
1996
+ MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
1997
+ REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
1998
+ IENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYw
1999
+ MTEyMTQ0MTU3WhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
2000
+ c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UE
2001
+ AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
2002
+ AQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJWHt4bNwcwIi9v8Qbxq63W
2003
+ yKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+QVl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo
2004
+ 6SI7dYnWRBpl8huXJh0obazovVkdKyT21oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZ
2005
+ uV3bOx4a+9P/FRQI2AlqukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk
2006
+ 2ZyqBwi1Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1UdEwEB
2007
+ /wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NXXAek0CSnwPIA1DCB
2008
+ 7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
2009
+ Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
2010
+ cnVzdENlbnRlciUyMENsYXNzJTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
2011
+ SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
2012
+ TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlNirTzwppVMXzE
2013
+ O2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8TtXqluJucsG7Kv5sbviRmEb8
2014
+ yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9
2015
+ IJqDnxrcOfHFcqMRA/07QlIp2+gB95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal
2016
+ 092Y+tTmBvTwtiBjS+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc
2017
+ 5A==
2018
+ -----END CERTIFICATE-----
2019
+
2020
+ TC TrustCenter Universal CA I
2021
+ =============================
2022
+ -----BEGIN CERTIFICATE-----
2023
+ MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTELMAkGA1UEBhMC
2024
+ REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy
2025
+ IFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcN
2026
+ MDYwMzIyMTU1NDI4WhcNMjUxMjMxMjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMg
2027
+ VHJ1c3RDZW50ZXIgR21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYw
2028
+ JAYDVQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcNAQEBBQAD
2029
+ ggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSRJJZ4Hgmgm5qVSkr1YnwC
2030
+ qMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3TfCZdzHd55yx4Oagmcw6iXSVphU9VDprv
2031
+ xrlE4Vc93x9UIuVvZaozhDrzznq+VZeujRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtw
2032
+ ag+1m7Z3W0hZneTvWq3zwZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9O
2033
+ gdwZu5GQfezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYDVR0j
2034
+ BBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
2035
+ AYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0GCSqGSIb3DQEBBQUAA4IBAQAo0uCG
2036
+ 1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X17caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/Cy
2037
+ vwbZ71q+s2IhtNerNXxTPqYn8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3
2038
+ ghUJGooWMNjsydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT
2039
+ ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/2TYcuiUaUj0a
2040
+ 7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY
2041
+ -----END CERTIFICATE-----
2042
+
2043
+ Deutsche Telekom Root CA 2
2044
+ ==========================
2045
+ -----BEGIN CERTIFICATE-----
2046
+ MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT
2047
+ RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG
2048
+ A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5
2049
+ MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G
2050
+ A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS
2051
+ b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5
2052
+ bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI
2053
+ KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY
2054
+ AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK
2055
+ Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV
2056
+ jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV
2057
+ HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr
2058
+ E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy
2059
+ zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8
2060
+ rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G
2061
+ dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
2062
+ Cm26OWMohpLzGITY+9HPBVZkVw==
2063
+ -----END CERTIFICATE-----
2064
+
2065
+ ComSign Secured CA
2066
+ ==================
2067
+ -----BEGIN CERTIFICATE-----
2068
+ MIIDqzCCApOgAwIBAgIRAMcoRwmzuGxFjB36JPU2TukwDQYJKoZIhvcNAQEFBQAwPDEbMBkGA1UE
2069
+ AxMSQ29tU2lnbiBTZWN1cmVkIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0w
2070
+ NDAzMjQxMTM3MjBaFw0yOTAzMTYxNTA0NTZaMDwxGzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBD
2071
+ QTEQMA4GA1UEChMHQ29tU2lnbjELMAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
2072
+ ggEKAoIBAQDGtWhfHZQVw6QIVS3joFd67+l0Kru5fFdJGhFeTymHDEjWaueP1H5XJLkGieQcPOqs
2073
+ 49ohgHMhCu95mGwfCP+hUH3ymBvJVG8+pSjsIQQPRbsHPaHA+iqYHU4Gk/v1iDurX8sWv+bznkqH
2074
+ 7Rnqwp9D5PGBpX8QTz7RSmKtUxvLg/8HZaWSLWapW7ha9B20IZFKF3ueMv5WJDmyVIRD9YTC2LxB
2075
+ kMyd1mja6YJQqTtoz7VdApRgFrFD2UNd3V2Hbuq7s8lr9gOUCXDeFhF6K+h2j0kQmHe5Y1yLM5d1
2076
+ 9guMsqtb3nQgJT/j8xH5h2iGNXHDHYwt6+UarA9z1YJZQIDTAgMBAAGjgacwgaQwDAYDVR0TBAUw
2077
+ AwEB/zBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vZmVkaXIuY29tc2lnbi5jby5pbC9jcmwvQ29t
2078
+ U2lnblNlY3VyZWRDQS5jcmwwDgYDVR0PAQH/BAQDAgGGMB8GA1UdIwQYMBaAFMFL7XC29z58ADsA
2079
+ j8c+DkWfHl3sMB0GA1UdDgQWBBTBS+1wtvc+fAA7AI/HPg5Fnx5d7DANBgkqhkiG9w0BAQUFAAOC
2080
+ AQEAFs/ukhNQq3sUnjO2QiBq1BW9Cav8cujvR3qQrFHBZE7piL1DRYHjZiM/EoZNGeQFsOY3wo3a
2081
+ BijJD4mkU6l1P7CW+6tMM1X5eCZGbxs2mPtCdsGCuY7e+0X5YxtiOzkGynd6qDwJz2w2PQ8KRUtp
2082
+ FhpFfTMDZflScZAmlaxMDPWLkz/MdXSFmLr/YnpNH4n+rr2UAJm/EaXc4HnFFgt9AmEd6oX5AhVP
2083
+ 51qJThRv4zdLhfXBPGHg/QVBspJ/wx2g0K5SZGBrGMYmnNj1ZOQ2GmKfig8+/21OGVZOIJFsnzQz
2084
+ OjRXUDpvgV4GxvU+fE6OK85lBi5d0ipTdF7Tbieejw==
2085
+ -----END CERTIFICATE-----
2086
+
2087
+ Cybertrust Global Root
2088
+ ======================
2089
+ -----BEGIN CERTIFICATE-----
2090
+ MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li
2091
+ ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4
2092
+ MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD
2093
+ ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
2094
+ +Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW
2095
+ 0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL
2096
+ AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin
2097
+ 89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT
2098
+ 8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP
2099
+ BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2
2100
+ MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G
2101
+ A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO
2102
+ lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi
2103
+ 5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2
2104
+ hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T
2105
+ X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
2106
+ WL1WMRJOEcgh4LMRkWXbtKaIOM5V
2107
+ -----END CERTIFICATE-----
2108
+
2109
+ ePKI Root Certification Authority
2110
+ =================================
2111
+ -----BEGIN CERTIFICATE-----
2112
+ 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
2138
+ -----END CERTIFICATE-----
2139
+
2140
+ T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3
2141
+ =============================================================================================================================
2142
+ -----BEGIN CERTIFICATE-----
2143
+ MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH
2144
+ DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q
2145
+ aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry
2146
+ b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV
2147
+ BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg
2148
+ S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4
2149
+ MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl
2150
+ IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF
2151
+ n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl
2152
+ IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft
2153
+ dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl
2154
+ cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B
2155
+ AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO
2156
+ Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1
2157
+ xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR
2158
+ 6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
2159
+ hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd
2160
+ BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
2161
+ MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4
2162
+ N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT
2163
+ y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh
2164
+ LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M
2165
+ dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
2166
+ -----END CERTIFICATE-----
2167
+
2168
+ Buypass Class 2 CA 1
2169
+ ====================
2170
+ -----BEGIN CERTIFICATE-----
2171
+ MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
2172
+ QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2
2173
+ MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
2174
+ c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI
2175
+ hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M
2176
+ cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83
2177
+ 0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4
2178
+ 0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R
2179
+ uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC
2180
+ MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P
2181
+ AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV
2182
+ 1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt
2183
+ 7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2
2184
+ fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w
2185
+ wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
2186
+ -----END CERTIFICATE-----
2187
+
2188
+ Buypass Class 3 CA 1
2189
+ ====================
2190
+ -----BEGIN CERTIFICATE-----
2191
+ MIIDUzCCAjugAwIBAgIBAjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
2192
+ QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMyBDQSAxMB4XDTA1
2193
+ MDUwOTE0MTMwM1oXDTE1MDUwOTE0MTMwM1owSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
2194
+ c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDMgQ0EgMTCCASIwDQYJKoZI
2195
+ hvcNAQEBBQADggEPADCCAQoCggEBAKSO13TZKWTeXx+HgJHqTjnmGcZEC4DVC69TB4sSveZn8AKx
2196
+ ifZgisRbsELRwCGoy+Gb72RRtqfPFfV0gGgEkKBYouZ0plNTVUhjP5JW3SROjvi6K//zNIqeKNc0
2197
+ n6wv1g/xpC+9UrJJhW05NfBEMJNGJPO251P7vGGvqaMU+8IXF4Rs4HyI+MkcVyzwPX6UvCWThOia
2198
+ AJpFBUJXgPROztmuOfbIUxAMZTpHe2DC1vqRycZxbL2RhzyRhkmr8w+gbCZ2Xhysm3HljbybIR6c
2199
+ 1jh+JIAVMYKWsUnTYjdbiAwKYjT+p0h+mbEwi5A3lRyoH6UsjfRVyNvdWQrCrXig9IsCAwEAAaNC
2200
+ MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUOBTmyPCppAP0Tj4io1vy1uCtQHQwDgYDVR0P
2201
+ AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQABZ6OMySU9E2NdFm/soT4JXJEVKirZgCFPBdy7
2202
+ pYmrEzMqnji3jG8CcmPHc3ceCQa6Oyh7pEfJYWsICCD8igWKH7y6xsL+z27sEzNxZy5p+qksP2bA
2203
+ EllNC1QCkoS72xLvg3BweMhT+t/Gxv/ciC8HwEmdMldg0/L2mSlf56oBzKwzqBwKu5HEA6BvtjT5
2204
+ htOzdlSY9EqBs1OdTUDs5XcTRa9bqh/YL0yCe/4qxFi7T/ye/QNlGioOw6UgFpRreaaiErS7GqQj
2205
+ el/wroQk5PMr+4okoyeYZdowdXb8GZHo2+ubPzK/QJcHJrrM85SFSnonk8+QQtS4Wxam58tAA915
2206
+ -----END CERTIFICATE-----
2207
+
2208
+ EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
2209
+ ==========================================================================
2210
+ -----BEGIN CERTIFICATE-----
2211
+ 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
2238
+ -----END CERTIFICATE-----
2239
+
2240
+ certSIGN ROOT CA
2241
+ ================
2242
+ -----BEGIN CERTIFICATE-----
2243
+ MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD
2244
+ VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa
2245
+ Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE
2246
+ CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I
2247
+ JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH
2248
+ rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2
2249
+ ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD
2250
+ 0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943
2251
+ AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
2252
+ Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB
2253
+ AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8
2254
+ SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0
2255
+ x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt
2256
+ vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
2257
+ TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
2258
+ -----END CERTIFICATE-----
2259
+
2260
+ CNNIC ROOT
2261
+ ==========
2262
+ -----BEGIN CERTIFICATE-----
2263
+ MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE
2264
+ ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw
2265
+ OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw
2266
+ ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD
2267
+ o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz
2268
+ VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT
2269
+ VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or
2270
+ czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK
2271
+ y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC
2272
+ wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S
2273
+ lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5
2274
+ Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM
2275
+ O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8
2276
+ BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2
2277
+ G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m
2278
+ mxE=
2279
+ -----END CERTIFICATE-----
2280
+
2281
+ ApplicationCA - Japanese Government
2282
+ ===================================
2283
+ -----BEGIN CERTIFICATE-----
2284
+ MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT
2285
+ SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw
2286
+ MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl
2287
+ cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
2288
+ CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4
2289
+ fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN
2290
+ wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE
2291
+ jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu
2292
+ nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU
2293
+ WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV
2294
+ BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD
2295
+ vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs
2296
+ o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g
2297
+ /DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD
2298
+ io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW
2299
+ dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
2300
+ rosot4LKGAfmt1t06SAZf7IbiVQ=
2301
+ -----END CERTIFICATE-----
2302
+
2303
+ GeoTrust Primary Certification Authority - G3
2304
+ =============================================
2305
+ -----BEGIN CERTIFICATE-----
2306
+ MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE
2307
+ BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0
2308
+ IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy
2309
+ eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz
2310
+ NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo
2311
+ YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT
2312
+ LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
2313
+ hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j
2314
+ K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE
2315
+ c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C
2316
+ IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu
2317
+ dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC
2318
+ MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr
2319
+ 2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9
2320
+ cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE
2321
+ Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
2322
+ AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s
2323
+ t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt
2324
+ -----END CERTIFICATE-----
2325
+
2326
+ thawte Primary Root CA - G2
2327
+ ===========================
2328
+ -----BEGIN CERTIFICATE-----
2329
+ MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC
2330
+ VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu
2331
+ IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg
2332
+ Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV
2333
+ MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG
2334
+ b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt
2335
+ IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS
2336
+ LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5
2337
+ 8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
2338
+ mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN
2339
+ G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K
2340
+ rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
2341
+ -----END CERTIFICATE-----
2342
+
2343
+ thawte Primary Root CA - G3
2344
+ ===========================
2345
+ -----BEGIN CERTIFICATE-----
2346
+ MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE
2347
+ BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
2348
+ aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
2349
+ cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w
2350
+ ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
2351
+ d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD
2352
+ VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG
2353
+ A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
2354
+ MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At
2355
+ P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC
2356
+ +BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY
2357
+ 7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW
2358
+ vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E
2359
+ BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ
2360
+ KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK
2361
+ A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
2362
+ t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC
2363
+ 8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm
2364
+ er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A=
2365
+ -----END CERTIFICATE-----
2366
+
2367
+ GeoTrust Primary Certification Authority - G2
2368
+ =============================================
2369
+ -----BEGIN CERTIFICATE-----
2370
+ MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC
2371
+ VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu
2372
+ Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD
2373
+ ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1
2374
+ OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
2375
+ MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl
2376
+ b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG
2377
+ BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc
2378
+ KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD
2379
+ VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+
2380
+ EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m
2381
+ ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2
2382
+ npaqBA+K
2383
+ -----END CERTIFICATE-----
2384
+
2385
+ VeriSign Universal Root Certification Authority
2386
+ ===============================================
2387
+ -----BEGIN CERTIFICATE-----
2388
+ MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE
2389
+ BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
2390
+ ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
2391
+ IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u
2392
+ IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV
2393
+ UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
2394
+ cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
2395
+ IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0
2396
+ aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj
2397
+ 1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP
2398
+ MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72
2399
+ 9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I
2400
+ AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR
2401
+ tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G
2402
+ CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O
2403
+ a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
2404
+ DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3
2405
+ Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx
2406
+ Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx
2407
+ P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P
2408
+ wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
2409
+ mJO37M2CYfE45k+XmCpajQ==
2410
+ -----END CERTIFICATE-----
2411
+
2412
+ VeriSign Class 3 Public Primary Certification Authority - G4
2413
+ ============================================================
2414
+ -----BEGIN CERTIFICATE-----
2415
+ MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC
2416
+ VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3
2417
+ b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz
2418
+ ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj
2419
+ YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL
2420
+ MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
2421
+ cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo
2422
+ b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5
2423
+ IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8
2424
+ Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz
2425
+ rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB
2426
+ /zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw
2427
+ HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u
2428
+ Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD
2429
+ A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx
2430
+ AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
2431
+ -----END CERTIFICATE-----
2432
+
2433
+ NetLock Arany (Class Gold) Főtanúsítvány
2434
+ ============================================
2435
+ -----BEGIN CERTIFICATE-----
2436
+ MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
2437
+ A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
2438
+ dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB
2439
+ cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx
2440
+ MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO
2441
+ ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv
2442
+ biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6
2443
+ c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu
2444
+ 0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw
2445
+ /HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk
2446
+ H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw
2447
+ fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1
2448
+ neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB
2449
+ BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW
2450
+ qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta
2451
+ YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
2452
+ bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna
2453
+ NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
2454
+ dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
2455
+ -----END CERTIFICATE-----
2456
+
2457
+ Staat der Nederlanden Root CA - G2
2458
+ ==================================
2459
+ -----BEGIN CERTIFICATE-----
2460
+ MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
2461
+ CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
2462
+ Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC
2463
+ TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
2464
+ ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ
2465
+ 5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn
2466
+ vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj
2467
+ CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil
2468
+ e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR
2469
+ OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI
2470
+ CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65
2471
+ 48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi
2472
+ trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737
2473
+ qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB
2474
+ AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC
2475
+ ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV
2476
+ HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA
2477
+ A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz
2478
+ +51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj
2479
+ f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN
2480
+ kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk
2481
+ CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF
2482
+ URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb
2483
+ CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h
2484
+ oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV
2485
+ IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm
2486
+ 66+KAQ==
2487
+ -----END CERTIFICATE-----
2488
+
2489
+ CA Disig
2490
+ ========
2491
+ -----BEGIN CERTIFICATE-----
2492
+ MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK
2493
+ QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw
2494
+ MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz
2495
+ bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3
2496
+ DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm
2497
+ GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD
2498
+ Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo
2499
+ hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt
2500
+ ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w
2501
+ gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P
2502
+ AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz
2503
+ aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff
2504
+ ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa
2505
+ BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t
2506
+ WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3
2507
+ mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/
2508
+ CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K
2509
+ ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA
2510
+ 4Z7CRneC9VkGjCFMhwnN5ag=
2511
+ -----END CERTIFICATE-----
2512
+
2513
+ Juur-SK
2514
+ =======
2515
+ -----BEGIN CERTIFICATE-----
2516
+ MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA
2517
+ c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw
2518
+ DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG
2519
+ SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy
2520
+ aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
2521
+ ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf
2522
+ TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC
2523
+ +Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw
2524
+ UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa
2525
+ Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF
2526
+ MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD
2527
+ HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh
2528
+ AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA
2529
+ cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr
2530
+ AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw
2531
+ cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE
2532
+ FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G
2533
+ A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo
2534
+ ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL
2535
+ abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678
2536
+ IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh
2537
+ Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2
2538
+ yyqcjg==
2539
+ -----END CERTIFICATE-----
2540
+
2541
+ Hongkong Post Root CA 1
2542
+ =======================
2543
+ -----BEGIN CERTIFICATE-----
2544
+ MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT
2545
+ DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx
2546
+ NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n
2547
+ IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF
2548
+ AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1
2549
+ ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr
2550
+ auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh
2551
+ qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY
2552
+ V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV
2553
+ HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i
2554
+ h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio
2555
+ l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei
2556
+ IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps
2557
+ T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT
2558
+ c4afU9hDDl3WY4JxHYB0yvbiAmvZWg==
2559
+ -----END CERTIFICATE-----
2560
+
2561
+ SecureSign RootCA11
2562
+ ===================
2563
+ -----BEGIN CERTIFICATE-----
2564
+ MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi
2565
+ SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS
2566
+ b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw
2567
+ KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1
2568
+ cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL
2569
+ TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO
2570
+ wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq
2571
+ g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP
2572
+ O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA
2573
+ bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX
2574
+ t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh
2575
+ OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r
2576
+ bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ
2577
+ Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01
2578
+ y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
2579
+ lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
2580
+ -----END CERTIFICATE-----
2581
+
2582
+ ACEDICOM Root
2583
+ =============
2584
+ -----BEGIN CERTIFICATE-----
2585
+ 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
2611
+ -----END CERTIFICATE-----
2612
+
2613
+ Verisign Class 3 Public Primary Certification Authority
2614
+ =======================================================
2615
+ -----BEGIN CERTIFICATE-----
2616
+ MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMx
2617
+ FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5
2618
+ IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVow
2619
+ XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz
2620
+ IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
2621
+ A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94
2622
+ f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol
2623
+ hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBABByUqkFFBky
2624
+ CEHwxWsKzH4PIRnN5GfcX6kb5sroc50i2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWX
2625
+ bj9T/UWZYB2oK0z5XqcJ2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/
2626
+ D/xwzoiQ
2627
+ -----END CERTIFICATE-----
2628
+
2629
+ Microsec e-Szigno Root CA 2009
2630
+ ==============================
2631
+ -----BEGIN CERTIFICATE-----
2632
+ MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER
2633
+ MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv
2634
+ c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
2635
+ dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE
2636
+ BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt
2637
+ U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw
2638
+ DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA
2639
+ fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG
2640
+ 0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA
2641
+ pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm
2642
+ 1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC
2643
+ AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf
2644
+ QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE
2645
+ FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o
2646
+ lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX
2647
+ I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
2648
+ tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02
2649
+ yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi
2650
+ LXpUq3DDfSJlgnCW
2651
+ -----END CERTIFICATE-----
2652
+
2653
+ E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi
2654
+ ===================================================
2655
+ -----BEGIN CERTIFICATE-----
2656
+ MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
2657
+ EwJUUjEoMCYGA1UEChMfRWxla3Ryb25payBCaWxnaSBHdXZlbmxpZ2kgQS5TLjE8MDoGA1UEAxMz
2658
+ ZS1HdXZlbiBLb2sgRWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhZ2xheWljaXNpMB4XDTA3
2659
+ MDEwNDExMzI0OFoXDTE3MDEwNDExMzI0OFowdTELMAkGA1UEBhMCVFIxKDAmBgNVBAoTH0VsZWt0
2660
+ cm9uaWsgQmlsZ2kgR3V2ZW5saWdpIEEuUy4xPDA6BgNVBAMTM2UtR3V2ZW4gS29rIEVsZWt0cm9u
2661
+ aWsgU2VydGlmaWthIEhpem1ldCBTYWdsYXlpY2lzaTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
2662
+ AQoCggEBAMMSIJ6wXgBljU5Gu4Bc6SwGl9XzcslwuedLZYDBS75+PNdUMZTe1RK6UxYC6lhj71vY
2663
+ 8+0qGqpxSKPcEC1fX+tcS5yWCEIlKBHMilpiAVDV6wlTL/jDj/6z/P2douNffb7tC+Bg62nsM+3Y
2664
+ jfsSSYMAyYuXjDtzKjKzEve5TfL0TW3H5tYmNwjy2f1rXKPlSFxYvEK+A1qBuhw1DADT9SN+cTAI
2665
+ JjjcJRFHLfO6IxClv7wC90Nex/6wN1CZew+TzuZDLMN+DfIcQ2Zgy2ExR4ejT669VmxMvLz4Bcpk
2666
+ 9Ok0oSy1c+HCPujIyTQlCFzz7abHlJ+tiEMl1+E5YP6sOVkCAwEAAaNCMEAwDgYDVR0PAQH/BAQD
2667
+ AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ/uRLOU1fqRTy7ZVZoEVtstxNulMA0GCSqG
2668
+ SIb3DQEBBQUAA4IBAQB/X7lTW2M9dTLn+sR0GstG30ZpHFLPqk/CaOv/gKlR6D1id4k9CnU58W5d
2669
+ F4dvaAXBlGzZXd/aslnLpRCKysw5zZ/rTt5S/wzw9JKp8mxTq5vSR6AfdPebmvEvFZ96ZDAYBzwq
2670
+ D2fK/A+JYZ1lpTzlvBNbCNvj/+27BrtqBrF6T2XGgv0enIu1De5Iu7i9qgi0+6N8y5/NkHZchpZ4
2671
+ Vwpm+Vganf2XKWDeEaaQHBkc7gGWIjQ0LpH5t8Qn0Xvmv/uARFoW5evg1Ao4vOSR49XrXMGs3xtq
2672
+ fJ7lddK2l4fbzIcrQzqECK+rPNv3PGYxhrCdU3nt+CPeQuMtgvEP5fqX
2673
+ -----END CERTIFICATE-----
2674
+
2675
+ GlobalSign Root CA - R3
2676
+ =======================
2677
+ -----BEGIN CERTIFICATE-----
2678
+ MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv
2679
+ YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
2680
+ bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
2681
+ aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
2682
+ bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt
2683
+ iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ
2684
+ 0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3
2685
+ rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl
2686
+ OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2
2687
+ xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
2688
+ FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7
2689
+ lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8
2690
+ EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E
2691
+ bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18
2692
+ YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r
2693
+ kpeDMdmztcpHWD9f
2694
+ -----END CERTIFICATE-----
2695
+
2696
+ Autoridad de Certificacion Firmaprofesional CIF A62634068
2697
+ =========================================================
2698
+ -----BEGIN CERTIFICATE-----
2699
+ MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA
2700
+ BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
2701
+ MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw
2702
+ QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB
2703
+ NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD
2704
+ Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P
2705
+ B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY
2706
+ 7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH
2707
+ ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI
2708
+ plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX
2709
+ MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX
2710
+ LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK
2711
+ bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU
2712
+ vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud
2713
+ EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH
2714
+ DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
2715
+ cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA
2716
+ bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx
2717
+ ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx
2718
+ 51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk
2719
+ R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP
2720
+ T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f
2721
+ Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl
2722
+ osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR
2723
+ crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR
2724
+ saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD
2725
+ KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi
2726
+ 6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
2727
+ -----END CERTIFICATE-----
2728
+
2729
+ Izenpe.com
2730
+ ==========
2731
+ -----BEGIN CERTIFICATE-----
2732
+ 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
2759
+ -----END CERTIFICATE-----
2760
+
2761
+ Chambers of Commerce Root - 2008
2762
+ ================================
2763
+ -----BEGIN CERTIFICATE-----
2764
+ MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD
2765
+ MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
2766
+ bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
2767
+ QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy
2768
+ Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl
2769
+ ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF
2770
+ EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl
2771
+ cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
2772
+ AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA
2773
+ XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj
2774
+ h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/
2775
+ ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk
2776
+ NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g
2777
+ D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331
2778
+ lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ
2779
+ 0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
2780
+ ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2
2781
+ EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI
2782
+ G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ
2783
+ BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh
2784
+ bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh
2785
+ bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC
2786
+ CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH
2787
+ AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1
2788
+ wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH
2789
+ 3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU
2790
+ RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6
2791
+ M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1
2792
+ YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF
2793
+ 9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK
2794
+ zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG
2795
+ nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
2796
+ OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ
2797
+ -----END CERTIFICATE-----
2798
+
2799
+ Global Chambersign Root - 2008
2800
+ ==============================
2801
+ -----BEGIN CERTIFICATE-----
2802
+ MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD
2803
+ MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
2804
+ bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
2805
+ QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx
2806
+ NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg
2807
+ Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ
2808
+ QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
2809
+ aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf
2810
+ VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf
2811
+ XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0
2812
+ ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB
2813
+ /gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA
2814
+ TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M
2815
+ H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe
2816
+ Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF
2817
+ HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
2818
+ wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB
2819
+ AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT
2820
+ BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE
2821
+ BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm
2822
+ aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm
2823
+ aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp
2824
+ 1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0
2825
+ dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG
2826
+ /5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6
2827
+ ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s
2828
+ dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg
2829
+ 9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH
2830
+ foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du
2831
+ qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr
2832
+ P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq
2833
+ c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
2834
+ 09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
2835
+ -----END CERTIFICATE-----
2836
+
2837
+ Go Daddy Root Certificate Authority - G2
2838
+ ========================================
2839
+ -----BEGIN CERTIFICATE-----
2840
+ MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
2841
+ B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu
2842
+ MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
2843
+ MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
2844
+ b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G
2845
+ A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
2846
+ hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq
2847
+ 9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD
2848
+ +qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd
2849
+ fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl
2850
+ NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC
2851
+ MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9
2852
+ BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac
2853
+ vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r
2854
+ 5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV
2855
+ N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
2856
+ LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1
2857
+ -----END CERTIFICATE-----
2858
+
2859
+ Starfield Root Certificate Authority - G2
2860
+ =========================================
2861
+ -----BEGIN CERTIFICATE-----
2862
+ MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
2863
+ B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
2864
+ b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
2865
+ eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw
2866
+ DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg
2867
+ VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB
2868
+ dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv
2869
+ W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs
2870
+ bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk
2871
+ N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf
2872
+ ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU
2873
+ JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
2874
+ AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol
2875
+ TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx
2876
+ 4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw
2877
+ F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
2878
+ pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ
2879
+ c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
2880
+ -----END CERTIFICATE-----
2881
+
2882
+ Starfield Services Root Certificate Authority - G2
2883
+ ==================================================
2884
+ -----BEGIN CERTIFICATE-----
2885
+ MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
2886
+ B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
2887
+ b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl
2888
+ IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV
2889
+ BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT
2890
+ dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg
2891
+ Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
2892
+ AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2
2893
+ h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa
2894
+ hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP
2895
+ LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB
2896
+ rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
2897
+ AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG
2898
+ SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP
2899
+ E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy
2900
+ xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
2901
+ iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza
2902
+ YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6
2903
+ -----END CERTIFICATE-----
2904
+
2905
+ AffirmTrust Commercial
2906
+ ======================
2907
+ -----BEGIN CERTIFICATE-----
2908
+ MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS
2909
+ BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw
2910
+ MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
2911
+ bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF
2912
+ AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb
2913
+ DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV
2914
+ C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6
2915
+ BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww
2916
+ MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV
2917
+ HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
2918
+ AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG
2919
+ hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi
2920
+ qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv
2921
+ 0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh
2922
+ sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
2923
+ -----END CERTIFICATE-----
2924
+
2925
+ AffirmTrust Networking
2926
+ ======================
2927
+ -----BEGIN CERTIFICATE-----
2928
+ MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS
2929
+ BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw
2930
+ MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
2931
+ bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF
2932
+ AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE
2933
+ Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI
2934
+ dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24
2935
+ /PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb
2936
+ h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV
2937
+ HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
2938
+ AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu
2939
+ UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6
2940
+ 12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23
2941
+ WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9
2942
+ /ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
2943
+ -----END CERTIFICATE-----
2944
+
2945
+ AffirmTrust Premium
2946
+ ===================
2947
+ -----BEGIN CERTIFICATE-----
2948
+ MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS
2949
+ BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy
2950
+ OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy
2951
+ dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
2952
+ MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn
2953
+ BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV
2954
+ 5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs
2955
+ +7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd
2956
+ GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R
2957
+ p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI
2958
+ S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04
2959
+ 6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5
2960
+ /bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo
2961
+ +Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB
2962
+ /wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv
2963
+ MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
2964
+ Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC
2965
+ 6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S
2966
+ L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK
2967
+ +4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV
2968
+ BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg
2969
+ IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60
2970
+ g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb
2971
+ zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw==
2972
+ -----END CERTIFICATE-----
2973
+
2974
+ AffirmTrust Premium ECC
2975
+ =======================
2976
+ -----BEGIN CERTIFICATE-----
2977
+ MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV
2978
+ BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx
2979
+ MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U
2980
+ cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA
2981
+ IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ
2982
+ N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW
2983
+ BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK
2984
+ BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X
2985
+ 57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM
2986
+ eQ==
2987
+ -----END CERTIFICATE-----
2988
+
2989
+ Certum Trusted Network CA
2990
+ =========================
2991
+ -----BEGIN CERTIFICATE-----
2992
+ MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK
2993
+ ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv
2994
+ biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy
2995
+ MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU
2996
+ ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
2997
+ MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
2998
+ AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC
2999
+ l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J
3000
+ J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4
3001
+ fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0
3002
+ cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB
3003
+ Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw
3004
+ DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj
3005
+ jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1
3006
+ mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj
3007
+ Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
3008
+ 03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
3009
+ -----END CERTIFICATE-----
3010
+
3011
+ Certinomis - Autorité Racine
3012
+ =============================
3013
+ -----BEGIN CERTIFICATE-----
3014
+ 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
3039
+ vgt2Fl43N+bYdJeimUV5
3040
+ -----END CERTIFICATE-----
3041
+
3042
+ Root CA Generalitat Valenciana
3043
+ ==============================
3044
+ -----BEGIN CERTIFICATE-----
3045
+ MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE
3046
+ ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290
3047
+ IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3
3048
+ WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE
3049
+ CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G
3050
+ CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2
3051
+ F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B
3052
+ ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ
3053
+ D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte
3054
+ JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB
3055
+ AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n
3056
+ dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB
3057
+ ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl
3058
+ AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA
3059
+ YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy
3060
+ AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
3061
+ aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt
3062
+ AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA
3063
+ YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu
3064
+ AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA
3065
+ OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0
3066
+ dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV
3067
+ BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G
3068
+ A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S
3069
+ b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh
3070
+ TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz
3071
+ Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63
3072
+ NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH
3073
+ iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt
3074
+ +GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
3075
+ -----END CERTIFICATE-----
3076
+
3077
+ A-Trust-nQual-03
3078
+ ================
3079
+ -----BEGIN CERTIFICATE-----
3080
+ MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJBVDFIMEYGA1UE
3081
+ Cgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy
3082
+ a2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5RdWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5R
3083
+ dWFsLTAzMB4XDTA1MDgxNzIyMDAwMFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgw
3084
+ RgYDVQQKDD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0
3085
+ ZW52ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMMEEEtVHJ1
3086
+ c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtPWFuA/OQO8BBC4SA
3087
+ zewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUjlUC5B3ilJfYKvUWG6Nm9wASOhURh73+n
3088
+ yfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZznF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPE
3089
+ SU7l0+m0iKsMrmKS1GWH2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4
3090
+ iHQF63n1k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs2e3V
3091
+ cuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECERqlWdV
3092
+ eRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAVdRU0VlIXLOThaq/Yy/kgM40
3093
+ ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fGKOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmr
3094
+ sQd7TZjTXLDR8KdCoLXEjq/+8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZd
3095
+ JXDRZslo+S4RFGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS
3096
+ mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmEDNuxUCAKGkq6
3097
+ ahq97BvIxYSazQ==
3098
+ -----END CERTIFICATE-----
3099
+
3100
+ TWCA Root Certification Authority
3101
+ =================================
3102
+ -----BEGIN CERTIFICATE-----
3103
+ MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ
3104
+ VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh
3105
+ dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG
3106
+ EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB
3107
+ IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
3108
+ AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx
3109
+ QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC
3110
+ oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP
3111
+ 4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r
3112
+ y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
3113
+ BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG
3114
+ 9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC
3115
+ mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW
3116
+ QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY
3117
+ T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny
3118
+ Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
3119
+ -----END CERTIFICATE-----
3120
+
3121
+ Security Communication RootCA2
3122
+ ==============================
3123
+ -----BEGIN CERTIFICATE-----
3124
+ MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
3125
+ U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh
3126
+ dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC
3127
+ SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy
3128
+ aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
3129
+ ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++
3130
+ +T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R
3131
+ 3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV
3132
+ spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K
3133
+ EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8
3134
+ QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
3135
+ CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj
3136
+ u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk
3137
+ 3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q
3138
+ tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29
3139
+ mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
3140
+ -----END CERTIFICATE-----
3141
+
3142
+ EC-ACC
3143
+ ======
3144
+ -----BEGIN CERTIFICATE-----
3145
+ MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE
3146
+ BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w
3147
+ ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD
3148
+ VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE
3149
+ CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT
3150
+ BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7
3151
+ MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt
3152
+ SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl
3153
+ Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh
3154
+ cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND
3155
+ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK
3156
+ w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT
3157
+ ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4
3158
+ HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a
3159
+ E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw
3160
+ 0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
3161
+ BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD
3162
+ VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0
3163
+ Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l
3164
+ dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ
3165
+ lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa
3166
+ Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe
3167
+ l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2
3168
+ E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D
3169
+ 5EI=
3170
+ -----END CERTIFICATE-----
3171
+
3172
+ Hellenic Academic and Research Institutions RootCA 2011
3173
+ =======================================================
3174
+ -----BEGIN CERTIFICATE-----
3175
+ MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT
3176
+ O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y
3177
+ aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
3178
+ IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT
3179
+ AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
3180
+ IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo
3181
+ IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
3182
+ AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI
3183
+ 1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa
3184
+ 71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u
3185
+ 8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH
3186
+ 3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/
3187
+ MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8
3188
+ MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu
3189
+ b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt
3190
+ XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
3191
+ TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD
3192
+ /md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N
3193
+ 7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4
3194
+ -----END CERTIFICATE-----
3195
+
3196
+ Actalis Authentication Root CA
3197
+ ==============================
3198
+ -----BEGIN CERTIFICATE-----
3199
+ MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM
3200
+ BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE
3201
+ AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky
3202
+ MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz
3203
+ IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
3204
+ IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ
3205
+ wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa
3206
+ by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6
3207
+ zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f
3208
+ YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2
3209
+ oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l
3210
+ EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7
3211
+ hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8
3212
+ EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5
3213
+ jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY
3214
+ iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
3215
+ ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI
3216
+ WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0
3217
+ JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx
3218
+ K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+
3219
+ Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC
3220
+ 4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo
3221
+ 2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz
3222
+ lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem
3223
+ OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9
3224
+ vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
3225
+ -----END CERTIFICATE-----
3226
+
3227
+ Trustis FPS Root CA
3228
+ ===================
3229
+ -----BEGIN CERTIFICATE-----
3230
+ MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG
3231
+ EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290
3232
+ IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV
3233
+ BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ
3234
+ KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ
3235
+ RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk
3236
+ H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa
3237
+ cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt
3238
+ o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA
3239
+ AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd
3240
+ BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c
3241
+ GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC
3242
+ yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P
3243
+ 8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV
3244
+ l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl
3245
+ iB6XzCGcKQENZetX2fNXlrtIzYE=
3246
+ -----END CERTIFICATE-----
3247
+
3248
+ StartCom Certification Authority
3249
+ ================================
3250
+ -----BEGIN CERTIFICATE-----
3251
+ MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
3252
+ U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
3253
+ ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
3254
+ NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
3255
+ LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
3256
+ U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
3257
+ ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
3258
+ o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
3259
+ Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
3260
+ eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
3261
+ 2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
3262
+ 6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
3263
+ osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
3264
+ untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
3265
+ UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
3266
+ 37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
3267
+ VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ
3268
+ Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0
3269
+ dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu
3270
+ c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv
3271
+ bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0
3272
+ aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0
3273
+ aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t
3274
+ L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG
3275
+ cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5
3276
+ fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm
3277
+ N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN
3278
+ Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T
3279
+ tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX
3280
+ e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA
3281
+ 2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs
3282
+ HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
3283
+ JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib
3284
+ D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8=
3285
+ -----END CERTIFICATE-----
3286
+
3287
+ StartCom Certification Authority G2
3288
+ ===================================
3289
+ -----BEGIN CERTIFICATE-----
3290
+ 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
3314
+ obp573PYtlNXLfbQ4ddI
3315
+ -----END CERTIFICATE-----
3316
+
3317
+ Buypass Class 2 Root CA
3318
+ =======================
3319
+ -----BEGIN CERTIFICATE-----
3320
+ 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
3344
+ rJgWVqA=
3345
+ -----END CERTIFICATE-----
3346
+
3347
+ Buypass Class 3 Root CA
3348
+ =======================
3349
+ -----BEGIN CERTIFICATE-----
3350
+ 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
3374
+ Cp/HuZc=
3375
+ -----END CERTIFICATE-----
3376
+
3377
+ T-TeleSec GlobalRoot Class 3
3378
+ ============================
3379
+ -----BEGIN CERTIFICATE-----
3380
+ MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
3381
+ IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
3382
+ cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx
3383
+ MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
3384
+ dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
3385
+ ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3
3386
+ DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK
3387
+ 9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU
3388
+ NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF
3389
+ iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W
3390
+ 0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA
3391
+ MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr
3392
+ AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb
3393
+ fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT
3394
+ ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h
3395
+ P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
3396
+ e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw==
3397
+ -----END CERTIFICATE-----
3398
+
3399
+ EE Certification Centre Root CA
3400
+ ===============================
3401
+ -----BEGIN CERTIFICATE-----
3402
+ MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
3403
+ EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy
3404
+ dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw
3405
+ MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB
3406
+ UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy
3407
+ ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
3408
+ DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM
3409
+ TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2
3410
+ rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw
3411
+ 93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN
3412
+ P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T
3413
+ AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ
3414
+ MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF
3415
+ BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj
3416
+ xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM
3417
+ lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
3418
+ uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU
3419
+ 3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM
3420
+ dcGWxZ0=
3421
+ -----END CERTIFICATE-----
3422
+
3423
+ TURKTRUST Certificate Services Provider Root 2007
3424
+ =================================================
3425
+ -----BEGIN CERTIFICATE-----
3426
+ MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
3427
+ bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
3428
+ MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
3429
+ QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X
3430
+ DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl
3431
+ a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN
3432
+ BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
3433
+ bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw
3434
+ DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N
3435
+ YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv
3436
+ KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya
3437
+ KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT
3438
+ rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC
3439
+ AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP
3440
+ BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s
3441
+ Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I
3442
+ aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO
3443
+ Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb
3444
+ BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK
3445
+ poRq0Tl9
3446
+ -----END CERTIFICATE-----
3447
+
3448
+ D-TRUST Root Class 3 CA 2 2009
3449
+ ==============================
3450
+ -----BEGIN CERTIFICATE-----
3451
+ MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK
3452
+ DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe
3453
+ Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE
3454
+ LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw
3455
+ DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD
3456
+ ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA
3457
+ BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv
3458
+ KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z
3459
+ p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC
3460
+ AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ
3461
+ 4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y
3462
+ eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw
3463
+ MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G
3464
+ PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw
3465
+ OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm
3466
+ 2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
3467
+ o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV
3468
+ dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph
3469
+ X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I=
3470
+ -----END CERTIFICATE-----
3471
+
3472
+ D-TRUST Root Class 3 CA 2 EV 2009
3473
+ =================================
3474
+ -----BEGIN CERTIFICATE-----
3475
+ MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
3476
+ DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
3477
+ OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
3478
+ DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
3479
+ OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS
3480
+ egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh
3481
+ zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T
3482
+ 7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60
3483
+ sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35
3484
+ 11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv
3485
+ cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v
3486
+ ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El
3487
+ MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp
3488
+ b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh
3489
+ c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+
3490
+ PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
3491
+ nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX
3492
+ ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA
3493
+ NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv
3494
+ w9y4AyHqnxbxLFS1
3495
+ -----END CERTIFICATE-----
3496
+
3497
+ PSCProcert
3498
+ ==========
3499
+ -----BEGIN CERTIFICATE-----
3500
+ MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1dG9yaWRhZCBk
3501
+ ZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9sYW5vMQswCQYDVQQGEwJWRTEQ
3502
+ MA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlzdHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lz
3503
+ dGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBl
3504
+ cmludGVuZGVuY2lhIGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUw
3505
+ IwYJKoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEwMFoXDTIw
3506
+ MTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHByb2NlcnQubmV0LnZlMQ8w
3507
+ DQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGExKjAoBgNVBAsTIVByb3ZlZWRvciBkZSBD
3508
+ ZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZp
3509
+ Y2FjaW9uIEVsZWN0cm9uaWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIw
3510
+ DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo97BVC
3511
+ wfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74BCXfgI8Qhd19L3uA
3512
+ 3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38GieU89RLAu9MLmV+QfI4tL3czkkoh
3513
+ RqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmO
3514
+ EO8GqQKJ/+MMbpfg353bIdD0PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG2
3515
+ 0qCZyFSTXai20b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH
3516
+ 0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/6mnbVSKVUyqU
3517
+ td+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1mv6JpIzi4mWCZDlZTOpx+FIyw
3518
+ Bm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvp
3519
+ r2uKGcfLFFb14dq12fy/czja+eevbqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/
3520
+ AgEBMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAz
3521
+ Ni0wMB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFDgBStuyId
3522
+ xuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRp
3523
+ ZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQH
3524
+ EwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5h
3525
+ Y2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5k
3526
+ ZW5jaWEgZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG
3527
+ 9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQDAgEGME0GA1UdEQRG
3528
+ MESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0wMDAwMDKgGwYFYIZeAgKgEgwQUklG
3529
+ LUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEagRKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52
3530
+ ZS9sY3IvQ0VSVElGSUNBRE8tUkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNy
3531
+ YWl6LnN1c2NlcnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v
3532
+ Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsGAQUFBwIBFh5o
3533
+ dHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcNAQELBQADggIBACtZ6yKZu4Sq
3534
+ T96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmN
3535
+ g7+mvTV+LFwxNG9s2/NkAZiqlCxB3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4q
3536
+ uxtxj7mkoP3YldmvWb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1
3537
+ n8GhHVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHmpHmJWhSn
3538
+ FFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXzsOfIt+FTvZLm8wyWuevo
3539
+ 5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bEqCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq
3540
+ 3TNWOByyrYDT13K9mmyZY+gAu0F2BbdbmRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5
3541
+ poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y
3542
+ eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km
3543
+ -----END CERTIFICATE-----
3544
+
3545
+ China Internet Network Information Center EV Certificates Root
3546
+ ==============================================================
3547
+ -----BEGIN CERTIFICATE-----
3548
+ MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCQ04xMjAwBgNV
3549
+ BAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyMUcwRQYDVQQDDD5D
3550
+ aGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMg
3551
+ Um9vdDAeFw0xMDA4MzEwNzExMjVaFw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAG
3552
+ A1UECgwpQ2hpbmEgSW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMM
3553
+ PkNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRpZmljYXRl
3554
+ cyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z7r07eKpkQ0H1UN+U8i6y
3555
+ jUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV
3556
+ 98YPjUesWgbdYavi7NifFy2cyjw1l1VxzUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2H
3557
+ klY0bBoQCxfVWhyXWIQ8hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23
3558
+ KzhmBsUs4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54ugQEC
3559
+ 7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oYNJKiyoOCWTAPBgNV
3560
+ HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfHJLOcfA22KlT5uqGDSSosqD
3561
+ glkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd5
3562
+ 0XPFtQO3WKwMVC/GVhMPMdoG52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM
3563
+ 7+czV0I664zBechNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws
3564
+ ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrIzo9uoV1/A3U0
3565
+ 5K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATywy39FCqQmbkHzJ8=
3566
+ -----END CERTIFICATE-----
3567
+
3568
+ Swisscom Root CA 2
3569
+ ==================
3570
+ -----BEGIN CERTIFICATE-----
3571
+ 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
3597
+ 5OfNeOI5wSsSnqaeG8XmDtkx2Q==
3598
+ -----END CERTIFICATE-----
3599
+
3600
+ Swisscom Root EV CA 2
3601
+ =====================
3602
+ -----BEGIN CERTIFICATE-----
3603
+ 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
3629
+ l8PVP3wbI+2ksx0WckNLIOFZfsLorSa/ovc=
3630
+ -----END CERTIFICATE-----
3631
+
3632
+ CA Disig Root R1
3633
+ ================
3634
+ -----BEGIN CERTIFICATE-----
3635
+ MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNVBAYTAlNLMRMw
3636
+ EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp
3637
+ ZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQyMDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sx
3638
+ EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp
3639
+ c2lnIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy
3640
+ 3QRkD2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/oOI7bm+V8
3641
+ u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3AfQ+lekLZWnDZv6fXARz2
3642
+ m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJeIgpFy4QxTaz+29FHuvlglzmxZcfe+5nk
3643
+ CiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8noc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTa
3644
+ YVKvJrT1cU/J19IG32PK/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6
3645
+ vpmumwKjrckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD3AjL
3646
+ LhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE7cderVC6xkGbrPAX
3647
+ ZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkCyC2fg69naQanMVXVz0tv/wQFx1is
3648
+ XxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLdqvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNV
3649
+ HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ
3650
+ 04IwDQYJKoZIhvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR
3651
+ xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaASfX8MPWbTx9B
3652
+ LxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXoHqJPYNcHKfyyo6SdbhWSVhlM
3653
+ CrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpBemOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5Gfb
3654
+ VSUZP/3oNn6z4eGBrxEWi1CXYBmCAMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85
3655
+ YmLLW1AL14FABZyb7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKS
3656
+ ds+xDzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvkF7mGnjix
3657
+ lAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqFa3qdnom2piiZk4hA9z7N
3658
+ UaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsTQ6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJ
3659
+ a7+h89n07eLw4+1knj0vllJPgFOL
3660
+ -----END CERTIFICATE-----
3661
+
3662
+ CA Disig Root R2
3663
+ ================
3664
+ -----BEGIN CERTIFICATE-----
3665
+ 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
3689
+ 7+ZtsH8tZ/3zbBt1RqPlShfppNcL
3690
+ -----END CERTIFICATE-----
3691
+
3692
+ ACCVRAIZ1
3693
+ =========
3694
+ -----BEGIN CERTIFICATE-----
3695
+ MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB
3696
+ SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1
3697
+ MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH
3698
+ UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
3699
+ DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM
3700
+ jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0
3701
+ RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD
3702
+ aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ
3703
+ 0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG
3704
+ WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7
3705
+ 8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR
3706
+ 5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J
3707
+ 9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK
3708
+ Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw
3709
+ Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu
3710
+ Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2
3711
+ VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM
3712
+ Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA
3713
+ QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh
3714
+ AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA
3715
+ YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj
3716
+ AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA
3717
+ IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk
3718
+ aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0
3719
+ dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2
3720
+ MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI
3721
+ hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E
3722
+ R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN
3723
+ YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49
3724
+ nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ
3725
+ TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3
3726
+ sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h
3727
+ I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg
3728
+ Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd
3729
+ 3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p
3730
+ EfbRD0tVNEYqi4Y7
3731
+ -----END CERTIFICATE-----
3732
+
3733
+ TWCA Global Root CA
3734
+ ===================
3735
+ -----BEGIN CERTIFICATE-----
3736
+ MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT
3737
+ CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD
3738
+ QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK
3739
+ EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg
3740
+ Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C
3741
+ nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV
3742
+ r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR
3743
+ Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV
3744
+ tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W
3745
+ KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99
3746
+ sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p
3747
+ yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn
3748
+ kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI
3749
+ zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC
3750
+ AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g
3751
+ cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn
3752
+ LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M
3753
+ 8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg
3754
+ /eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg
3755
+ lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP
3756
+ A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m
3757
+ i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8
3758
+ EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3
3759
+ zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0=
3760
+ -----END CERTIFICATE-----
3761
+
3762
+ TeliaSonera Root CA v1
3763
+ ======================
3764
+ -----BEGIN CERTIFICATE-----
3765
+ MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE
3766
+ CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4
3767
+ MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW
3768
+ VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+
3769
+ 6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA
3770
+ 3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k
3771
+ B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn
3772
+ Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH
3773
+ oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3
3774
+ F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ
3775
+ oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7
3776
+ gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc
3777
+ TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB
3778
+ AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW
3779
+ DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm
3780
+ zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx
3781
+ 0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW
3782
+ pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV
3783
+ G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc
3784
+ c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT
3785
+ JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2
3786
+ qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6
3787
+ Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems
3788
+ WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
3789
+ -----END CERTIFICATE-----
3790
+
3791
+ E-Tugra Certification Authority
3792
+ ===============================
3793
+ -----BEGIN CERTIFICATE-----
3794
+ MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w
3795
+ DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls
3796
+ ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
3797
+ ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw
3798
+ NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx
3799
+ QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl
3800
+ cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD
3801
+ DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
3802
+ MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd
3803
+ hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K
3804
+ CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g
3805
+ ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ
3806
+ BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0
3807
+ E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz
3808
+ rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq
3809
+ jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
3810
+ rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5
3811
+ dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB
3812
+ /wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG
3813
+ MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK
3814
+ kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO
3815
+ XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807
3816
+ VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo
3817
+ a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc
3818
+ dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV
3819
+ KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT
3820
+ Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0
3821
+ 8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G
3822
+ C7TbO6Orb1wdtn7os4I07QZcJA==
3823
+ -----END CERTIFICATE-----
3824
+
3825
+ T-TeleSec GlobalRoot Class 2
3826
+ ============================
3827
+ -----BEGIN CERTIFICATE-----
3828
+ MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
3829
+ IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
3830
+ cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx
3831
+ MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
3832
+ dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
3833
+ ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3
3834
+ DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ
3835
+ SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F
3836
+ vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970
3837
+ 2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV
3838
+ WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA
3839
+ MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy
3840
+ YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4
3841
+ r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf
3842
+ vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR
3843
+ 3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN
3844
+ 9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg==
3845
+ -----END CERTIFICATE-----
3846
+
3847
+ Atos TrustedRoot 2011
3848
+ =====================
3849
+ -----BEGIN CERTIFICATE-----
3850
+ MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU
3851
+ cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4
3852
+ MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG
3853
+ A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV
3854
+ hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr
3855
+ 54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+
3856
+ DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320
3857
+ HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR
3858
+ z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R
3859
+ l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ
3860
+ bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
3861
+ CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h
3862
+ k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh
3863
+ TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9
3864
+ 61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G
3865
+ 3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
3866
+ -----END CERTIFICATE-----
lib/GiroCheckout_SDK/helper/GiroCheckout_SDK_Curl_helper.php ADDED
@@ -0,0 +1,133 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Helper class which manages sending data
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 109 $ / $Date: 2015-06-01 08:37:30 -0300 (Mo, 01 Jun 2015) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_Curl_helper {
10
+
11
+ /*
12
+ * submits data by using curl to a given url
13
+ *
14
+ * @param String url where data has to be sent to
15
+ * @param mixed[] array data which has to be sent
16
+ * @return String body of the response
17
+ */
18
+ public static function submit($url, $params)
19
+ {
20
+ $Config = GiroCheckout_SDK_Config::getInstance();
21
+
22
+ $ch = curl_init();
23
+
24
+ curl_setopt($ch, CURLOPT_URL, $url);
25
+ curl_setopt($ch, CURLOPT_POST, true);
26
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
27
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
28
+ curl_setopt($ch, CURLOPT_HEADER, 1);
29
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
30
+
31
+ if($Config->getConfig('CURLOPT_SSL_VERIFYPEER'))
32
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $Config->getConfig('CURLOPT_SSL_VERIFYPEER'));
33
+
34
+ if($Config->getConfig('CURLOPT_CAINFO'))
35
+ curl_setopt($ch, CURLOPT_CAINFO, $Config->getConfig(CURLOPT_CAINFO));
36
+
37
+ if($Config->getConfig('CURLOPT_SSL_VERIFYHOST'))
38
+ curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, $Config->getConfig('CURLOPT_SSL_VERIFYHOST'));
39
+
40
+ if($Config->getConfig('CURLOPT_CONNECTTIMEOUT'))
41
+ curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $Config->getConfig('CURLOPT_CONNECTTIMEOUT'));
42
+
43
+ if($Config->getConfig('DEBUG_MODE')) {
44
+ curl_setopt($ch, CURLINFO_HEADER_OUT, 1);
45
+ }
46
+
47
+ $result = curl_exec($ch);
48
+
49
+ if($Config->getConfig('DEBUG_MODE')) GiroCheckout_SDK_Debug_helper::getInstance()->logRequest(curl_getinfo($ch),$params);
50
+ if($Config->getConfig('DEBUG_MODE')) GiroCheckout_SDK_Debug_helper::getInstance()->logReply($result, curl_error($ch));
51
+
52
+ if($result === false) {
53
+ throw new Exception('cURL: submit failed.');
54
+ }
55
+
56
+ curl_close($ch);
57
+
58
+ return self::getHeaderAndBody($result);
59
+ }
60
+
61
+ /*
62
+ * decodes a json string and returns an array
63
+ *
64
+ * @param String json string
65
+ * @return mixed[] array of an parsed json string
66
+ * @throws Exception if string is not a valid json string
67
+ */
68
+ public static function getJSONResponseToArray($string)
69
+ {
70
+ $json = json_decode($string,true);
71
+ if($json !== NULL) {
72
+ return $json;
73
+ }
74
+ else {
75
+ throw new Exception('Response is not a valid json string.');
76
+ }
77
+ }
78
+
79
+ /*
80
+ * strip header content
81
+ *
82
+ * @param String server response
83
+ * @return mixed[] header, body of the server response. The header is parsed as an array.
84
+ */
85
+ private static function getHeaderAndBody($response) {
86
+
87
+ $header = self::http_parse_headers(substr($response, 0, strrpos($response,"\r\n\r\n")));
88
+ $body = substr($response, strrpos($response,"\r\n\r\n")+4);
89
+
90
+ return array($header,$body);
91
+ }
92
+
93
+ /*
94
+ * parses http header
95
+ *
96
+ * @param String header
97
+ * @return mixed[] parsed header
98
+ */
99
+ private static function http_parse_headers($header)
100
+ {
101
+ $headers = array();
102
+ $key = '';
103
+
104
+ foreach(explode("\n", $header) as $i => $h) {
105
+ $h = explode(':', $h, 2);
106
+
107
+ if (isset($h[1]))
108
+ {
109
+ if (!isset($headers[$h[0]])) {
110
+ $headers[$h[0]] = trim($h[1]);
111
+ }
112
+ elseif (is_array($headers[$h[0]])) {
113
+ $headers[$h[0]] = array_merge($headers[$h[0]], array(trim($h[1])));
114
+ }
115
+ else {
116
+ $headers[$h[0]] = array_merge(array($headers[$h[0]]), array(trim($h[1])));
117
+ }
118
+
119
+ $key = $h[0];
120
+ }
121
+ else {
122
+ if (substr($h[0], 0, 1) == "\t") {
123
+ $headers[$key] .= "\r\n\t".trim($h[0]);
124
+ }
125
+ elseif (!$key) {
126
+ $headers[0] = trim($h[0]);trim($h[0]);
127
+ }
128
+ }
129
+ }
130
+
131
+ return $headers;
132
+ }
133
+ }
lib/GiroCheckout_SDK/helper/GiroCheckout_SDK_Debug_helper.php ADDED
@@ -0,0 +1,212 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Helper class which handles debug log
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 24 $ / $Date: 2014-05-22 14:30:12 +0200 (Thu, 22 May 2014) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_Debug_helper {
10
+
11
+ /*
12
+ * static instance of debug class (singelton pattern)
13
+ */
14
+ private static $instance = null;
15
+
16
+ /*
17
+ * unique logfile name
18
+ */
19
+ private static $logFileName;
20
+
21
+ /*
22
+ * logfile resource
23
+ */
24
+ private static $fp;
25
+
26
+ /*
27
+ * log templates
28
+ */
29
+ private $debugStrings = array(
30
+ 'start' => "[start @%s]\r\n\r\n",
31
+ 'php-ini' => "[PHP ini]\r\n\r\nPHP version: %s\r\ncURL: %s\r\nssl: %s\r\n\r\n\r\n",
32
+ 'transaction' => "[transaction @%s]\r\nZahlart: %s\r\n\r\n\r\n",
33
+ 'params set' => "[params set @%s]\r\n%s\r\n\r\n",
34
+ 'curlRequest' => "[cURL request @%s]\r\nparams:\r\n%s\r\nCurlInfo:\r\n%s\r\n\r\n",
35
+ 'curlReply' => "[cURL reply @%s]\r\nresult:%s\r\ncurl_error log:%s\r\n\r\n",
36
+ 'replyParams' => "[reply params @%s]\r\n%s\r\n\r\n",
37
+ 'notifyInput' => "[notify input @%s]\r\n%s\r\n\r\n",
38
+ 'notifyParams' => "[notify params @%s]\r\n%s\r\n\r\n",
39
+ 'notifyOutput' => "[notify output]\r\n%s\r\n\r\n",
40
+ 'exception' => "[exception @%s]\r\n%s\r\n\r\n",
41
+ );
42
+
43
+
44
+ private function __construct(){}
45
+ private function __clone(){}
46
+
47
+ /*
48
+ * method to create the debug instance (singelton pattern)
49
+ */
50
+ public static function getInstance() {
51
+
52
+ if(null === self::$instance) {
53
+ self::$instance = new self();
54
+ }
55
+
56
+ return self::$instance;
57
+ }
58
+
59
+ /*
60
+ * initialisation of the debug log,
61
+ * stores information about the environment
62
+ */
63
+ public function init($logFilePrefix) {
64
+ self::$logFileName = date('Y-m-d_h-i-s').'-'.ucfirst($logFilePrefix).'-'.md5(time()).'.log';
65
+ $ssl = null;
66
+
67
+ $this->writeLog(sprintf($this->debugStrings['start'],date('Y-m-d h:i:s')));
68
+
69
+ if(in_array('curl',get_loaded_extensions())) {
70
+ $curl_version = curl_version();
71
+ $curl = $curl_version['version'];
72
+ $ssl = $curl_version['ssl_version'];
73
+ }
74
+ else {
75
+ $curl = 'no';
76
+ }
77
+
78
+ if(!$ssl && in_array('openssl',get_loaded_extensions())) {
79
+ $ssl = 'yes';
80
+ }
81
+
82
+ if(!$ssl) {
83
+ $ssl = 'no';
84
+ }
85
+
86
+ $this->writeLog(sprintf($this->debugStrings['php-ini'], PHP_VERSION, $curl, $ssl));
87
+ }
88
+
89
+ /*
90
+ * logs transaction information
91
+ */
92
+ public function logTransaction($apiCallName) {
93
+ $this->writeLog(sprintf($this->debugStrings['transaction'], date('Y-m-d h:i:s'), $apiCallName));
94
+ }
95
+
96
+ /*
97
+ * logs parameters which were set before sending
98
+ */
99
+ public function logParamsSet($paramsArray) {
100
+ $paramsString = '';
101
+
102
+ foreach($paramsArray as $k=>$v) {
103
+ $paramsString .= "$k=$v\r\n";
104
+ }
105
+
106
+ $this->writeLog(sprintf($this->debugStrings['params set'], date('Y-m-d h:i:s'), $paramsString));
107
+ }
108
+
109
+ /*
110
+ * stores request data (parameters, curl info)
111
+ */
112
+ public function logRequest($curlInfo, $params) {
113
+ $paramsString = '';
114
+ $curlInfoString = '';
115
+
116
+ foreach($params as $k=>$v) {
117
+ $paramsString .= "$k=$v\r\n";
118
+ }
119
+
120
+ foreach($curlInfo as $k=>$v) {
121
+ if(!is_array($v))
122
+ $curlInfoString .= "$k=$v\r\n";
123
+ else {
124
+ $curlInfoString .= "$k {\r\n";
125
+
126
+ foreach($v as $k2=>$v2) {
127
+ $curlInfoString .= "$k2=$v2\r\n";
128
+ }
129
+
130
+ $curlInfoString .= "}\r\n";
131
+ }
132
+ }
133
+
134
+ $this->writeLog(sprintf($this->debugStrings['curlRequest'], date('Y-m-d h:i:s'), $paramsString, $curlInfoString));
135
+ }
136
+
137
+ /*
138
+ * logs server reply data (header and body)
139
+ */
140
+ public function logReply($result, $curlError) {
141
+ $this->writeLog(sprintf($this->debugStrings['curlReply'], date('Y-m-d h:i:s'), $result, $curlError));
142
+ }
143
+
144
+ /*
145
+ * logs processed reply params from json array
146
+ */
147
+ public function logReplyParams($params) {
148
+ $paramsString = '';
149
+
150
+ foreach($params as $k=>$v) {
151
+ $paramsString .= "$k=".print_r($v,true)."\r\n";
152
+ }
153
+
154
+ $this->writeLog(sprintf($this->debugStrings['replyParams'], date('Y-m-d h:i:s'), $paramsString));
155
+ }
156
+
157
+ /*
158
+ * logs parameters which were used for Notification
159
+ */
160
+ public function logNotificationInput($paramsArray) {
161
+ $this->writeLog(sprintf($this->debugStrings['notifyInput'], date('Y-m-d h:i:s'), print_r($paramsArray,1)));
162
+ }
163
+
164
+ /*
165
+ * logs parameters which were used for Notification
166
+ */
167
+ public function logNotificationParams($paramsArray) {
168
+ $this->writeLog(sprintf($this->debugStrings['notifyParams'], date('Y-m-d h:i:s'), print_r($paramsArray,1)));
169
+ }
170
+
171
+ /*
172
+ * logs parameters which were used for Notification
173
+ */
174
+ public function logNotificationOutput($outputType) {
175
+ $this->writeLog(sprintf($this->debugStrings['notifyOutput'], date('Y-m-d h:i:s'), $outputType));
176
+ }
177
+
178
+ /*
179
+ * logs parameters which were used for Notification
180
+ */
181
+ public function logException($message) {
182
+ $this->writeLog(sprintf($this->debugStrings['exception'], date('Y-m-d h:i:s'), $message));
183
+ }
184
+
185
+ /*
186
+ * writes log into log file
187
+ */
188
+ public function writeLog($string)
189
+ {
190
+ $Config = GiroCheckout_SDK_Config::getInstance();
191
+ $path = str_replace('\\','/',$Config->getConfig('DEBUG_LOG_PATH'));
192
+
193
+ if(!is_dir($path)) {
194
+ if(!mkdir($path)) {
195
+ error_log('Log directory does not exist. Please create directory: '.$path.'.');
196
+ }
197
+ //write .htaccess to log directory
198
+ $htfp = fopen($path.'/.htaccess', 'w');
199
+ fwrite($htfp, "Order allow,deny\nDeny from all");
200
+ fclose($htfp);
201
+ }
202
+
203
+ if(!self::$fp) {
204
+ self::$fp = fopen($path.'/'.self::$logFileName, 'a');
205
+ if(!self::$fp) {
206
+ error_log('Log File ('.$path.'/'.self::$logFileName.') is not writeable.');
207
+ }
208
+ }
209
+
210
+ fwrite(self::$fp, $string);
211
+ }
212
+ }
lib/GiroCheckout_SDK/helper/GiroCheckout_SDK_Exception_helper.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class GiroCheckout_SDK_Exception_helper extends Exception {
4
+
5
+ public function __construct($message = null, $code = 0) {
6
+ $Config = GiroCheckout_SDK_Config::getInstance();
7
+
8
+ if($Config->getConfig('DEBUG_MODE')) GiroCheckout_SDK_Debug_helper::getInstance()->LogException($message);
9
+ parent::__construct($message, $code);
10
+ }
11
+ }
lib/GiroCheckout_SDK/helper/GiroCheckout_SDK_Hash_helper.php ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Helper class which manages hash generation
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 69 $ / $Date: 2014-10-01 11:57:27 -0300 (Mi, 01 Okt 2014) $
7
+ */
8
+
9
+ class GiroCheckout_SDK_Hash_helper {
10
+
11
+ /*
12
+ * returns a HMAC Hash with md5 encryption by using a secret and an array
13
+ *
14
+ * @param String password
15
+ * @param mixed[] data to hash
16
+ * @return String generated hash
17
+ */
18
+ public static function getHMACMD5Hash($password, $data)
19
+ {
20
+ $dataString = implode('', $data);
21
+
22
+ return self::getHMACMD5HashString($password, $dataString);
23
+ }
24
+
25
+ /*
26
+ * returns a HMAC Hash with md5 encryption by using a secret and a string
27
+ *
28
+ * @param String password
29
+ * @param String data to hash
30
+ * @return String generated hash
31
+ */
32
+ public static function getHMACMD5HashString($password, $data)
33
+ {
34
+ if(function_exists('hash_hmac')) {
35
+ return hash_hmac('MD5', $data,$password);
36
+ }
37
+ else {
38
+ return self::hmacFallbackMD5($data, $password);
39
+ }
40
+ }
41
+
42
+ /*
43
+ * returns a HMAC Hash with md5 encryption by using a secret
44
+ * Fallback if no hmac() support <PHP5.1.2
45
+ *
46
+ * @param String password
47
+ * @param mixed[] data to hash
48
+ * @return String generated hash
49
+ */
50
+ private static function hmacFallbackMD5 ($data, $secret) {
51
+ $b = 64; // byte length for md5
52
+
53
+ if (strlen($secret) > $b) {
54
+ $secret = pack("H*",md5($secret));
55
+ }
56
+
57
+ $secret = str_pad($secret, $b, chr(0x00));
58
+ $ipad = str_pad('', $b, chr(0x36));
59
+ $opad = str_pad('', $b, chr(0x5c));
60
+ $k_ipad = $secret ^ $ipad ;
61
+ $k_opad = $secret ^ $opad;
62
+
63
+ return md5($k_opad . pack("H*",md5($k_ipad . $data)));
64
+ }
65
+ }
lib/GiroCheckout_SDK/helper/GiroCheckout_SDK_ResponseCode_helper.php ADDED
@@ -0,0 +1,288 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Helper class which manages response codes and its meanings.
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 102 $ / $Date: 2015-03-24 18:36:12 -0300 (Di, 24 Mär 2015) $
7
+ */
8
+ class GiroCheckout_SDK_ResponseCode_helper
9
+ {
10
+ /*
11
+ * contains the response codes and messages in different languages
12
+ */
13
+ private static $code = array('DE' => array(
14
+ 0 => 'OK',
15
+
16
+ 4000 => 'Transaktion erfolgreich',
17
+ 4001 => 'giropay Bank offline',
18
+ 4002 => 'Online Banking-Zugang ungültig',
19
+ 4020 => 'Altersverifikation erfolgreich',
20
+ 4021 => 'Altersverifikation nicht durchführbar',
21
+ 4022 => 'Altersverifikation nicht erfolgreich',
22
+ 4051 => 'Kontoverbindung ungültig',
23
+ 4101 => 'Ausgabeland der Karte ungültig oder unbekannt',
24
+ 4102 => '3-D Secure oder MasterCard SecureCode Autorisierung fehlgeschlagen',
25
+ 4103 => 'Gültigkeitsdatum der Karte überschritten',
26
+ 4104 => 'Kartentyp ungültig oder unbekannt',
27
+ 4105 => 'Karte eingeschränkt nutzbar',
28
+ 4106 => 'Pseudo-Kartennummer ungültig',
29
+ 4107 => 'Karte gestohlen, verdächtig oder zum Einziehen markiert',
30
+ 4151 => 'PayPal Token ungültig',
31
+ 4152 => 'Nachbearbeitung bei PayPal notwendig',
32
+ 4153 => 'Zahlungsmethode bei PayPal ändern',
33
+ 4154 => 'PayPal-Zahlung nicht abgeschlossen',
34
+ 4500 => 'Zahlungsausgang unbekannt',
35
+ 4501 => 'Timeout / keine Benutzereingabe',
36
+ 4502 => 'Abbruch durch Benutzer',
37
+ 4503 => 'doppelte Transaktion',
38
+ 4504 => 'Manipulationsverdacht oder Zahlungsmittel temporär gesperrt',
39
+ 4505 => 'Zahlungsmittel gesperrt oder abgelehnt',
40
+ 4900 => 'Transaktion nicht erfolgreich',
41
+
42
+ 5000 => 'Authentifizierung fehlgeschlagen',
43
+ 5001 => 'keine Berechtigung',
44
+ 5002 => 'hash ungültig',
45
+ 5003 => 'Pflichtfeld nicht angegeben',
46
+ 5004 => 'Aufruf ungültig',
47
+ 5009 => 'E-Mail ungültig',
48
+ 5010 => 'Sprache ungültig',
49
+ 5011 => 'Land ungültig',
50
+ 5012 => 'Branche ungültig',
51
+ 5013 => 'Shopsystem ungültig',
52
+ 5014 => 'Geschlecht ungültig',
53
+ 5015 => 'Produkt ungültig',
54
+ 5016 => 'Organisationstyp ungültig',
55
+ 5017 => 'Händler existiert bereits',
56
+ 5018 => 'PSP ungültig',
57
+ 5019 => 'Kreditkartentyp ungültig',
58
+ 5020 => 'merchantId ungültig',
59
+ 5021 => 'projectId ungültig',
60
+ 5022 => 'merchantTxId ungültig',
61
+ 5023 => 'purpose ungültig',
62
+ 5024 => 'bankcode ungültig',
63
+ 5025 => 'bankaccount ungültig',
64
+ 5026 => 'bic ungültig',
65
+ 5027 => 'iban ungültig',
66
+ 5028 => 'mobile ungültig',
67
+ 5029 => 'pkn ungültig',
68
+ 5030 => 'Betrag ungültig',
69
+ 5031 => 'Bankleitzahl oder BIC nicht angegeben',
70
+ 5032 => 'Lastschrift Sequenztyp ungültig',
71
+ 5033 => 'Währung ungültig',
72
+ 5034 => 'Transaktion nicht vorhanden',
73
+ 5040 => 'info1Label ungültig',
74
+ 5041 => 'info1Text ungültig',
75
+ 5042 => 'info2Label ungültig',
76
+ 5043 => 'info2Text ungültig',
77
+ 5044 => 'info3Label ungültig',
78
+ 5045 => 'info3Text ungültig',
79
+ 5046 => 'info4Label ungültig',
80
+ 5047 => 'info4Text ungültig',
81
+ 5048 => 'info5Label ungültig',
82
+ 5049 => 'info5Text ungültig',
83
+ 5050 => 'recurring ungültig',
84
+ 5051 => 'mandateReference ungültig',
85
+ 5052 => 'mandateSignedOn ungültig',
86
+ 5053 => 'mandateReceiverName ungültig',
87
+ 5054 => 'issuer ungültig',
88
+ 5055 => 'urlRedirect ungültig',
89
+ 5056 => 'urlNotify ungültig',
90
+ 5060 => 'Betrag oder Währung nicht angegeben',
91
+ 5061 => 'purposetext ungültig',
92
+ 5062 => 'paymentreference ungültig',
93
+ 5063 => 'format ungültig',
94
+ 5064 => 'resolution ungültig',
95
+ 5065 => 'Fehler beim erstellen der Grafik',
96
+ 5066 => 'purpose und paymentreference angegeben',
97
+ 5067 => 'receiveriban ungültig',
98
+ 5068 => 'receiverbic ungültig',
99
+ 5069 => 'purposecode ungültig',
100
+ 5070 => 'receivername ungültig',
101
+ 5071 => 'receivername, receiveriban oder receiverbic nicht angeben ',
102
+ 5072 => 'customerLastName ungültig',
103
+ 5073 => 'customerStreet ungültig',
104
+ 5074 => 'customerStreetNumber ungültig',
105
+ 5075 => 'customerZipCode ungültig',
106
+ 5076 => 'customerCity ungültig',
107
+ 5077 => 'customerCountry ungültig',
108
+ 5078 => 'customerBirthDate ungültig',
109
+ 5079 => 'customerGender ungültig',
110
+ 5080 => 'customerEmail ungültig',
111
+ 5081 => 'customerIp ungültig',
112
+ 5082 => 'customerId ungültig',
113
+ 5083 => 'shopId ungültig',
114
+ 5084 => 'customerFirstName ungültig',
115
+ 5085 => 'accountHolder ungültig',
116
+ 5100 => 'Fehler beim Zahlungsabwickler',
117
+ 5101 => 'Verbindungsproblem zum Zahlungsabwickler',
118
+ 5102 => 'Pseudo-Kartennummer nicht vorhanden',
119
+ 5200 => 'Transaktion nicht akzeptiert',
120
+ 5201 => 'giropay Bank offline',
121
+ 5202 => 'giropay Bank des Absenders ungültig',
122
+ 5203 => 'Bankverbindung des Absenders auf Blacklist',
123
+ 5204 => 'Bankverbindung des Absenders ungültig',
124
+ 6000 => 'Bankleitzahl oder BIC fehlt',
125
+ 6001 => 'Bank unbekannt',
126
+ 6002 => 'Bank unterstützt kein giropay',
127
+ 9999 => 'interner Fehler',
128
+
129
+ // old codes
130
+ 1900 => 'Transaktion nicht akzeptiert',
131
+ 1910 => 'giropay Bank offline',
132
+ 1920 => 'Bankverbindung des Absenders ungültig',
133
+ 1930 => 'Bankverbindung des Absenders auf Blacklist',
134
+ 1940 => 'Bankverbindung des Absenders ungültig',
135
+ 2000 => 'Timeout / keine Benutzereingabe',
136
+ 2400 => 'Online Banking-Zugang ungültig',
137
+ 3100 => 'Abbruch durch Benutzer',
138
+ 3900 => 'giropay Bank offline',
139
+ ),
140
+
141
+ 'EN' => array(
142
+ 0 => 'OK',
143
+
144
+ 4000 => 'transaction successful',
145
+ 4001 => 'giropay bank offline',
146
+ 4002 => 'online banking account invalid',
147
+ 4020 => 'age verification successful',
148
+ 4021 => 'age verification not possible',
149
+ 4022 => 'age verification unsuccessful',
150
+ 4051 => 'invalid bank account',
151
+ 4101 => 'issuing country invalid or unknown',
152
+ 4102 => '3-D Secure or MasterCard SecureCode authorization failed',
153
+ 4103 => 'validation date of card exceeded',
154
+ 4104 => 'invalid or unknown card type',
155
+ 4105 => 'limited-use card',
156
+ 4106 => 'invalid pseudo-cardnumber',
157
+ 4107 => 'card stolen, suspicious or marked to move in',
158
+ 4151 => 'invalid PayPal token',
159
+ 4152 => 'post-processing necessary at PayPal',
160
+ 4153 => 'change PayPal payment method',
161
+ 4154 => 'PayPal-payment is not completed',
162
+ 4500 => 'payment result unknown',
163
+ 4501 => 'timeout / no user input',
164
+ 4502 => 'user aborted',
165
+ 4503 => 'duplicate transaction',
166
+ 4504 => 'suspicion of manipulation or payment method temporarily blocked',
167
+ 4505 => 'payment method blocked or rejected',
168
+ 4900 => 'transaction rejected',
169
+
170
+ 5000 => 'authentication failed',
171
+ 5001 => 'no authorization',
172
+ 5002 => 'invalid hash',
173
+ 5003 => 'mandatory field not specified',
174
+ 5004 => 'invalid call',
175
+ 5009 => 'invalid mail',
176
+ 5010 => 'invalid language',
177
+ 5011 => 'invalid country',
178
+ 5012 => 'invalid branch',
179
+ 5013 => 'invalid shop system',
180
+ 5014 => 'invalid gender',
181
+ 5015 => 'invalid product',
182
+ 5016 => 'invalid organisation type',
183
+ 5017 => 'merchant already exist',
184
+ 5018 => 'invalid PSP',
185
+ 5019 => 'invalid credit card type',
186
+ 5020 => 'invalid merchantId',
187
+ 5021 => 'invalid projectId',
188
+ 5022 => 'invalid merchantTxId',
189
+ 5023 => 'invalid purpose',
190
+ 5024 => 'invalid bankcode',
191
+ 5025 => 'invalid bankaccount',
192
+ 5026 => 'invalid bic',
193
+ 5027 => 'invalid iban',
194
+ 5028 => 'invalid mobile',
195
+ 5029 => 'invalid pkn',
196
+ 5030 => 'invalid amount',
197
+ 5031 => 'bankcode or BIC missing',
198
+ 5032 => 'invalid mandateSequence',
199
+ 5033 => 'invalid currency',
200
+ 5034 => 'transaction does not exist',
201
+ 5040 => 'invalid info1Label',
202
+ 5041 => 'invalid info1Text',
203
+ 5042 => 'invalid info2Label',
204
+ 5043 => 'invalid info2Text',
205
+ 5044 => 'invalid info3Label',
206
+ 5045 => 'invalid info3Text',
207
+ 5046 => 'invalid info4Label',
208
+ 5047 => 'invalid info4Text',
209
+ 5048 => 'invalid info5Label',
210
+ 5049 => 'invalid info5Text',
211
+ 5050 => 'invalid recurring',
212
+ 5051 => 'invalid mandateReference',
213
+ 5052 => 'invalid mandateSignedOn',
214
+ 5053 => 'invalid mandateReceiverName',
215
+ 5054 => 'invalid issuer',
216
+ 5055 => 'invalid urlRedirect',
217
+ 5056 => 'invalid urlNotify',
218
+ 5060 => 'amount or currency not missing',
219
+ 5061 => 'invalid purposetext',
220
+ 5062 => 'invalid paymentreference',
221
+ 5063 => 'invalid format',
222
+ 5064 => 'invalid resolution',
223
+ 5065 => 'error by creating image',
224
+ 5066 => 'purpose and paymentreference given',
225
+ 5067 => 'invalid receiveriban',
226
+ 5068 => 'invalid receiverbic',
227
+ 5069 => 'invalid purposecode',
228
+ 5070 => 'invalid receivername',
229
+ 5071 => 'receivername, receiveriban or receiverbic not given',
230
+ 5072 => 'invalid customerLastName',
231
+ 5073 => 'invalid customerStreet',
232
+ 5074 => 'invalid customerStreetNumber',
233
+ 5075 => 'invalid customerZipCode',
234
+ 5076 => 'invalid customerCity',
235
+ 5077 => 'invalid customerCountry',
236
+ 5078 => 'invalid customerBirthDate',
237
+ 5079 => 'invalid customerGender',
238
+ 5080 => 'invalid customerEmail',
239
+ 5081 => 'invalid customerIp',
240
+ 5082 => 'invalid customerId',
241
+ 5083 => 'invalid shopId',
242
+ 5084 => 'invalid customerFirstName',
243
+ 5085 => 'invalid accountHolder',
244
+ 5100 => 'error from payment processor',
245
+ 5101 => 'connection problem to payment processor',
246
+ 5102 => 'pseudo-cardnumber does not exist',
247
+ 5200 => 'not accepted transaction',
248
+ 5201 => 'giropay bank offline',
249
+ 5202 => 'invalid giropay bank of sender',
250
+ 5203 => 'sender bank account blacklisted',
251
+ 5204 => 'invalid sender bank account',
252
+ 6000 => 'bankcode or BIC missing',
253
+ 6001 => 'bank unknown',
254
+ 6002 => 'bank does not support giropay',
255
+ 9999 => 'internal error',
256
+ // old codes
257
+ 1900 => 'not accepted transaction',
258
+ 1910 => 'giropay bank offline',
259
+ 1920 => 'invalid sender bank account',
260
+ 1930 => 'sender bank account blacklisted',
261
+ 1940 => 'invalid sender bank account',
262
+ 2000 => 'timeout / no user input',
263
+ 2400 => 'online banking account invalid',
264
+ 3100 => 'user aborted',
265
+ 3900 => 'giropay bank offline',
266
+ ),
267
+ );
268
+
269
+ /*
270
+ * returns the message string of an given code in the given language
271
+ * @param integer code
272
+ * @param String language
273
+ * @return null/String message
274
+ */
275
+ public static function getMessage($code,$lang='EN') {
276
+ if($code < 0){ return null; } //code invalid
277
+ $lang = strtoupper($lang);
278
+
279
+ if(!array_key_exists($lang, self::$code)) { //language not found
280
+ $lang = 'EN';
281
+ }
282
+ if(array_key_exists($code,self::$code[$lang])) { //code not defined
283
+ return self::$code[$lang][$code];
284
+ }
285
+
286
+ return null;
287
+ }
288
+ }
lib/GiroCheckout_SDK/helper/GiroCheckout_SDK_TransactionType_helper.php ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Helper class which manages api call instances
4
+ *
5
+ * @package GiroCheckout
6
+ * @version $Revision: 146 $ / $Date: 2016-05-11 16:47:29 -0300 (Mi, 11 Mai 2016) $
7
+ */
8
+ class GiroCheckout_SDK_TransactionType_helper {
9
+
10
+ /*
11
+ * returns api call instance
12
+ *
13
+ * @param String api call name
14
+ * @return interfaceAPI
15
+ */
16
+ public static function getTransactionTypeByName($transType) {
17
+ switch($transType) {
18
+ //credit card apis
19
+ case 'creditCardTransaction': return new GiroCheckout_SDK_CreditCardTransaction();
20
+ case 'creditCardCapture': return new GiroCheckout_SDK_CreditCardCapture();
21
+ case 'creditCardRefund': return new GiroCheckout_SDK_CreditCardRefund();
22
+ case 'creditCardGetPKN': return new GiroCheckout_SDK_CreditCardGetPKN();
23
+ case 'creditCardRecurringTransaction': return new GiroCheckout_SDK_CreditCardRecurringTransaction();
24
+
25
+ //direct debit apis
26
+ case 'directDebitTransaction': return new GiroCheckout_SDK_DirectDebitTransaction();
27
+ case 'directDebitGetPKN': return new GiroCheckout_SDK_DirectDebitGetPKN();
28
+ case 'directDebitTransactionWithPaymentPage': return new GiroCheckout_SDK_DirectDebitTransactionWithPaymentPage();
29
+ case 'directDebitCapture': return new GiroCheckout_SDK_DirectDebitCapture();
30
+ case 'directDebitRefund': return new GiroCheckout_SDK_DirectDebitRefund();
31
+
32
+ //giropay apis
33
+ case 'giropayBankstatus': return new GiroCheckout_SDK_GiropayBankstatus();
34
+ case 'giropayIDCheck': return new GiroCheckout_SDK_GiropayIDCheck();
35
+ case 'giropayTransaction': return new GiroCheckout_SDK_GiropayTransaction();
36
+ case 'giropayIssuerList': return new GiroCheckout_SDK_GiropayIssuerList();
37
+
38
+ //iDEAL apis
39
+ case 'idealIssuerList': return new GiroCheckout_SDK_IdealIssuerList();
40
+ case 'idealPayment': return new GiroCheckout_SDK_IdealPayment();
41
+ case 'idealRefund': return new GiroCheckout_SDK_IdealPaymentRefund();
42
+
43
+ //PayPal apis
44
+ case 'paypalTransaction': return new GiroCheckout_SDK_PaypalTransaction();
45
+
46
+ //eps apis
47
+ case 'epsBankstatus': return new GiroCheckout_SDK_EpsBankstatus();
48
+ case 'epsTransaction': return new GiroCheckout_SDK_EpsTransaction();
49
+ case 'epsIssuerList': return new GiroCheckout_SDK_EpsIssuerList();
50
+
51
+ //tools apis
52
+ case 'getTransactionTool': return new GiroCheckout_SDK_Tools_GetTransaction();
53
+
54
+ //GiroCode apis
55
+ case 'giroCodeCreatePayment': return new GiroCheckout_SDK_GiroCodeCreatePayment();
56
+ case 'giroCodeCreateEpc': return new GiroCheckout_SDK_GiroCodeCreateEpc();
57
+ case 'giroCodeGetEpc': return new GiroCheckout_SDK_GiroCodeGetEpc();
58
+
59
+ //Paydirekt apis
60
+ case 'paydirektTransaction': return new GiroCheckout_SDK_PaydirektTransaction();
61
+ case 'paydirektCapture': return new GiroCheckout_SDK_PaydirektCapture();
62
+ case 'paydirektRefund': return new GiroCheckout_SDK_PaydirektRefund();
63
+
64
+ //Sofort apis
65
+ case 'sofortuwTransaction': return new GiroCheckout_SDK_SofortUwTransaction();
66
+ }
67
+
68
+ return null;
69
+ }
70
+ }
lib/GiroCheckout_SDK/log/.htaccess ADDED
@@ -0,0 +1,2 @@
 
 
1
+ Order allow,deny
2
+ Deny from all
package.xml ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <package>
3
+ <name>GiroCheckout</name>
4
+ <version>4.0.0.0</version>
5
+ <stability>stable</stability>
6
+ <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL)</license>
7
+ <channel>community</channel>
8
+ <extends/>
9
+ <summary>This module provides 7 payment methods.</summary>
10
+ <description>This module contains 7 payment methods provided by Girosolution AG:&#xD;
11
+ - Direct Debit&#xD;
12
+ - Credit card&#xD;
13
+ - giropay (optionally with giropay-ID)&#xD;
14
+ - eps&#xD;
15
+ - iDEAL&#xD;
16
+ - Paydirekt&#xD;
17
+ - Sofort &#xDC;berweisung&#xD;
18
+ </description>
19
+ <notes>This version has the following changes compared to the previous one:&#xD;
20
+ - Added payment method giropay+giropay-ID&#xD;
21
+ - Added payment method Paydirekt&#xD;
22
+ - Added payment method Sofort &#xDC;berweisung&#xD;
23
+ - Bank selection widget is now pure JS&#xD;
24
+ - Enhanced logos for credit cards&#xD;
25
+ - New eps logo&#xD;
26
+ - Minor corrections and enhancements&#xD;
27
+ </notes>
28
+ <authors><author><name>Oliver Marx</name><user>girosolution</user><email>support@girosolution.de</email></author></authors>
29
+ <date>2016-06-11</date>
30
+ <time>17:41:50</time>
31
+ <contents><target name="magecommunity"><dir name="Girosolution"><dir name="Giroconnect"><dir name="Block"><dir name="Form"><file name="Creditcard.php" hash="da9f4268d3f73306fa2f5cec67de3dc9"/><file name="Directdebit.php" hash="d59b31a9942c4bd274875d76cf7dada9"/><file name="Eps.php" hash="a1affac46e4b74313656ceb7c58ad825"/><file name="Giropay.php" hash="5d57b4e42bb4078539082f6a7c8bdf43"/><file name="Ideal.php" hash="1dbf48d19f36fba70c6eeaa8859290a9"/><file name="Paydirekt.php" hash="e3674caa600ce3a4c15d791ea213413d"/><file name="Sofortuw.php" hash="fed0607b49d8edecf573ac2287579abb"/></dir></dir><dir name="Helper"><file name="AbstractPaymentProxy.php" hash="6628739ee625999fee137f83c958cd93"/><file name="Creditcard.php" hash="f507043844aaf9b88fa72c0475b28855"/><file name="CreditcardPaymentProxy.php" hash="0655730ee36024816a213bf08ed4cde3"/><file name="Data.php" hash="1ca59ed42becc6b9e8cabd9f25167b9d"/><file name="Directdebit.php" hash="0d279e6d3b482c88734b8812ad8ac3b6"/><file name="DirectdebitPaymentProxy.php" hash="49f4603b1fbcd15a548565a748289f9e"/><file name="Eps.php" hash="fb68581068ab53996796d0703463d580"/><file name="EpsPaymentProxy.php" hash="ca2b731d082e4b932b1c471c6419db91"/><file name="Giropay.php" hash="71fc3d8d01372a3e5fc1a7ea53ee3b94"/><file name="GiropayPaymentProxy.php" hash="4ceb3a2320fb2fe128861d0e6218eaad"/><file name="Ideal.php" hash="27d8e79434fc7ba1d89c4f73a68b4128"/><file name="IdealPaymentProxy.php" hash="4745f2dd05aac5c7b284db1c9eaf4147"/><file name="Paydirekt.php" hash="ecbf9cd022c72c60485c2149ddecc88a"/><file name="PaydirektPaymentProxy.php" hash="3be6e33940b7cdaa9b1e3a170a164dcd"/><file name="Sofortuw.php" hash="21df61ae435de8a57b7ce3eef69b1901"/><file name="SofortuwPaymentProxy.php" hash="647d463b34fff6e8e6182249786d4866"/></dir><dir name="Model"><file name="Observer.php" hash="9bfd651c462cc4704be8dad2b0d7932a"/><dir name="Payment"><file name="Abstract.php" hash="bae4440864c63892d62e678748ee41d0"/><file name="Creditcard.php" hash="12e9474083f3ba3725ef0e42cc23756e"/><file name="Directdebit.php" hash="f8520809fcf0be702072a3fe8db6db76"/><file name="Eps.php" hash="c12b0ff1445c89fa350efd5b4c2d25ec"/><file name="Giropay.php" hash="b5620d92f7e54cafa89752ad15ddbeeb"/><file name="Ideal.php" hash="659f834b3e383dc86f593eb80f40fb24"/><file name="Paydirekt.php" hash="89eb8dc8bef8c6af6317722eff0ce3fd"/><file name="Sofortuw.php" hash="85ee90b85510fd655d15deda61557232"/></dir></dir><dir name="controllers"><file name="CreditcardController.php" hash="84c55a4341ddf2b3711cfdc29cce5360"/><file name="DirectdebitController.php" hash="c4f866223728cc8fe8e5d19f0d8ef42f"/><file name="EpsController.php" hash="9d446bef9326b0c541674b0a409abcfa"/><file name="GiropayController.php" hash="d130316307b7bb84c0ed3bdd33163b5d"/><file name="IdealController.php" hash="0a3bc6a2357c583105cc10c5febd7dcc"/><file name="PaydirektController.php" hash="f274c4fc0c3d509008f1ea1abf1452b9"/><file name="SofortuwController.php" hash="02014152e0bd84ca4d9c5c480a6cf959"/></dir><dir name="etc"><file name="config.xml" hash="a4cef0d078d000181ed2f5803f42c6de"/><file name="system.xml" hash="edb0ddf83f0549ede78ec516c71848c6"/></dir><file name=".DS_Store" hash="9567c71fb3193ad25155b1c371035ddf"/></dir><file name=".DS_Store" hash="e87a74c473c6142d7a1b90396140893f"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="giroconnect"><file name="giroconnectlayout.xml" hash="985e589aaa725053ae11bdc351a3c741"/></dir></dir><dir name="template"><dir name="giroconnect"><dir name="creditcard"><file name="form.phtml" hash="1e0e7f1420c85c636b3c65df5759d8aa"/></dir><dir name="directdebit"><file name="form.phtml" hash="2fb7c488b88e6006e77102f9e288ec6f"/></dir><dir name="eps"><file name="form.phtml" hash="776dbe124e12f6352eb5833715f6ad55"/></dir><dir name="giropay"><file name="form.phtml" hash="7a61bce9dfac3aec7293d21a4abad4d2"/></dir><dir name="ideal"><file name="form.phtml" hash="9d27c8d4eb588e560c3c21aea0622fa2"/></dir><dir name="paydirekt"><file name="form.phtml" hash="295e978704cdd2acc7c2dec1eeb2326f"/></dir><dir name="sofortuw"><file name="form.phtml" hash="edf34ca9f6f110ca9c46a6d95f2c0ad0"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Girosolution_Giroconnect.xml" hash="66789673756b5bf7a9900941aa5b31c8"/></dir></target><target name="magelocale"><dir name="de_DE"><file name="Girosolution_Giroconnect.csv" hash="7a466229eab4fa3148dbc7a793ed83d6"/></dir></target><target name="magelib"><dir name="GiroCheckout_SDK"><file name="GiroCheckout_SDK.php" hash="0d041b8f8c2966f91ac9ac00e15b2fe1"/><file name="GiroCheckout_SDK_Config.php" hash="ec6d3d3634253edaf350829f23bc9d50"/><file name="GiroCheckout_SDK_Notify.php" hash="d343b6c414ead1e587bdc18f02b05e71"/><file name="GiroCheckout_SDK_Request.php" hash="ce0c448680d3895dc64f95fa18ba02d1"/><file name="GiroCheckout_SDK_Request_Cart.php" hash="d3537fbe56d1c1097fcd525cb9023f3a"/><file name="GiroCheckout_SDK_Tools.php" hash="525192c9077a605bd102775b224d16e2"/><dir name="api"><file name="GiroCheckout_SDK_AbstractApi.php" hash="2f28657c4a7f72bac896edb629e2fce1"/><file name="GiroCheckout_SDK_InterfaceApi.php" hash="81a0c5acf0667c9107803bce72689d80"/><dir name="creditcard"><file name="GiroCheckout_SDK_CreditCardCapture.php" hash="a7119104372e411b64423cff81d08f93"/><file name="GiroCheckout_SDK_CreditCardGetPKN.php" hash="470d9e83f372f5a68af053d49f562c91"/><file name="GiroCheckout_SDK_CreditCardRecurringTransaction.php" hash="3c7f9284d5f8b4421cf316802e062a92"/><file name="GiroCheckout_SDK_CreditCardRefund.php" hash="67a8a1ad1b6357ebec6af520e1ffa3c9"/><file name="GiroCheckout_SDK_CreditCardTransaction.php" hash="cc7b06d6b7e3eac18f5eb4fec6cac4c3"/></dir><dir name="directdebit"><file name="GiroCheckout_SDK_DirectDebitCapture.php" hash="fc0ee8b52e54ff8aed2bba25296e815e"/><file name="GiroCheckout_SDK_DirectDebitGetPKN.php" hash="756d0ac041ffa3d6e94073cac4cf3476"/><file name="GiroCheckout_SDK_DirectDebitRefund.php" hash="365d1597a2bf88b33c83f0ee73da8339"/><file name="GiroCheckout_SDK_DirectDebitTransaction.php" hash="a071ecda028801d5a64af7bc2b0392e2"/><file name="GiroCheckout_SDK_DirectDebitTransactionWithPaymentPage.php" hash="0b20777f4eedcb0e5eec79ef838f8c35"/></dir><dir name="eps"><file name="GiroCheckout_SDK_EpsBankstatus.php" hash="3be0632510730e87408ca889092a44fb"/><file name="GiroCheckout_SDK_EpsIssuerList.php" hash="6ff1d3e0a30433de9271f74d5005b8ba"/><file name="GiroCheckout_SDK_EpsTransaction.php" hash="5eb6eb4c78ecd7977e6fb548ad8133ca"/></dir><dir name="girocode"><file name="GiroCheckout_SDK_GiroCodeCreateEpc.php" hash="28909cefe43707be1b0b2b689b54656d"/><file name="GiroCheckout_SDK_GiroCodeCreatePayment.php" hash="d0339f0a8a60c444ed508ee256593714"/><file name="GiroCheckout_SDK_GiroCodeGetEpc.php" hash="d40c97710371a22321bbcc99171a6f1b"/></dir><dir name="giropay"><file name="GiroCheckout_SDK_GiropayBankstatus.php" hash="40c2259e2adcd65ce810dd1af6482c45"/><file name="GiroCheckout_SDK_GiropayIDCheck.php" hash="64c4dd9d6ca3d83df6f0bc5b650548fd"/><file name="GiroCheckout_SDK_GiropayIssuerList.php" hash="7a5cbdac111badaf5c73d1fcd11ec01a"/><file name="GiroCheckout_SDK_GiropayTransaction.php" hash="06c12aa889d66cf7443d4729ee0dce76"/><file name="GiroCheckout_SDK_GiropayTransactionWithGiropayID.php" hash="337f20fd4cbcad9b75da5be744450644"/></dir><dir name="ideal"><file name="GiroCheckout_SDK_IdealIssuerList.php" hash="84f9c38cbbc37ad41820aff44aaf4fd1"/><file name="GiroCheckout_SDK_IdealPayment.php" hash="e1587535d9acb7ac93531863337b9da8"/><file name="GiroCheckout_SDK_IdealPaymentRefund.php" hash="9e398951aad773130171ea33ed686e2f"/></dir><dir name="paydirekt"><file name="GiroCheckout_SDK_PaydirektCapture.php" hash="40b721a3273d67e093f5769ce06e537f"/><file name="GiroCheckout_SDK_PaydirektRefund.php" hash="adf8441f59c1ee4e7f30302495d2f623"/><file name="GiroCheckout_SDK_PaydirektTransaction.php" hash="21849effd5c839692792cbf0eb1fb4cd"/></dir><dir name="paypal"><file name="GiroCheckout_SDK_PaypalTransaction.php" hash="76861442a2f0a2cbcc670ca6f681d214"/></dir><dir name="sofortuw"><file name="GiroCheckout_SDK_SofortUwTransaction.php" hash="a5464cad74340395267c7c367732a4c7"/></dir><dir name="tools"><file name="GiroCheckout_SDK_Tools_GetTransaction.php" hash="f49b8474feb469e526d8b7dbbe248117"/></dir></dir><file name="cacert.pem" hash="9f92a0d9f605e227ae068e605f4c86fa"/><dir name="helper"><file name="GiroCheckout_SDK_Curl_helper.php" hash="a96738188d1f3b35a7385d23acd138cd"/><file name="GiroCheckout_SDK_Debug_helper.php" hash="93782e71d487dd90f190ec69b203a627"/><file name="GiroCheckout_SDK_Exception_helper.php" hash="8b7e594f96d27d34094ca48cc987f924"/><file name="GiroCheckout_SDK_Hash_helper.php" hash="9e9662c33e526495cc815c4dbf7d64da"/><file name="GiroCheckout_SDK_ResponseCode_helper.php" hash="df9f0652970e02eaac62932035f99407"/><file name="GiroCheckout_SDK_TransactionType_helper.php" hash="cf4be96348522879677de4e59747fbd7"/></dir><dir name="log"><file name=".htaccess" hash="6f90e67e1aa0ea2a524430a1d554b7f9"/></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="images"><dir name="giroconnect"><file name="Logo_EC_40_px.jpg" hash="aef230161c29ed7d3823f7f551060c65"/><file name="Logo_EC_50_px.jpg" hash="425c170e1df787dbf19de9dff2e56114"/><file name="Logo_EC_60_px.jpg" hash="f17b079d7e5602bf5b1f3e07606b448d"/><file name="Logo_VISA_MC_40_px.jpg" hash="91c95f1da4f0bac7d74f8b858e3a959d"/><file name="Logo_VISA_MC_50_px.jpg" hash="b8d75f4b45cace78e9f34e95f844f300"/><file name="Logo_VISA_MC_60_px.jpg" hash="6b0cd4e564bef980a895a60495456ee5"/><file name="Logo_eps_40_px.jpg" hash="854d254e82f992ae18e26deaac188a53"/><file name="Logo_eps_50_px.jpg" hash="b3b0e39121b5f6fe45a2289ede95f2bf"/><file name="Logo_eps_60_px.jpg" hash="e5a42417e574d75ed45cb967b5d0b452"/><file name="Logo_giropay_40_px.jpg" hash="e75ed3616e148349cdff5e4a0ee31ddb"/><file name="Logo_giropay_50_px.jpg" hash="da239a7c5dce1f8f386ae71a47558e27"/><file name="Logo_giropay_60_px.jpg" hash="b239a4381e33daf9a833360f7dc0e8ff"/><file name="Logo_iDeal_40_px.jpg" hash="383d2477aa82b0b12c0858fe58c59785"/><file name="Logo_iDeal_50_px.jpg" hash="b0a845c3b79ca362b48f6fdf58f38251"/><file name="Logo_iDeal_60_px.jpg" hash="afe3029494284474167506b7d293fdf3"/><file name="Logo_paydirekt_40_px.jpg" hash="ac540a86f7eea46a4d6ac63acb6bd697"/><file name="Logo_paydirekt_50_px.jpg" hash="4d6e01e86127c3e65d754d6bea634f87"/><file name="Logo_paydirekt_60_px.jpg" hash="827325f3c9d3ba531354230ccb67627c"/><file name="Logo_sofort_40_px.jpg" hash="5ea04c960f86e2d8c305a0d7a44bd481"/><file name="Logo_sofort_50_px.jpg" hash="f53d3f2e3bfe9fce6c8bc753db04e03f"/><file name="Logo_sofort_60_px.jpg" hash="bae169dcdc9c4b13a68c639eb173858a"/><file name="amex_40px.jpg" hash="6dc37da20756b28105adb1925a85a1d7"/><file name="amex_40px.png" hash="2d2a6f4ab9df1451c35483ac30cbe368"/><file name="amex_jcb_40px.jpg" hash="9cbd9babe028ba87012d19ac11ccc868"/><file name="jcb_40px.jpg" hash="15bec02c409ab690839b988d809ba438"/><file name="jcb_40px.png" hash="2d2a6f4ab9df1451c35483ac30cbe368"/><file name="visa_msc_40px.jpg" hash="6b4c9114e1377fc7eee488aa5810be65"/><file name="visa_msc_40px.png" hash="2d2a6f4ab9df1451c35483ac30cbe368"/><file name="visa_msc_amex_40px.jpg" hash="420bb2a8b31763ec2cc2f16a83f9fd0e"/><file name="visa_msc_amex_40px.png" hash="2d2a6f4ab9df1451c35483ac30cbe368"/><file name="visa_msc_amex_jcb_40px.jpg" hash="96fe1a2961ca8291a6992243ce7a21e5"/><file name="visa_msc_amex_jcb_40px.png" hash="2d2a6f4ab9df1451c35483ac30cbe368"/><file name="visa_msc_jcb_40px.jpg" hash="573d32ad0be8ce78ce606c4c14c5297b"/><file name="visa_msc_jcb_40px.png" hash="2d2a6f4ab9df1451c35483ac30cbe368"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir></dir></dir></dir></dir></target></contents>
32
+ <compatible/>
33
+ <dependencies><required><php><min>5.2.0</min><max>7.0.0</max></php></required></dependencies>
34
+ </package>
skin/frontend/base/default/images/giroconnect/.DS_Store ADDED
Binary file
skin/frontend/base/default/images/giroconnect/Logo_EC_40_px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/Logo_EC_50_px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/Logo_EC_60_px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/Logo_VISA_MC_40_px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/Logo_VISA_MC_50_px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/Logo_VISA_MC_60_px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/Logo_eps_40_px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/Logo_eps_50_px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/Logo_eps_60_px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/Logo_giropay_40_px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/Logo_giropay_50_px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/Logo_giropay_60_px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/Logo_iDeal_40_px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/Logo_iDeal_50_px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/Logo_iDeal_60_px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/Logo_paydirekt_40_px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/Logo_paydirekt_50_px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/Logo_paydirekt_60_px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/Logo_sofort_40_px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/Logo_sofort_50_px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/Logo_sofort_60_px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/amex_40px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/amex_40px.png ADDED
Binary file
skin/frontend/base/default/images/giroconnect/amex_jcb_40px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/jcb_40px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/jcb_40px.png ADDED
Binary file
skin/frontend/base/default/images/giroconnect/visa_msc_40px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/visa_msc_40px.png ADDED
Binary file
skin/frontend/base/default/images/giroconnect/visa_msc_amex_40px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/visa_msc_amex_40px.png ADDED
Binary file
skin/frontend/base/default/images/giroconnect/visa_msc_amex_jcb_40px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/visa_msc_amex_jcb_40px.png ADDED
Binary file
skin/frontend/base/default/images/giroconnect/visa_msc_jcb_40px.jpg ADDED
Binary file
skin/frontend/base/default/images/giroconnect/visa_msc_jcb_40px.png ADDED
Binary file