Simple Membership - Version 4.0.5

Version Description

  • Added a new filter hook to allow overriding of the display_name field when adding a member via the admin interface.
  • Added a new filter hook to allow overriding of the account status value when a subscription renewal payment comes in. The filter name is: swpm_account_status_for_subscription_start_date_update
  • Added slovenian language translation file to the plugin.
  • The {membership_level_name} email merge tag will now work for the "Notify User" feature that can be used when editing a member's profile (from the admin dashboard).
  • Updated the Dutch translation file.
  • Fixed the positioning of the validation result message for the username field in the "Add New Member" interface.
Download this release

Release Info

Developer mra13
Plugin Icon 128x128 Simple Membership
Version 4.0.5
Comparing to
See all releases

Code changes from version 4.0.1 to 4.0.5

Files changed (140) hide show
  1. classes/class-swpm-member-subscriptions.php +172 -0
  2. classes/class.simple-wp-membership.php +8 -7
  3. classes/class.swpm-admin-registration.php +27 -14
  4. classes/class.swpm-auth.php +3 -1
  5. classes/class.swpm-front-registration.php +15 -15
  6. classes/class.swpm-members.php +27 -15
  7. classes/class.swpm-membership-levels.php +28 -26
  8. classes/class.swpm-registration.php +4 -0
  9. classes/class.swpm-self-action-handler.php +23 -18
  10. classes/class.swpm-utils-member.php +40 -0
  11. classes/class.swpm-utils-misc.php +2 -0
  12. classes/class.swpm-utils.php +17 -23
  13. classes/class.swpm-wp-loaded-tasks.php +59 -0
  14. classes/shortcode-related/class.swpm-shortcodes-handler.php +226 -185
  15. css/swpm.common.css +2 -1
  16. ipn/swpm-stripe-sca-buy-now-ipn.php +3 -0
  17. ipn/swpm_handle_pp_ipn.php +18 -0
  18. ipn/swpm_handle_subsc_ipn.php +3 -1
  19. languages/simple-membership-es_ES.mo +0 -0
  20. languages/simple-membership-es_ES.po +17 -10
  21. languages/simple-membership-fr_FR.mo +0 -0
  22. languages/simple-membership-fr_FR.po +461 -0
  23. languages/simple-membership-nl_NL.mo +0 -0
  24. languages/simple-membership-nl_NL.po +41 -26
  25. languages/simple-membership-sl_SI.mo +0 -0
  26. languages/simple-membership-sl_SI.po +3021 -0
  27. languages/simple-membership-sv_SE.mo +0 -0
  28. languages/simple-membership-sv_SE.po +3070 -2293
  29. languages/simple-membership.pot +12 -0
  30. lib/stripe-gateway/CHANGELOG.md +723 -295
  31. lib/stripe-gateway/CODE_OF_CONDUCT.md +77 -0
  32. lib/stripe-gateway/Makefile +36 -0
  33. lib/stripe-gateway/README.md +29 -24
  34. lib/stripe-gateway/VERSION +1 -1
  35. lib/stripe-gateway/build.php +10 -21
  36. lib/stripe-gateway/composer.json +17 -6
  37. lib/stripe-gateway/data/ca-certificates.crt +546 -716
  38. lib/stripe-gateway/init.php +132 -125
  39. lib/stripe-gateway/lib/Account.php +265 -228
  40. lib/stripe-gateway/lib/AccountLink.php +11 -7
  41. lib/stripe-gateway/lib/AlipayAccount.php +27 -23
  42. lib/stripe-gateway/lib/ApiOperations/All.php +10 -7
  43. lib/stripe-gateway/lib/ApiOperations/Create.php +6 -3
  44. lib/stripe-gateway/lib/ApiOperations/Delete.php +6 -3
  45. lib/stripe-gateway/lib/ApiOperations/NestedResource.php +35 -18
  46. lib/stripe-gateway/lib/ApiOperations/Request.php +15 -8
  47. lib/stripe-gateway/lib/ApiOperations/Retrieve.php +6 -3
  48. lib/stripe-gateway/lib/ApiOperations/Update.php +13 -7
  49. lib/stripe-gateway/lib/ApiRequestor.php +117 -150
  50. lib/stripe-gateway/lib/ApiResource.php +29 -21
  51. lib/stripe-gateway/lib/ApiResponse.php +19 -8
  52. lib/stripe-gateway/lib/ApplePayDomain.php +6 -4
  53. lib/stripe-gateway/lib/ApplicationFee.php +43 -52
  54. lib/stripe-gateway/lib/ApplicationFeeRefund.php +25 -20
  55. lib/stripe-gateway/lib/Balance.php +22 -10
  56. lib/stripe-gateway/lib/BalanceTransaction.php +50 -49
  57. lib/stripe-gateway/lib/BankAccount.php +69 -48
  58. lib/stripe-gateway/lib/BitcoinReceiver.php +35 -14
  59. lib/stripe-gateway/lib/BitcoinTransaction.php +8 -4
  60. lib/stripe-gateway/lib/Capability.php +38 -35
  61. lib/stripe-gateway/lib/Card.php +71 -60
  62. lib/stripe-gateway/lib/Charge.php +110 -173
  63. lib/stripe-gateway/lib/Checkout/Session.php +41 -24
  64. lib/stripe-gateway/lib/Collection.php +179 -25
  65. lib/stripe-gateway/lib/CountrySpec.php +14 -11
  66. lib/stripe-gateway/lib/Coupon.php +22 -19
  67. lib/stripe-gateway/lib/CreditNote.php +74 -39
  68. lib/stripe-gateway/lib/CreditNoteLineItem.php +23 -0
  69. lib/stripe-gateway/lib/Customer.php +148 -194
  70. lib/stripe-gateway/lib/CustomerBalanceTransaction.php +56 -43
  71. lib/stripe-gateway/lib/Discount.php +2 -4
  72. lib/stripe-gateway/lib/Dispute.php +52 -49
  73. lib/stripe-gateway/lib/EphemeralKey.php +18 -17
  74. lib/stripe-gateway/lib/ErrorObject.php +161 -0
  75. lib/stripe-gateway/lib/Event.php +187 -151
  76. lib/stripe-gateway/lib/Exception/ApiConnectionException.php +12 -0
  77. lib/stripe-gateway/lib/Exception/ApiErrorException.php +219 -0
  78. lib/stripe-gateway/lib/Exception/AuthenticationException.php +11 -0
  79. lib/stripe-gateway/lib/Exception/BadMethodCallException.php +7 -0
  80. lib/stripe-gateway/lib/Exception/CardException.php +84 -0
  81. lib/stripe-gateway/lib/Exception/ExceptionInterface.php +22 -0
  82. lib/stripe-gateway/lib/Exception/IdempotencyException.php +11 -0
  83. lib/stripe-gateway/lib/Exception/InvalidArgumentException.php +7 -0
  84. lib/stripe-gateway/lib/Exception/InvalidRequestException.php +60 -0
  85. lib/stripe-gateway/lib/Exception/OAuth/ExceptionInterface.php +10 -0
  86. lib/stripe-gateway/lib/Exception/OAuth/InvalidClientException.php +12 -0
  87. lib/stripe-gateway/lib/Exception/OAuth/InvalidGrantException.php +13 -0
  88. lib/stripe-gateway/lib/Exception/OAuth/InvalidRequestException.php +11 -0
  89. lib/stripe-gateway/lib/Exception/OAuth/InvalidScopeException.php +10 -0
  90. lib/stripe-gateway/lib/Exception/OAuth/OAuthErrorException.php +19 -0
  91. lib/stripe-gateway/lib/Exception/OAuth/UnknownOAuthErrorException.php +12 -0
  92. lib/stripe-gateway/lib/Exception/OAuth/UnsupportedGrantTypeException.php +11 -0
  93. lib/stripe-gateway/lib/Exception/OAuth/UnsupportedResponseTypeException.php +11 -0
  94. lib/stripe-gateway/lib/Exception/PermissionException.php +11 -0
  95. lib/stripe-gateway/lib/Exception/RateLimitException.php +12 -0
  96. lib/stripe-gateway/lib/Exception/SignatureVerificationException.php +74 -0
  97. lib/stripe-gateway/lib/Exception/UnexpectedValueException.php +7 -0
  98. lib/stripe-gateway/lib/Exception/UnknownApiErrorException.php +12 -0
  99. lib/stripe-gateway/lib/ExchangeRate.php +15 -3
  100. lib/stripe-gateway/lib/File.php +34 -27
  101. lib/stripe-gateway/lib/FileLink.php +13 -13
  102. lib/stripe-gateway/lib/HttpClient/ClientInterface.php +7 -6
  103. lib/stripe-gateway/lib/HttpClient/CurlClient.php +209 -123
  104. lib/stripe-gateway/lib/Invoice.php +171 -119
  105. lib/stripe-gateway/lib/InvoiceItem.php +29 -22
  106. lib/stripe-gateway/lib/InvoiceLineItem.php +20 -23
  107. lib/stripe-gateway/lib/Issuing/Authorization.php +53 -35
  108. lib/stripe-gateway/lib/Issuing/Card.php +33 -26
  109. lib/stripe-gateway/lib/Issuing/CardDetails.php +2 -4
  110. lib/stripe-gateway/lib/Issuing/Cardholder.php +23 -14
  111. lib/stripe-gateway/lib/Issuing/Dispute.php +19 -14
  112. lib/stripe-gateway/lib/Issuing/Transaction.php +24 -20
  113. lib/stripe-gateway/lib/LoginLink.php +4 -8
  114. lib/stripe-gateway/lib/Mandate.php +25 -0
  115. lib/stripe-gateway/lib/OAuth.php +25 -17
  116. lib/stripe-gateway/lib/OAuthErrorObject.php +31 -0
  117. lib/stripe-gateway/lib/Order.php +51 -35
  118. lib/stripe-gateway/lib/OrderItem.php +2 -4
  119. lib/stripe-gateway/lib/OrderReturn.php +16 -12
  120. lib/stripe-gateway/lib/PaymentIntent.php +78 -61
  121. lib/stripe-gateway/lib/PaymentMethod.php +36 -21
  122. lib/stripe-gateway/lib/Payout.php +55 -60
  123. lib/stripe-gateway/lib/Person.php +55 -57
  124. lib/stripe-gateway/lib/Plan.php +30 -22
  125. lib/stripe-gateway/lib/Product.php +31 -27
  126. lib/stripe-gateway/lib/Radar/EarlyFraudWarning.php +19 -20
  127. lib/stripe-gateway/lib/Radar/ValueList.php +16 -15
  128. lib/stripe-gateway/lib/Radar/ValueListItem.php +13 -10
  129. lib/stripe-gateway/lib/Recipient.php +28 -30
  130. lib/stripe-gateway/lib/RecipientTransfer.php +4 -6
  131. lib/stripe-gateway/lib/Refund.php +33 -37
  132. lib/stripe-gateway/lib/Reporting/ReportRun.php +20 -13
  133. lib/stripe-gateway/lib/Reporting/ReportType.php +18 -10
  134. lib/stripe-gateway/lib/RequestTelemetry.php +3 -4
  135. lib/stripe-gateway/lib/Review.php +34 -27
  136. lib/stripe-gateway/lib/SKU.php +25 -17
  137. lib/stripe-gateway/lib/SetupIntent.php +75 -38
  138. lib/stripe-gateway/lib/Sigma/ScheduledQueryRun.php +18 -16
  139. lib/stripe-gateway/lib/SingletonApiResource.php +7 -7
  140. lib/stripe-gateway/lib/Source.php +74 -73
classes/class-swpm-member-subscriptions.php ADDED
@@ -0,0 +1,172 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class SWPM_Member_Subscriptions {
4
+
5
+ private $active_statuses = array( 'trialing', 'active' );
6
+ private $active_subs_count = 0;
7
+ private $subs_count = 0;
8
+ private $subs = array();
9
+ private $member_id;
10
+
11
+ public function __construct( $member_id ) {
12
+
13
+ $this->member_id = $member_id;
14
+
15
+ $subscr_id = SwpmMemberUtils::get_member_field_by_id( $member_id, 'subscr_id' );
16
+
17
+ $query_args = array(
18
+ 'post_type' => 'swpm_transactions',
19
+ 'meta_query' => array(
20
+ 'relation' => 'AND',
21
+ array(
22
+ 'relation' => 'OR',
23
+ array(
24
+ 'key' => 'member_id',
25
+ 'value' => $member_id,
26
+ 'compare' => '=',
27
+ ),
28
+ array(
29
+ 'key' => 'subscr_id',
30
+ 'value' => $subscr_id,
31
+ 'compare' => '=',
32
+ ),
33
+ ),
34
+ array(
35
+ 'key' => 'gateway',
36
+ 'value' => 'stripe-sca-subs',
37
+ 'compare' => '=',
38
+ ),
39
+ ),
40
+ );
41
+
42
+ $found_subs = new WP_Query( $query_args );
43
+
44
+ $this->subs_count = $found_subs->post_count;
45
+
46
+ foreach ( $found_subs->posts as $found_sub ) {
47
+ $sub = array();
48
+ $post_id = $found_sub->ID;
49
+ $sub['post_id'] = $post_id;
50
+ $sub_id = get_post_meta( $post_id, 'subscr_id', true );
51
+
52
+ $sub['sub_id'] = $sub_id;
53
+
54
+ $status = get_post_meta( $post_id, 'subscr_status', true );
55
+
56
+ $sub['status'] = $status;
57
+
58
+ if ( $this->is_active( $status ) ) {
59
+ $this->active_subs_count++;
60
+ }
61
+
62
+ $cancel_token = get_post_meta( $post_id, 'subscr_cancel_token', true );
63
+
64
+ if ( empty( $cancel_token ) ) {
65
+ $cancel_token = md5( $post_id . $sub_id . uniqid() );
66
+ update_post_meta( $post_id, 'subscr_cancel_token', $cancel_token );
67
+ }
68
+
69
+ $sub['cancel_token'] = $cancel_token;
70
+
71
+ $is_live = get_post_meta( $post_id, 'is_live', true );
72
+ $is_live = empty( $is_live ) ? false : true;
73
+ $sub['is_live'] = $is_live;
74
+
75
+ $sub['payment_button_id'] = get_post_meta( $post_id, 'payment_button_id', true );
76
+
77
+ $this->subs[ $sub_id ] = $sub;
78
+ }
79
+
80
+ $this->recheck_status_if_needed();
81
+
82
+ }
83
+
84
+ public function get_active_subs_count() {
85
+ return $this->active_subs_count;
86
+ }
87
+
88
+ public function is_active( $status ) {
89
+ return in_array( $status, $this->active_statuses, true );
90
+ }
91
+
92
+ private function recheck_status_if_needed() {
93
+ foreach ( $this->subs as $sub_id => $sub ) {
94
+ if ( ! empty( $sub['status'] ) ) {
95
+ continue;
96
+ }
97
+ try {
98
+ $api_keys = SwpmMiscUtils::get_stripe_api_keys_from_payment_button( $sub['payment_button_id'], $sub['is_live'] );
99
+
100
+ SwpmMiscUtils::load_stripe_lib();
101
+
102
+ \Stripe\Stripe::setApiKey( $api_keys['secret'] );
103
+
104
+ $stripe_sub = \Stripe\Subscription::retrieve( $sub_id );
105
+
106
+ $this->subs[ $sub_id ]['status'] = $stripe_sub['status'];
107
+
108
+ if ( $this->is_active( $stripe_sub['status'] ) ) {
109
+ $this->active_subs_count++;
110
+ }
111
+
112
+ update_post_meta( $sub['post_id'], 'subscr_status', $stripe_sub['status'] );
113
+ } catch ( \Exception $e ) {
114
+ return false;
115
+ }
116
+ }
117
+ }
118
+
119
+ public function get_stripe_subs_cancel_url( $args, $sub_id = false ) {
120
+ if ( empty( $this->active_subs_count ) ) {
121
+ return SwpmUtils::_( 'No active subscriptions' );
122
+ }
123
+ if ( false === $sub_id ) {
124
+ $sub_id = array_key_first( $this->subs );
125
+ }
126
+ $sub = $this->subs[ $sub_id ];
127
+
128
+ $token = $sub['cancel_token'];
129
+
130
+ $nonce = wp_nonce_field( $token, 'swpm_cancel_sub_nonce', false, false );
131
+
132
+ $anchor_text = isset( $args['anchor_text'] ) ? $args['anchor_text'] : SwpmUtils::_( 'Cancel Subscription' );
133
+ $out = '<form method="POST">%s<input type="hidden" name="swpm_cancel_sub_token" value="%s"></input>
134
+ <button type="submit" name="swpm_do_cancel_sub" value="1" onclick="return confirm(\'' . esc_js( SwpmUtils::_( 'Are you sure that you want to cancel the subscription?' ) ) . '\');">' . $anchor_text . '</button></form>';
135
+
136
+ $out = sprintf( $out, $nonce, $token );
137
+
138
+ return $out;
139
+ }
140
+
141
+ public function find_by_token( $token ) {
142
+ foreach ( $this->subs as $sub_id => $sub ) {
143
+ if ( $sub['cancel_token'] === $token ) {
144
+ return $sub;
145
+ }
146
+ }
147
+ }
148
+
149
+ public function cancel( $sub_id ) {
150
+ $sub = $this->subs[ $sub_id ];
151
+
152
+ try {
153
+ $api_keys = SwpmMiscUtils::get_stripe_api_keys_from_payment_button( $sub['payment_button_id'], $sub['is_live'] );
154
+
155
+ SwpmMiscUtils::load_stripe_lib();
156
+
157
+ \Stripe\Stripe::setApiKey( $api_keys['secret'] );
158
+
159
+ $stripe_sub = \Stripe\Subscription::retrieve( $sub_id );
160
+
161
+ if ( $this->is_active( $stripe_sub['status'] ) ) {
162
+ $stripe_sub->cancel();
163
+ }
164
+
165
+ update_post_meta( $sub['post_id'], 'subscr_status', $stripe_sub['status'] );
166
+ } catch ( \Exception $e ) {
167
+ return $e->getMessage();
168
+ }
169
+ return true;
170
+ }
171
+
172
+ }
classes/class.simple-wp-membership.php CHANGED
@@ -31,6 +31,7 @@ include_once('class.swpm-permission-collection.php');
31
  include_once('class.swpm-auth-permission-collection.php');
32
  include_once('class.swpm-transactions.php');
33
  include_once('shortcode-related/class.swpm-shortcodes-handler.php');
 
34
 
35
  class SimpleWpMembership {
36
 
@@ -637,9 +638,9 @@ class SimpleWpMembership {
637
  //Only loaded on selective swpm admin menu page rendering.
638
  $this->common_library();
639
  wp_enqueue_script('password-strength-meter');
640
- wp_enqueue_script('swpm.password-meter', SIMPLE_WP_MEMBERSHIP_URL . '/js/swpm.password-meter.js', array('jquery'));
641
  //jQuery UI style
642
- wp_register_style('swpm-jquery-ui', SIMPLE_WP_MEMBERSHIP_URL . '/css/jquery-ui.min.css');
643
  wp_enqueue_style('swpm-jquery-ui');
644
  wp_enqueue_script('jquery-ui-datepicker');
645
  $settings = array('statusChangeEmailHead' => SwpmSettings::get_instance()->get_value('account-change-email-subject'),
@@ -653,14 +654,14 @@ class SimpleWpMembership {
653
 
654
  private function common_library() {
655
  wp_enqueue_script('jquery');
656
- wp_enqueue_style('swpm.common', SIMPLE_WP_MEMBERSHIP_URL . '/css/swpm.common.css');
657
 
658
  //In order to not clog WP with scripts and styles we're only using with forms, let's just register those for now
659
  //Scripts will be queued when forms are actually displayed
660
- wp_register_style('validationEngine.jquery', SIMPLE_WP_MEMBERSHIP_URL . '/css/validationEngine.jquery.css');
661
- wp_register_script('jquery.validationEngine', SIMPLE_WP_MEMBERSHIP_URL . '/js/jquery.validationEngine.js', array('jquery'));
662
- wp_register_script('jquery.validationEngine-en', SIMPLE_WP_MEMBERSHIP_URL . '/js/jquery.validationEngine-en.js', array('jquery'));
663
- wp_register_script('swpm.validationEngine-localization', SIMPLE_WP_MEMBERSHIP_URL . '/js/swpm.validationEngine-localization.js', array('jquery'));
664
  }
665
 
666
  public static function enqueue_validation_scripts($add_params = array()) {
31
  include_once('class.swpm-auth-permission-collection.php');
32
  include_once('class.swpm-transactions.php');
33
  include_once('shortcode-related/class.swpm-shortcodes-handler.php');
34
+ include_once('class-swpm-member-subscriptions.php');
35
 
36
  class SimpleWpMembership {
37
 
638
  //Only loaded on selective swpm admin menu page rendering.
639
  $this->common_library();
640
  wp_enqueue_script('password-strength-meter');
641
+ wp_enqueue_script('swpm.password-meter', SIMPLE_WP_MEMBERSHIP_URL . '/js/swpm.password-meter.js', array('jquery'), SIMPLE_WP_MEMBERSHIP_VER);
642
  //jQuery UI style
643
+ wp_register_style('swpm-jquery-ui', SIMPLE_WP_MEMBERSHIP_URL . '/css/jquery-ui.min.css', array(), SIMPLE_WP_MEMBERSHIP_VER);
644
  wp_enqueue_style('swpm-jquery-ui');
645
  wp_enqueue_script('jquery-ui-datepicker');
646
  $settings = array('statusChangeEmailHead' => SwpmSettings::get_instance()->get_value('account-change-email-subject'),
654
 
655
  private function common_library() {
656
  wp_enqueue_script('jquery');
657
+ wp_enqueue_style('swpm.common', SIMPLE_WP_MEMBERSHIP_URL . '/css/swpm.common.css', array(), SIMPLE_WP_MEMBERSHIP_VER);
658
 
659
  //In order to not clog WP with scripts and styles we're only using with forms, let's just register those for now
660
  //Scripts will be queued when forms are actually displayed
661
+ wp_register_style('validationEngine.jquery', SIMPLE_WP_MEMBERSHIP_URL . '/css/validationEngine.jquery.css', array(), SIMPLE_WP_MEMBERSHIP_VER);
662
+ wp_register_script('jquery.validationEngine', SIMPLE_WP_MEMBERSHIP_URL . '/js/jquery.validationEngine.js', array('jquery'), SIMPLE_WP_MEMBERSHIP_VER);
663
+ wp_register_script('jquery.validationEngine-en', SIMPLE_WP_MEMBERSHIP_URL . '/js/jquery.validationEngine-en.js', array('jquery'), SIMPLE_WP_MEMBERSHIP_VER);
664
+ wp_register_script('swpm.validationEngine-localization', SIMPLE_WP_MEMBERSHIP_URL . '/js/swpm.validationEngine-localization.js', array('jquery'), SIMPLE_WP_MEMBERSHIP_VER);
665
  }
666
 
667
  public static function enqueue_validation_scripts($add_params = array()) {
classes/class.swpm-admin-registration.php CHANGED
@@ -29,18 +29,24 @@ class SwpmAdminRegistration extends SwpmRegistration {
29
  $member = SwpmTransfer::$default_fields;
30
  $form = new SwpmForm( $member );
31
  if ( $form->is_valid() ) {
32
- $member_info = $form->get_sanitized_member_form_data();
33
- $account_status = SwpmSettings::get_instance()->get_value( 'default-account-status', 'active' );
 
 
 
 
 
34
  $member_info['account_state'] = $account_status;
35
- $plain_password = $member_info['plain_password'];
36
  unset( $member_info['plain_password'] );
 
37
  $wpdb->insert( $wpdb->prefix . 'swpm_members_tbl', $member_info );
38
 
39
  //Register to WordPress
40
- $query = $wpdb->prepare( 'SELECT role FROM ' . $wpdb->prefix . 'swpm_membership_tbl WHERE id = %d', $member_info['membership_level'] );
41
- $wp_user_info = array();
42
  $wp_user_info['user_nicename'] = implode( '-', explode( ' ', $member_info['user_name'] ) );
43
- $wp_user_info['display_name'] = $member_info['user_name'];
44
  $wp_user_info['user_email'] = $member_info['email'];
45
  $wp_user_info['nickname'] = $member_info['user_name'];
46
  if ( isset( $member_info['first_name'] ) ) {
@@ -115,7 +121,7 @@ class SwpmAdminRegistration extends SwpmRegistration {
115
  $wpdb->update( $wpdb->prefix . 'swpm_members_tbl', $member, array( 'member_id' => $id ) );
116
  // set previous membership level
117
  $member['prev_membership_level'] = $prev_level;
118
- $member['member_id'] = $id;
119
 
120
  //Trigger action hook
121
  do_action( 'swpm_admin_end_edit_complete_user_data', $member );
@@ -156,13 +162,20 @@ class SwpmAdminRegistration extends SwpmRegistration {
156
  $body = filter_input( INPUT_POST, 'notificationmailbody' );
157
  $settings->set_value( 'account-change-email-body', $body )->set_value( 'account-change-email-subject', $subject )->save();
158
  $member['login_link'] = $settings->get_value( 'login-page-url' );
159
- $member['user_name'] = $user_name;
160
- $member['password'] = empty( $plain_password ) ? SwpmUtils::_( 'Your current password' ) : $plain_password;
161
- $values = array_values( $member );
162
- $keys = array_map( 'swpm_enclose_var', array_keys( $member ) );
163
- $body = html_entity_decode( str_replace( $keys, $values, $body ) );
164
- $subject = apply_filters( 'swpm_email_account_status_change_subject', $subject );
165
- $body = apply_filters( 'swpm_email_account_status_change_body', $body );
 
 
 
 
 
 
 
166
  SwpmMiscUtils::mail( $email_address, $subject, $body, $headers );
167
  SwpmLog::log_simple_debug( 'Notify email sent (after profile edit from admin side). Email sent to: ' . $email_address, true );
168
  }
29
  $member = SwpmTransfer::$default_fields;
30
  $form = new SwpmForm( $member );
31
  if ( $form->is_valid() ) {
32
+ $member_info = $form->get_sanitized_member_form_data();
33
+
34
+ //First, check if email or username belongs to an existing admin user. Bail if it does.
35
+ SwpmMemberUtils::check_and_die_if_email_belongs_to_admin_user($member_info['email']);
36
+ SwpmMemberUtils::check_and_die_if_username_belongs_to_admin_user($member_info['user_name']);
37
+
38
+ $account_status = SwpmSettings::get_instance()->get_value( 'default-account-status', 'active' );
39
  $member_info['account_state'] = $account_status;
40
+ $plain_password = $member_info['plain_password'];
41
  unset( $member_info['plain_password'] );
42
+ //Create SWPM member entry
43
  $wpdb->insert( $wpdb->prefix . 'swpm_members_tbl', $member_info );
44
 
45
  //Register to WordPress
46
+ $query = $wpdb->prepare( 'SELECT role FROM ' . $wpdb->prefix . 'swpm_membership_tbl WHERE id = %d', $member_info['membership_level'] );
47
+ $wp_user_info = array();
48
  $wp_user_info['user_nicename'] = implode( '-', explode( ' ', $member_info['user_name'] ) );
49
+ $wp_user_info['display_name'] = apply_filters( 'swpm_admin_end_registration_display_name', $member_info['user_name'] );
50
  $wp_user_info['user_email'] = $member_info['email'];
51
  $wp_user_info['nickname'] = $member_info['user_name'];
52
  if ( isset( $member_info['first_name'] ) ) {
121
  $wpdb->update( $wpdb->prefix . 'swpm_members_tbl', $member, array( 'member_id' => $id ) );
122
  // set previous membership level
123
  $member['prev_membership_level'] = $prev_level;
124
+ $member['member_id'] = $id;
125
 
126
  //Trigger action hook
127
  do_action( 'swpm_admin_end_edit_complete_user_data', $member );
162
  $body = filter_input( INPUT_POST, 'notificationmailbody' );
163
  $settings->set_value( 'account-change-email-body', $body )->set_value( 'account-change-email-subject', $subject )->save();
164
  $member['login_link'] = $settings->get_value( 'login-page-url' );
165
+ $member['user_name'] = $user_name;
166
+ $member['password'] = empty( $plain_password ) ? SwpmUtils::_( 'Your current password' ) : $plain_password;
167
+ $values = array_values( $member );
168
+ $keys = array_map( 'swpm_enclose_var', array_keys( $member ) );
169
+ $body = html_entity_decode( str_replace( $keys, $values, $body ) );
170
+
171
+ //Do the standard email merge tag replacement.
172
+ $body = SwpmMiscUtils::replace_dynamic_tags( $body, $id );
173
+
174
+ //Trigger the filter hooks
175
+ $subject = apply_filters( 'swpm_email_account_status_change_subject', $subject );
176
+ $body = apply_filters( 'swpm_email_account_status_change_body', $body );
177
+
178
+ //Send the email
179
  SwpmMiscUtils::mail( $email_address, $subject, $body, $headers );
180
  SwpmLog::log_simple_debug( 'Notify email sent (after profile edit from admin side). Email sent to: ' . $email_address, true );
181
  }
classes/class.swpm-auth.php CHANGED
@@ -370,8 +370,10 @@ class SwpmAuth {
370
  $user_id = $this->get( 'member_id' );
371
  $subscr_id = $this->get( 'subscr_id' );
372
  $email = $this->get( 'email' );
373
- wp_clear_auth_cookie();
374
  $this->logout();
 
 
375
  SwpmMembers::delete_swpm_user_by_id( $user_id );
376
  SwpmMembers::delete_wp_user( $user_name );
377
  }
370
  $user_id = $this->get( 'member_id' );
371
  $subscr_id = $this->get( 'subscr_id' );
372
  $email = $this->get( 'email' );
373
+
374
  $this->logout();
375
+ wp_clear_auth_cookie();
376
+
377
  SwpmMembers::delete_swpm_user_by_id( $user_id );
378
  SwpmMembers::delete_wp_user( $user_name );
379
  }
classes/class.swpm-front-registration.php CHANGED
@@ -68,13 +68,13 @@ class SwpmFrontRegistration extends SwpmRegistration {
68
  }
69
 
70
  //Handle the registration form in core plugin
71
- $mebership_info = SwpmPermission::get_instance( $membership_level );
72
- $membership_level = $mebership_info->get( 'id' );
73
  if ( empty( $membership_level ) ) {
74
  return 'Error! Failed to retrieve membership level ID from the membership info object.';
75
  }
76
- $level_identifier = md5( $membership_level );
77
- $membership_level_alias = $mebership_info->get( 'alias' );
78
  $swpm_registration_submit = filter_input( INPUT_POST, 'swpm_registration_submit' );
79
  if ( ! empty( $swpm_registration_submit ) ) {
80
  $member = array_map( 'sanitize_text_field', $_POST );
@@ -169,6 +169,10 @@ class SwpmFrontRegistration extends SwpmRegistration {
169
  );
170
  } else {
171
  $login_page_url = SwpmSettings::get_instance()->get_value( 'login-page-url' );
 
 
 
 
172
  $after_rego_msg = '<div class="swpm-registration-success-msg">' . SwpmUtils::_( 'Registration Successful. ' ) . SwpmUtils::_( 'Please' ) . ' <a href="' . $login_page_url . '">' . SwpmUtils::_( 'Login' ) . '</a></div>';
173
  $after_rego_msg = apply_filters( 'swpm_registration_success_msg', $after_rego_msg );
174
  $message = array(
@@ -198,17 +202,7 @@ class SwpmFrontRegistration extends SwpmRegistration {
198
  $member_info = $form->get_sanitized_member_form_data();
199
 
200
  //Check if the email belongs to an existing wp user account with admin role.
201
- $wp_user_id = email_exists( $member_info['email'] );
202
- if ( $wp_user_id ) {
203
- //A wp user account exist with this email.
204
- //Check if the user has admin role.
205
- $admin_user = SwpmMemberUtils::wp_user_has_admin_role( $wp_user_id );
206
- if ( $admin_user ) {
207
- //This email belongs to an admin user. Update is not allowed on admin users. Show error message then exit.
208
- $error_msg = '<p>This email address (' . $member_info['email'] . ') belongs to an admin user. This email cannot be used to register a new account on this site.</p>';
209
- wp_die( $error_msg );
210
- }
211
- }
212
 
213
  //Go ahead and create the SWPM user record.
214
  $free_level = SwpmUtils::get_free_level();
@@ -441,6 +435,9 @@ class SwpmFrontRegistration extends SwpmRegistration {
441
  public function email_activation() {
442
  $login_page_url = SwpmSettings::get_instance()->get_value( 'login-page-url' );
443
 
 
 
 
444
  $member_id = FILTER_INPUT( INPUT_GET, 'swpm_member_id', FILTER_SANITIZE_NUMBER_INT );
445
 
446
  $member = SwpmMemberUtils::get_user_by_id( $member_id );
@@ -491,6 +488,9 @@ class SwpmFrontRegistration extends SwpmRegistration {
491
  public function resend_activation_email() {
492
  $login_page_url = SwpmSettings::get_instance()->get_value( 'login-page-url' );
493
 
 
 
 
494
  $member_id = FILTER_INPUT( INPUT_GET, 'swpm_member_id', FILTER_SANITIZE_NUMBER_INT );
495
 
496
  $member = SwpmMemberUtils::get_user_by_id( $member_id );
68
  }
69
 
70
  //Handle the registration form in core plugin
71
+ $membership_info = SwpmPermission::get_instance( $membership_level );
72
+ $membership_level = $membership_info->get( 'id' );
73
  if ( empty( $membership_level ) ) {
74
  return 'Error! Failed to retrieve membership level ID from the membership info object.';
75
  }
76
+ $level_identifier = md5( $membership_level );
77
+ $membership_level_alias = $membership_info->get( 'alias' );
78
  $swpm_registration_submit = filter_input( INPUT_POST, 'swpm_registration_submit' );
79
  if ( ! empty( $swpm_registration_submit ) ) {
80
  $member = array_map( 'sanitize_text_field', $_POST );
169
  );
170
  } else {
171
  $login_page_url = SwpmSettings::get_instance()->get_value( 'login-page-url' );
172
+
173
+ // Allow hooks to change the value of login_page_url
174
+ $login_page_url = apply_filters('swpm_register_front_end_login_page_url', $login_page_url);
175
+
176
  $after_rego_msg = '<div class="swpm-registration-success-msg">' . SwpmUtils::_( 'Registration Successful. ' ) . SwpmUtils::_( 'Please' ) . ' <a href="' . $login_page_url . '">' . SwpmUtils::_( 'Login' ) . '</a></div>';
177
  $after_rego_msg = apply_filters( 'swpm_registration_success_msg', $after_rego_msg );
178
  $message = array(
202
  $member_info = $form->get_sanitized_member_form_data();
203
 
204
  //Check if the email belongs to an existing wp user account with admin role.
205
+ SwpmMemberUtils::check_and_die_if_email_belongs_to_admin_user($member_info['email']);
 
 
 
 
 
 
 
 
 
 
206
 
207
  //Go ahead and create the SWPM user record.
208
  $free_level = SwpmUtils::get_free_level();
435
  public function email_activation() {
436
  $login_page_url = SwpmSettings::get_instance()->get_value( 'login-page-url' );
437
 
438
+ // Allow hooks to change the value of login_page_url
439
+ $login_page_url = apply_filters('swpm_email_activation_login_page_url', $login_page_url);
440
+
441
  $member_id = FILTER_INPUT( INPUT_GET, 'swpm_member_id', FILTER_SANITIZE_NUMBER_INT );
442
 
443
  $member = SwpmMemberUtils::get_user_by_id( $member_id );
488
  public function resend_activation_email() {
489
  $login_page_url = SwpmSettings::get_instance()->get_value( 'login-page-url' );
490
 
491
+ // Allow hooks to change the value of login_page_url
492
+ $login_page_url = apply_filters('swpm_resend_activation_email_login_page_url', $login_page_url);
493
+
494
  $member_id = FILTER_INPUT( INPUT_GET, 'swpm_member_id', FILTER_SANITIZE_NUMBER_INT );
495
 
496
  $member = SwpmMemberUtils::get_user_by_id( $member_id );
classes/class.swpm-members.php CHANGED
@@ -108,13 +108,16 @@ class SwpmMembers extends WP_List_Table {
108
  $s = filter_input( INPUT_POST, 's' );
109
  }
110
 
111
- $status = filter_input( INPUT_GET, 'status' );
 
 
112
  $filters = array();
113
 
114
  //Add the search parameter to the query
115
  if ( ! empty( $s ) ) {
116
- $s = sanitize_text_field( $s );
117
- $s = trim( $s ); //Trim the input
 
118
  $filters[] = "( user_name LIKE '%" . strip_tags( $s ) . "%' "
119
  . " OR first_name LIKE '%" . strip_tags( $s ) . "%' "
120
  . " OR last_name LIKE '%" . strip_tags( $s ) . "%' "
@@ -248,7 +251,10 @@ class SwpmMembers extends WP_List_Table {
248
  extract( $member, EXTR_SKIP );
249
  $query = 'SELECT * FROM ' . $wpdb->prefix . 'swpm_membership_tbl WHERE id !=1 ';
250
  $levels = $wpdb->get_results( $query, ARRAY_A );
251
- include_once SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_add.php';
 
 
 
252
  return false;
253
  }
254
 
@@ -272,7 +278,10 @@ class SwpmMembers extends WP_List_Table {
272
  extract( $member, EXTR_SKIP );
273
  $query = 'SELECT * FROM ' . $wpdb->prefix . 'swpm_membership_tbl WHERE id !=1 ';
274
  $levels = $wpdb->get_results( $query, ARRAY_A );
275
- include_once SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_edit.php';
 
 
 
276
  return false;
277
  }
278
 
@@ -335,21 +344,24 @@ class SwpmMembers extends WP_List_Table {
335
 
336
  $subject = $settings->get_value( 'bulk-activate-notify-mail-subject' );
337
  if ( empty( $subject ) ) {
338
- $subject = 'Account Activated!';
339
  }
340
  $body = $settings->get_value( 'bulk-activate-notify-mail-body' );
341
  if ( empty( $body ) ) {
342
- $body = 'Hi, Your account has been activated successfully!';
343
  }
344
 
345
- $from_address = $settings->get_value( 'email-from' );
346
- $to_email_list = implode( ',', $emails );
347
- $headers = 'From: ' . $from_address . "\r\n";
348
- $headers .= 'bcc: ' . $to_email_list . "\r\n";
349
- $subject = apply_filters( 'swpm_email_bulk_set_status_subject', $subject );
350
- $body = apply_filters( 'swpm_email_bulk_set_status_body', $body );
351
- SwpmMiscUtils::mail( array()/* $email_list */, $subject, $body, $headers );
352
- SwpmLog::log_simple_debug( 'Bulk activation email notification sent. Activation email sent to the following email: ' . $to_email_list, true );
 
 
 
353
  }
354
  }
355
 
108
  $s = filter_input( INPUT_POST, 's' );
109
  }
110
 
111
+ $status = filter_input( INPUT_GET, 'status' );
112
+ $status = esc_attr( $status );//Escape value
113
+
114
  $filters = array();
115
 
116
  //Add the search parameter to the query
117
  if ( ! empty( $s ) ) {
118
+ $s = sanitize_text_field( $s );
119
+ $s = trim( $s ); //Trim the input
120
+ $s = esc_attr( $s );
121
  $filters[] = "( user_name LIKE '%" . strip_tags( $s ) . "%' "
122
  . " OR first_name LIKE '%" . strip_tags( $s ) . "%' "
123
  . " OR last_name LIKE '%" . strip_tags( $s ) . "%' "
251
  extract( $member, EXTR_SKIP );
252
  $query = 'SELECT * FROM ' . $wpdb->prefix . 'swpm_membership_tbl WHERE id !=1 ';
253
  $levels = $wpdb->get_results( $query, ARRAY_A );
254
+
255
+ $add_user_template_path = apply_filters('swpm_admin_registration_add_user_template_path', SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_add.php');
256
+ include_once $add_user_template_path;
257
+
258
  return false;
259
  }
260
 
278
  extract( $member, EXTR_SKIP );
279
  $query = 'SELECT * FROM ' . $wpdb->prefix . 'swpm_membership_tbl WHERE id !=1 ';
280
  $levels = $wpdb->get_results( $query, ARRAY_A );
281
+
282
+ $edit_user_template_path = apply_filters('swpm_admin_registration_edit_user_template_path', SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_edit.php');
283
+ include_once $edit_user_template_path;
284
+
285
  return false;
286
  }
287
 
344
 
345
  $subject = $settings->get_value( 'bulk-activate-notify-mail-subject' );
346
  if ( empty( $subject ) ) {
347
+ $subject = 'Account Activated!';
348
  }
349
  $body = $settings->get_value( 'bulk-activate-notify-mail-body' );
350
  if ( empty( $body ) ) {
351
+ $body = 'Hi, Your account has been activated successfully!';
352
  }
353
 
354
+ $from_address = $settings->get_value( 'email-from' );
355
+ $headers = 'From: ' . $from_address . "\r\n";
356
+
357
+ foreach ($emails as $to_email) {
358
+ //Send the activation email one by one to all the selected members.
359
+ $subject = apply_filters( 'swpm_email_bulk_set_status_subject', $subject );
360
+ $body = apply_filters( 'swpm_email_bulk_set_status_body', $body );
361
+ $to_email = trim($to_email);
362
+ SwpmMiscUtils::mail( $to_email, $subject, $body, $headers );
363
+ SwpmLog::log_simple_debug( 'Bulk activation email notification sent. Activation email sent to the following email: ' . $to_email, true );
364
+ }
365
  }
366
  }
367
 
classes/class.swpm-membership-levels.php CHANGED
@@ -68,7 +68,7 @@ class SwpmMembershipLevels extends WP_List_Table {
68
 
69
  function column_id($item) {
70
  $delete_swpmlevel_nonce = wp_create_nonce( 'nonce_delete_swpmlevel_admin_end' );
71
-
72
  $actions = array(
73
  'edit' => sprintf('<a href="admin.php?page=simple_wp_membership_levels&level_action=edit&id=%s">Edit</a>', $item['id']),
74
  'delete' => sprintf('<a href="admin.php?page=simple_wp_membership_levels&level_action=delete&id=%s&delete_swpmlevel_nonce=%s" onclick="return confirm(\'Are you sure you want to delete this entry?\')">Delete</a>', $item['id'],$delete_swpmlevel_nonce),
@@ -89,9 +89,11 @@ class SwpmMembershipLevels extends WP_List_Table {
89
 
90
  $query = "SELECT * FROM " . $wpdb->prefix . "swpm_membership_tbl WHERE id !=1 ";
91
  if (isset($_POST['s'])){
92
- $query .= " AND alias LIKE '%" . sanitize_text_field($_POST['s']) . "%' ";
 
 
93
  }
94
-
95
  //Read and sanitize the sort inputs.
96
  $orderby = !empty($_GET["orderby"]) ? esc_sql($_GET["orderby"]) : 'id';
97
  $order = !empty($_GET["order"]) ? esc_sql($_GET["order"]) : 'DESC';
@@ -139,10 +141,10 @@ class SwpmMembershipLevels extends WP_List_Table {
139
  $record_id = sanitize_text_field($_REQUEST['id']);
140
  if(!is_numeric($record_id)){
141
  wp_die('Error! ID must be numeric.');
142
- }
143
  return $this->edit($record_id);
144
  }
145
-
146
  //Level add action
147
  return $this->add();
148
  }
@@ -187,16 +189,16 @@ class SwpmMembershipLevels extends WP_List_Table {
187
  function delete_level() {
188
  global $wpdb;
189
  if (isset($_REQUEST['id'])) {
190
-
191
- //Check we are on the admin end and user has management permission
192
  SwpmMiscUtils::check_user_permission_and_is_admin('membership level delete');
193
-
194
  //Check nonce
195
  if ( !isset($_REQUEST['delete_swpmlevel_nonce']) || !wp_verify_nonce($_REQUEST['delete_swpmlevel_nonce'], 'nonce_delete_swpmlevel_admin_end' )){
196
  //Nonce check failed.
197
  wp_die(SwpmUtils::_("Error! Nonce verification failed for membership level delete from admin end."));
198
  }
199
-
200
  $id = sanitize_text_field($_REQUEST['id']);
201
  $id = absint($id);
202
  $query = $wpdb->prepare("DELETE FROM " . $wpdb->prefix . "swpm_membership_tbl WHERE id = %d", $id);
@@ -243,25 +245,25 @@ class SwpmMembershipLevels extends WP_List_Table {
243
  $selected = "post_list";
244
  include_once('class.swpm-post-list.php');
245
  $post_list = new SwpmPostList();
246
- include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_post_list.php');
247
  }
248
-
249
- function handle_main_membership_level_admin_menu(){
250
  do_action( 'swpm_membership_level_menu_start' );
251
-
252
  //Check current_user_can() or die.
253
  SwpmMiscUtils::check_user_permission_and_is_admin('Main Membership Level Admin Menu');
254
 
255
  $level_action = filter_input(INPUT_GET, 'level_action');
256
  $action = $level_action;
257
  $selected= $action;
258
-
259
  ?>
260
  <div class="wrap swpm-admin-menu-wrap"><!-- start wrap -->
261
 
262
  <!-- page title -->
263
  <h1><?php echo SwpmUtils::_('Simple WP Membership::Membership Levels') ?></h1>
264
-
265
  <!-- start nav menu tabs -->
266
  <h2 class="nav-tab-wrapper">
267
  <a class="nav-tab <?php echo ($selected == "") ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership_levels"><?php echo SwpmUtils::_('Membership Levels') ?></a>
@@ -270,28 +272,28 @@ class SwpmMembershipLevels extends WP_List_Table {
270
  <a class="nav-tab <?php echo ($selected == "category_list") ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership_levels&level_action=category_list"><?php echo SwpmUtils::_('Category Protection') ?></a>
271
  <a class="nav-tab <?php echo ($selected == "post_list") ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership_levels&level_action=post_list"><?php echo SwpmUtils::_('Post and Page Protection') ?></a>
272
  <?php
273
-
274
  //Trigger hooks that allows an extension to add extra nav tabs in the membership levels menu.
275
  do_action ('swpm_membership_levels_menu_nav_tabs', $selected);
276
-
277
  $menu_tabs = apply_filters('swpm_membership_levels_additional_menu_tabs_array', array());
278
  foreach ($menu_tabs as $level_action => $title){
279
  ?>
280
  <a class="nav-tab <?php echo ($selected == $member_action) ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership_levels&level_action=<?php echo $level_action; ?>" ><?php SwpmUtils::e($title); ?></a>
281
  <?php
282
  }
283
-
284
- ?>
285
  </h2>
286
  <!-- end nav menu tabs -->
287
-
288
  <?php
289
-
290
  do_action( 'swpm_membership_level_menu_after_nav_tabs' );
291
-
292
  //Trigger hook so anyone listening for this particular action can handle the output.
293
  do_action( 'swpm_membership_level_menu_body_' . $action );
294
-
295
  //Allows an addon to completely override the body section of the membership level admin menu for a given action.
296
  $output = apply_filters('swpm_membership_level_menu_body_override', '', $action);
297
  if (!empty($output)) {
@@ -300,7 +302,7 @@ class SwpmMembershipLevels extends WP_List_Table {
300
  echo '</div>';//<!-- end of wrap -->
301
  return;
302
  }
303
-
304
  //Switch case for the various different actions handled by the core plugin.
305
  switch ($action) {
306
  case 'add':
@@ -323,7 +325,7 @@ class SwpmMembershipLevels extends WP_List_Table {
323
  break;
324
  }
325
 
326
- echo '</div>';//<!-- end of wrap -->
327
  }
328
-
329
  }
68
 
69
  function column_id($item) {
70
  $delete_swpmlevel_nonce = wp_create_nonce( 'nonce_delete_swpmlevel_admin_end' );
71
+
72
  $actions = array(
73
  'edit' => sprintf('<a href="admin.php?page=simple_wp_membership_levels&level_action=edit&id=%s">Edit</a>', $item['id']),
74
  'delete' => sprintf('<a href="admin.php?page=simple_wp_membership_levels&level_action=delete&id=%s&delete_swpmlevel_nonce=%s" onclick="return confirm(\'Are you sure you want to delete this entry?\')">Delete</a>', $item['id'],$delete_swpmlevel_nonce),
89
 
90
  $query = "SELECT * FROM " . $wpdb->prefix . "swpm_membership_tbl WHERE id !=1 ";
91
  if (isset($_POST['s'])){
92
+ $search_keyword = sanitize_text_field($_POST['s']);
93
+ $search_keyword = esc_attr ($search_keyword);
94
+ $query .= " AND alias LIKE '%" . $search_keyword . "%' ";
95
  }
96
+
97
  //Read and sanitize the sort inputs.
98
  $orderby = !empty($_GET["orderby"]) ? esc_sql($_GET["orderby"]) : 'id';
99
  $order = !empty($_GET["order"]) ? esc_sql($_GET["order"]) : 'DESC';
141
  $record_id = sanitize_text_field($_REQUEST['id']);
142
  if(!is_numeric($record_id)){
143
  wp_die('Error! ID must be numeric.');
144
+ }
145
  return $this->edit($record_id);
146
  }
147
+
148
  //Level add action
149
  return $this->add();
150
  }
189
  function delete_level() {
190
  global $wpdb;
191
  if (isset($_REQUEST['id'])) {
192
+
193
+ //Check we are on the admin end and user has management permission
194
  SwpmMiscUtils::check_user_permission_and_is_admin('membership level delete');
195
+
196
  //Check nonce
197
  if ( !isset($_REQUEST['delete_swpmlevel_nonce']) || !wp_verify_nonce($_REQUEST['delete_swpmlevel_nonce'], 'nonce_delete_swpmlevel_admin_end' )){
198
  //Nonce check failed.
199
  wp_die(SwpmUtils::_("Error! Nonce verification failed for membership level delete from admin end."));
200
  }
201
+
202
  $id = sanitize_text_field($_REQUEST['id']);
203
  $id = absint($id);
204
  $query = $wpdb->prepare("DELETE FROM " . $wpdb->prefix . "swpm_membership_tbl WHERE id = %d", $id);
245
  $selected = "post_list";
246
  include_once('class.swpm-post-list.php');
247
  $post_list = new SwpmPostList();
248
+ include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_post_list.php');
249
  }
250
+
251
+ function handle_main_membership_level_admin_menu(){
252
  do_action( 'swpm_membership_level_menu_start' );
253
+
254
  //Check current_user_can() or die.
255
  SwpmMiscUtils::check_user_permission_and_is_admin('Main Membership Level Admin Menu');
256
 
257
  $level_action = filter_input(INPUT_GET, 'level_action');
258
  $action = $level_action;
259
  $selected= $action;
260
+
261
  ?>
262
  <div class="wrap swpm-admin-menu-wrap"><!-- start wrap -->
263
 
264
  <!-- page title -->
265
  <h1><?php echo SwpmUtils::_('Simple WP Membership::Membership Levels') ?></h1>
266
+
267
  <!-- start nav menu tabs -->
268
  <h2 class="nav-tab-wrapper">
269
  <a class="nav-tab <?php echo ($selected == "") ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership_levels"><?php echo SwpmUtils::_('Membership Levels') ?></a>
272
  <a class="nav-tab <?php echo ($selected == "category_list") ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership_levels&level_action=category_list"><?php echo SwpmUtils::_('Category Protection') ?></a>
273
  <a class="nav-tab <?php echo ($selected == "post_list") ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership_levels&level_action=post_list"><?php echo SwpmUtils::_('Post and Page Protection') ?></a>
274
  <?php
275
+
276
  //Trigger hooks that allows an extension to add extra nav tabs in the membership levels menu.
277
  do_action ('swpm_membership_levels_menu_nav_tabs', $selected);
278
+
279
  $menu_tabs = apply_filters('swpm_membership_levels_additional_menu_tabs_array', array());
280
  foreach ($menu_tabs as $level_action => $title){
281
  ?>
282
  <a class="nav-tab <?php echo ($selected == $member_action) ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership_levels&level_action=<?php echo $level_action; ?>" ><?php SwpmUtils::e($title); ?></a>
283
  <?php
284
  }
285
+
286
+ ?>
287
  </h2>
288
  <!-- end nav menu tabs -->
289
+
290
  <?php
291
+
292
  do_action( 'swpm_membership_level_menu_after_nav_tabs' );
293
+
294
  //Trigger hook so anyone listening for this particular action can handle the output.
295
  do_action( 'swpm_membership_level_menu_body_' . $action );
296
+
297
  //Allows an addon to completely override the body section of the membership level admin menu for a given action.
298
  $output = apply_filters('swpm_membership_level_menu_body_override', '', $action);
299
  if (!empty($output)) {
302
  echo '</div>';//<!-- end of wrap -->
303
  return;
304
  }
305
+
306
  //Switch case for the various different actions handled by the core plugin.
307
  switch ($action) {
308
  case 'add':
325
  break;
326
  }
327
 
328
+ echo '</div>';//<!-- end of wrap -->
329
  }
330
+
331
  }
classes/class.swpm-registration.php CHANGED
@@ -45,6 +45,10 @@ abstract class SwpmRegistration {
45
  ),
46
  get_home_url()
47
  );
 
 
 
 
48
  $member_info['activation_link'] = $activation_link;
49
  }
50
 
45
  ),
46
  get_home_url()
47
  );
48
+
49
+ // Allow hooks to change the value of activation_link
50
+ $activation_link = apply_filters('swpm_send_reg_email_activation_link', $activation_link);
51
+
52
  $member_info['activation_link'] = $activation_link;
53
  }
54
 
classes/class.swpm-self-action-handler.php CHANGED
@@ -1,31 +1,32 @@
1
  <?php
2
 
3
  class SwpmSelfActionHandler {
4
-
5
  public function __construct() {
6
  //Register all the self action hooks the plugin needs to handle
7
  add_action('swpm_front_end_registration_complete_fb', array(&$this, 'after_registration_callback'));//For the form builder
8
  add_action('swpm_front_end_registration_complete_user_data', array(&$this, 'after_registration_callback'));
9
-
10
  add_action('swpm_membership_level_changed', array(&$this, 'handle_membership_level_changed_action'));
11
-
12
  add_action('swpm_payment_ipn_processed', array(&$this, 'handle_swpm_payment_ipn_processed'));
13
 
14
  add_filter('swpm_after_logout_redirect_url', array(&$this, 'handle_after_logout_redirection'));
15
  add_filter('swpm_auth_cookie_expiry_value', array(&$this, 'handle_auth_cookie_expiry_value'));
16
  }
17
-
18
  public function handle_auth_cookie_expiry_value($expire){
19
 
20
  $logout_member_on_browser_close = SwpmSettings::get_instance()->get_value('logout-member-on-browser-close');
21
  if (!empty($logout_member_on_browser_close)) {
22
  //This feature is enabled.
23
- $expire = 0;
 
24
  }
25
-
26
  return $expire;
27
  }
28
-
29
  public function handle_after_logout_redirection($redirect_url){
30
  $after_logout_url = SwpmSettings::get_instance()->get_value('after-logout-redirection-url');
31
  if(!empty($after_logout_url)){
@@ -34,7 +35,7 @@ class SwpmSelfActionHandler {
34
  }
35
  return $redirect_url;
36
  }
37
-
38
  public function handle_swpm_payment_ipn_processed($ipn_data){
39
  $ipn_forward_url = SwpmSettings::get_instance()->get_value('payment-notification-forward-url');
40
  if(!empty($ipn_forward_url)){
@@ -46,14 +47,18 @@ class SwpmSelfActionHandler {
46
  }
47
  }
48
  }
49
-
50
  public function after_registration_callback($user_data){
51
-
52
  //Handle auto login after registration if enabled
53
  $enable_auto_login = SwpmSettings::get_instance()->get_value('auto-login-after-rego');
54
  if (!empty($enable_auto_login)){
55
  SwpmLog::log_simple_debug("Auto login after registration feature is enabled in settings. Performing auto login for user: " . $user_data['user_name'], true);
56
  $login_page_url = SwpmSettings::get_instance()->get_value('login-page-url');
 
 
 
 
57
  $encoded_pass = base64_encode($user_data['plain_password']);
58
  $swpm_auto_login_nonce = wp_create_nonce('swpm-auto-login-nonce');
59
  $arr_params = array(
@@ -63,18 +68,18 @@ class SwpmSelfActionHandler {
63
  'swpm_auto_login_nonce' => $swpm_auto_login_nonce,
64
  );
65
  $redirect_page = add_query_arg($arr_params, $login_page_url);
66
- wp_redirect($redirect_page);
67
  exit(0);
68
  }
69
-
70
  }
71
-
72
  public function handle_membership_level_changed_action($args){
73
  $swpm_id = $args['member_id'];
74
  $old_level = $args['from_level'];
75
- $new_level = $args['to_level'];
76
  SwpmLog::log_simple_debug('swpm_membership_level_changed action triggered. Member ID: '.$swpm_id.', Old Level: '.$old_level.', New Level: '.$new_level, true);
77
-
78
  //Check to see if the old and the new levels are the same or not.
79
  if(trim($old_level) == trim($new_level)){
80
  SwpmLog::log_simple_debug('The to (Level ID: '.$new_level.') and from (Level ID: '.$old_level.') values are the same. Nothing to do here.', true);
@@ -98,8 +103,8 @@ class SwpmSelfActionHandler {
98
  $wp_user_id = $user_info->ID;
99
  SwpmLog::log_simple_debug('Calling user role update function.', true);
100
  SwpmMemberUtils::update_wp_user_role($wp_user_id, $user_role);
101
- }
102
-
103
  }
104
-
105
  }
1
  <?php
2
 
3
  class SwpmSelfActionHandler {
4
+
5
  public function __construct() {
6
  //Register all the self action hooks the plugin needs to handle
7
  add_action('swpm_front_end_registration_complete_fb', array(&$this, 'after_registration_callback'));//For the form builder
8
  add_action('swpm_front_end_registration_complete_user_data', array(&$this, 'after_registration_callback'));
9
+
10
  add_action('swpm_membership_level_changed', array(&$this, 'handle_membership_level_changed_action'));
11
+
12
  add_action('swpm_payment_ipn_processed', array(&$this, 'handle_swpm_payment_ipn_processed'));
13
 
14
  add_filter('swpm_after_logout_redirect_url', array(&$this, 'handle_after_logout_redirection'));
15
  add_filter('swpm_auth_cookie_expiry_value', array(&$this, 'handle_auth_cookie_expiry_value'));
16
  }
17
+
18
  public function handle_auth_cookie_expiry_value($expire){
19
 
20
  $logout_member_on_browser_close = SwpmSettings::get_instance()->get_value('logout-member-on-browser-close');
21
  if (!empty($logout_member_on_browser_close)) {
22
  //This feature is enabled.
23
+ //Setting auth cookie expiry value to 0.
24
+ $expire = apply_filters( 'swpm_logout_on_close_auth_cookie_expiry_value', 0 );
25
  }
26
+
27
  return $expire;
28
  }
29
+
30
  public function handle_after_logout_redirection($redirect_url){
31
  $after_logout_url = SwpmSettings::get_instance()->get_value('after-logout-redirection-url');
32
  if(!empty($after_logout_url)){
35
  }
36
  return $redirect_url;
37
  }
38
+
39
  public function handle_swpm_payment_ipn_processed($ipn_data){
40
  $ipn_forward_url = SwpmSettings::get_instance()->get_value('payment-notification-forward-url');
41
  if(!empty($ipn_forward_url)){
47
  }
48
  }
49
  }
50
+
51
  public function after_registration_callback($user_data){
52
+
53
  //Handle auto login after registration if enabled
54
  $enable_auto_login = SwpmSettings::get_instance()->get_value('auto-login-after-rego');
55
  if (!empty($enable_auto_login)){
56
  SwpmLog::log_simple_debug("Auto login after registration feature is enabled in settings. Performing auto login for user: " . $user_data['user_name'], true);
57
  $login_page_url = SwpmSettings::get_instance()->get_value('login-page-url');
58
+
59
+ // Allow hooks to change the value of login_page_url
60
+ $login_page_url = apply_filters('swpm_after_reg_callback_login_page_url', $login_page_url);
61
+
62
  $encoded_pass = base64_encode($user_data['plain_password']);
63
  $swpm_auto_login_nonce = wp_create_nonce('swpm-auto-login-nonce');
64
  $arr_params = array(
68
  'swpm_auto_login_nonce' => $swpm_auto_login_nonce,
69
  );
70
  $redirect_page = add_query_arg($arr_params, $login_page_url);
71
+ wp_redirect($redirect_page);
72
  exit(0);
73
  }
74
+
75
  }
76
+
77
  public function handle_membership_level_changed_action($args){
78
  $swpm_id = $args['member_id'];
79
  $old_level = $args['from_level'];
80
+ $new_level = $args['to_level'];
81
  SwpmLog::log_simple_debug('swpm_membership_level_changed action triggered. Member ID: '.$swpm_id.', Old Level: '.$old_level.', New Level: '.$new_level, true);
82
+
83
  //Check to see if the old and the new levels are the same or not.
84
  if(trim($old_level) == trim($new_level)){
85
  SwpmLog::log_simple_debug('The to (Level ID: '.$new_level.') and from (Level ID: '.$old_level.') values are the same. Nothing to do here.', true);
103
  $wp_user_id = $user_info->ID;
104
  SwpmLog::log_simple_debug('Calling user role update function.', true);
105
  SwpmMemberUtils::update_wp_user_role($wp_user_id, $user_role);
106
+ }
107
+
108
  }
109
+
110
  }
classes/class.swpm-utils-member.php CHANGED
@@ -62,6 +62,14 @@ class SwpmMemberUtils {
62
  return SwpmUtils::_( 'User is not logged in.' );
63
  }
64
 
 
 
 
 
 
 
 
 
65
  public static function get_member_field_by_id( $id, $field, $default = '' ) {
66
  global $wpdb;
67
  $query = 'SELECT * FROM ' . $wpdb->prefix . 'swpm_members_tbl WHERE member_id = %d';
@@ -217,6 +225,38 @@ class SwpmMemberUtils {
217
  return preg_match( '/^[a-zA-Z0-9.\-_*@]+$/', $user_name ) == 1;
218
  }
219
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
220
  public static function wp_user_has_admin_role( $wp_user_id ) {
221
  $caps = get_user_meta( $wp_user_id, 'wp_capabilities', true );
222
  if ( is_array( $caps ) && in_array( 'administrator', array_keys( (array) $caps ) ) ) {
62
  return SwpmUtils::_( 'User is not logged in.' );
63
  }
64
 
65
+ public static function get_logged_in_members_email() {
66
+ $auth = SwpmAuth::get_instance();
67
+ if ( ! $auth->is_logged_in() ) {
68
+ return SwpmUtils::_( 'User is not logged in.' );
69
+ }
70
+ return $auth->get( 'email' );
71
+ }
72
+
73
  public static function get_member_field_by_id( $id, $field, $default = '' ) {
74
  global $wpdb;
75
  $query = 'SELECT * FROM ' . $wpdb->prefix . 'swpm_members_tbl WHERE member_id = %d';
225
  return preg_match( '/^[a-zA-Z0-9.\-_*@]+$/', $user_name ) == 1;
226
  }
227
 
228
+ public static function check_and_die_if_email_belongs_to_admin_user( $email_to_check ){
229
+ //Check if the email belongs to an existing wp user account.
230
+ $wp_user_id = email_exists( $email_to_check );
231
+ if ( $wp_user_id ) {
232
+ //A wp user account exist with this email.
233
+ //Check if the user has admin role.
234
+ $admin_user = SwpmMemberUtils::wp_user_has_admin_role( $wp_user_id );
235
+ if ( $admin_user ) {
236
+ //This email belongs to an admin user. Cannot use/register using an admin user's email from front-end. Show error message then exit.
237
+ $error_msg = '<p>This email address (' . $email_to_check . ') belongs to an admin user. This email cannot be used to register a new account on this site for security reasons. Contact site admin.</p>';
238
+ $error_msg .= '<p>For testing purpose, you can create another user account that is completely separate from the admin user account of this site.</p>';
239
+ wp_die( $error_msg );
240
+ }
241
+ }
242
+ }
243
+
244
+ public static function check_and_die_if_username_belongs_to_admin_user( $username_to_check ){
245
+ //Check if the username belongs to an existing wp user account.
246
+ $wp_user_id = username_exists( $username_to_check );
247
+ if ( $wp_user_id ) {
248
+ //A wp user account exists with this username.
249
+ //Check if the user has admin role.
250
+ $admin_user = SwpmMemberUtils::wp_user_has_admin_role( $wp_user_id );
251
+ if ( $admin_user ) {
252
+ //This Username belongs to an admin user. Cannot use/register using an existing admin user's username from front-end. Show error message then exit.
253
+ $error_msg = '<p>This username (' . $username_to_check . ') belongs to an admin user. It cannot be used to register a new account on this site for security reasons. Contact site admin.</p>';
254
+ $error_msg .= '<p>For testing purpose, you can create another user account that is completely separate from the admin user account of this site.</p>';
255
+ wp_die( $error_msg );
256
+ }
257
+ }
258
+ }
259
+
260
  public static function wp_user_has_admin_role( $wp_user_id ) {
261
  $caps = get_user_meta( $wp_user_id, 'wp_capabilities', true );
262
  if ( is_array( $caps ) && in_array( 'administrator', array_keys( (array) $caps ) ) ) {
classes/class.swpm-utils-misc.php CHANGED
@@ -515,6 +515,7 @@ class SwpmMiscUtils {
515
  'Equatorial Guinea',
516
  'Eritrea',
517
  'Estonia',
 
518
  'Ethiopia',
519
  'Fiji',
520
  'Finland',
@@ -592,6 +593,7 @@ class SwpmMiscUtils {
592
  'Oman',
593
  'Pakistan',
594
  'Palau',
 
595
  'Panama',
596
  'Papua New Guinea',
597
  'Paraguay',
515
  'Equatorial Guinea',
516
  'Eritrea',
517
  'Estonia',
518
+ 'Eswatini',
519
  'Ethiopia',
520
  'Fiji',
521
  'Finland',
593
  'Oman',
594
  'Pakistan',
595
  'Palau',
596
+ 'Palestine',
597
  'Panama',
598
  'Papua New Guinea',
599
  'Paraguay',
classes/class.swpm-utils.php CHANGED
@@ -116,9 +116,9 @@ abstract class SwpmUtils {
116
  }
117
 
118
  public static function gender_dropdown( $selected = 'not specified' ) {
119
- return '<option ' . ( ( strtolower( $selected ) == 'male' ) ? 'selected="selected"' : '' ) . ' value="male">Male</option>' .
120
- '<option ' . ( ( strtolower( $selected ) == 'female' ) ? 'selected="selected"' : '' ) . ' value="female">Female</option>' .
121
- '<option ' . ( ( strtolower( $selected ) == 'not specified' ) ? 'selected="selected"' : '' ) . ' value="not specified">Not Specified</option>';
122
  }
123
 
124
  public static function get_account_state_options() {
@@ -263,31 +263,24 @@ abstract class SwpmUtils {
263
 
264
  public static function create_wp_user( $wp_user_data ) {
265
 
 
 
 
 
 
 
 
266
  //Check if the email belongs to an existing wp user account.
267
  $wp_user_id = email_exists( $wp_user_data['user_email'] );
268
  if ( $wp_user_id ) {
269
  //A wp user account exist with this email.
270
- //Check if the user has admin role.
271
- $admin_user = SwpmMemberUtils::wp_user_has_admin_role( $wp_user_id );
272
- if ( $admin_user ) {
273
- //This email belongs to an admin user. Cannot modify/override/use/register using an admin user's email from front-end. Show error message then exit.
274
- $error_msg = '<p>This email address (' . $wp_user_data['user_email'] . ') belongs to an admin user. This email cannot be used to register a new account on this site for security reasons. Contact site admin.</p>';
275
- wp_die( $error_msg );
276
- }
277
  } else {
278
  //Check if the username belongs to an existing wp user account.
279
  $wp_user_id = username_exists( $wp_user_data['user_login'] );
280
  if ( $wp_user_id ) {
281
  //A wp user account exist with this username.
282
- //Check if the user has admin role.
283
- $admin_user = SwpmMemberUtils::wp_user_has_admin_role( $wp_user_id );
284
- if ( $admin_user ) {
285
- //This Username belongs to an admin user. Cannot modify/override/use/register using an existing admin user's username from front-end. Show error message then exit.
286
- $error_msg = '<p>This username (' . $wp_user_data['user_login'] . ') belongs to an admin user. It cannot be used to register a new account on this site for security reasons. Contact site admin.</p>';
287
- wp_die( $error_msg );
288
- }
289
- } else {
290
- //All clear. No user exists with the provided username or email.
291
  }
292
  }
293
 
@@ -307,19 +300,20 @@ abstract class SwpmUtils {
307
  );
308
  return $wp_user_id;
309
  }
 
310
  $wp_user_id = wpmu_create_user( $wp_user_data['user_login'], $wp_user_data['password'], $wp_user_data['user_email'] );
311
  $role = 'subscriber'; //TODO - add user as a subscriber first. The subsequent update user role function to update the role to the correct one
312
  add_user_to_blog( $blog_id, $wp_user_id, $role );
313
- //End of WPMU
314
  } else {
315
- //This is a WP Single site install.
316
 
317
  //Lets see if an existing WP user exist from the email_exists() or username_exists() check earlier.
318
  if ( $wp_user_id ) {
319
- return $wp_user_id;
320
  }
321
 
322
- //Try to create a brand new WP user entry.
323
  $wp_user_id = wp_create_user( $wp_user_data['user_login'], $wp_user_data['password'], $wp_user_data['user_email'] );
324
 
325
  //Update that newly created user's profile with additional data.
116
  }
117
 
118
  public static function gender_dropdown( $selected = 'not specified' ) {
119
+ return '<option ' . ( ( strtolower( $selected ) == 'male' ) ? 'selected="selected"' : '' ) . ' value="male">' . SwpmUtils::_('Male') . '</option>' .
120
+ '<option ' . ( ( strtolower( $selected ) == 'female' ) ? 'selected="selected"' : '' ) . ' value="female">' . SwpmUtils::_('Female') . '</option>' .
121
+ '<option ' . ( ( strtolower( $selected ) == 'not specified' ) ? 'selected="selected"' : '' ) . ' value="not specified">' . SwpmUtils::_('Not Specified') . '</option>';
122
  }
123
 
124
  public static function get_account_state_options() {
263
 
264
  public static function create_wp_user( $wp_user_data ) {
265
 
266
+ //First, check if email or username belongs to an existing admin user.
267
+ SwpmMemberUtils::check_and_die_if_email_belongs_to_admin_user($wp_user_data['user_email']);
268
+ SwpmMemberUtils::check_and_die_if_username_belongs_to_admin_user($wp_user_data['user_login']);
269
+
270
+ //At this point, the username or the email is not taken by any existing wp user with admin role.
271
+ //Lets continue the normal registration process.
272
+
273
  //Check if the email belongs to an existing wp user account.
274
  $wp_user_id = email_exists( $wp_user_data['user_email'] );
275
  if ( $wp_user_id ) {
276
  //A wp user account exist with this email.
277
+ //For signle site WP install, no new user will be created. The existing user ID will be returned.
 
 
 
 
 
 
278
  } else {
279
  //Check if the username belongs to an existing wp user account.
280
  $wp_user_id = username_exists( $wp_user_data['user_login'] );
281
  if ( $wp_user_id ) {
282
  //A wp user account exist with this username.
283
+ //For signle site WP install, no new user will be created. The existing user ID will be returned.
 
 
 
 
 
 
 
 
284
  }
285
  }
286
 
300
  );
301
  return $wp_user_id;
302
  }
303
+ //No existing user. Create a new one.
304
  $wp_user_id = wpmu_create_user( $wp_user_data['user_login'], $wp_user_data['password'], $wp_user_data['user_email'] );
305
  $role = 'subscriber'; //TODO - add user as a subscriber first. The subsequent update user role function to update the role to the correct one
306
  add_user_to_blog( $blog_id, $wp_user_id, $role );
307
+ //End of WPMS
308
  } else {
309
+ //This is a WP Single Site install.
310
 
311
  //Lets see if an existing WP user exist from the email_exists() or username_exists() check earlier.
312
  if ( $wp_user_id ) {
313
+ return $wp_user_id;
314
  }
315
 
316
+ //No existing user. Try to create a brand new WP user entry.
317
  $wp_user_id = wp_create_user( $wp_user_data['user_login'], $wp_user_data['password'], $wp_user_data['user_email'] );
318
 
319
  //Update that newly created user's profile with additional data.
classes/class.swpm-wp-loaded-tasks.php CHANGED
@@ -16,6 +16,13 @@ class SwpmWpLoadedTasks {
16
  //IPN listener
17
  $this->swpm_ipn_listener();
18
 
 
 
 
 
 
 
 
19
  }
20
 
21
  /*
@@ -103,4 +110,56 @@ class SwpmWpLoadedTasks {
103
  }
104
  }
105
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
106
  }
16
  //IPN listener
17
  $this->swpm_ipn_listener();
18
 
19
+ //Cancel subscirption action listener
20
+ $cancel_sub_action = filter_input( INPUT_POST, 'swpm_do_cancel_sub', FILTER_SANITIZE_NUMBER_INT );
21
+
22
+ if ( ! empty( $cancel_sub_action ) ) {
23
+ $this->do_cancel_sub();
24
+ }
25
+
26
  }
27
 
28
  /*
110
  }
111
  }
112
 
113
+ private function do_cancel_sub() {
114
+
115
+ function msg( $msg, $is_error = true ) {
116
+ echo $msg;
117
+ echo '<br><br>';
118
+ echo SwpmUtils::_( 'You will be redirected to the previous page in a few seconds. If not, please <a href="">click here</a>.' );
119
+ echo '<script>function toPrevPage(){window.location = window.location.href;}setTimeout(toPrevPage,5000);</script>';
120
+ if ( ! $is_error ) {
121
+ wp_die( '', SwpmUtils::_( 'Success!' ), array( 'response' => 200 ) );
122
+ }
123
+ wp_die();
124
+ }
125
+
126
+ $token = filter_input( INPUT_POST, 'swpm_cancel_sub_token', FILTER_SANITIZE_STRING );
127
+ if ( empty( $token ) ) {
128
+ //no token
129
+ msg( SwpmUtils::_( 'No token provided.' ) );
130
+ }
131
+
132
+ //check nonce
133
+ $nonce = filter_input( INPUT_POST, 'swpm_cancel_sub_nonce', FILTER_SANITIZE_STRING );
134
+ if ( empty( $nonce ) || ! wp_verify_nonce( $nonce, $token ) ) {
135
+ //nonce check failed
136
+ msg( SwpmUtils::_( 'Nonce check failed.' ) );
137
+ }
138
+
139
+ if ( ! SwpmMemberUtils::is_member_logged_in() ) {
140
+ //member not logged in
141
+ msg( SwpmUtils::_( 'You are not logged in.' ) );
142
+ }
143
+
144
+ $member_id = SwpmMemberUtils::get_logged_in_members_id();
145
+
146
+ $subs = new SWPM_Member_Subscriptions( $member_id );
147
+
148
+ $sub = $subs->find_by_token( $token );
149
+
150
+ if ( empty( $sub ) ) {
151
+ //no subscription found
152
+ return false;
153
+ }
154
+
155
+ $res = $subs->cancel( $sub['sub_id'] );
156
+
157
+ if ( $res !== true ) {
158
+ msg( $res );
159
+ }
160
+
161
+ msg( SwpmUtils::_( 'Subscription has been cancelled.' ), false );
162
+
163
+ }
164
+
165
  }
classes/shortcode-related/class.swpm-shortcodes-handler.php CHANGED
@@ -1,185 +1,226 @@
1
- <?php
2
-
3
- class SwpmShortcodesHandler {
4
-
5
- public function __construct() {
6
- //Register all the shortcodes here
7
- add_shortcode('swpm_payment_button', array(&$this, 'swpm_payment_button_sc'));
8
- add_shortcode('swpm_thank_you_page_registration', array(&$this, 'swpm_ty_page_rego_sc'));
9
-
10
- add_shortcode('swpm_show_expiry_date', array(&$this, 'swpm_show_expiry_date_sc'));
11
-
12
- add_shortcode('swpm_mini_login', array(&$this, 'swpm_show_mini_login_sc'));
13
-
14
- add_shortcode('swpm_paypal_subscription_cancel_link', array(&$this, 'swpm_pp_cancel_subs_link_sc'));
15
- }
16
-
17
- public function swpm_payment_button_sc($args) {
18
- extract(shortcode_atts(array(
19
- 'id' => '',
20
- 'button_text' => '',
21
- 'new_window' => '',
22
- 'class' => '',
23
- ), $args));
24
-
25
- if (empty($id)) {
26
- return '<p class="swpm-red-box">Error! You must specify a button ID with this shortcode. Check the usage documentation.</p>';
27
- }
28
-
29
- $button_id = $id;
30
- //$button = get_post($button_id); //Retrieve the CPT for this button
31
- $button_type = get_post_meta($button_id, 'button_type', true);
32
- if(empty($button_type)){
33
- $error_msg = '<p class="swpm-red-box">';
34
- $error_msg .= 'Error! The button ID ('.$button_id.') you specified in the shortcode does not exist. You may have deleted this payment button. ';
35
- $error_msg .= 'Go to the Manage Payment Buttons interface then copy and paste the correct button ID in the shortcode.';
36
- $error_msg .= '</p>';
37
- return $error_msg;
38
- }
39
-
40
- include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/paypal_button_shortcode_view.php');
41
- include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/stripe_button_shortcode_view.php');
42
- include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/stripe_sca_button_shortcode_view.php');
43
- include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/braintree_button_shortcode_view.php');
44
- include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/paypal_smart_checkout_button_shortcode_view.php');
45
-
46
- $button_code = '';
47
- $button_code = apply_filters('swpm_payment_button_shortcode_for_' . $button_type, $button_code, $args);
48
-
49
- $output = '';
50
- $output .= '<div class="swpm-payment-button">' . $button_code . '</div>';
51
-
52
- return $output;
53
- }
54
-
55
- public function swpm_ty_page_rego_sc($args) {
56
- $output = '';
57
- $settings = SwpmSettings::get_instance();
58
-
59
- //If user is logged in then the purchase will be applied to the existing profile
60
- if (SwpmMemberUtils::is_member_logged_in()) {
61
- $username = SwpmMemberUtils::get_logged_in_members_username();
62
- $output .= '<div class="swpm-ty-page-registration-logged-in swpm-yellow-box">';
63
- $output .= '<p>' . SwpmUtils::_('Your membership profile will be updated to reflect the payment.') . '</p>';
64
- $output .= SwpmUtils::_('Your profile username: ') . $username;
65
- $output .= '</div>';
66
- return $output;
67
- }
68
-
69
- $output .= '<div class="swpm-ty-page-registration">';
70
- $member_data = SwpmUtils::get_incomplete_paid_member_info_by_ip();
71
- if ($member_data) {
72
- //Found a member profile record for this IP that needs to be completed
73
- $reg_page_url = $settings->get_value('registration-page-url');
74
- $rego_complete_url = add_query_arg(array('member_id' => $member_data->member_id, 'code' => $member_data->reg_code), $reg_page_url);
75
- $output .= '<div class="swpm-ty-page-registration-link swpm-yellow-box">';
76
- $output .= '<p>' . SwpmUtils::_('Click on the following link to complete the registration.') . '</p>';
77
- $output .= '<p><a href="' . $rego_complete_url . '">' . SwpmUtils::_('Click here to complete your paid registration') . '</a></p>';
78
- $output .= '</div>';
79
- } else {
80
- //Nothing found. Check again later.
81
- $output .= '<div class="swpm-ty-page-registration-link swpm-yellow-box">';
82
- $output .= SwpmUtils::_('If you have just made a membership payment then your payment is yet to be processed. Please check back in a few minutes. An email will be sent to you with the details shortly.');
83
- $output .= '</div>';
84
- }
85
-
86
- $output .= '</div>'; //end of .swpm-ty-page-registration
87
-
88
- return $output;
89
- }
90
-
91
- public function swpm_show_expiry_date_sc($args) {
92
- $output = '<div class="swpm-show-expiry-date">';
93
- if (SwpmMemberUtils::is_member_logged_in()) {
94
- $auth = SwpmAuth::get_instance();
95
- $expiry_date = $auth->get_expire_date();
96
- $output .= SwpmUtils::_('Expiry: '). $expiry_date;
97
- } else {
98
- $output .= SwpmUtils::_('You are not logged-in as a member');
99
- }
100
- $output .= '</div>';
101
- return $output;
102
- }
103
-
104
- public function swpm_show_mini_login_sc($args) {
105
-
106
- $login_page_url = SwpmSettings::get_instance()->get_value('login-page-url');
107
- $join_page_url = SwpmSettings::get_instance()->get_value('join-us-page-url');
108
- $profile_page_url = SwpmSettings::get_instance()->get_value('profile-page-url');
109
- $logout_url = SIMPLE_WP_MEMBERSHIP_SITE_HOME_URL . '?swpm-logout=true';
110
-
111
- $filtered_login_url = apply_filters( 'swpm_get_login_link_url', $login_page_url ); //Addons can override the login URL value using this filter.
112
-
113
- $output = '<div class="swpm_mini_login_wrapper">';
114
-
115
- //Check if the user is logged in or not
116
- $auth = SwpmAuth::get_instance();
117
- if ($auth->is_logged_in()) {
118
- //User is logged in
119
- $username = $auth->get('user_name');
120
- $output .= '<span class="swpm_mini_login_label">'.SwpmUtils::_('Logged in as: ').'</span>';
121
- $output .= '<span class="swpm_mini_login_username">'.$username.'</span>';
122
- $output .= '<span class="swpm_mini_login_profile"> | <a href="'.$profile_page_url.'">'.SwpmUtils::_('Profile').'</a></span>';
123
- $output .= '<span class="swpm_mini_login_logout"> | <a href="'.$logout_url.'">'.SwpmUtils::_('Logout').'</a></span>';
124
- } else {
125
- //User not logged in.
126
- $output .= '<span class="swpm_mini_login_login_here"><a href="'.$filtered_login_url.'">'.SwpmUtils::_('Login Here').'</a></span>';
127
- $output .= '<span class="swpm_mini_login_no_membership"> | '.SwpmUtils::_('Not a member? ').'</span>';
128
- $output .= '<span class="swpm_mini_login_join_now"><a href="'.$join_page_url.'">'.SwpmUtils::_('Join Now').'</a></span>';
129
- }
130
-
131
- $output .= '</div>';
132
-
133
- $output = apply_filters ('swpm_mini_login_output', $output);
134
-
135
- return $output;
136
- }
137
-
138
- public function swpm_pp_cancel_subs_link_sc($args){
139
- extract(shortcode_atts(array(
140
- 'merchant_id' => '',
141
- 'anchor_text' => '',
142
- ), $args));
143
-
144
- if (empty($merchant_id)){
145
- return '<p class="swpm-red-box">Error! You need to specify your secure PayPal merchant ID in the shortcode using the "merchant_id" parameter.</p>';
146
- }
147
-
148
- $output = '';
149
- $settings = SwpmSettings::get_instance();
150
-
151
- //Check if the member is logged-in
152
- if (SwpmMemberUtils::is_member_logged_in()) {
153
- $user_id = SwpmMemberUtils::get_logged_in_members_id();
154
- }
155
-
156
- if (!empty($user_id)) {
157
- //The user is logged-in
158
-
159
- //Set the default anchor text (if one is provided via teh shortcode).
160
- if(empty($anchor_text)){
161
- $anchor_text = SwpmUtils::_('Unsubscribe from PayPal');
162
- }
163
-
164
- $output .= '<div class="swpm-paypal-subscription-cancel-link">';
165
- $sandbox_enabled = $settings->get_value('enable-sandbox-testing');
166
- if ( $sandbox_enabled ) {
167
- //Sandbox mode
168
- $output .= '<a href="https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_subscr-find&alias=' . $merchant_id . '" _fcksavedurl="https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_subscr-find&alias=' . $merchant_id . '">';
169
- $output .= $anchor_text;
170
- $output .= '</a>';
171
- } else {
172
- //Live mode
173
- $output .= '<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_subscr-find&alias=' . $merchant_id . '" _fcksavedurl="https://www.paypal.com/cgi-bin/webscr?cmd=_subscr-find&alias=' . $merchant_id . '">';
174
- $output .= $anchor_text;
175
- $output .= '</a>';
176
- }
177
- $output .= '</div>';
178
-
179
- } else {
180
- //The user is NOT logged-in
181
- $output .= '<p>' . SwpmUtils::_('You are not logged-in as a member') . '</p>';
182
- }
183
- return $output;
184
- }
185
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class SwpmShortcodesHandler {
4
+
5
+ public function __construct() {
6
+ //Register all the shortcodes here
7
+ add_shortcode( 'swpm_payment_button', array( &$this, 'swpm_payment_button_sc' ) );
8
+ add_shortcode( 'swpm_thank_you_page_registration', array( &$this, 'swpm_ty_page_rego_sc' ) );
9
+
10
+ add_shortcode( 'swpm_show_expiry_date', array( &$this, 'swpm_show_expiry_date_sc' ) );
11
+
12
+ add_shortcode( 'swpm_mini_login', array( &$this, 'swpm_show_mini_login_sc' ) );
13
+
14
+ add_shortcode( 'swpm_paypal_subscription_cancel_link', array( &$this, 'swpm_pp_cancel_subs_link_sc' ) );
15
+
16
+ add_shortcode( 'swpm_stripe_subscription_cancel_link', array( $this, 'swpm_stripe_cancel_subs_link_sc' ) );
17
+ }
18
+
19
+ public function swpm_payment_button_sc( $args ) {
20
+ extract(
21
+ shortcode_atts(
22
+ array(
23
+ 'id' => '',
24
+ 'button_text' => '',
25
+ 'new_window' => '',
26
+ 'class' => '',
27
+ ),
28
+ $args
29
+ )
30
+ );
31
+
32
+ if ( empty( $id ) ) {
33
+ return '<p class="swpm-red-box">Error! You must specify a button ID with this shortcode. Check the usage documentation.</p>';
34
+ }
35
+
36
+ $button_id = $id;
37
+ //$button = get_post($button_id); //Retrieve the CPT for this button
38
+ $button_type = get_post_meta( $button_id, 'button_type', true );
39
+ if ( empty( $button_type ) ) {
40
+ $error_msg = '<p class="swpm-red-box">';
41
+ $error_msg .= 'Error! The button ID (' . $button_id . ') you specified in the shortcode does not exist. You may have deleted this payment button. ';
42
+ $error_msg .= 'Go to the Manage Payment Buttons interface then copy and paste the correct button ID in the shortcode.';
43
+ $error_msg .= '</p>';
44
+ return $error_msg;
45
+ }
46
+
47
+ include_once( SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/paypal_button_shortcode_view.php' );
48
+ include_once( SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/stripe_button_shortcode_view.php' );
49
+ include_once( SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/stripe_sca_button_shortcode_view.php' );
50
+ include_once( SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/braintree_button_shortcode_view.php' );
51
+ include_once( SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/paypal_smart_checkout_button_shortcode_view.php' );
52
+
53
+ $button_code = '';
54
+ $button_code = apply_filters( 'swpm_payment_button_shortcode_for_' . $button_type, $button_code, $args );
55
+
56
+ $output = '';
57
+ $output .= '<div class="swpm-payment-button">' . $button_code . '</div>';
58
+
59
+ return $output;
60
+ }
61
+
62
+ public function swpm_ty_page_rego_sc( $args ) {
63
+ $output = '';
64
+ $settings = SwpmSettings::get_instance();
65
+
66
+ //If user is logged in then the purchase will be applied to the existing profile
67
+ if ( SwpmMemberUtils::is_member_logged_in() ) {
68
+ $username = SwpmMemberUtils::get_logged_in_members_username();
69
+ $output .= '<div class="swpm-ty-page-registration-logged-in swpm-yellow-box">';
70
+ $output .= '<p>' . SwpmUtils::_( 'Your membership profile will be updated to reflect the payment.' ) . '</p>';
71
+ $output .= SwpmUtils::_( 'Your profile username: ' ) . $username;
72
+ $output .= '</div>';
73
+ return $output;
74
+ }
75
+
76
+ $output .= '<div class="swpm-ty-page-registration">';
77
+ $member_data = SwpmUtils::get_incomplete_paid_member_info_by_ip();
78
+ if ( $member_data ) {
79
+ //Found a member profile record for this IP that needs to be completed
80
+ $reg_page_url = $settings->get_value( 'registration-page-url' );
81
+ $rego_complete_url = add_query_arg(
82
+ array(
83
+ 'member_id' => $member_data->member_id,
84
+ 'code' => $member_data->reg_code,
85
+ ),
86
+ $reg_page_url
87
+ );
88
+ $output .= '<div class="swpm-ty-page-registration-link swpm-yellow-box">';
89
+ $output .= '<p>' . SwpmUtils::_( 'Click on the following link to complete the registration.' ) . '</p>';
90
+ $output .= '<p><a href="' . $rego_complete_url . '">' . SwpmUtils::_( 'Click here to complete your paid registration' ) . '</a></p>';
91
+ $output .= '</div>';
92
+ } else {
93
+ //Nothing found. Check again later.
94
+ $output .= '<div class="swpm-ty-page-registration-link swpm-yellow-box">';
95
+ $output .= SwpmUtils::_( 'If you have just made a membership payment then your payment is yet to be processed. Please check back in a few minutes. An email will be sent to you with the details shortly.' );
96
+ $output .= '</div>';
97
+ }
98
+
99
+ $output .= '</div>'; //end of .swpm-ty-page-registration
100
+
101
+ return $output;
102
+ }
103
+
104
+ public function swpm_show_expiry_date_sc( $args ) {
105
+ $output = '<div class="swpm-show-expiry-date">';
106
+ if ( SwpmMemberUtils::is_member_logged_in() ) {
107
+ $auth = SwpmAuth::get_instance();
108
+ $expiry_date = $auth->get_expire_date();
109
+ $output .= SwpmUtils::_( 'Expiry: ' ) . $expiry_date;
110
+ } else {
111
+ $output .= SwpmUtils::_( 'You are not logged-in as a member' );
112
+ }
113
+ $output .= '</div>';
114
+ return $output;
115
+ }
116
+
117
+ public function swpm_show_mini_login_sc( $args ) {
118
+
119
+ $login_page_url = SwpmSettings::get_instance()->get_value( 'login-page-url' );
120
+ $join_page_url = SwpmSettings::get_instance()->get_value( 'join-us-page-url' );
121
+ $profile_page_url = SwpmSettings::get_instance()->get_value( 'profile-page-url' );
122
+ $logout_url = SIMPLE_WP_MEMBERSHIP_SITE_HOME_URL . '?swpm-logout=true';
123
+
124
+ $filtered_login_url = apply_filters( 'swpm_get_login_link_url', $login_page_url ); //Addons can override the login URL value using this filter.
125
+
126
+ $output = '<div class="swpm_mini_login_wrapper">';
127
+
128
+ //Check if the user is logged in or not
129
+ $auth = SwpmAuth::get_instance();
130
+ if ( $auth->is_logged_in() ) {
131
+ //User is logged in
132
+ $username = $auth->get( 'user_name' );
133
+ $output .= '<span class="swpm_mini_login_label">' . SwpmUtils::_( 'Logged in as: ' ) . '</span>';
134
+ $output .= '<span class="swpm_mini_login_username">' . $username . '</span>';
135
+ $output .= '<span class="swpm_mini_login_profile"> | <a href="' . $profile_page_url . '">' . SwpmUtils::_( 'Profile' ) . '</a></span>';
136
+ $output .= '<span class="swpm_mini_login_logout"> | <a href="' . $logout_url . '">' . SwpmUtils::_( 'Logout' ) . '</a></span>';
137
+ } else {
138
+ //User not logged in.
139
+ $output .= '<span class="swpm_mini_login_login_here"><a href="' . $filtered_login_url . '">' . SwpmUtils::_( 'Login Here' ) . '</a></span>';
140
+ $output .= '<span class="swpm_mini_login_no_membership"> | ' . SwpmUtils::_( 'Not a member? ' ) . '</span>';
141
+ $output .= '<span class="swpm_mini_login_join_now"><a href="' . $join_page_url . '">' . SwpmUtils::_( 'Join Now' ) . '</a></span>';
142
+ }
143
+
144
+ $output .= '</div>';
145
+
146
+ $output = apply_filters( 'swpm_mini_login_output', $output );
147
+
148
+ return $output;
149
+ }
150
+
151
+ public function swpm_stripe_cancel_subs_link_sc( $args ) {
152
+ //Shortcode parameters: ['anchor_text']
153
+
154
+ if ( ! SwpmMemberUtils::is_member_logged_in() ) {
155
+ //member not logged in
156
+ return SwpmUtils::_( 'You are not logged-in as a member' );
157
+ }
158
+ $member_id = SwpmMemberUtils::get_logged_in_members_id();
159
+
160
+ $subs = new SWPM_Member_Subscriptions( $member_id );
161
+
162
+ if ( empty( $subs->get_active_subs_count() ) ) {
163
+ //no active subscriptions found
164
+ return SwpmUtils::_( 'No active subscriptions' );
165
+ }
166
+
167
+ $output = $subs->get_stripe_subs_cancel_url($args, false);
168
+
169
+ return $output;
170
+ }
171
+
172
+ public function swpm_pp_cancel_subs_link_sc( $args ) {
173
+ //Shortcode parameters: ['anchor_text'], ['merchant_id']
174
+
175
+ extract(
176
+ shortcode_atts(
177
+ array(
178
+ 'merchant_id' => '',
179
+ 'anchor_text' => '',
180
+ ),
181
+ $args
182
+ )
183
+ );
184
+
185
+ if ( empty( $merchant_id ) ) {
186
+ return '<p class="swpm-red-box">Error! You need to specify your secure PayPal merchant ID in the shortcode using the "merchant_id" parameter.</p>';
187
+ }
188
+
189
+ $output = '';
190
+ $settings = SwpmSettings::get_instance();
191
+
192
+ //Check if the member is logged-in
193
+ if ( SwpmMemberUtils::is_member_logged_in() ) {
194
+ $user_id = SwpmMemberUtils::get_logged_in_members_id();
195
+ }
196
+
197
+ if ( ! empty( $user_id ) ) {
198
+ //The user is logged-in
199
+
200
+ //Set the default anchor text (if one is provided via teh shortcode).
201
+ if ( empty( $anchor_text ) ) {
202
+ $anchor_text = SwpmUtils::_( 'Unsubscribe from PayPal' );
203
+ }
204
+
205
+ $output .= '<div class="swpm-paypal-subscription-cancel-link">';
206
+ $sandbox_enabled = $settings->get_value( 'enable-sandbox-testing' );
207
+ if ( $sandbox_enabled ) {
208
+ //Sandbox mode
209
+ $output .= '<a href="https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_subscr-find&alias=' . $merchant_id . '" _fcksavedurl="https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_subscr-find&alias=' . $merchant_id . '">';
210
+ $output .= $anchor_text;
211
+ $output .= '</a>';
212
+ } else {
213
+ //Live mode
214
+ $output .= '<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_subscr-find&alias=' . $merchant_id . '" _fcksavedurl="https://www.paypal.com/cgi-bin/webscr?cmd=_subscr-find&alias=' . $merchant_id . '">';
215
+ $output .= $anchor_text;
216
+ $output .= '</a>';
217
+ }
218
+ $output .= '</div>';
219
+
220
+ } else {
221
+ //The user is NOT logged-in
222
+ $output .= '<p>' . SwpmUtils::_( 'You are not logged-in as a member' ) . '</p>';
223
+ }
224
+ return $output;
225
+ }
226
+ }
css/swpm.common.css CHANGED
@@ -128,6 +128,7 @@
128
 
129
  .swpm-registration-widget-form input[type="text"], .swpm-registration-widget-form input[type="password"]{
130
  width: 95%;
 
131
  }
132
 
133
  /* Edit profile form CSS */
@@ -163,4 +164,4 @@
163
  .swpm-select-box-left{
164
  margin: 0;
165
  padding-bottom: 5px;
166
- }
128
 
129
  .swpm-registration-widget-form input[type="text"], .swpm-registration-widget-form input[type="password"]{
130
  width: 95%;
131
+ position: relative;
132
  }
133
 
134
  /* Edit profile form CSS */
164
  .swpm-select-box-left{
165
  margin: 0;
166
  padding-bottom: 5px;
167
+ }
ipn/swpm-stripe-sca-buy-now-ipn.php CHANGED
@@ -200,6 +200,9 @@ class SwpmStripeSCABuyNowIpnHandler {
200
  $ipn_data['address_zipcode'] = isset( $bd_addr->postal_code ) ? $bd_addr->postal_code : '';
201
  $ipn_data['address_country'] = isset( $bd_addr->country ) ? $bd_addr->country : '';
202
 
 
 
 
203
  // Handle the membership signup related tasks.
204
  swpm_handle_subsc_signup_stand_alone( $ipn_data, $membership_level_id, $txn_id, $swpm_id );
205
 
200
  $ipn_data['address_zipcode'] = isset( $bd_addr->postal_code ) ? $bd_addr->postal_code : '';
201
  $ipn_data['address_country'] = isset( $bd_addr->country ) ? $bd_addr->country : '';
202
 
203
+ $ipn_data['payment_button_id'] = $button_id;
204
+ $ipn_data['is_live'] = ! $sandbox_enabled;
205
+
206
  // Handle the membership signup related tasks.
207
  swpm_handle_subsc_signup_stand_alone( $ipn_data, $membership_level_id, $txn_id, $swpm_id );
208
 
ipn/swpm_handle_pp_ipn.php CHANGED
@@ -104,6 +104,18 @@ class swpm_paypal_ipn_handler { // phpcs:ignore
104
  array_push( $cart_items, $current_item );
105
  }
106
 
 
 
 
 
 
 
 
 
 
 
 
 
107
  $counter = 0;
108
  foreach ( $cart_items as $current_cart_item ) {
109
  $cart_item_data_num = $current_cart_item['item_number'];
@@ -222,6 +234,12 @@ class swpm_paypal_ipn_handler { // phpcs:ignore
222
  $this->debug_log( 'Saving transaction data to the database table.', true );
223
  $this->ipn_data['gateway'] = 'paypal';
224
  $this->ipn_data['status'] = $this->ipn_data['payment_status'];
 
 
 
 
 
 
225
  SwpmTransactions::save_txn_record( $this->ipn_data, $cart_items );
226
  $this->debug_log( 'Transaction data saved.', true );
227
 
104
  array_push( $cart_items, $current_item );
105
  }
106
 
107
+ /*** Duplicate IPN check ***/
108
+ // Query the DB to check if we have already processed this transaction or not
109
+ global $wpdb;
110
+ $txn_row = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}swpm_payments_tbl WHERE txn_id = %s", $txn_id ), OBJECT );
111
+
112
+ // And if we have already processed it, do nothing and return true
113
+ if (!empty($txn_row)) {
114
+ $this->debug_log( "This transaction has already been processed (".$txn_id."). Nothing to do here.", true );
115
+ return true;
116
+ }
117
+ /*** End of duplicate IPN check ***/
118
+
119
  $counter = 0;
120
  foreach ( $cart_items as $current_cart_item ) {
121
  $cart_item_data_num = $current_cart_item['item_number'];
234
  $this->debug_log( 'Saving transaction data to the database table.', true );
235
  $this->ipn_data['gateway'] = 'paypal';
236
  $this->ipn_data['status'] = $this->ipn_data['payment_status'];
237
+
238
+ // If the value ipn_data['ip'] is empty, try to detect the customer IP address using the variable custom['user_ip']
239
+ if (empty($this->ipn_data['ip']) && filter_var($customvariables['user_ip'], FILTER_VALIDATE_IP)) {
240
+ $this->ipn_data['ip'] = $customvariables['user_ip'];
241
+ }
242
+
243
  SwpmTransactions::save_txn_record( $this->ipn_data, $cart_items );
244
  $this->debug_log( 'Transaction data saved.', true );
245
 
ipn/swpm_handle_subsc_ipn.php CHANGED
@@ -288,7 +288,9 @@ function swpm_update_member_subscription_start_date_if_applicable( $ipn_data ) {
288
  $email = isset( $ipn_data['payer_email'] ) ? $ipn_data['payer_email'] : '';
289
  $subscr_id = $ipn_data['subscr_id'];
290
  $account_state = SwpmSettings::get_instance()->get_value( 'default-account-status', 'active' );
291
- swpm_debug_log_subsc( 'Updating subscription start date if applicable for this subscription payment. Subscriber ID: ' . $subscr_id . ' Email: ' . $email, true );
 
 
292
 
293
  // We can also query using the email address or SWPM ID (if present in custom var).
294
 
288
  $email = isset( $ipn_data['payer_email'] ) ? $ipn_data['payer_email'] : '';
289
  $subscr_id = $ipn_data['subscr_id'];
290
  $account_state = SwpmSettings::get_instance()->get_value( 'default-account-status', 'active' );
291
+ $account_state = apply_filters( 'swpm_account_status_for_subscription_start_date_update', $account_state );
292
+
293
+ swpm_debug_log_subsc( 'Updating subscription start date if applicable for this subscription payment. Subscriber ID: ' . $subscr_id . ', Email: ' . $email . ', Account status: ' . $account_state, true );
294
 
295
  // We can also query using the email address or SWPM ID (if present in custom var).
296
 
languages/simple-membership-es_ES.mo CHANGED
Binary file
languages/simple-membership-es_ES.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: Plugins - Simple Membership - Development (trunk)\n"
6
  "POT-Creation-Date: 2019-05-26 13:48+0600\n"
7
- "PO-Revision-Date: 2019-10-04 08:32+1000\n"
8
  "Last-Translator: \n"
9
  "Language-Team: \n"
10
  "Language: es\n"
@@ -12,7 +12,7 @@ msgstr ""
12
  "Content-Type: text/plain; charset=UTF-8\n"
13
  "Content-Transfer-Encoding: 8bit\n"
14
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
15
- "X-Generator: Poedit 2.2.4\n"
16
 
17
  #: classes/class.simple-wp-membership.php:180
18
  msgid "The admin of this site does not allow users to access the wp dashboard."
@@ -243,7 +243,7 @@ msgid "Invalid Email Address"
243
  msgstr "Dirección de correo electrónico no válido"
244
 
245
  #: classes/class.swpm-ajax.php:21 classes/class.swpm-ajax.php:36
246
- msgid "Aready taken"
247
  msgstr "Ya está cogido"
248
 
249
  #: classes/class.swpm-ajax.php:30
@@ -1453,12 +1453,16 @@ msgstr "Permiso de acceso al escritorio de administración"
1453
  msgid ""
1454
  "SWPM admin dashboard is accessible to admin users only (just like any other "
1455
  "plugin). You can allow users with other WP user role to access the SWPM "
1456
- "admin dashboard by selecting a value here."
 
 
1457
  msgstr ""
1458
- "El escritorio de administración de SWPM sólo es accesible para usuarios de "
1459
- "administración (como cualquier otro plugin). Puedes permitir los usuarios "
1460
- "con otro perfil de usuario de WP acceder al escritorio de administración de "
1461
- "SWPM seleccionando un valor aquí."
 
 
1462
 
1463
  #: classes/class.swpm-settings.php:226
1464
  msgid "Force WP User Synchronization"
@@ -2967,8 +2971,8 @@ msgid "Stripe Subscription Button Configuration"
2967
  msgstr "Ajustes del botón de Suscripción de Stripe"
2968
 
2969
  #: views/payments/payment-gateway/admin_stripe_subscription_button.php:109
2970
- msgid "Stripe Plan ID"
2971
- msgstr "ID del plan de Stripe"
2972
 
2973
  #: views/payments/payment-gateway/admin_stripe_subscription_button.php:125
2974
  msgid "Stripe API Settings"
@@ -3105,6 +3109,9 @@ msgstr "El nivel de membresía ha sido actualizado."
3105
  msgid "Already a member of this level."
3106
  msgstr "Ya eres miembro de este nivel."
3107
 
 
 
 
3108
  #~ msgid "Account already active. <a href=\""
3109
  #~ msgstr "La cuenta ya está activa. <a href=\""
3110
 
4
  msgstr ""
5
  "Project-Id-Version: Plugins - Simple Membership - Development (trunk)\n"
6
  "POT-Creation-Date: 2019-05-26 13:48+0600\n"
7
+ "PO-Revision-Date: 2020-09-09 14:14+1000\n"
8
  "Last-Translator: \n"
9
  "Language-Team: \n"
10
  "Language: es\n"
12
  "Content-Type: text/plain; charset=UTF-8\n"
13
  "Content-Transfer-Encoding: 8bit\n"
14
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
15
+ "X-Generator: Poedit 2.4.1\n"
16
 
17
  #: classes/class.simple-wp-membership.php:180
18
  msgid "The admin of this site does not allow users to access the wp dashboard."
243
  msgstr "Dirección de correo electrónico no válido"
244
 
245
  #: classes/class.swpm-ajax.php:21 classes/class.swpm-ajax.php:36
246
+ msgid "Already taken"
247
  msgstr "Ya está cogido"
248
 
249
  #: classes/class.swpm-ajax.php:30
1453
  msgid ""
1454
  "SWPM admin dashboard is accessible to admin users only (just like any other "
1455
  "plugin). You can allow users with other WP user role to access the SWPM "
1456
+ "admin dashboard by selecting a value here. Note that this option cannot work "
1457
+ "if you enabled the \"Disable Access to WP Dashboard\" option in General "
1458
+ "Settings."
1459
  msgstr ""
1460
+ "El escritorio de administración de SWPM es accesible solo para usuarios "
1461
+ "administrativos (como cualquier otro plugin). Puedes permitir que los "
1462
+ "usuarios con otro perfil de usuario de WP accedan al escritorio de "
1463
+ "administración de SWPM seleccionando un valor aquí. Ten en cuenta que esta "
1464
+ "opción no puede funcionar si activas la opción «Desactivar el acceso al "
1465
+ "escritorio de WP» en ajustes generales."
1466
 
1467
  #: classes/class.swpm-settings.php:226
1468
  msgid "Force WP User Synchronization"
2971
  msgstr "Ajustes del botón de Suscripción de Stripe"
2972
 
2973
  #: views/payments/payment-gateway/admin_stripe_subscription_button.php:109
2974
+ msgid "Stripe API ID"
2975
+ msgstr "Id. de API de Stripe"
2976
 
2977
  #: views/payments/payment-gateway/admin_stripe_subscription_button.php:125
2978
  msgid "Stripe API Settings"
3109
  msgid "Already a member of this level."
3110
  msgstr "Ya eres miembro de este nivel."
3111
 
3112
+ #~ msgid "Aready taken"
3113
+ #~ msgstr "Ya está cogido"
3114
+
3115
  #~ msgid "Account already active. <a href=\""
3116
  #~ msgstr "La cuenta ya está activa. <a href=\""
3117
 
languages/simple-membership-fr_FR.mo CHANGED
Binary file
languages/simple-membership-fr_FR.po CHANGED
@@ -1981,3 +1981,464 @@ msgstr ""
1981
 
1982
  msgid "This content is for members only."
1983
  msgstr "Ce contenu est réservé aux abonnés."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1981
 
1982
  msgid "This content is for members only."
1983
  msgstr "Ce contenu est réservé aux abonnés."
1984
+
1985
+ #: classes/class.simple-wp-membership.php:646
1986
+ #: classes/class.simple-wp-membership.php:650
1987
+ msgid "Validating, please wait"
1988
+ msgstr "Validation en cours, veuillez patienter"
1989
+
1990
+ #: classes/class.simple-wp-membership.php:653
1991
+ msgid "Invalid email address"
1992
+ msgstr "Addresse email invalide"
1993
+
1994
+ #: classes/class.simple-wp-membership.php:656
1995
+ msgid "This field is required"
1996
+ msgstr "Ce champ est requis"
1997
+
1998
+ msgid "Password must contain at least:"
1999
+ msgstr "Le mot de passe doit contenir au minimum:"
2000
+
2001
+ msgid "- a digit"
2002
+ msgstr "- un chiffre"
2003
+
2004
+ msgid "- an uppercase letter"
2005
+ msgstr "- une majuscule"
2006
+
2007
+ msgid "- a lowercase letter"
2008
+ msgstr "- une minuscule"
2009
+
2010
+ #: classes/class.simple-wp-membership.php:659
2011
+ msgid "Usernames can only contain: letters, numbers and .-_*@"
2012
+ msgstr "Le nom d'utilisateur ne peut contenir que: lettres, chiffres et .-_*@"
2013
+
2014
+ #: classes/class.simple-wp-membership.php:662
2015
+ msgid "Minimum "
2016
+ msgstr "Au moins "
2017
+
2018
+ #: classes/class.simple-wp-membership.php:663
2019
+ msgid " characters required"
2020
+ msgstr " caractères sont requis"
2021
+
2022
+ #: classes/class.simple-wp-membership.php:666
2023
+ msgid "Apostrophe character is not allowed"
2024
+ msgstr "Le caractere Apostrophe n'est pas autorisé"
2025
+
2026
+ #: classes/class.swpm-ajax.php:21 classes/class.swpm-ajax.php:36
2027
+ msgid "Already taken"
2028
+ msgstr "Déjà utilisé"
2029
+
2030
+ #: classes/class.swpm-auth.php:58
2031
+ msgid "Click here"
2032
+ msgstr "Cliquez ici"
2033
+
2034
+ #: classes/class.swpm-auth.php:58
2035
+ msgid " to see the profile you are currently logged into in this browser."
2036
+ msgstr " pour voir le profil avec lequel vous êtes actuellement connecté"
2037
+
2038
+ #: classes/class.swpm-auth.php:146
2039
+ #, php-format
2040
+ msgid ""
2041
+ "You need to activate your account. If you didn't receive an email then %s to "
2042
+ "resend the activation email."
2043
+ msgstr ""
2044
+ "Vous devez activer votre compte. Si vous n'avez pas reçu d'email, alors %s pour "
2045
+ "envoyer un nouvel email d'activation"
2046
+
2047
+ #: classes/class.swpm-auth.php:146
2048
+ #: classes/class.swpm-front-registration.php:376
2049
+ #: classes/class.swpm-front-registration.php:426
2050
+ #: classes/class.swpm-utils-misc.php:169
2051
+ msgid "click here"
2052
+ msgstr "cliquez ici"
2053
+
2054
+ #: classes/class.swpm-form.php:31
2055
+ msgid ""
2056
+ " Use a different username to complete the registration. If you want to use "
2057
+ "that username then you must enter the correct email address associated with "
2058
+ "the existing WP user to connect with that account."
2059
+ msgstr ""
2060
+ "Utilisez un nom d'utilisateur différent pour terminer l'enregistrement. Si vous souhaitez "
2061
+ "utiliser ce nom d'utilisateur, vous devez entrer l'adresse email correcte associé à "
2062
+ "l'utilisateur WP existant pour vous connecter à ce compte."
2063
+
2064
+ #: classes/class.swpm-form.php:38
2065
+ msgid ""
2066
+ " Use a different email address to complete the registration. If you want to "
2067
+ "use that email then you must enter the correct username associated with the "
2068
+ "existing WP user to connect with that account."
2069
+ msgstr ""
2070
+ "Utilisez une adresse e-mail différente pour terminer l'enregistrement. Si vous souhaitez "
2071
+ "utiliser cet e-mail, vous devez entrer le nom d'utilisateur correct associé à "
2072
+ "l'utilisateur WP existant pour vous connecter à ce compte."
2073
+
2074
+ #: classes/class.swpm-front-registration.php:49
2075
+ msgid " page to pay for a premium membership."
2076
+ msgstr " page pour acheter un abonnement premium"
2077
+
2078
+ #: classes/class.swpm-front-registration.php:89
2079
+ msgid "You must accept the terms and conditions."
2080
+ msgstr "Vous devez accepter les termes et conditions."
2081
+
2082
+ #: classes/class.swpm-front-registration.php:100
2083
+ msgid "You must agree to the privacy policy."
2084
+ msgstr "Vous devez accepter la politique de confidentialité"
2085
+
2086
+ #: classes/class.swpm-front-registration.php:140
2087
+ msgid "You need to confirm your email address. Please check your email and follow instructions to complete your registration."
2088
+ msgstr "Vous devez confirmer votre adresse e-mail. Veuillez vérifier vos emails et suivre les instructions pour terminer votre inscription."
2089
+
2090
+ #: classes/class.swpm-front-registration.php:301
2091
+ msgid "Captcha validation failed."
2092
+ msgstr "La validation du captcha a échoué."
2093
+
2094
+ #: classes/class.swpm-front-registration.php:371
2095
+ msgid "Can't find member account."
2096
+ msgstr "Impossible de trouver le compte membre."
2097
+
2098
+ #: classes/class.swpm-front-registration.php:376
2099
+ #: classes/class.swpm-front-registration.php:426
2100
+ msgid "Account already active. "
2101
+ msgstr "Compte déjà actif. "
2102
+
2103
+ #: classes/class.swpm-front-registration.php:376
2104
+ #: classes/class.swpm-front-registration.php:426
2105
+ msgid " to login."
2106
+ msgstr " pour se connecter."
2107
+
2108
+ #: classes/class.swpm-front-registration.php:383
2109
+ msgid ""
2110
+ "Activation code mismatch. Cannot activate this account. Please contact the "
2111
+ "site admin."
2112
+ msgstr ""
2113
+ "Incompatibilité du code d'activation. Impossible d'activer ce compte. Veuillez contacter"
2114
+ "l'administrateur du site."
2115
+
2116
+ #: classes/class.swpm-front-registration.php:397
2117
+ msgid "Success! Your account has been activated successfully."
2118
+ msgstr "Succès! Votre compte a été activé avec succès."
2119
+
2120
+ #: classes/class.swpm-front-registration.php:421
2121
+ msgid "Cannot find member account."
2122
+ msgstr "Impossible de trouver le compte membre."
2123
+
2124
+ #: classes/class.swpm-front-registration.php:443
2125
+ msgid ""
2126
+ "Activation email has been sent. Please check your email and activate your "
2127
+ "account."
2128
+ msgstr ""
2129
+ "Un e-mail d'activation a été envoyé. Veuillez vérifier votre messagerie et activer "
2130
+ "votre compte."
2131
+
2132
+ #: classes/class.swpm-members.php:27
2133
+ msgid "Last Login Date"
2134
+ msgstr "Date de la dernière connexion"
2135
+
2136
+ #: classes/class.swpm-membership-levels.php:269
2137
+ msgid "Post and Page Protection"
2138
+ msgstr "Protection des publications et des pages"
2139
+
2140
+ #: classes/class.swpm-post-list.php:44 classes/class.swpm-post-list.php:53
2141
+ #: classes/class.swpm-post-list.php:63
2142
+ msgid "Title"
2143
+ msgstr "Titre"
2144
+
2145
+ #: classes/class.swpm-post-list.php:45 classes/class.swpm-post-list.php:54
2146
+ #: classes/class.swpm-post-list.php:64
2147
+ msgid "Author"
2148
+ msgstr "Auteur"
2149
+
2150
+ #: classes/class.swpm-post-list.php:46 classes/class.swpm-post-list.php:56
2151
+ #: classes/class.swpm-post-list.php:66
2152
+ msgid "Status"
2153
+ msgstr "Statut"
2154
+
2155
+ #: classes/class.swpm-post-list.php:55
2156
+ msgid "Categories"
2157
+ msgstr "Catégories"
2158
+
2159
+ #: classes/class.swpm-post-list.php:65
2160
+ msgid "Type"
2161
+ msgstr "Type"
2162
+
2163
+ #: classes/class.swpm-post-list.php:125
2164
+ msgid "Protection settings updated!"
2165
+ msgstr "Paramètres de protection mis à jour!"
2166
+
2167
+ #: classes/class.swpm-post-list.php:230
2168
+ msgid "No items found."
2169
+ msgstr "Aucun élément trouvé."
2170
+
2171
+ #: classes/class.swpm-protection.php:22
2172
+ msgid ""
2173
+ "The category or parent category of this post is protected. You can change "
2174
+ "the category protection settings from the "
2175
+ msgstr ""
2176
+ "La catégorie ou la catégorie parent de ce message est protégée. Vous pouvez "
2177
+ "modifier les paramètres de protection de catégorie à partir du "
2178
+
2179
+ #: classes/class.swpm-protection.php:23
2180
+ msgid "category protection menu"
2181
+ msgstr "menu de protection de catégorie"
2182
+
2183
+ #: classes/class.swpm-utils-member.php:80
2184
+ msgid "No Expiry"
2185
+ msgstr "Pas d'expiration"
2186
+
2187
+ #: classes/class.swpm-utils-misc.php:168
2188
+ #, php-format
2189
+ msgid ""
2190
+ "You will be automatically redirected in a few seconds. If not, please %s."
2191
+ msgstr ""
2192
+ "Vous serez automatiquement redirigé dans quelques secondes. Sinon, veuillez %s."
2193
+
2194
+ #: classes/class.swpm-utils-misc.php:172
2195
+ msgid "Action Status"
2196
+ msgstr "État de l'action"
2197
+
2198
+ #: classes/class.swpm-utils-misc.php:421
2199
+ msgid "(Please Select)"
2200
+ msgstr "(Veuillez sélectionner)"
2201
+
2202
+ #: classes/class.swpm-utils.php:118 views/admin_members_list.php:21
2203
+ msgid "Activation Required"
2204
+ msgstr "Activation requise"
2205
+
2206
+ #: classes/class.swpm-utils.php:119
2207
+ msgid "Male"
2208
+ msgstr "Homme"
2209
+
2210
+ #: classes/class.swpm-utils.php:120
2211
+ msgid "Female"
2212
+ msgstr "Femme"
2213
+
2214
+ #: classes/class.swpm-utils.php:121
2215
+ msgid "Not Specified"
2216
+ msgstr "Ne se prononce pas"
2217
+
2218
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:115
2219
+ msgid "Logged in as: "
2220
+ msgstr "Connecté en tant que:"
2221
+
2222
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:121
2223
+ msgid "Login Here"
2224
+ msgstr "Connectez-vous ici"
2225
+
2226
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:122
2227
+ msgid "Not a member? "
2228
+ msgstr "Pas un membre?"
2229
+
2230
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:123
2231
+ msgid "Join Now"
2232
+ msgstr "Créer un compte maintenant"
2233
+
2234
+ #: ipn/swpm-smart-checkout-ipn.php:260 ipn/swpm-smart-checkout-ipn.php:285
2235
+ #, php-format
2236
+ msgid "Error occured during payment verification. Error code: %d. Message: %s"
2237
+ msgstr "Une erreur s'est produite lors de la vérification du paiement. Code d'erreur: %d. Messages :%s"
2238
+
2239
+ #: ipn/swpm-smart-checkout-ipn.php:298
2240
+ #, php-format
2241
+ msgid ""
2242
+ "Payment check failed: invalid amount received. Expected %s %s, got %s %s."
2243
+ msgstr ""
2244
+ "Le chèque de paiement a échoué: montant non valide reçu. Attendu %s %s, obtenu %s %s."
2245
+
2246
+ #: ipn/swpm-smart-checkout-ipn.php:315
2247
+ msgid "Empty payment data received."
2248
+ msgstr "Données de paiement vides reçues."
2249
+
2250
+ #: ipn/swpm-smart-checkout-ipn.php:355
2251
+ msgid "IPN product validation failed. Check debug log for more details."
2252
+ msgstr "La validation du produit IPN a échoué. Consultez le journal de débogage pour plus de détails."
2253
+
2254
+ #: views/account_delete_warning.php:7
2255
+ msgid ""
2256
+ "You are about to delete an account. This will delete user data associated "
2257
+ "with this account. "
2258
+ msgstr ""
2259
+ "Vous êtes sur le point de supprimer un compte. Cela supprimera les données "
2260
+ "utilisateur associées à ce compte."
2261
+
2262
+ #: views/account_delete_warning.php:8
2263
+ msgid "It will also delete associated WordPress user account."
2264
+ msgstr "Cela supprimera également le compte d'utilisateur WordPress associé."
2265
+
2266
+ #: views/account_delete_warning.php:9
2267
+ msgid ""
2268
+ "(NOTE: for safety, we do not allow deletion of any associated WordPress "
2269
+ "account with administrator role)."
2270
+ msgstr ""
2271
+ "(REMARQUE: pour des raisons de sécurité, nous n'autorisons pas la suppression "
2272
+ "de tout compte WordPress associé avec le rôle d'administrateur)."
2273
+
2274
+ #: views/account_delete_warning.php:10
2275
+ msgid "Continue?"
2276
+ msgstr "Continuer?"
2277
+
2278
+ #: views/account_delete_warning.php:13
2279
+ msgid "Password: "
2280
+ msgstr "Mot de passe:"
2281
+
2282
+ #: views/account_delete_warning.php:14
2283
+ msgid "Confirm Account Deletion"
2284
+ msgstr "Confirmer la suppression du compte"
2285
+
2286
+ #: views/add.php:65
2287
+ msgid "I accept the "
2288
+ msgstr "J'accepte les"
2289
+
2290
+ #: views/add.php:77
2291
+ msgid "I agree to the "
2292
+ msgstr "Je suis d'accord avec la"
2293
+
2294
+ #: views/add.php:77
2295
+ msgid "Privacy Policy"
2296
+ msgstr "Politique de confidentialité"
2297
+
2298
+ #: views/edit.php:71
2299
+ msgid "Company Name"
2300
+ msgstr "Nom de l'entreprise"
2301
+
2302
+ #: views/loggedin.php:26
2303
+ msgid "Edit Profile"
2304
+ msgstr "Editer le profil"
2305
+
2306
+ #: views/login.php:33
2307
+ msgid "Forgot Password?"
2308
+ msgstr "Mot de passe oublié?"
2309
+
2310
+ #: views/payments/payment-gateway/paypal_smart_checkout_button_shortcode_view.php:137
2311
+ msgid "Error occured during PayPal Smart Checkout process."
2312
+ msgstr "Une erreur s'est produite lors du processus de paiement PayPal Smart Checkout."
2313
+
2314
+ #: views/payments/payment-gateway/paypal_smart_checkout_button_shortcode_view.php:165
2315
+ msgid "HTTP error occured during payment process:"
2316
+ msgstr "Une erreur HTTP s'est produite lors du processus de paiement:"
2317
+
2318
+ #: Translation strings from addons === Form builder addon
2319
+ msgid "Type password here"
2320
+ msgstr "Tapez le mot de passe ici"
2321
+
2322
+ msgid "Retype password here"
2323
+ msgstr "Retapez le mot de passe ici"
2324
+
2325
+ msgid ""
2326
+ "Check this box to delete the image. The image will be deleted when you save "
2327
+ "the profile."
2328
+ msgstr ""
2329
+ "Cochez cette case pour supprimer l'image. L'image sera supprimée lorsque vous "
2330
+ "enregistrez le profil."
2331
+
2332
+ msgid "You will need to re-login since you changed your password."
2333
+ msgstr "Vous allez devoir vous reconnecter car vous avez changé votre mot de passe."
2334
+
2335
+ msgid ""
2336
+ "Please enter any two digits with <strong>no</strong> spaces (Example: 12)"
2337
+ msgstr ""
2338
+ "Veuillez saisir deux chiffres avec <strong>aucun</strong> espace (Exemple: 12)"
2339
+
2340
+ msgid "Verification"
2341
+ msgstr "Vérification"
2342
+
2343
+ msgid "Please enter any two digits with no spaces (Example: 12)*"
2344
+ msgstr "Veuillez saisir deux chiffres sans espace (Exemple: 12)*"
2345
+
2346
+ msgid "Username can only contain: letters, numbers and .-*@"
2347
+ msgstr "Le nom d'utilisateur ne peut contenir que: des lettres, des chiffres et .-*@"
2348
+
2349
+ msgid "Allowed characters are: letters, numbers and .-_*@"
2350
+ msgstr "Les caractères autorisés sont: lettres, chiffres et .-_*@"
2351
+
2352
+ msgid "Please check at least one."
2353
+ msgstr "Veuillez en cocher au moins un."
2354
+
2355
+ #: === Member Directory Listing addon strings swpm-member-directory-admin.php:9
2356
+ msgid "Member Directory"
2357
+ msgstr "Annuaire des membres"
2358
+
2359
+ #: includes/swpm_mda_show_profile.php:26
2360
+ msgid "Member ID"
2361
+ msgstr "ID Membre"
2362
+
2363
+ #: includes/swpm_mda_show_profile.php:30
2364
+ msgid "Level"
2365
+ msgstr "Niveau"
2366
+
2367
+ #: includes/swpm_mda_show_profile.php:32
2368
+ msgid "Address"
2369
+ msgstr "Adresse"
2370
+
2371
+ #: views/template-1.php:52 views/template-2.php:53
2372
+ msgid "Search..."
2373
+ msgstr "Chercher..."
2374
+
2375
+ #: views/template-1.php:60 views/template-2.php:62
2376
+ msgid "Clear Search"
2377
+ msgstr "Effacer la recherche"
2378
+
2379
+ # === Misc Shortcodes Addon ===
2380
+ msgid "You must be logged in to upgrade a membership."
2381
+ msgstr "Vous devez être connecté pour mettre à niveau un abonnement."
2382
+
2383
+ msgid "Membership level has been updated."
2384
+ msgstr "Le niveau d'adhésion a été mis à jour."
2385
+
2386
+ msgid "Already a member of this level."
2387
+ msgstr "Déjà membre de ce niveau."
2388
+
2389
+ #: classes/class.simple-wp-membership.php:242
2390
+ msgid ""
2391
+ "Error! This site has the force WP user login feature enabled in the "
2392
+ "settings. We could not find a WP user record for the given username: "
2393
+ msgstr ""
2394
+ "Erreur! Ce site a la fonction de connexion utilisateur de force WP activée "
2395
+ "dans les paramètres. Nous n'avons pas pu trouver d'enregistrement "
2396
+ "d'utilisateur WP pour le nom d'utilisateur donné: "
2397
+
2398
+ #: classes/class.simple-wp-membership.php:243
2399
+ msgid ""
2400
+ "This error is triggered when a member account doesn't have a corresponding "
2401
+ "WP user account. So the plugin fails to log the user into the WP User system."
2402
+ msgstr ""
2403
+ "Cette erreur est déclenchée lorsqu'un compte membre n'a pas de compte utilisateur WP correspondant."
2404
+ " Le plugin ne parvient donc pas à connecter l'utilisateur au système WP User."
2405
+
2406
+ #: classes/class.simple-wp-membership.php:244
2407
+ msgid ""
2408
+ "Contact the site admin and request them to check your username in the WP "
2409
+ "Users menu to see what happened with the WP user entry of your account."
2410
+ msgstr ""
2411
+ "Contactez l'administrateur du site et demandez-lui de vérifier votre nom d'utilisateur dans le "
2412
+ "menu Utilisateurs WP pour voir ce qui s'est passé avec votre utilisateur WP."
2413
+
2414
+ #: classes/class.simple-wp-membership.php:245
2415
+ msgid ""
2416
+ "The site admin can disable the Force WP User Synchronization feature in the "
2417
+ "settings to disable this feature and this error will go away."
2418
+ msgstr ""
2419
+ "L'administrateur du site peut désactiver la fonctionnalité Force WP User Synchronization "
2420
+ "dans les paramètres pour désactiver cette fonctionnalité et cette erreur disparaîtra."
2421
+
2422
+ #: classes/class.simple-wp-membership.php:246
2423
+ msgid "You can use the back button of your browser to go back to the site."
2424
+ msgstr "Vous pouvez utiliser le bouton retour de votre navigateur pour revenir sur le site."
2425
+
2426
+ #: classes/class.simple-wp-membership.php:504
2427
+ msgid "No, Do not protect this content."
2428
+ msgstr "Non, ne pas protéger ce contenu."
2429
+
2430
+ #: classes/class.simple-wp-membership.php:505
2431
+ msgid "Yes, Protect this content."
2432
+ msgstr "Oui, protéger ce contenu."
2433
+
2434
+ #: classes/class.swpm-auth.php:59
2435
+ msgid ""
2436
+ "You are logged into the site as an ADMIN user in this browser. First, logout "
2437
+ "from WP Admin then you will be able to log in as a normal member."
2438
+ msgstr ""
2439
+ "Vous êtes connecté au site en tant qu'utilisateur ADMIN dans ce navigateur. Tout d'abord, "
2440
+ "déconnectez-vous de WP Admin, puis vous pourrez vous connecter en tant que membre normal."
2441
+
2442
+ #: classes/class.swpm-settings.php:251 views/add.php:65
2443
+ msgid "Terms and Conditions"
2444
+ msgstr "Termes et Conditions"
languages/simple-membership-nl_NL.mo CHANGED
Binary file
languages/simple-membership-nl_NL.po CHANGED
@@ -2,12 +2,12 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: simple membership\n"
4
  "POT-Creation-Date: 2016-08-16 16:04+0300\n"
5
- "PO-Revision-Date: 2016-08-17 13:06+0300\n"
6
  "Language-Team: \n"
7
  "MIME-Version: 1.0\n"
8
  "Content-Type: text/plain; charset=UTF-8\n"
9
  "Content-Transfer-Encoding: 8bit\n"
10
- "X-Generator: Poedit 1.8.8\n"
11
  "X-Poedit-KeywordsList: __;_e\n"
12
  "X-Poedit-Basepath: .\n"
13
  "Last-Translator: Websites with a Heart <info@websiteswithaheart.com>\n"
@@ -91,16 +91,16 @@ msgstr "Deze inhoud is niet toegankelijk voor jouw lidmaatschap."
91
  #: classes/class.swpm-access-control.php:84
92
  msgid " The rest of the content is not permitted for your membership level."
93
  msgstr ""
94
- "De rest van de inhoud is niet toegankelijk voor jouw lidmaatschapsniveau."
95
 
96
  #: classes/class.swpm-access-control.php:88
97
  #: classes/class.swpm-access-control.php:106
98
  msgid "You need to login to view the rest of the content. "
99
- msgstr "Je moet inloggen om de rest van deze inhoud te bekijken."
100
 
101
  #: classes/class.swpm-admin-registration.php:54
102
  msgid "Member record added successfully."
103
- msgstr "Lid succesvol toegevoegd"
104
 
105
  #: classes/class.swpm-admin-registration.php:59
106
  #: classes/class.swpm-admin-registration.php:81
@@ -219,7 +219,7 @@ msgstr ""
219
 
220
  #: classes/class.swpm-form.php:40
221
  msgid "Username is required"
222
- msgstr "Gebruikersnaam is verplicht."
223
 
224
  #: classes/class.swpm-form.php:44
225
  msgid "Username contains invalid character"
@@ -227,7 +227,7 @@ msgstr "Gebruikersnaam bevat ongeldig teken"
227
 
228
  #: classes/class.swpm-form.php:52
229
  msgid "Username already exists."
230
- msgstr "Gebruikersnaam bestaat al"
231
 
232
  #: classes/class.swpm-form.php:75
233
  msgid "Password is required"
@@ -275,7 +275,7 @@ msgstr "Security check: captcha validatie mislukt."
275
 
276
  #: classes/class.swpm-front-registration.php:80
277
  msgid "Registration Successful. "
278
- msgstr "Registratie gelukt."
279
 
280
  #: classes/class.swpm-front-registration.php:80
281
  #: classes/class.swpm-settings.php:377
@@ -298,7 +298,7 @@ msgstr "Lidmaatschap niveau kon niet worden gevonden."
298
 
299
  #: classes/class.swpm-front-registration.php:162
300
  msgid "Profile updated successfully."
301
- msgstr "Profiel succesvol bijgewerkt"
302
 
303
  #: classes/class.swpm-front-registration.php:170
304
  msgid ""
@@ -319,7 +319,7 @@ msgstr "Geen gebruiker gevonden met dit e-mailadres."
319
  #: classes/class.swpm-front-registration.php:201
320
  #: classes/class.swpm-front-registration.php:225
321
  msgid "Email Address: "
322
- msgstr "E-mailadres:"
323
 
324
  #: classes/class.swpm-front-registration.php:224
325
  msgid "New password has been sent to your email address."
@@ -652,7 +652,7 @@ msgstr "E-mail Instellingen (Wachtwoord herstel)"
652
 
653
  #: classes/class.swpm-settings.php:131
654
  msgid " Email Settings (Account Upgrade Notification)"
655
- msgstr "Email instellingen (Bericht Account Upgrade)"
656
 
657
  #: classes/class.swpm-settings.php:152
658
  msgid "Enable Expired Account Login"
@@ -807,7 +807,7 @@ msgstr "Je lidmaatschap profiel wordt bijgewerkt met deze betaling."
807
 
808
  #: classes/shortcode-related/class.swpm-shortcodes-handler.php:48
809
  msgid "Your profile username: "
810
- msgstr "Je gebruikersnaam"
811
 
812
  #: classes/shortcode-related/class.swpm-shortcodes-handler.php:60
813
  msgid "Click on the following link to complete the registration."
@@ -838,7 +838,7 @@ msgstr "Je bent niet ingelogd als lid"
838
  #: views/add.php:14 views/admin_add.php:19 views/admin_edit.php:17
839
  #: views/edit.php:13 views/login.php:11
840
  msgid "Password"
841
- msgstr "Wachtwoord:"
842
 
843
  #: views/add.php:18 views/edit.php:17
844
  msgid "Repeat Password"
@@ -883,7 +883,7 @@ msgid ""
883
  msgstr ""
884
  "Hint: Je wachtwoord moet minstens zeven karakters bevatten. Om het sterker "
885
  "te maken gebruik je hoofdletters en kleine letters, nummers en symbolen "
886
- "zoals ! ? / $ % ^ & ; ) \""
887
 
888
  #: views/admin_add.php:29 views/admin_edit.php:26 views/loggedin.php:7
889
  msgid "Account Status"
@@ -891,7 +891,7 @@ msgstr "Account Status"
891
 
892
  #: views/admin_add.php:39
893
  msgid "Add New Member "
894
- msgstr "Voeg nieuw lid toe"
895
 
896
  #: views/admin_addon_settings.php:3 views/admin_settings.php:3
897
  #: views/admin_tools_settings.php:3 views/payments/admin_payment_settings.php:3
@@ -912,7 +912,7 @@ msgstr "Opslaan"
912
 
913
  #: views/admin_add_level.php:6
914
  msgid "Create new membership level."
915
- msgstr "Maak een nieuw Lidmaatschap niveau"
916
 
917
  #: views/admin_add_level.php:11 views/admin_edit_level.php:10
918
  msgid "Membership Level Name"
@@ -964,7 +964,7 @@ msgstr "(Toegang vervalt op een vaste datum)"
964
 
965
  #: views/admin_add_level.php:38
966
  msgid "Add New Membership Level "
967
- msgstr "Voeg een nieuw lidmaatschap niveau toe"
968
 
969
  #: views/admin_add_ons_page.php:7
970
  msgid "Simple WP Membership::Add-ons"
@@ -1020,7 +1020,7 @@ msgstr "Laatst ingelogd via IP"
1020
 
1021
  #: views/admin_edit.php:52
1022
  msgid "Edit User "
1023
- msgstr "Wijzig gebruiker"
1024
 
1025
  #: views/admin_edit_level.php:5
1026
  msgid "Edit membership level"
@@ -1041,7 +1041,7 @@ msgstr "Weken (Toegang vervalt na bepaald aantal weken)"
1041
 
1042
  #: views/admin_edit_level.php:41
1043
  msgid "Edit Membership Level "
1044
- msgstr "Wijzig lidmaatschap niveau"
1045
 
1046
  #: views/admin_members.php:2
1047
  msgid "Simple WP Membership::Members"
@@ -1049,7 +1049,7 @@ msgstr "Simple WP Membership::Leden"
1049
 
1050
  #: views/admin_members.php:3 views/admin_members_list.php:30
1051
  msgid "Add New"
1052
- msgstr "Nieuwe toevoegen "
1053
 
1054
  #: views/admin_membership_levels.php:2
1055
  msgid "Simple WP Membership::Membership Levels"
@@ -1178,8 +1178,8 @@ msgid "Remember Me"
1178
  msgstr "Onthoud mij"
1179
 
1180
  #: views/login.php:24
1181
- msgid "Forgot Password"
1182
- msgstr "Wachtwoord vergeten"
1183
 
1184
  #: views/payments/admin_all_payment_transactions.php:7
1185
  msgid "All the payments/transactions of your members are recorded here."
@@ -1206,7 +1206,7 @@ msgstr "Selecteer Type Betaal-knop"
1206
 
1207
  #: views/payments/admin_create_payment_buttons.php:34
1208
  msgid "Next"
1209
- msgstr "volgende"
1210
 
1211
  #: views/payments/admin_edit_payment_buttons.php:12
1212
  msgid "You can edit a payment button using this interface."
@@ -1252,7 +1252,7 @@ msgstr "Knop titel"
1252
  #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:46
1253
  #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:227
1254
  msgid "Payment Amount"
1255
- msgstr "Te Betalen Bedrag:"
1256
 
1257
  #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:54
1258
  #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:235
@@ -1273,7 +1273,7 @@ msgstr "Retour URL"
1273
  #: views/payments/payment-gateway/admin_paypal_subscription_button.php:86
1274
  #: views/payments/payment-gateway/admin_paypal_subscription_button.php:359
1275
  msgid "PayPal Email"
1276
- msgstr "PayPal Email "
1277
 
1278
  #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:109
1279
  #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:290
@@ -1307,7 +1307,7 @@ msgstr "Factuur bedrag per cyclus"
1307
  #: views/payments/payment-gateway/admin_paypal_subscription_button.php:102
1308
  #: views/payments/payment-gateway/admin_paypal_subscription_button.php:375
1309
  msgid "Billing Cycle"
1310
- msgstr "Factureringscyclus "
1311
 
1312
  #: views/payments/payment-gateway/admin_paypal_subscription_button.php:115
1313
  #: views/payments/payment-gateway/admin_paypal_subscription_button.php:388
@@ -1350,3 +1350,18 @@ msgstr "Koop Nu"
1350
  #: views/payments/payment-gateway/paypal_button_shortcode_view.php:199
1351
  msgid "Subscribe Now"
1352
  msgstr "Nu inschrijven"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  msgstr ""
3
  "Project-Id-Version: simple membership\n"
4
  "POT-Creation-Date: 2016-08-16 16:04+0300\n"
5
+ "PO-Revision-Date: 2021-04-17 00:10+0200\n"
6
  "Language-Team: \n"
7
  "MIME-Version: 1.0\n"
8
  "Content-Type: text/plain; charset=UTF-8\n"
9
  "Content-Transfer-Encoding: 8bit\n"
10
+ "X-Generator: Poedit 2.4.2\n"
11
  "X-Poedit-KeywordsList: __;_e\n"
12
  "X-Poedit-Basepath: .\n"
13
  "Last-Translator: Websites with a Heart <info@websiteswithaheart.com>\n"
91
  #: classes/class.swpm-access-control.php:84
92
  msgid " The rest of the content is not permitted for your membership level."
93
  msgstr ""
94
+ " De rest van de inhoud is niet toegankelijk voor jouw lidmaatschapsniveau."
95
 
96
  #: classes/class.swpm-access-control.php:88
97
  #: classes/class.swpm-access-control.php:106
98
  msgid "You need to login to view the rest of the content. "
99
+ msgstr "Je moet inloggen om de rest van deze inhoud te bekijken. "
100
 
101
  #: classes/class.swpm-admin-registration.php:54
102
  msgid "Member record added successfully."
103
+ msgstr "Lid succesvol toegevoegd."
104
 
105
  #: classes/class.swpm-admin-registration.php:59
106
  #: classes/class.swpm-admin-registration.php:81
219
 
220
  #: classes/class.swpm-form.php:40
221
  msgid "Username is required"
222
+ msgstr "Gebruikersnaam is verplicht"
223
 
224
  #: classes/class.swpm-form.php:44
225
  msgid "Username contains invalid character"
227
 
228
  #: classes/class.swpm-form.php:52
229
  msgid "Username already exists."
230
+ msgstr "Gebruikersnaam bestaat al."
231
 
232
  #: classes/class.swpm-form.php:75
233
  msgid "Password is required"
275
 
276
  #: classes/class.swpm-front-registration.php:80
277
  msgid "Registration Successful. "
278
+ msgstr "Registratie gelukt. "
279
 
280
  #: classes/class.swpm-front-registration.php:80
281
  #: classes/class.swpm-settings.php:377
298
 
299
  #: classes/class.swpm-front-registration.php:162
300
  msgid "Profile updated successfully."
301
+ msgstr "Profiel succesvol bijgewerkt."
302
 
303
  #: classes/class.swpm-front-registration.php:170
304
  msgid ""
319
  #: classes/class.swpm-front-registration.php:201
320
  #: classes/class.swpm-front-registration.php:225
321
  msgid "Email Address: "
322
+ msgstr "E-mailadres: "
323
 
324
  #: classes/class.swpm-front-registration.php:224
325
  msgid "New password has been sent to your email address."
652
 
653
  #: classes/class.swpm-settings.php:131
654
  msgid " Email Settings (Account Upgrade Notification)"
655
+ msgstr " Email instellingen (Bericht Account Upgrade)"
656
 
657
  #: classes/class.swpm-settings.php:152
658
  msgid "Enable Expired Account Login"
807
 
808
  #: classes/shortcode-related/class.swpm-shortcodes-handler.php:48
809
  msgid "Your profile username: "
810
+ msgstr "Je gebruikersnaam: "
811
 
812
  #: classes/shortcode-related/class.swpm-shortcodes-handler.php:60
813
  msgid "Click on the following link to complete the registration."
838
  #: views/add.php:14 views/admin_add.php:19 views/admin_edit.php:17
839
  #: views/edit.php:13 views/login.php:11
840
  msgid "Password"
841
+ msgstr "Wachtwoord"
842
 
843
  #: views/add.php:18 views/edit.php:17
844
  msgid "Repeat Password"
883
  msgstr ""
884
  "Hint: Je wachtwoord moet minstens zeven karakters bevatten. Om het sterker "
885
  "te maken gebruik je hoofdletters en kleine letters, nummers en symbolen "
886
+ "zoals ! \" ? $ % ^ &amp; )."
887
 
888
  #: views/admin_add.php:29 views/admin_edit.php:26 views/loggedin.php:7
889
  msgid "Account Status"
891
 
892
  #: views/admin_add.php:39
893
  msgid "Add New Member "
894
+ msgstr "Voeg nieuw lid toe "
895
 
896
  #: views/admin_addon_settings.php:3 views/admin_settings.php:3
897
  #: views/admin_tools_settings.php:3 views/payments/admin_payment_settings.php:3
912
 
913
  #: views/admin_add_level.php:6
914
  msgid "Create new membership level."
915
+ msgstr "Maak een nieuw Lidmaatschap niveau."
916
 
917
  #: views/admin_add_level.php:11 views/admin_edit_level.php:10
918
  msgid "Membership Level Name"
964
 
965
  #: views/admin_add_level.php:38
966
  msgid "Add New Membership Level "
967
+ msgstr "Voeg een nieuw lidmaatschap niveau toe "
968
 
969
  #: views/admin_add_ons_page.php:7
970
  msgid "Simple WP Membership::Add-ons"
1020
 
1021
  #: views/admin_edit.php:52
1022
  msgid "Edit User "
1023
+ msgstr "Wijzig gebruiker "
1024
 
1025
  #: views/admin_edit_level.php:5
1026
  msgid "Edit membership level"
1041
 
1042
  #: views/admin_edit_level.php:41
1043
  msgid "Edit Membership Level "
1044
+ msgstr "Wijzig lidmaatschap niveau "
1045
 
1046
  #: views/admin_members.php:2
1047
  msgid "Simple WP Membership::Members"
1049
 
1050
  #: views/admin_members.php:3 views/admin_members_list.php:30
1051
  msgid "Add New"
1052
+ msgstr "Nieuwe toevoegen"
1053
 
1054
  #: views/admin_membership_levels.php:2
1055
  msgid "Simple WP Membership::Membership Levels"
1178
  msgstr "Onthoud mij"
1179
 
1180
  #: views/login.php:24
1181
+ msgid "Forgot Password?"
1182
+ msgstr "Wachtwoord vergeten?"
1183
 
1184
  #: views/payments/admin_all_payment_transactions.php:7
1185
  msgid "All the payments/transactions of your members are recorded here."
1206
 
1207
  #: views/payments/admin_create_payment_buttons.php:34
1208
  msgid "Next"
1209
+ msgstr "Volgende"
1210
 
1211
  #: views/payments/admin_edit_payment_buttons.php:12
1212
  msgid "You can edit a payment button using this interface."
1252
  #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:46
1253
  #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:227
1254
  msgid "Payment Amount"
1255
+ msgstr "Te Betalen Bedrag"
1256
 
1257
  #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:54
1258
  #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:235
1273
  #: views/payments/payment-gateway/admin_paypal_subscription_button.php:86
1274
  #: views/payments/payment-gateway/admin_paypal_subscription_button.php:359
1275
  msgid "PayPal Email"
1276
+ msgstr "PayPal Email"
1277
 
1278
  #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:109
1279
  #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:290
1307
  #: views/payments/payment-gateway/admin_paypal_subscription_button.php:102
1308
  #: views/payments/payment-gateway/admin_paypal_subscription_button.php:375
1309
  msgid "Billing Cycle"
1310
+ msgstr "Factureringscyclus"
1311
 
1312
  #: views/payments/payment-gateway/admin_paypal_subscription_button.php:115
1313
  #: views/payments/payment-gateway/admin_paypal_subscription_button.php:388
1350
  #: views/payments/payment-gateway/paypal_button_shortcode_view.php:199
1351
  msgid "Subscribe Now"
1352
  msgstr "Nu inschrijven"
1353
+
1354
+ msgid "Username or Email"
1355
+ msgstr "Gebruikersnaam of e-mailadres"
1356
+
1357
+ msgid "Leave empty to keep the current password"
1358
+ msgstr "Leeg laten om het huidige wachtwoord te behouden"
1359
+
1360
+ msgid "Company Name"
1361
+ msgstr "Bedrijfsnaam"
1362
+
1363
+ msgid "(Please Select)"
1364
+ msgstr "(Maak een keuze)"
1365
+
1366
+ msgid "Edit Profile"
1367
+ msgstr "Wijzig profiel"
languages/simple-membership-sl_SI.mo ADDED
Binary file
languages/simple-membership-sl_SI.po ADDED
@@ -0,0 +1,3021 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Simple Membership\n"
4
+ "POT-Creation-Date: 2019-05-26 13:48+0600\n"
5
+ "PO-Revision-Date: 2021-03-24 14:44+0100\n"
6
+ "Language-Team: \n"
7
+ "MIME-Version: 1.0\n"
8
+ "Content-Type: text/plain; charset=UTF-8\n"
9
+ "Content-Transfer-Encoding: 8bit\n"
10
+ "X-Generator: Poedit 2.4.2\n"
11
+ "X-Poedit-KeywordsList: __;_e;e\n"
12
+ "X-Poedit-Basepath: .\n"
13
+ "Last-Translator: \n"
14
+ "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100>=3 && n"
15
+ "%100<=4 ? 2 : 3);\n"
16
+ "Language: sl_SI\n"
17
+ "X-Poedit-SearchPath-0: .\n"
18
+
19
+ #: classes/class.simple-wp-membership.php:180
20
+ msgid "The admin of this site does not allow users to access the wp dashboard."
21
+ msgstr ""
22
+ "Skrbnik tega mesta uporabnikom ne omogoča dostopa do Wordpress nadzorne "
23
+ "plošče."
24
+
25
+ #: classes/class.simple-wp-membership.php:181
26
+ msgid "Go back to the home page by "
27
+ msgstr "Vrnite se na domačo stran tako, da "
28
+
29
+ #: classes/class.simple-wp-membership.php:181
30
+ msgid "clicking here"
31
+ msgstr "kliknete tukaj"
32
+
33
+ #: classes/class.simple-wp-membership.php:242
34
+ msgid ""
35
+ "Error! This site has the force WP user login feature enabled in the "
36
+ "settings. We could not find a WP user record for the given username: "
37
+ msgstr ""
38
+ "Napaka! Na tem mestu je omogočena funkcija obvezne prijave uporabnika v "
39
+ "Wordpress v nastavitvah. Za dano uporabniško ime ni bilo mogoče najti "
40
+ "Wordpress uporabniškega zapisa: "
41
+
42
+ #: classes/class.simple-wp-membership.php:243
43
+ msgid ""
44
+ "This error is triggered when a member account doesn't have a corresponding "
45
+ "WP user account. So the plugin fails to log the user into the WP User system."
46
+ msgstr ""
47
+ "Ta napaka se sproži, ko račun člana nima ustreznega Wordpress uporabniškega "
48
+ "računa. Zato vtičnik ne uspe prijaviti uporabnika v Wordpress Uporabniški "
49
+ "sistem."
50
+
51
+ #: classes/class.simple-wp-membership.php:244
52
+ msgid ""
53
+ "Contact the site admin and request them to check your username in the WP "
54
+ "Users menu to see what happened with the WP user entry of your account."
55
+ msgstr ""
56
+ "Obrnite se na administratorja spletne strani in ga prosite, da med Wordpress "
57
+ "uporabnikih preveri vaše uporabniško ime in da si ogleda, kaj se je zgodilo "
58
+ "z vnosom vašega uporabniškega računa v Wordpressu."
59
+
60
+ #: classes/class.simple-wp-membership.php:245
61
+ msgid ""
62
+ "The site admin can disable the Force WP User Synchronization feature in the "
63
+ "settings to disable this feature and this error will go away."
64
+ msgstr ""
65
+
66
+ #: classes/class.simple-wp-membership.php:246
67
+ msgid "You can use the back button of your browser to go back to the site."
68
+ msgstr ""
69
+ "Če se želite vrniti na spletno mesto, uporabite gumb “Nazaj” na vašem "
70
+ "brskalniku."
71
+
72
+ #: classes/class.simple-wp-membership.php:407
73
+ msgid "You are not logged in."
74
+ msgstr "Niste prijavljeni."
75
+
76
+ #: classes/class.simple-wp-membership.php:458
77
+ msgid ""
78
+ "You have the sandbox payment mode enabled in plugin settings. Make sure to "
79
+ "turn off the sandbox mode when you want to do live transactions."
80
+ msgstr ""
81
+
82
+ #: classes/class.simple-wp-membership.php:473
83
+ msgid "Simple WP Membership Protection"
84
+ msgstr ""
85
+
86
+ #: classes/class.simple-wp-membership.php:485
87
+ msgid "Simple Membership Protection options"
88
+ msgstr ""
89
+
90
+ #: classes/class.simple-wp-membership.php:503
91
+ msgid "Do you want to protect this content?"
92
+ msgstr "Ali želite zaščititi to vsebino?"
93
+
94
+ #: classes/class.simple-wp-membership.php:504
95
+ msgid "No, Do not protect this content."
96
+ msgstr "Ne, ne ščiti te vsebine."
97
+
98
+ #: classes/class.simple-wp-membership.php:505
99
+ msgid "Yes, Protect this content."
100
+ msgstr "Da, zaščitite to vsebino."
101
+
102
+ #: classes/class.simple-wp-membership.php:508
103
+ msgid "Select the membership level that can access this content:"
104
+ msgstr "Izberite raven članstva, ki lahko dostopa do te vsebine:"
105
+
106
+ #: classes/class.simple-wp-membership.php:646
107
+ #: classes/class.simple-wp-membership.php:650
108
+ msgid "Validating, please wait"
109
+ msgstr "Preverjanje veljavnosti, prosimo počakajte"
110
+
111
+ #: classes/class.simple-wp-membership.php:653
112
+ msgid "Invalid email address"
113
+ msgstr "Neveljaven e-poštni naslov"
114
+
115
+ #: classes/class.simple-wp-membership.php:656
116
+ msgid "This field is required"
117
+ msgstr "To polje je obvezno"
118
+
119
+ msgid "Password must contain at least:"
120
+ msgstr "Geslo mora vsebovati vsaj:"
121
+
122
+ msgid "- a digit"
123
+ msgstr "- številko"
124
+
125
+ msgid "- an uppercase letter"
126
+ msgstr "- veliko tiskano črko"
127
+
128
+ msgid "- a lowercase letter"
129
+ msgstr "- malo tiskano črko"
130
+
131
+ #: classes/class.simple-wp-membership.php:659 classes/class.swpm-auth.php:296
132
+ msgid "Invalid Username"
133
+ msgstr "Neveljavno uporabniško ime"
134
+
135
+ #: classes/class.simple-wp-membership.php:659
136
+ msgid "Usernames can only contain: letters, numbers and .-_*@"
137
+ msgstr "Uporabniško ime lahko vsebuje samo: črke, številke in .-_*@"
138
+
139
+ #: classes/class.simple-wp-membership.php:662
140
+ msgid "Minimum "
141
+ msgstr "Minimalno "
142
+
143
+ #: classes/class.simple-wp-membership.php:663
144
+ msgid " characters required"
145
+ msgstr " znakov, ki so potrebni"
146
+
147
+ #: classes/class.simple-wp-membership.php:666
148
+ msgid "Apostrophe character is not allowed"
149
+ msgstr "Znak apostrofa ni dovoljen"
150
+
151
+ #: classes/class.simple-wp-membership.php:697
152
+ msgid "WP Membership"
153
+ msgstr ""
154
+
155
+ #: classes/class.simple-wp-membership.php:698 classes/class.swpm-members.php:11
156
+ #: classes/class.swpm-members.php:581
157
+ msgid "Members"
158
+ msgstr "Uporabniki"
159
+
160
+ #: classes/class.simple-wp-membership.php:699
161
+ #: classes/class.swpm-category-list.php:20
162
+ #: classes/class.swpm-membership-levels.php:12
163
+ #: classes/class.swpm-membership-levels.php:265
164
+ #: classes/class.swpm-post-list.php:21
165
+ msgid "Membership Levels"
166
+ msgstr "Ravni članstva"
167
+
168
+ #: classes/class.simple-wp-membership.php:700
169
+ msgid "Settings"
170
+ msgstr "Nastavitve"
171
+
172
+ #: classes/class.simple-wp-membership.php:701
173
+ msgid "Payments"
174
+ msgstr "Možnosti plačila"
175
+
176
+ #: classes/class.simple-wp-membership.php:702
177
+ msgid "Add-ons"
178
+ msgstr "Dodatki"
179
+
180
+ #: classes/class.swpm-access-control.php:47
181
+ #: classes/class.swpm-access-control.php:120
182
+ msgid "You need to login to view this content. "
183
+ msgstr "Če si želite ogledati to vsebino, se morate prijaviti. "
184
+
185
+ #: classes/class.swpm-access-control.php:56
186
+ #: classes/class.swpm-access-control.php:128
187
+ #: classes/class.swpm-access-control.php:212
188
+ msgid "Your account has expired. "
189
+ msgstr "Vaš račun je potekel. "
190
+
191
+ #: classes/class.swpm-access-control.php:66
192
+ #: classes/class.swpm-access-control.php:138
193
+ msgid "This content can only be viewed by members who joined on or before "
194
+ msgstr "To vsebino si lahko ogledajo le člani, ki so se pridružili "
195
+
196
+ #: classes/class.swpm-access-control.php:79
197
+ #: classes/class.swpm-access-control.php:148
198
+ msgid "This content is not permitted for your membership level."
199
+ msgstr "Ta vsebina ni dovoljena za vašo raven članstva."
200
+
201
+ #: classes/class.swpm-access-control.php:204
202
+ msgid "You need to login to view the rest of the content. "
203
+ msgstr "Za ogled preostale vsebine se morate prijaviti. "
204
+
205
+ #: classes/class.swpm-access-control.php:217
206
+ msgid " The rest of the content is not permitted for your membership level."
207
+ msgstr "Nadaljnja vsebina ni dovoljena za vašo raven članstva. "
208
+
209
+ #: classes/class.swpm-admin-registration.php:25
210
+ msgid "Error! Nonce verification failed for user registration from admin end."
211
+ msgstr ""
212
+ "Napaka! Preverjanje ni uspelo za registracijo uporabnika iz "
213
+ "administracijskega konca."
214
+
215
+ #: classes/class.swpm-admin-registration.php:71
216
+ msgid "Member record added successfully."
217
+ msgstr "Zapis člana je bil uspešno dodan."
218
+
219
+ #: classes/class.swpm-admin-registration.php:76
220
+ #: classes/class.swpm-admin-registration.php:124
221
+ #: classes/class.swpm-admin-registration.php:151
222
+ #: classes/class.swpm-membership-level.php:73
223
+ #: classes/class.swpm-membership-level.php:105
224
+ msgid "Please correct the following:"
225
+ msgstr "Prosimo, popravite naslednje:"
226
+
227
+ #: classes/class.swpm-admin-registration.php:87
228
+ msgid "Error! Nonce verification failed for user edit from admin end."
229
+ msgstr ""
230
+ "Napaka! Preverjanje ni uspelo za urejanje uporabnika s strani skrbnika."
231
+
232
+ #: classes/class.swpm-admin-registration.php:139
233
+ msgid "Your current password"
234
+ msgstr "Vaše trenutno geslo"
235
+
236
+ #: classes/class.swpm-ajax.php:14
237
+ msgid "Invalid Email Address"
238
+ msgstr "Neveljaven e-poštni naslov"
239
+
240
+ #: classes/class.swpm-ajax.php:21 classes/class.swpm-ajax.php:36
241
+ msgid "Already taken"
242
+ msgstr "Že uporabljeno"
243
+
244
+ #: classes/class.swpm-ajax.php:30
245
+ msgid "Name contains invalid character"
246
+ msgstr "Ime vsebuje neveljaven znak"
247
+
248
+ #: classes/class.swpm-ajax.php:37
249
+ msgid "Available"
250
+ msgstr "Na voljo"
251
+
252
+ #: classes/class.swpm-auth.php:57
253
+ msgid ""
254
+ "Warning! Simple Membership plugin cannot process this login request to "
255
+ "prevent you from getting logged out of WP Admin accidentally."
256
+ msgstr ""
257
+ "Opozorilo! Vtičnik Simple Membership ne more obdelati te zahteve za prijavo, "
258
+ "da bi preprečili nenamerno prijavo iz Wordpress administracije."
259
+
260
+ #: classes/class.swpm-auth.php:58
261
+ msgid "Click here"
262
+ msgstr "Kliknite tukaj"
263
+
264
+ #: classes/class.swpm-auth.php:58
265
+ msgid " to see the profile you are currently logged into in this browser."
266
+ msgstr ""
267
+ " če si želite ogleti profil, v katerega ste trenutno prijavljeni v tem "
268
+ "brskalniku."
269
+
270
+ #: classes/class.swpm-auth.php:59
271
+ msgid ""
272
+ "You are logged into the site as an ADMIN user in this browser. First, logout "
273
+ "from WP Admin then you will be able to log in as a normal member."
274
+ msgstr ""
275
+ "V tem brskalniku ste prijavljeni na spletno mesto kot administrator. Najprej "
276
+ "se odjavite iz WP Admin, da se boste potem lahko prijavili kot normalen član."
277
+
278
+ #: classes/class.swpm-auth.php:60
279
+ msgid ""
280
+ "Alternatively, you can use a different browser (where you are not logged-in "
281
+ "as ADMIN) to test the membership login."
282
+ msgstr ""
283
+ "Druga možnost je, da uporabite drug brskalnik (kjer niste prijavljeni kot "
284
+ "administrator), da preizkusite prijavo za članstvo."
285
+
286
+ #: classes/class.swpm-auth.php:61
287
+ msgid ""
288
+ "Your normal visitors or members will never see this message. This message is "
289
+ "ONLY for ADMIN user."
290
+ msgstr ""
291
+ "Vaši obiskovalci ali člani tega sporočila ne bodo videli. To sporočilo je "
292
+ "prikazano samo administratorju."
293
+
294
+ #: classes/class.swpm-auth.php:68
295
+ msgid "Captcha validation failed on login form."
296
+ msgstr "Preverjanje veljavnosti Captche v prijavnem obrazcu ni uspelo."
297
+
298
+ #: classes/class.swpm-auth.php:93
299
+ msgid "User Not Found."
300
+ msgstr "Uporabnik ni bil najden."
301
+
302
+ #: classes/class.swpm-auth.php:100
303
+ msgid "Password Empty or Invalid."
304
+ msgstr "Geslo prazno ali neveljavno."
305
+
306
+ #: classes/class.swpm-auth.php:133
307
+ msgid "Account is inactive."
308
+ msgstr "Račun ni aktiven."
309
+
310
+ #: classes/class.swpm-auth.php:136 classes/class.swpm-auth.php:162
311
+ msgid "Account has expired."
312
+ msgstr "Račun je potekel."
313
+
314
+ #: classes/class.swpm-auth.php:139
315
+ msgid "Account is pending."
316
+ msgstr "Račun je v čakanju."
317
+
318
+ #: classes/class.swpm-auth.php:146
319
+ #, php-format
320
+ msgid ""
321
+ "You need to activate your account. If you didn't receive an email then %s to "
322
+ "resend the activation email."
323
+ msgstr ""
324
+ "Svoj račun morate aktivirati. Če e-poštnega sporočila niste prejeli, %s za "
325
+ "ponovno pošiljanje e-poštnega sporočila za aktiviranje."
326
+
327
+ #: classes/class.swpm-auth.php:146
328
+ #: classes/class.swpm-front-registration.php:376
329
+ #: classes/class.swpm-front-registration.php:426
330
+ #: classes/class.swpm-utils-misc.php:169
331
+ msgid "click here"
332
+ msgstr "kliknite tukaj"
333
+
334
+ #: classes/class.swpm-auth.php:170
335
+ msgid "You are logged in as:"
336
+ msgstr "Prijavljeni ste kot:"
337
+
338
+ #: classes/class.swpm-auth.php:234
339
+ msgid "Logged Out Successfully."
340
+ msgstr "Odjava uspešna."
341
+
342
+ #: classes/class.swpm-auth.php:287
343
+ msgid "Session Expired."
344
+ msgstr "Seja je potekla."
345
+
346
+ #: classes/class.swpm-auth.php:304
347
+ msgid "Please login again."
348
+ msgstr "Prosimo, prijavite se znova."
349
+
350
+ #: classes/class.swpm-category-list.php:19 classes/class.swpm-members.php:24
351
+ #: classes/class.swpm-membership-levels.php:11
352
+ #: classes/class.swpm-membership-levels.php:21
353
+ #: classes/class.swpm-post-list.php:20
354
+ #: classes/admin-includes/class.swpm-payments-list-table.php:85
355
+ #: views/add.php:40 views/admin_member_form_common_part.php:2 views/edit.php:75
356
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:50
357
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:34
358
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:229
359
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:49
360
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:35
361
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:317
362
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:47
363
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:273
364
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:99
365
+ msgid "Membership Level"
366
+ msgstr "Raven članstva"
367
+
368
+ #: classes/class.swpm-category-list.php:33
369
+ msgid "Category ID"
370
+ msgstr "ID kategorije"
371
+
372
+ #: classes/class.swpm-category-list.php:34
373
+ msgid "Category Name"
374
+ msgstr "Ime kategorije"
375
+
376
+ #: classes/class.swpm-category-list.php:35
377
+ msgid "Category Type (Taxonomy)"
378
+ msgstr "Vrsta kategorije (taksonomija)"
379
+
380
+ #: classes/class.swpm-category-list.php:36
381
+ msgid "Description"
382
+ msgstr "Opis"
383
+
384
+ #: classes/class.swpm-category-list.php:37
385
+ msgid "Count"
386
+ msgstr "Število"
387
+
388
+ #: classes/class.swpm-category-list.php:92
389
+ msgid "Category protection updated!"
390
+ msgstr "Zaščita kategorije posodobljena!"
391
+
392
+ #: classes/class.swpm-category-list.php:130
393
+ msgid "No category found."
394
+ msgstr "Ni najdene kategorije."
395
+
396
+ #: classes/class.swpm-comment-form-related.php:15
397
+ msgid "Please login to comment."
398
+ msgstr "Za komentiranje se prosimo prijavite."
399
+
400
+ #: classes/class.swpm-comment-form-related.php:40
401
+ msgid "Please Login to Comment."
402
+ msgstr "Za komentiranje se prosimo prijavite."
403
+
404
+ #: classes/class.swpm-comment-form-related.php:79
405
+ msgid "Comments not allowed by a non-member."
406
+ msgstr "Komentarji nečlanom niso dovoljeni."
407
+
408
+ #: classes/class.swpm-form.php:30
409
+ msgid ""
410
+ "Wordpress account exists with given username. But given email doesn't match."
411
+ msgstr ""
412
+ "Wordpress račun z danim uporabniškim imenom že obstaja, vendar se ne ujema z "
413
+ "e-pošto."
414
+
415
+ #: classes/class.swpm-form.php:31
416
+ msgid ""
417
+ " Use a different username to complete the registration. If you want to use "
418
+ "that username then you must enter the correct email address associated with "
419
+ "the existing WP user to connect with that account."
420
+ msgstr ""
421
+ " Za dokončanje registracije uporabite drugo uporabniško ime. Če želite "
422
+ "uporabiti to uporabniško ime, morate vnesti pravilen e-poštni naslov, "
423
+ "povezan z obstoječim Wordpress uporabnikom, da se povežete s tem računom."
424
+
425
+ #: classes/class.swpm-form.php:37
426
+ msgid ""
427
+ "Wordpress account exists with given email. But given username doesn't match."
428
+ msgstr ""
429
+ "Wordpress račun z dano e-pošto že obstaja, vendar se uporabniško ime ne "
430
+ "ujema."
431
+
432
+ #: classes/class.swpm-form.php:38
433
+ msgid ""
434
+ " Use a different email address to complete the registration. If you want to "
435
+ "use that email then you must enter the correct username associated with the "
436
+ "existing WP user to connect with that account."
437
+ msgstr ""
438
+ " Za dokončanje registracije uporabite drug e-poštni naslov. Če želite "
439
+ "uporabiti to e-poštno sporočilo, morate vnesti pravilno uporabniško ime, "
440
+ "povezano z obstoječim uporabnikom WP, da se povežete s tem računom."
441
+
442
+ #: classes/class.swpm-form.php:48
443
+ msgid "Username is required"
444
+ msgstr "Uporabniško ime je obvezno"
445
+
446
+ #: classes/class.swpm-form.php:52
447
+ msgid "Username contains invalid character"
448
+ msgstr "Uporabniško ime vsebuje neveljaven znak"
449
+
450
+ #: classes/class.swpm-form.php:60
451
+ msgid "Username already exists."
452
+ msgstr "Uporabniško ime že obstaja."
453
+
454
+ #: classes/class.swpm-form.php:83
455
+ msgid "Password is required"
456
+ msgstr "Geslo je potrebno"
457
+
458
+ #: classes/class.swpm-form.php:90
459
+ msgid "Password mismatch"
460
+ msgstr "Neskladje gesla"
461
+
462
+ #: classes/class.swpm-form.php:101
463
+ msgid "Email is required"
464
+ msgstr "E-pošta je potrebna"
465
+
466
+ #: classes/class.swpm-form.php:105
467
+ msgid "Email is invalid"
468
+ msgstr "E-pošta ni veljavna"
469
+
470
+ #: classes/class.swpm-form.php:121
471
+ msgid "Email is already used."
472
+ msgstr "Ta e-pošta je že uporabljena."
473
+
474
+ #: classes/class.swpm-form.php:179
475
+ msgid "Member since field is invalid"
476
+ msgstr "Član, ker je polje neveljavno"
477
+
478
+ #: classes/class.swpm-form.php:190
479
+ msgid "Access starts field is invalid"
480
+ msgstr ""
481
+
482
+ #: classes/class.swpm-form.php:200
483
+ msgid "Gender field is invalid"
484
+ msgstr "Polje spola ni veljavno"
485
+
486
+ #: classes/class.swpm-form.php:211
487
+ msgid "Account state field is invalid"
488
+ msgstr "Polje stanja računa ni veljavno"
489
+
490
+ #: classes/class.swpm-form.php:218
491
+ msgid "Invalid membership level"
492
+ msgstr "Neveljavna raven članstva"
493
+
494
+ #: classes/class.swpm-front-registration.php:33
495
+ msgid ""
496
+ "Error! Invalid Request. Could not find a match for the given security code "
497
+ "and the user ID."
498
+ msgstr ""
499
+ "Napaka! Neveljavna zahteva. Ni bilo mogoče najti ujemanja za dano varnostno "
500
+ "kodo in ID uporabnika."
501
+
502
+ #: classes/class.swpm-front-registration.php:45
503
+ #: classes/class.swpm-utils-misc.php:274 views/login.php:36
504
+ msgid "Join Us"
505
+ msgstr "Pridružite se nam"
506
+
507
+ #: classes/class.swpm-front-registration.php:47
508
+ msgid ""
509
+ "Free membership is disabled on this site. Please make a payment from the "
510
+ msgstr ""
511
+ "Brezplačno članstvo je na tej strani onemogočeno. Prosimo, da naročite "
512
+
513
+ #: classes/class.swpm-front-registration.php:49
514
+ msgid " page to pay for a premium membership."
515
+ msgstr " mesečno članstvo na naši strani."
516
+
517
+ #: classes/class.swpm-front-registration.php:51
518
+ msgid ""
519
+ "You will receive a unique link via email after the payment. You will be able "
520
+ "to use that link to complete the premium membership registration."
521
+ msgstr ""
522
+ "Po plačilu boste prejeli edinstveno povezavo preko e-pošte. To povezavo "
523
+ "uporabite za dokončanje registracije članstva."
524
+
525
+ #: classes/class.swpm-front-registration.php:79
526
+ msgid "Security check: captcha validation failed."
527
+ msgstr "Varnostno preverjanje: preverjanje veljavnosti Captche ni uspelo."
528
+
529
+ #: classes/class.swpm-front-registration.php:89
530
+ msgid "You must accept the terms and conditions."
531
+ msgstr "Sprejeti morate pogoje in določila."
532
+
533
+ #: classes/class.swpm-front-registration.php:100
534
+ msgid "You must agree to the privacy policy."
535
+ msgstr "Strinjati se morate s pravilnikom o zasebnosti."
536
+
537
+ #: classes/class.swpm-front-registration.php:140
538
+ msgid ""
539
+ "You need to confirm your email address. Please check your email and follow "
540
+ "instructions to complete your registration."
541
+ msgstr ""
542
+ "Potrditi morate svoj e-poštni naslov. Preverite e-pošto in upoštevajte "
543
+ "navodila za dokončanje registracije."
544
+
545
+ #: classes/class.swpm-front-registration.php:145
546
+ msgid "Registration Successful. "
547
+ msgstr "Registracija uspešna. "
548
+
549
+ #: classes/class.swpm-front-registration.php:145
550
+ #: classes/class.swpm-utils-misc.php:273 classes/class.swpm-utils-misc.php:285
551
+ msgid "Please"
552
+ msgstr "Prosimo"
553
+
554
+ #: classes/class.swpm-front-registration.php:145
555
+ #: classes/class.swpm-utils-misc.php:273 views/login.php:30
556
+ msgid "Login"
557
+ msgstr "Prijavite se"
558
+
559
+ #: classes/class.swpm-front-registration.php:159
560
+ msgid "Please correct the following"
561
+ msgstr "Prosimo, popravite naslednje"
562
+
563
+ #: classes/class.swpm-front-registration.php:207
564
+ msgid "Membership Level Couldn't be found."
565
+ msgstr "Ravni članstva ni bilo mogoče najti."
566
+
567
+ #: classes/class.swpm-front-registration.php:258
568
+ msgid "Error! Nonce verification failed for front end profile edit."
569
+ msgstr ""
570
+
571
+ #: classes/class.swpm-front-registration.php:266
572
+ msgid "Profile updated successfully."
573
+ msgstr "Profil je uspešno posodobljen."
574
+
575
+ #: classes/class.swpm-front-registration.php:275
576
+ msgid ""
577
+ "Profile updated successfully. You will need to re-login since you changed "
578
+ "your password."
579
+ msgstr ""
580
+ "Profil je uspešno posodobljen. Zaradi spremembe gesla se ponovno prijavite."
581
+
582
+ #: classes/class.swpm-front-registration.php:289
583
+ msgid "Please correct the following."
584
+ msgstr "Prosimo, popravite naslednje."
585
+
586
+ #: classes/class.swpm-front-registration.php:301
587
+ msgid "Captcha validation failed."
588
+ msgstr "Preverjanje veljavnosti Captche ni uspelo."
589
+
590
+ #: classes/class.swpm-front-registration.php:309
591
+ msgid "Email address not valid."
592
+ msgstr "E-poštni naslov ni veljaven."
593
+
594
+ #: classes/class.swpm-front-registration.php:320
595
+ msgid "No user found with that email address."
596
+ msgstr "Noben uporabnik ni bil najden s tem e-poštnim naslovom."
597
+
598
+ #: classes/class.swpm-front-registration.php:321
599
+ #: classes/class.swpm-front-registration.php:350
600
+ msgid "Email Address: "
601
+ msgstr "E-poštni naslov: "
602
+
603
+ #: classes/class.swpm-front-registration.php:349
604
+ msgid "New password has been sent to your email address."
605
+ msgstr "Na vaš e-poštni naslov je bilo poslano novo geslo."
606
+
607
+ #: classes/class.swpm-front-registration.php:371
608
+ msgid "Can't find member account."
609
+ msgstr "Ne najdem računa člana."
610
+
611
+ #: classes/class.swpm-front-registration.php:376
612
+ #: classes/class.swpm-front-registration.php:426
613
+ msgid "Account already active. "
614
+ msgstr "Račun je že aktiven. "
615
+
616
+ #: classes/class.swpm-front-registration.php:376
617
+ #: classes/class.swpm-front-registration.php:426
618
+ msgid " to login."
619
+ msgstr " za prijavo."
620
+
621
+ #: classes/class.swpm-front-registration.php:383
622
+ msgid ""
623
+ "Activation code mismatch. Cannot activate this account. Please contact the "
624
+ "site admin."
625
+ msgstr ""
626
+ "Neskladje aktivacijske kode. Tega računa ni mogoče aktivirati. Obrnite se na "
627
+ "administratorja spletnega mesta."
628
+
629
+ #: classes/class.swpm-front-registration.php:397
630
+ msgid "Success! Your account has been activated successfully."
631
+ msgstr "Čestitamo! Vaš račun je bil uspešno aktiviran."
632
+
633
+ #: classes/class.swpm-front-registration.php:421
634
+ msgid "Cannot find member account."
635
+ msgstr "Računa člana ni mogoče najti."
636
+
637
+ #: classes/class.swpm-front-registration.php:443
638
+ msgid ""
639
+ "Activation email has been sent. Please check your email and activate your "
640
+ "account."
641
+ msgstr ""
642
+ "Aktivacijsko e-poštno sporočilo je bilo poslano. Preverite e-pošto in "
643
+ "aktivirajte račun."
644
+
645
+ #: classes/class.swpm-init-time-tasks.php:118
646
+ msgid "Sorry, Nonce verification failed."
647
+ msgstr "Oprostite, preverjanje ni uspelo."
648
+
649
+ #: classes/class.swpm-init-time-tasks.php:125
650
+ msgid "Sorry, Password didn't match."
651
+ msgstr "Oprostite, gesla se ne ujemajo."
652
+
653
+ #: classes/class.swpm-level-form.php:50
654
+ msgid "Date format is not valid."
655
+ msgstr "Oblika datuma ni veljavna."
656
+
657
+ #: classes/class.swpm-level-form.php:58
658
+ msgid "Access duration must be > 0."
659
+ msgstr "Trajanje dostopa mora biti > 0."
660
+
661
+ #: classes/class.swpm-members.php:10
662
+ msgid "Member"
663
+ msgstr "Uporabnik"
664
+
665
+ #: classes/class.swpm-members.php:19
666
+ #: classes/class.swpm-membership-levels.php:20
667
+ msgid "ID"
668
+ msgstr "ID"
669
+
670
+ #: classes/class.swpm-members.php:20 views/add.php:16 views/admin_add.php:11
671
+ #: views/admin_edit.php:19 views/edit.php:23
672
+ #: includes/swpm_mda_show_profile.php:27
673
+ msgid "Username"
674
+ msgstr "Uporabniško ime"
675
+
676
+ #: classes/class.swpm-members.php:21
677
+ #: classes/admin-includes/class.swpm-payments-list-table.php:78
678
+ #: views/add.php:32 views/admin_member_form_common_part.php:15
679
+ #: views/edit.php:39 includes/swpm_mda_show_profile.php:28
680
+ msgid "First Name"
681
+ msgstr "Ime"
682
+
683
+ #: classes/class.swpm-members.php:22
684
+ #: classes/admin-includes/class.swpm-payments-list-table.php:79
685
+ #: views/add.php:36 views/admin_member_form_common_part.php:19
686
+ #: views/edit.php:43 includes/swpm_mda_show_profile.php:29
687
+ msgid "Last Name"
688
+ msgstr "Priimek"
689
+
690
+ #: classes/class.swpm-members.php:23 views/add.php:20 views/edit.php:27
691
+ #: includes/swpm_mda_show_profile.php:35
692
+ msgid "Email"
693
+ msgstr "E-pošta"
694
+
695
+ #: classes/class.swpm-members.php:25 views/admin_member_form_common_part.php:11
696
+ msgid "Access Starts"
697
+ msgstr "Začetek dostopa"
698
+
699
+ #: classes/class.swpm-members.php:26 includes/swpm_mda_show_profile.php:31
700
+ msgid "Account State"
701
+ msgstr "Stanje računa"
702
+
703
+ #: classes/class.swpm-members.php:27
704
+ msgid "Last Login Date"
705
+ msgstr "Datum zadnje prijave"
706
+
707
+ #: classes/class.swpm-members.php:46
708
+ #: classes/class.swpm-membership-levels.php:36
709
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:94
710
+ #: classes/admin-includes/class.swpm-payments-list-table.php:102
711
+ msgid "Delete"
712
+ msgstr "Izbriši"
713
+
714
+ #: classes/class.swpm-members.php:47
715
+ msgid "Set Status to Active"
716
+ msgstr "Nastavi status na Aktivno"
717
+
718
+ #: classes/class.swpm-members.php:48
719
+ msgid "Set Status to Active and Notify"
720
+ msgstr "Nastavi stanje na Aktivno in me obvesti"
721
+
722
+ #: classes/class.swpm-members.php:49
723
+ msgid "Set Status to Inactive"
724
+ msgstr "Nastavi stanje na Neaktivno"
725
+
726
+ #: classes/class.swpm-members.php:50
727
+ msgid "Set Status to Pending"
728
+ msgstr "Nastavi stanje na Čakanje"
729
+
730
+ #: classes/class.swpm-members.php:51
731
+ msgid "Set Status to Expired"
732
+ msgstr "Nastavi stanje na Poteklo"
733
+
734
+ #: classes/class.swpm-members.php:72
735
+ msgid "incomplete"
736
+ msgstr "nepopolno"
737
+
738
+ #: classes/class.swpm-members.php:191
739
+ msgid "No member found."
740
+ msgstr "Noben član ni bil najden."
741
+
742
+ #: classes/class.swpm-members.php:337
743
+ msgid "Error! Nonce verification failed for user delete from admin end."
744
+ msgstr ""
745
+
746
+ #: classes/class.swpm-members.php:406 classes/class.swpm-members.php:436
747
+ msgid "Error! Please select a membership level first."
748
+ msgstr "Napaka! Najprej izberite raven članstva."
749
+
750
+ #: classes/class.swpm-members.php:423
751
+ msgid "Membership level change operation completed successfully."
752
+ msgstr "Operacija spremembe ravni članstva se je uspešno zaključila."
753
+
754
+ #: classes/class.swpm-members.php:453
755
+ msgid "Access starts date change operation successfully completed."
756
+ msgstr "Sprememba datuma začetka dostopa je uspešna."
757
+
758
+ #: classes/class.swpm-members.php:462
759
+ msgid "Bulk Update Membership Level of Members"
760
+ msgstr ""
761
+
762
+ #: classes/class.swpm-members.php:465
763
+ msgid ""
764
+ "You can manually change the membership level of any member by editing the "
765
+ "record from the members menu. "
766
+ msgstr ""
767
+ "Raven članstva katerega koli člana lahko ročno spremenite tako, da uredite "
768
+ "zapis v seznamu članov. "
769
+
770
+ #: classes/class.swpm-members.php:466
771
+ msgid ""
772
+ "You can use the following option to bulk update the membership level of "
773
+ "users who belong to the level you select below."
774
+ msgstr ""
775
+ "To možnost lahko uporabite za množično posodobite ravne članstva "
776
+ "uporabnikov, ki pripadajo ravni, ki jo izberete spodaj."
777
+
778
+ #: classes/class.swpm-members.php:472 classes/class.swpm-members.php:520
779
+ msgid "Membership Level: "
780
+ msgstr "Raven članstva: "
781
+
782
+ #: classes/class.swpm-members.php:476
783
+ msgid "Select Current Level"
784
+ msgstr "Izberi trenutno raven"
785
+
786
+ #: classes/class.swpm-members.php:479
787
+ msgid ""
788
+ "Select the current membership level (the membership level of all members who "
789
+ "are in this level will be updated)."
790
+ msgstr ""
791
+ "Izberite trenutno raven članstva (raven članstva vseh članov, ki so na tej "
792
+ "ravni, bodo posodobljena)."
793
+
794
+ #: classes/class.swpm-members.php:485
795
+ msgid "Level to Change to: "
796
+ msgstr "Raven, v katero članstvo spreminjate: "
797
+
798
+ #: classes/class.swpm-members.php:489
799
+ msgid "Select Target Level"
800
+ msgstr "Izberite ciljno raven"
801
+
802
+ #: classes/class.swpm-members.php:492
803
+ msgid "Select the new membership level."
804
+ msgstr "Izberite novo raven članstva."
805
+
806
+ #: classes/class.swpm-members.php:498
807
+ msgid "Bulk Change Membership Level"
808
+ msgstr "Skupinska sprememba ravni članstev"
809
+
810
+ #: classes/class.swpm-members.php:508
811
+ msgid "Bulk Update Access Starts Date of Members"
812
+ msgstr ""
813
+
814
+ #: classes/class.swpm-members.php:512
815
+ msgid ""
816
+ "The access starts date of a member is set to the day the user registers. "
817
+ "This date value is used to calculate how long the member can access your "
818
+ "content that are protected with a duration type protection in the membership "
819
+ "level. "
820
+ msgstr ""
821
+
822
+ #: classes/class.swpm-members.php:513
823
+ msgid ""
824
+ "You can manually set a specific access starts date value of all members who "
825
+ "belong to a particular level using the following option."
826
+ msgstr ""
827
+ "Določeno vrednost datuma začetka dostopa lahko ročno nastavite za vse člane, "
828
+ "ki pripadajo določeni ravni, in to z naslednjo možnostjo."
829
+
830
+ #: classes/class.swpm-members.php:523
831
+ msgid "Select Level"
832
+ msgstr "Izberite raven"
833
+
834
+ #: classes/class.swpm-members.php:526
835
+ msgid ""
836
+ "Select the Membership level (the access start date of all members who are in "
837
+ "this level will be updated)."
838
+ msgstr ""
839
+ "Izberite raven članstva (datum začetka dostopa vseh članov, ki so na tej "
840
+ "ravni, bo posodobljen)."
841
+
842
+ #: classes/class.swpm-members.php:535
843
+ msgid "Specify the access starts date value."
844
+ msgstr "Določite vrednost datuma začetka dostopa."
845
+
846
+ #: classes/class.swpm-members.php:541
847
+ msgid "Bulk Change Access Starts Date"
848
+ msgstr ""
849
+
850
+ #: classes/class.swpm-members.php:576
851
+ msgid "Simple WP Membership::Members"
852
+ msgstr "Simple WP Membership::Člani"
853
+
854
+ #: classes/class.swpm-members.php:577
855
+ #: classes/class.swpm-membership-levels.php:226 views/admin_members_list.php:44
856
+ msgid "Add New"
857
+ msgstr "Dodaj novo"
858
+
859
+ #: classes/class.swpm-members.php:582 views/admin_add.php:6
860
+ msgid "Add Member"
861
+ msgstr "Dodaj člana"
862
+
863
+ #: classes/class.swpm-members.php:583
864
+ msgid "Bulk Operation"
865
+ msgstr "Množično delovanje"
866
+
867
+ #: classes/class.swpm-membership-level.php:52
868
+ msgid ""
869
+ "Error! Nonce verification failed for membership level creation from admin "
870
+ "end."
871
+ msgstr ""
872
+
873
+ #: classes/class.swpm-membership-level.php:68
874
+ msgid "Membership Level Creation Successful."
875
+ msgstr "Ustvarjanje ravni članstva uspešno."
876
+
877
+ #: classes/class.swpm-membership-level.php:84
878
+ msgid ""
879
+ "Error! Nonce verification failed for membership level edit from admin end."
880
+ msgstr ""
881
+
882
+ #: classes/class.swpm-membership-level.php:100
883
+ msgid "Membership Level Updated Successfully."
884
+ msgstr "Raven članstva je bila uspešno posodobljena."
885
+
886
+ #: classes/class.swpm-membership-levels.php:22
887
+ msgid "Role"
888
+ msgstr "Vloga"
889
+
890
+ #: classes/class.swpm-membership-levels.php:23
891
+ msgid "Access Valid For/Until"
892
+ msgstr "Dostop veljaven za/do"
893
+
894
+ #: classes/class.swpm-membership-levels.php:133
895
+ msgid "No membership levels found."
896
+ msgstr "Ni bilo najdenih ravni članstva."
897
+
898
+ #: classes/class.swpm-membership-levels.php:197
899
+ msgid ""
900
+ "Error! Nonce verification failed for membership level delete from admin end."
901
+ msgstr ""
902
+
903
+ #: classes/class.swpm-membership-levels.php:216 views/admin_members_list.php:31
904
+ #: views/payments/admin_all_payment_transactions.php:16 views/template-1.php:53
905
+ #: views/template-2.php:54
906
+ msgid "Search"
907
+ msgstr "Išči"
908
+
909
+ #: classes/class.swpm-membership-levels.php:261
910
+ msgid "Simple WP Membership::Membership Levels"
911
+ msgstr "Simple WP Membership::Ravni članstva"
912
+
913
+ #: classes/class.swpm-membership-levels.php:266
914
+ msgid "Add Level"
915
+ msgstr "Dodaj raven"
916
+
917
+ #: classes/class.swpm-membership-levels.php:267
918
+ msgid "Manage Content Protection"
919
+ msgstr "Upravljanje zaščite vsebine"
920
+
921
+ #: classes/class.swpm-membership-levels.php:268
922
+ msgid "Category Protection"
923
+ msgstr "Zaščita kategorije"
924
+
925
+ #: classes/class.swpm-membership-levels.php:269
926
+ msgid "Post and Page Protection"
927
+ msgstr "Zaščita prispevkov in strani"
928
+
929
+ #: classes/class.swpm-post-list.php:43 classes/class.swpm-post-list.php:52
930
+ #: classes/class.swpm-post-list.php:62
931
+ #: classes/admin-includes/class.swpm-payments-list-table.php:81
932
+ msgid "Date"
933
+ msgstr "Datum"
934
+
935
+ #: classes/class.swpm-post-list.php:44 classes/class.swpm-post-list.php:53
936
+ #: classes/class.swpm-post-list.php:63
937
+ msgid "Title"
938
+ msgstr "Naslov"
939
+
940
+ #: classes/class.swpm-post-list.php:45 classes/class.swpm-post-list.php:54
941
+ #: classes/class.swpm-post-list.php:64
942
+ msgid "Author"
943
+ msgstr "Avtor"
944
+
945
+ #: classes/class.swpm-post-list.php:46 classes/class.swpm-post-list.php:56
946
+ #: classes/class.swpm-post-list.php:66
947
+ msgid "Status"
948
+ msgstr "Stanje"
949
+
950
+ #: classes/class.swpm-post-list.php:55
951
+ msgid "Categories"
952
+ msgstr "Kategorije"
953
+
954
+ #: classes/class.swpm-post-list.php:65
955
+ msgid "Type"
956
+ msgstr "Vrsta"
957
+
958
+ #: classes/class.swpm-post-list.php:125
959
+ msgid "Protection settings updated!"
960
+ msgstr "Nastavitve zaščite posodobljene!"
961
+
962
+ #: classes/class.swpm-post-list.php:230
963
+ msgid "No items found."
964
+ msgstr "Ne najdem ničesar."
965
+
966
+ #: classes/class.swpm-protection.php:22
967
+ msgid ""
968
+ "The category or parent category of this post is protected. You can change "
969
+ "the category protection settings from the "
970
+ msgstr ""
971
+ "Kategorija ali nadrejena kategorija te objave je zaščitena. Nastavitve "
972
+ "zaščite kategorije lahko spremenite v "
973
+
974
+ #: classes/class.swpm-protection.php:23
975
+ msgid "category protection menu"
976
+ msgstr "meniju za zaščito kategorije"
977
+
978
+ #: classes/class.swpm-settings.php:26 classes/class.swpm-settings.php:54
979
+ msgid "General Settings"
980
+ msgstr "Splošne nastavitve"
981
+
982
+ #: classes/class.swpm-settings.php:27
983
+ msgid "Payment Settings"
984
+ msgstr "Nastavitve plačila"
985
+
986
+ #: classes/class.swpm-settings.php:28
987
+ msgid "Email Settings"
988
+ msgstr "Nastavitve e-pošte"
989
+
990
+ #: classes/class.swpm-settings.php:29
991
+ msgid "Tools"
992
+ msgstr "Orodja"
993
+
994
+ #: classes/class.swpm-settings.php:30 classes/class.swpm-settings.php:187
995
+ msgid "Advanced Settings"
996
+ msgstr "Napredne nastavitve"
997
+
998
+ #: classes/class.swpm-settings.php:31
999
+ msgid "Addons Settings"
1000
+ msgstr "Nastavitve dodatkov"
1001
+
1002
+ #: classes/class.swpm-settings.php:53
1003
+ msgid "Plugin Documentation"
1004
+ msgstr "Dokumentacija vtičnika"
1005
+
1006
+ #: classes/class.swpm-settings.php:55
1007
+ msgid "Enable Free Membership"
1008
+ msgstr "Omogoči brezplačno članstvo"
1009
+
1010
+ #: classes/class.swpm-settings.php:56
1011
+ msgid ""
1012
+ "Enable/disable registration for free membership level. When you enable this "
1013
+ "option, make sure to specify a free membership level ID in the field below."
1014
+ msgstr ""
1015
+ "Omogočite/onemogočite registracijo za brezplačno raven članstva. Ko "
1016
+ "omogočite to možnost, v spodnjem polju navedite brezplačni ID ravni članstva."
1017
+
1018
+ #: classes/class.swpm-settings.php:57
1019
+ msgid "Free Membership Level ID"
1020
+ msgstr "ID brezplačne ravni članstva"
1021
+
1022
+ #: classes/class.swpm-settings.php:58
1023
+ msgid "Assign free membership level ID"
1024
+ msgstr "Dodelite ID brezplačne ravni članstva"
1025
+
1026
+ #: classes/class.swpm-settings.php:59
1027
+ msgid "Enable More Tag Protection"
1028
+ msgstr "Omogoči več zaščite oznak"
1029
+
1030
+ #: classes/class.swpm-settings.php:60
1031
+ msgid ""
1032
+ "Enables or disables \"more\" tag protection in the posts and pages. Anything "
1033
+ "after the More tag is protected. Anything before the more tag is teaser "
1034
+ "content."
1035
+ msgstr ""
1036
+ "Omogoča ali onemogoči zaščito oznak »več« v objavah in straneh. Vse po več "
1037
+ "oznako je zaščitena. Vse, kar je pred več oznako je teaser vsebina."
1038
+
1039
+ #: classes/class.swpm-settings.php:61
1040
+ msgid "Hide Adminbar"
1041
+ msgstr "Skrij skrbniško vrstico"
1042
+
1043
+ #: classes/class.swpm-settings.php:62
1044
+ msgid ""
1045
+ "WordPress shows an admin toolbar to the logged in users of the site. Check "
1046
+ "this if you want to hide that admin toolbar in the frontend of your site."
1047
+ msgstr ""
1048
+ "WordPress prikaže skrbniško orodno vrstico prijavljenim skrbnikom spletnega "
1049
+ "mesta. Obkljukajte, če želite skriti to skrbniško orodno vrstico na "
1050
+ "frontendu spletnega mesta."
1051
+
1052
+ #: classes/class.swpm-settings.php:63
1053
+ msgid "Show Adminbar to Admin"
1054
+ msgstr "Pokaži skrbniško vrstico skrbniku"
1055
+
1056
+ #: classes/class.swpm-settings.php:64
1057
+ msgid ""
1058
+ "Use this option if you want to show the admin toolbar to admin users only. "
1059
+ "The admin toolbar will be hidden for all other users."
1060
+ msgstr ""
1061
+ "To možnost uporabite, če želite skrbniku pokazati orodno vrstico samo za "
1062
+ "administratorje. Skrbniška orodna vrstica bo skrita za vse druge ravni "
1063
+ "skrbništva spletne strani."
1064
+
1065
+ #: classes/class.swpm-settings.php:65
1066
+ msgid "Disable Access to WP Dashboard"
1067
+ msgstr "Onemogoči dostop do Wordpress nadzorne plošče"
1068
+
1069
+ #: classes/class.swpm-settings.php:66
1070
+ msgid ""
1071
+ "WordPress allows a standard wp user to be able to go to the wp-admin URL and "
1072
+ "access his profile from the wp dashbaord. Using this option will prevent any "
1073
+ "non admin users from going to the wp dashboard."
1074
+ msgstr ""
1075
+ "WordPress omogoča standardnemu uporabnik Wordpressa, da lahko gre na “wp-"
1076
+ "admin” URL in dostopa do njegovega profila iz Wordpress nadzorne plošče. S "
1077
+ "to možnostjo boste preprečili, da bi vsi uporabniki, ki niso skrbniki, lahko "
1078
+ "prišli na Wordpress nadzorno ploščo."
1079
+
1080
+ #: classes/class.swpm-settings.php:68 classes/class.swpm-settings.php:242
1081
+ msgid "Default Account Status"
1082
+ msgstr "Privzeto stanje računa"
1083
+
1084
+ #: classes/class.swpm-settings.php:71
1085
+ msgid ""
1086
+ "Select the default account status for newly registered users. If you want to "
1087
+ "manually approve the members then you can set the status to \"Pending\"."
1088
+ msgstr ""
1089
+ "Izberite privzeto stanje računa za novo registrirane uporabnike. Če želite "
1090
+ "člane ročno odobriti, lahko stanje nastavite na »Neohajano«."
1091
+
1092
+ #: classes/class.swpm-settings.php:73
1093
+ msgid "Members Must be Logged in to Comment"
1094
+ msgstr "Člani morajo biti prijavljeni za komentiranje"
1095
+
1096
+ #: classes/class.swpm-settings.php:74
1097
+ msgid ""
1098
+ "Enable this option if you only want the members of the site to be able to "
1099
+ "post a comment."
1100
+ msgstr ""
1101
+ "Omogočite to možnost, če želite da lahko člani spletnega mesta objavljajo le "
1102
+ "komentarje."
1103
+
1104
+ #: classes/class.swpm-settings.php:83
1105
+ msgid "Pages Settings"
1106
+ msgstr "Nastavitve strani"
1107
+
1108
+ #: classes/class.swpm-settings.php:84
1109
+ msgid "Login Page URL"
1110
+ msgstr "URL prijavne strani"
1111
+
1112
+ #: classes/class.swpm-settings.php:86
1113
+ msgid "Registration Page URL"
1114
+ msgstr "URL registracijske strani"
1115
+
1116
+ #: classes/class.swpm-settings.php:88
1117
+ msgid "Join Us Page URL"
1118
+ msgstr "URL strani Pridružite se nam"
1119
+
1120
+ #: classes/class.swpm-settings.php:90
1121
+ msgid "Edit Profile Page URL"
1122
+ msgstr "URL strani Uredi profil"
1123
+
1124
+ #: classes/class.swpm-settings.php:92
1125
+ msgid "Password Reset Page URL"
1126
+ msgstr "URL strani za ponastavitev gesla"
1127
+
1128
+ #: classes/class.swpm-settings.php:95
1129
+ msgid "Test & Debug Settings"
1130
+ msgstr ""
1131
+
1132
+ #: classes/class.swpm-settings.php:97
1133
+ msgid "Check this option to enable debug logging."
1134
+ msgstr ""
1135
+
1136
+ #: classes/class.swpm-settings.php:98
1137
+ msgid ""
1138
+ " This can be useful when troubleshooting an issue. Turn it off and reset the "
1139
+ "log files after the troubleshooting is complete."
1140
+ msgstr ""
1141
+
1142
+ #: classes/class.swpm-settings.php:100
1143
+ msgid "View general debug log file by clicking "
1144
+ msgstr ""
1145
+
1146
+ #: classes/class.swpm-settings.php:100 classes/class.swpm-settings.php:101
1147
+ #: classes/class.swpm-settings.php:102
1148
+ msgid "here"
1149
+ msgstr ""
1150
+
1151
+ #: classes/class.swpm-settings.php:101
1152
+ msgid "View login related debug log file by clicking "
1153
+ msgstr ""
1154
+
1155
+ #: classes/class.swpm-settings.php:102
1156
+ msgid "Reset debug log files by clicking "
1157
+ msgstr ""
1158
+
1159
+ #: classes/class.swpm-settings.php:103
1160
+ msgid "Enable Debug"
1161
+ msgstr ""
1162
+
1163
+ #: classes/class.swpm-settings.php:105
1164
+ msgid "Enable Sandbox Testing"
1165
+ msgstr ""
1166
+
1167
+ #: classes/class.swpm-settings.php:106
1168
+ msgid "Enable this option if you want to do sandbox payment testing."
1169
+ msgstr ""
1170
+
1171
+ #: classes/class.swpm-settings.php:119
1172
+ msgid "Email Settings Overview"
1173
+ msgstr "Pregled nastavitev e-pošte"
1174
+
1175
+ #: classes/class.swpm-settings.php:120
1176
+ msgid "Email Misc. Settings"
1177
+ msgstr ""
1178
+
1179
+ #: classes/class.swpm-settings.php:122
1180
+ msgid "From Email Address"
1181
+ msgstr "Iz e-poštnega naslova"
1182
+
1183
+ #: classes/class.swpm-settings.php:126
1184
+ msgid "Email Settings (Prompt to Complete Registration )"
1185
+ msgstr "Nastavitve e-pošte (Poziv k popolni registraciji)"
1186
+
1187
+ #: classes/class.swpm-settings.php:127 classes/class.swpm-settings.php:140
1188
+ #: classes/class.swpm-settings.php:158 classes/class.swpm-settings.php:163
1189
+ #: classes/class.swpm-settings.php:168 classes/class.swpm-settings.php:173
1190
+ msgid "Email Subject"
1191
+ msgstr "Zadeva e-pošte"
1192
+
1193
+ #: classes/class.swpm-settings.php:129 classes/class.swpm-settings.php:142
1194
+ #: classes/class.swpm-settings.php:159 classes/class.swpm-settings.php:164
1195
+ #: classes/class.swpm-settings.php:169 classes/class.swpm-settings.php:174
1196
+ msgid "Email Body"
1197
+ msgstr "Telo e-poštnega sporočila"
1198
+
1199
+ #: classes/class.swpm-settings.php:133
1200
+ msgid ""
1201
+ "Enter the email address where you want the admin notification email to be "
1202
+ "sent to."
1203
+ msgstr ""
1204
+ "Vnesite e-poštni naslov, kamor želite poslati e-poštno obvestilo "
1205
+ "administratorja."
1206
+
1207
+ #: classes/class.swpm-settings.php:134
1208
+ msgid ""
1209
+ " You can put multiple email addresses separated by comma (,) in the above "
1210
+ "field to send the notification to multiple email addresses."
1211
+ msgstr ""
1212
+ " V zgornje polje lahko vstavite več e-poštnih naslovov, ločenih z vejico "
1213
+ "(,), da pošljete obvestilo na več e-poštnih naslovov."
1214
+
1215
+ #: classes/class.swpm-settings.php:136
1216
+ msgid "Enter the subject for the admin notification email."
1217
+ msgstr "Vnesite zadevo za e-poštno obvestilo administratorju."
1218
+
1219
+ #: classes/class.swpm-settings.php:137
1220
+ msgid ""
1221
+ "This email will be sent to the admin when a new user completes the "
1222
+ "membership registration. Only works if you have enabled the \"Send "
1223
+ "Notification to Admin\" option above."
1224
+ msgstr ""
1225
+ "To e-poštno sporočilo bo poslano administratorju, ko novi uporabnik dokonča "
1226
+ "registracijo članstva. Deluje le, če ste zgoraj omogočili možnost »Pošlji "
1227
+ "obvestilo administratorju«."
1228
+
1229
+ #: classes/class.swpm-settings.php:139
1230
+ msgid "Email Settings (Registration Complete)"
1231
+ msgstr "Nastavitve e-pošte (končana registracija)"
1232
+
1233
+ #: classes/class.swpm-settings.php:144
1234
+ msgid "Send Notification to Admin"
1235
+ msgstr "Pošlji obvestilo administratorju"
1236
+
1237
+ #: classes/class.swpm-settings.php:145
1238
+ msgid ""
1239
+ "Enable this option if you want the admin to receive a notification when a "
1240
+ "member registers."
1241
+ msgstr ""
1242
+ "Omogočite to možnost, če želite, da administrator prejme obvestilo, ko se "
1243
+ "član registrira."
1244
+
1245
+ #: classes/class.swpm-settings.php:146
1246
+ msgid "Admin Email Address"
1247
+ msgstr "E-poštni naslov administratorja "
1248
+
1249
+ #: classes/class.swpm-settings.php:148
1250
+ msgid "Admin Notification Email Subject"
1251
+ msgstr "Zadeva e-poštnega obvestila administratorju"
1252
+
1253
+ #: classes/class.swpm-settings.php:150
1254
+ msgid "Admin Notification Email Body"
1255
+ msgstr "Telo e-poštnega obvestila administratorju"
1256
+
1257
+ #: classes/class.swpm-settings.php:153
1258
+ msgid "Send Email to Member When Added via Admin Dashboard"
1259
+ msgstr "Pošlji e-pošto članu, ko je ta dodan prek Wordpress nadzorne plošče"
1260
+
1261
+ #: classes/class.swpm-settings.php:157
1262
+ msgid "Email Settings (Password Reset)"
1263
+ msgstr "Nastavitve e-pošte (Ponastavitev gesla)"
1264
+
1265
+ #: classes/class.swpm-settings.php:162
1266
+ msgid " Email Settings (Account Upgrade Notification)"
1267
+ msgstr " Nastavitve e-pošte (obvestilo o nadgradnji računa)"
1268
+
1269
+ #: classes/class.swpm-settings.php:167
1270
+ msgid " Email Settings (Bulk Account Activate Notification)"
1271
+ msgstr ""
1272
+
1273
+ #: classes/class.swpm-settings.php:172
1274
+ msgid " Email Settings (Email Activation)"
1275
+ msgstr " Nastavitve e-pošte (Aktiviranje e-pošte)"
1276
+
1277
+ #: classes/class.swpm-settings.php:189
1278
+ msgid "Enable Expired Account Login"
1279
+ msgstr "Omogoči prijavo na račun po njegovem poteku"
1280
+
1281
+ #: classes/class.swpm-settings.php:190
1282
+ msgid ""
1283
+ "When enabled, expired members will be able to log into the system but won't "
1284
+ "be able to view any protected content. This allows them to easily renew "
1285
+ "their account by making another payment."
1286
+ msgstr ""
1287
+ "Če je to omogočeno, se bodo lahko člani, katerim je članstvo poteklo, "
1288
+ "prijavili v sistem, vendar si ne bodo mogli ogledati zaščitene vsebine. To "
1289
+ "jim omogoča enostavno podaljšanje računa z drugim plačilom."
1290
+
1291
+ #: classes/class.swpm-settings.php:192
1292
+ msgid "Membership Renewal URL"
1293
+ msgstr "URL obnovitve članstva"
1294
+
1295
+ #: classes/class.swpm-settings.php:193
1296
+ msgid ""
1297
+ "You can create a renewal page for your site. Read <a href=\"https://simple-"
1298
+ "membership-plugin.com/creating-membership-renewal-button/\" target=\"_blank"
1299
+ "\">this documentation</a> to learn how to create a renewal page."
1300
+ msgstr ""
1301
+ "Za svoje mesto lahko ustvarite stran za obnovitev. Preberite <a href="
1302
+ "\"https://simple-membership-plugin.com/creating-membership-renewal-button/\" "
1303
+ "target=\"_blank\">to dokumentacijo, če</a> želite izvedeti, kako ustvariti "
1304
+ "stran za obnovitev."
1305
+
1306
+ #: classes/class.swpm-settings.php:195
1307
+ msgid "After Registration Redirect URL"
1308
+ msgstr "Preusmeritveni URL po registraciji"
1309
+
1310
+ #: classes/class.swpm-settings.php:196
1311
+ msgid ""
1312
+ "You can enter an URL here to redirect the members to this page after they "
1313
+ "submit the registration form. Read <a href=\"https://simple-membership-"
1314
+ "plugin.com/configure-after-registration-redirect-for-members/\" target="
1315
+ "\"_blank\">this documentation</a> to learn how to setup after registration "
1316
+ "redirect."
1317
+ msgstr ""
1318
+ "Tukaj lahko vnesete URL, da preusmerite člane na to stran, potem ko pošljejo "
1319
+ "obrazec za registracijo. Preberite <a href=\"https://simple-membership-"
1320
+ "plugin.com/configure-after-registration-redirect-for-members/\" target="
1321
+ "\"_blank\">to dokumentacijo in</a> se naučite nastaviti preusmeritev po "
1322
+ "registraciji."
1323
+
1324
+ #: classes/class.swpm-settings.php:198
1325
+ msgid "Enable Auto Login After Registration"
1326
+ msgstr "Omogoči samodejno prijavo po registraciji"
1327
+
1328
+ #: classes/class.swpm-settings.php:199
1329
+ msgid ""
1330
+ "Use this option if you want the members to be automatically logged into your "
1331
+ "site right after they complete the registration. This option will override "
1332
+ "any after registration redirection and instead it will trigger the after "
1333
+ "login redirection. Read <a href=\"https://simple-membership-plugin.com/"
1334
+ "configure-auto-login-after-registration-members/\" target=\"_blank\">this "
1335
+ "documentation</a> to learn more."
1336
+ msgstr ""
1337
+ "Uporabite to možnost, če želite, da so člani samodejno prijavljeni na vaše "
1338
+ "mesto takoj po končani registraciji. Ta možnost bo preklicala vse "
1339
+ "preusmeritve po registraciji in namesto tega sprožila preusmeritev po "
1340
+ "prijavi. Preberite <a href=\"https://simple-membership-plugin.com/configure-"
1341
+ "auto-login-after-registration-members/\" target=\"_blank\">to dokumentacijo, "
1342
+ "če</a> želite izvedeti več."
1343
+
1344
+ #: classes/class.swpm-settings.php:201
1345
+ msgid "After Logout Redirect URL"
1346
+ msgstr "Preusmeritveni URL po odjavi"
1347
+
1348
+ #: classes/class.swpm-settings.php:202
1349
+ msgid ""
1350
+ "You can enter an URL here to redirect the members to this page after they "
1351
+ "click the logout link to logout from your site."
1352
+ msgstr ""
1353
+ "Tukaj lahko vnesete URL, da preusmerite člane na to stran, potem ko kliknejo "
1354
+ "povezavo za odjavo s spletnega mesta."
1355
+
1356
+ #: classes/class.swpm-settings.php:204
1357
+ msgid "Logout Member on Browser Close"
1358
+ msgstr "Odjava člana po zaprtju brskalnika"
1359
+
1360
+ #: classes/class.swpm-settings.php:205
1361
+ msgid ""
1362
+ "Enable this option if you want the member to be logged out of the account "
1363
+ "when he closes the browser."
1364
+ msgstr ""
1365
+ "Omogočite to možnost, če želite, da je član odjavljen iz računa, ko zapre "
1366
+ "brskalnik."
1367
+
1368
+ #: classes/class.swpm-settings.php:207
1369
+ msgid "Allow Account Deletion"
1370
+ msgstr "Dovoli brisanje računa"
1371
+
1372
+ #: classes/class.swpm-settings.php:208
1373
+ msgid "Allow users to delete their accounts."
1374
+ msgstr "Uporabnikom dovolite, da izbrišejo svoje račune."
1375
+
1376
+ #: classes/class.swpm-settings.php:210
1377
+ msgid "Force Strong Password for Members"
1378
+ msgstr "Sili močno geslo za člane"
1379
+
1380
+ #: classes/class.swpm-settings.php:211
1381
+ msgid ""
1382
+ "Enable this if you want the users to be forced to use a strong password for "
1383
+ "their accounts."
1384
+ msgstr ""
1385
+ "Omogočite to, če želite, da so uporabniki prisiljeni uporabiti močno geslo "
1386
+ "za svoje račune."
1387
+
1388
+ #: classes/class.swpm-settings.php:213
1389
+ msgid "Use WordPress Timezone"
1390
+ msgstr "Uporaba Wordpress časovnega pasu"
1391
+
1392
+ #: classes/class.swpm-settings.php:214
1393
+ msgid ""
1394
+ "Use this option if you want to use the timezone value specified in your "
1395
+ "WordPress General Settings interface."
1396
+ msgstr ""
1397
+ "Uporabite to možnost, če želite uporabiti vrednost časovnega pasu, ki je "
1398
+ "določena v vmesniku za splošne nastavitve WordPress."
1399
+
1400
+ #: classes/class.swpm-settings.php:216
1401
+ msgid "Auto Delete Pending Account"
1402
+ msgstr "Samodejni izbris računov na čakanju"
1403
+
1404
+ #: classes/class.swpm-settings.php:219
1405
+ msgid "Select how long you want to keep \"pending\" account."
1406
+ msgstr "Izberite, koliko časa želite ohraniti račun »na čakanju«."
1407
+
1408
+ #: classes/class.swpm-settings.php:221
1409
+ msgid "Admin Dashboard Access Permission"
1410
+ msgstr "Dovoljenje za dostop do nadzorne plošče administratorja"
1411
+
1412
+ #: classes/class.swpm-settings.php:224
1413
+ msgid ""
1414
+ "SWPM admin dashboard is accessible to admin users only (just like any other "
1415
+ "plugin). You can allow users with other WP user role to access the SWPM "
1416
+ "admin dashboard by selecting a value here. Note that this option cannot work "
1417
+ "if you enabled the \"Disable Access to WP Dashboard\" option in General "
1418
+ "Settings."
1419
+ msgstr ""
1420
+
1421
+ #: classes/class.swpm-settings.php:226
1422
+ msgid "Force WP User Synchronization"
1423
+ msgstr "Sili Wordpress sinhronizacijo uporabnikov"
1424
+
1425
+ #: classes/class.swpm-settings.php:227
1426
+ msgid ""
1427
+ "Enable this option if you want to force the member login to be synchronized "
1428
+ "with WP user account. This can be useful if you are using another plugin "
1429
+ "that uses WP user records. For example: bbPress plugin."
1430
+ msgstr ""
1431
+ "Omogočite to možnost, če želite prisiliti, da se prijava člana sinhronizira "
1432
+ "z Wordpress uporabniškim računom. To je lahko koristno, če uporabljate drug "
1433
+ "vtičnik, ki uporablja WP uporabniške zapise. Na primer: bbPress plugin."
1434
+
1435
+ #: classes/class.swpm-settings.php:230
1436
+ msgid "Create Member Accounts for New WP Users"
1437
+ msgstr ""
1438
+
1439
+ #: classes/class.swpm-settings.php:232
1440
+ msgid "Enable Auto Create Member Accounts"
1441
+ msgstr ""
1442
+
1443
+ #: classes/class.swpm-settings.php:233
1444
+ msgid ""
1445
+ "Enable this option to automatically create member accounts for any new WP "
1446
+ "user that is created by another plugin."
1447
+ msgstr ""
1448
+
1449
+ #: classes/class.swpm-settings.php:236
1450
+ msgid "Default Membership Level"
1451
+ msgstr "Privzeta raven članstva"
1452
+
1453
+ #: classes/class.swpm-settings.php:239
1454
+ msgid ""
1455
+ "When automatically creating a member account using this feature, the "
1456
+ "membership level of the user will be set to the one you specify here."
1457
+ msgstr ""
1458
+ "Ko samodejno ustvarite račun člana s to funkcijo, bo raven članstva "
1459
+ "uporabnika nastavljena na raven, ki jo določite tukaj."
1460
+
1461
+ #: classes/class.swpm-settings.php:245
1462
+ msgid ""
1463
+ "When automatically creating a member account using this feature, the "
1464
+ "membership account status of the user will be set to the one you specify "
1465
+ "here."
1466
+ msgstr ""
1467
+ "Ko samodejno ustvarite račun člana s to funkcijo, bo stanje računa članstva "
1468
+ "uporabnika nastavljeno na stanje, ki ga določite tukaj."
1469
+
1470
+ #: classes/class.swpm-settings.php:247
1471
+ msgid "Payment Notification Forward URL"
1472
+ msgstr "URL za posredovanje obvestila o plačilu"
1473
+
1474
+ #: classes/class.swpm-settings.php:248
1475
+ msgid ""
1476
+ "You can enter an URL here to forward the payment notification after the "
1477
+ "membership payment has been processed by this plugin. Useful if you want to "
1478
+ "forward the payment notification to an external script for further "
1479
+ "processing."
1480
+ msgstr ""
1481
+ "Tukaj lahko vnesete URL, da pošljete obvestilo o plačilu po tem, ko je ta "
1482
+ "vtičnik obdeloval plačilo članstva. Koristno, če želite obvestilo o plačilu "
1483
+ "posredovati zunanji skripti za nadaljnjo obdelavo."
1484
+
1485
+ #: classes/class.swpm-settings.php:251 views/add.php:65
1486
+ msgid "Terms and Conditions"
1487
+ msgstr "Določila in pogoji poslovanja"
1488
+
1489
+ #: classes/class.swpm-settings.php:253
1490
+ msgid "Enable Terms and Conditions"
1491
+ msgstr "Omogoči pogoje in določila"
1492
+
1493
+ #: classes/class.swpm-settings.php:254
1494
+ msgid "Users must accept the terms before they can complete the registration."
1495
+ msgstr ""
1496
+ "Uporabniki morajo sprejeti pogoje, preden lahko dokončajo registracijo."
1497
+
1498
+ #: classes/class.swpm-settings.php:255
1499
+ msgid "Terms and Conditions Page URL"
1500
+ msgstr "URL strani s pogoji in določili"
1501
+
1502
+ #: classes/class.swpm-settings.php:256
1503
+ msgid ""
1504
+ "Enter the URL of your terms and conditions page. You can create a WordPress "
1505
+ "page and specify your terms in there then specify the URL of that page in "
1506
+ "the above field."
1507
+ msgstr ""
1508
+ "Vnesite URL strani s pogoji poslovanja. Lahko ustvarite WordPress stran in "
1509
+ "določite svoje pogoje tam nato določite URL te strani v zgornjem polju."
1510
+
1511
+ #: classes/class.swpm-settings.php:257
1512
+ msgid "Enable Privacy Policy"
1513
+ msgstr "Omogoči pravilnik zasebnosti"
1514
+
1515
+ #: classes/class.swpm-settings.php:258
1516
+ msgid "Users must accept it before they can complete the registration."
1517
+ msgstr "Uporabniki ga morajo sprejeti, preden lahko dokončajo registracijo."
1518
+
1519
+ #: classes/class.swpm-settings.php:259
1520
+ msgid "Privacy Policy Page URL"
1521
+ msgstr "URL strani s pravilnikom o zasebnosti"
1522
+
1523
+ #: classes/class.swpm-settings.php:260
1524
+ msgid "Enter the URL of your privacy policy page."
1525
+ msgstr "Vnesite URL strani pravilnika o zasebnosti."
1526
+
1527
+ #: classes/class.swpm-settings.php:350 classes/class.swpm-settings.php:396
1528
+ #: classes/class.swpm-settings.php:425
1529
+ msgid "Settings updated!"
1530
+ msgstr "Nastavitve posodobljene!"
1531
+
1532
+ #: classes/class.swpm-settings.php:355
1533
+ msgid "General Plugin Settings."
1534
+ msgstr "Splošne nastavitve vtičnika."
1535
+
1536
+ #: classes/class.swpm-settings.php:359
1537
+ msgid "Page Setup and URL Related settings."
1538
+ msgstr "Nastavitve strani in nastavitve povezane z URL-ji."
1539
+
1540
+ #: classes/class.swpm-settings.php:362
1541
+ msgid ""
1542
+ "The following pages are required for the plugin to function correctly. These "
1543
+ "pages were automatically created by the plugin at install time."
1544
+ msgstr ""
1545
+ "Za pravilno delovanje vtičnika so potrebne naslednje strani. Te strani je "
1546
+ "vtičnik samodejno ustvaril ob namestitvi."
1547
+
1548
+ #: classes/class.swpm-settings.php:367
1549
+ msgid "Testing and Debug Related Settings."
1550
+ msgstr ""
1551
+
1552
+ #: classes/class.swpm-settings.php:371
1553
+ msgid ""
1554
+ "This email will be sent to your users when they complete the registration "
1555
+ "and become a member."
1556
+ msgstr ""
1557
+ "To e-poštno sporočilo bo poslano uporabnikom, ko dokončajo registracijo in "
1558
+ "postanejo član."
1559
+
1560
+ #: classes/class.swpm-settings.php:375
1561
+ msgid ""
1562
+ "This email will be sent to your users when they use the password reset "
1563
+ "functionality."
1564
+ msgstr ""
1565
+ "To e-poštno sporočilo bo poslano uporabnikom, ko bodo uporabljali funkcijo "
1566
+ "ponastavitve gesla."
1567
+
1568
+ #: classes/class.swpm-settings.php:381
1569
+ msgid ""
1570
+ "This interface lets you custsomize the various emails that gets sent to your "
1571
+ "members for various actions. The default settings should be good to get your "
1572
+ "started."
1573
+ msgstr ""
1574
+ "Ta vmesnik vam omogoča, da prilagodite e-poštna sporočila, ki se pošljejo "
1575
+ "članom za različna dejanja. Privzete nastavitve so dovolj dobre za začetek."
1576
+
1577
+ #: classes/class.swpm-settings.php:385 views/admin_tools_settings.php:82
1578
+ msgid "This documentation"
1579
+ msgstr "Ta dokumentacija"
1580
+
1581
+ #: classes/class.swpm-settings.php:386
1582
+ msgid ""
1583
+ " explains what email merge tags you can use in the email body field to "
1584
+ "customize it (if you want to)."
1585
+ msgstr ""
1586
+ " pojasnjuje, katere oznake spajanja e-pošte lahko uporabite v telesu e-"
1587
+ "pošte, da jo prilagodite (če želite)."
1588
+
1589
+ #: classes/class.swpm-settings.php:399
1590
+ msgid "Settings in this section apply to all emails."
1591
+ msgstr "Nastavitve v tem razdelku veljajo za vsa e-poštna sporočila."
1592
+
1593
+ #: classes/class.swpm-settings.php:403
1594
+ msgid ""
1595
+ "This email will be sent to your users after account upgrade (when an "
1596
+ "existing member pays for a new membership level)."
1597
+ msgstr ""
1598
+ "To e-poštno sporočilo bo poslano uporabnikom po nadgradnji računa (ko "
1599
+ "obstoječi član plača novo raven članstva)."
1600
+
1601
+ #: classes/class.swpm-settings.php:407
1602
+ msgid ""
1603
+ "This email will be sent to your members when you use the bulk account "
1604
+ "activate and notify action."
1605
+ msgstr ""
1606
+ "To e-poštno sporočilo bo poslano članom, ko uporabite množično aktiviranje "
1607
+ "in se odločite za obveščanje članov o dejanju množičnega računa."
1608
+
1609
+ #: classes/class.swpm-settings.php:408
1610
+ msgid ""
1611
+ " You cannot use email merge tags in this email. You can only use generic "
1612
+ "text."
1613
+ msgstr ""
1614
+ " V tem e-poštnem sporočilu ne morete uporabljati oznak za spajanje e-pošte. "
1615
+ "Uporabljate lahko le generično besedilo."
1616
+
1617
+ #: classes/class.swpm-settings.php:413
1618
+ msgid ""
1619
+ "This email will be sent if Email Activation is enabled for a Membership "
1620
+ "Level."
1621
+ msgstr ""
1622
+ "To e-poštno sporočilo bo poslano, če je aktiviranje e-pošte omogočeno za "
1623
+ "raven članstva."
1624
+
1625
+ #: classes/class.swpm-settings.php:417
1626
+ msgid ""
1627
+ "This email will be sent to prompt users to complete registration after the "
1628
+ "payment."
1629
+ msgstr ""
1630
+ "To e-poštno sporočilo bo poslano uporabnikom, naj po plačilu dokončajo "
1631
+ "registracijo."
1632
+
1633
+ #: classes/class.swpm-settings.php:428
1634
+ msgid "This page allows you to configure some advanced features of the plugin."
1635
+ msgstr ""
1636
+
1637
+ #: classes/class.swpm-settings.php:432
1638
+ msgid ""
1639
+ "This section allows you to configure automatic creation of member accounts "
1640
+ "when new WP User records are created by another plugin. It can be useful if "
1641
+ "you are using another plugin that creates WP user records and you want them "
1642
+ "to be recognized in the membership plugin."
1643
+ msgstr ""
1644
+
1645
+ #: classes/class.swpm-settings.php:436
1646
+ msgid ""
1647
+ "This section allows you to configure terms and conditions and privacy policy "
1648
+ "that users must accept at registration time."
1649
+ msgstr ""
1650
+
1651
+ #: classes/class.swpm-settings.php:565
1652
+ msgid "Simple WP Membership::Settings"
1653
+ msgstr "Simple WP Membership::Nastavitve"
1654
+
1655
+ #: classes/class.swpm-utils-member.php:36
1656
+ #: classes/class.swpm-utils-member.php:44
1657
+ #: classes/class.swpm-utils-member.php:52
1658
+ #: classes/class.swpm-utils-member.php:62
1659
+ msgid "User is not logged in."
1660
+ msgstr "Uporabnik ni prijavljen."
1661
+
1662
+ #: classes/class.swpm-utils-member.php:80
1663
+ msgid "No Expiry"
1664
+ msgstr "Brez datuma poteka"
1665
+
1666
+ #: classes/class.swpm-utils-misc.php:50
1667
+ msgid "Registration"
1668
+ msgstr "Registracija"
1669
+
1670
+ #: classes/class.swpm-utils-misc.php:73
1671
+ msgid "Member Login"
1672
+ msgstr "Prijava za člane"
1673
+
1674
+ #: classes/class.swpm-utils-misc.php:96
1675
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:117
1676
+ msgid "Profile"
1677
+ msgstr "Profil"
1678
+
1679
+ #: classes/class.swpm-utils-misc.php:119
1680
+ msgid "Password Reset"
1681
+ msgstr "Ponastavitev gesla"
1682
+
1683
+ #: classes/class.swpm-utils-misc.php:168
1684
+ #, php-format
1685
+ msgid ""
1686
+ "You will be automatically redirected in a few seconds. If not, please %s."
1687
+ msgstr "V nekaj sekundah boste samodejno preusmerjeni. Če ne, prosim %s."
1688
+
1689
+ #: classes/class.swpm-utils-misc.php:172
1690
+ msgid "Action Status"
1691
+ msgstr "Stanje dejanja"
1692
+
1693
+ #: classes/class.swpm-utils-misc.php:274
1694
+ msgid "Not a Member?"
1695
+ msgstr "Niste član?"
1696
+
1697
+ #: classes/class.swpm-utils-misc.php:285
1698
+ msgid "renew"
1699
+ msgstr "obnovi"
1700
+
1701
+ #: classes/class.swpm-utils-misc.php:285
1702
+ msgid " your account to gain access to this content."
1703
+ msgstr " svoj račun za dostop do te vsebine."
1704
+
1705
+ #: classes/class.swpm-utils-misc.php:343 classes/class.swpm-utils-misc.php:349
1706
+ msgid "Error! This action ("
1707
+ msgstr ""
1708
+
1709
+ #: classes/class.swpm-utils-misc.php:421
1710
+ msgid "(Please Select)"
1711
+ msgstr "(Izberite prosim)"
1712
+
1713
+ #: classes/class.swpm-utils-template.php:38
1714
+ msgid "Error! Failed to find a template path for the specified template: "
1715
+ msgstr ""
1716
+
1717
+ #: classes/class.swpm-utils.php:101
1718
+ msgid "Never"
1719
+ msgstr "Nikoli"
1720
+
1721
+ #: classes/class.swpm-utils.php:116 views/admin_members_list.php:19
1722
+ msgid "Active"
1723
+ msgstr "Aktivno"
1724
+
1725
+ #: classes/class.swpm-utils.php:117 views/admin_members_list.php:20
1726
+ msgid "Inactive"
1727
+ msgstr "Neaktiven"
1728
+
1729
+ #: classes/class.swpm-utils.php:118 views/admin_members_list.php:21
1730
+ msgid "Activation Required"
1731
+ msgstr "Potrebna je aktivacija"
1732
+
1733
+ #: classes/class.swpm-utils.php:119
1734
+ msgid "Male"
1735
+ msgstr "Moški"
1736
+
1737
+ #: classes/class.swpm-utils.php:120
1738
+ msgid "Female"
1739
+ msgstr "Ženska"
1740
+
1741
+ #: classes/class.swpm-utils.php:121
1742
+ msgid "Not Specified"
1743
+ msgstr "Ni določeno"
1744
+
1745
+ #: classes/class.swpm-utils.php:119 views/admin_members_list.php:22
1746
+ msgid "Pending"
1747
+ msgstr "Na čakanju"
1748
+
1749
+ #: classes/class.swpm-utils.php:120 views/admin_members_list.php:24
1750
+ msgid "Expired"
1751
+ msgstr "Poteklo"
1752
+
1753
+ #: classes/class.swpm-utils.php:414 views/account_delete_warning.php:3
1754
+ msgid "Delete Account"
1755
+ msgstr "Izbriši račun"
1756
+
1757
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:75
1758
+ msgid "Payment Button ID"
1759
+ msgstr ""
1760
+
1761
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:76
1762
+ msgid "Payment Button Title"
1763
+ msgstr "Naslov plačilnega gumba"
1764
+
1765
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:77
1766
+ msgid "Membership Level ID"
1767
+ msgstr ""
1768
+
1769
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:78
1770
+ msgid "Button Type"
1771
+ msgstr "Vrsta Gumba"
1772
+
1773
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:79
1774
+ msgid "Button Shortcode"
1775
+ msgstr ""
1776
+
1777
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:127
1778
+ #: views/admin_members_list.php:9
1779
+ #: views/payments/admin_all_payment_transactions.php:32
1780
+ msgid "The selected entry was deleted!"
1781
+ msgstr "Izbrani vnos je bil izbrisan!"
1782
+
1783
+ #: classes/admin-includes/class.swpm-payments-admin-menu.php:21
1784
+ msgid "Simple Membership::Payments"
1785
+ msgstr "Simple Membership::Plačila"
1786
+
1787
+ #: classes/admin-includes/class.swpm-payments-admin-menu.php:25
1788
+ msgid "Transactions"
1789
+ msgstr "Transakcije"
1790
+
1791
+ #: classes/admin-includes/class.swpm-payments-admin-menu.php:26
1792
+ msgid "Manage Payment Buttons"
1793
+ msgstr "Upravljanje plačilnih gumbov"
1794
+
1795
+ #: classes/admin-includes/class.swpm-payments-admin-menu.php:27
1796
+ #: views/payments/admin_payment_buttons.php:27
1797
+ msgid "Create New Button"
1798
+ msgstr "Ustvari nov gumb"
1799
+
1800
+ #: classes/admin-includes/class.swpm-payments-list-table.php:57
1801
+ #: views/template-1.php:95 views/template-2.php:97
1802
+ msgid "View Profile"
1803
+ msgstr "Poglej profil"
1804
+
1805
+ #: classes/admin-includes/class.swpm-payments-list-table.php:76
1806
+ msgid "Row ID"
1807
+ msgstr ""
1808
+
1809
+ #: classes/admin-includes/class.swpm-payments-list-table.php:77
1810
+ #: views/forgot_password.php:5
1811
+ msgid "Email Address"
1812
+ msgstr "E-poštni naslov"
1813
+
1814
+ #: classes/admin-includes/class.swpm-payments-list-table.php:80
1815
+ msgid "Member Profile"
1816
+ msgstr "Profil člana"
1817
+
1818
+ #: classes/admin-includes/class.swpm-payments-list-table.php:82
1819
+ msgid "Transaction ID"
1820
+ msgstr "ID transakcije"
1821
+
1822
+ #: classes/admin-includes/class.swpm-payments-list-table.php:83
1823
+ msgid "Subscriber ID"
1824
+ msgstr "ID člana"
1825
+
1826
+ #: classes/admin-includes/class.swpm-payments-list-table.php:84
1827
+ msgid "Amount"
1828
+ msgstr "Znesek"
1829
+
1830
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:60
1831
+ msgid "Your membership profile will be updated to reflect the payment."
1832
+ msgstr "Vaš profil članstva bo posodobljen tako, da odraža plačilo."
1833
+
1834
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:61
1835
+ msgid "Your profile username: "
1836
+ msgstr "Uporabniško ime vašega profila: "
1837
+
1838
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:73
1839
+ msgid "Click on the following link to complete the registration."
1840
+ msgstr "Kliknite na naslednjo povezavo, da dokončate registracijo."
1841
+
1842
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:74
1843
+ msgid "Click here to complete your paid registration"
1844
+ msgstr "Kliknite tukaj, da dokončate plačljive registracije"
1845
+
1846
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:79
1847
+ msgid ""
1848
+ "If you have just made a membership payment then your payment is yet to be "
1849
+ "processed. Please check back in a few minutes. An email will be sent to you "
1850
+ "with the details shortly."
1851
+ msgstr ""
1852
+ "Če ste pravkar opravili plačilo za članstvo, je vaše plačilo v obdelavi. "
1853
+ "Prosim, preverite še enkrat v nekaj minutah. V kratkem vam bo poslano tudi e-"
1854
+ "poštno sporočilo s podrobnostmi."
1855
+
1856
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:93
1857
+ msgid "Expiry: "
1858
+ msgstr "Iztek: "
1859
+
1860
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:95
1861
+ msgid "You are not logged-in as a member"
1862
+ msgstr "Niste prijavljeni kot član"
1863
+
1864
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:115
1865
+ msgid "Logged in as: "
1866
+ msgstr "Prijavljen kot: "
1867
+
1868
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:118
1869
+ #: views/loggedin.php:31
1870
+ msgid "Logout"
1871
+ msgstr "Odjava"
1872
+
1873
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:121
1874
+ msgid "Login Here"
1875
+ msgstr "Prijavi se"
1876
+
1877
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:122
1878
+ msgid "Not a member? "
1879
+ msgstr "Niste član? "
1880
+
1881
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:123
1882
+ msgid "Join Now"
1883
+ msgstr "Včlanite se zdaj"
1884
+
1885
+ #: ipn/swpm-smart-checkout-ipn.php:260 ipn/swpm-smart-checkout-ipn.php:285
1886
+ #, php-format
1887
+ msgid "Error occured during payment verification. Error code: %d. Message: %s"
1888
+ msgstr ""
1889
+ "Med preverjanjem plačila je prišlo do napake. Koda napake: %d. Sporočilo: %s"
1890
+
1891
+ #: ipn/swpm-smart-checkout-ipn.php:298
1892
+ #, php-format
1893
+ msgid ""
1894
+ "Payment check failed: invalid amount received. Expected %s %s, got %s %s."
1895
+ msgstr ""
1896
+ "Preverjanje plačila ni uspelo: prejeti neveljaven znesek. Pričakovano %s %s, "
1897
+ "dobil %s %s."
1898
+
1899
+ #: ipn/swpm-smart-checkout-ipn.php:315
1900
+ msgid "Empty payment data received."
1901
+ msgstr "Prejeti prazni podatki o plačilu."
1902
+
1903
+ #: ipn/swpm-smart-checkout-ipn.php:355
1904
+ msgid "IPN product validation failed. Check debug log for more details."
1905
+ msgstr ""
1906
+
1907
+ #: views/account_delete_warning.php:7
1908
+ msgid ""
1909
+ "You are about to delete an account. This will delete user data associated "
1910
+ "with this account. "
1911
+ msgstr ""
1912
+ "Račun boste izbrisali. S tem boste izbrisali uporabniške podatke, povezane s "
1913
+ "tem računom. "
1914
+
1915
+ #: views/account_delete_warning.php:8
1916
+ msgid "It will also delete associated WordPress user account."
1917
+ msgstr "Prav tako se bo izbrisal pridruženi WordPress uporabniški račun."
1918
+
1919
+ #: views/account_delete_warning.php:9
1920
+ msgid ""
1921
+ "(NOTE: for safety, we do not allow deletion of any associated WordPress "
1922
+ "account with administrator role)."
1923
+ msgstr ""
1924
+ "(OPOMBA: za varnost ne dovolimo izbrisa katerega koli povezanega WordPress "
1925
+ "računa z administratorsko vlogo)."
1926
+
1927
+ #: views/account_delete_warning.php:10
1928
+ msgid "Continue?"
1929
+ msgstr "Nadaljuj?"
1930
+
1931
+ #: views/account_delete_warning.php:13
1932
+ msgid "Password: "
1933
+ msgstr "Geslo: "
1934
+
1935
+ #: views/account_delete_warning.php:14
1936
+ msgid "Confirm Account Deletion"
1937
+ msgstr "Potrditev brisanja računa"
1938
+
1939
+ #: views/add.php:24 views/admin_add.php:19 views/admin_edit.php:44
1940
+ #: views/edit.php:31 views/login.php:17
1941
+ msgid "Password"
1942
+ msgstr "Geslo"
1943
+
1944
+ #: views/add.php:28 views/edit.php:35
1945
+ msgid "Repeat Password"
1946
+ msgstr "Ponovitev gesla"
1947
+
1948
+ #: views/add.php:65
1949
+ msgid "I accept the "
1950
+ msgstr "Sprejemam "
1951
+
1952
+ #: views/add.php:77
1953
+ msgid "I agree to the "
1954
+ msgstr "Strinjam se z "
1955
+
1956
+ #: views/add.php:77
1957
+ msgid "Privacy Policy"
1958
+ msgstr "Pravilnik o zasebnosti"
1959
+
1960
+ #: views/add.php:88
1961
+ msgid "Register"
1962
+ msgstr "Registracija"
1963
+
1964
+ #: views/admin_add.php:7
1965
+ msgid "Create a brand new user and add it to this site."
1966
+ msgstr "Ustvarite novega uporabnika in ga dodajte na to spletno stran."
1967
+
1968
+ #: views/admin_add.php:11 views/admin_add.php:15 views/admin_add_level.php:12
1969
+ #: views/admin_add_level.php:16 views/admin_add_level.php:20
1970
+ #: views/admin_edit.php:19 views/admin_edit.php:40
1971
+ #: views/admin_edit_level.php:16 views/admin_edit_level.php:20
1972
+ #: views/admin_edit_level.php:24
1973
+ msgid "(required)"
1974
+ msgstr "(zahtevano)"
1975
+
1976
+ #: views/admin_add.php:15 views/admin_edit.php:40
1977
+ msgid "E-mail"
1978
+ msgstr "E-pošta"
1979
+
1980
+ #: views/admin_add.php:19
1981
+ msgid "(twice, required)"
1982
+ msgstr "(dvakrat, zahtevano)"
1983
+
1984
+ #: views/admin_add.php:24 views/admin_edit.php:48
1985
+ msgid "Strength indicator"
1986
+ msgstr "Indikator kakovosti gesla"
1987
+
1988
+ #: views/admin_add.php:25 views/admin_edit.php:49
1989
+ msgid ""
1990
+ "Hint: The password should be at least seven characters long. To make it "
1991
+ "stronger, use upper and lower case letters, numbers and symbols like ! \" ? "
1992
+ "$ % ^ &amp; )."
1993
+ msgstr ""
1994
+ "Namig: Geslo mora biti dolgo vsaj sedem znakov. Da bo močnejši, uporabite "
1995
+ "zgornje in spodnje črke, številke in simbole, kot so ! \" ? $ % ^ &amp; )."
1996
+
1997
+ #: views/admin_add.php:29 views/admin_edit.php:53 views/loggedin.php:10
1998
+ msgid "Account Status"
1999
+ msgstr "Status računa"
2000
+
2001
+ #: views/admin_add.php:39
2002
+ msgid "Add New Member "
2003
+ msgstr "Dodaj novega člana "
2004
+
2005
+ #: views/admin_addon_settings.php:3
2006
+ msgid ""
2007
+ "Some of the simple membership plugin's addon settings and options will be "
2008
+ "displayed here (if you have them)"
2009
+ msgstr ""
2010
+
2011
+ #: views/admin_addon_settings.php:8
2012
+ msgid "Save Changes"
2013
+ msgstr "Shrani spremembe"
2014
+
2015
+ #: views/admin_add_level.php:6
2016
+ msgid "Add Membership Level"
2017
+ msgstr "Dodaj raven članstva"
2018
+
2019
+ #: views/admin_add_level.php:7
2020
+ msgid "Create new membership level."
2021
+ msgstr "Ustvarite novo raven članstva."
2022
+
2023
+ #: views/admin_add_level.php:12 views/admin_edit_level.php:16
2024
+ msgid "Membership Level Name"
2025
+ msgstr "Ime ravni članstva"
2026
+
2027
+ #: views/admin_add_level.php:16 views/admin_edit_level.php:20
2028
+ msgid "Default WordPress Role"
2029
+ msgstr "Privzeta Wordpress vloga"
2030
+
2031
+ #: views/admin_add_level.php:20 views/admin_edit_level.php:24
2032
+ msgid "Access Duration"
2033
+ msgstr "Trajanje dostopa"
2034
+
2035
+ #: views/admin_add_level.php:23
2036
+ msgid "No Expiry (Access for this level will not expire until cancelled"
2037
+ msgstr ""
2038
+ "Brez izteka veljavnosti (Dostop za to raven ne bo potekel, dokler ni "
2039
+ "preklican"
2040
+
2041
+ #: views/admin_add_level.php:24 views/admin_add_level.php:26
2042
+ #: views/admin_add_level.php:28 views/admin_add_level.php:30
2043
+ #: views/admin_edit_level.php:28 views/admin_edit_level.php:31
2044
+ #: views/admin_edit_level.php:34 views/admin_edit_level.php:37
2045
+ msgid "Expire After"
2046
+ msgstr "Poteče po"
2047
+
2048
+ #: views/admin_add_level.php:25 views/admin_edit_level.php:29
2049
+ msgid "Days (Access expires after given number of days)"
2050
+ msgstr "Dnevi (Dostop poteče po danem številu dni)"
2051
+
2052
+ #: views/admin_add_level.php:27
2053
+ msgid "Weeks (Access expires after given number of weeks"
2054
+ msgstr "Tedni (Dostop poteče po danem številu tednov"
2055
+
2056
+ #: views/admin_add_level.php:29 views/admin_edit_level.php:35
2057
+ msgid "Months (Access expires after given number of months)"
2058
+ msgstr "Meseci (Dostop poteče po danem številu mesecev)"
2059
+
2060
+ #: views/admin_add_level.php:31 views/admin_edit_level.php:38
2061
+ msgid "Years (Access expires after given number of years)"
2062
+ msgstr "Leta (Dostop poteče po danem številu let)"
2063
+
2064
+ #: views/admin_add_level.php:32 views/admin_edit_level.php:40
2065
+ msgid "Fixed Date Expiry"
2066
+ msgstr "Končen datum dostopa"
2067
+
2068
+ #: views/admin_add_level.php:33 views/admin_edit_level.php:41
2069
+ msgid "(Access expires on a fixed date)"
2070
+ msgstr "(Dostop poteče na določen datum)"
2071
+
2072
+ #: views/admin_add_level.php:38 views/admin_edit_level.php:46
2073
+ msgid "Email Activation"
2074
+ msgstr "Aktiviranje e-pošte"
2075
+
2076
+ #: views/admin_add_level.php:43
2077
+ msgid ""
2078
+ "Enable new user activation via email. When enabled, members will need to "
2079
+ "click on an activation link that is sent to their email address to activate "
2080
+ "the account. Useful for free membership. "
2081
+ msgstr ""
2082
+ "Omogočite aktiviranje novega uporabnika preko e-pošte. Če je omogočeno, bodo "
2083
+ "člani morali klikniti na aktivacijsko povezavo, ki bo poslana na njihov e-"
2084
+ "poštni naslov za aktiviranje računa. Uporabno za brezplačno članstvo. "
2085
+
2086
+ #: views/admin_add_level.php:44 views/admin_edit_level.php:52
2087
+ msgid "View Documentation"
2088
+ msgstr "Ogled dokumentacije"
2089
+
2090
+ #: views/admin_add_level.php:45 views/admin_edit_level.php:53
2091
+ msgid "Note:"
2092
+ msgstr "Opomba:"
2093
+
2094
+ #: views/admin_add_level.php:45 views/admin_edit_level.php:53
2095
+ msgid ""
2096
+ "If enabled, decryptable member password is temporarily stored in the "
2097
+ "database until the account is activated."
2098
+ msgstr ""
2099
+ "Če je omogočeno, je dešifrirano geslo člana začasno shranjeno v zbirki "
2100
+ "podatkov, dokler se račun ne aktivira."
2101
+
2102
+ #: views/admin_add_level.php:52
2103
+ msgid "Add New Membership Level "
2104
+ msgstr "Dodaj novo raven članstva "
2105
+
2106
+ #: views/admin_add_ons_page.php:7
2107
+ msgid "Simple WP Membership::Add-ons"
2108
+ msgstr ""
2109
+
2110
+ #: views/admin_category_list.php:5
2111
+ msgid ""
2112
+ "First of all, globally protect the category on your site by selecting "
2113
+ "\"General Protection\" from the drop-down box below and then select the "
2114
+ "categories that should be protected from non-logged in users."
2115
+ msgstr ""
2116
+
2117
+ #: views/admin_category_list.php:8
2118
+ msgid ""
2119
+ "Next, select an existing membership level from the drop-down box below and "
2120
+ "then select the categories you want to grant access to (for that particular "
2121
+ "membership level)."
2122
+ msgstr ""
2123
+
2124
+ #: views/admin_category_list.php:11 views/admin_post_list.php:11
2125
+ msgid "Read the "
2126
+ msgstr "Preberite "
2127
+
2128
+ #: views/admin_category_list.php:11
2129
+ msgid "category protection documentation"
2130
+ msgstr "dokumentacija o varstvu kategorije"
2131
+
2132
+ #: views/admin_category_list.php:17 views/admin_post_list.php:27
2133
+ msgid "Membership Level:"
2134
+ msgstr "Raven članstva:"
2135
+
2136
+ #: views/admin_category_list.php:19 views/admin_post_list.php:29
2137
+ msgid "General Protection"
2138
+ msgstr "Splošna zaščita"
2139
+
2140
+ #: views/admin_category_list.php:23 views/admin_post_list.php:33
2141
+ #: views/edit.php:83
2142
+ msgid "Update"
2143
+ msgstr "Posodobi"
2144
+
2145
+ #: views/admin_edit.php:11
2146
+ msgid "Edit Member"
2147
+ msgstr "Uredi člana"
2148
+
2149
+ #: views/admin_edit.php:13
2150
+ msgid "Edit existing member details."
2151
+ msgstr "Uredite obstoječe podrobnosti o članu."
2152
+
2153
+ #: views/admin_edit.php:14
2154
+ msgid " You are currenty editing member with member ID: "
2155
+ msgstr " Trenutno urejate člana z ID-jem člana: "
2156
+
2157
+ #: views/admin_edit.php:44
2158
+ msgid "(twice, leave empty to retain old password)"
2159
+ msgstr "(dvakrat pustite prazno za obhajanje starega gesla)"
2160
+
2161
+ #: views/admin_edit.php:59
2162
+ msgid ""
2163
+ "This is the member's account status. If you want to manually activate an "
2164
+ "expired member's account then read"
2165
+ msgstr ""
2166
+ "To je stanje računa člana. Če želite ročno aktivirati račun člana, ki je "
2167
+ "poteklo, preberite"
2168
+
2169
+ #: views/admin_edit.php:60
2170
+ msgid "this documentation"
2171
+ msgstr "to dokumentacijo"
2172
+
2173
+ #: views/admin_edit.php:61
2174
+ msgid " to learn how to do it."
2175
+ msgstr " da se naučite, kako to storiti."
2176
+
2177
+ #: views/admin_edit.php:66
2178
+ msgid "Notify User"
2179
+ msgstr "Obvesti uporabnika"
2180
+
2181
+ #: views/admin_edit.php:69
2182
+ msgid ""
2183
+ "You can use this option to send a quick notification email to this member "
2184
+ "(the email will be sent when you hit the save button below)."
2185
+ msgstr ""
2186
+ "To možnost lahko uporabite za pošiljanje hitrega e-poštnega obvestila temu "
2187
+ "članu (e-poštno sporočilo bo poslano, ko pritisnete gumb za shranjevanje "
2188
+ "spodaj)."
2189
+
2190
+ #: views/admin_edit.php:75
2191
+ msgid "Subscriber ID/Reference"
2192
+ msgstr "ID naročnika/sklic"
2193
+
2194
+ #: views/admin_edit.php:79
2195
+ msgid "Last Accessed Date"
2196
+ msgstr "Datum zadnjega dostopa"
2197
+
2198
+ #: views/admin_edit.php:82 views/admin_edit.php:89
2199
+ msgid "This value gets updated when this member logs into your site."
2200
+ msgstr "Ta vrednost se posodobi, ko se ta član prijavi na vaše mesto."
2201
+
2202
+ #: views/admin_edit.php:86
2203
+ msgid "Last Accessed From IP"
2204
+ msgstr "Zadnji dostop iz IP"
2205
+
2206
+ #: views/admin_edit.php:97
2207
+ msgid "Save Data"
2208
+ msgstr "Shranjevanje podatkov"
2209
+
2210
+ #: views/admin_edit.php:102
2211
+ msgid "Delete User Profile"
2212
+ msgstr "Izbriši uporabniški profil"
2213
+
2214
+ #: views/admin_edit_level.php:6
2215
+ msgid "Edit membership level"
2216
+ msgstr "Urejanje ravni članstva"
2217
+
2218
+ #: views/admin_edit_level.php:9
2219
+ msgid ""
2220
+ "You can edit details of a selected membership level from this interface. "
2221
+ msgstr "Podrobnosti o izbrani ravni članstva lahko urejate iz tega vmesnika. "
2222
+
2223
+ #: views/admin_edit_level.php:10
2224
+ msgid "You are currently editing: "
2225
+ msgstr "Trenutno urejate: "
2226
+
2227
+ #: views/admin_edit_level.php:27
2228
+ msgid "No Expiry (Access for this level will not expire until cancelled)"
2229
+ msgstr "Brez izteka veljavnosti (Dostop za to raven ne bo potekel do preklica)"
2230
+
2231
+ #: views/admin_edit_level.php:32
2232
+ msgid "Weeks (Access expires after given number of weeks)"
2233
+ msgstr "Tedni (Dostop poteče po danem številu tednov)"
2234
+
2235
+ #: views/admin_edit_level.php:51
2236
+ msgid ""
2237
+ "Enable new user activation via email. When enabled, members will need to "
2238
+ "click on an activation link that is sent to their email address to activate "
2239
+ "the account. Useful for free membership."
2240
+ msgstr ""
2241
+ "Omogočite aktiviranje novega uporabnika preko e-pošte. Ko je omogočeno, bodo "
2242
+ "člani morali klikniti na aktivacijsko povezavo, ki je poslana na njihov e-"
2243
+ "poštni naslov za aktiviranje računa. Uporabno za brezplačno članstvo."
2244
+
2245
+ #: views/admin_edit_level.php:60
2246
+ msgid "Save Membership Level "
2247
+ msgstr "Shrani raven članstva "
2248
+
2249
+ #: views/admin_membership_manage.php:18
2250
+ msgid "Example Content Protection Settings"
2251
+ msgstr "Primer nastavitve zaščite vsebine"
2252
+
2253
+ #: views/admin_members_list.php:18
2254
+ msgid "All"
2255
+ msgstr "Vse"
2256
+
2257
+ #: views/admin_members_list.php:23
2258
+ msgid "Incomplete"
2259
+ msgstr "Nepopolne"
2260
+
2261
+ #: views/admin_member_form_common_part.php:23
2262
+ #: includes/swpm_mda_show_profile.php:37
2263
+ msgid "Gender"
2264
+ msgstr "Spol"
2265
+
2266
+ #: views/admin_member_form_common_part.php:30 views/edit.php:47
2267
+ #: includes/swpm_mda_show_profile.php:34
2268
+ msgid "Phone"
2269
+ msgstr "Telefon"
2270
+
2271
+ #: views/admin_member_form_common_part.php:34 views/edit.php:51
2272
+ msgid "Street"
2273
+ msgstr "Ulica"
2274
+
2275
+ #: views/admin_member_form_common_part.php:38 views/edit.php:55
2276
+ msgid "City"
2277
+ msgstr "Mesto"
2278
+
2279
+ #: views/admin_member_form_common_part.php:42 views/edit.php:59
2280
+ msgid "State"
2281
+ msgstr "Regija"
2282
+
2283
+ #: views/admin_member_form_common_part.php:46 views/edit.php:63
2284
+ msgid "Zipcode"
2285
+ msgstr "Poštna številka"
2286
+
2287
+ #: views/admin_member_form_common_part.php:50 views/edit.php:67
2288
+ #: includes/swpm_mda_show_profile.php:33
2289
+ msgid "Country"
2290
+ msgstr "Država"
2291
+
2292
+ #: views/admin_member_form_common_part.php:54
2293
+ #: includes/swpm_mda_show_profile.php:38
2294
+ msgid "Company"
2295
+ msgstr "Podjetje"
2296
+
2297
+ #: views/admin_member_form_common_part.php:58
2298
+ #: includes/swpm_mda_show_profile.php:36
2299
+ msgid "Member Since"
2300
+ msgstr "Član Od"
2301
+
2302
+ #: views/admin_post_list.php:5
2303
+ msgid ""
2304
+ "First of all, globally protect posts and pages on your site by selecting "
2305
+ "\"General Protection\" from the drop-down box below and then select posts "
2306
+ "and pages that should be protected from non-logged in users."
2307
+ msgstr ""
2308
+
2309
+ #: views/admin_post_list.php:8
2310
+ msgid ""
2311
+ "Next, select an existing membership level from the drop-down box below and "
2312
+ "then select posts and pages you want to grant access to (for that particular "
2313
+ "membership level)."
2314
+ msgstr ""
2315
+
2316
+ #: views/admin_post_list.php:11
2317
+ msgid "bulk protect posts and pages documentation"
2318
+ msgstr ""
2319
+
2320
+ #: views/admin_post_list.php:11
2321
+ msgid " to learn how to use it."
2322
+ msgstr ""
2323
+
2324
+ #: views/admin_post_list.php:21
2325
+ msgid "Posts"
2326
+ msgstr "Prispevki"
2327
+
2328
+ #: views/admin_post_list.php:22
2329
+ msgid "Pages"
2330
+ msgstr "Strani"
2331
+
2332
+ #: views/admin_post_list.php:23
2333
+ msgid "Custom Posts"
2334
+ msgstr "Objave po meri"
2335
+
2336
+ #: views/admin_tools_settings.php:14
2337
+ msgid "The required pages have been re-created."
2338
+ msgstr "Zahtevane strani so bile ponovno ustvarjene."
2339
+
2340
+ #: views/admin_tools_settings.php:21
2341
+ msgid "Generate a Registration Completion link"
2342
+ msgstr "Ustvari povezavo za dokončanje registracije"
2343
+
2344
+ #: views/admin_tools_settings.php:24
2345
+ msgid ""
2346
+ "You can manually generate a registration completion link here and give it to "
2347
+ "your customer if they have missed the email that was automatically sent out "
2348
+ "to them after the payment."
2349
+ msgstr ""
2350
+ "Tukaj lahko ročno ustvarite povezavo za dokončanje registracije in jo daste "
2351
+ "stranki, če so zamudili e-poštno sporočilo, ki mu je bilo po plačilu "
2352
+ "samodejno poslano."
2353
+
2354
+ #: views/admin_tools_settings.php:29
2355
+ msgid "Generate Registration Completion Link"
2356
+ msgstr "Ustvari povezavo za dokončanje registracije"
2357
+
2358
+ #: views/admin_tools_settings.php:30
2359
+ msgid "For a Particular Member ID"
2360
+ msgstr "Za določen ID člana"
2361
+
2362
+ #: views/admin_tools_settings.php:32
2363
+ msgid "OR"
2364
+ msgstr "ALI"
2365
+
2366
+ #: views/admin_tools_settings.php:33
2367
+ msgid "For All Incomplete Registrations"
2368
+ msgstr "Za vse nepopolne registracije"
2369
+
2370
+ #: views/admin_tools_settings.php:38
2371
+ msgid "Send Registration Reminder Email Too"
2372
+ msgstr "Pošlji tudi e-pošto opomnika za registracijo"
2373
+
2374
+ #: views/admin_tools_settings.php:44
2375
+ msgid "Submit"
2376
+ msgstr "Pošlji"
2377
+
2378
+ #: views/admin_tools_settings.php:53
2379
+ msgid ""
2380
+ "Link(s) generated successfully. The following link(s) can be used to "
2381
+ "complete the registration."
2382
+ msgstr ""
2383
+ "Povezave so uspešno ustvarjene. Za dokončanje registracije se lahko "
2384
+ "uporabijo naslednje povezave."
2385
+
2386
+ #: views/admin_tools_settings.php:55
2387
+ msgid "Registration completion links will appear below"
2388
+ msgstr "Povezave za dokončanje registracije bodo prikazane spodaj"
2389
+
2390
+ #: views/admin_tools_settings.php:65
2391
+ msgid "A prompt to complete registration email was also sent."
2392
+ msgstr "Poslan je bil tudi poziv za dokončanje registracijske e-pošte."
2393
+
2394
+ #: views/admin_tools_settings.php:78 views/admin_tools_settings.php:88
2395
+ msgid "Re-create the Required Pages"
2396
+ msgstr "Ponovno ustvarite zahtevane strani"
2397
+
2398
+ #: views/admin_tools_settings.php:81
2399
+ msgid ""
2400
+ "If you have accidentally deleted the required pages that this plugin creates "
2401
+ "at install time, you can use this option to re-create them."
2402
+ msgstr ""
2403
+ "Če ste po nesreči izbrisali zahtevane strani, ki jih ta vtičnik ustvari ob "
2404
+ "namestitvi, lahko za ponovno ustvarjanje uporabite to možnost."
2405
+
2406
+ #: views/admin_tools_settings.php:82
2407
+ msgid " has full explanation."
2408
+ msgstr " ima popolno razlago."
2409
+
2410
+ #: views/edit.php:32 views/edit.php:36
2411
+ msgid "Leave empty to keep the current password"
2412
+ msgstr "Pustite prazno, če želite obdržati trenutno geslo"
2413
+
2414
+ #: views/edit.php:71
2415
+ msgid "Company Name"
2416
+ msgstr "Naziv podjetja"
2417
+
2418
+ #: views/forgot_password.php:12
2419
+ msgid "Reset Password"
2420
+ msgstr "Ponastavi geslo"
2421
+
2422
+ #: views/loggedin.php:6
2423
+ msgid "Logged in as"
2424
+ msgstr "Prijavljeni ste kot"
2425
+
2426
+ #: views/loggedin.php:14
2427
+ msgid "Membership"
2428
+ msgstr "Članstvo"
2429
+
2430
+ #: views/loggedin.php:18
2431
+ msgid "Account Expiry"
2432
+ msgstr "Potek računa"
2433
+
2434
+ #: views/loggedin.php:26
2435
+ msgid "Edit Profile"
2436
+ msgstr "Uredi profil"
2437
+
2438
+ #: views/login.php:11
2439
+ msgid "Username or Email"
2440
+ msgstr "Uporabniško ime ali e-naslov"
2441
+
2442
+ #: views/login.php:24
2443
+ msgid "Remember Me"
2444
+ msgstr "Zapomni si me"
2445
+
2446
+ #: views/login.php:33
2447
+ msgid "Forgot Password?"
2448
+ msgstr "Pozabljeno geslo?"
2449
+
2450
+ #: views/payments/admin_all_payment_transactions.php:6
2451
+ msgid "All the payments/transactions of your members are recorded here."
2452
+ msgstr "Vsa plačila/transakcije vaših članov so zabeležena tukaj."
2453
+
2454
+ #: views/payments/admin_all_payment_transactions.php:12
2455
+ msgid "Search for a transaction by using email or name"
2456
+ msgstr "Iskanje transakcije z uporabo e-pošte ali imena"
2457
+
2458
+ #: views/payments/admin_create_payment_buttons.php:15
2459
+ msgid ""
2460
+ "You can create new payment button for your memberships using this interface."
2461
+ msgstr "S tem vmesnikom lahko ustvarite nov plačilni gumb za članstvo."
2462
+
2463
+ #: views/payments/admin_create_payment_buttons.php:23
2464
+ msgid "Select Payment Button Type"
2465
+ msgstr "Izberite vrsto plačilnega gumba"
2466
+
2467
+ #: views/payments/admin_create_payment_buttons.php:26
2468
+ msgid "PayPal Buy Now"
2469
+ msgstr "PayPal Kupi zdaj"
2470
+
2471
+ #: views/payments/admin_create_payment_buttons.php:28
2472
+ msgid "PayPal Subscription"
2473
+ msgstr "PayPal naročnina"
2474
+
2475
+ #: views/payments/admin_create_payment_buttons.php:30
2476
+ msgid "PayPal Smart Checkout"
2477
+ msgstr "PayPal Pametna blagajna"
2478
+
2479
+ #: views/payments/admin_create_payment_buttons.php:32
2480
+ msgid "Stripe Buy Now"
2481
+ msgstr "Stripe Kupi zdaj"
2482
+
2483
+ #: views/payments/admin_create_payment_buttons.php:34
2484
+ msgid "Stripe Subscription"
2485
+ msgstr "Stripe naročniški sistem"
2486
+
2487
+ #: views/payments/admin_create_payment_buttons.php:36
2488
+ msgid "Braintree Buy Now"
2489
+ msgstr "Braintree Kupi zdaj"
2490
+
2491
+ #: views/payments/admin_create_payment_buttons.php:43
2492
+ msgid "Next"
2493
+ msgstr "Naprej"
2494
+
2495
+ #: views/payments/admin_edit_payment_buttons.php:15
2496
+ msgid "You can edit a payment button using this interface."
2497
+ msgstr "Gumb za plačilo lahko uredite s tem vmesnikom."
2498
+
2499
+ #: views/payments/admin_payment_buttons.php:6
2500
+ msgid ""
2501
+ "All the membership buttons that you created in the plugin are displayed here."
2502
+ msgstr ""
2503
+ "Vsi gumbi za članstvo, ki ste jih ustvarili v vtičnik, so prikazani tukaj."
2504
+
2505
+ #: views/payments/admin_payment_settings.php:21
2506
+ msgid "Error! The membership level ID ("
2507
+ msgstr "Napaka! ID ravni članstva ("
2508
+
2509
+ #: views/payments/admin_payment_settings.php:28
2510
+ msgid ""
2511
+ "You can create membership payment buttons from the payments menu of this "
2512
+ "plugin (useful if you want to offer paid membership on the site)."
2513
+ msgstr ""
2514
+ "Gumbe za plačilo članstva lahko ustvarite iz plačilnega menija tega vtičnika "
2515
+ "(uporabno, če želite na strani ponuditi plačano članstvo)."
2516
+
2517
+ #: views/payments/admin_payment_settings.php:33
2518
+ msgid "PayPal Integration Settings"
2519
+ msgstr "PayPal nastavitve integracije"
2520
+
2521
+ #: views/payments/admin_payment_settings.php:36
2522
+ msgid "Generate the \"Advanced Variables\" Code for your PayPal button"
2523
+ msgstr "Ustvarite kodo »Napredne spremenljivke« za PayPal gumb"
2524
+
2525
+ #: views/payments/admin_payment_settings.php:39
2526
+ msgid "Enter the Membership Level ID"
2527
+ msgstr "Vnesite ID ravni članstva"
2528
+
2529
+ #: views/payments/admin_payment_settings.php:41
2530
+ msgid "Generate Code"
2531
+ msgstr "Ustvari kodo"
2532
+
2533
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:22
2534
+ msgid "Braintree Buy Now Button Configuration"
2535
+ msgstr "Braintree Buy Now Konfiguracija gumba"
2536
+
2537
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:34
2538
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:213
2539
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:33
2540
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:301
2541
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:259
2542
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:83
2543
+ msgid "Button ID"
2544
+ msgstr "ID gumba"
2545
+
2546
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:42
2547
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:26
2548
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:221
2549
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:41
2550
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:27
2551
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:309
2552
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:39
2553
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:266
2554
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:91
2555
+ msgid "Button Title"
2556
+ msgstr "Naslov gumba"
2557
+
2558
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:60
2559
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:44
2560
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:239
2561
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:59
2562
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:57
2563
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:282
2564
+ msgid "Payment Amount"
2565
+ msgstr "Znesek plačila"
2566
+
2567
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:68
2568
+ msgid ""
2569
+ "Braintree API key and account details. You can get this from your Braintree "
2570
+ "account."
2571
+ msgstr ""
2572
+ "Braintree API ključ in podrobnosti računa. To lahko dobiš s pametnega računa."
2573
+
2574
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:72
2575
+ msgid "Merchant ID"
2576
+ msgstr ""
2577
+
2578
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:80
2579
+ msgid "Public Key"
2580
+ msgstr ""
2581
+
2582
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:87
2583
+ msgid "Private Key"
2584
+ msgstr ""
2585
+
2586
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:95
2587
+ msgid "Merchant Account ID"
2588
+ msgstr ""
2589
+
2590
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:113
2591
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:137
2592
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:361
2593
+ msgid "The following details are optional."
2594
+ msgstr ""
2595
+
2596
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:117
2597
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:92
2598
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:287
2599
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:204
2600
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:172
2601
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:456
2602
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:149
2603
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:373
2604
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:191
2605
+ msgid "Return URL"
2606
+ msgstr ""
2607
+
2608
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:127
2609
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:126
2610
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:321
2611
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:214
2612
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:200
2613
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:484
2614
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:159
2615
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:383
2616
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:212
2617
+ msgid "Save Payment Data"
2618
+ msgstr ""
2619
+
2620
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:16
2621
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:204
2622
+ msgid "PayPal Buy Now Button Configuration"
2623
+ msgstr ""
2624
+
2625
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:52
2626
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:247
2627
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:67
2628
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:45
2629
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:327
2630
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:65
2631
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:289
2632
+ msgid "Payment Currency"
2633
+ msgstr ""
2634
+
2635
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:100
2636
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:295
2637
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:85
2638
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:367
2639
+ msgid "PayPal Email"
2640
+ msgstr ""
2641
+
2642
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:108
2643
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:303
2644
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:180
2645
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:464
2646
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:199
2647
+ msgid "Button Image URL"
2648
+ msgstr ""
2649
+
2650
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:116
2651
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:311
2652
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:188
2653
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:472
2654
+ msgid "Custom Checkout Page Logo Image"
2655
+ msgstr ""
2656
+
2657
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:21
2658
+ msgid "PayPal Smart Checkout Button Configuration"
2659
+ msgstr ""
2660
+
2661
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:107
2662
+ msgid ""
2663
+ "PayPal Smart Checkout API Credentials (you can get this from your PayPal "
2664
+ "account)"
2665
+ msgstr ""
2666
+
2667
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:111
2668
+ msgid "Live Client ID"
2669
+ msgstr ""
2670
+
2671
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:119
2672
+ msgid "Live Secret"
2673
+ msgstr ""
2674
+
2675
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:127
2676
+ msgid "Sandbox Client ID"
2677
+ msgstr ""
2678
+
2679
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:135
2680
+ msgid "Sandbox Secret"
2681
+ msgstr ""
2682
+
2683
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:143
2684
+ msgid "Button Appearance Settings"
2685
+ msgstr "Nastavitve videza gumba"
2686
+
2687
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:147
2688
+ msgid "Size"
2689
+ msgstr "Velikost"
2690
+
2691
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:150
2692
+ msgid "Medium"
2693
+ msgstr "Srednje"
2694
+
2695
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:151
2696
+ msgid "Large"
2697
+ msgstr "Veliko"
2698
+
2699
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:152
2700
+ msgid "Repsonsive"
2701
+ msgstr ""
2702
+
2703
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:154
2704
+ msgid "Select button size."
2705
+ msgstr "Izberite velikost gumba."
2706
+
2707
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:158
2708
+ msgid "Color"
2709
+ msgstr "Barva"
2710
+
2711
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:161
2712
+ msgid "Gold"
2713
+ msgstr "Zlata"
2714
+
2715
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:162
2716
+ msgid "Blue"
2717
+ msgstr "Modra"
2718
+
2719
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:163
2720
+ msgid "Silver"
2721
+ msgstr "Srebrna"
2722
+
2723
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:164
2724
+ msgid "Black"
2725
+ msgstr "Črna"
2726
+
2727
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:166
2728
+ msgid "Select button color."
2729
+ msgstr "Izberite barvo gumba."
2730
+
2731
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:170
2732
+ msgid "Shape"
2733
+ msgstr "Oblika"
2734
+
2735
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:172
2736
+ msgid "Rectangular"
2737
+ msgstr "Pravokotno"
2738
+
2739
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:173
2740
+ msgid "Pill"
2741
+ msgstr ""
2742
+
2743
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:174
2744
+ msgid "Select button shape."
2745
+ msgstr "Izberite obliko gumba."
2746
+
2747
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:178
2748
+ msgid "Layout"
2749
+ msgstr "Postavitev"
2750
+
2751
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:180
2752
+ msgid "Vertical"
2753
+ msgstr "Vertikalno"
2754
+
2755
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:181
2756
+ msgid "Horizontal"
2757
+ msgstr "Horizontalno"
2758
+
2759
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:182
2760
+ msgid "Select button layout."
2761
+ msgstr "Izberite postavitev gumbov."
2762
+
2763
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:187
2764
+ msgid "Additional Settings"
2765
+ msgstr "Dodatne nastavitve"
2766
+
2767
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:191
2768
+ msgid "Payment Methods"
2769
+ msgstr "Načini plačila"
2770
+
2771
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:193
2772
+ msgid "PayPal Credit"
2773
+ msgstr "PayPal Kredit"
2774
+
2775
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:194
2776
+ msgid "ELV"
2777
+ msgstr "ELV"
2778
+
2779
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:195
2780
+ msgid ""
2781
+ "Select payment methods that could be used by customers. Note that payment "
2782
+ "with cards is always enabled."
2783
+ msgstr ""
2784
+ "Izberite načine plačila, ki jih lahko uporabljajo stranke. Upoštevajte, da "
2785
+ "je plačilo s karticami vedno omogočeno."
2786
+
2787
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:200
2788
+ msgid "The following details are optional"
2789
+ msgstr "Naslednje podrobnosti so neobvezne"
2790
+
2791
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:18
2792
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:295
2793
+ msgid "PayPal Subscription Button Configuration"
2794
+ msgstr "Konfiguracija PayPay Subscription gumba"
2795
+
2796
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:93
2797
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:375
2798
+ msgid "Billing Amount Each Cycle"
2799
+ msgstr "Znesek obračunavanja za vsak cikel"
2800
+
2801
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:101
2802
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:383
2803
+ msgid "Billing Cycle"
2804
+ msgstr "Cikel zaračunavanja"
2805
+
2806
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:114
2807
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:396
2808
+ msgid "Billing Cycle Count"
2809
+ msgstr "Število ciklov obračunavanja"
2810
+
2811
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:122
2812
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:404
2813
+ msgid "Re-attempt on Failure"
2814
+ msgstr "V primeru neuspešnosti poskusi ponovno"
2815
+
2816
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:135
2817
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:419
2818
+ msgid ""
2819
+ "Trial Billing Details (Leave empty if you are not offering a trial period)"
2820
+ msgstr ""
2821
+ "Podrobnosti preskušanega obračunavanja (Pustite prazno, če ne ponujate "
2822
+ "preskusnega obdobja)"
2823
+
2824
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:141
2825
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:425
2826
+ msgid "Trial Billing Amount"
2827
+ msgstr "Znesek preizkusnega obdobja"
2828
+
2829
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:149
2830
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:433
2831
+ msgid "Trial Billing Period"
2832
+ msgstr "Obdobje preizkusnega obdobja"
2833
+
2834
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:166
2835
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:450
2836
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:177
2837
+ msgid "Optional Details"
2838
+ msgstr "Izbirne podrobnosti"
2839
+
2840
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:29
2841
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:250
2842
+ msgid "Stripe Buy Now Button Configuration"
2843
+ msgstr "Konfiguracija gumba Stripe “Kupi zdaj”"
2844
+
2845
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:104
2846
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:328
2847
+ msgid "Stripe API keys. You can get this from your Stripe account."
2848
+ msgstr ""
2849
+
2850
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:108
2851
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:332
2852
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:131
2853
+ msgid "Test Publishable Key"
2854
+ msgstr ""
2855
+
2856
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:115
2857
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:339
2858
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:139
2859
+ msgid "Test Secret Key"
2860
+ msgstr ""
2861
+
2862
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:122
2863
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:346
2864
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:147
2865
+ msgid "Live Publishable Key"
2866
+ msgstr ""
2867
+
2868
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:129
2869
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:353
2870
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:155
2871
+ msgid "Live Secret Key"
2872
+ msgstr ""
2873
+
2874
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:141
2875
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:365
2876
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:183
2877
+ msgid "Collect Customer Address"
2878
+ msgstr "Zbiranje naslova stranke"
2879
+
2880
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:75
2881
+ msgid "Stripe Subscription Button Configuration"
2882
+ msgstr "Konfiguracija gumba za naročnino preko Stripe"
2883
+
2884
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:109
2885
+ msgid "Stripe API ID"
2886
+ msgstr ""
2887
+
2888
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:125
2889
+ msgid "Stripe API Settings"
2890
+ msgstr ""
2891
+
2892
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:163
2893
+ msgid "Webook Endpoint URL"
2894
+ msgstr ""
2895
+
2896
+ #: views/payments/payment-gateway/braintree_button_shortcode_view.php:20
2897
+ #: views/payments/payment-gateway/paypal_button_shortcode_view.php:91
2898
+ #: views/payments/payment-gateway/paypal_button_shortcode_view.php:93
2899
+ #: views/payments/payment-gateway/paypal_smart_checkout_button_shortcode_view.php:15
2900
+ #: views/payments/payment-gateway/stripe_button_shortcode_view.php:20
2901
+ #: views/payments/payment-gateway/stripe_button_shortcode_view.php:150
2902
+ msgid "Buy Now"
2903
+ msgstr "Takojšnji nakup"
2904
+
2905
+ #: views/payments/payment-gateway/paypal_button_shortcode_view.php:226
2906
+ #: views/payments/payment-gateway/paypal_button_shortcode_view.php:228
2907
+ msgid "Subscribe Now"
2908
+ msgstr "Naroči se zdaj"
2909
+
2910
+ #: views/payments/payment-gateway/paypal_smart_checkout_button_shortcode_view.php:137
2911
+ msgid "Error occured during PayPal Smart Checkout process."
2912
+ msgstr "Med postopkom pametnega PayPal je prišlo do napake."
2913
+
2914
+ #: views/payments/payment-gateway/paypal_smart_checkout_button_shortcode_view.php:165
2915
+ msgid "HTTP error occured during payment process:"
2916
+ msgstr "Med postopkom plačila je prišlo do napake HTTP:"
2917
+
2918
+ #: Translation strings from addons === Form builder addon
2919
+ msgid "Type password here"
2920
+ msgstr "Tukaj vnesite geslo"
2921
+
2922
+ msgid "Retype password here"
2923
+ msgstr "Ponovno vnesite geslo tukaj"
2924
+
2925
+ msgid "Registration is complete. You can now log into the site."
2926
+ msgstr "Registracija je končana. Zdaj se lahko prijavite na spletno mesto."
2927
+
2928
+ msgid " Field has invalid character"
2929
+ msgstr " Polje ima neveljaven znak"
2930
+
2931
+ msgid " Password does not match"
2932
+ msgstr " Geslo se ne ujema"
2933
+
2934
+ msgid "Already taken."
2935
+ msgstr "Že odvzeto."
2936
+
2937
+ msgid "Street Address"
2938
+ msgstr "Ulica"
2939
+
2940
+ msgid "Apt, Suite, Bldg. (optional)"
2941
+ msgstr ""
2942
+
2943
+ msgid "State / Province / Region"
2944
+ msgstr "Zvezna država/Provinca/Regija"
2945
+
2946
+ msgid "Postal / Zip Code"
2947
+ msgstr "Poštna / poštna številka"
2948
+
2949
+ msgid ""
2950
+ "Check this box to delete the image. The image will be deleted when you save "
2951
+ "the profile."
2952
+ msgstr ""
2953
+ "Če želite izbrisati sliko, potrdite to polje. Slika bo izbrisana, ko "
2954
+ "shranite profil."
2955
+
2956
+ msgid "You will need to re-login since you changed your password."
2957
+ msgstr "Odkar ste spremenili geslo, se boste morali ponovno prijaviti."
2958
+
2959
+ msgid ""
2960
+ "Please enter any two digits with <strong>no</strong> spaces (Example: 12)"
2961
+ msgstr ""
2962
+ "Vnesite kateri koli dve števki brez <strong>presledkov</strong> (Primer: 12)"
2963
+
2964
+ msgid "Verification"
2965
+ msgstr "Verifikacija"
2966
+
2967
+ msgid "Please enter any two digits with no spaces (Example: 12)*"
2968
+ msgstr "Vnesite kateri koli dve števki brez presledkov (Primer: 12)*"
2969
+
2970
+ msgid "Username can only contain: letters, numbers and .-*@"
2971
+ msgstr "Uporabniško ime lahko vsebuje le: črke, številke in .-* @"
2972
+
2973
+ msgid "Allowed characters are: letters, numbers and .-_*@"
2974
+ msgstr "Dovoljeni znaki so: črke, številke in .-_* @"
2975
+
2976
+ #: === Partial protection addon strings
2977
+ msgid "You do not have permission to view this content."
2978
+ msgstr "Za ogled te vsebine nimate dovoljenja."
2979
+
2980
+ msgid "Your membership level does not have permission to view this content."
2981
+ msgstr "Vaša raven članstva nima dovoljenja za ogled te vsebine."
2982
+
2983
+ msgid "This content is for members only."
2984
+ msgstr "Ta vsebina je samo za člane."
2985
+
2986
+ msgid "Please check at least one."
2987
+ msgstr "Prosim, preverite vsaj enega."
2988
+
2989
+ #: === Member Directory Listing addon strings swpm-member-directory-admin.php:9
2990
+ msgid "Member Directory"
2991
+ msgstr "Imenik za člane"
2992
+
2993
+ #: includes/swpm_mda_show_profile.php:26
2994
+ msgid "Member ID"
2995
+ msgstr "ID člana"
2996
+
2997
+ #: includes/swpm_mda_show_profile.php:30
2998
+ msgid "Level"
2999
+ msgstr "Raven"
3000
+
3001
+ #: includes/swpm_mda_show_profile.php:32
3002
+ msgid "Address"
3003
+ msgstr "Naslov"
3004
+
3005
+ #: views/template-1.php:52 views/template-2.php:53
3006
+ msgid "Search..."
3007
+ msgstr "Iskanje..."
3008
+
3009
+ #: views/template-1.php:60 views/template-2.php:62
3010
+ msgid "Clear Search"
3011
+ msgstr "Počisti iskanje"
3012
+
3013
+ # === Misc Shortcodes Addon ===
3014
+ msgid "You must be logged in to upgrade a membership."
3015
+ msgstr "Za nadgradnjo članstva morate biti prijavljeni."
3016
+
3017
+ msgid "Membership level has been updated."
3018
+ msgstr "Raven članstva je bila posodobljena."
3019
+
3020
+ msgid "Already a member of this level."
3021
+ msgstr "Že član tega nivoja."
languages/simple-membership-sv_SE.mo CHANGED
Binary file
languages/simple-membership-sv_SE.po CHANGED
@@ -1,2293 +1,3070 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: Simple Membership\n"
4
- "POT-Creation-Date: 2018-02-17 13:47+1000\n"
5
- "PO-Revision-Date: 2018-03-15 11:08+0100\n"
6
- "Last-Translator: Andreas Damberg <ordf@hukk.se>\n"
7
- "Language-Team: Swedish\n"
8
- "MIME-Version: 1.0\n"
9
- "Content-Type: text/plain; charset=UTF-8\n"
10
- "Content-Transfer-Encoding: 8bit\n"
11
- "X-Generator: Poedit 2.0.6\n"
12
- "X-Poedit-KeywordsList: __;_e\n"
13
- "X-Poedit-Basepath: .\n"
14
- "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
- "Language: sv_SE\n"
16
- "Report-Msgid-Bugs-To: \n"
17
- "X-Poedit-SearchPath-0: .\n"
18
-
19
- #: classes/class.simple-wp-membership.php:175
20
- msgid "The admin of this site does not allow users to access the wp dashboard."
21
- msgstr ""
22
- "Administratören på den här webbplatsen tillåter inte användare att komma åt "
23
- "wp-instrumentbrädan."
24
-
25
- #: classes/class.simple-wp-membership.php:176
26
- msgid "Go back to the home page by "
27
- msgstr "Gå tillbaka till hemsidan av "
28
-
29
- #: classes/class.simple-wp-membership.php:176
30
- msgid "clicking here"
31
- msgstr "klicka här"
32
-
33
- #: classes/class.simple-wp-membership.php:237
34
- msgid ""
35
- "Error! This site has the force WP user login feature enabled in the "
36
- "settings. We could not find a WP user record for the given username: "
37
- msgstr ""
38
- "Fel! Denna webbplats har funktionen tvinga WP-användaren-inloggning "
39
- "aktiverat i inställningarna. Vi kunde inte hitta en WP användarpost för viss "
40
- "användarnamnet: "
41
-
42
- #: classes/class.simple-wp-membership.php:238
43
- msgid ""
44
- "This error is triggered when a member account doesn't have a corresponding "
45
- "WP user account. So the plugin fails to log the user into the WP User system."
46
- msgstr ""
47
- "Detta fel utlöses när ett medlemskonto inte har ett motsvarande WP-"
48
- "användarkonto. Så SM-tillägget misslyckades med att logga användaren in i WP-"
49
- "användarsystemet."
50
-
51
- #: classes/class.simple-wp-membership.php:239
52
- msgid ""
53
- "Contact the site admin and request them to check your username in the WP "
54
- "Users menu to see what happened with the WP user entry of your account."
55
- msgstr ""
56
- "Kontakta webbplatsen admin och be dem att kolla ditt användarnamn i menyn WP-"
57
- "användare att se vad som hände med posten användare på ditt konto."
58
-
59
- #: classes/class.simple-wp-membership.php:240
60
- msgid ""
61
- "The site admin can disable the Force WP User Synchronization feature in the "
62
- "settings to disable this feature and this error will go away."
63
- msgstr ""
64
- "Webbplatsadministratören kan inaktivera funktionen Force WP-"
65
- "användarsynkronisering i inställningarna för att inaktivera den här "
66
- "funktionen och detta fel kommer försvinna."
67
-
68
- #: classes/class.simple-wp-membership.php:241
69
- msgid "You can use the back button of your browser to go back to the site."
70
- msgstr ""
71
- "Du kan använda webbläsarens bakåtknapp för att gå tillbaka till webbplatsen."
72
-
73
- #: classes/class.simple-wp-membership.php:334
74
- msgid "You are not logged in."
75
- msgstr "Du är inte inloggad."
76
-
77
- #: classes/class.simple-wp-membership.php:385
78
- msgid ""
79
- "You have the sandbox payment mode enabled in plugin settings. Make sure to "
80
- "turn off the sandbox mode when you want to do live transactions."
81
- msgstr ""
82
- "Du har betalningsläget för sandlåda aktiverat i plugin-inställningar. Se "
83
- "till att du stänger av sandlåsläget när du vill göra live-transaktioner."
84
-
85
- #: classes/class.simple-wp-membership.php:400
86
- msgid "Simple WP Membership Protection"
87
- msgstr "Simple WP Membership Protection"
88
-
89
- #: classes/class.simple-wp-membership.php:412
90
- msgid "Simple Membership Protection options"
91
- msgstr "Alternativ för Simple WP Membership Protection"
92
-
93
- #: classes/class.simple-wp-membership.php:430
94
- msgid "Do you want to protect this content?"
95
- msgstr "Vill du skydda detta innehåll?"
96
-
97
- #: classes/class.simple-wp-membership.php:435
98
- msgid "Select the membership level that can access this content:"
99
- msgstr "Välj vilken medlemskapsnivå som ska kunna läsa detta innehåll:"
100
-
101
- #: classes/class.simple-wp-membership.php:573
102
- #: classes/class.simple-wp-membership.php:577
103
- msgid "Validating, please wait"
104
- msgstr "Validerar, var god vänta"
105
-
106
- #: classes/class.simple-wp-membership.php:580
107
- msgid "Invalid email address"
108
- msgstr "Ogiltig e-postadress"
109
-
110
- #: classes/class.simple-wp-membership.php:583
111
- msgid "This field is required"
112
- msgstr "Detta fält är obligatoriskt"
113
-
114
- #: classes/class.simple-wp-membership.php:586 classes/class.swpm-auth.php:259
115
- msgid "Invalid Username"
116
- msgstr "Ogiltigt användarnamn"
117
-
118
- #: classes/class.simple-wp-membership.php:589
119
- msgid "Minimum "
120
- msgstr "Minst "
121
-
122
- #: classes/class.simple-wp-membership.php:590
123
- msgid " characters required"
124
- msgstr " tecken som krävs för"
125
-
126
- #: classes/class.simple-wp-membership.php:593
127
- msgid "Apostrophe character is not allowed"
128
- msgstr "Apostrof är inte tillåtet"
129
-
130
- #: classes/class.simple-wp-membership.php:624
131
- msgid "WP Membership"
132
- msgstr "WP medlemskap"
133
-
134
- #: classes/class.simple-wp-membership.php:625 classes/class.swpm-members.php:11
135
- #: classes/class.swpm-members.php:579
136
- msgid "Members"
137
- msgstr "Medlemmar"
138
-
139
- #: classes/class.simple-wp-membership.php:626
140
- #: classes/class.swpm-category-list.php:20
141
- #: classes/class.swpm-membership-levels.php:12
142
- #: classes/class.swpm-membership-levels.php:264
143
- #: classes/class.swpm-post-list.php:21
144
- msgid "Membership Levels"
145
- msgstr "Medlemskapsnivåer"
146
-
147
- #: classes/class.simple-wp-membership.php:627
148
- msgid "Settings"
149
- msgstr "Inställningar"
150
-
151
- #: classes/class.simple-wp-membership.php:628
152
- msgid "Payments"
153
- msgstr "Betalningar"
154
-
155
- #: classes/class.simple-wp-membership.php:629
156
- msgid "Add-ons"
157
- msgstr "Tilägg"
158
-
159
- #: classes/class.swpm-access-control.php:47
160
- #: classes/class.swpm-access-control.php:120
161
- msgid "You need to login to view this content. "
162
- msgstr "Du måste logga in för att se detta innehåll "
163
-
164
- #: classes/class.swpm-access-control.php:56
165
- #: classes/class.swpm-access-control.php:128
166
- #: classes/class.swpm-access-control.php:212
167
- msgid "Your account has expired. "
168
- msgstr "Användarkontot har upphört att gälla. "
169
-
170
- #: classes/class.swpm-access-control.php:66
171
- #: classes/class.swpm-access-control.php:138
172
- msgid "This content can only be viewed by members who joined on or before "
173
- msgstr "Detta innehåll kan endast ses av medlemmar som gått med på eller före "
174
-
175
- #: classes/class.swpm-access-control.php:79
176
- #: classes/class.swpm-access-control.php:148
177
- msgid "This content is not permitted for your membership level."
178
- msgstr "Innehållet är inte tillgängligt för din medlemsnivå."
179
-
180
- #: classes/class.swpm-access-control.php:204
181
- msgid "You need to login to view the rest of the content. "
182
- msgstr "Du måste logga in för att läsa resten av innehållet "
183
-
184
- #: classes/class.swpm-access-control.php:217
185
- msgid " The rest of the content is not permitted for your membership level."
186
- msgstr " Resterande innehåll är inte tillgängligt för din medlemsnivå."
187
-
188
- #: classes/class.swpm-admin-registration.php:25
189
- msgid "Error! Nonce verification failed for user registration from admin end."
190
- msgstr ""
191
- "Fel! Nonceverifieringen misslyckades för användarregistrering från "
192
- "adminläget (back-end)."
193
-
194
- #: classes/class.swpm-admin-registration.php:71
195
- msgid "Member record added successfully."
196
- msgstr "Medlemsposten lades till korrekt."
197
-
198
- #: classes/class.swpm-admin-registration.php:76
199
- #: classes/class.swpm-admin-registration.php:116
200
- #: classes/class.swpm-admin-registration.php:142
201
- #: classes/class.swpm-membership-level.php:69
202
- #: classes/class.swpm-membership-level.php:97
203
- msgid "Please correct the following:"
204
- msgstr "Vänligen rätta till följande:"
205
-
206
- #: classes/class.swpm-admin-registration.php:87
207
- msgid "Error! Nonce verification failed for user edit from admin end."
208
- msgstr ""
209
- "Fel! Nonceverifieringen misslyckades för användarregistrering från "
210
- "Användarläget (front-end)."
211
-
212
- #: classes/class.swpm-admin-registration.php:131
213
- msgid "Your current password"
214
- msgstr "Ditt nuvarande lösenord"
215
-
216
- #: classes/class.swpm-ajax.php:14
217
- msgid "Invalid Email Address"
218
- msgstr "Ogiltig e-postadress"
219
-
220
- #: classes/class.swpm-ajax.php:21 classes/class.swpm-ajax.php:36
221
- msgid "Aready taken"
222
- msgstr "Upptaget"
223
-
224
- #: classes/class.swpm-ajax.php:30
225
- msgid "Name contains invalid character"
226
- msgstr "Namnet innehåller ogiltiga tecken"
227
-
228
- #: classes/class.swpm-ajax.php:37
229
- msgid "Available"
230
- msgstr "Tillgängligt"
231
-
232
- #: classes/class.swpm-auth.php:49
233
- msgid ""
234
- "Warning! Simple Membership plugin cannot process this login request to "
235
- "prevent you from getting logged out of WP Admin accidentally."
236
- msgstr ""
237
- "Varning! Simple membership-tillägget kan inte behandla denna "
238
- "inloggningsbegäran att förhindra att du blir utloggad från WP Admin av "
239
- "misstag."
240
-
241
- #: classes/class.swpm-auth.php:50
242
- msgid ""
243
- "You are logged into the site as an ADMIN user in this browser. First, logout "
244
- "from WP Admin then you will be able to log in as a member."
245
- msgstr ""
246
- "Du är inloggad på webbplatsen som en ADMIN-användare i den här webbläsaren. "
247
- "Första, logga ut från WP Admin då du kommer att kunna logga in som medlem."
248
-
249
- #: classes/class.swpm-auth.php:51
250
- msgid ""
251
- "Alternatively, you can use a different browser (where you are not logged-in "
252
- "as ADMIN) to test the membership login."
253
- msgstr ""
254
- "Alternativt kan du använda en annan webbläsare (där du inte är inloggad som "
255
- "ADMIN) för att testa medlemskapsinloggningen."
256
-
257
- #: classes/class.swpm-auth.php:52
258
- msgid ""
259
- "Your normal visitors or members will never see this message. This message is "
260
- "ONLY for ADMIN user."
261
- msgstr ""
262
- "Dina vanliga besökare eller medlemmar kommer aldrig att se detta meddelande. "
263
- "Det här meddelandet är ENDAST för ADMIN-användare."
264
-
265
- #: classes/class.swpm-auth.php:59
266
- msgid "Captcha validation failed on login form."
267
- msgstr "CAPTCHA validering misslyckades på inloggningsformuläret."
268
-
269
- #: classes/class.swpm-auth.php:84
270
- msgid "User Not Found."
271
- msgstr "Användare hittades inte."
272
-
273
- #: classes/class.swpm-auth.php:91
274
- msgid "Password Empty or Invalid."
275
- msgstr "Lösenordet är tomt eller ogiltigt."
276
-
277
- #: classes/class.swpm-auth.php:124
278
- msgid "Account is inactive."
279
- msgstr "Användarkontot är ej aktivt."
280
-
281
- #: classes/class.swpm-auth.php:127 classes/class.swpm-auth.php:145
282
- msgid "Account has expired."
283
- msgstr "Användarkontot har gått ut."
284
-
285
- #: classes/class.swpm-auth.php:130
286
- msgid "Account is pending."
287
- msgstr "Kontot är väntande."
288
-
289
- #: classes/class.swpm-auth.php:153
290
- msgid "You are logged in as:"
291
- msgstr "Du är inloggad som:"
292
-
293
- #: classes/class.swpm-auth.php:199
294
- msgid "Logged Out Successfully."
295
- msgstr "Lyckad utloggning."
296
-
297
- #: classes/class.swpm-auth.php:250
298
- msgid "Session Expired."
299
- msgstr "Slutsessionen."
300
-
301
- #: classes/class.swpm-auth.php:267
302
- msgid "Please login again."
303
- msgstr "Vänligen logga in igen."
304
-
305
- #: classes/class.swpm-category-list.php:19 classes/class.swpm-members.php:24
306
- #: classes/class.swpm-membership-levels.php:11
307
- #: classes/class.swpm-membership-levels.php:21
308
- #: classes/class.swpm-post-list.php:20
309
- #: classes/admin-includes/class.swpm-payments-list-table.php:85
310
- #: views/add.php:31 views/admin_member_form_common_part.php:2 views/edit.php:66
311
- #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:50
312
- #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:34
313
- #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:229
314
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:35
315
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:317
316
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:47
317
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:273
318
- #: views/payments/payment-gateway/admin_stripe_subscription_button.php:99
319
- msgid "Membership Level"
320
- msgstr "Medlemskapsnivå"
321
-
322
- #: classes/class.swpm-category-list.php:33
323
- msgid "Category ID"
324
- msgstr "Kategori-ID"
325
-
326
- #: classes/class.swpm-category-list.php:34
327
- msgid "Category Name"
328
- msgstr "Kategorinamn"
329
-
330
- #: classes/class.swpm-category-list.php:35
331
- msgid "Category Type (Taxonomy)"
332
- msgstr "Typ av kategori (Taxonomy)"
333
-
334
- #: classes/class.swpm-category-list.php:36
335
- msgid "Description"
336
- msgstr "Beskrivning"
337
-
338
- #: classes/class.swpm-category-list.php:37
339
- msgid "Count"
340
- msgstr "Antal"
341
-
342
- #: classes/class.swpm-category-list.php:92
343
- msgid "Category protection updated!"
344
- msgstr "Kategoriskydd uppdaterad!"
345
-
346
- #: classes/class.swpm-category-list.php:130
347
- msgid "No category found."
348
- msgstr "Ingen kategori hittades."
349
-
350
- #: classes/class.swpm-comment-form-related.php:15
351
- msgid "Please login to comment."
352
- msgstr "Vänligen logga in för att kommentera."
353
-
354
- #: classes/class.swpm-comment-form-related.php:40
355
- msgid "Please Login to Comment."
356
- msgstr "Vänligen logga in för att kommentera."
357
-
358
- #: classes/class.swpm-comment-form-related.php:79
359
- msgid "Comments not allowed by a non-member."
360
- msgstr "Kommentarer är inte tillåtna av icke-medlemmar."
361
-
362
- #: classes/class.swpm-form.php:29
363
- msgid ""
364
- "Wordpress account exists with given username. But given email doesn't match."
365
- msgstr ""
366
- "Wordpress-konto finns med ett givet användarnamn. Men given e-post matchar "
367
- "inte."
368
-
369
- #: classes/class.swpm-form.php:30
370
- msgid ""
371
- " Use a different username to complete the registration. If you want to use "
372
- "that username then you must enter the correct email address associated with "
373
- "the existing WP user to connect with that account."
374
- msgstr ""
375
- " Använd ett annat användarnamn för att slutföra registreringen. Om du vill "
376
- "använda det användarnamnet måste du ange du den e-postadress som är "
377
- "associerad med den befintliga WP-användaren."
378
-
379
- #: classes/class.swpm-form.php:36
380
- msgid ""
381
- "Wordpress account exists with given email. But given username doesn't match."
382
- msgstr ""
383
- "Wordpress-konto finns med angivet användarnamn. Men angiven e-post matchar "
384
- "inte."
385
-
386
- #: classes/class.swpm-form.php:37
387
- msgid ""
388
- " Use a different email address to complete the registration. If you want to "
389
- "use that email then you must enter the correct username associated with the "
390
- "existing WP user to connect with that account."
391
- msgstr ""
392
- " Använd en annan e-postadress för att slutföra registreringen. Om du vill "
393
- "använda denna e-postadress måste du ange rätt användarnamn är associerad "
394
- "med den befintliga WP-användaren."
395
-
396
- #: classes/class.swpm-form.php:47
397
- msgid "Username is required"
398
- msgstr "Användarnamn krävs"
399
-
400
- #: classes/class.swpm-form.php:51
401
- msgid "Username contains invalid character"
402
- msgstr "Användarnamn innehåller ogiltiga tecken"
403
-
404
- #: classes/class.swpm-form.php:59
405
- msgid "Username already exists."
406
- msgstr "Användarnamnet existerar redan."
407
-
408
- #: classes/class.swpm-form.php:82
409
- msgid "Password is required"
410
- msgstr "Lösenord krävs"
411
-
412
- #: classes/class.swpm-form.php:89
413
- msgid "Password mismatch"
414
- msgstr "Löserord matchar inte"
415
-
416
- #: classes/class.swpm-form.php:100
417
- msgid "Email is required"
418
- msgstr "E-post krävs"
419
-
420
- #: classes/class.swpm-form.php:104
421
- msgid "Email is invalid"
422
- msgstr "Ogiltig e-postadress"
423
-
424
- #: classes/class.swpm-form.php:120
425
- msgid "Email is already used."
426
- msgstr "E-postadressen används redan."
427
-
428
- #: classes/class.swpm-form.php:178
429
- msgid "Member since field is invalid"
430
- msgstr "Fältet för medlem sedan är ogiltigt"
431
-
432
- #: classes/class.swpm-form.php:189
433
- msgid "Access starts field is invalid"
434
- msgstr "Åtkomst börjar-fältet är ogiltigt"
435
-
436
- #: classes/class.swpm-form.php:199
437
- msgid "Gender field is invalid"
438
- msgstr "Könfältet är ogiltigt"
439
-
440
- #: classes/class.swpm-form.php:210
441
- msgid "Account state field is invalid"
442
- msgstr "Kontostatusfältet är ogiltigt"
443
-
444
- #: classes/class.swpm-form.php:217
445
- msgid "Invalid membership level"
446
- msgstr "Ogiltig medlemskapsnivå"
447
-
448
- #: classes/class.swpm-front-registration.php:33
449
- msgid ""
450
- "Error! Invalid Request. Could not find a match for the given security code "
451
- "and the user ID."
452
- msgstr ""
453
- "Fel! Ogiltig begäran. Kunde inte hitta en matchning för angiven säkerhetskod "
454
- "och användar-ID."
455
-
456
- #: classes/class.swpm-front-registration.php:45
457
- #: classes/class.swpm-utils-misc.php:247 views/login.php:36
458
- msgid "Join Us"
459
- msgstr "Bli medlem"
460
-
461
- #: classes/class.swpm-front-registration.php:47
462
- msgid ""
463
- "Free membership is disabled on this site. Please make a payment from the "
464
- msgstr ""
465
- "Gratis medlemskap är inaktiverad på denna webbplats. Vänligen gör en "
466
- "betalning från "
467
-
468
- #: classes/class.swpm-front-registration.php:49
469
- msgid " page to pay for a premium membership."
470
- msgstr " sida för att betala för ett premium-medlemskap."
471
-
472
- #: classes/class.swpm-front-registration.php:51
473
- msgid ""
474
- "You will receive a unique link via email after the payment. You will be able "
475
- "to use that link to complete the premium membership registration."
476
- msgstr ""
477
- "Du kommer att få en unik länk via e-post efter betalningen. Du kommer att "
478
- "kunna använda den länken för att slutföra medlemskapsregistreringen."
479
-
480
- #: classes/class.swpm-front-registration.php:79
481
- msgid "Security check: captcha validation failed."
482
- msgstr "Säkerhetskontroll: captchavalidering misslyckades."
483
-
484
- #: classes/class.swpm-front-registration.php:113
485
- msgid "Registration Successful. "
486
- msgstr "Registreringen lyckades! "
487
-
488
- #: classes/class.swpm-front-registration.php:113
489
- #: classes/class.swpm-utils-misc.php:246 classes/class.swpm-utils-misc.php:258
490
- msgid "Please"
491
- msgstr "Vänligen"
492
-
493
- #: classes/class.swpm-front-registration.php:113
494
- #: classes/class.swpm-utils-misc.php:246 views/login.php:30
495
- msgid "Login"
496
- msgstr "Logga in"
497
-
498
- #: classes/class.swpm-front-registration.php:126
499
- msgid "Please correct the following"
500
- msgstr "Vänligen rätta till följande"
501
-
502
- #: classes/class.swpm-front-registration.php:171
503
- msgid "Membership Level Couldn't be found."
504
- msgstr "Medlemsskapsnivå kunde inte hittas."
505
-
506
- #: classes/class.swpm-front-registration.php:222
507
- msgid "Error! Nonce verification failed for front end profile edit."
508
- msgstr "Fel! Nonce verifiering misslyckades för redigering av frontändprofil."
509
-
510
- #: classes/class.swpm-front-registration.php:230
511
- msgid "Profile updated successfully."
512
- msgstr "Profil uppdaterad."
513
-
514
- #: classes/class.swpm-front-registration.php:239
515
- msgid ""
516
- "Profile updated successfully. You will need to re-login since you changed "
517
- "your password."
518
- msgstr ""
519
- "Profilen uppdaterades. Du behöver logga in nytt då du ändrade ditt "
520
- "lösenord."
521
-
522
- #: classes/class.swpm-front-registration.php:253
523
- msgid "Please correct the following."
524
- msgstr "Vänligen rätta till följande."
525
-
526
- #: classes/class.swpm-front-registration.php:265
527
- msgid "Captcha validation failed."
528
- msgstr "Captcha-validering misslyckades."
529
-
530
- #: classes/class.swpm-front-registration.php:273
531
- msgid "Email address not valid."
532
- msgstr "Ogiltig e-postadress."
533
-
534
- #: classes/class.swpm-front-registration.php:284
535
- msgid "No user found with that email address."
536
- msgstr "Ingen användare hittades med den e-postadressen."
537
-
538
- #: classes/class.swpm-front-registration.php:285
539
- #: classes/class.swpm-front-registration.php:314
540
- msgid "Email Address: "
541
- msgstr "E-postadress: "
542
-
543
- #: classes/class.swpm-front-registration.php:313
544
- msgid "New password has been sent to your email address."
545
- msgstr "Ett nytt lösenord har skickats till din e-postadress."
546
-
547
- #: classes/class.swpm-init-time-tasks.php:117
548
- msgid "Sorry, Nonce verification failed."
549
- msgstr "Tyvärr, Nonceverifiering misslyckades."
550
-
551
- #: classes/class.swpm-init-time-tasks.php:124
552
- msgid "Sorry, Password didn't match."
553
- msgstr "Tyvärr, lösenorden stämmer inte överens."
554
-
555
- #: classes/class.swpm-level-form.php:47
556
- msgid "Date format is not valid."
557
- msgstr "Datumformatet är ogiltigt."
558
-
559
- #: classes/class.swpm-level-form.php:55
560
- msgid "Access duration must be > 0."
561
- msgstr "Åtkomsttiden måste vara > 0."
562
-
563
- #: classes/class.swpm-members.php:10
564
- msgid "Member"
565
- msgstr "Medlem"
566
-
567
- #: classes/class.swpm-members.php:19
568
- #: classes/class.swpm-membership-levels.php:20
569
- msgid "ID"
570
- msgstr "ID"
571
-
572
- #: classes/class.swpm-members.php:20 views/add.php:7 views/admin_add.php:11
573
- #: views/admin_edit.php:19 views/edit.php:14
574
- msgid "Username"
575
- msgstr "Användarnamn"
576
-
577
- #: classes/class.swpm-members.php:21
578
- #: classes/admin-includes/class.swpm-payments-list-table.php:78
579
- #: views/add.php:23 views/admin_member_form_common_part.php:15
580
- #: views/edit.php:30
581
- msgid "First Name"
582
- msgstr "Förnamn"
583
-
584
- #: classes/class.swpm-members.php:22
585
- #: classes/admin-includes/class.swpm-payments-list-table.php:79
586
- #: views/add.php:27 views/admin_member_form_common_part.php:19
587
- #: views/edit.php:34
588
- msgid "Last Name"
589
- msgstr "Efternamn"
590
-
591
- #: classes/class.swpm-members.php:23 views/add.php:11 views/edit.php:18
592
- msgid "Email"
593
- msgstr "E-postadress"
594
-
595
- #: classes/class.swpm-members.php:25 views/admin_member_form_common_part.php:11
596
- msgid "Access Starts"
597
- msgstr "Åtkomst börjar"
598
-
599
- #: classes/class.swpm-members.php:26
600
- msgid "Account State"
601
- msgstr "Kontostatus"
602
-
603
- #: classes/class.swpm-members.php:44
604
- #: classes/class.swpm-membership-levels.php:36
605
- #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:94
606
- #: classes/admin-includes/class.swpm-payments-list-table.php:102
607
- msgid "Delete"
608
- msgstr "Radera"
609
-
610
- #: classes/class.swpm-members.php:45
611
- msgid "Set Status to Active"
612
- msgstr "Ställ in status till Aktiv"
613
-
614
- #: classes/class.swpm-members.php:46
615
- msgid "Set Status to Active and Notify"
616
- msgstr "Ställ in status till Aktiv och Meddela"
617
-
618
- #: classes/class.swpm-members.php:47
619
- msgid "Set Status to Inactive"
620
- msgstr "Ställ in status som inaktiv"
621
-
622
- #: classes/class.swpm-members.php:48
623
- msgid "Set Status to Pending"
624
- msgstr "Markera som väntande"
625
-
626
- #: classes/class.swpm-members.php:49
627
- msgid "Set Status to Expired"
628
- msgstr "Ange Status till utgången"
629
-
630
- #: classes/class.swpm-members.php:70
631
- msgid "incomplete"
632
- msgstr "ofullständig"
633
-
634
- #: classes/class.swpm-members.php:189
635
- msgid "No member found."
636
- msgstr "Medlem ej hittad."
637
-
638
- #: classes/class.swpm-members.php:335
639
- msgid "Error! Nonce verification failed for user delete from admin end."
640
- msgstr ""
641
- "Fel! Nonceverifiering misslyckades för användaren från adminläget (back-end)."
642
-
643
- #: classes/class.swpm-members.php:404 classes/class.swpm-members.php:434
644
- msgid "Error! Please select a membership level first."
645
- msgstr "Fel! Välj en medlemsnivå först."
646
-
647
- #: classes/class.swpm-members.php:421
648
- msgid "Membership level change operation completed successfully."
649
- msgstr "Ändra medlemsnivå slutfördes."
650
-
651
- #: classes/class.swpm-members.php:451
652
- msgid "Access starts date change operation successfully completed."
653
- msgstr "Ändra åtkomstdatum slutfördes."
654
-
655
- #: classes/class.swpm-members.php:460
656
- msgid "Bulk Update Membership Level of Members"
657
- msgstr "Massuppdatering av medlemsnivå av medlemmar"
658
-
659
- #: classes/class.swpm-members.php:463
660
- msgid ""
661
- "You can manually change the membership level of any member by editing the "
662
- "record from the members menu. "
663
- msgstr ""
664
- "Du kan manuellt ändra medlemskap för någon medlem genom att redigera posten "
665
- "från menyn medlemmar. "
666
-
667
- #: classes/class.swpm-members.php:464
668
- msgid ""
669
- "You can use the following option to bulk update the membership level of "
670
- "users who belong to the level you select below."
671
- msgstr ""
672
- "Du kan använda följande alternativ för att massuppdatera medlemsnivån för "
673
- "medlemmar med nivån du väljer nedan."
674
-
675
- #: classes/class.swpm-members.php:470 classes/class.swpm-members.php:518
676
- msgid "Membership Level: "
677
- msgstr "Medlemskapsnivå: "
678
-
679
- #: classes/class.swpm-members.php:474
680
- msgid "Select Current Level"
681
- msgstr "Välj nuvarande nivå"
682
-
683
- #: classes/class.swpm-members.php:477
684
- msgid ""
685
- "Select the current membership level (the membership level of all members who "
686
- "are in this level will be updated)."
687
- msgstr ""
688
- "Välj den nuvarande medlemsnivå (medlemskap nivån på alla medlemmar som är i "
689
- "denna nivå kommer att uppdateras)."
690
-
691
- #: classes/class.swpm-members.php:483
692
- msgid "Level to Change to: "
693
- msgstr "Ändra nivå till: "
694
-
695
- #: classes/class.swpm-members.php:487
696
- msgid "Select Target Level"
697
- msgstr "Välj målnivå"
698
-
699
- #: classes/class.swpm-members.php:490
700
- msgid "Select the new membership level."
701
- msgstr "Välj ny medlemskapsnivå."
702
-
703
- #: classes/class.swpm-members.php:496
704
- msgid "Bulk Change Membership Level"
705
- msgstr "Massändra medlemskapsnivå"
706
-
707
- #: classes/class.swpm-members.php:506
708
- msgid "Bulk Update Access Starts Date of Members"
709
- msgstr "Massuppdatera åtkomstsstartdatum för medlemmar"
710
-
711
- #: classes/class.swpm-members.php:510
712
- msgid ""
713
- "The access starts date of a member is set to the day the user registers. "
714
- "This date value is used to calculate how long the member can access your "
715
- "content that are protected with a duration type protection in the membership "
716
- "level. "
717
- msgstr ""
718
- "Åtkomststartdatum är inställt till den dag då användaren registrerar sig. "
719
- "Värdet avvänds för att beräkna hur länge medlemmen får åtkomst till "
720
- "nivåskyddat innehåll. "
721
-
722
- #: classes/class.swpm-members.php:511
723
- msgid ""
724
- "You can manually set a specific access starts date value of all members who "
725
- "belong to a particular level using the following option."
726
- msgstr ""
727
- "Du kan ställa in ett specifikt startdatum för alla medlemmar på en viss nivå "
728
- "med följande inställning."
729
-
730
- #: classes/class.swpm-members.php:521
731
- msgid "Select Level"
732
- msgstr "Välj nivå"
733
-
734
- #: classes/class.swpm-members.php:524
735
- msgid ""
736
- "Select the Membership level (the access start date of all members who are in "
737
- "this level will be updated)."
738
- msgstr ""
739
- "Välj medlemskapsnivå (åtkomstsstartdatum för alla medlemmar som är i denna "
740
- "nivå kommer att uppdateras)."
741
-
742
- #: classes/class.swpm-members.php:533
743
- msgid "Specify the access starts date value."
744
- msgstr "Specifiera åtkomstsstartdatum."
745
-
746
- #: classes/class.swpm-members.php:539
747
- msgid "Bulk Change Access Starts Date"
748
- msgstr "Massuppdatera åtkomstsstartdatum"
749
-
750
- #: classes/class.swpm-members.php:574
751
- msgid "Simple WP Membership::Members"
752
- msgstr "Simple WP Membership::Medlemmar"
753
-
754
- #: classes/class.swpm-members.php:575
755
- #: classes/class.swpm-membership-levels.php:225 views/admin_members_list.php:43
756
- msgid "Add New"
757
- msgstr "Lägg till"
758
-
759
- #: classes/class.swpm-members.php:580 views/admin_add.php:6
760
- msgid "Add Member"
761
- msgstr "Lägg till medlem"
762
-
763
- #: classes/class.swpm-members.php:581
764
- msgid "Bulk Operation"
765
- msgstr "Massåtgärder"
766
-
767
- #: classes/class.swpm-membership-level.php:52
768
- msgid ""
769
- "Error! Nonce verification failed for membership level creation from admin "
770
- "end."
771
- msgstr ""
772
- "Fel! Nounceverifiering misslyckades för att skapa medlemsskapsnivå från "
773
- "adminläget (back-end)"
774
-
775
- #: classes/class.swpm-membership-level.php:64
776
- msgid "Membership Level Creation Successful."
777
- msgstr "Ny medlemsskapsnivå har skapats."
778
-
779
- #: classes/class.swpm-membership-level.php:80
780
- msgid ""
781
- "Error! Nonce verification failed for membership level edit from admin end."
782
- msgstr ""
783
- "Fel! Nounceverifieringen misslyckades för att redigera medlemskapsnivå från "
784
- "adminläge (back-end)."
785
-
786
- #: classes/class.swpm-membership-level.php:92
787
- msgid "Membership Level Updated Successfully."
788
- msgstr "Uppdatering av medlemskapsnivå lyckades."
789
-
790
- #: classes/class.swpm-membership-levels.php:22
791
- msgid "Role"
792
- msgstr "Roll"
793
-
794
- #: classes/class.swpm-membership-levels.php:23
795
- msgid "Access Valid For/Until"
796
- msgstr "Åtkomst giltig till"
797
-
798
- #: classes/class.swpm-membership-levels.php:133
799
- msgid "No membership levels found."
800
- msgstr "Ingen medlemsskapsnivå hittades."
801
-
802
- #: classes/class.swpm-membership-levels.php:196
803
- msgid ""
804
- "Error! Nonce verification failed for membership level delete from admin end."
805
- msgstr ""
806
- "Fel! Nounceverifieringen misslyckades för att radera medlemskapsnivån från "
807
- "adminläge (back-end)."
808
-
809
- #: classes/class.swpm-membership-levels.php:215 views/admin_members_list.php:30
810
- #: views/payments/admin_all_payment_transactions.php:16
811
- msgid "Search"
812
- msgstr "Sök"
813
-
814
- #: classes/class.swpm-membership-levels.php:260
815
- msgid "Simple WP Membership::Membership Levels"
816
- msgstr "Simple WP Membership::Medlemsnivåer"
817
-
818
- #: classes/class.swpm-membership-levels.php:265
819
- msgid "Add Level"
820
- msgstr "Lägg till nivå"
821
-
822
- #: classes/class.swpm-membership-levels.php:266
823
- msgid "Manage Content Protection"
824
- msgstr "Redigera innehållsskydd"
825
-
826
- #: classes/class.swpm-membership-levels.php:267
827
- msgid "Category Protection"
828
- msgstr "Kategoriskydd"
829
-
830
- #: classes/class.swpm-membership-levels.php:268
831
- msgid "Post and Page Protection"
832
- msgstr "Post- och sidskydd"
833
-
834
- #: classes/class.swpm-post-list.php:43 classes/class.swpm-post-list.php:52
835
- #: classes/class.swpm-post-list.php:62
836
- #: classes/admin-includes/class.swpm-payments-list-table.php:81
837
- msgid "Date"
838
- msgstr "Datum"
839
-
840
- #: classes/class.swpm-post-list.php:44 classes/class.swpm-post-list.php:53
841
- #: classes/class.swpm-post-list.php:63
842
- msgid "Title"
843
- msgstr "Titel"
844
-
845
- #: classes/class.swpm-post-list.php:45 classes/class.swpm-post-list.php:54
846
- #: classes/class.swpm-post-list.php:64
847
- msgid "Author"
848
- msgstr "Författare"
849
-
850
- #: classes/class.swpm-post-list.php:46 classes/class.swpm-post-list.php:56
851
- #: classes/class.swpm-post-list.php:66
852
- msgid "Status"
853
- msgstr "Status"
854
-
855
- #: classes/class.swpm-post-list.php:55
856
- msgid "Categories"
857
- msgstr "Kategorier"
858
-
859
- #: classes/class.swpm-post-list.php:65
860
- msgid "Type"
861
- msgstr "Typ"
862
-
863
- #: classes/class.swpm-post-list.php:125
864
- msgid "Protection settings updated!"
865
- msgstr "Skyddsinställningar uppdaterade!"
866
-
867
- #: classes/class.swpm-post-list.php:230
868
- msgid "No items found."
869
- msgstr "Inga objekt hittades."
870
-
871
- #: classes/class.swpm-settings.php:26 classes/class.swpm-settings.php:54
872
- msgid "General Settings"
873
- msgstr "Allmänna inställningar"
874
-
875
- #: classes/class.swpm-settings.php:27
876
- msgid "Payment Settings"
877
- msgstr "Betalningsinställningar"
878
-
879
- #: classes/class.swpm-settings.php:28
880
- msgid "Email Settings"
881
- msgstr "E-postinställningar"
882
-
883
- #: classes/class.swpm-settings.php:29
884
- msgid "Tools"
885
- msgstr "Verktyg"
886
-
887
- #: classes/class.swpm-settings.php:30 classes/class.swpm-settings.php:180
888
- msgid "Advanced Settings"
889
- msgstr "Avancerade inställningar"
890
-
891
- #: classes/class.swpm-settings.php:31
892
- msgid "Addons Settings"
893
- msgstr "Tilläggsinställningar"
894
-
895
- #: classes/class.swpm-settings.php:53
896
- msgid "Plugin Documentation"
897
- msgstr "Dokumentation för plugin"
898
-
899
- #: classes/class.swpm-settings.php:55
900
- msgid "Enable Free Membership"
901
- msgstr "Möjliggör gratis medlemskapsnivå"
902
-
903
- #: classes/class.swpm-settings.php:56
904
- msgid ""
905
- "Enable/disable registration for free membership level. When you enable this "
906
- "option, make sure to specify a free membership level ID in the field below."
907
- msgstr ""
908
- "Aktivera/inaktivera registrering för gratis medlemsnivå. När du aktiverar "
909
- "det här alternativet, se till att du anger ett gratis medlemsnivå ID i "
910
- "fältet nedan."
911
-
912
- #: classes/class.swpm-settings.php:57
913
- msgid "Free Membership Level ID"
914
- msgstr "Gratis medlemskapsnivå ID"
915
-
916
- #: classes/class.swpm-settings.php:58
917
- msgid "Assign free membership level ID"
918
- msgstr "Tilldela gratis medlemskapsnivå ID"
919
-
920
- #: classes/class.swpm-settings.php:59
921
- msgid "Enable More Tag Protection"
922
- msgstr "Möjliggör \"läs mer\"-taggskydd"
923
-
924
- #: classes/class.swpm-settings.php:60
925
- msgid ""
926
- "Enables or disables \"more\" tag protection in the posts and pages. Anything "
927
- "after the More tag is protected. Anything before the more tag is teaser "
928
- "content."
929
- msgstr ""
930
- "Möjliggör eller möjliggör ej \"läs mer\"-tag skydd hos inlägg och sidor. "
931
- "Allt efter \"Läs mer\" tag är skyddat. Allt innan \"läs mer\" är teaser."
932
-
933
- #: classes/class.swpm-settings.php:61
934
- msgid "Hide Adminbar"
935
- msgstr "Göm Adminpanel"
936
-
937
- #: classes/class.swpm-settings.php:62
938
- msgid ""
939
- "WordPress shows an admin toolbar to the logged in users of the site. Check "
940
- "this if you want to hide that admin toolbar in the frontend of your site."
941
- msgstr ""
942
- "Wordpress visar en Adminpanel för inloggade användare på sidan. Bocka av "
943
- "checkboxen om du vill gömma Adminpanelen på framsidan av din sida."
944
-
945
- #: classes/class.swpm-settings.php:63
946
- msgid "Show Adminbar to Admin"
947
- msgstr "Visa adminpanel för administratörer"
948
-
949
- #: classes/class.swpm-settings.php:64
950
- msgid ""
951
- "Use this option if you want to show the admin toolbar to admin users only. "
952
- "The admin toolbar will be hidden for all other users."
953
- msgstr ""
954
- "Använd detta alternativ om du vll visa adminpanel enbart för "
955
- "administratörer. Panelen döljs för andra användare."
956
-
957
- #: classes/class.swpm-settings.php:65
958
- msgid "Disable Access to WP Dashboard"
959
- msgstr "Inaktivera åtkomst till WP-panelen"
960
-
961
- #: classes/class.swpm-settings.php:66
962
- msgid ""
963
- "WordPress allows a sandard wp user to be able to go to the wp-admin URL and "
964
- "access his profile from the wp dashbaord. Using this option will prevent any "
965
- "non admin users from going to the wp dashboard."
966
- msgstr ""
967
- "WordPress tillåter en sandard wp-användare för att kunna gå till wp-admin "
968
- "webbadressen och hans profil från den wp-instrumentpanel. Med det här "
969
- "alternativet kommer att förhindra icke administratörsanvändare från att gå "
970
- "till wp dashboard."
971
-
972
- #: classes/class.swpm-settings.php:68
973
- msgid "Default Account Status"
974
- msgstr "Standard kontostatus"
975
-
976
- #: classes/class.swpm-settings.php:71
977
- msgid ""
978
- "Select the default account status for newly registered users. If you want to "
979
- "manually approve the members then you can set the status to \"Pending\"."
980
- msgstr ""
981
- "Välj standard kontostatus för de nyregistrerade användare. Om du vill "
982
- "godkänna medlemmarna manuellt så kan du sätta statusen till \"avvaktande\"."
983
-
984
- #: classes/class.swpm-settings.php:73
985
- msgid "Members Must be Logged in to Comment"
986
- msgstr "Du måste vara inloggad för att kunna lägga till en kommentar"
987
-
988
- #: classes/class.swpm-settings.php:74
989
- msgid ""
990
- "Enable this option if you only want the members of the site to be able to "
991
- "post a comment."
992
- msgstr ""
993
- "Aktivera det här alternativet om du bara vill medlemmarna i webbplatsen för "
994
- "att kunna skriva en kommentar."
995
-
996
- #: classes/class.swpm-settings.php:83
997
- msgid "Pages Settings"
998
- msgstr "Sidoinställningar"
999
-
1000
- #: classes/class.swpm-settings.php:84
1001
- msgid "Login Page URL"
1002
- msgstr "Inloggningssida URL"
1003
-
1004
- #: classes/class.swpm-settings.php:86
1005
- msgid "Registration Page URL"
1006
- msgstr "Registreringssida URL"
1007
-
1008
- #: classes/class.swpm-settings.php:88
1009
- msgid "Join Us Page URL"
1010
- msgstr "Bli medlemsida URL"
1011
-
1012
- #: classes/class.swpm-settings.php:90
1013
- msgid "Edit Profile Page URL"
1014
- msgstr "Profilredigeringssida URL"
1015
-
1016
- #: classes/class.swpm-settings.php:92
1017
- msgid "Password Reset Page URL"
1018
- msgstr "Sida för återställning av lösenord"
1019
-
1020
- #: classes/class.swpm-settings.php:95
1021
- msgid "Test & Debug Settings"
1022
- msgstr "Inställningar för test och felsökning"
1023
-
1024
- #: classes/class.swpm-settings.php:97
1025
- msgid "Check this option to enable debug logging."
1026
- msgstr "Markera detta alternativ för att aktivera felsökningsloggning."
1027
-
1028
- #: classes/class.swpm-settings.php:102
1029
- msgid "Enable Sandbox Testing"
1030
- msgstr "Möjliggör Sandbox-test"
1031
-
1032
- #: classes/class.swpm-settings.php:103
1033
- msgid "Enable this option if you want to do sandbox payment testing."
1034
- msgstr "Möjliggör detta om du vill ha sandbox betalningstest."
1035
-
1036
- #: classes/class.swpm-settings.php:116
1037
- msgid "Email Settings Overview"
1038
- msgstr "E-postsinställningar översikt"
1039
-
1040
- #: classes/class.swpm-settings.php:117
1041
- msgid "Email Misc. Settings"
1042
- msgstr "Inställningar för e-post"
1043
-
1044
- #: classes/class.swpm-settings.php:119
1045
- msgid "From Email Address"
1046
- msgstr "Från e-postadressen"
1047
-
1048
- #: classes/class.swpm-settings.php:123
1049
- msgid "Email Settings (Prompt to Complete Registration )"
1050
- msgstr "Inställningar för e-post (prompt to complete registration)"
1051
-
1052
- #: classes/class.swpm-settings.php:124 classes/class.swpm-settings.php:137
1053
- #: classes/class.swpm-settings.php:155 classes/class.swpm-settings.php:160
1054
- #: classes/class.swpm-settings.php:165
1055
- msgid "Email Subject"
1056
- msgstr "E-postsämne"
1057
-
1058
- #: classes/class.swpm-settings.php:126 classes/class.swpm-settings.php:139
1059
- #: classes/class.swpm-settings.php:156 classes/class.swpm-settings.php:161
1060
- #: classes/class.swpm-settings.php:166
1061
- msgid "Email Body"
1062
- msgstr "E-postmeddelande"
1063
-
1064
- #: classes/class.swpm-settings.php:130
1065
- msgid ""
1066
- "Enter the email address where you want the admin notification email to be "
1067
- "sent to."
1068
- msgstr "Ange den e-postadress dit admin-e-postmeddelanden ska skickas."
1069
-
1070
- #: classes/class.swpm-settings.php:131
1071
- msgid ""
1072
- " You can put multiple email addresses separated by comma (,) in the above "
1073
- "field to send the notification to multiple email addresses."
1074
- msgstr ""
1075
- " Du kan skriva flera adresser separerade med ett komma (,) i fältet ovan för "
1076
- "att skicka till flera adresser."
1077
-
1078
- #: classes/class.swpm-settings.php:133
1079
- msgid "Enter the subject for the admin notification email."
1080
- msgstr "Ange ämne för e-postmeddelande till admin."
1081
-
1082
- #: classes/class.swpm-settings.php:134
1083
- msgid ""
1084
- "This email will be sent to the admin when a new user completes the "
1085
- "membership registration. Only works if you have enabled the \"Send "
1086
- "Notification to Admin\" option above."
1087
- msgstr ""
1088
- "Detta mail skickas till admin när en ny användare slutför registrering. "
1089
- "Fungerar bara om du har aktiverat alternativet ”skickar anmälan till Admin” "
1090
- "ovan."
1091
-
1092
- #: classes/class.swpm-settings.php:136
1093
- msgid "Email Settings (Registration Complete)"
1094
- msgstr "Inställningar för e-post (lyckad registrering)"
1095
-
1096
- #: classes/class.swpm-settings.php:141
1097
- msgid "Send Notification to Admin"
1098
- msgstr "Skicka notifiering till Admin"
1099
-
1100
- #: classes/class.swpm-settings.php:142
1101
- msgid ""
1102
- "Enable this option if you want the admin to receive a notification when a "
1103
- "member registers."
1104
- msgstr ""
1105
- "Aktivera det här alternativet om du att admin får ett meddelande när en ny "
1106
- "medlem registrerar."
1107
-
1108
- #: classes/class.swpm-settings.php:143
1109
- msgid "Admin Email Address"
1110
- msgstr "E-postadress till administratören"
1111
-
1112
- #: classes/class.swpm-settings.php:145
1113
- msgid "Admin Notification Email Subject"
1114
- msgstr "Ämne Adminmeddelande"
1115
-
1116
- #: classes/class.swpm-settings.php:147
1117
- msgid "Admin Notification Email Body"
1118
- msgstr "Meddelande Adminmeddelande"
1119
-
1120
- #: classes/class.swpm-settings.php:150
1121
- msgid "Send Email to Member When Added via Admin Dashboard"
1122
- msgstr "Skicka e-post till medlemmen när hen är tillagd via Adminpanelen"
1123
-
1124
- #: classes/class.swpm-settings.php:154
1125
- msgid "Email Settings (Password Reset)"
1126
- msgstr "E-postinställningar (Återställning lösenord)"
1127
-
1128
- #: classes/class.swpm-settings.php:159
1129
- msgid " Email Settings (Account Upgrade Notification)"
1130
- msgstr " E-postinställningar (notifiering av kontouppgradering)"
1131
-
1132
- #: classes/class.swpm-settings.php:164
1133
- msgid " Email Settings (Bulk Account Activate Notification)"
1134
- msgstr " E-postinställningar (notifiering massaktivering)"
1135
-
1136
- #: classes/class.swpm-settings.php:182
1137
- msgid "Enable Expired Account Login"
1138
- msgstr "Aktivera inloggning av utgått medlemsskap"
1139
-
1140
- #: classes/class.swpm-settings.php:183
1141
- msgid ""
1142
- "When enabled, expired members will be able to log into the system but won't "
1143
- "be able to view any protected content. This allows them to easily renew "
1144
- "their account by making another payment."
1145
- msgstr ""
1146
- "Om aktiverad kan medlemmar med utgått medlemskap logga in men inte se "
1147
- "skyddad innehåll. Detta tillåter dem att enkelt förnya sitt medlemskap."
1148
-
1149
- #: classes/class.swpm-settings.php:185
1150
- msgid "Membership Renewal URL"
1151
- msgstr "Medlemskapsförnyelse URL"
1152
-
1153
- #: classes/class.swpm-settings.php:186
1154
- msgid ""
1155
- "You can create a renewal page for your site. Read <a href=\"https://simple-"
1156
- "membership-plugin.com/creating-membership-renewal-button/\" target=\"_blank"
1157
- "\">this documentation</a> to learn how to create a renewal page."
1158
- msgstr ""
1159
- "Du kan skapa en förnyelse sida för din webbplats. Läs <a href=\"https://"
1160
- "simple-membership-plugin.com/creating-membership-renewal-button/\" target="
1161
- "\"_blank\">denna dokumentation</a> om hur du skapar en förnyelse sida."
1162
-
1163
- #: classes/class.swpm-settings.php:188
1164
- msgid "After Registration Redirect URL"
1165
- msgstr "Efter-registreringssida URL"
1166
-
1167
- #: classes/class.swpm-settings.php:189
1168
- msgid ""
1169
- "You can enter an URL here to redirect the members to this page after they "
1170
- "submit the registration form. Read <a href=\"https://simple-membership-"
1171
- "plugin.com/configure-registration-redirect-members/\" target=\"_blank\">this "
1172
- "documentation</a> to learn how to setup after registration redirect."
1173
- msgstr ""
1174
- "Du kan ange en webbadress här för att omdirigera medlemmarna till den här "
1175
- "sidan efter att de har skickat in registreringsformuläret. Läs <a href="
1176
- "\"https://simple-membership-plugin.com/configure-registration-redirect-"
1177
- "members/\" target=\"_blank\"> den här dokumentationen </a> för att lära dig "
1178
- "hur du konfigurerar efter registrering omdirigering."
1179
-
1180
- #: classes/class.swpm-settings.php:191
1181
- msgid "Allow Account Deletion"
1182
- msgstr "Tillåt radering av konto"
1183
-
1184
- #: classes/class.swpm-settings.php:192
1185
- msgid "Allow users to delete their accounts."
1186
- msgstr "Tillåt användare att radera sina konton."
1187
-
1188
- #: classes/class.swpm-settings.php:194
1189
- msgid "Force WP User Synchronization"
1190
- msgstr "Tvinga WP användarsynkronisering"
1191
-
1192
- #: classes/class.swpm-settings.php:195
1193
- msgid ""
1194
- "Enable this option if you want to force the member login to be synchronized "
1195
- "with WP user account. This can be useful if you are using another plugin "
1196
- "that uses WP user records. For example: bbPress plugin."
1197
- msgstr ""
1198
- "Aktivera detta alternativ för att tving synkronisering med WP-användare. "
1199
- "Användbart om ni använder andra tilägg som använder WP-användare. Ex bbPress."
1200
-
1201
- #: classes/class.swpm-settings.php:197
1202
- msgid "Use WordPress Timezone"
1203
- msgstr "Använd WordPress tidszoner"
1204
-
1205
- #: classes/class.swpm-settings.php:198
1206
- msgid ""
1207
- "Use this option if you want to use the timezone value specified in your "
1208
- "WordPress General Settings interface."
1209
- msgstr ""
1210
- "Aktivera för att använda WordPress tidszoner specifierat under WordPress "
1211
- "Allmänna inställningar."
1212
-
1213
- #: classes/class.swpm-settings.php:200
1214
- msgid "Auto Delete Pending Account"
1215
- msgstr "Automatisk borttagning av väntande konton"
1216
-
1217
- #: classes/class.swpm-settings.php:203
1218
- msgid "Select how long you want to keep \"pending\" account."
1219
- msgstr "Välj hur länge du vill behålla ”väntande” konton."
1220
-
1221
- #: classes/class.swpm-settings.php:205
1222
- msgid "Admin Dashboard Access Permission"
1223
- msgstr "Adminpanel åtkomstbehörighet"
1224
-
1225
- #: classes/class.swpm-settings.php:208
1226
- msgid ""
1227
- "SWPM admin dashboard is accessible to admin users only (just like any other "
1228
- "plugin). You can allow users with other WP user role to access the SWPM "
1229
- "admin dashboard by selecting a value here."
1230
- msgstr ""
1231
- "SWPM adminpanel är bara tillgänglig för administratörer (precis som för "
1232
- "andra tillägg). Du kan tillåta användare med andra WP-roller att få tillgång "
1233
- "till SWPM adminpanel genom att välja ett värde här."
1234
-
1235
- #: classes/class.swpm-settings.php:298 classes/class.swpm-settings.php:344
1236
- #: classes/class.swpm-settings.php:369
1237
- msgid "Settings updated!"
1238
- msgstr "Inställningar uppdaterade!"
1239
-
1240
- #: classes/class.swpm-settings.php:303
1241
- msgid "General Plugin Settings."
1242
- msgstr "Allmänna inställningar."
1243
-
1244
- #: classes/class.swpm-settings.php:307
1245
- msgid "Page Setup and URL Related settings."
1246
- msgstr "Sid- och URLinställningar."
1247
-
1248
- #: classes/class.swpm-settings.php:310
1249
- msgid ""
1250
- "The following pages are required for the plugin to function correctly. These "
1251
- "pages were automatically created by the plugin at install time."
1252
- msgstr ""
1253
- "Följande sidor behövs för att SWMP-tillägget ska fungera korrekt. Dessa "
1254
- "skapades automatiskt när tillägget installerades."
1255
-
1256
- #: classes/class.swpm-settings.php:315
1257
- msgid "Testing and Debug Related Settings."
1258
- msgstr "Inställningar för test och felsökning."
1259
-
1260
- #: classes/class.swpm-settings.php:319
1261
- msgid ""
1262
- "This email will be sent to your users when they complete the registration "
1263
- "and become a member."
1264
- msgstr ""
1265
- "Detta e-post skickas till användaren när de registrerat sig och blivit "
1266
- "medlem."
1267
-
1268
- #: classes/class.swpm-settings.php:323
1269
- msgid ""
1270
- "This email will be sent to your users when they use the password reset "
1271
- "functionality."
1272
- msgstr ""
1273
- "Detta e-post skickas till användaren när the använder "
1274
- "lösenordsåterställningen."
1275
-
1276
- #: classes/class.swpm-settings.php:329
1277
- msgid ""
1278
- "This interface lets you custsomize the various emails that gets sent to your "
1279
- "members for various actions. The default settings should be good to get your "
1280
- "started."
1281
- msgstr ""
1282
- "Dessa inställningar låter dig anpassa e-postmeddelandena som skickas till "
1283
- "medlemmarna. Standardinställningarna funkar för att komma igång."
1284
-
1285
- #: classes/class.swpm-settings.php:333
1286
- msgid "This documentation"
1287
- msgstr "Dokumentation för tillägget"
1288
-
1289
- #: classes/class.swpm-settings.php:334
1290
- msgid ""
1291
- " explains what email merge tags you can use in the email body field to "
1292
- "customize it (if you want to)."
1293
- msgstr ""
1294
- " förklarar vad e-post \"merge\"-tags du kan använda för att anpassa e-"
1295
- "postmeddelanden (om du vill)"
1296
-
1297
- #: classes/class.swpm-settings.php:347
1298
- msgid "Settings in this section apply to all emails."
1299
- msgstr "Dessa inställningar gäller för all e-post."
1300
-
1301
- #: classes/class.swpm-settings.php:351
1302
- msgid ""
1303
- "This email will be sent to your users after account upgrade (when an "
1304
- "existing member pays for a new membership level)."
1305
- msgstr ""
1306
- "Detta e-post skickas till användaren när de uppgraderat sitt konto "
1307
- "(existerande medlem har betalat för en högre nivå)"
1308
-
1309
- #: classes/class.swpm-settings.php:355
1310
- msgid ""
1311
- "This email will be sent to your members when you use the bulk account "
1312
- "activate and notify action."
1313
- msgstr ""
1314
- "Detta mail kommer att skickas till dina medlemmar när du använder masskonto-"
1315
- "aktivera och notifiera-åtgärder."
1316
-
1317
- #: classes/class.swpm-settings.php:356
1318
- msgid ""
1319
- " You cannot use email marge tags in this email. You can only use generic "
1320
- "text."
1321
- msgstr ""
1322
- " Du kan inte använda e-postmargetaggar i detta mail. Du kan endast använda "
1323
- "generiska text."
1324
-
1325
- #: classes/class.swpm-settings.php:361
1326
- msgid ""
1327
- "This email will be sent to prompt users to complete registration after the "
1328
- "payment."
1329
- msgstr ""
1330
- "Denna e-post kommer att skickas för att uppmana användarna att slutföra "
1331
- "registreringen efter betalning."
1332
-
1333
- #: classes/class.swpm-settings.php:372
1334
- msgid "This page allows you to configure some advanced features of the plugin."
1335
- msgstr ""
1336
- " den här sidan kan du konfigurera några avancerade funktioner i tillägget."
1337
-
1338
- #: classes/class.swpm-settings.php:483
1339
- msgid "Simple WP Membership::Settings"
1340
- msgstr "Inställningar för Simple WP Membership"
1341
-
1342
- #: classes/class.swpm-utils-member.php:21
1343
- #: classes/class.swpm-utils-member.php:29
1344
- #: classes/class.swpm-utils-member.php:37
1345
- #: classes/class.swpm-utils-member.php:47
1346
- msgid "User is not logged in."
1347
- msgstr "Användare inte inloggad."
1348
-
1349
- #: classes/class.swpm-utils-misc.php:50
1350
- msgid "Registration"
1351
- msgstr "Registrering"
1352
-
1353
- #: classes/class.swpm-utils-misc.php:73
1354
- msgid "Member Login"
1355
- msgstr "Logga in"
1356
-
1357
- #: classes/class.swpm-utils-misc.php:96
1358
- msgid "Profile"
1359
- msgstr "Profil"
1360
-
1361
- #: classes/class.swpm-utils-misc.php:119
1362
- msgid "Password Reset"
1363
- msgstr "Återställning av lösenord"
1364
-
1365
- #: classes/class.swpm-utils-misc.php:247
1366
- msgid "Not a Member?"
1367
- msgstr "Är du är inte medlem?"
1368
-
1369
- #: classes/class.swpm-utils-misc.php:258
1370
- msgid "renew"
1371
- msgstr "förnya"
1372
-
1373
- #: classes/class.swpm-utils-misc.php:258
1374
- msgid " your account to gain access to this content."
1375
- msgstr " ditt konto för att få åtkomst till detta innehåll."
1376
-
1377
- #: classes/class.swpm-utils-misc.php:316 classes/class.swpm-utils-misc.php:322
1378
- msgid "Error! This action ("
1379
- msgstr "Fel! Denna åtgärd ("
1380
-
1381
- #: classes/class.swpm-utils-misc.php:394
1382
- msgid "(Please Select)"
1383
- msgstr "(Vänligen välj)"
1384
-
1385
- #: classes/class.swpm-utils-template.php:38
1386
- msgid "Error! Failed to find a template path for the specified template: "
1387
- msgstr "Fel! Misslyckades med att hitta en mallsökväg för den angivna mallen: "
1388
-
1389
- #: classes/class.swpm-utils.php:100
1390
- msgid "Never"
1391
- msgstr "Aldrig"
1392
-
1393
- #: classes/class.swpm-utils.php:115 views/admin_members_list.php:19
1394
- msgid "Active"
1395
- msgstr "Aktiv"
1396
-
1397
- #: classes/class.swpm-utils.php:116 views/admin_members_list.php:20
1398
- msgid "Inactive"
1399
- msgstr "Inaktiv"
1400
-
1401
- #: classes/class.swpm-utils.php:117 views/admin_members_list.php:21
1402
- msgid "Pending"
1403
- msgstr "Avvaktande"
1404
-
1405
- #: classes/class.swpm-utils.php:118 views/admin_members_list.php:23
1406
- msgid "Expired"
1407
- msgstr "Upphöra"
1408
-
1409
- #: classes/class.swpm-utils.php:459
1410
- msgid "Delete Account"
1411
- msgstr "Radera Kontot"
1412
-
1413
- #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:75
1414
- msgid "Payment Button ID"
1415
- msgstr "Betalknapp ID"
1416
-
1417
- #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:76
1418
- msgid "Payment Button Title"
1419
- msgstr "Titel betalningsknapp"
1420
-
1421
- #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:77
1422
- msgid "Membership Level ID"
1423
- msgstr "Medlemskapsnivå ID"
1424
-
1425
- #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:78
1426
- msgid "Button Type"
1427
- msgstr "Knapptyp"
1428
-
1429
- #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:79
1430
- msgid "Button Shortcode"
1431
- msgstr "Knappar"
1432
-
1433
- #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:127
1434
- #: views/admin_members_list.php:9
1435
- #: views/payments/admin_all_payment_transactions.php:32
1436
- msgid "The selected entry was deleted!"
1437
- msgstr "Den valda posten togs bort!"
1438
-
1439
- #: classes/admin-includes/class.swpm-payments-admin-menu.php:21
1440
- msgid "Simple Membership::Payments"
1441
- msgstr "Simple WP Membership::Betalningar"
1442
-
1443
- #: classes/admin-includes/class.swpm-payments-admin-menu.php:25
1444
- msgid "Transactions"
1445
- msgstr "Transaktioner"
1446
-
1447
- #: classes/admin-includes/class.swpm-payments-admin-menu.php:26
1448
- msgid "Manage Payment Buttons"
1449
- msgstr "Hantera betalningsknappar"
1450
-
1451
- #: classes/admin-includes/class.swpm-payments-admin-menu.php:27
1452
- #: views/payments/admin_payment_buttons.php:27
1453
- msgid "Create New Button"
1454
- msgstr "Lägg till ny knapp"
1455
-
1456
- #: classes/admin-includes/class.swpm-payments-list-table.php:57
1457
- msgid "View Profile"
1458
- msgstr "Visa profil"
1459
-
1460
- #: classes/admin-includes/class.swpm-payments-list-table.php:76
1461
- msgid "Row ID"
1462
- msgstr "Rad-ID"
1463
-
1464
- #: classes/admin-includes/class.swpm-payments-list-table.php:77
1465
- #: views/forgot_password.php:5
1466
- msgid "Email Address"
1467
- msgstr "E-postadress"
1468
-
1469
- #: classes/admin-includes/class.swpm-payments-list-table.php:80
1470
- msgid "Member Profile"
1471
- msgstr "Medlemsprofil"
1472
-
1473
- #: classes/admin-includes/class.swpm-payments-list-table.php:82
1474
- msgid "Transaction ID"
1475
- msgstr "Transaktions-ID"
1476
-
1477
- #: classes/admin-includes/class.swpm-payments-list-table.php:83
1478
- msgid "Subscriber ID"
1479
- msgstr "Prenumerant-ID"
1480
-
1481
- #: classes/admin-includes/class.swpm-payments-list-table.php:84
1482
- msgid "Amount"
1483
- msgstr "Belopp"
1484
-
1485
- #: classes/shortcode-related/class.swpm-shortcodes-handler.php:57
1486
- msgid "Your membership profile will be updated to reflect the payment."
1487
- msgstr "Din medlemsprofil kommer att uppdateras efter betalningen."
1488
-
1489
- #: classes/shortcode-related/class.swpm-shortcodes-handler.php:58
1490
- msgid "Your profile username: "
1491
- msgstr "Din profils användarnamn: "
1492
-
1493
- #: classes/shortcode-related/class.swpm-shortcodes-handler.php:70
1494
- msgid "Click on the following link to complete the registration."
1495
- msgstr "Klicka på följande länk för att slutföra registreringen."
1496
-
1497
- #: classes/shortcode-related/class.swpm-shortcodes-handler.php:71
1498
- msgid "Click here to complete your paid registration"
1499
- msgstr "Klicka här för att slutföra din betalda registrering"
1500
-
1501
- #: classes/shortcode-related/class.swpm-shortcodes-handler.php:76
1502
- msgid ""
1503
- "If you have just made a membership payment then your payment is yet to be "
1504
- "processed. Please check back in a few minutes. An email will be sent to you "
1505
- "with the details shortly."
1506
- msgstr ""
1507
- "Om du just har gjort en medlemsbetalning så har den ännu inte behandlats. "
1508
- "Vänligen kontrollera om några minuter. Ett e-postmeddelande kommer att "
1509
- "skickas till dig med detaljerna inom kort."
1510
-
1511
- #: classes/shortcode-related/class.swpm-shortcodes-handler.php:90
1512
- msgid "Expiry: "
1513
- msgstr "Utgångsdatum: "
1514
-
1515
- #: classes/shortcode-related/class.swpm-shortcodes-handler.php:92
1516
- msgid "You are not logged-in as a member"
1517
- msgstr "Du är inte inloggad som medlem"
1518
-
1519
- #: views/add.php:15 views/admin_add.php:19 views/admin_edit.php:44
1520
- #: views/edit.php:22 views/login.php:17
1521
- msgid "Password"
1522
- msgstr "Lösenord"
1523
-
1524
- #: views/add.php:19 views/edit.php:26
1525
- msgid "Repeat Password"
1526
- msgstr "Repetera lösenord"
1527
-
1528
- #: views/add.php:53
1529
- msgid "Register"
1530
- msgstr "Registrera"
1531
-
1532
- #: views/admin_add.php:7
1533
- msgid "Create a brand new user and add it to this site."
1534
- msgstr "Skapa en helt ny användare och lägg till denne till sidan."
1535
-
1536
- #: views/admin_add.php:11 views/admin_add.php:15 views/admin_add_level.php:12
1537
- #: views/admin_add_level.php:16 views/admin_add_level.php:20
1538
- #: views/admin_edit.php:19 views/admin_edit.php:40
1539
- #: views/admin_edit_level.php:16 views/admin_edit_level.php:20
1540
- #: views/admin_edit_level.php:24
1541
- msgid "(required)"
1542
- msgstr "(krävs)"
1543
-
1544
- #: views/admin_add.php:15 views/admin_edit.php:40
1545
- msgid "E-mail"
1546
- msgstr "E-post"
1547
-
1548
- #: views/admin_add.php:19
1549
- msgid "(twice, required)"
1550
- msgstr "(återigen, krävs)"
1551
-
1552
- #: views/admin_add.php:24 views/admin_edit.php:48
1553
- msgid "Strength indicator"
1554
- msgstr "Säkerhetsnivå"
1555
-
1556
- #: views/admin_add.php:25 views/admin_edit.php:49
1557
- msgid ""
1558
- "Hint: The password should be at least seven characters long. To make it "
1559
- "stronger, use upper and lower case letters, numbers and symbols like ! \" ? "
1560
- "$ % ^ &amp; )."
1561
- msgstr ""
1562
- "Tips: Lösenordet ska vara minst sju tecken långt. För att göra det starkare, "
1563
- "använd stora och små bokstäver, siffror och symboler som! \"? $% ^ & amp;)."
1564
-
1565
- #: views/admin_add.php:29 views/admin_edit.php:53 views/loggedin.php:10
1566
- msgid "Account Status"
1567
- msgstr "Kontostatus"
1568
-
1569
- #: views/admin_add.php:39
1570
- msgid "Add New Member "
1571
- msgstr "Lägg till ny medlem "
1572
-
1573
- #: views/admin_addon_settings.php:3
1574
- msgid ""
1575
- "Some of the simple membership plugin's addon settings and options will be "
1576
- "displayed here (if you have them)"
1577
- msgstr ""
1578
- "Vissa av simple membership plugins addons inställningar och alternativ "
1579
- "kommer visas här (om du har dom)"
1580
-
1581
- #: views/admin_addon_settings.php:8
1582
- msgid "Save Changes"
1583
- msgstr "Spara ändringar"
1584
-
1585
- #: views/admin_add_level.php:6
1586
- msgid "Add Membership Level"
1587
- msgstr "Lägg till ett medlemsskap"
1588
-
1589
- #: views/admin_add_level.php:7
1590
- msgid "Create new membership level."
1591
- msgstr "Lägg till ny medlemskapsnivå."
1592
-
1593
- #: views/admin_add_level.php:12 views/admin_edit_level.php:16
1594
- msgid "Membership Level Name"
1595
- msgstr "Namn på medlemskapsnivå"
1596
-
1597
- #: views/admin_add_level.php:16 views/admin_edit_level.php:20
1598
- msgid "Default WordPress Role"
1599
- msgstr "Standard Wordpressroll"
1600
-
1601
- #: views/admin_add_level.php:20 views/admin_edit_level.php:24
1602
- msgid "Access Duration"
1603
- msgstr "Åtkomstens varaktighet"
1604
-
1605
- #: views/admin_add_level.php:23
1606
- msgid "No Expiry (Access for this level will not expire until cancelled"
1607
- msgstr ""
1608
- "Inget utgångsdatum (Tillgång för denna nivå kommer inte att löpa ut förrän "
1609
- "den avbrutits"
1610
-
1611
- #: views/admin_add_level.php:24 views/admin_add_level.php:26
1612
- #: views/admin_add_level.php:28 views/admin_add_level.php:30
1613
- #: views/admin_edit_level.php:28 views/admin_edit_level.php:31
1614
- #: views/admin_edit_level.php:34 views/admin_edit_level.php:37
1615
- msgid "Expire After"
1616
- msgstr "Upphör efter"
1617
-
1618
- #: views/admin_add_level.php:25 views/admin_edit_level.php:29
1619
- msgid "Days (Access expires after given number of days)"
1620
- msgstr "Dagar (antal dagar till att medlemskapet upphör)"
1621
-
1622
- #: views/admin_add_level.php:27
1623
- msgid "Weeks (Access expires after given number of weeks"
1624
- msgstr "Veckor (antal veckor till att medlemskapet upphör)"
1625
-
1626
- #: views/admin_add_level.php:29 views/admin_edit_level.php:35
1627
- msgid "Months (Access expires after given number of months)"
1628
- msgstr "Månader (antal månader till att medlemskapet upphör)"
1629
-
1630
- #: views/admin_add_level.php:31 views/admin_edit_level.php:38
1631
- msgid "Years (Access expires after given number of years)"
1632
- msgstr "År (antal år till att medlemskapet upphör)"
1633
-
1634
- #: views/admin_add_level.php:32 views/admin_edit_level.php:40
1635
- msgid "Fixed Date Expiry"
1636
- msgstr "Fast utgångsdatum"
1637
-
1638
- #: views/admin_add_level.php:33 views/admin_edit_level.php:41
1639
- msgid "(Access expires on a fixed date)"
1640
- msgstr "(Åtkomst upphör detta datum)"
1641
-
1642
- #: views/admin_add_level.php:39
1643
- msgid "Add New Membership Level "
1644
- msgstr "Lägg till ny medlemsnivå "
1645
-
1646
- #: views/admin_add_ons_page.php:7
1647
- msgid "Simple WP Membership::Add-ons"
1648
- msgstr "Simple WP Membership:Tillägg"
1649
-
1650
- #: views/admin_category_list.php:5
1651
- msgid ""
1652
- "First of all, globally protect the category on your site by selecting "
1653
- "\"General Protection\" from the drop-down box below and then select the "
1654
- "categories that should be protected from non-logged in users."
1655
- msgstr ""
1656
- "Först och främst skydda kategorin globalt på din webbplats genom att välja "
1657
- "\"Allmänt skydd\" i rullgardinsmenyn nedan och välj sedan de kategorier som "
1658
- "ska skyddas från användare som inte är inloggade."
1659
-
1660
- #: views/admin_category_list.php:8
1661
- msgid ""
1662
- "Next, select an existing membership level from the drop-down box below and "
1663
- "then select the categories you want to grant access to (for that particular "
1664
- "membership level)."
1665
- msgstr ""
1666
- "Välj sedan en befintlig medlemsnivå i rullgardinsmenyn nedan och välj sedan "
1667
- "de kategorier som du vill ge åtkomst till (för den särskilda medlemsnivån)."
1668
-
1669
- #: views/admin_category_list.php:17 views/admin_post_list.php:27
1670
- msgid "Membership Level:"
1671
- msgstr "Medlemskapsnivå:"
1672
-
1673
- #: views/admin_category_list.php:23 views/admin_post_list.php:33
1674
- #: views/edit.php:73
1675
- msgid "Update"
1676
- msgstr "Uppdatera"
1677
-
1678
- #: views/admin_edit.php:11
1679
- msgid "Edit Member"
1680
- msgstr "Redigera medlem"
1681
-
1682
- #: views/admin_edit.php:13
1683
- msgid "Edit existing member details."
1684
- msgstr "Redigera befintliga medlemsuppgifter."
1685
-
1686
- #: views/admin_edit.php:14
1687
- msgid " You are currenty editing member with member ID: "
1688
- msgstr " Du redigerar för närvarande medlem med medlems ID: "
1689
-
1690
- #: views/admin_edit.php:44
1691
- msgid "(twice, leave empty to retain old password)"
1692
- msgstr "(två gånger, lämna tomma för att behålla gamla lösenord)"
1693
-
1694
- #: views/admin_edit.php:60
1695
- msgid "Notify User"
1696
- msgstr "Meddela användaren"
1697
-
1698
- #: views/admin_edit.php:67
1699
- msgid "Subscriber ID/Reference"
1700
- msgstr "Abonnent ID / Referens"
1701
-
1702
- #: views/admin_edit.php:71
1703
- msgid "Last Accessed Date"
1704
- msgstr "Senaste åtkomstsdatum"
1705
-
1706
- #: views/admin_edit.php:74 views/admin_edit.php:81
1707
- msgid "This value gets updated when this member logs into your site."
1708
- msgstr ""
1709
- "Detta värde uppdateras när den här medlemmen loggar in på din webbplats."
1710
-
1711
- #: views/admin_edit.php:78
1712
- msgid "Last Accessed From IP"
1713
- msgstr "Senaste åtkomst från IP"
1714
-
1715
- #: views/admin_edit.php:89
1716
- msgid "Save Data"
1717
- msgstr "Spara data"
1718
-
1719
- #: views/admin_edit.php:94
1720
- msgid "Delete User Profile"
1721
- msgstr "Radera användrakonto"
1722
-
1723
- #: views/admin_edit_level.php:6
1724
- msgid "Edit membership level"
1725
- msgstr "Redigera medlemsnivå"
1726
-
1727
- #: views/admin_edit_level.php:9
1728
- msgid ""
1729
- "You can edit details of a selected membership level from this interface. "
1730
- msgstr ""
1731
- "Du kan redigera detaljer för en vald medlemsnivå från det här gränssnittet. "
1732
-
1733
- #: views/admin_edit_level.php:10
1734
- msgid "You are currently editing: "
1735
- msgstr "Du redigerar för närvarande: "
1736
-
1737
- #: views/admin_edit_level.php:27
1738
- msgid "No Expiry (Access for this level will not expire until cancelled)"
1739
- msgstr ""
1740
- "Inget utgångsdatum (Tillträde för denna nivå kommer inte att löpa ut förrän "
1741
- "den har avbrutits)"
1742
-
1743
- #: views/admin_edit_level.php:32
1744
- msgid "Weeks (Access expires after given number of weeks)"
1745
- msgstr "Veckor (Tillträde löper ut efter givet antal veckor)"
1746
-
1747
- #: views/admin_edit_level.php:47
1748
- msgid "Save Membership Level "
1749
- msgstr "Spara medlemsskapsnivå "
1750
-
1751
- #: views/admin_membership_manage.php:18
1752
- msgid "Example Content Protection Settings"
1753
- msgstr "Exempel Inställningar för kategoriskydd"
1754
-
1755
- #: views/admin_members_list.php:18
1756
- msgid "All"
1757
- msgstr "Alla"
1758
-
1759
- #: views/admin_members_list.php:22
1760
- msgid "Incomplete"
1761
- msgstr "Ofullständig"
1762
-
1763
- #: views/admin_member_form_common_part.php:23
1764
- msgid "Gender"
1765
- msgstr "Kön"
1766
-
1767
- #: views/admin_member_form_common_part.php:30 views/edit.php:38
1768
- msgid "Phone"
1769
- msgstr "Telefonnummer"
1770
-
1771
- #: views/admin_member_form_common_part.php:34 views/edit.php:42
1772
- msgid "Street"
1773
- msgstr "Gata"
1774
-
1775
- #: views/admin_member_form_common_part.php:38 views/edit.php:46
1776
- msgid "City"
1777
- msgstr "Stad"
1778
-
1779
- #: views/admin_member_form_common_part.php:42 views/edit.php:50
1780
- msgid "State"
1781
- msgstr "Landskap"
1782
-
1783
- #: views/admin_member_form_common_part.php:46 views/edit.php:54
1784
- msgid "Zipcode"
1785
- msgstr "Postnummer"
1786
-
1787
- #: views/admin_member_form_common_part.php:50 views/edit.php:58
1788
- msgid "Country"
1789
- msgstr "Land"
1790
-
1791
- #: views/admin_member_form_common_part.php:54
1792
- msgid "Company"
1793
- msgstr "Företag"
1794
-
1795
- #: views/admin_member_form_common_part.php:58
1796
- msgid "Member Since"
1797
- msgstr "Medlem sedan"
1798
-
1799
- #: views/admin_post_list.php:5
1800
- msgid ""
1801
- "First of all, globally protect posts and pages on your site by selecting "
1802
- "\"General Protection\" from the drop-down box below and then select posts "
1803
- "and pages that should be protected from non-logged in users."
1804
- msgstr ""
1805
- "Först och främst skydda globalt inlägg och sidor på din webbplats genom att "
1806
- "välja \"Allmänt skydd\" i rullgardinsmenyn nedan och välj sedan inlägg och "
1807
- "sidor som ska skyddas från användare som inte är inloggade."
1808
-
1809
- #: views/admin_post_list.php:8
1810
- msgid ""
1811
- "Next, select an existing membership level from the drop-down box below and "
1812
- "then select posts and pages you want to grant access to (for that particular "
1813
- "membership level)."
1814
- msgstr ""
1815
- "Nästa steg: Välj en befintlig Medlemskapsnivå från nedrullningsbara rutan "
1816
- "nedan och välj sedan de kategorier du vill bevilja åtkomst till (för den "
1817
- "valda Medlemskapsnivån)."
1818
-
1819
- #: views/admin_post_list.php:21
1820
- msgid "Posts"
1821
- msgstr "Inlägg"
1822
-
1823
- #: views/admin_post_list.php:22
1824
- msgid "Pages"
1825
- msgstr "Sidor"
1826
-
1827
- #: views/admin_post_list.php:23
1828
- msgid "Custom Posts"
1829
- msgstr "Anpassade inlägg"
1830
-
1831
- #: views/admin_tools_settings.php:6
1832
- msgid "Generate a Registration Completion link"
1833
- msgstr "Skapa en länk för att komplettera registrering"
1834
-
1835
- #: views/admin_tools_settings.php:9
1836
- msgid ""
1837
- "You can manually generate a registration completion link here and give it to "
1838
- "your customer if they have missed the email that was automatically sent out "
1839
- "to them after the payment."
1840
- msgstr ""
1841
- "Du kan manuellt skapa en länk för komplettera registrering här och ge den "
1842
- "till din kund om de har missat det e-postmeddelande som automatiskt "
1843
- "skickades ut till dem efter betalningen."
1844
-
1845
- #: views/admin_tools_settings.php:14
1846
- msgid "Generate Registration Completion Link"
1847
- msgstr "Skapa fullbordad registreringslänk"
1848
-
1849
- #: views/admin_tools_settings.php:15
1850
- msgid "For a Particular Member ID"
1851
- msgstr "För ett visst medlems-ID"
1852
-
1853
- #: views/admin_tools_settings.php:17
1854
- msgid "OR"
1855
- msgstr "ELLER"
1856
-
1857
- #: views/admin_tools_settings.php:18
1858
- msgid "For All Incomplete Registrations"
1859
- msgstr "För alla ofullständiga registreringar"
1860
-
1861
- #: views/admin_tools_settings.php:23
1862
- msgid "Send Registration Reminder Email Too"
1863
- msgstr "Skicka registreringspåminnelse via e-post också"
1864
-
1865
- #: views/admin_tools_settings.php:29
1866
- msgid "Submit"
1867
- msgstr "Skicka"
1868
-
1869
- #: views/admin_tools_settings.php:38
1870
- msgid ""
1871
- "Link(s) generated successfully. The following link(s) can be used to "
1872
- "complete the registration."
1873
- msgstr ""
1874
- "Länk(ar) genereras framgångsrikt. Följande länkar kan användas för att "
1875
- "slutföra registreringen."
1876
-
1877
- #: views/admin_tools_settings.php:40
1878
- msgid "Registration completion links will appear below"
1879
- msgstr "Fullbordad registreringslänk ses nedan"
1880
-
1881
- #: views/admin_tools_settings.php:50
1882
- msgid "A prompt to complete registration email was also sent."
1883
- msgstr "En uppmaning att slutföra registreringsmeddelandet skickades också."
1884
-
1885
- #: views/edit.php:23 views/edit.php:27
1886
- msgid "Leave empty to keep the current password"
1887
- msgstr "Lämna tomt för att behålla det aktuella lösenordet"
1888
-
1889
- #: views/edit.php:62
1890
- msgid "Company Name"
1891
- msgstr "Företagsnamn"
1892
-
1893
- #: views/forgot_password.php:12
1894
- msgid "Reset Password"
1895
- msgstr "Återställ lösenord"
1896
-
1897
- #: views/loggedin.php:6
1898
- msgid "Logged in as"
1899
- msgstr "Inloggad som"
1900
-
1901
- #: views/loggedin.php:14
1902
- msgid "Membership"
1903
- msgstr "Medlemskap"
1904
-
1905
- #: views/loggedin.php:18
1906
- msgid "Account Expiry"
1907
- msgstr "Medlemskapet upphör"
1908
-
1909
- #: views/loggedin.php:26
1910
- msgid "Edit Profile"
1911
- msgstr "Redigera profil"
1912
-
1913
- #: views/loggedin.php:31
1914
- msgid "Logout"
1915
- msgstr "Logga ut"
1916
-
1917
- #: views/login.php:11
1918
- msgid "Username or Email"
1919
- msgstr "Användarnamn eller e-post"
1920
-
1921
- #: views/login.php:24
1922
- msgid "Remember Me"
1923
- msgstr "Kom ihåg mig"
1924
-
1925
- #: views/login.php:33
1926
- msgid "Forgot Password"
1927
- msgstr "Glömt lösenordet"
1928
-
1929
- #: views/payments/admin_all_payment_transactions.php:6
1930
- msgid "All the payments/transactions of your members are recorded here."
1931
- msgstr "Alla betalningar / transaktioner för dina medlemmar registreras här."
1932
-
1933
- #: views/payments/admin_all_payment_transactions.php:12
1934
- msgid "Search for a transaction by using email or name"
1935
- msgstr "Sök efter en transaktion genom att använda e-post eller namn"
1936
-
1937
- #: views/payments/admin_create_payment_buttons.php:16
1938
- msgid ""
1939
- "You can create new payment button for your memberships using this interface."
1940
- msgstr ""
1941
- "Du kan skapa nya betalningsknappar för dina nya medlemskap via detta "
1942
- "gränssnitt."
1943
-
1944
- #: views/payments/admin_create_payment_buttons.php:24
1945
- msgid "Select Payment Button Type"
1946
- msgstr "Betalningsknappstyp"
1947
-
1948
- #: views/payments/admin_create_payment_buttons.php:27
1949
- msgid "PayPal Buy Now"
1950
- msgstr "PayPal Köp nu"
1951
-
1952
- #: views/payments/admin_create_payment_buttons.php:29
1953
- msgid "PayPal Subscription"
1954
- msgstr "PayPal-prenumeration"
1955
-
1956
- #: views/payments/admin_create_payment_buttons.php:31
1957
- msgid "Stripe Buy Now"
1958
- msgstr "Stripe Köp nu"
1959
-
1960
- #: views/payments/admin_create_payment_buttons.php:33
1961
- msgid "Stripe Subscription"
1962
- msgstr "Stripe Prenumeration"
1963
-
1964
- #: views/payments/admin_create_payment_buttons.php:35
1965
- msgid "Braintree Buy Now"
1966
- msgstr "Braintree Köp nu"
1967
-
1968
- #: views/payments/admin_create_payment_buttons.php:42
1969
- msgid "Next"
1970
- msgstr "Nästa"
1971
-
1972
- #: views/payments/admin_edit_payment_buttons.php:14
1973
- msgid "You can edit a payment button using this interface."
1974
- msgstr "Du kan redigera en betalningsknapp med det här gränssnittet."
1975
-
1976
- #: views/payments/admin_payment_buttons.php:6
1977
- msgid ""
1978
- "All the membership buttons that you created in the plugin are displayed here."
1979
- msgstr "Alla medlemsknapparna som du skapade i plugin visas här."
1980
-
1981
- #: views/payments/admin_payment_settings.php:21
1982
- msgid "Error! The membership level ID ("
1983
- msgstr "Fel! Medlemsnivå ID ("
1984
-
1985
- #: views/payments/admin_payment_settings.php:28
1986
- msgid ""
1987
- "You can create membership payment buttons from the payments menu of this "
1988
- "plugin (useful if you want to offer paid membership on the site)."
1989
- msgstr ""
1990
- "Du kan skapa medlemskapsbetalningsknappar från betalningsmenyn i det här "
1991
- "tillägget (användbart om du vill erbjuda betalt medlemskap på webbplatsen)."
1992
-
1993
- #: views/payments/admin_payment_settings.php:33
1994
- msgid "PayPal Integration Settings"
1995
- msgstr "PayPal Integrationsinställningar"
1996
-
1997
- #: views/payments/admin_payment_settings.php:36
1998
- msgid "Generate the \"Advanced Variables\" Code for your PayPal button"
1999
- msgstr "Generera \"Advanced Variables\" -koden för din PayPal-knapp"
2000
-
2001
- #: views/payments/admin_payment_settings.php:39
2002
- msgid "Enter the Membership Level ID"
2003
- msgstr "Ange medlemsnivå ID"
2004
-
2005
- #: views/payments/admin_payment_settings.php:41
2006
- msgid "Generate Code"
2007
- msgstr "Skapa kod"
2008
-
2009
- #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:22
2010
- msgid "Braintree Buy Now Button Configuration"
2011
- msgstr "Braintree Köp nu Knappkonfiguration"
2012
-
2013
- #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:34
2014
- #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:213
2015
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:301
2016
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:259
2017
- #: views/payments/payment-gateway/admin_stripe_subscription_button.php:83
2018
- msgid "Button ID"
2019
- msgstr "Knapp-ID"
2020
-
2021
- #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:42
2022
- #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:26
2023
- #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:221
2024
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:27
2025
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:309
2026
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:39
2027
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:266
2028
- #: views/payments/payment-gateway/admin_stripe_subscription_button.php:91
2029
- msgid "Button Title"
2030
- msgstr "Knapptitel"
2031
-
2032
- #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:60
2033
- #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:44
2034
- #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:239
2035
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:57
2036
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:282
2037
- msgid "Payment Amount"
2038
- msgstr "Betalningsbelopp"
2039
-
2040
- #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:68
2041
- msgid ""
2042
- "Braintree API key and account details. You can get this from your Braintree "
2043
- "account."
2044
- msgstr ""
2045
- "Braintree API-nyckel och kontoinformation. Du kan hämta detta från ditt "
2046
- "Braintree-konto."
2047
-
2048
- #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:72
2049
- msgid "Merchant ID"
2050
- msgstr "Marchant ID"
2051
-
2052
- #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:80
2053
- msgid "Public Key"
2054
- msgstr "Offentlig nyckel"
2055
-
2056
- #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:87
2057
- msgid "Private Key"
2058
- msgstr "Privat nyckel"
2059
-
2060
- #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:95
2061
- msgid "Merchant Account ID"
2062
- msgstr "Merchant Konto-ID"
2063
-
2064
- #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:113
2065
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:137
2066
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:361
2067
- msgid "The following details are optional."
2068
- msgstr "Följande uppgifter är frivilliga."
2069
-
2070
- #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:117
2071
- #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:92
2072
- #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:287
2073
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:172
2074
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:456
2075
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:149
2076
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:373
2077
- #: views/payments/payment-gateway/admin_stripe_subscription_button.php:191
2078
- msgid "Return URL"
2079
- msgstr "Återgå URL"
2080
-
2081
- #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:127
2082
- #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:126
2083
- #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:321
2084
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:200
2085
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:484
2086
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:159
2087
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:383
2088
- #: views/payments/payment-gateway/admin_stripe_subscription_button.php:212
2089
- msgid "Save Payment Data"
2090
- msgstr "Spara betalningsdata"
2091
-
2092
- #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:16
2093
- #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:204
2094
- msgid "PayPal Buy Now Button Configuration"
2095
- msgstr "Konfigurera Paypal \"KÖP NU \" knapp"
2096
-
2097
- #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:52
2098
- #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:247
2099
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:45
2100
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:327
2101
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:65
2102
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:289
2103
- msgid "Payment Currency"
2104
- msgstr "Betalningsvaluta"
2105
-
2106
- #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:100
2107
- #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:295
2108
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:85
2109
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:367
2110
- msgid "PayPal Email"
2111
- msgstr "PayPal e-post"
2112
-
2113
- #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:108
2114
- #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:303
2115
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:180
2116
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:464
2117
- #: views/payments/payment-gateway/admin_stripe_subscription_button.php:199
2118
- msgid "Button Image URL"
2119
- msgstr "URL knappbild"
2120
-
2121
- #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:116
2122
- #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:311
2123
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:188
2124
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:472
2125
- msgid "Custom Checkout Page Logo Image"
2126
- msgstr "Anpassad Checkout-sidlogga"
2127
-
2128
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:18
2129
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:295
2130
- msgid "PayPal Subscription Button Configuration"
2131
- msgstr "PayPal-prenumerationsknappskonfiguration"
2132
-
2133
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:93
2134
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:375
2135
- msgid "Billing Amount Each Cycle"
2136
- msgstr "Att betala varje period"
2137
-
2138
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:101
2139
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:383
2140
- msgid "Billing Cycle"
2141
- msgstr "Återkommande betalning"
2142
-
2143
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:114
2144
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:396
2145
- msgid "Billing Cycle Count"
2146
- msgstr "Faktureringaperiodsräkning"
2147
-
2148
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:122
2149
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:404
2150
- msgid "Re-attempt on Failure"
2151
- msgstr "Försök igen om misslyckad"
2152
-
2153
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:135
2154
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:419
2155
- msgid ""
2156
- "Trial Billing Details (Leave empty if you are not offering a trial period)"
2157
- msgstr "Prova-på-information(Lämna tomt om du inte erbjuder en provperiod)"
2158
-
2159
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:141
2160
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:425
2161
- msgid "Trial Billing Amount"
2162
- msgstr "Prova-på-belopp"
2163
-
2164
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:149
2165
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:433
2166
- msgid "Trial Billing Period"
2167
- msgstr "Prova-på-period"
2168
-
2169
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:166
2170
- #: views/payments/payment-gateway/admin_paypal_subscription_button.php:450
2171
- #: views/payments/payment-gateway/admin_stripe_subscription_button.php:177
2172
- msgid "Optional Details"
2173
- msgstr "Valfria detaljer"
2174
-
2175
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:29
2176
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:250
2177
- msgid "Stripe Buy Now Button Configuration"
2178
- msgstr "Stripe \"Köp nu\" Knappkonfiguration"
2179
-
2180
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:104
2181
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:328
2182
- msgid "Stripe API keys. You can get this from your Stripe account."
2183
- msgstr "Stripe API-nycklar. Du kan hämta detta från ditt Stripe-konto."
2184
-
2185
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:108
2186
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:332
2187
- #: views/payments/payment-gateway/admin_stripe_subscription_button.php:139
2188
- msgid "Test Secret Key"
2189
- msgstr "Hemlig test-nyckel"
2190
-
2191
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:115
2192
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:339
2193
- #: views/payments/payment-gateway/admin_stripe_subscription_button.php:131
2194
- msgid "Test Publishable Key"
2195
- msgstr "Publik test-nyckel"
2196
-
2197
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:122
2198
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:346
2199
- #: views/payments/payment-gateway/admin_stripe_subscription_button.php:155
2200
- msgid "Live Secret Key"
2201
- msgstr "Hemlig live-nyckel"
2202
-
2203
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:129
2204
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:353
2205
- #: views/payments/payment-gateway/admin_stripe_subscription_button.php:147
2206
- msgid "Live Publishable Key"
2207
- msgstr "Publik live-nyckel"
2208
-
2209
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:141
2210
- #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:365
2211
- #: views/payments/payment-gateway/admin_stripe_subscription_button.php:183
2212
- msgid "Collect Customer Address"
2213
- msgstr "Samla kundadress"
2214
-
2215
- #: views/payments/payment-gateway/admin_stripe_subscription_button.php:75
2216
- msgid "Stripe Subscription Button Configuration"
2217
- msgstr "Stripe Prenumerationsknapp Konfiguration"
2218
-
2219
- #: views/payments/payment-gateway/admin_stripe_subscription_button.php:109
2220
- msgid "Stripe Plan ID"
2221
- msgstr "Stripe Plan ID"
2222
-
2223
- #: views/payments/payment-gateway/admin_stripe_subscription_button.php:125
2224
- msgid "Stripe API Settings"
2225
- msgstr "Stripe API-inställningar"
2226
-
2227
- #: views/payments/payment-gateway/admin_stripe_subscription_button.php:163
2228
- msgid "Webook Endpoint URL"
2229
- msgstr "Webook Endpoint URL"
2230
-
2231
- #: views/payments/payment-gateway/braintree_button_shortcode_view.php:20
2232
- #: views/payments/payment-gateway/paypal_button_shortcode_view.php:91
2233
- #: views/payments/payment-gateway/paypal_button_shortcode_view.php:93
2234
- #: views/payments/payment-gateway/stripe_button_shortcode_view.php:20
2235
- #: views/payments/payment-gateway/stripe_button_shortcode_view.php:149
2236
- msgid "Buy Now"
2237
- msgstr "Köp nu"
2238
-
2239
- #: views/payments/payment-gateway/paypal_button_shortcode_view.php:226
2240
- #: views/payments/payment-gateway/paypal_button_shortcode_view.php:228
2241
- msgid "Subscribe Now"
2242
- msgstr "Prenumerera nu"
2243
-
2244
- #: Translation strings from addons === Form builder addon
2245
- msgid "Type password Here"
2246
- msgstr "Skriv ditt lösenord här"
2247
-
2248
- msgid "Retype password Here"
2249
- msgstr "Skriv ditt lösenord igen"
2250
-
2251
- msgid "Registration is complete. You can now log into the site."
2252
- msgstr "Registreringen är klar. Du kan nu logga in på webbplatsen."
2253
-
2254
- msgid " Field has invalid character"
2255
- msgstr " Fältet har ogiltiga tecken"
2256
-
2257
- msgid " Password does not match"
2258
- msgstr " Lösenordet matchar inte"
2259
-
2260
- msgid "Already taken."
2261
- msgstr "Redan upptaget."
2262
-
2263
- msgid "Street Address"
2264
- msgstr "Adress"
2265
-
2266
- msgid "Apt, Suite, Bldg. (optional)"
2267
- msgstr "Lägenhet. (frivillig)"
2268
-
2269
- msgid "State / Province / Region"
2270
- msgstr "Län/Kommun"
2271
-
2272
- msgid "Postal / Zip Code"
2273
- msgstr "Postnummer"
2274
-
2275
- msgid ""
2276
- "Check this box to delete the image. The image will be deleted when you save "
2277
- "the profile."
2278
- msgstr ""
2279
- "Markera den här rutan om du vill radera bilden. Bilden raderas när du sparar "
2280
- "profilen."
2281
-
2282
- msgid "You will need to re-login since you changed your password."
2283
- msgstr "Du måste logga in sedan du ändrade ditt lösenord."
2284
-
2285
- #: === Partial protection addon strings
2286
- msgid "You do not have permission to view this content."
2287
- msgstr "Du har inte behörighet att se denna fliken."
2288
-
2289
- msgid "Your membership level does not have permission to view this content."
2290
- msgstr "Din medlemsnivå har inte behörighet att visa detta innehåll."
2291
-
2292
- msgid "This content is for members only."
2293
- msgstr "Detta innehåll är endast för medlemmar."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Simple Membership\n"
4
+ "POT-Creation-Date: 2019-05-26 13:48+0600\n"
5
+ "PO-Revision-Date: 2021-02-28 17:24+0100\n"
6
+ "Language-Team: \n"
7
+ "MIME-Version: 1.0\n"
8
+ "Content-Type: text/plain; charset=UTF-8\n"
9
+ "Content-Transfer-Encoding: 8bit\n"
10
+ "X-Generator: Poedit 2.4.2\n"
11
+ "X-Poedit-KeywordsList: __;_e;e\n"
12
+ "X-Poedit-Basepath: .\n"
13
+ "Last-Translator: \n"
14
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
+ "Language: sv_SE\n"
16
+ "X-Poedit-SearchPath-0: .\n"
17
+
18
+ #: classes/class.simple-wp-membership.php:180
19
+ msgid "The admin of this site does not allow users to access the wp dashboard."
20
+ msgstr ""
21
+ "Administratören på den här webbplatsen tillåter inte användare att komma åt "
22
+ "wp-instrumentbrädan."
23
+
24
+ #: classes/class.simple-wp-membership.php:181
25
+ msgid "Go back to the home page by "
26
+ msgstr " tillbaka till hemsidan av "
27
+
28
+ #: classes/class.simple-wp-membership.php:181
29
+ msgid "clicking here"
30
+ msgstr "klicka här"
31
+
32
+ #: classes/class.simple-wp-membership.php:242
33
+ msgid ""
34
+ "Error! This site has the force WP user login feature enabled in the "
35
+ "settings. We could not find a WP user record for the given username: "
36
+ msgstr ""
37
+ "Fel! Denna webbplats har funktionen tvinga WP-användaren-inloggning "
38
+ "aktiverat i inställningarna. Vi kunde inte hitta en WP användarpost för viss "
39
+ "användarnamnet: "
40
+
41
+ #: classes/class.simple-wp-membership.php:243
42
+ msgid ""
43
+ "This error is triggered when a member account doesn't have a corresponding "
44
+ "WP user account. So the plugin fails to log the user into the WP User system."
45
+ msgstr ""
46
+ "Detta fel utlöses när ett medlemskonto inte har ett motsvarande WP-"
47
+ "användarkonto. SM-tillägget misslyckades med att logga användaren in i WP-"
48
+ "användarsystemet."
49
+
50
+ #: classes/class.simple-wp-membership.php:244
51
+ msgid ""
52
+ "Contact the site admin and request them to check your username in the WP "
53
+ "Users menu to see what happened with the WP user entry of your account."
54
+ msgstr ""
55
+ "Kontakta webbplatsen admin och be dem att kolla ditt användarnamn i menyn WP-"
56
+ "användare att se vad som hände med posten användare ditt konto."
57
+
58
+ #: classes/class.simple-wp-membership.php:245
59
+ msgid ""
60
+ "The site admin can disable the Force WP User Synchronization feature in the "
61
+ "settings to disable this feature and this error will go away."
62
+ msgstr ""
63
+ "Webbplatsadministratören kan inaktivera funktionen Force WP-"
64
+ "användarsynkronisering i inställningarna för att inaktivera den här "
65
+ "funktionen och detta fel kommer försvinna."
66
+
67
+ #: classes/class.simple-wp-membership.php:246
68
+ msgid "You can use the back button of your browser to go back to the site."
69
+ msgstr ""
70
+ "Du kan använda webbläsarens bakåtknapp för att gå tillbaka till webbplatsen."
71
+
72
+ #: classes/class.simple-wp-membership.php:407
73
+ msgid "You are not logged in."
74
+ msgstr "Du är inte inloggad."
75
+
76
+ #: classes/class.simple-wp-membership.php:458
77
+ msgid ""
78
+ "You have the sandbox payment mode enabled in plugin settings. Make sure to "
79
+ "turn off the sandbox mode when you want to do live transactions."
80
+ msgstr ""
81
+ "Du har betalningsläget för sandlåda aktiverat i plugin-inställningar. Se "
82
+ "till att du stänger av sandlåsläget när du vill göra live-transaktioner."
83
+
84
+ #: classes/class.simple-wp-membership.php:473
85
+ msgid "Simple WP Membership Protection"
86
+ msgstr "Simple WP Membership Protection"
87
+
88
+ #: classes/class.simple-wp-membership.php:485
89
+ msgid "Simple Membership Protection options"
90
+ msgstr "Alternativ för Simple WP Membership Protection"
91
+
92
+ #: classes/class.simple-wp-membership.php:503
93
+ msgid "Do you want to protect this content?"
94
+ msgstr "Vill du skydda detta innehåll?"
95
+
96
+ #: classes/class.simple-wp-membership.php:504
97
+ msgid "No, Do not protect this content."
98
+ msgstr "Nej, skydda inte detta innehåll."
99
+
100
+ #: classes/class.simple-wp-membership.php:505
101
+ msgid "Yes, Protect this content."
102
+ msgstr "Ja, skydda detta innehåll."
103
+
104
+ #: classes/class.simple-wp-membership.php:508
105
+ msgid "Select the membership level that can access this content:"
106
+ msgstr "Välj vilken medlemskapsnivå som ska kunna läsa detta innehåll:"
107
+
108
+ #: classes/class.simple-wp-membership.php:646
109
+ #: classes/class.simple-wp-membership.php:650
110
+ msgid "Validating, please wait"
111
+ msgstr "Validerar, var god vänta"
112
+
113
+ #: classes/class.simple-wp-membership.php:653
114
+ msgid "Invalid email address"
115
+ msgstr "Ogiltig e-postadress"
116
+
117
+ #: classes/class.simple-wp-membership.php:656
118
+ msgid "This field is required"
119
+ msgstr "Detta fält är obligatoriskt"
120
+
121
+ msgid "Password must contain at least:"
122
+ msgstr "Lösenordet måste minst innehålla:"
123
+
124
+ msgid "- a digit"
125
+ msgstr "- en siffra"
126
+
127
+ msgid "- an uppercase letter"
128
+ msgstr "- en stor bokstav"
129
+
130
+ msgid "- a lowercase letter"
131
+ msgstr "- en liten bokstav"
132
+
133
+ #: classes/class.simple-wp-membership.php:659 classes/class.swpm-auth.php:296
134
+ msgid "Invalid Username"
135
+ msgstr "Ogiltigt användarnamn"
136
+
137
+ #: classes/class.simple-wp-membership.php:659
138
+ msgid "Usernames can only contain: letters, numbers and .-_*@"
139
+ msgstr "Användarnamn kan endast innehålla: bokstäver, siffror och .-_*@"
140
+
141
+ #: classes/class.simple-wp-membership.php:662
142
+ msgid "Minimum "
143
+ msgstr "Minst "
144
+
145
+ #: classes/class.simple-wp-membership.php:663
146
+ msgid " characters required"
147
+ msgstr " tecken som krävs för"
148
+
149
+ #: classes/class.simple-wp-membership.php:666
150
+ msgid "Apostrophe character is not allowed"
151
+ msgstr "Apostrof är inte tillåtet"
152
+
153
+ #: classes/class.simple-wp-membership.php:697
154
+ msgid "WP Membership"
155
+ msgstr "WP medlemskap"
156
+
157
+ #: classes/class.simple-wp-membership.php:698 classes/class.swpm-members.php:11
158
+ #: classes/class.swpm-members.php:581
159
+ msgid "Members"
160
+ msgstr "Medlemmar"
161
+
162
+ #: classes/class.simple-wp-membership.php:699
163
+ #: classes/class.swpm-category-list.php:20
164
+ #: classes/class.swpm-membership-levels.php:12
165
+ #: classes/class.swpm-membership-levels.php:265
166
+ #: classes/class.swpm-post-list.php:21
167
+ msgid "Membership Levels"
168
+ msgstr "Medlemsnivåer"
169
+
170
+ #: classes/class.simple-wp-membership.php:700
171
+ msgid "Settings"
172
+ msgstr "Inställningar"
173
+
174
+ #: classes/class.simple-wp-membership.php:701
175
+ msgid "Payments"
176
+ msgstr "Betalningar"
177
+
178
+ #: classes/class.simple-wp-membership.php:702
179
+ msgid "Add-ons"
180
+ msgstr "Tillägg"
181
+
182
+ #: classes/class.swpm-access-control.php:47
183
+ #: classes/class.swpm-access-control.php:120
184
+ msgid "You need to login to view this content. "
185
+ msgstr "Du måste logga in för att se detta innehåll "
186
+
187
+ #: classes/class.swpm-access-control.php:56
188
+ #: classes/class.swpm-access-control.php:128
189
+ #: classes/class.swpm-access-control.php:212
190
+ msgid "Your account has expired. "
191
+ msgstr "Användarkontot har upphört att gälla. "
192
+
193
+ #: classes/class.swpm-access-control.php:66
194
+ #: classes/class.swpm-access-control.php:138
195
+ msgid "This content can only be viewed by members who joined on or before "
196
+ msgstr "Detta innehåll kan endast ses av medlemmar som gått med på eller före "
197
+
198
+ #: classes/class.swpm-access-control.php:79
199
+ #: classes/class.swpm-access-control.php:148
200
+ msgid "This content is not permitted for your membership level."
201
+ msgstr "Innehållet är inte tillgängligt för din medlemsnivå."
202
+
203
+ #: classes/class.swpm-access-control.php:204
204
+ msgid "You need to login to view the rest of the content. "
205
+ msgstr "Du måste logga in för att läsa resten av innehållet "
206
+
207
+ #: classes/class.swpm-access-control.php:217
208
+ msgid " The rest of the content is not permitted for your membership level."
209
+ msgstr " Resterande innehåll är inte tillgängligt för din medlemsnivå."
210
+
211
+ #: classes/class.swpm-admin-registration.php:25
212
+ msgid "Error! Nonce verification failed for user registration from admin end."
213
+ msgstr ""
214
+ "Fel! Nonceverifieringen misslyckades för användarregistrering från "
215
+ "adminläget (back-end)."
216
+
217
+ #: classes/class.swpm-admin-registration.php:71
218
+ msgid "Member record added successfully."
219
+ msgstr "Medlemsposten lades till korrekt."
220
+
221
+ #: classes/class.swpm-admin-registration.php:76
222
+ #: classes/class.swpm-admin-registration.php:124
223
+ #: classes/class.swpm-admin-registration.php:151
224
+ #: classes/class.swpm-membership-level.php:73
225
+ #: classes/class.swpm-membership-level.php:105
226
+ msgid "Please correct the following:"
227
+ msgstr "Vänligen rätta till följande:"
228
+
229
+ #: classes/class.swpm-admin-registration.php:87
230
+ msgid "Error! Nonce verification failed for user edit from admin end."
231
+ msgstr ""
232
+ "Fel! Nonceverifieringen misslyckades för användarregistrering från "
233
+ "adminläget (back-end)."
234
+
235
+ #: classes/class.swpm-admin-registration.php:139
236
+ msgid "Your current password"
237
+ msgstr "Ditt nuvarande lösenord"
238
+
239
+ #: classes/class.swpm-ajax.php:14
240
+ msgid "Invalid Email Address"
241
+ msgstr "Ogiltig e-postadress"
242
+
243
+ #: classes/class.swpm-ajax.php:21 classes/class.swpm-ajax.php:36
244
+ msgid "Already taken"
245
+ msgstr "Upptaget"
246
+
247
+ #: classes/class.swpm-ajax.php:30
248
+ msgid "Name contains invalid character"
249
+ msgstr "Namnet innehåller ogiltiga tecken"
250
+
251
+ #: classes/class.swpm-ajax.php:37
252
+ msgid "Available"
253
+ msgstr "Tillgängligt"
254
+
255
+ #: classes/class.swpm-auth.php:57
256
+ msgid ""
257
+ "Warning! Simple Membership plugin cannot process this login request to "
258
+ "prevent you from getting logged out of WP Admin accidentally."
259
+ msgstr ""
260
+ "Varning! Simple membership-tillägget kan inte behandla denna "
261
+ "inloggningsbegäran att förhindra att du blir utloggad från WP Admin av "
262
+ "misstag."
263
+
264
+ #: classes/class.swpm-auth.php:58
265
+ msgid "Click here"
266
+ msgstr "Klicka här"
267
+
268
+ #: classes/class.swpm-auth.php:58
269
+ msgid " to see the profile you are currently logged into in this browser."
270
+ msgstr ""
271
+ " för att se profilen du för närvarande är inloggad som i denna webbläsare."
272
+
273
+ #: classes/class.swpm-auth.php:59
274
+ msgid ""
275
+ "You are logged into the site as an ADMIN user in this browser. First, logout "
276
+ "from WP Admin then you will be able to log in as a normal member."
277
+ msgstr ""
278
+ "Du är inloggad på webbplatsen som ADMIN-användare i denna webbläsaren. Logga "
279
+ "ut först från WP Admin så kommer du att kunna logga in som en vanlig medlem."
280
+
281
+ #: classes/class.swpm-auth.php:60
282
+ msgid ""
283
+ "Alternatively, you can use a different browser (where you are not logged-in "
284
+ "as ADMIN) to test the membership login."
285
+ msgstr ""
286
+ "Alternativt kan du använda en annan webbläsare (där du inte är inloggad som "
287
+ "ADMIN) för att testa medlemskapsinloggningen."
288
+
289
+ #: classes/class.swpm-auth.php:61
290
+ msgid ""
291
+ "Your normal visitors or members will never see this message. This message is "
292
+ "ONLY for ADMIN user."
293
+ msgstr ""
294
+ "Dina vanliga besökare eller medlemmar kommer aldrig att se detta meddelande. "
295
+ "Det här meddelandet är ENDAST för ADMIN-användare."
296
+
297
+ #: classes/class.swpm-auth.php:68
298
+ msgid "Captcha validation failed on login form."
299
+ msgstr "CAPTCHA validering misslyckades inloggningsformuläret."
300
+
301
+ #: classes/class.swpm-auth.php:93
302
+ msgid "User Not Found."
303
+ msgstr "Användare hittades inte."
304
+
305
+ #: classes/class.swpm-auth.php:100
306
+ msgid "Password Empty or Invalid."
307
+ msgstr "Lösenordet är tomt eller ogiltigt."
308
+
309
+ #: classes/class.swpm-auth.php:133
310
+ msgid "Account is inactive."
311
+ msgstr "Användarkontot är ej aktivt."
312
+
313
+ #: classes/class.swpm-auth.php:136 classes/class.swpm-auth.php:162
314
+ msgid "Account has expired."
315
+ msgstr "Användarkontot har gått ut."
316
+
317
+ #: classes/class.swpm-auth.php:139
318
+ msgid "Account is pending."
319
+ msgstr "Kontot är väntande."
320
+
321
+ #: classes/class.swpm-auth.php:146
322
+ #, php-format
323
+ msgid ""
324
+ "You need to activate your account. If you didn't receive an email then %s to "
325
+ "resend the activation email."
326
+ msgstr ""
327
+ "Du måste aktivera ditt konto. Om du inte fick ett e-postmeddelande ska %s "
328
+ "skicka om aktiverings-e-postmeddelandet."
329
+
330
+ #: classes/class.swpm-auth.php:146
331
+ #: classes/class.swpm-front-registration.php:376
332
+ #: classes/class.swpm-front-registration.php:426
333
+ #: classes/class.swpm-utils-misc.php:169
334
+ msgid "click here"
335
+ msgstr "klicka här"
336
+
337
+ #: classes/class.swpm-auth.php:170
338
+ msgid "You are logged in as:"
339
+ msgstr "Du är inloggad som:"
340
+
341
+ #: classes/class.swpm-auth.php:234
342
+ msgid "Logged Out Successfully."
343
+ msgstr "Lyckad utloggning."
344
+
345
+ #: classes/class.swpm-auth.php:287
346
+ msgid "Session Expired."
347
+ msgstr "Slut sessionen."
348
+
349
+ #: classes/class.swpm-auth.php:304
350
+ msgid "Please login again."
351
+ msgstr "Vänligen logga in igen."
352
+
353
+ #: classes/class.swpm-category-list.php:19 classes/class.swpm-members.php:24
354
+ #: classes/class.swpm-membership-levels.php:11
355
+ #: classes/class.swpm-membership-levels.php:21
356
+ #: classes/class.swpm-post-list.php:20
357
+ #: classes/admin-includes/class.swpm-payments-list-table.php:85
358
+ #: views/add.php:40 views/admin_member_form_common_part.php:2 views/edit.php:75
359
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:50
360
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:34
361
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:229
362
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:49
363
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:35
364
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:317
365
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:47
366
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:273
367
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:99
368
+ msgid "Membership Level"
369
+ msgstr "Medlemskapsnivå"
370
+
371
+ #: classes/class.swpm-category-list.php:33
372
+ msgid "Category ID"
373
+ msgstr "Kategori-ID"
374
+
375
+ #: classes/class.swpm-category-list.php:34
376
+ msgid "Category Name"
377
+ msgstr "Kategorinamn"
378
+
379
+ #: classes/class.swpm-category-list.php:35
380
+ msgid "Category Type (Taxonomy)"
381
+ msgstr "Typ av kategori (Taxonomi)"
382
+
383
+ #: classes/class.swpm-category-list.php:36
384
+ msgid "Description"
385
+ msgstr "Beskrivning"
386
+
387
+ #: classes/class.swpm-category-list.php:37
388
+ msgid "Count"
389
+ msgstr "Antal"
390
+
391
+ #: classes/class.swpm-category-list.php:92
392
+ msgid "Category protection updated!"
393
+ msgstr "Kategoriskydd uppdaterad!"
394
+
395
+ #: classes/class.swpm-category-list.php:130
396
+ msgid "No category found."
397
+ msgstr "Ingen kategori hittades."
398
+
399
+ #: classes/class.swpm-comment-form-related.php:15
400
+ msgid "Please login to comment."
401
+ msgstr "Vänligen logga in för att kommentera."
402
+
403
+ #: classes/class.swpm-comment-form-related.php:40
404
+ msgid "Please Login to Comment."
405
+ msgstr "Vänligen logga in för att kommentera."
406
+
407
+ #: classes/class.swpm-comment-form-related.php:79
408
+ msgid "Comments not allowed by a non-member."
409
+ msgstr "Kommentarer är inte tillåtna av icke-medlemmar."
410
+
411
+ #: classes/class.swpm-form.php:30
412
+ msgid ""
413
+ "Wordpress account exists with given username. But given email doesn't match."
414
+ msgstr ""
415
+ "Wordpress-konto finns med ett givet användarnamn. Men given e-post matchar "
416
+ "inte."
417
+
418
+ #: classes/class.swpm-form.php:31
419
+ msgid ""
420
+ " Use a different username to complete the registration. If you want to use "
421
+ "that username then you must enter the correct email address associated with "
422
+ "the existing WP user to connect with that account."
423
+ msgstr ""
424
+ " Använd ett annat användarnamn för att slutföra registreringen. Om du vill "
425
+ "använda det användarnamnet måste du ange du den e-postadress som är "
426
+ "associerad med den befintliga WP-användaren."
427
+
428
+ #: classes/class.swpm-form.php:37
429
+ msgid ""
430
+ "Wordpress account exists with given email. But given username doesn't match."
431
+ msgstr ""
432
+ "Wordpress-konto finns med angivet användarnamn. Men angiven e-post matchar "
433
+ "inte."
434
+
435
+ #: classes/class.swpm-form.php:38
436
+ msgid ""
437
+ " Use a different email address to complete the registration. If you want to "
438
+ "use that email then you must enter the correct username associated with the "
439
+ "existing WP user to connect with that account."
440
+ msgstr ""
441
+ " Använd en annan e-postadress för att slutföra registreringen. Om du vill "
442
+ "använda denna e-postadress måste du ange rätt användarnamn är associerad "
443
+ "med den befintliga WP-användaren."
444
+
445
+ #: classes/class.swpm-form.php:48
446
+ msgid "Username is required"
447
+ msgstr "Användarnamn krävs"
448
+
449
+ #: classes/class.swpm-form.php:52
450
+ msgid "Username contains invalid character"
451
+ msgstr "Användarnamn innehåller ogiltiga tecken"
452
+
453
+ #: classes/class.swpm-form.php:60
454
+ msgid "Username already exists."
455
+ msgstr "Användarnamnet existerar redan."
456
+
457
+ #: classes/class.swpm-form.php:83
458
+ msgid "Password is required"
459
+ msgstr "Lösenord krävs"
460
+
461
+ #: classes/class.swpm-form.php:90
462
+ msgid "Password mismatch"
463
+ msgstr "Lösenord matchar inte"
464
+
465
+ #: classes/class.swpm-form.php:101
466
+ msgid "Email is required"
467
+ msgstr "E-post krävs"
468
+
469
+ #: classes/class.swpm-form.php:105
470
+ msgid "Email is invalid"
471
+ msgstr "Ogiltig e-postadress"
472
+
473
+ #: classes/class.swpm-form.php:121
474
+ msgid "Email is already used."
475
+ msgstr "E-postadressen används redan."
476
+
477
+ #: classes/class.swpm-form.php:179
478
+ msgid "Member since field is invalid"
479
+ msgstr "Medlem sedan-fältet är ogiltigt"
480
+
481
+ #: classes/class.swpm-form.php:190
482
+ msgid "Access starts field is invalid"
483
+ msgstr "Åtkomst-fältet är ogiltigt"
484
+
485
+ #: classes/class.swpm-form.php:200
486
+ msgid "Gender field is invalid"
487
+ msgstr "Kön-fältet är ogiltigt"
488
+
489
+ #: classes/class.swpm-form.php:211
490
+ msgid "Account state field is invalid"
491
+ msgstr "Kontostatus-fältet är ogiltigt"
492
+
493
+ #: classes/class.swpm-form.php:218
494
+ msgid "Invalid membership level"
495
+ msgstr "Ogiltig medlemskapsnivå"
496
+
497
+ #: classes/class.swpm-front-registration.php:33
498
+ msgid ""
499
+ "Error! Invalid Request. Could not find a match for the given security code "
500
+ "and the user ID."
501
+ msgstr ""
502
+ "Fel! Ogiltig begäran. Kunde inte hitta en matchning för angiven säkerhetskod "
503
+ "och användar-ID."
504
+
505
+ #: classes/class.swpm-front-registration.php:45
506
+ #: classes/class.swpm-utils-misc.php:274 views/login.php:36
507
+ msgid "Join Us"
508
+ msgstr "Bli medlem"
509
+
510
+ #: classes/class.swpm-front-registration.php:47
511
+ msgid ""
512
+ "Free membership is disabled on this site. Please make a payment from the "
513
+ msgstr ""
514
+ "Gratis medlemskap är inaktiverad på denna webbplats. Vänligen gör en "
515
+ "betalning från "
516
+
517
+ #: classes/class.swpm-front-registration.php:49
518
+ msgid " page to pay for a premium membership."
519
+ msgstr " sida för att betala för ett premium-medlemskap."
520
+
521
+ #: classes/class.swpm-front-registration.php:51
522
+ msgid ""
523
+ "You will receive a unique link via email after the payment. You will be able "
524
+ "to use that link to complete the premium membership registration."
525
+ msgstr ""
526
+ "Du kommer att få en unik länk via e-post efter betalningen. Du kommer att "
527
+ "kunna använda den länken för att slutföra medlemskapsregistreringen."
528
+
529
+ #: classes/class.swpm-front-registration.php:79
530
+ msgid "Security check: captcha validation failed."
531
+ msgstr "Säkerhetskontroll: captcha-validering misslyckades."
532
+
533
+ #: classes/class.swpm-front-registration.php:89
534
+ msgid "You must accept the terms and conditions."
535
+ msgstr "Du måste acceptera villkoren."
536
+
537
+ #: classes/class.swpm-front-registration.php:100
538
+ msgid "You must agree to the privacy policy."
539
+ msgstr "Du måste godkänna Integritetspolicyn."
540
+
541
+ #: classes/class.swpm-front-registration.php:140
542
+ msgid ""
543
+ "You need to confirm your email address. Please check your email and follow "
544
+ "instructions to complete your registration."
545
+ msgstr ""
546
+ "Du måste bekräfta din e-postadress. Kontrollera din e-post och följ "
547
+ "instruktionerna för att slutföra din registrering."
548
+
549
+ #: classes/class.swpm-front-registration.php:145
550
+ msgid "Registration Successful. "
551
+ msgstr "Registreringen lyckades! "
552
+
553
+ #: classes/class.swpm-front-registration.php:145
554
+ #: classes/class.swpm-utils-misc.php:273 classes/class.swpm-utils-misc.php:285
555
+ msgid "Please"
556
+ msgstr "Vänligen"
557
+
558
+ #: classes/class.swpm-front-registration.php:145
559
+ #: classes/class.swpm-utils-misc.php:273 views/login.php:30
560
+ msgid "Login"
561
+ msgstr "Logga in"
562
+
563
+ #: classes/class.swpm-front-registration.php:159
564
+ msgid "Please correct the following"
565
+ msgstr "Vänligen rätta till följande"
566
+
567
+ #: classes/class.swpm-front-registration.php:207
568
+ msgid "Membership Level Couldn't be found."
569
+ msgstr "Medlemsskapsnivå kunde inte hittas."
570
+
571
+ #: classes/class.swpm-front-registration.php:258
572
+ msgid "Error! Nonce verification failed for front end profile edit."
573
+ msgstr ""
574
+ "Fel! Verifiering av nonce misslyckades vid redigering av profilen (front-"
575
+ "end)."
576
+
577
+ #: classes/class.swpm-front-registration.php:266
578
+ msgid "Profile updated successfully."
579
+ msgstr "Profil uppdaterad."
580
+
581
+ #: classes/class.swpm-front-registration.php:275
582
+ msgid ""
583
+ "Profile updated successfully. You will need to re-login since you changed "
584
+ "your password."
585
+ msgstr ""
586
+ "Profilen uppdaterades. Du behöver logga in på nytt då du ändrade ditt "
587
+ "lösenord."
588
+
589
+ #: classes/class.swpm-front-registration.php:289
590
+ msgid "Please correct the following."
591
+ msgstr "Vänligen rätta till följande."
592
+
593
+ #: classes/class.swpm-front-registration.php:301
594
+ msgid "Captcha validation failed."
595
+ msgstr "Captcha-validering misslyckades."
596
+
597
+ #: classes/class.swpm-front-registration.php:309
598
+ msgid "Email address not valid."
599
+ msgstr "Ogiltig e-postadress."
600
+
601
+ #: classes/class.swpm-front-registration.php:320
602
+ msgid "No user found with that email address."
603
+ msgstr "Ingen användare hittades med den e-postadressen."
604
+
605
+ #: classes/class.swpm-front-registration.php:321
606
+ #: classes/class.swpm-front-registration.php:350
607
+ msgid "Email Address: "
608
+ msgstr "E-postadress: "
609
+
610
+ #: classes/class.swpm-front-registration.php:349
611
+ msgid "New password has been sent to your email address."
612
+ msgstr "Ett nytt lösenord har skickats till din e-postadress."
613
+
614
+ #: classes/class.swpm-front-registration.php:371
615
+ msgid "Can't find member account."
616
+ msgstr "Det går inte att hitta medlemskontot."
617
+
618
+ #: classes/class.swpm-front-registration.php:376
619
+ #: classes/class.swpm-front-registration.php:426
620
+ msgid "Account already active. "
621
+ msgstr "Kontot är redan aktivt. "
622
+
623
+ #: classes/class.swpm-front-registration.php:376
624
+ #: classes/class.swpm-front-registration.php:426
625
+ msgid " to login."
626
+ msgstr " för att logga in."
627
+
628
+ #: classes/class.swpm-front-registration.php:383
629
+ msgid ""
630
+ "Activation code mismatch. Cannot activate this account. Please contact the "
631
+ "site admin."
632
+ msgstr ""
633
+ "Aktiveringskoden stämmer inte. Det går inte att aktivera det här kontot. "
634
+ "Vänligen kontakta administratören för webbplatsen."
635
+
636
+ #: classes/class.swpm-front-registration.php:397
637
+ msgid "Success! Your account has been activated successfully."
638
+ msgstr "Japp! Ditt konto har framgångsrikt aktiverats."
639
+
640
+ #: classes/class.swpm-front-registration.php:421
641
+ msgid "Cannot find member account."
642
+ msgstr "Det går inte att hitta medlemskontot."
643
+
644
+ #: classes/class.swpm-front-registration.php:443
645
+ msgid ""
646
+ "Activation email has been sent. Please check your email and activate your "
647
+ "account."
648
+ msgstr ""
649
+ "E-post för aktivering har skickats. Kontrollera din e-post och aktivera ditt "
650
+ "konto."
651
+
652
+ #: classes/class.swpm-init-time-tasks.php:118
653
+ msgid "Sorry, Nonce verification failed."
654
+ msgstr "Tyvärr, verifiering av Nonce misslyckades."
655
+
656
+ #: classes/class.swpm-init-time-tasks.php:125
657
+ msgid "Sorry, Password didn't match."
658
+ msgstr "Tyvärr, lösenordet matchade inte."
659
+
660
+ #: classes/class.swpm-level-form.php:50
661
+ msgid "Date format is not valid."
662
+ msgstr "Ogiltigt datumformat."
663
+
664
+ #: classes/class.swpm-level-form.php:58
665
+ msgid "Access duration must be > 0."
666
+ msgstr "Åtkomstens varaktighet måste vara > 0."
667
+
668
+ #: classes/class.swpm-members.php:10
669
+ msgid "Member"
670
+ msgstr "Medlem"
671
+
672
+ #: classes/class.swpm-members.php:19
673
+ #: classes/class.swpm-membership-levels.php:20
674
+ msgid "ID"
675
+ msgstr "ID"
676
+
677
+ #: classes/class.swpm-members.php:20 views/add.php:16 views/admin_add.php:11
678
+ #: views/admin_edit.php:19 views/edit.php:23
679
+ #: includes/swpm_mda_show_profile.php:27
680
+ msgid "Username"
681
+ msgstr "Användarnamn"
682
+
683
+ #: classes/class.swpm-members.php:21
684
+ #: classes/admin-includes/class.swpm-payments-list-table.php:78
685
+ #: views/add.php:32 views/admin_member_form_common_part.php:15
686
+ #: views/edit.php:39 includes/swpm_mda_show_profile.php:28
687
+ msgid "First Name"
688
+ msgstr "Förnamn"
689
+
690
+ #: classes/class.swpm-members.php:22
691
+ #: classes/admin-includes/class.swpm-payments-list-table.php:79
692
+ #: views/add.php:36 views/admin_member_form_common_part.php:19
693
+ #: views/edit.php:43 includes/swpm_mda_show_profile.php:29
694
+ msgid "Last Name"
695
+ msgstr "Efternamn"
696
+
697
+ #: classes/class.swpm-members.php:23 views/add.php:20 views/edit.php:27
698
+ #: includes/swpm_mda_show_profile.php:35
699
+ msgid "Email"
700
+ msgstr "E-post"
701
+
702
+ #: classes/class.swpm-members.php:25 views/admin_member_form_common_part.php:11
703
+ msgid "Access Starts"
704
+ msgstr "Tillgång startar"
705
+
706
+ #: classes/class.swpm-members.php:26 includes/swpm_mda_show_profile.php:31
707
+ msgid "Account State"
708
+ msgstr "Kontostatus"
709
+
710
+ #: classes/class.swpm-members.php:27
711
+ msgid "Last Login Date"
712
+ msgstr "Senaste datum för Login"
713
+
714
+ #: classes/class.swpm-members.php:46
715
+ #: classes/class.swpm-membership-levels.php:36
716
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:94
717
+ #: classes/admin-includes/class.swpm-payments-list-table.php:102
718
+ msgid "Delete"
719
+ msgstr "Radera"
720
+
721
+ #: classes/class.swpm-members.php:47
722
+ msgid "Set Status to Active"
723
+ msgstr "Ställ in status till Aktiv"
724
+
725
+ #: classes/class.swpm-members.php:48
726
+ msgid "Set Status to Active and Notify"
727
+ msgstr "Ställ in status till Aktiv och Meddela"
728
+
729
+ #: classes/class.swpm-members.php:49
730
+ msgid "Set Status to Inactive"
731
+ msgstr "Ställ in status som Inaktiv"
732
+
733
+ #: classes/class.swpm-members.php:50
734
+ msgid "Set Status to Pending"
735
+ msgstr "Markera som Väntande"
736
+
737
+ #: classes/class.swpm-members.php:51
738
+ msgid "Set Status to Expired"
739
+ msgstr "Ange Status till Utgången"
740
+
741
+ #: classes/class.swpm-members.php:72
742
+ msgid "incomplete"
743
+ msgstr "ofullständig"
744
+
745
+ #: classes/class.swpm-members.php:191
746
+ msgid "No member found."
747
+ msgstr "Medlem ej hittad."
748
+
749
+ #: classes/class.swpm-members.php:337
750
+ msgid "Error! Nonce verification failed for user delete from admin end."
751
+ msgstr ""
752
+ "Fel! Nonceverifiering misslyckades för användaren från adminläget (back-end)."
753
+
754
+ #: classes/class.swpm-members.php:406 classes/class.swpm-members.php:436
755
+ msgid "Error! Please select a membership level first."
756
+ msgstr "Fel! Välj en medlemsnivå först."
757
+
758
+ #: classes/class.swpm-members.php:423
759
+ msgid "Membership level change operation completed successfully."
760
+ msgstr "Ändring av medlemsnivå slutfördes."
761
+
762
+ #: classes/class.swpm-members.php:453
763
+ msgid "Access starts date change operation successfully completed."
764
+ msgstr "Ändring av åtkomstdatum slutfördes."
765
+
766
+ #: classes/class.swpm-members.php:462
767
+ msgid "Bulk Update Membership Level of Members"
768
+ msgstr "Massuppdatering av medlemsnivå av medlemmar"
769
+
770
+ #: classes/class.swpm-members.php:465
771
+ msgid ""
772
+ "You can manually change the membership level of any member by editing the "
773
+ "record from the members menu. "
774
+ msgstr ""
775
+ "Du kan ändra medlemskap manuellt för en medlem genom att redigera posten "
776
+ "från menyn medlemmar. "
777
+
778
+ #: classes/class.swpm-members.php:466
779
+ msgid ""
780
+ "You can use the following option to bulk update the membership level of "
781
+ "users who belong to the level you select below."
782
+ msgstr ""
783
+ "Du kan använda följande alternativ för att massuppdatera medlemsnivån för "
784
+ "medlemmar med nivån du väljer nedan."
785
+
786
+ #: classes/class.swpm-members.php:472 classes/class.swpm-members.php:520
787
+ msgid "Membership Level: "
788
+ msgstr "Medlemskapsnivå: "
789
+
790
+ #: classes/class.swpm-members.php:476
791
+ msgid "Select Current Level"
792
+ msgstr "Välj nuvarande nivå"
793
+
794
+ #: classes/class.swpm-members.php:479
795
+ msgid ""
796
+ "Select the current membership level (the membership level of all members who "
797
+ "are in this level will be updated)."
798
+ msgstr ""
799
+ "Välj den nuvarande medlemsnivå (medlemskap nivån på alla medlemmar som är i "
800
+ "denna nivå kommer att uppdateras)."
801
+
802
+ #: classes/class.swpm-members.php:485
803
+ msgid "Level to Change to: "
804
+ msgstr "Ändra nivå till: "
805
+
806
+ #: classes/class.swpm-members.php:489
807
+ msgid "Select Target Level"
808
+ msgstr "Välj målnivå"
809
+
810
+ #: classes/class.swpm-members.php:492
811
+ msgid "Select the new membership level."
812
+ msgstr "Välj ny medlemskapsnivå."
813
+
814
+ #: classes/class.swpm-members.php:498
815
+ msgid "Bulk Change Membership Level"
816
+ msgstr "Massändra medlemskapsnivå"
817
+
818
+ #: classes/class.swpm-members.php:508
819
+ msgid "Bulk Update Access Starts Date of Members"
820
+ msgstr "Massuppdatera åtkomstsstartdatum för medlemmar"
821
+
822
+ #: classes/class.swpm-members.php:512
823
+ msgid ""
824
+ "The access starts date of a member is set to the day the user registers. "
825
+ "This date value is used to calculate how long the member can access your "
826
+ "content that are protected with a duration type protection in the membership "
827
+ "level. "
828
+ msgstr ""
829
+ "Åtkomststartdatum är inställt till den dag då användaren registrerar sig. "
830
+ "Värdet avvänds för att beräkna hur länge medlemmen får åtkomst till "
831
+ "nivåskyddat innehåll. "
832
+
833
+ #: classes/class.swpm-members.php:513
834
+ msgid ""
835
+ "You can manually set a specific access starts date value of all members who "
836
+ "belong to a particular level using the following option."
837
+ msgstr ""
838
+ "Du kan ställa in ett specifikt startdatum för alla medlemmar på en viss nivå "
839
+ "med följande inställning."
840
+
841
+ #: classes/class.swpm-members.php:523
842
+ msgid "Select Level"
843
+ msgstr "Välj nivå"
844
+
845
+ #: classes/class.swpm-members.php:526
846
+ msgid ""
847
+ "Select the Membership level (the access start date of all members who are in "
848
+ "this level will be updated)."
849
+ msgstr ""
850
+ "Välj medlemskapsnivå (åtkomstsstartdatum för alla medlemmar som är i denna "
851
+ "nivå kommer att uppdateras)."
852
+
853
+ #: classes/class.swpm-members.php:535
854
+ msgid "Specify the access starts date value."
855
+ msgstr "Specifiera startdatum för åtkomst."
856
+
857
+ #: classes/class.swpm-members.php:541
858
+ msgid "Bulk Change Access Starts Date"
859
+ msgstr "Massuppdatera startdatum för åtkomst"
860
+
861
+ #: classes/class.swpm-members.php:576
862
+ msgid "Simple WP Membership::Members"
863
+ msgstr "Simple WP Membership::Medlemmar"
864
+
865
+ #: classes/class.swpm-members.php:577
866
+ #: classes/class.swpm-membership-levels.php:226 views/admin_members_list.php:44
867
+ msgid "Add New"
868
+ msgstr "Lägg till"
869
+
870
+ #: classes/class.swpm-members.php:582 views/admin_add.php:6
871
+ msgid "Add Member"
872
+ msgstr "Lägg till medlem"
873
+
874
+ #: classes/class.swpm-members.php:583
875
+ msgid "Bulk Operation"
876
+ msgstr "Massåtgärder"
877
+
878
+ #: classes/class.swpm-membership-level.php:52
879
+ msgid ""
880
+ "Error! Nonce verification failed for membership level creation from admin "
881
+ "end."
882
+ msgstr ""
883
+ "Fel! Nounce-verifiering misslyckades för att skapa medlemsskapsnivå från "
884
+ "adminläget (back-end)."
885
+
886
+ #: classes/class.swpm-membership-level.php:68
887
+ msgid "Membership Level Creation Successful."
888
+ msgstr "Ny medlemsskapsnivå har skapats."
889
+
890
+ #: classes/class.swpm-membership-level.php:84
891
+ msgid ""
892
+ "Error! Nonce verification failed for membership level edit from admin end."
893
+ msgstr ""
894
+ "Fel! Nounce-verifieringen misslyckades för att redigera medlemskapsnivå från "
895
+ "adminläge (back-end)."
896
+
897
+ #: classes/class.swpm-membership-level.php:100
898
+ msgid "Membership Level Updated Successfully."
899
+ msgstr "Uppdatering av medlemskapsnivå lyckades."
900
+
901
+ #: classes/class.swpm-membership-levels.php:22
902
+ msgid "Role"
903
+ msgstr "Roll"
904
+
905
+ #: classes/class.swpm-membership-levels.php:23
906
+ msgid "Access Valid For/Until"
907
+ msgstr "Åtkomst giltig till"
908
+
909
+ #: classes/class.swpm-membership-levels.php:133
910
+ msgid "No membership levels found."
911
+ msgstr "Ingen medlemsskapsnivå hittades."
912
+
913
+ #: classes/class.swpm-membership-levels.php:197
914
+ msgid ""
915
+ "Error! Nonce verification failed for membership level delete from admin end."
916
+ msgstr ""
917
+ "Fel! Nounce-verifieringen misslyckades för att radera medlemskapsnivån från "
918
+ "adminläge (back-end)."
919
+
920
+ #: classes/class.swpm-membership-levels.php:216 views/admin_members_list.php:31
921
+ #: views/payments/admin_all_payment_transactions.php:16 views/template-1.php:53
922
+ #: views/template-2.php:54
923
+ msgid "Search"
924
+ msgstr "Sök"
925
+
926
+ #: classes/class.swpm-membership-levels.php:261
927
+ msgid "Simple WP Membership::Membership Levels"
928
+ msgstr "Simple WP Membership::Medlemsnivåer"
929
+
930
+ #: classes/class.swpm-membership-levels.php:266
931
+ msgid "Add Level"
932
+ msgstr "Lägg till nivå"
933
+
934
+ #: classes/class.swpm-membership-levels.php:267
935
+ msgid "Manage Content Protection"
936
+ msgstr "Redigera innehållsskydd"
937
+
938
+ #: classes/class.swpm-membership-levels.php:268
939
+ msgid "Category Protection"
940
+ msgstr "Kategoriskydd"
941
+
942
+ #: classes/class.swpm-membership-levels.php:269
943
+ msgid "Post and Page Protection"
944
+ msgstr "Post- och sidskydd"
945
+
946
+ #: classes/class.swpm-post-list.php:43 classes/class.swpm-post-list.php:52
947
+ #: classes/class.swpm-post-list.php:62
948
+ #: classes/admin-includes/class.swpm-payments-list-table.php:81
949
+ msgid "Date"
950
+ msgstr "Datum"
951
+
952
+ #: classes/class.swpm-post-list.php:44 classes/class.swpm-post-list.php:53
953
+ #: classes/class.swpm-post-list.php:63
954
+ msgid "Title"
955
+ msgstr "Titel"
956
+
957
+ #: classes/class.swpm-post-list.php:45 classes/class.swpm-post-list.php:54
958
+ #: classes/class.swpm-post-list.php:64
959
+ msgid "Author"
960
+ msgstr "Författare"
961
+
962
+ #: classes/class.swpm-post-list.php:46 classes/class.swpm-post-list.php:56
963
+ #: classes/class.swpm-post-list.php:66
964
+ msgid "Status"
965
+ msgstr "Status"
966
+
967
+ #: classes/class.swpm-post-list.php:55
968
+ msgid "Categories"
969
+ msgstr "Kategorier"
970
+
971
+ #: classes/class.swpm-post-list.php:65
972
+ msgid "Type"
973
+ msgstr "Typ"
974
+
975
+ #: classes/class.swpm-post-list.php:125
976
+ msgid "Protection settings updated!"
977
+ msgstr "Skyddsinställningar uppdaterade!"
978
+
979
+ #: classes/class.swpm-post-list.php:230
980
+ msgid "No items found."
981
+ msgstr "Inga objekt hittades."
982
+
983
+ #: classes/class.swpm-protection.php:22
984
+ msgid ""
985
+ "The category or parent category of this post is protected. You can change "
986
+ "the category protection settings from the "
987
+ msgstr ""
988
+ "Kategorin eller föräldrakategorin för detta inlägg är skyddad. Du kan ändra "
989
+ "inställningarna för kategoriskydd från "
990
+
991
+ #: classes/class.swpm-protection.php:23
992
+ msgid "category protection menu"
993
+ msgstr "menyn för kategoriskydd"
994
+
995
+ #: classes/class.swpm-settings.php:26 classes/class.swpm-settings.php:54
996
+ msgid "General Settings"
997
+ msgstr "Allmänna inställningar"
998
+
999
+ #: classes/class.swpm-settings.php:27
1000
+ msgid "Payment Settings"
1001
+ msgstr "Betalningsinställningar"
1002
+
1003
+ #: classes/class.swpm-settings.php:28
1004
+ msgid "Email Settings"
1005
+ msgstr "E-postinställningar"
1006
+
1007
+ #: classes/class.swpm-settings.php:29
1008
+ msgid "Tools"
1009
+ msgstr "Verktyg"
1010
+
1011
+ #: classes/class.swpm-settings.php:30 classes/class.swpm-settings.php:187
1012
+ msgid "Advanced Settings"
1013
+ msgstr "Avancerade inställningar"
1014
+
1015
+ #: classes/class.swpm-settings.php:31
1016
+ msgid "Addons Settings"
1017
+ msgstr "Tilläggsinställningar"
1018
+
1019
+ #: classes/class.swpm-settings.php:53
1020
+ msgid "Plugin Documentation"
1021
+ msgstr "Dokumentation för plugin"
1022
+
1023
+ #: classes/class.swpm-settings.php:55
1024
+ msgid "Enable Free Membership"
1025
+ msgstr "Möjliggör gratis medlemskapsnivå"
1026
+
1027
+ #: classes/class.swpm-settings.php:56
1028
+ msgid ""
1029
+ "Enable/disable registration for free membership level. When you enable this "
1030
+ "option, make sure to specify a free membership level ID in the field below."
1031
+ msgstr ""
1032
+ "Aktivera/inaktivera registrering för gratis medlemsnivå. När du aktiverar "
1033
+ "det här alternativet, se till att du anger ett gratis medlemsnivå ID i "
1034
+ "fältet nedan."
1035
+
1036
+ #: classes/class.swpm-settings.php:57
1037
+ msgid "Free Membership Level ID"
1038
+ msgstr "Gratis medlemskapsnivå ID"
1039
+
1040
+ #: classes/class.swpm-settings.php:58
1041
+ msgid "Assign free membership level ID"
1042
+ msgstr "Tilldela gratis medlemskapsnivå ID"
1043
+
1044
+ #: classes/class.swpm-settings.php:59
1045
+ msgid "Enable More Tag Protection"
1046
+ msgstr "Möjliggör ”läs mer”-taggskydd"
1047
+
1048
+ #: classes/class.swpm-settings.php:60
1049
+ msgid ""
1050
+ "Enables or disables \"more\" tag protection in the posts and pages. Anything "
1051
+ "after the More tag is protected. Anything before the more tag is teaser "
1052
+ "content."
1053
+ msgstr ""
1054
+ "Möjliggör eller möjliggör ej ”läs mer”-tag skydd hos inlägg och sidor. Allt "
1055
+ "efter ”Läs mer” tag är skyddat. Allt innan ”läs mer” är teaser."
1056
+
1057
+ #: classes/class.swpm-settings.php:61
1058
+ msgid "Hide Adminbar"
1059
+ msgstr "Göm Adminpanel"
1060
+
1061
+ #: classes/class.swpm-settings.php:62
1062
+ msgid ""
1063
+ "WordPress shows an admin toolbar to the logged in users of the site. Check "
1064
+ "this if you want to hide that admin toolbar in the frontend of your site."
1065
+ msgstr ""
1066
+ "Wordpress visar en Adminpanel för inloggade användare sidan. Bocka av "
1067
+ "checkboxen om du vill gömma Adminpanelen på framsidan av din sida."
1068
+
1069
+ #: classes/class.swpm-settings.php:63
1070
+ msgid "Show Adminbar to Admin"
1071
+ msgstr "Visa adminpanel för administratörer"
1072
+
1073
+ #: classes/class.swpm-settings.php:64
1074
+ msgid ""
1075
+ "Use this option if you want to show the admin toolbar to admin users only. "
1076
+ "The admin toolbar will be hidden for all other users."
1077
+ msgstr ""
1078
+ "Använd detta alternativ om du vll visa adminpanel enbart för "
1079
+ "administratörer. Panelen döljs för andra användare."
1080
+
1081
+ #: classes/class.swpm-settings.php:65
1082
+ msgid "Disable Access to WP Dashboard"
1083
+ msgstr "Inaktivera åtkomst till WP-panelen"
1084
+
1085
+ #: classes/class.swpm-settings.php:66
1086
+ msgid ""
1087
+ "WordPress allows a standard wp user to be able to go to the wp-admin URL and "
1088
+ "access his profile from the wp dashbaord. Using this option will prevent any "
1089
+ "non admin users from going to the wp dashboard."
1090
+ msgstr ""
1091
+ "WordPress tillåter en standard WP-användare för att kunna gå till WP-admin "
1092
+ "webbadressen och hans profil från den WP-instrumentpanel. Med det här "
1093
+ "alternativet kommer att förhindra icke administratörsanvändare från att gå "
1094
+ "till WP-instrumentpanel."
1095
+
1096
+ #: classes/class.swpm-settings.php:68 classes/class.swpm-settings.php:242
1097
+ msgid "Default Account Status"
1098
+ msgstr "Standard kontostatus"
1099
+
1100
+ #: classes/class.swpm-settings.php:71
1101
+ msgid ""
1102
+ "Select the default account status for newly registered users. If you want to "
1103
+ "manually approve the members then you can set the status to \"Pending\"."
1104
+ msgstr ""
1105
+ "Välj standard kontostatus för de nyregistrerade användare. Om du vill "
1106
+ "godkänna medlemmarna manuellt så kan du sätta statusen till ”avvaktande”."
1107
+
1108
+ #: classes/class.swpm-settings.php:73
1109
+ msgid "Members Must be Logged in to Comment"
1110
+ msgstr "Medlem måste vara inloggad för att lägga till en kommentar"
1111
+
1112
+ #: classes/class.swpm-settings.php:74
1113
+ msgid ""
1114
+ "Enable this option if you only want the members of the site to be able to "
1115
+ "post a comment."
1116
+ msgstr ""
1117
+ "Aktivera det här alternativet om du bara vill medlemmarna i webbplatsen för "
1118
+ "att kunna skriva en kommentar."
1119
+
1120
+ #: classes/class.swpm-settings.php:83
1121
+ msgid "Pages Settings"
1122
+ msgstr "Sidinställningar"
1123
+
1124
+ #: classes/class.swpm-settings.php:84
1125
+ msgid "Login Page URL"
1126
+ msgstr "Inloggningssida URL"
1127
+
1128
+ #: classes/class.swpm-settings.php:86
1129
+ msgid "Registration Page URL"
1130
+ msgstr "Registreringssida URL"
1131
+
1132
+ #: classes/class.swpm-settings.php:88
1133
+ msgid "Join Us Page URL"
1134
+ msgstr "Bli medlemsida URL"
1135
+
1136
+ #: classes/class.swpm-settings.php:90
1137
+ msgid "Edit Profile Page URL"
1138
+ msgstr "Profilredigeringssida URL"
1139
+
1140
+ #: classes/class.swpm-settings.php:92
1141
+ msgid "Password Reset Page URL"
1142
+ msgstr "Sida för återställning av lösenord"
1143
+
1144
+ #: classes/class.swpm-settings.php:95
1145
+ msgid "Test & Debug Settings"
1146
+ msgstr "Inställningar för test och felsökning"
1147
+
1148
+ #: classes/class.swpm-settings.php:97
1149
+ msgid "Check this option to enable debug logging."
1150
+ msgstr "Markera detta alternativ för att aktivera felsökningsloggning."
1151
+
1152
+ #: classes/class.swpm-settings.php:98
1153
+ msgid ""
1154
+ " This can be useful when troubleshooting an issue. Turn it off and reset the "
1155
+ "log files after the troubleshooting is complete."
1156
+ msgstr ""
1157
+ " Detta kan vara användbart vid felsökning av ett problem. Stäng av den och "
1158
+ "återställ loggfilerna när felsökningen är klar."
1159
+
1160
+ #: classes/class.swpm-settings.php:100
1161
+ msgid "View general debug log file by clicking "
1162
+ msgstr "Visa allmän felsökningslogg genom att klicka "
1163
+
1164
+ #: classes/class.swpm-settings.php:100 classes/class.swpm-settings.php:101
1165
+ #: classes/class.swpm-settings.php:102
1166
+ msgid "here"
1167
+ msgstr "här"
1168
+
1169
+ #: classes/class.swpm-settings.php:101
1170
+ msgid "View login related debug log file by clicking "
1171
+ msgstr "Visa inloggningsrelaterad felsökningslogg genom att klicka "
1172
+
1173
+ #: classes/class.swpm-settings.php:102
1174
+ msgid "Reset debug log files by clicking "
1175
+ msgstr "Återställ felsökningslogg genom att klicka "
1176
+
1177
+ #: classes/class.swpm-settings.php:103
1178
+ msgid "Enable Debug"
1179
+ msgstr "Aktivera felsökning"
1180
+
1181
+ #: classes/class.swpm-settings.php:105
1182
+ msgid "Enable Sandbox Testing"
1183
+ msgstr "Möjliggör Sandbox-test"
1184
+
1185
+ #: classes/class.swpm-settings.php:106
1186
+ msgid "Enable this option if you want to do sandbox payment testing."
1187
+ msgstr "Möjliggör detta om du vill ha sandbox betalningstest."
1188
+
1189
+ #: classes/class.swpm-settings.php:119
1190
+ msgid "Email Settings Overview"
1191
+ msgstr "Översikt av e-postinställningar"
1192
+
1193
+ #: classes/class.swpm-settings.php:120
1194
+ msgid "Email Misc. Settings"
1195
+ msgstr "Inställningar för e-post"
1196
+
1197
+ #: classes/class.swpm-settings.php:122
1198
+ msgid "From Email Address"
1199
+ msgstr "Från e-postadress"
1200
+
1201
+ #: classes/class.swpm-settings.php:126
1202
+ msgid "Email Settings (Prompt to Complete Registration )"
1203
+ msgstr "Inställningar för e-post (uppmaning att slutföra registreringen)"
1204
+
1205
+ #: classes/class.swpm-settings.php:127 classes/class.swpm-settings.php:140
1206
+ #: classes/class.swpm-settings.php:158 classes/class.swpm-settings.php:163
1207
+ #: classes/class.swpm-settings.php:168 classes/class.swpm-settings.php:173
1208
+ msgid "Email Subject"
1209
+ msgstr "E-postsämne"
1210
+
1211
+ #: classes/class.swpm-settings.php:129 classes/class.swpm-settings.php:142
1212
+ #: classes/class.swpm-settings.php:159 classes/class.swpm-settings.php:164
1213
+ #: classes/class.swpm-settings.php:169 classes/class.swpm-settings.php:174
1214
+ msgid "Email Body"
1215
+ msgstr "E-postmeddelande"
1216
+
1217
+ #: classes/class.swpm-settings.php:133
1218
+ msgid ""
1219
+ "Enter the email address where you want the admin notification email to be "
1220
+ "sent to."
1221
+ msgstr "Ange den e-postadress dit admin-e-postmeddelanden ska skickas."
1222
+
1223
+ #: classes/class.swpm-settings.php:134
1224
+ msgid ""
1225
+ " You can put multiple email addresses separated by comma (,) in the above "
1226
+ "field to send the notification to multiple email addresses."
1227
+ msgstr ""
1228
+ " Du kan skriva flera adresser separerade med ett komma (,) i fältet ovan för "
1229
+ "att skicka till flera adresser."
1230
+
1231
+ #: classes/class.swpm-settings.php:136
1232
+ msgid "Enter the subject for the admin notification email."
1233
+ msgstr "Ange ämne för e-postmeddelande till Admin."
1234
+
1235
+ #: classes/class.swpm-settings.php:137
1236
+ msgid ""
1237
+ "This email will be sent to the admin when a new user completes the "
1238
+ "membership registration. Only works if you have enabled the \"Send "
1239
+ "Notification to Admin\" option above."
1240
+ msgstr ""
1241
+ "Detta mail skickas till Admin när en ny användare slutför registrering. "
1242
+ "Fungerar bara om du har aktiverat alternativet ”skickar anmälan till Admin” "
1243
+ "ovan."
1244
+
1245
+ #: classes/class.swpm-settings.php:139
1246
+ msgid "Email Settings (Registration Complete)"
1247
+ msgstr "Inställningar för e-post (lyckad registrering)"
1248
+
1249
+ #: classes/class.swpm-settings.php:144
1250
+ msgid "Send Notification to Admin"
1251
+ msgstr "Skicka notifiering till Admin"
1252
+
1253
+ #: classes/class.swpm-settings.php:145
1254
+ msgid ""
1255
+ "Enable this option if you want the admin to receive a notification when a "
1256
+ "member registers."
1257
+ msgstr ""
1258
+ "Aktivera det här alternativet om du att Admin får ett meddelande när en ny "
1259
+ "medlem registrerar."
1260
+
1261
+ #: classes/class.swpm-settings.php:146
1262
+ msgid "Admin Email Address"
1263
+ msgstr "E-postadress till administratören"
1264
+
1265
+ #: classes/class.swpm-settings.php:148
1266
+ msgid "Admin Notification Email Subject"
1267
+ msgstr "Ämne för meddelande till Admin"
1268
+
1269
+ #: classes/class.swpm-settings.php:150
1270
+ msgid "Admin Notification Email Body"
1271
+ msgstr "Meddelande till Admin"
1272
+
1273
+ #: classes/class.swpm-settings.php:153
1274
+ msgid "Send Email to Member When Added via Admin Dashboard"
1275
+ msgstr "Skicka e-post till medlem när den läggs till via Admin Dashboard"
1276
+
1277
+ #: classes/class.swpm-settings.php:157
1278
+ msgid "Email Settings (Password Reset)"
1279
+ msgstr "E-postinställningar (Återställ lösenord)"
1280
+
1281
+ #: classes/class.swpm-settings.php:162
1282
+ msgid " Email Settings (Account Upgrade Notification)"
1283
+ msgstr " E-postinställningar (Meddelande om kontouppgradering)"
1284
+
1285
+ #: classes/class.swpm-settings.php:167
1286
+ msgid " Email Settings (Bulk Account Activate Notification)"
1287
+ msgstr " E-postinställningar (Masskonto Aktivering )"
1288
+
1289
+ #: classes/class.swpm-settings.php:172
1290
+ msgid " Email Settings (Email Activation)"
1291
+ msgstr " E-postinställningar (E-postaktivering)"
1292
+
1293
+ #: classes/class.swpm-settings.php:189
1294
+ msgid "Enable Expired Account Login"
1295
+ msgstr "Aktivera inloggning för utgånget konto"
1296
+
1297
+ #: classes/class.swpm-settings.php:190
1298
+ msgid ""
1299
+ "When enabled, expired members will be able to log into the system but won't "
1300
+ "be able to view any protected content. This allows them to easily renew "
1301
+ "their account by making another payment."
1302
+ msgstr ""
1303
+ "När det är aktiverat, kommer medlemmar vars medlemsskap har gått ut, kunna "
1304
+ "logga in i systemet men kan inte se något skyddat innehåll. Detta gör att de "
1305
+ "enkelt kan förnya sitt konto genom att göra en ny betalning."
1306
+
1307
+ #: classes/class.swpm-settings.php:192
1308
+ msgid "Membership Renewal URL"
1309
+ msgstr "URL för förnyelse av medlemskap"
1310
+
1311
+ #: classes/class.swpm-settings.php:193
1312
+ msgid ""
1313
+ "You can create a renewal page for your site. Read <a href=\"https://simple-"
1314
+ "membership-plugin.com/creating-membership-renewal-button/\" target=\"_blank"
1315
+ "\">this documentation</a> to learn how to create a renewal page."
1316
+ msgstr ""
1317
+ "Du kan skapa en förnyelse sida för din webbplats. Läs <a href=”https://"
1318
+ "simple-membership-plugin.com/creating-membership-renewal-button/” "
1319
+ "target=”_blank”>denna dokumentation</a> om hur du skapar en förnyelse sida."
1320
+
1321
+ #: classes/class.swpm-settings.php:195
1322
+ msgid "After Registration Redirect URL"
1323
+ msgstr "Efter-registreringssida URL"
1324
+
1325
+ #: classes/class.swpm-settings.php:196
1326
+ msgid ""
1327
+ "You can enter an URL here to redirect the members to this page after they "
1328
+ "submit the registration form. Read <a href=\"https://simple-membership-"
1329
+ "plugin.com/configure-after-registration-redirect-for-members/\" target="
1330
+ "\"_blank\">this documentation</a> to learn how to setup after registration "
1331
+ "redirect."
1332
+ msgstr ""
1333
+ "Du kan ange en webbadress här för att omdirigera medlemmarna till den här "
1334
+ "sidan efter att de har skickat in registreringsformuläret. Läs <a "
1335
+ "href=”https://simple-membership-plugin.com/configure-registration-redirect-"
1336
+ "members/” target=”_blank”> den här dokumentationen </a> för att lära dig hur "
1337
+ "du konfigurerar efter registrering omdirigering."
1338
+
1339
+ #: classes/class.swpm-settings.php:198
1340
+ msgid "Enable Auto Login After Registration"
1341
+ msgstr "Aktivera automatisk inloggning efter registrering"
1342
+
1343
+ #: classes/class.swpm-settings.php:199
1344
+ msgid ""
1345
+ "Use this option if you want the members to be automatically logged into your "
1346
+ "site right after they complete the registration. This option will override "
1347
+ "any after registration redirection and instead it will trigger the after "
1348
+ "login redirection. Read <a href=\"https://simple-membership-plugin.com/"
1349
+ "configure-auto-login-after-registration-members/\" target=\"_blank\">this "
1350
+ "documentation</a> to learn more."
1351
+ msgstr ""
1352
+ "Använd det här alternativet om du vill att medlemmarna ska loggas in "
1353
+ "automatiskt på din webbplats direkt efter att de har slutfört "
1354
+ "registreringen. Det här alternativet åsidosätter någon efter omdirigering av "
1355
+ "registreringen och istället kommer den att aktivera omdirigering efter "
1356
+ "inloggning. Läs <a href=”https://simple-membership-plugin.com/configure-auto-"
1357
+ "login-after-registration-members/” target=”_blank”>denna dokumentation</a> "
1358
+ "för mer information."
1359
+
1360
+ #: classes/class.swpm-settings.php:201
1361
+ msgid "After Logout Redirect URL"
1362
+ msgstr "URL omdirigering efter utloggning"
1363
+
1364
+ #: classes/class.swpm-settings.php:202
1365
+ msgid ""
1366
+ "You can enter an URL here to redirect the members to this page after they "
1367
+ "click the logout link to logout from your site."
1368
+ msgstr ""
1369
+ "Du kan ange en URL här för att omdirigera medlemmarna till den här sidan "
1370
+ "efter att de klickar på utloggningslänken för att logga ut från din "
1371
+ "webbplats."
1372
+
1373
+ #: classes/class.swpm-settings.php:204
1374
+ msgid "Logout Member on Browser Close"
1375
+ msgstr "Logga ut medlem när webbläsaren stängs"
1376
+
1377
+ #: classes/class.swpm-settings.php:205
1378
+ msgid ""
1379
+ "Enable this option if you want the member to be logged out of the account "
1380
+ "when he closes the browser."
1381
+ msgstr ""
1382
+ "Aktivera det här alternativet om du vill att medlemmen ska loggas ut från "
1383
+ "kontot när hen stänger webbläsaren."
1384
+
1385
+ #: classes/class.swpm-settings.php:207
1386
+ msgid "Allow Account Deletion"
1387
+ msgstr "Tillåt radering av konto"
1388
+
1389
+ #: classes/class.swpm-settings.php:208
1390
+ msgid "Allow users to delete their accounts."
1391
+ msgstr "Tillåt användare att radera sina konton."
1392
+
1393
+ #: classes/class.swpm-settings.php:210
1394
+ msgid "Force Strong Password for Members"
1395
+ msgstr "Tvinga WP användarsynkronisering"
1396
+
1397
+ #: classes/class.swpm-settings.php:211
1398
+ msgid ""
1399
+ "Enable this if you want the users to be forced to use a strong password for "
1400
+ "their accounts."
1401
+ msgstr ""
1402
+ "Aktivera detta om du vill att användarna ska tvingas använda ett starkt "
1403
+ "lösenord för sina konton."
1404
+
1405
+ #: classes/class.swpm-settings.php:213
1406
+ msgid "Use WordPress Timezone"
1407
+ msgstr "Använd WordPress tidszoner"
1408
+
1409
+ #: classes/class.swpm-settings.php:214
1410
+ msgid ""
1411
+ "Use this option if you want to use the timezone value specified in your "
1412
+ "WordPress General Settings interface."
1413
+ msgstr ""
1414
+ "Aktivera för att använda WordPress tidszoner specificerat under WordPress "
1415
+ "Allmänna inställningar."
1416
+
1417
+ #: classes/class.swpm-settings.php:216
1418
+ msgid "Auto Delete Pending Account"
1419
+ msgstr "Automatisk borttagning av väntande konton"
1420
+
1421
+ #: classes/class.swpm-settings.php:219
1422
+ msgid "Select how long you want to keep \"pending\" account."
1423
+ msgstr "Välj hur länge du vill behålla ”väntande” konton."
1424
+
1425
+ #: classes/class.swpm-settings.php:221
1426
+ msgid "Admin Dashboard Access Permission"
1427
+ msgstr "Adminpanel åtkomstbehörighet"
1428
+
1429
+ #: classes/class.swpm-settings.php:224
1430
+ msgid ""
1431
+ "SWPM admin dashboard is accessible to admin users only (just like any other "
1432
+ "plugin). You can allow users with other WP user role to access the SWPM "
1433
+ "admin dashboard by selecting a value here. Note that this option cannot work "
1434
+ "if you enabled the \"Disable Access to WP Dashboard\" option in General "
1435
+ "Settings."
1436
+ msgstr ""
1437
+ "SWPM adminpanel är bara tillgänglig för administratörer (precis som för "
1438
+ "andra tillägg). Du kan tillåta användare med andra WP-roller att få tillgång "
1439
+ "till SWPM adminpanel genom att välja ett värde här."
1440
+
1441
+ #: classes/class.swpm-settings.php:226
1442
+ msgid "Force WP User Synchronization"
1443
+ msgstr "Tvinga WP-användarsynkronisering"
1444
+
1445
+ #: classes/class.swpm-settings.php:227
1446
+ msgid ""
1447
+ "Enable this option if you want to force the member login to be synchronized "
1448
+ "with WP user account. This can be useful if you are using another plugin "
1449
+ "that uses WP user records. For example: bbPress plugin."
1450
+ msgstr ""
1451
+ "Aktivera detta alternativ för att tving synkronisering med WP-användare. "
1452
+ "Användbart om ni använder andra tilägg som använder WP-användare. Ex bbPress."
1453
+
1454
+ #: classes/class.swpm-settings.php:230
1455
+ msgid "Create Member Accounts for New WP Users"
1456
+ msgstr "Skapa medlemskonton för nya WP-användare"
1457
+
1458
+ #: classes/class.swpm-settings.php:232
1459
+ msgid "Enable Auto Create Member Accounts"
1460
+ msgstr "Aktivera att skapa medlemskonton automatiskt"
1461
+
1462
+ #: classes/class.swpm-settings.php:233
1463
+ msgid ""
1464
+ "Enable this option to automatically create member accounts for any new WP "
1465
+ "user that is created by another plugin."
1466
+ msgstr ""
1467
+ "Aktivera det här alternativet för att automatiskt skapa medlemskonton för "
1468
+ "alla nya WP-användare som skapas av ett annat plugin."
1469
+
1470
+ #: classes/class.swpm-settings.php:236
1471
+ msgid "Default Membership Level"
1472
+ msgstr "Standard medlemsnivå"
1473
+
1474
+ #: classes/class.swpm-settings.php:239
1475
+ msgid ""
1476
+ "When automatically creating a member account using this feature, the "
1477
+ "membership level of the user will be set to the one you specify here."
1478
+ msgstr ""
1479
+ "När du skapar ett medlemskonto automatiskt med den här funktionen kommer "
1480
+ "användarnas medlemsnivå att ställas in till den du anger här."
1481
+
1482
+ #: classes/class.swpm-settings.php:245
1483
+ msgid ""
1484
+ "When automatically creating a member account using this feature, the "
1485
+ "membership account status of the user will be set to the one you specify "
1486
+ "here."
1487
+ msgstr ""
1488
+ "När du automatiskt skapar ett medlemskonto med den här funktionen kommer "
1489
+ "användarens medlemskontos status att ställas in till den du anger här."
1490
+
1491
+ #: classes/class.swpm-settings.php:247
1492
+ msgid "Payment Notification Forward URL"
1493
+ msgstr "Vidarebefordran av betalningsmeddelande"
1494
+
1495
+ #: classes/class.swpm-settings.php:248
1496
+ msgid ""
1497
+ "You can enter an URL here to forward the payment notification after the "
1498
+ "membership payment has been processed by this plugin. Useful if you want to "
1499
+ "forward the payment notification to an external script for further "
1500
+ "processing."
1501
+ msgstr ""
1502
+ "Du kan ange en URL här för att vidarebefordra betalningsmeddelandet efter "
1503
+ "att medlemsbetalningen har behandlats med detta plugin. Användbar om du vill "
1504
+ "vidarebefordra betalningsmeddelandet till ett externt skript för vidare "
1505
+ "bearbetning."
1506
+
1507
+ #: classes/class.swpm-settings.php:251 views/add.php:65
1508
+ msgid "Terms and Conditions"
1509
+ msgstr "Villkor"
1510
+
1511
+ #: classes/class.swpm-settings.php:253
1512
+ msgid "Enable Terms and Conditions"
1513
+ msgstr "Aktivera Villkor"
1514
+
1515
+ #: classes/class.swpm-settings.php:254
1516
+ msgid "Users must accept the terms before they can complete the registration."
1517
+ msgstr ""
1518
+ "Användare måste acceptera villkoren innan de kan slutföra registreringen."
1519
+
1520
+ #: classes/class.swpm-settings.php:255
1521
+ msgid "Terms and Conditions Page URL"
1522
+ msgstr "URL till sidan med villkor"
1523
+
1524
+ #: classes/class.swpm-settings.php:256
1525
+ msgid ""
1526
+ "Enter the URL of your terms and conditions page. You can create a WordPress "
1527
+ "page and specify your terms in there then specify the URL of that page in "
1528
+ "the above field."
1529
+ msgstr ""
1530
+ "Ange webbadressen till sidan med villkor. Du kan skapa en WordPress-sida och "
1531
+ "ange dina villkor där och sedan ange webbadressen för den sidan i fältet "
1532
+ "ovan."
1533
+
1534
+ #: classes/class.swpm-settings.php:257
1535
+ msgid "Enable Privacy Policy"
1536
+ msgstr "Aktivera Integritetspolicy"
1537
+
1538
+ #: classes/class.swpm-settings.php:258
1539
+ msgid "Users must accept it before they can complete the registration."
1540
+ msgstr "Användare måste acceptera det innan de kan slutföra registreringen."
1541
+
1542
+ #: classes/class.swpm-settings.php:259
1543
+ msgid "Privacy Policy Page URL"
1544
+ msgstr "URL för Integritetspolicy"
1545
+
1546
+ #: classes/class.swpm-settings.php:260
1547
+ msgid "Enter the URL of your privacy policy page."
1548
+ msgstr "Ange webbadressen till din Integritetspolicy."
1549
+
1550
+ #: classes/class.swpm-settings.php:350 classes/class.swpm-settings.php:396
1551
+ #: classes/class.swpm-settings.php:425
1552
+ msgid "Settings updated!"
1553
+ msgstr "Inställningarna uppdaterade!"
1554
+
1555
+ #: classes/class.swpm-settings.php:355
1556
+ msgid "General Plugin Settings."
1557
+ msgstr "Allmänna inställningar för detta plugin."
1558
+
1559
+ #: classes/class.swpm-settings.php:359
1560
+ msgid "Page Setup and URL Related settings."
1561
+ msgstr "Sidinställningar och URL-relaterade inställningar."
1562
+
1563
+ #: classes/class.swpm-settings.php:362
1564
+ msgid ""
1565
+ "The following pages are required for the plugin to function correctly. These "
1566
+ "pages were automatically created by the plugin at install time."
1567
+ msgstr ""
1568
+ "Följande sidor behövs för att SWMP-tillägget ska fungera korrekt. Dessa "
1569
+ "skapades automatiskt när tillägget installerades."
1570
+
1571
+ #: classes/class.swpm-settings.php:367
1572
+ msgid "Testing and Debug Related Settings."
1573
+ msgstr "Inställningar för test och felsökning."
1574
+
1575
+ #: classes/class.swpm-settings.php:371
1576
+ msgid ""
1577
+ "This email will be sent to your users when they complete the registration "
1578
+ "and become a member."
1579
+ msgstr ""
1580
+ "Detta e-post skickas till användaren när de registrerat sig och blivit "
1581
+ "medlem."
1582
+
1583
+ #: classes/class.swpm-settings.php:375
1584
+ msgid ""
1585
+ "This email will be sent to your users when they use the password reset "
1586
+ "functionality."
1587
+ msgstr ""
1588
+ "Detta e-post skickas till användaren när de använder funktionen Återställa "
1589
+ "lösenordet."
1590
+
1591
+ #: classes/class.swpm-settings.php:381
1592
+ msgid ""
1593
+ "This interface lets you custsomize the various emails that gets sent to your "
1594
+ "members for various actions. The default settings should be good to get your "
1595
+ "started."
1596
+ msgstr ""
1597
+ "Dessa inställningar låter dig anpassa e-postmeddelandena som skickas till "
1598
+ "medlemmarna. Standardinställningarna funkar för att komma igång."
1599
+
1600
+ #: classes/class.swpm-settings.php:385 views/admin_tools_settings.php:82
1601
+ msgid "This documentation"
1602
+ msgstr "Denna dokumentation"
1603
+
1604
+ #: classes/class.swpm-settings.php:386
1605
+ msgid ""
1606
+ " explains what email merge tags you can use in the email body field to "
1607
+ "customize it (if you want to)."
1608
+ msgstr ""
1609
+ " förklarar vilka ’email merge tags’ du kan använda i fältet för e-postadress "
1610
+ "för att anpassa den (om du vill)."
1611
+
1612
+ #: classes/class.swpm-settings.php:399
1613
+ msgid "Settings in this section apply to all emails."
1614
+ msgstr "Dessa inställningar gäller för all e-post."
1615
+
1616
+ #: classes/class.swpm-settings.php:403
1617
+ msgid ""
1618
+ "This email will be sent to your users after account upgrade (when an "
1619
+ "existing member pays for a new membership level)."
1620
+ msgstr ""
1621
+ "Detta e-post skickas till användaren när de uppgraderat sitt konto "
1622
+ "(existerande medlem har betalat för en högre nivå)"
1623
+
1624
+ #: classes/class.swpm-settings.php:407
1625
+ msgid ""
1626
+ "This email will be sent to your members when you use the bulk account "
1627
+ "activate and notify action."
1628
+ msgstr ""
1629
+ "Detta mail kommer att skickas till dina medlemmar när du använder masskonto-"
1630
+ "aktivera och notifiera-åtgärder."
1631
+
1632
+ #: classes/class.swpm-settings.php:408
1633
+ msgid ""
1634
+ " You cannot use email merge tags in this email. You can only use generic "
1635
+ "text."
1636
+ msgstr ""
1637
+ " Du kan inte använda e-postmergetaggar i detta e-mail. Du kan endast använda "
1638
+ "generiska text."
1639
+
1640
+ #: classes/class.swpm-settings.php:413
1641
+ msgid ""
1642
+ "This email will be sent if Email Activation is enabled for a Membership "
1643
+ "Level."
1644
+ msgstr ""
1645
+ "Det här e-postmeddelandet kommer att skickas om e-postaktivering är "
1646
+ "aktiverad för en medlemsnivå."
1647
+
1648
+ #: classes/class.swpm-settings.php:417
1649
+ msgid ""
1650
+ "This email will be sent to prompt users to complete registration after the "
1651
+ "payment."
1652
+ msgstr ""
1653
+ "Denna e-post kommer att skickas för att uppmana användarna att slutföra "
1654
+ "registreringen efter betalning."
1655
+
1656
+ #: classes/class.swpm-settings.php:428
1657
+ msgid "This page allows you to configure some advanced features of the plugin."
1658
+ msgstr ""
1659
+ "På den här sidan kan du konfigurera några avancerade funktioner i tillägget."
1660
+
1661
+ #: classes/class.swpm-settings.php:432
1662
+ msgid ""
1663
+ "This section allows you to configure automatic creation of member accounts "
1664
+ "when new WP User records are created by another plugin. It can be useful if "
1665
+ "you are using another plugin that creates WP user records and you want them "
1666
+ "to be recognized in the membership plugin."
1667
+ msgstr ""
1668
+ "I det här avsnittet kan du konfigurera att automatiskt skapa medlemskonton "
1669
+ "när nya WP-användarposter skapas av ett annat plugin. Det kan vara "
1670
+ "användbart om du använder ett annat plugin som skapar WP-användarposter och "
1671
+ "du vill att de ska kännas igen i Membership plugin."
1672
+
1673
+ #: classes/class.swpm-settings.php:436
1674
+ msgid ""
1675
+ "This section allows you to configure terms and conditions and privacy policy "
1676
+ "that users must accept at registration time."
1677
+ msgstr ""
1678
+ "I det här avsnittet kan du konfigurera villkor och Integritetspolicy som "
1679
+ "användare måste acceptera vid registreringstidpunkten."
1680
+
1681
+ #: classes/class.swpm-settings.php:565
1682
+ msgid "Simple WP Membership::Settings"
1683
+ msgstr "Simple WP Membership::Inställningar"
1684
+
1685
+ #: classes/class.swpm-utils-member.php:36
1686
+ #: classes/class.swpm-utils-member.php:44
1687
+ #: classes/class.swpm-utils-member.php:52
1688
+ #: classes/class.swpm-utils-member.php:62
1689
+ msgid "User is not logged in."
1690
+ msgstr "Användaren är inte inloggad."
1691
+
1692
+ #: classes/class.swpm-utils-member.php:80
1693
+ msgid "No Expiry"
1694
+ msgstr "Inget utgångsdatum"
1695
+
1696
+ #: classes/class.swpm-utils-misc.php:50
1697
+ msgid "Registration"
1698
+ msgstr "Registrering"
1699
+
1700
+ #: classes/class.swpm-utils-misc.php:73
1701
+ msgid "Member Login"
1702
+ msgstr "Login för medlem"
1703
+
1704
+ #: classes/class.swpm-utils-misc.php:96
1705
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:117
1706
+ msgid "Profile"
1707
+ msgstr "Profil"
1708
+
1709
+ #: classes/class.swpm-utils-misc.php:119
1710
+ msgid "Password Reset"
1711
+ msgstr "Återställ lösenordet"
1712
+
1713
+ #: classes/class.swpm-utils-misc.php:168
1714
+ #, php-format
1715
+ msgid ""
1716
+ "You will be automatically redirected in a few seconds. If not, please %s."
1717
+ msgstr "Du omdirigeras automatiskt om några sekunder. Om inte, vänligen %s."
1718
+
1719
+ #: classes/class.swpm-utils-misc.php:172
1720
+ msgid "Action Status"
1721
+ msgstr "Åtgärdsstatus"
1722
+
1723
+ #: classes/class.swpm-utils-misc.php:274
1724
+ msgid "Not a Member?"
1725
+ msgstr "Inte medlem?"
1726
+
1727
+ #: classes/class.swpm-utils-misc.php:285
1728
+ msgid "renew"
1729
+ msgstr "förnya"
1730
+
1731
+ #: classes/class.swpm-utils-misc.php:285
1732
+ msgid " your account to gain access to this content."
1733
+ msgstr " ditt konto för att få tillgång till detta innehåll."
1734
+
1735
+ #: classes/class.swpm-utils-misc.php:343 classes/class.swpm-utils-misc.php:349
1736
+ msgid "Error! This action ("
1737
+ msgstr "Fel! Denna åtgärd ("
1738
+
1739
+ #: classes/class.swpm-utils-misc.php:421
1740
+ msgid "(Please Select)"
1741
+ msgstr "(Vänligen välj)"
1742
+
1743
+ #: classes/class.swpm-utils-template.php:38
1744
+ msgid "Error! Failed to find a template path for the specified template: "
1745
+ msgstr "Fel! Misslyckades med att hitta en mallsökväg för den angivna mallen: "
1746
+
1747
+ #: classes/class.swpm-utils.php:101
1748
+ msgid "Never"
1749
+ msgstr "Aldrig"
1750
+
1751
+ #: classes/class.swpm-utils.php:116 views/admin_members_list.php:19
1752
+ msgid "Active"
1753
+ msgstr "Aktiv"
1754
+
1755
+ #: classes/class.swpm-utils.php:117 views/admin_members_list.php:20
1756
+ msgid "Inactive"
1757
+ msgstr "Inaktiv"
1758
+
1759
+ #: classes/class.swpm-utils.php:118 views/admin_members_list.php:21
1760
+ msgid "Activation Required"
1761
+ msgstr "Aktivering krävs"
1762
+
1763
+ #: classes/class.swpm-utils.php:119
1764
+ msgid "Male"
1765
+ msgstr "Man"
1766
+
1767
+ #: classes/class.swpm-utils.php:120
1768
+ msgid "Female"
1769
+ msgstr "Kvinna"
1770
+
1771
+ #: classes/class.swpm-utils.php:121
1772
+ msgid "Not Specified"
1773
+ msgstr "Ej angivet"
1774
+
1775
+ #: classes/class.swpm-utils.php:119 views/admin_members_list.php:22
1776
+ msgid "Pending"
1777
+ msgstr "Avvaktande"
1778
+
1779
+ #: classes/class.swpm-utils.php:120 views/admin_members_list.php:24
1780
+ msgid "Expired"
1781
+ msgstr "Utgånget"
1782
+
1783
+ #: classes/class.swpm-utils.php:414 views/account_delete_warning.php:3
1784
+ msgid "Delete Account"
1785
+ msgstr "Radera konto"
1786
+
1787
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:75
1788
+ msgid "Payment Button ID"
1789
+ msgstr "Betalknapp ID"
1790
+
1791
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:76
1792
+ msgid "Payment Button Title"
1793
+ msgstr "Betalknapp Titel"
1794
+
1795
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:77
1796
+ msgid "Membership Level ID"
1797
+ msgstr "Medlemskapsnivå ID"
1798
+
1799
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:78
1800
+ msgid "Button Type"
1801
+ msgstr "Knapptyp"
1802
+
1803
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:79
1804
+ msgid "Button Shortcode"
1805
+ msgstr "Shortcode för knappar"
1806
+
1807
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:127
1808
+ #: views/admin_members_list.php:9
1809
+ #: views/payments/admin_all_payment_transactions.php:32
1810
+ msgid "The selected entry was deleted!"
1811
+ msgstr "Den valda posten togs bort!"
1812
+
1813
+ #: classes/admin-includes/class.swpm-payments-admin-menu.php:21
1814
+ msgid "Simple Membership::Payments"
1815
+ msgstr "Simple WP Membership::Betalningar"
1816
+
1817
+ #: classes/admin-includes/class.swpm-payments-admin-menu.php:25
1818
+ msgid "Transactions"
1819
+ msgstr "Transaktioner"
1820
+
1821
+ #: classes/admin-includes/class.swpm-payments-admin-menu.php:26
1822
+ msgid "Manage Payment Buttons"
1823
+ msgstr "Hantera betalningsknappar"
1824
+
1825
+ #: classes/admin-includes/class.swpm-payments-admin-menu.php:27
1826
+ #: views/payments/admin_payment_buttons.php:27
1827
+ msgid "Create New Button"
1828
+ msgstr "Lägg till ny knapp"
1829
+
1830
+ #: classes/admin-includes/class.swpm-payments-list-table.php:57
1831
+ #: views/template-1.php:95 views/template-2.php:97
1832
+ msgid "View Profile"
1833
+ msgstr "Visa profil"
1834
+
1835
+ #: classes/admin-includes/class.swpm-payments-list-table.php:76
1836
+ msgid "Row ID"
1837
+ msgstr "Rad-ID"
1838
+
1839
+ #: classes/admin-includes/class.swpm-payments-list-table.php:77
1840
+ #: views/forgot_password.php:5
1841
+ msgid "Email Address"
1842
+ msgstr "E-post"
1843
+
1844
+ #: classes/admin-includes/class.swpm-payments-list-table.php:80
1845
+ msgid "Member Profile"
1846
+ msgstr "Medlemsprofil"
1847
+
1848
+ #: classes/admin-includes/class.swpm-payments-list-table.php:82
1849
+ msgid "Transaction ID"
1850
+ msgstr "Transaktions-ID"
1851
+
1852
+ #: classes/admin-includes/class.swpm-payments-list-table.php:83
1853
+ msgid "Subscriber ID"
1854
+ msgstr "Prenumerant-ID"
1855
+
1856
+ #: classes/admin-includes/class.swpm-payments-list-table.php:84
1857
+ msgid "Amount"
1858
+ msgstr "Belopp"
1859
+
1860
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:60
1861
+ msgid "Your membership profile will be updated to reflect the payment."
1862
+ msgstr "Din medlemsprofil kommer att uppdateras efter betalningen."
1863
+
1864
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:61
1865
+ msgid "Your profile username: "
1866
+ msgstr "Din profils användarnamn: "
1867
+
1868
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:73
1869
+ msgid "Click on the following link to complete the registration."
1870
+ msgstr "Klicka på följande länk för att slutföra registreringen."
1871
+
1872
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:74
1873
+ msgid "Click here to complete your paid registration"
1874
+ msgstr "Klicka här för att slutföra din betalda registrering"
1875
+
1876
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:79
1877
+ msgid ""
1878
+ "If you have just made a membership payment then your payment is yet to be "
1879
+ "processed. Please check back in a few minutes. An email will be sent to you "
1880
+ "with the details shortly."
1881
+ msgstr ""
1882
+ "Om du just har gjort en medlemsbetalning har den ännu inte behandlats. "
1883
+ "Vänligen kontrollera om några minuter. Ett e-postmeddelande kommer att "
1884
+ "skickas till dig med detaljerna inom kort."
1885
+
1886
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:93
1887
+ msgid "Expiry: "
1888
+ msgstr "Utgångsdatum: "
1889
+
1890
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:95
1891
+ msgid "You are not logged-in as a member"
1892
+ msgstr "Du är inte inloggad som medlem"
1893
+
1894
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:115
1895
+ msgid "Logged in as: "
1896
+ msgstr "Inloggad som: "
1897
+
1898
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:118
1899
+ #: views/loggedin.php:31
1900
+ msgid "Logout"
1901
+ msgstr "Logga ut"
1902
+
1903
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:121
1904
+ msgid "Login Here"
1905
+ msgstr "Logga in här"
1906
+
1907
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:122
1908
+ msgid "Not a member? "
1909
+ msgstr "Inte medlem? "
1910
+
1911
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:123
1912
+ msgid "Join Now"
1913
+ msgstr "Gå med nu"
1914
+
1915
+ #: ipn/swpm-smart-checkout-ipn.php:260 ipn/swpm-smart-checkout-ipn.php:285
1916
+ #, php-format
1917
+ msgid "Error occured during payment verification. Error code: %d. Message: %s"
1918
+ msgstr "Fel inträffade under betalningsverifiering. Felkod: %d. Meddelande: %s"
1919
+
1920
+ #: ipn/swpm-smart-checkout-ipn.php:298
1921
+ #, php-format
1922
+ msgid ""
1923
+ "Payment check failed: invalid amount received. Expected %s %s, got %s %s."
1924
+ msgstr ""
1925
+ "Betalningskontroll misslyckades: ogiltigt belopp mottaget. Förväntat %s %s, "
1926
+ "mottog %s %s."
1927
+
1928
+ #: ipn/swpm-smart-checkout-ipn.php:315
1929
+ msgid "Empty payment data received."
1930
+ msgstr "Tom betalningsdata mottagen."
1931
+
1932
+ #: ipn/swpm-smart-checkout-ipn.php:355
1933
+ msgid "IPN product validation failed. Check debug log for more details."
1934
+ msgstr ""
1935
+ "IPN-produktvalidering misslyckades. Se felsökningsloggen för mer information."
1936
+
1937
+ #: views/account_delete_warning.php:7
1938
+ msgid ""
1939
+ "You are about to delete an account. This will delete user data associated "
1940
+ "with this account. "
1941
+ msgstr ""
1942
+ "Du håller på att radera ett konto. Detta raderar användardata som är "
1943
+ "kopplade till detta konto. "
1944
+
1945
+ #: views/account_delete_warning.php:8
1946
+ msgid "It will also delete associated WordPress user account."
1947
+ msgstr "Det tar också bort tillhörande WordPress-användarkonto."
1948
+
1949
+ #: views/account_delete_warning.php:9
1950
+ msgid ""
1951
+ "(NOTE: for safety, we do not allow deletion of any associated WordPress "
1952
+ "account with administrator role)."
1953
+ msgstr ""
1954
+ "(OBS: av säkerhetsskäl tillåter vi inte radering av något associerat "
1955
+ "WordPress-konto med administratörsroll)."
1956
+
1957
+ #: views/account_delete_warning.php:10
1958
+ msgid "Continue?"
1959
+ msgstr "Fortsätta?"
1960
+
1961
+ #: views/account_delete_warning.php:13
1962
+ msgid "Password: "
1963
+ msgstr "Lösenord: "
1964
+
1965
+ #: views/account_delete_warning.php:14
1966
+ msgid "Confirm Account Deletion"
1967
+ msgstr "Bekräfta radering av konto"
1968
+
1969
+ #: views/add.php:24 views/admin_add.php:19 views/admin_edit.php:44
1970
+ #: views/edit.php:31 views/login.php:17
1971
+ msgid "Password"
1972
+ msgstr "Lösenord"
1973
+
1974
+ #: views/add.php:28 views/edit.php:35
1975
+ msgid "Repeat Password"
1976
+ msgstr "Upprepa lösenord"
1977
+
1978
+ #: views/add.php:65
1979
+ msgid "I accept the "
1980
+ msgstr "Jag accepterar "
1981
+
1982
+ #: views/add.php:77
1983
+ msgid "I agree to the "
1984
+ msgstr "Jag godkänner "
1985
+
1986
+ #: views/add.php:77
1987
+ msgid "Privacy Policy"
1988
+ msgstr "Integritetspolicy"
1989
+
1990
+ #: views/add.php:88
1991
+ msgid "Register"
1992
+ msgstr "Registrera"
1993
+
1994
+ #: views/admin_add.php:7
1995
+ msgid "Create a brand new user and add it to this site."
1996
+ msgstr "Skapa en helt ny användare och lägg till på denna webbplats."
1997
+
1998
+ #: views/admin_add.php:11 views/admin_add.php:15 views/admin_add_level.php:12
1999
+ #: views/admin_add_level.php:16 views/admin_add_level.php:20
2000
+ #: views/admin_edit.php:19 views/admin_edit.php:40
2001
+ #: views/admin_edit_level.php:16 views/admin_edit_level.php:20
2002
+ #: views/admin_edit_level.php:24
2003
+ msgid "(required)"
2004
+ msgstr "(obligatorisk)"
2005
+
2006
+ #: views/admin_add.php:15 views/admin_edit.php:40
2007
+ msgid "E-mail"
2008
+ msgstr "E-post"
2009
+
2010
+ #: views/admin_add.php:19
2011
+ msgid "(twice, required)"
2012
+ msgstr "(två gånger, obligatoriskt)"
2013
+
2014
+ #: views/admin_add.php:24 views/admin_edit.php:48
2015
+ msgid "Strength indicator"
2016
+ msgstr "Säkerhetsindikation"
2017
+
2018
+ #: views/admin_add.php:25 views/admin_edit.php:49
2019
+ msgid ""
2020
+ "Hint: The password should be at least seven characters long. To make it "
2021
+ "stronger, use upper and lower case letters, numbers and symbols like ! \" ? "
2022
+ "$ % ^ &amp; )."
2023
+ msgstr ""
2024
+ "Tips: Lösenordet ska vara minst sju tecken långt. För att göra det starkare, "
2025
+ "använd stora och små bokstäver, siffror och symboler som! ”? $% ^ & amp;)."
2026
+
2027
+ #: views/admin_add.php:29 views/admin_edit.php:53 views/loggedin.php:10
2028
+ msgid "Account Status"
2029
+ msgstr "Kontostatus"
2030
+
2031
+ #: views/admin_add.php:39
2032
+ msgid "Add New Member "
2033
+ msgstr "Lägg till ny medlem "
2034
+
2035
+ #: views/admin_addon_settings.php:3
2036
+ msgid ""
2037
+ "Some of the simple membership plugin's addon settings and options will be "
2038
+ "displayed here (if you have them)"
2039
+ msgstr ""
2040
+ "Vissa av simple membership plugins addons inställningar och alternativ "
2041
+ "kommer visas här (om du har dom)"
2042
+
2043
+ #: views/admin_addon_settings.php:8
2044
+ msgid "Save Changes"
2045
+ msgstr "Spara ändringarna"
2046
+
2047
+ #: views/admin_add_level.php:6
2048
+ msgid "Add Membership Level"
2049
+ msgstr "Lägg till medlemsskapsnivå"
2050
+
2051
+ #: views/admin_add_level.php:7
2052
+ msgid "Create new membership level."
2053
+ msgstr "Lägg till ny medlemskapsnivå."
2054
+
2055
+ #: views/admin_add_level.php:12 views/admin_edit_level.php:16
2056
+ msgid "Membership Level Name"
2057
+ msgstr "Namn på medlemskapsnivå"
2058
+
2059
+ #: views/admin_add_level.php:16 views/admin_edit_level.php:20
2060
+ msgid "Default WordPress Role"
2061
+ msgstr "Standard Wordpressroll"
2062
+
2063
+ #: views/admin_add_level.php:20 views/admin_edit_level.php:24
2064
+ msgid "Access Duration"
2065
+ msgstr "Åtkomstens varaktighet"
2066
+
2067
+ #: views/admin_add_level.php:23
2068
+ msgid "No Expiry (Access for this level will not expire until cancelled"
2069
+ msgstr ""
2070
+ "Inget utgångsdatum (Tillgång för denna nivå kommer inte att löpa ut förrän "
2071
+ "den avbrutits"
2072
+
2073
+ #: views/admin_add_level.php:24 views/admin_add_level.php:26
2074
+ #: views/admin_add_level.php:28 views/admin_add_level.php:30
2075
+ #: views/admin_edit_level.php:28 views/admin_edit_level.php:31
2076
+ #: views/admin_edit_level.php:34 views/admin_edit_level.php:37
2077
+ msgid "Expire After"
2078
+ msgstr "Upphör efter"
2079
+
2080
+ #: views/admin_add_level.php:25 views/admin_edit_level.php:29
2081
+ msgid "Days (Access expires after given number of days)"
2082
+ msgstr "Dagar (antal dagar till att medlemskapet upphör)"
2083
+
2084
+ #: views/admin_add_level.php:27
2085
+ msgid "Weeks (Access expires after given number of weeks"
2086
+ msgstr "Veckor (antal veckor till att medlemskapet upphör)"
2087
+
2088
+ #: views/admin_add_level.php:29 views/admin_edit_level.php:35
2089
+ msgid "Months (Access expires after given number of months)"
2090
+ msgstr "Månader (antal månader till att medlemskapet upphör)"
2091
+
2092
+ #: views/admin_add_level.php:31 views/admin_edit_level.php:38
2093
+ msgid "Years (Access expires after given number of years)"
2094
+ msgstr "År (antal år till att medlemskapet upphör)"
2095
+
2096
+ #: views/admin_add_level.php:32 views/admin_edit_level.php:40
2097
+ msgid "Fixed Date Expiry"
2098
+ msgstr "Fast utgångsdatum"
2099
+
2100
+ #: views/admin_add_level.php:33 views/admin_edit_level.php:41
2101
+ msgid "(Access expires on a fixed date)"
2102
+ msgstr "(Åtkomst upphör detta datum)"
2103
+
2104
+ #: views/admin_add_level.php:38 views/admin_edit_level.php:46
2105
+ msgid "Email Activation"
2106
+ msgstr "E-postaktivering"
2107
+
2108
+ #: views/admin_add_level.php:43
2109
+ msgid ""
2110
+ "Enable new user activation via email. When enabled, members will need to "
2111
+ "click on an activation link that is sent to their email address to activate "
2112
+ "the account. Useful for free membership. "
2113
+ msgstr ""
2114
+ "Möjliggör aktivering av nya användare via e-post. När det är aktiverat måste "
2115
+ "medlemmarna klicka på en aktiveringslänk som skickas till deras e-postadress "
2116
+ "för att aktivera kontot. Användbar för gratis medlemskap. "
2117
+
2118
+ #: views/admin_add_level.php:44 views/admin_edit_level.php:52
2119
+ msgid "View Documentation"
2120
+ msgstr "Visa dokumentation"
2121
+
2122
+ #: views/admin_add_level.php:45 views/admin_edit_level.php:53
2123
+ msgid "Note:"
2124
+ msgstr "OBS:"
2125
+
2126
+ #: views/admin_add_level.php:45 views/admin_edit_level.php:53
2127
+ msgid ""
2128
+ "If enabled, decryptable member password is temporarily stored in the "
2129
+ "database until the account is activated."
2130
+ msgstr ""
2131
+ "Vid aktivering av denna funktion lagras dekrypterbart medlemslösenord "
2132
+ "tillfälligt i databasen tills kontot aktiveras."
2133
+
2134
+ #: views/admin_add_level.php:52
2135
+ msgid "Add New Membership Level "
2136
+ msgstr "Lägg till ny medlemsnivå "
2137
+
2138
+ #: views/admin_add_ons_page.php:7
2139
+ msgid "Simple WP Membership::Add-ons"
2140
+ msgstr "Simple WP Membership::Tillägg"
2141
+
2142
+ #: views/admin_category_list.php:5
2143
+ msgid ""
2144
+ "First of all, globally protect the category on your site by selecting "
2145
+ "\"General Protection\" from the drop-down box below and then select the "
2146
+ "categories that should be protected from non-logged in users."
2147
+ msgstr ""
2148
+ "Först och främst skydda kategorin globalt på din webbplats genom att välja "
2149
+ "”Allmänt skydd” i rullgardinsmenyn nedan och välj sedan de kategorier som "
2150
+ "ska skyddas från användare som inte är inloggade."
2151
+
2152
+ #: views/admin_category_list.php:8
2153
+ msgid ""
2154
+ "Next, select an existing membership level from the drop-down box below and "
2155
+ "then select the categories you want to grant access to (for that particular "
2156
+ "membership level)."
2157
+ msgstr ""
2158
+ "Välj sedan en befintlig medlemsnivå i rullgardinsmenyn nedan och välj sedan "
2159
+ "de kategorier som du vill ge åtkomst till (för den särskilda medlemsnivån)."
2160
+
2161
+ #: views/admin_category_list.php:11 views/admin_post_list.php:11
2162
+ msgid "Read the "
2163
+ msgstr "Läs "
2164
+
2165
+ #: views/admin_category_list.php:11
2166
+ msgid "category protection documentation"
2167
+ msgstr "dokumentation för kategoriskydd"
2168
+
2169
+ #: views/admin_category_list.php:17 views/admin_post_list.php:27
2170
+ msgid "Membership Level:"
2171
+ msgstr "Medlemsskapsnivå:"
2172
+
2173
+ #: views/admin_category_list.php:19 views/admin_post_list.php:29
2174
+ msgid "General Protection"
2175
+ msgstr "Allmänt skydd"
2176
+
2177
+ #: views/admin_category_list.php:23 views/admin_post_list.php:33
2178
+ #: views/edit.php:83
2179
+ msgid "Update"
2180
+ msgstr "Uppdatera"
2181
+
2182
+ #: views/admin_edit.php:11
2183
+ msgid "Edit Member"
2184
+ msgstr "Redigera medlem"
2185
+
2186
+ #: views/admin_edit.php:13
2187
+ msgid "Edit existing member details."
2188
+ msgstr "Redigera befintliga medlemsuppgifter."
2189
+
2190
+ #: views/admin_edit.php:14
2191
+ msgid " You are currenty editing member with member ID: "
2192
+ msgstr " Du redigerar för närvarande medlem med medlems-ID: "
2193
+
2194
+ #: views/admin_edit.php:44
2195
+ msgid "(twice, leave empty to retain old password)"
2196
+ msgstr "(två gånger, lämna tomt för att behålla det gamla lösenordet)"
2197
+
2198
+ #: views/admin_edit.php:59
2199
+ msgid ""
2200
+ "This is the member's account status. If you want to manually activate an "
2201
+ "expired member's account then read"
2202
+ msgstr ""
2203
+ "Detta är medlemmens kontostatus. Om du vill aktivera ett utgånget medlems "
2204
+ "konto manuellt, läs då"
2205
+
2206
+ #: views/admin_edit.php:60
2207
+ msgid "this documentation"
2208
+ msgstr "denna dokumentation"
2209
+
2210
+ #: views/admin_edit.php:61
2211
+ msgid " to learn how to do it."
2212
+ msgstr " för att lära dig hur du gör det."
2213
+
2214
+ #: views/admin_edit.php:66
2215
+ msgid "Notify User"
2216
+ msgstr "Meddela användaren"
2217
+
2218
+ #: views/admin_edit.php:69
2219
+ msgid ""
2220
+ "You can use this option to send a quick notification email to this member "
2221
+ "(the email will be sent when you hit the save button below)."
2222
+ msgstr ""
2223
+ "Du kan använda det här alternativet för att skicka ett e-postmeddelande till "
2224
+ "den här medlemmen (e-postmeddelandet skickas när du trycker på spara-knappen "
2225
+ "nedan)."
2226
+
2227
+ #: views/admin_edit.php:75
2228
+ msgid "Subscriber ID/Reference"
2229
+ msgstr "Prenumerant ID / Referens"
2230
+
2231
+ #: views/admin_edit.php:79
2232
+ msgid "Last Accessed Date"
2233
+ msgstr "Senast tillgängliga datum"
2234
+
2235
+ #: views/admin_edit.php:82 views/admin_edit.php:89
2236
+ msgid "This value gets updated when this member logs into your site."
2237
+ msgstr ""
2238
+ "Detta värde uppdateras när den här medlemmen loggar in på din webbplats."
2239
+
2240
+ #: views/admin_edit.php:86
2241
+ msgid "Last Accessed From IP"
2242
+ msgstr "Senast åtkomst från IP"
2243
+
2244
+ #: views/admin_edit.php:97
2245
+ msgid "Save Data"
2246
+ msgstr "Spara data"
2247
+
2248
+ #: views/admin_edit.php:102
2249
+ msgid "Delete User Profile"
2250
+ msgstr "Radera användarprofil"
2251
+
2252
+ #: views/admin_edit_level.php:6
2253
+ msgid "Edit membership level"
2254
+ msgstr "Redigera medlemsskapsnivån"
2255
+
2256
+ #: views/admin_edit_level.php:9
2257
+ msgid ""
2258
+ "You can edit details of a selected membership level from this interface. "
2259
+ msgstr ""
2260
+ "Du kan redigera information om en vald medlemsnivå från detta gränssnitt. "
2261
+
2262
+ #: views/admin_edit_level.php:10
2263
+ msgid "You are currently editing: "
2264
+ msgstr "Du redigerar för närvarande: "
2265
+
2266
+ #: views/admin_edit_level.php:27
2267
+ msgid "No Expiry (Access for this level will not expire until cancelled)"
2268
+ msgstr ""
2269
+ "Inget giltighetstid (Åtkomst för denna nivå upphör först när den avbryts)"
2270
+
2271
+ #: views/admin_edit_level.php:32
2272
+ msgid "Weeks (Access expires after given number of weeks)"
2273
+ msgstr "Veckor (Åtkomst upphör efter angivet antal veckor)"
2274
+
2275
+ #: views/admin_edit_level.php:51
2276
+ msgid ""
2277
+ "Enable new user activation via email. When enabled, members will need to "
2278
+ "click on an activation link that is sent to their email address to activate "
2279
+ "the account. Useful for free membership."
2280
+ msgstr ""
2281
+ "Möjliggör aktivering av nya användare via e-post. När det är aktiverat måste "
2282
+ "medlemmarna klicka en aktiveringslänk som skickas till deras e-postadress "
2283
+ "för att aktivera kontot. Användbar för gratis medlemskap."
2284
+
2285
+ #: views/admin_edit_level.php:60
2286
+ msgid "Save Membership Level "
2287
+ msgstr "Spara medlemsnivå "
2288
+
2289
+ #: views/admin_membership_manage.php:18
2290
+ msgid "Example Content Protection Settings"
2291
+ msgstr "Exempel på inställningar för innehållsskydd"
2292
+
2293
+ #: views/admin_members_list.php:18
2294
+ msgid "All"
2295
+ msgstr "Alla"
2296
+
2297
+ #: views/admin_members_list.php:23
2298
+ msgid "Incomplete"
2299
+ msgstr "Ofullständig"
2300
+
2301
+ #: views/admin_member_form_common_part.php:23
2302
+ #: includes/swpm_mda_show_profile.php:37
2303
+ msgid "Gender"
2304
+ msgstr "Kön"
2305
+
2306
+ #: views/admin_member_form_common_part.php:30 views/edit.php:47
2307
+ #: includes/swpm_mda_show_profile.php:34
2308
+ msgid "Phone"
2309
+ msgstr "Telefonnummer"
2310
+
2311
+ #: views/admin_member_form_common_part.php:34 views/edit.php:51
2312
+ msgid "Street"
2313
+ msgstr "Gata"
2314
+
2315
+ #: views/admin_member_form_common_part.php:38 views/edit.php:55
2316
+ msgid "City"
2317
+ msgstr "Stad"
2318
+
2319
+ #: views/admin_member_form_common_part.php:42 views/edit.php:59
2320
+ msgid "State"
2321
+ msgstr "Stat"
2322
+
2323
+ #: views/admin_member_form_common_part.php:46 views/edit.php:63
2324
+ msgid "Zipcode"
2325
+ msgstr "Postnummer"
2326
+
2327
+ #: views/admin_member_form_common_part.php:50 views/edit.php:67
2328
+ #: includes/swpm_mda_show_profile.php:33
2329
+ msgid "Country"
2330
+ msgstr "Land"
2331
+
2332
+ #: views/admin_member_form_common_part.php:54
2333
+ #: includes/swpm_mda_show_profile.php:38
2334
+ msgid "Company"
2335
+ msgstr "Företag"
2336
+
2337
+ #: views/admin_member_form_common_part.php:58
2338
+ #: includes/swpm_mda_show_profile.php:36
2339
+ msgid "Member Since"
2340
+ msgstr "Medlem sedan"
2341
+
2342
+ #: views/admin_post_list.php:5
2343
+ msgid ""
2344
+ "First of all, globally protect posts and pages on your site by selecting "
2345
+ "\"General Protection\" from the drop-down box below and then select posts "
2346
+ "and pages that should be protected from non-logged in users."
2347
+ msgstr ""
2348
+ "Först och främst skydda globalt inlägg och sidor på din webbplats genom att "
2349
+ "välja ”Allmänt skydd” i rullgardinsmenyn nedan och välj sedan inlägg och "
2350
+ "sidor som ska skyddas från användare som inte är inloggade."
2351
+
2352
+ #: views/admin_post_list.php:8
2353
+ msgid ""
2354
+ "Next, select an existing membership level from the drop-down box below and "
2355
+ "then select posts and pages you want to grant access to (for that particular "
2356
+ "membership level)."
2357
+ msgstr ""
2358
+ "Nästa steg: Välj en befintlig Medlemskapsnivå från nedrullningsbara rutan "
2359
+ "nedan och välj sedan de kategorier du vill bevilja åtkomst till (för den "
2360
+ "valda Medlemskapsnivån)."
2361
+
2362
+ #: views/admin_post_list.php:11
2363
+ msgid "bulk protect posts and pages documentation"
2364
+ msgstr "massskydda inlägg och dokumentation av sidor"
2365
+
2366
+ #: views/admin_post_list.php:11
2367
+ msgid " to learn how to use it."
2368
+ msgstr " för att lära dig hur du använder den."
2369
+
2370
+ #: views/admin_post_list.php:21
2371
+ msgid "Posts"
2372
+ msgstr "Inlägg"
2373
+
2374
+ #: views/admin_post_list.php:22
2375
+ msgid "Pages"
2376
+ msgstr "Sidor"
2377
+
2378
+ #: views/admin_post_list.php:23
2379
+ msgid "Custom Posts"
2380
+ msgstr "Anpassade inlägg"
2381
+
2382
+ #: views/admin_tools_settings.php:14
2383
+ msgid "The required pages have been re-created."
2384
+ msgstr "De nödvändiga sidorna har skapats på nytt."
2385
+
2386
+ #: views/admin_tools_settings.php:21
2387
+ msgid "Generate a Registration Completion link"
2388
+ msgstr "Skapa en länk för Fullfölj registrering"
2389
+
2390
+ #: views/admin_tools_settings.php:24
2391
+ msgid ""
2392
+ "You can manually generate a registration completion link here and give it to "
2393
+ "your customer if they have missed the email that was automatically sent out "
2394
+ "to them after the payment."
2395
+ msgstr ""
2396
+ "Du kan manuellt skapa en länk för registreringens fullföljande här och ge "
2397
+ "den till din kund om de har missat e-postmeddelandet som skickades "
2398
+ "automatiskt till dem efter betalningen."
2399
+
2400
+ #: views/admin_tools_settings.php:29
2401
+ msgid "Generate Registration Completion Link"
2402
+ msgstr "Skapa länk för att slutföra registreringen"
2403
+
2404
+ #: views/admin_tools_settings.php:30
2405
+ msgid "For a Particular Member ID"
2406
+ msgstr "För ett särskilt medlems-ID"
2407
+
2408
+ #: views/admin_tools_settings.php:32
2409
+ msgid "OR"
2410
+ msgstr "ELLER"
2411
+
2412
+ #: views/admin_tools_settings.php:33
2413
+ msgid "For All Incomplete Registrations"
2414
+ msgstr "För alla ofullständiga registreringar"
2415
+
2416
+ #: views/admin_tools_settings.php:38
2417
+ msgid "Send Registration Reminder Email Too"
2418
+ msgstr "Skicka även registreringspåminnelse via e-post"
2419
+
2420
+ #: views/admin_tools_settings.php:44
2421
+ msgid "Submit"
2422
+ msgstr "Registrera"
2423
+
2424
+ #: views/admin_tools_settings.php:53
2425
+ msgid ""
2426
+ "Link(s) generated successfully. The following link(s) can be used to "
2427
+ "complete the registration."
2428
+ msgstr ""
2429
+ "Länk(ar) genererades framgångsrikt. Följande länk(ar) kan användas för att "
2430
+ "slutföra registreringen."
2431
+
2432
+ #: views/admin_tools_settings.php:55
2433
+ msgid "Registration completion links will appear below"
2434
+ msgstr "Länkar för att fullfölja registreringen visas nedan"
2435
+
2436
+ #: views/admin_tools_settings.php:65
2437
+ msgid "A prompt to complete registration email was also sent."
2438
+ msgstr "En uppmaning att slutföra registrerings-e-post skickades också."
2439
+
2440
+ #: views/admin_tools_settings.php:78 views/admin_tools_settings.php:88
2441
+ msgid "Re-create the Required Pages"
2442
+ msgstr "Återskapa nödvändiga sidor"
2443
+
2444
+ #: views/admin_tools_settings.php:81
2445
+ msgid ""
2446
+ "If you have accidentally deleted the required pages that this plugin creates "
2447
+ "at install time, you can use this option to re-create them."
2448
+ msgstr ""
2449
+ "Om du av misstag har raderat de nödvändiga sidorna som detta plugin skapar "
2450
+ "vid installationen kan du använda det här alternativet för att återskapa dem."
2451
+
2452
+ #: views/admin_tools_settings.php:82
2453
+ msgid " has full explanation."
2454
+ msgstr " har fullständig förklaring."
2455
+
2456
+ #: views/edit.php:32 views/edit.php:36
2457
+ msgid "Leave empty to keep the current password"
2458
+ msgstr "Lämna tomt för att behålla det aktuella lösenordet"
2459
+
2460
+ #: views/edit.php:71
2461
+ msgid "Company Name"
2462
+ msgstr "Företagsnamn"
2463
+
2464
+ #: views/forgot_password.php:12
2465
+ msgid "Reset Password"
2466
+ msgstr "Återställ lösenordet"
2467
+
2468
+ #: views/loggedin.php:6
2469
+ msgid "Logged in as"
2470
+ msgstr "Inloggad som"
2471
+
2472
+ #: views/loggedin.php:14
2473
+ msgid "Membership"
2474
+ msgstr "Medlemsskap"
2475
+
2476
+ #: views/loggedin.php:18
2477
+ msgid "Account Expiry"
2478
+ msgstr "Kontot upphör"
2479
+
2480
+ #: views/loggedin.php:26
2481
+ msgid "Edit Profile"
2482
+ msgstr "Redigera profil"
2483
+
2484
+ #: views/login.php:11
2485
+ msgid "Username or Email"
2486
+ msgstr "Användarnamn eller E-post"
2487
+
2488
+ #: views/login.php:24
2489
+ msgid "Remember Me"
2490
+ msgstr "Kom ihåg mig! "
2491
+
2492
+ #: views/login.php:33
2493
+ msgid "Forgot Password?"
2494
+ msgstr "Glömt ditt lösenord?"
2495
+
2496
+ #: views/payments/admin_all_payment_transactions.php:6
2497
+ msgid "All the payments/transactions of your members are recorded here."
2498
+ msgstr "Alla medlemmars betalningar/transaktioner registreras här."
2499
+
2500
+ #: views/payments/admin_all_payment_transactions.php:12
2501
+ msgid "Search for a transaction by using email or name"
2502
+ msgstr "Sök efter en transaktion med E-post eller namn"
2503
+
2504
+ #: views/payments/admin_create_payment_buttons.php:15
2505
+ msgid ""
2506
+ "You can create new payment button for your memberships using this interface."
2507
+ msgstr ""
2508
+ "Du kan skapa en ny betalningsknapp för dina medlemskap med detta gränssnitt."
2509
+
2510
+ #: views/payments/admin_create_payment_buttons.php:23
2511
+ msgid "Select Payment Button Type"
2512
+ msgstr "Välj typ av betalknapp"
2513
+
2514
+ #: views/payments/admin_create_payment_buttons.php:26
2515
+ msgid "PayPal Buy Now"
2516
+ msgstr "PayPal Buy Now"
2517
+
2518
+ #: views/payments/admin_create_payment_buttons.php:28
2519
+ msgid "PayPal Subscription"
2520
+ msgstr "PayPal Prenumeration"
2521
+
2522
+ #: views/payments/admin_create_payment_buttons.php:30
2523
+ msgid "PayPal Smart Checkout"
2524
+ msgstr "PayPal Smart Checkout"
2525
+
2526
+ #: views/payments/admin_create_payment_buttons.php:32
2527
+ msgid "Stripe Buy Now"
2528
+ msgstr "Stripe Buy Now"
2529
+
2530
+ #: views/payments/admin_create_payment_buttons.php:34
2531
+ msgid "Stripe Subscription"
2532
+ msgstr "Stripe Prenumeration"
2533
+
2534
+ #: views/payments/admin_create_payment_buttons.php:36
2535
+ msgid "Braintree Buy Now"
2536
+ msgstr "Braintree Buy Now"
2537
+
2538
+ #: views/payments/admin_create_payment_buttons.php:43
2539
+ msgid "Next"
2540
+ msgstr "Nästa"
2541
+
2542
+ #: views/payments/admin_edit_payment_buttons.php:15
2543
+ msgid "You can edit a payment button using this interface."
2544
+ msgstr "Du kan redigera en betalknapp med detta gränssnitt."
2545
+
2546
+ #: views/payments/admin_payment_buttons.php:6
2547
+ msgid ""
2548
+ "All the membership buttons that you created in the plugin are displayed here."
2549
+ msgstr "Här visas alla knappar för medlems som du skapat i plugin-programmet."
2550
+
2551
+ #: views/payments/admin_payment_settings.php:21
2552
+ msgid "Error! The membership level ID ("
2553
+ msgstr "Fel! Medlemskapsnivå-ID ("
2554
+
2555
+ #: views/payments/admin_payment_settings.php:28
2556
+ msgid ""
2557
+ "You can create membership payment buttons from the payments menu of this "
2558
+ "plugin (useful if you want to offer paid membership on the site)."
2559
+ msgstr ""
2560
+ "Du kan skapa betalknappar för medlemskap från betalningsmenyn för detta "
2561
+ "plugin (användbart om du vill erbjuda betalt medlemskap på webbplatsen)."
2562
+
2563
+ #: views/payments/admin_payment_settings.php:33
2564
+ msgid "PayPal Integration Settings"
2565
+ msgstr "Inställningar för PayPal Integrering"
2566
+
2567
+ #: views/payments/admin_payment_settings.php:36
2568
+ msgid "Generate the \"Advanced Variables\" Code for your PayPal button"
2569
+ msgstr "Skapa kod för ”Avancerade variabler” för din PayPal-knapp"
2570
+
2571
+ #: views/payments/admin_payment_settings.php:39
2572
+ msgid "Enter the Membership Level ID"
2573
+ msgstr "Ange medlemsnivå-ID"
2574
+
2575
+ #: views/payments/admin_payment_settings.php:41
2576
+ msgid "Generate Code"
2577
+ msgstr "Skapa kod"
2578
+
2579
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:22
2580
+ msgid "Braintree Buy Now Button Configuration"
2581
+ msgstr "Braintree Buy Now Knappkonfiguration"
2582
+
2583
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:34
2584
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:213
2585
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:33
2586
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:301
2587
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:259
2588
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:83
2589
+ msgid "Button ID"
2590
+ msgstr "Knapp-ID"
2591
+
2592
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:42
2593
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:26
2594
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:221
2595
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:41
2596
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:27
2597
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:309
2598
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:39
2599
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:266
2600
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:91
2601
+ msgid "Button Title"
2602
+ msgstr "Knapp-titel"
2603
+
2604
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:60
2605
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:44
2606
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:239
2607
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:59
2608
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:57
2609
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:282
2610
+ msgid "Payment Amount"
2611
+ msgstr "Betalningsbelopp"
2612
+
2613
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:68
2614
+ msgid ""
2615
+ "Braintree API key and account details. You can get this from your Braintree "
2616
+ "account."
2617
+ msgstr ""
2618
+ "Braintree API-nyckel och kontouppgifter. Du får detta från ditt Braintree-"
2619
+ "konto."
2620
+
2621
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:72
2622
+ msgid "Merchant ID"
2623
+ msgstr "Handels-ID"
2624
+
2625
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:80
2626
+ msgid "Public Key"
2627
+ msgstr "Offentlig nyckel"
2628
+
2629
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:87
2630
+ msgid "Private Key"
2631
+ msgstr "Hemlig nyckel"
2632
+
2633
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:95
2634
+ msgid "Merchant Account ID"
2635
+ msgstr "Handelskonto-ID"
2636
+
2637
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:113
2638
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:137
2639
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:361
2640
+ msgid "The following details are optional."
2641
+ msgstr "Följande detaljer är valfria."
2642
+
2643
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:117
2644
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:92
2645
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:287
2646
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:204
2647
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:172
2648
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:456
2649
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:149
2650
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:373
2651
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:191
2652
+ msgid "Return URL"
2653
+ msgstr "URL för tillbaka"
2654
+
2655
+ #: views/payments/payment-gateway/admin_braintree_buy_now_button.php:127
2656
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:126
2657
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:321
2658
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:214
2659
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:200
2660
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:484
2661
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:159
2662
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:383
2663
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:212
2664
+ msgid "Save Payment Data"
2665
+ msgstr "Spara betalningsdata"
2666
+
2667
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:16
2668
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:204
2669
+ msgid "PayPal Buy Now Button Configuration"
2670
+ msgstr "PayPal Buy Now Knappkonfiguration"
2671
+
2672
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:52
2673
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:247
2674
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:67
2675
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:45
2676
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:327
2677
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:65
2678
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:289
2679
+ msgid "Payment Currency"
2680
+ msgstr "Betalningsvaluta"
2681
+
2682
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:100
2683
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:295
2684
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:85
2685
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:367
2686
+ msgid "PayPal Email"
2687
+ msgstr "PayPal E-post"
2688
+
2689
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:108
2690
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:303
2691
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:180
2692
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:464
2693
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:199
2694
+ msgid "Button Image URL"
2695
+ msgstr "Knappbildens URL"
2696
+
2697
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:116
2698
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:311
2699
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:188
2700
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:472
2701
+ msgid "Custom Checkout Page Logo Image"
2702
+ msgstr "Anpassad Logo för Checkout-sidan"
2703
+
2704
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:21
2705
+ msgid "PayPal Smart Checkout Button Configuration"
2706
+ msgstr "PayPal Smart Checkout-knappkonfiguration"
2707
+
2708
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:107
2709
+ msgid ""
2710
+ "PayPal Smart Checkout API Credentials (you can get this from your PayPal "
2711
+ "account)"
2712
+ msgstr ""
2713
+ "PayPal Smart Checkout API Credentials (du kan få detta från ditt PayPal-"
2714
+ "konto)"
2715
+
2716
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:111
2717
+ msgid "Live Client ID"
2718
+ msgstr "Live-klient-ID"
2719
+
2720
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:119
2721
+ msgid "Live Secret"
2722
+ msgstr "Live Secret"
2723
+
2724
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:127
2725
+ msgid "Sandbox Client ID"
2726
+ msgstr "Sandbox Client ID"
2727
+
2728
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:135
2729
+ msgid "Sandbox Secret"
2730
+ msgstr "Sandbox Secret"
2731
+
2732
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:143
2733
+ msgid "Button Appearance Settings"
2734
+ msgstr "Inställningar för knappens utseende"
2735
+
2736
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:147
2737
+ msgid "Size"
2738
+ msgstr "Storlek"
2739
+
2740
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:150
2741
+ msgid "Medium"
2742
+ msgstr "Medium"
2743
+
2744
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:151
2745
+ msgid "Large"
2746
+ msgstr "Stor"
2747
+
2748
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:152
2749
+ msgid "Repsonsive"
2750
+ msgstr "Repsonsiv"
2751
+
2752
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:154
2753
+ msgid "Select button size."
2754
+ msgstr "Välj knappstorlek."
2755
+
2756
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:158
2757
+ msgid "Color"
2758
+ msgstr "Färg"
2759
+
2760
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:161
2761
+ msgid "Gold"
2762
+ msgstr "Guld"
2763
+
2764
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:162
2765
+ msgid "Blue"
2766
+ msgstr "Blå"
2767
+
2768
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:163
2769
+ msgid "Silver"
2770
+ msgstr "Silver"
2771
+
2772
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:164
2773
+ msgid "Black"
2774
+ msgstr "Svart"
2775
+
2776
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:166
2777
+ msgid "Select button color."
2778
+ msgstr "Välj knappfärg."
2779
+
2780
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:170
2781
+ msgid "Shape"
2782
+ msgstr "Form"
2783
+
2784
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:172
2785
+ msgid "Rectangular"
2786
+ msgstr "Rektangel"
2787
+
2788
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:173
2789
+ msgid "Pill"
2790
+ msgstr "Boll"
2791
+
2792
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:174
2793
+ msgid "Select button shape."
2794
+ msgstr "Välj knappform."
2795
+
2796
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:178
2797
+ msgid "Layout"
2798
+ msgstr "Layout"
2799
+
2800
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:180
2801
+ msgid "Vertical"
2802
+ msgstr "Vertikal"
2803
+
2804
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:181
2805
+ msgid "Horizontal"
2806
+ msgstr "Horisontell"
2807
+
2808
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:182
2809
+ msgid "Select button layout."
2810
+ msgstr "Välj knapplayout."
2811
+
2812
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:187
2813
+ msgid "Additional Settings"
2814
+ msgstr "Ytterligare inställningar"
2815
+
2816
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:191
2817
+ msgid "Payment Methods"
2818
+ msgstr "Betalningsmetoder"
2819
+
2820
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:193
2821
+ msgid "PayPal Credit"
2822
+ msgstr "PayPal Kredit"
2823
+
2824
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:194
2825
+ msgid "ELV"
2826
+ msgstr "ELV"
2827
+
2828
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:195
2829
+ msgid ""
2830
+ "Select payment methods that could be used by customers. Note that payment "
2831
+ "with cards is always enabled."
2832
+ msgstr ""
2833
+ "Välj betalningsmetoder som kan användas av kunder. Observera att betalning "
2834
+ "med kort alltid är aktiverat."
2835
+
2836
+ #: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:200
2837
+ msgid "The following details are optional"
2838
+ msgstr "Följande detaljer är valfria"
2839
+
2840
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:18
2841
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:295
2842
+ msgid "PayPal Subscription Button Configuration"
2843
+ msgstr "Konfiguration av PayPal prenumerationsknapp"
2844
+
2845
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:93
2846
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:375
2847
+ msgid "Billing Amount Each Cycle"
2848
+ msgstr "Faktureringsbelopp för varje period"
2849
+
2850
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:101
2851
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:383
2852
+ msgid "Billing Cycle"
2853
+ msgstr "Faktureringsperiod"
2854
+
2855
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:114
2856
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:396
2857
+ msgid "Billing Cycle Count"
2858
+ msgstr "Antal faktureringsperioder"
2859
+
2860
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:122
2861
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:404
2862
+ msgid "Re-attempt on Failure"
2863
+ msgstr "Försök igen vid misslyckande"
2864
+
2865
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:135
2866
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:419
2867
+ msgid ""
2868
+ "Trial Billing Details (Leave empty if you are not offering a trial period)"
2869
+ msgstr ""
2870
+ "Betalningsuppgifter vid Provperiod (lämna tomt om du inte erbjuder en "
2871
+ "provperiod)"
2872
+
2873
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:141
2874
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:425
2875
+ msgid "Trial Billing Amount"
2876
+ msgstr "Belopp vid Provperiod"
2877
+
2878
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:149
2879
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:433
2880
+ msgid "Trial Billing Period"
2881
+ msgstr "Tid för Provperiod"
2882
+
2883
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:166
2884
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:450
2885
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:177
2886
+ msgid "Optional Details"
2887
+ msgstr "Valfria detaljer"
2888
+
2889
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:29
2890
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:250
2891
+ msgid "Stripe Buy Now Button Configuration"
2892
+ msgstr "Stripe Buy Now Button konfigurering"
2893
+
2894
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:104
2895
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:328
2896
+ msgid "Stripe API keys. You can get this from your Stripe account."
2897
+ msgstr "Strip API-nycklar. Du kan få detta från ditt Stripe-konto."
2898
+
2899
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:108
2900
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:332
2901
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:131
2902
+ msgid "Test Publishable Key"
2903
+ msgstr "Test Publishable Key"
2904
+
2905
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:115
2906
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:339
2907
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:139
2908
+ msgid "Test Secret Key"
2909
+ msgstr "Test Secret Key"
2910
+
2911
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:122
2912
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:346
2913
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:147
2914
+ msgid "Live Publishable Key"
2915
+ msgstr "Live Publishable Key"
2916
+
2917
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:129
2918
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:353
2919
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:155
2920
+ msgid "Live Secret Key"
2921
+ msgstr "Live Secret Key"
2922
+
2923
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:141
2924
+ #: views/payments/payment-gateway/admin_stripe_buy_now_button.php:365
2925
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:183
2926
+ msgid "Collect Customer Address"
2927
+ msgstr "Samla in kundadress"
2928
+
2929
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:75
2930
+ msgid "Stripe Subscription Button Configuration"
2931
+ msgstr "Konfiguration av Stripe prenumerationsknapp"
2932
+
2933
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:109
2934
+ msgid "Stripe API ID"
2935
+ msgstr "Stripe API ID"
2936
+
2937
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:125
2938
+ msgid "Stripe API Settings"
2939
+ msgstr "Stripe API Inställningar"
2940
+
2941
+ #: views/payments/payment-gateway/admin_stripe_subscription_button.php:163
2942
+ msgid "Webook Endpoint URL"
2943
+ msgstr "Webook Endpoint URL"
2944
+
2945
+ #: views/payments/payment-gateway/braintree_button_shortcode_view.php:20
2946
+ #: views/payments/payment-gateway/paypal_button_shortcode_view.php:91
2947
+ #: views/payments/payment-gateway/paypal_button_shortcode_view.php:93
2948
+ #: views/payments/payment-gateway/paypal_smart_checkout_button_shortcode_view.php:15
2949
+ #: views/payments/payment-gateway/stripe_button_shortcode_view.php:20
2950
+ #: views/payments/payment-gateway/stripe_button_shortcode_view.php:150
2951
+ msgid "Buy Now"
2952
+ msgstr "Köp nu"
2953
+
2954
+ #: views/payments/payment-gateway/paypal_button_shortcode_view.php:226
2955
+ #: views/payments/payment-gateway/paypal_button_shortcode_view.php:228
2956
+ msgid "Subscribe Now"
2957
+ msgstr "Prenumerera nu"
2958
+
2959
+ #: views/payments/payment-gateway/paypal_smart_checkout_button_shortcode_view.php:137
2960
+ msgid "Error occured during PayPal Smart Checkout process."
2961
+ msgstr "Ett fel uppstod under PayPal Smart Checkout-processen."
2962
+
2963
+ #: views/payments/payment-gateway/paypal_smart_checkout_button_shortcode_view.php:165
2964
+ msgid "HTTP error occured during payment process:"
2965
+ msgstr "HTTP-fel uppstod under betalningsprocessen:"
2966
+
2967
+ #: Translation strings from addons === Form builder addon
2968
+ msgid "Type password here"
2969
+ msgstr "Skriv lösenord här"
2970
+
2971
+ msgid "Retype password here"
2972
+ msgstr "Skriv lösenordet här igen"
2973
+
2974
+ msgid "Registration is complete. You can now log into the site."
2975
+ msgstr "Registreringen är klar. Du kan nu logga in på webbplatsen."
2976
+
2977
+ msgid " Field has invalid character"
2978
+ msgstr " Fältet har ogiltig karaktär"
2979
+
2980
+ msgid " Password does not match"
2981
+ msgstr " Lösenordet matchar inte"
2982
+
2983
+ msgid "Already taken."
2984
+ msgstr "Redan taget."
2985
+
2986
+ msgid "Street Address"
2987
+ msgstr "Gatuadress"
2988
+
2989
+ msgid "Apt, Suite, Bldg. (optional)"
2990
+ msgstr "Vån, lght-nr (valfritt)"
2991
+
2992
+ msgid "State / Province / Region"
2993
+ msgstr "Stat / provins / region"
2994
+
2995
+ msgid "Postal / Zip Code"
2996
+ msgstr "Postnummer"
2997
+
2998
+ msgid ""
2999
+ "Check this box to delete the image. The image will be deleted when you save "
3000
+ "the profile."
3001
+ msgstr ""
3002
+ "Markera den här rutan för att ta bort bilden. Bilden raderas när du sparar "
3003
+ "profilen."
3004
+
3005
+ msgid "You will need to re-login since you changed your password."
3006
+ msgstr "Du måste logga in igen eftersom du ändrade lösenordet."
3007
+
3008
+ msgid ""
3009
+ "Please enter any two digits with <strong>no</strong> spaces (Example: 12)"
3010
+ msgstr ""
3011
+ "Vänligen ange två siffror med <strong>inga</strong> mellanslag (Exempel: 12)"
3012
+
3013
+ msgid "Verification"
3014
+ msgstr "Verifiering"
3015
+
3016
+ msgid "Please enter any two digits with no spaces (Example: 12)*"
3017
+ msgstr "Vänligen ange två siffror utan mellanslag (Exempel: 12) *"
3018
+
3019
+ msgid "Username can only contain: letters, numbers and .-*@"
3020
+ msgstr "Användarnamnet kan endast innehålla: bokstäver, siffror och .- * @"
3021
+
3022
+ msgid "Allowed characters are: letters, numbers and .-_*@"
3023
+ msgstr "Tillåtna tecken är: bokstäver, siffror och.-_ * @"
3024
+
3025
+ #: === Partial protection addon strings
3026
+ msgid "You do not have permission to view this content."
3027
+ msgstr "Du har inte behörighet att se detta innehåll."
3028
+
3029
+ msgid "Your membership level does not have permission to view this content."
3030
+ msgstr "Din medlemsnivå har inte behörighet att se detta innehåll."
3031
+
3032
+ msgid "This content is for members only."
3033
+ msgstr "Detta innehåll är endast för medlemmar."
3034
+
3035
+ msgid "Please check at least one."
3036
+ msgstr "Vänligen välj minst en."
3037
+
3038
+ #: === Member Directory Listing addon strings swpm-member-directory-admin.php:9
3039
+ msgid "Member Directory"
3040
+ msgstr "Medlemskatalog"
3041
+
3042
+ #: includes/swpm_mda_show_profile.php:26
3043
+ msgid "Member ID"
3044
+ msgstr "Medelms-ID"
3045
+
3046
+ #: includes/swpm_mda_show_profile.php:30
3047
+ msgid "Level"
3048
+ msgstr "Nivå"
3049
+
3050
+ #: includes/swpm_mda_show_profile.php:32
3051
+ msgid "Address"
3052
+ msgstr "Adress"
3053
+
3054
+ #: views/template-1.php:52 views/template-2.php:53
3055
+ msgid "Search..."
3056
+ msgstr "Sök…"
3057
+
3058
+ #: views/template-1.php:60 views/template-2.php:62
3059
+ msgid "Clear Search"
3060
+ msgstr "Rensa Sök"
3061
+
3062
+ # === Misc Shortcodes Addon ===
3063
+ msgid "You must be logged in to upgrade a membership."
3064
+ msgstr "Du måste vara inloggad för att uppgradera ett medlemskap."
3065
+
3066
+ msgid "Membership level has been updated."
3067
+ msgstr "Medlemskapsnivån har uppdaterats."
3068
+
3069
+ msgid "Already a member of this level."
3070
+ msgstr "Redan medlem på denna nivå."
languages/simple-membership.pot CHANGED
@@ -1576,6 +1576,18 @@ msgstr ""
1576
  msgid "Activation Required"
1577
  msgstr ""
1578
 
 
 
 
 
 
 
 
 
 
 
 
 
1579
  #: classes/class.swpm-utils.php:119 views/admin_members_list.php:22
1580
  msgid "Pending"
1581
  msgstr ""
1576
  msgid "Activation Required"
1577
  msgstr ""
1578
 
1579
+ #: classes/class.swpm-utils.php:119
1580
+ msgid "Male"
1581
+ msgstr ""
1582
+
1583
+ #: classes/class.swpm-utils.php:120
1584
+ msgid "Female"
1585
+ msgstr ""
1586
+
1587
+ #: classes/class.swpm-utils.php:121
1588
+ msgid "Not Specified"
1589
+ msgstr ""
1590
+
1591
  #: classes/class.swpm-utils.php:119 views/admin_members_list.php:22
1592
  msgid "Pending"
1593
  msgstr ""
lib/stripe-gateway/CHANGELOG.md CHANGED
@@ -1,732 +1,1160 @@
1
  # Changelog
2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  ## 6.43.1 - 2019-08-29
4
- * [#722](https://github.com/stripe/stripe-php/pull/722) Make `LoggerInterface::error` compatible with its PSR-3 counterpart
5
- * [#714](https://github.com/stripe/stripe-php/pull/714) Add `pending_setup_intent` property in `Subscription`
6
- * [#713](https://github.com/stripe/stripe-php/pull/713) Add typehint to `ApiResponse`
7
- * [#712](https://github.com/stripe/stripe-php/pull/712) Fix comment
8
- * [#701](https://github.com/stripe/stripe-php/pull/701) Start testing PHP 7.3
 
9
 
10
  ## 6.43.0 - 2019-08-09
11
- * [#694](https://github.com/stripe/stripe-php/pull/694) Add `SubscriptionItem::createUsageRecord` method
 
12
 
13
  ## 6.42.0 - 2019-08-09
14
- * [#688](https://github.com/stripe/stripe-php/pull/688) Remove `SubscriptionScheduleRevision`
15
- * Note that this is technically a breaking change, however we've chosen to release it as a minor version in light of the fact that this resource and its API methods were virtually unused.
 
16
 
17
  ## 6.41.0 - 2019-07-31
18
- * [#683](https://github.com/stripe/stripe-php/pull/683) Move the List Balance History API to `/v1/balance_transactions`
 
19
 
20
  ## 6.40.0 - 2019-06-27
21
- * [#675](https://github.com/stripe/stripe-php/pull/675) Add support for `SetupIntent` resource and APIs
 
22
 
23
  ## 6.39.2 - 2019-06-26
24
- * [#676](https://github.com/stripe/stripe-php/pull/676) Fix exception message in `CustomerBalanceTransaction::update()`
 
25
 
26
  ## 6.39.1 - 2019-06-25
27
- * [#674](https://github.com/stripe/stripe-php/pull/674) Add new constants for `collection_method` on `Invoice`
 
28
 
29
  ## 6.39.0 - 2019-06-24
30
- * [#673](https://github.com/stripe/stripe-php/pull/673) Enable request latency telemetry by default
 
31
 
32
  ## 6.38.0 - 2019-06-17
33
- * [#649](https://github.com/stripe/stripe-php/pull/649) Add support for `CustomerBalanceTransaction` resource and APIs
 
34
 
35
  ## 6.37.2 - 2019-06-17
36
- * [#671](https://github.com/stripe/stripe-php/pull/671) Add new PHPDoc
37
- * [#672](https://github.com/stripe/stripe-php/pull/672) Add constants for `submit_type` on Checkout `Session`
 
38
 
39
  ## 6.37.1 - 2019-06-14
40
- * [#670](https://github.com/stripe/stripe-php/pull/670) Add new PHPDoc
 
41
 
42
  ## 6.37.0 - 2019-05-23
43
- * [#663](https://github.com/stripe/stripe-php/pull/663) Add support for `radar.early_fraud_warning` resource
 
44
 
45
  ## 6.36.0 - 2019-05-22
46
- * [#661](https://github.com/stripe/stripe-php/pull/661) Add constants for new TaxId types
47
- * [#662](https://github.com/stripe/stripe-php/pull/662) Add constants for BalanceTransaction types
 
48
 
49
  ## 6.35.2 - 2019-05-20
50
- * [#655](https://github.com/stripe/stripe-php/pull/655) Add constants for payment intent statuses
51
- * [#659](https://github.com/stripe/stripe-php/pull/659) Fix PHPDoc for various nested Account actions
52
- * [#660](https://github.com/stripe/stripe-php/pull/660) Fix various PHPDoc
 
53
 
54
  ## 6.35.1 - 2019-05-20
55
- * [#658](https://github.com/stripe/stripe-php/pull/658) Use absolute value when checking timestamp tolerance
 
56
 
57
  ## 6.35.0 - 2019-05-14
58
- * [#651](https://github.com/stripe/stripe-php/pull/651) Add support for the Capability resource and APIs
 
59
 
60
  ## 6.34.6 - 2019-05-13
61
- * [#654](https://github.com/stripe/stripe-php/pull/654) Fix typo in definition of `Event::PAYMENT_METHOD_ATTACHED` constant
 
62
 
63
  ## 6.34.5 - 2019-05-06
64
- * [#647](https://github.com/stripe/stripe-php/pull/647) Set the return type to static for more operations
 
65
 
66
  ## 6.34.4 - 2019-05-06
67
- * [#650](https://github.com/stripe/stripe-php/pull/650) Add missing constants for Event types
 
68
 
69
  ## 6.34.3 - 2019-05-01
70
- * [#644](https://github.com/stripe/stripe-php/pull/644) Update return type to `static` to improve static analysis
71
- * [#645](https://github.com/stripe/stripe-php/pull/645) Fix constant for `payment_intent.payment_failed`
 
72
 
73
  ## 6.34.2 - 2019-04-26
74
- * [#642](https://github.com/stripe/stripe-php/pull/642) Fix an issue where existing idempotency keys would be overwritten when using automatic retries
 
75
 
76
  ## 6.34.1 - 2019-04-25
77
- * [#640](https://github.com/stripe/stripe-php/pull/640) Add missing phpdocs
 
78
 
79
  ## 6.34.0 - 2019-04-24
80
- * [#626](https://github.com/stripe/stripe-php/pull/626) Add support for the `TaxRate` resource and APIs
81
- * [#639](https://github.com/stripe/stripe-php/pull/639) Fix multiple phpdoc issues
 
82
 
83
  ## 6.33.0 - 2019-04-22
84
- * [#630](https://github.com/stripe/stripe-php/pull/630) Add support for the `TaxId` resource and APIs
 
85
 
86
  ## 6.32.1 - 2019-04-19
87
- * [#636](https://github.com/stripe/stripe-php/pull/636) Correct type of `$personId` in PHPDoc
 
88
 
89
  ## 6.32.0 - 2019-04-18
90
- * [#621](https://github.com/stripe/stripe-php/pull/621) Add support for `CreditNote`
 
91
 
92
  ## 6.31.5 - 2019-04-12
93
- * [#628](https://github.com/stripe/stripe-php/pull/628) Add constants for `person.*` event types
94
- * [#628](https://github.com/stripe/stripe-php/pull/628) Add missing constants for `Account` and `Person`
 
95
 
96
  ## 6.31.4 - 2019-04-05
97
- * [#624](https://github.com/stripe/stripe-php/pull/624) Fix encoding of nested parameters in multipart requests
 
98
 
99
  ## 6.31.3 - 2019-04-02
100
- * [#623](https://github.com/stripe/stripe-php/pull/623) Only use HTTP/2 with curl >= 7.60.0
 
101
 
102
  ## 6.31.2 - 2019-03-25
103
- * [#619](https://github.com/stripe/stripe-php/pull/619) Fix PHPDoc return types for list methods for nested resources
 
104
 
105
  ## 6.31.1 - 2019-03-22
106
- * [#612](https://github.com/stripe/stripe-php/pull/612) Add a lot of constants
107
- * [#614](https://github.com/stripe/stripe-php/pull/614) Add missing subscription status constants
 
108
 
109
  ## 6.31.0 - 2019-03-18
110
- * [#600](https://github.com/stripe/stripe-php/pull/600) Add support for the `PaymentMethod` resource and APIs
111
- * [#606](https://github.com/stripe/stripe-php/pull/606) Add support for retrieving a Checkout `Session`
112
- * [#611](https://github.com/stripe/stripe-php/pull/611) Add support for deleting a Terminal `Location` and `Reader`
 
113
 
114
  ## 6.30.5 - 2019-03-11
115
- * [#607](https://github.com/stripe/stripe-php/pull/607) Correctly handle case where a metadata key is called `metadata`
 
116
 
117
  ## 6.30.4 - 2019-02-27
118
- * [#602](https://github.com/stripe/stripe-php/pull/602) Add `subscription_schedule` to `Subscription` for PHPDoc.
 
119
 
120
  ## 6.30.3 - 2019-02-26
121
- * [#603](https://github.com/stripe/stripe-php/pull/603) Improve PHPDoc on the `Source` object to cover all types of Sources currently supported.
 
122
 
123
  ## 6.30.2 - 2019-02-25
124
- * [#601](https://github.com/stripe/stripe-php/pull/601) Fix PHPDoc across multiple resources and add support for new events.
 
125
 
126
  ## 6.30.1 - 2019-02-16
127
- * [#599](https://github.com/stripe/stripe-php/pull/599) Fix PHPDoc for `SubscriptionSchedule` and `SubscriptionScheduleRevision`
 
128
 
129
  ## 6.30.0 - 2019-02-12
130
- * [#590](https://github.com/stripe/stripe-php/pull/590) Add support for `SubscriptionSchedule` and `SubscriptionScheduleRevision`
 
131
 
132
  ## 6.29.3 - 2019-01-31
133
- * [#592](https://github.com/stripe/stripe-php/pull/592) Some more PHPDoc fixes
 
134
 
135
  ## 6.29.2 - 2019-01-31
136
- * [#591](https://github.com/stripe/stripe-php/pull/591) Fix PHPDoc for nested resources
 
137
 
138
  ## 6.29.1 - 2019-01-25
139
- * [#566](https://github.com/stripe/stripe-php/pull/566) Fix dangling message contents
140
- * [#586](https://github.com/stripe/stripe-php/pull/586) Don't overwrite `CURLOPT_HTTP_VERSION` option
 
141
 
142
  ## 6.29.0 - 2019-01-23
143
- * [#579](https://github.com/stripe/stripe-php/pull/579) Rename `CheckoutSession` to `Session` and move it under the `Checkout` namespace. This is a breaking change, but we've reached out to affected merchants and all new merchants would use the new approach.
 
144
 
145
  ## 6.28.1 - 2019-01-21
146
- * [#580](https://github.com/stripe/stripe-php/pull/580) Properly serialize `individual` on `Account` objects
 
147
 
148
  ## 6.28.0 - 2019-01-03
149
- * [#576](https://github.com/stripe/stripe-php/pull/576) Add support for iterating directly over `Collection` instances
 
150
 
151
  ## 6.27.0 - 2018-12-21
152
- * [#571](https://github.com/stripe/stripe-php/pull/571) Add support for the `CheckoutSession` resource
 
153
 
154
  ## 6.26.0 - 2018-12-11
155
- * [#568](https://github.com/stripe/stripe-php/pull/568) Enable persistent connections
 
156
 
157
  ## 6.25.0 - 2018-12-10
158
- * [#567](https://github.com/stripe/stripe-php/pull/567) Add support for account links
 
159
 
160
  ## 6.24.0 - 2018-11-28
161
- * [#562](https://github.com/stripe/stripe-php/pull/562) Add support for the Review resource
162
- * [#564](https://github.com/stripe/stripe-php/pull/564) Add event name constants for subscription schedule aborted/expiring
 
163
 
164
  ## 6.23.0 - 2018-11-27
165
- * [#542](https://github.com/stripe/stripe-php/pull/542) Add support for `ValueList` and `ValueListItem` for Radar
 
166
 
167
  ## 6.22.1 - 2018-11-20
168
- * [#561](https://github.com/stripe/stripe-php/pull/561) Add cast and some docs to telemetry introduced in 6.22.0/#549
 
169
 
170
  ## 6.22.0 - 2018-11-15
171
- * [#549](https://github.com/stripe/stripe-php/pull/549) Add support for client telemetry
 
172
 
173
  ## 6.21.1 - 2018-11-12
174
- * [#548](https://github.com/stripe/stripe-php/pull/548) Don't mutate `Exception` class properties from `OAuthBase` error
 
175
 
176
  ## 6.21.0 - 2018-11-08
177
- * [#537](https://github.com/stripe/stripe-php/pull/537) Add new API endpoints for the `Invoice` resource.
 
178
 
179
  ## 6.20.1 - 2018-11-07
180
- * [#546](https://github.com/stripe/stripe-php/pull/546) Drop files from the Composer package that aren't needed in the release
 
181
 
182
  ## 6.20.0 - 2018-10-30
183
- * [#536](https://github.com/stripe/stripe-php/pull/536) Add support for the `Person` resource
184
- * [#541](https://github.com/stripe/stripe-php/pull/541) Add support for the `WebhookEndpoint` resource
 
185
 
186
  ## 6.19.5 - 2018-10-17
187
- * [#539](https://github.com/stripe/stripe-php/pull/539) Fix methods on `\Stripe\PaymentIntent` to properly pass arguments to the API.
 
188
 
189
  ## 6.19.4 - 2018-10-11
190
- * [#534](https://github.com/stripe/stripe-php/pull/534) Fix PSR-4 autoloading for `\Stripe\FileUpload` class alias
 
191
 
192
  ## 6.19.3 - 2018-10-09
193
- * [#530](https://github.com/stripe/stripe-php/pull/530) Add constants for `flow` (`FLOW_*`), `status` (`STATUS_*`) and `usage` (`USAGE_*`) on `\Stripe\Source`
 
194
 
195
  ## 6.19.2 - 2018-10-08
196
- * [#531](https://github.com/stripe/stripe-php/pull/531) Store HTTP response headers in case-insensitive array
 
197
 
198
  ## 6.19.1 - 2018-09-25
199
- * [#526](https://github.com/stripe/stripe-php/pull/526) Ignore null values in request parameters
 
200
 
201
  ## 6.19.0 - 2018-09-24
202
- * [#523](https://github.com/stripe/stripe-php/pull/523) Add support for Stripe Terminal
 
203
 
204
  ## 6.18.0 - 2018-09-24
205
- * [#520](https://github.com/stripe/stripe-php/pull/520) Rename `\Stripe\FileUpload` to `\Stripe\File`
 
206
 
207
  ## 6.17.2 - 2018-09-18
208
- * [#522](https://github.com/stripe/stripe-php/pull/522) Fix warning when adding a new additional owner to an existing array
 
209
 
210
  ## 6.17.1 - 2018-09-14
211
- * [#517](https://github.com/stripe/stripe-php/pull/517) Integer-index encode all sequential arrays
 
212
 
213
  ## 6.17.0 - 2018-09-05
214
- * [#514](https://github.com/stripe/stripe-php/pull/514) Add support for reporting resources
 
215
 
216
  ## 6.16.0 - 2018-08-23
217
- * [#509](https://github.com/stripe/stripe-php/pull/509) Add support for usage record summaries
 
218
 
219
  ## 6.15.0 - 2018-08-03
220
- * [#504](https://github.com/stripe/stripe-php/pull/504) Add cancel support for topups
 
221
 
222
  ## 6.14.0 - 2018-08-02
223
- * [#505](https://github.com/stripe/stripe-php/pull/505) Add support for file links
 
224
 
225
  ## 6.13.0 - 2018-07-31
226
- * [#502](https://github.com/stripe/stripe-php/pull/502) Add `isDeleted()` method to `\Stripe\StripeObject`
 
227
 
228
  ## 6.12.0 - 2018-07-28
229
- * [#501](https://github.com/stripe/stripe-php/pull/501) Add support for scheduled query runs (`\Stripe\Sigma\ScheduledQueryRun`) for Sigma
 
230
 
231
  ## 6.11.0 - 2018-07-26
232
- * [#500](https://github.com/stripe/stripe-php/pull/500) Add support for Stripe Issuing
 
233
 
234
  ## 6.10.4 - 2018-07-19
235
- * [#498](https://github.com/stripe/stripe-php/pull/498) Internal improvements to the `\Stripe\ApiResource.classUrl()` method
 
236
 
237
  ## 6.10.3 - 2018-07-16
238
- * [#497](https://github.com/stripe/stripe-php/pull/497) Use HTTP/2 only for HTTPS requests
 
239
 
240
  ## 6.10.2 - 2018-07-11
241
- * [#494](https://github.com/stripe/stripe-php/pull/494) Enable HTTP/2 support
 
242
 
243
  ## 6.10.1 - 2018-07-10
244
- * [#493](https://github.com/stripe/stripe-php/pull/493) Add PHPDoc for `auto_advance` on `\Stripe\Invoice`
 
245
 
246
  ## 6.10.0 - 2018-06-28
247
- * [#488](https://github.com/stripe/stripe-php/pull/488) Add support for `$appPartnerId` to `Stripe::setAppInfo()`
 
248
 
249
  ## 6.9.0 - 2018-06-28
250
- * [#487](https://github.com/stripe/stripe-php/pull/487) Add support for payment intents
 
251
 
252
  ## 6.8.2 - 2018-06-24
253
- * [#486](https://github.com/stripe/stripe-php/pull/486) Make `Account.deauthorize()` return the `StripeObject` from the API
 
254
 
255
  ## 6.8.1 - 2018-06-13
256
- * [#472](https://github.com/stripe/stripe-php/pull/472) Added phpDoc for `ApiRequestor` and others, especially regarding thrown errors
 
257
 
258
  ## 6.8.0 - 2018-06-13
259
- * [#481](https://github.com/stripe/stripe-php/pull/481) Add new `\Stripe\Discount` and `\Stripe\OrderItem` classes, add more PHPDoc describing object attributes
 
260
 
261
  ## 6.7.4 - 2018-05-29
262
- * [#480](https://github.com/stripe/stripe-php/pull/480) PHPDoc changes for API version 2018-05-21 and the addition of the new `CHARGE_EXPIRED` event type
 
263
 
264
  ## 6.7.3 - 2018-05-28
265
- * [#479](https://github.com/stripe/stripe-php/pull/479) Fix unnecessary traits on `\Stripe\InvoiceLineItem`
 
266
 
267
  ## 6.7.2 - 2018-05-28
268
- * [#471](https://github.com/stripe/stripe-php/pull/471) Add `OBJECT_NAME` constant to all API resource classes, add `\Stripe\InvoiceLineItem` class
 
269
 
270
  ## 6.7.1 - 2018-05-13
271
- * [#468](https://github.com/stripe/stripe-php/pull/468) Update fields in PHP docs for accuracy
 
272
 
273
  ## 6.7.0 - 2018-05-09
274
- * [#466](https://github.com/stripe/stripe-php/pull/466) Add support for issuer fraud records
 
275
 
276
  ## 6.6.0 - 2018-04-11
277
- * [#460](https://github.com/stripe/stripe-php/pull/460) Add support for flexible billing primitives
 
278
 
279
  ## 6.5.0 - 2018-04-05
280
- * [#461](https://github.com/stripe/stripe-php/pull/461) Don't zero keys on non-`metadata` subobjects
 
281
 
282
  ## 6.4.2 - 2018-03-17
283
- * [#458](https://github.com/stripe/stripe-php/pull/458) Add PHPDoc for `account` on `\Stripe\Event`
 
284
 
285
  ## 6.4.1 - 2018-03-02
286
- * [#455](https://github.com/stripe/stripe-php/pull/455) Fix namespaces in PHPDoc
287
- * [#456](https://github.com/stripe/stripe-php/pull/456) Fix namespaces for some exceptions
 
288
 
289
  ## 6.4.0 - 2018-02-28
290
- * [#453](https://github.com/stripe/stripe-php/pull/453) Add constants for `reason` (`REASON_*`) and `status` (`STATUS_*`) on `\Stripe\Dispute`
 
291
 
292
  ## 6.3.2 - 2018-02-27
293
- * [#452](https://github.com/stripe/stripe-php/pull/452) Add PHPDoc for `amount_paid` and `amount_remaining` on `\Stripe\Invoice`
 
294
 
295
  ## 6.3.1 - 2018-02-26
296
- * [#443](https://github.com/stripe/stripe-php/pull/443) Add event types as constants to `\Stripe\Event` class
 
297
 
298
  ## 6.3.0 - 2018-02-23
299
- * [#450](https://github.com/stripe/stripe-php/pull/450) Add support for `code` attribute on all Stripe exceptions
 
300
 
301
  ## 6.2.0 - 2018-02-21
302
- * [#440](https://github.com/stripe/stripe-php/pull/440) Add support for topups
303
- * [#442](https://github.com/stripe/stripe-php/pull/442) Fix PHPDoc for `\Stripe\Error\SignatureVerification`
 
304
 
305
  ## 6.1.0 - 2018-02-12
306
- * [#435](https://github.com/stripe/stripe-php/pull/435) Fix header persistence on `Collection` objects
307
- * [#436](https://github.com/stripe/stripe-php/pull/436) Introduce new `Idempotency` error class
 
308
 
309
  ## 6.0.0 - 2018-02-07
 
310
  Major version release. List of backwards incompatible changes to watch out for:
311
- + The minimum PHP version is now 5.4.0. If you're using PHP 5.3 or older, consider upgrading to a more recent version.
312
- * `\Stripe\AttachedObject` no longer exists. Attributes that used to be instances of `\Stripe\AttachedObject` (such as `metadata`) are now instances of `\Stripe\StripeObject`.
313
- + Attributes that used to be PHP arrays (such as `legal_entity->additional_owners` on `\Stripe\Account` instances) are now instances of `\Stripe\StripeObject`, except when they are empty. `\Stripe\StripeObject` has array semantics so this should not be an issue unless you are actively checking types.
314
- * `\Stripe\Collection` now derives from `\Stripe\StripeObject` rather than from `\Stripe\ApiResource`.
 
 
 
 
315
 
316
  Pull requests included in this release:
317
- * [#410](https://github.com/stripe/stripe-php/pull/410) Drop support for PHP 5.3
318
- * [#411](https://github.com/stripe/stripe-php/pull/411) Use traits for common API operations
319
- * [#414](https://github.com/stripe/stripe-php/pull/414) Use short array syntax
320
- * [#404](https://github.com/stripe/stripe-php/pull/404) Fix serialization logic
321
- * [#417](https://github.com/stripe/stripe-php/pull/417) Remove `ExternalAccount` class
322
- * [#418](https://github.com/stripe/stripe-php/pull/418) Increase test coverage
323
- * [#421](https://github.com/stripe/stripe-php/pull/421) Update CA bundle and add script for future updates
324
- * [#422](https://github.com/stripe/stripe-php/pull/422) Use vendored CA bundle for all requests
325
- * [#428](https://github.com/stripe/stripe-php/pull/428) Support for automatic request retries
 
326
 
327
  ## 5.9.2 - 2018-02-07
328
- * [#431](https://github.com/stripe/stripe-php/pull/431) Update PHPDoc @property tags for latest API version
 
329
 
330
  ## 5.9.1 - 2018-02-06
331
- * [#427](https://github.com/stripe/stripe-php/pull/427) Add and update PHPDoc @property tags on all API resources
 
332
 
333
  ## 5.9.0 - 2018-01-17
334
- * [#421](https://github.com/stripe/stripe-php/pull/421) Updated bundled CA certificates
335
- * [#423](https://github.com/stripe/stripe-php/pull/423) Escape unsanitized input in OAuth example
 
336
 
337
  ## 5.8.0 - 2017-12-20
338
- * [#403](https://github.com/stripe/stripe-php/pull/403) Add `__debugInfo()` magic method to `StripeObject`
 
339
 
340
  ## 5.7.0 - 2017-11-28
341
- * [#390](https://github.com/stripe/stripe-php/pull/390) Remove some unsupported API methods
342
- * [#391](https://github.com/stripe/stripe-php/pull/391) Alphabetize the list of API resources in `Util::convertToStripeObject()` and add missing resources
343
- * [#393](https://github.com/stripe/stripe-php/pull/393) Fix expiry date update for card sources
 
344
 
345
  ## 5.6.0 - 2017-10-31
346
- * [#386](https://github.com/stripe/stripe-php/pull/386) Support for exchange rates APIs
 
347
 
348
  ## 5.5.1 - 2017-10-30
349
- * [#387](https://github.com/stripe/stripe-php/pull/387) Allow `personal_address_kana` and `personal_address_kanji` to be updated on an account
 
350
 
351
  ## 5.5.0 - 2017-10-27
352
- * [#385](https://github.com/stripe/stripe-php/pull/385) Support for listing source transactions
 
353
 
354
  ## 5.4.0 - 2017-10-24
355
- * [#383](https://github.com/stripe/stripe-php/pull/383) Add static methods to manipulate resources from parent
356
- * `Account` gains methods for external accounts and login links (e.g. `createExternalAccount`, `createLoginLink`)
357
- * `ApplicationFee` gains methods for refunds
358
- * `Customer` gains methods for sources
359
- * `Transfer` gains methods for reversals
 
360
 
361
  ## 5.3.0 - 2017-10-11
362
- * [#378](https://github.com/stripe/stripe-php/pull/378) Rename source `delete` to `detach` (and deprecate the former)
 
363
 
364
  ## 5.2.3 - 2017-09-27
365
- * Add PHPDoc for `Card`
 
366
 
367
  ## 5.2.2 - 2017-09-20
368
- * Fix deserialization mapping of `FileUpload` objects
 
369
 
370
  ## 5.2.1 - 2017-09-14
371
- * Serialized `shipping` nested attribute
 
372
 
373
  ## 5.2.0 - 2017-08-29
374
- * Add support for `InvalidClient` OAuth error
 
375
 
376
  ## 5.1.3 - 2017-08-14
377
- * Allow `address_kana` and `address_kanji` to be updated for custom accounts
 
378
 
379
  ## 5.1.2 - 2017-08-01
380
- * Fix documented return type of `autoPagingIterator()` (was missing namespace)
 
381
 
382
  ## 5.1.1 - 2017-07-03
383
- * Fix order returns to use the right URL `/v1/order_returns`
 
384
 
385
  ## 5.1.0 - 2017-06-30
386
- * Add support for OAuth
 
387
 
388
  ## 5.0.0 - 2017-06-27
389
- * `pay` on invoice now takes params as well as opts
 
390
 
391
  ## 4.13.0 - 2017-06-19
392
- * Add support for ephemeral keys
 
393
 
394
  ## 4.12.0 - 2017-06-05
395
- * Clients can implement `getUserAgentInfo()` to add additional user agent information
 
396
 
397
  ## 4.11.0 - 2017-06-05
398
- * Implement `Countable` for `AttachedObject` (`metadata` and `additional_owners`)
 
399
 
400
  ## 4.10.0 - 2017-05-25
401
- * Add support for login links
 
402
 
403
  ## 4.9.1 - 2017-05-10
404
- * Fix docs to include arrays on `$id` parameter for retrieve methods
 
405
 
406
  ## 4.9.0 - 2017-04-28
407
- * Support for checking webhook signatures
 
408
 
409
  ## 4.8.1 - 2017-04-24
410
- * Allow nested field `payout_schedule` to be updated
 
411
 
412
  ## 4.8.0 - 2017-04-20
413
- * Add `\Stripe\Stripe::setLogger()` to support an external PSR-3 compatible logger
 
414
 
415
  ## 4.7.0 - 2017-04-10
416
- * Add support for payouts and recipient transfers
 
417
 
418
  ## 4.6.0 - 2017-04-06
419
- * Please see 4.7.0 instead (no-op release)
 
420
 
421
  ## 4.5.1 - 2017-03-22
422
- * Remove hard dependency on cURL
 
423
 
424
  ## 4.5.0 - 2017-03-20
425
- * Support for detaching sources from customers
 
426
 
427
  ## 4.4.2 - 2017-02-27
428
- * Correct handling of `owner` parameter when updating sources
 
429
 
430
  ## 4.4.1 - 2017-02-24
431
- * Correct the error check on a bad JSON decoding
 
432
 
433
  ## 4.4.0 - 2017-01-18
434
- * Add support for updating sources
 
435
 
436
  ## 4.3.0 - 2016-11-30
437
- * Add support for verifying sources
 
438
 
439
  ## 4.2.0 - 2016-11-21
440
- * Add retrieve method for 3-D Secure resources
 
441
 
442
  ## 4.1.1 - 2016-10-21
443
- * Add docblock with model properties for `Plan`
 
444
 
445
  ## 4.1.0 - 2016-10-18
446
- * Support for 403 status codes (permission denied)
 
447
 
448
  ## 4.0.1 - 2016-10-17
449
- * Fix transfer reversal materialization
450
- * Fixes for some property definitions in docblocks
 
451
 
452
  ## 4.0.0 - 2016-09-28
453
- * Support for subscription items
454
- * Drop attempt to force TLS 1.2: please note that this could be breaking if you're using old OS distributions or packages and upgraded recently (so please make sure to test your integration!)
 
455
 
456
  ## 3.23.0 - 2016-09-15
457
- * Add support for Apple Pay domains
 
458
 
459
  ## 3.22.0 - 2016-09-13
460
- * Add `Stripe::setAppInfo` to allow plugins to register user agent information
 
461
 
462
  ## 3.21.0 - 2016-08-25
463
- * Add `Source` model for generic payment sources
 
464
 
465
  ## 3.20.0 - 2016-08-08
466
- * Add `getDeclineCode` to card errors
 
467
 
468
  ## 3.19.0 - 2016-07-29
469
- * Opt requests directly into TLS 1.2 where OpenSSL >= 1.0.1 (see #277 for context)
 
470
 
471
  ## 3.18.0 - 2016-07-28
472
- * Add new `STATUS_` constants for subscriptions
 
473
 
474
  ## 3.17.1 - 2016-07-28
475
- * Fix auto-paging iterator so that it plays nicely with `iterator_to_array`
 
476
 
477
  ## 3.17.0 - 2016-07-14
478
- * Add field annotations to model classes for better editor hinting
 
479
 
480
  ## 3.16.0 - 2016-07-12
481
- * Add `ThreeDSecure` model for 3-D secure payments
 
482
 
483
  ## 3.15.0 - 2016-06-29
484
- * Add static `update` method to all resources that can be changed.
 
485
 
486
  ## 3.14.3 - 2016-06-20
487
- * Make sure that cURL never sends `Expects: 100-continue`, even on large request bodies
 
488
 
489
  ## 3.14.2 - 2016-06-03
490
- * Add `inventory` under `SKU` to list of keys that have nested data and can be updated
 
491
 
492
  ## 3.14.1 - 2016-05-27
493
- * Fix some inconsistencies in PHPDoc
 
494
 
495
  ## 3.14.0 - 2016-05-25
496
- * Add support for returning Relay orders
 
497
 
498
  ## 3.13.0 - 2016-05-04
499
- * Add `list`, `create`, `update`, `retrieve`, and `delete` methods to the Subscription class
 
500
 
501
  ## 3.12.1 - 2016-04-07
502
- * Additional check on value arrays for some extra safety
 
503
 
504
  ## 3.12.0 - 2016-03-31
505
- * Fix bug `refreshFrom` on `StripeObject` would not take an `$opts` array
506
- * Fix bug where `$opts` not passed to parent `save` method in `Account`
507
- * Fix bug where non-existent variable was referenced in `reverse` in `Transfer`
508
- * Update CA cert bundle for compatibility with OpenSSL versions below 1.0.1
 
509
 
510
  ## 3.11.0 - 2016-03-22
511
- * Allow `CurlClient` to be initialized with default `CURLOPT_*` options
 
512
 
513
  ## 3.10.1 - 2016-03-22
514
- * Fix bug where request params and options were ignored in `ApplicationFee`'s `refund.`
 
515
 
516
  ## 3.10.0 - 2016-03-15
517
- * Add `reject` on `Account` to support the new API feature
 
518
 
519
  ## 3.9.2 - 2016-03-04
520
- * Fix error when an object's metadata is set more than once
 
521
 
522
  ## 3.9.1 - 2016-02-24
523
- * Fix encoding behavior of nested arrays for requests (see #227)
 
524
 
525
  ## 3.9.0 - 2016-02-09
526
- * Add automatic pagination mechanism with `autoPagingIterator()`
527
- * Allow global account ID to be set with `Stripe::setAccountId()`
 
528
 
529
  ## 3.8.0 - 2016-02-08
530
- * Add `CountrySpec` model for looking up country payment information
 
531
 
532
  ## 3.7.1 - 2016-02-01
533
- * Update bundled CA certs
 
534
 
535
  ## 3.7.0 - 2016-01-27
536
- * Support deleting Relay products and SKUs
 
537
 
538
  ## 3.6.0 - 2016-01-05
539
- * Allow configuration of HTTP client timeouts
 
540
 
541
  ## 3.5.0 - 2015-12-01
542
- * Add a verification routine for external accounts
 
543
 
544
  ## 3.4.0 - 2015-09-14
545
- * Products, SKUs, and Orders -- https://stripe.com/relay
 
546
 
547
  ## 3.3.0 - 2015-09-11
548
- * Add support for 429 Rate Limit response
 
549
 
550
  ## 3.2.0 - 2015-08-17
551
- * Add refund listing and retrieval without an associated charge
 
552
 
553
  ## 3.1.0 - 2015-08-03
554
- * Add dispute listing and retrieval
555
- * Add support for manage account deletion
 
556
 
557
  ## 3.0.0 - 2015-07-28
558
- * Rename `\Stripe\Object` to `\Stripe\StripeObject` (PHP 7 compatibility)
559
- * Rename `getCode` and `getParam` in exceptions to `getStripeCode` and `getStripeParam`
560
- * Add support for calling `json_encode` on Stripe objects in PHP 5.4+
561
- * Start supporting/testing PHP 7
 
562
 
563
  ## 2.3.0 - 2015-07-06
564
- * Add request ID to all Stripe exceptions
 
565
 
566
  ## 2.2.0 - 2015-06-01
567
- * Add support for Alipay accounts as sources
568
- * Add support for bank accounts as sources (private beta)
569
- * Add support for bank accounts and cards as external_accounts on Account objects
 
570
 
571
  ## 2.1.4 - 2015-05-13
572
- * Fix CA certificate file path (thanks @lphilps & @matthewarkin)
 
573
 
574
  ## 2.1.3 - 2015-05-12
575
- * Fix to account updating to permit `tos_acceptance` and `personal_address` to be set properly
576
- * Fix to Transfer reversal creation (thanks @neatness!)
577
- * Network requests are now done through a swappable class for easier mocking
 
578
 
579
  ## 2.1.2 - 2015-04-10
580
- * Remove SSL cert revokation checking (all pre-Heartbleed certs have expired)
581
- * Bug fixes to account updating
 
582
 
583
  ## 2.1.1 - 2015-02-27
584
- * Support transfer reversals
 
585
 
586
  ## 2.1.0 - 2015-02-19
587
- * Support new API version (2015-02-18)
588
- * Added Bitcoin Receiever update and delete actions
589
- * Edited tests to prefer "source" over "card" as per new API version
 
590
 
591
  ## 2.0.1 - 2015-02-16
592
- * Fix to fetching endpoints that use a non-default baseUrl (`FileUpload`)
 
593
 
594
  ## 2.0.0 - 2015-02-14
595
- * Bumped minimum version to 5.3.3
596
- * Switched to Stripe namespace instead of Stripe_ class name prefiexes (thanks @chadicus!)
597
- * Switched tests to PHPUnit (thanks @chadicus!)
598
- * Switched style guide to PSR2 (thanks @chadicus!)
599
- * Added $opts hash to the end of most methods: this permits passing 'idempotency_key', 'stripe_account', or 'stripe_version'. The last 2 will persist across multiple object loads.
600
- * Added support for retrieving Account by ID
 
601
 
602
  ## 1.18.0 - 2015-01-21
603
- * Support making bitcoin charges through BitcoinReceiver source object
 
604
 
605
  ## 1.17.5 - 2014-12-23
606
- * Adding support for creating file uploads.
 
607
 
608
  ## 1.17.4 - 2014-12-15
609
- * Saving objects fetched with a custom key now works (thanks @JustinHook & @jpasilan)
610
- * Added methods for reporting charges as safe or fraudulent and for specifying the reason for refunds
 
611
 
612
  ## 1.17.3 - 2014-11-06
613
- * Better handling of HHVM support for SSL certificate blacklist checking.
 
614
 
615
  ## 1.17.2 - 2014-09-23
616
- * Coupons now are backed by a `Stripe_Coupon` instead of `Stripe_Object`, and support updating metadata
617
- * Running operations (`create`, `retrieve`, `all`) on upcoming invoice items now works
 
618
 
619
  ## 1.17.1 - 2014-07-31
620
- * Requests now send Content-Type header
 
621
 
622
  ## 1.17.0 - 2014-07-29
623
- * Application Fee refunds now a list instead of array
624
- * HHVM now works
625
- * Small bug fixes (thanks @bencromwell & @fastest963)
626
- * `__toString` now returns the name of the object in addition to its JSON representation
 
627
 
628
  ## 1.16.0 - 2014-06-17
629
- * Add metadata for refunds and disputes
 
630
 
631
  ## 1.15.0 - 2014-05-28
632
- * Support canceling transfers
 
633
 
634
  ## 1.14.1 - 2014-05-21
635
- * Support cards for recipients.
 
636
 
637
  ## 1.13.1 - 2014-05-15
638
- * Fix bug in account resource where `id` wasn't in the result
 
639
 
640
  ## 1.13.0 - 2014-04-10
641
- * Add support for certificate blacklisting
642
- * Update ca bundle
643
- * Drop support for HHVM (Temporarily)
 
644
 
645
  ## 1.12.0 - 2014-04-01
646
- * Add Stripe_RateLimitError for catching rate limit errors.
647
- * Update to Zend coding style (thanks, @jpiasetz)
 
648
 
649
  ## 1.11.0 - 2014-01-29
650
- * Add support for multiple subscriptions per customer
 
651
 
652
  ## 1.10.1 - 2013-12-02
653
- * Add new ApplicationFee
 
654
 
655
  ## 1.9.1 - 2013-11-08
656
- * Fix a bug where a null nestable object causes warnings to fire.
 
657
 
658
  ## 1.9.0 - 2013-10-16
659
- * Add support for metadata API.
 
660
 
661
  ## 1.8.4 - 2013-09-18
662
- * Add support for closing disputes.
 
663
 
664
  ## 1.8.3 - 2013-08-13
665
- * Add new Balance and BalanceTransaction
 
666
 
667
  ## 1.8.2 - 2013-08-12
668
- * Add support for unsetting attributes by updating to NULL. Setting properties to a blank string is now an error.
 
669
 
670
  ## 1.8.1 - 2013-07-12
671
- * Add support for multiple cards API (Stripe API version 2013-07-12: https://stripe.com/docs/upgrades#2013-07-05)
 
672
 
673
  ## 1.8.0 - 2013-04-11
674
- * Allow Transfers to be creatable
675
- * Add new Recipient resource
 
676
 
677
  ## 1.7.15 - 2013-02-21
678
- * Add 'id' to the list of permanent object attributes
 
679
 
680
  ## 1.7.14 - 2013-02-20
681
 
682
- * Don't re-encode strings that are already encoded in UTF-8. If you were previously using plan or coupon objects with UTF-8 IDs, they may have been treated as ISO-8859-1 (Latin-1) and encoded to UTF-8 a 2nd time. You may now need to pass the IDs to utf8_encode before passing them to Stripe_Plan::retrieve or Stripe_Coupon::retrieve.
683
- * Ensure that all input is encoded in UTF-8 before submitting it to Stripe's servers. (github issue #27)
684
 
685
  ## 1.7.13 - 2013-02-01
686
- * Add support for passing options when retrieving Stripe objects e.g., Stripe_Charge::retrieve(array("id"=>"foo", "expand" => array("customer"))); Stripe_Charge::retrieve("foo") will continue to work
 
687
 
688
  ## 1.7.12 - 2013-01-15
689
- * Add support for setting a Stripe API version override
 
690
 
691
  ## 1.7.11 - 2012-12-30
692
- * Version bump to cleanup constants and such (fix issue #26)
 
693
 
694
  ## 1.7.10 - 2012-11-08
695
- * Add support for updating charge disputes.
696
- * Fix bug preventing retrieval of null attributes
 
697
 
698
  ## 1.7.9 - 2012-11-08
699
- * Fix usage under autoloaders such as the one generated by composer (fix issue #22)
 
700
 
701
  ## 1.7.8 - 2012-10-30
702
- * Add support for creating invoices.
703
- * Add support for new invoice lines return format
704
- * Add support for new list objects
 
705
 
706
  ## 1.7.7 - 2012-09-14
707
- * Get all of the various version numbers in the repo in sync (no other changes)
 
708
 
709
  ## 1.7.6 - 2012-08-31
710
- * Add update and pay methods to Invoice resource
 
711
 
712
  ## 1.7.5 - 2012-08-23
713
- * Change internal function names so that Stripe_SingletonApiRequest is E_STRICT-clean (github issue #16)
 
714
 
715
  ## 1.7.4 - 2012-08-21
716
- * Bugfix so that Stripe objects (e.g. Customer, Charge objects) used in API calls are transparently converted to their object IDs
 
717
 
718
  ## 1.7.3 - 2012-08-15
719
- * Add new Account resource
 
720
 
721
  ## 1.7.2 - 2012-06-26
722
- * Make clearer that you should be including lib/Stripe.php, not test/Stripe.php (github issue #14)
 
723
 
724
  ## 1.7.1 - 2012-05-24
725
- * Add missing argument to Stripe_InvalidRequestError constructor in Stripe_ApiResource::instanceUrl. Fixes a warning when Stripe_ApiResource::instanceUrl is called on a resource with no ID (fix issue #12)
 
726
 
727
  ## 1.7.0 - 2012-05-17
728
- * Support Composer and Packagist (github issue #9)
729
- * Add new deleteDiscount method to Stripe_Customer
730
- * Add new Transfer resource
731
- * Switch from using HTTP Basic auth to Bearer auth. (Note: Stripe will support Basic auth for the indefinite future, but recommends Bearer auth when possible going forward)
732
- * Numerous test suite improvements
 
1
  # Changelog
2
 
3
+ ## 7.28.1 - 2020-04-10
4
+ * [#915](https://github.com/stripe/stripe-php/pull/915) Improve PHPdocs for many classes
5
+
6
+ ## 7.28.0 - 2020-04-03
7
+ * [#912](https://github.com/stripe/stripe-php/pull/912) Preserve backwards compatibility for typoed `TYPE_ADJUSTEMENT` enum.
8
+ * [#911](https://github.com/stripe/stripe-php/pull/911) Codegenerated PHPDoc for nested resources
9
+ * [#902](https://github.com/stripe/stripe-php/pull/902) Update docstrings for nested resources
10
+
11
+ ## 7.27.3 - 2020-03-18
12
+ * [#899](https://github.com/stripe/stripe-php/pull/899) Convert keys to strings in `StripeObject::toArray()`
13
+
14
+ ## 7.27.2 - 2020-03-13
15
+ * [#894](https://github.com/stripe/stripe-php/pull/894) Multiple PHPDocs changes
16
+
17
+ ## 7.27.1 - 2020-03-03
18
+ * [#890](https://github.com/stripe/stripe-php/pull/890) Update PHPdoc
19
+
20
+ ## 7.27.0 - 2020-02-28
21
+ * [#889](https://github.com/stripe/stripe-php/pull/889) Add new constants for `type` on `TaxId`
22
+
23
+ ## 7.26.0 - 2020-02-26
24
+ * [#886](https://github.com/stripe/stripe-php/pull/886) Add support for listing Checkout `Session`
25
+ * [#883](https://github.com/stripe/stripe-php/pull/883) Add PHPDoc class descriptions
26
+
27
+ ## 7.25.0 - 2020-02-14
28
+ * [#879](https://github.com/stripe/stripe-php/pull/879) Make `\Stripe\Collection` implement `\Countable`
29
+ * [#875](https://github.com/stripe/stripe-php/pull/875) Last set of PHP-CS-Fixer updates
30
+ * [#874](https://github.com/stripe/stripe-php/pull/874) Enable php_unit_internal_class rule
31
+ * [#873](https://github.com/stripe/stripe-php/pull/873) Add support for phpDocumentor in Makefile
32
+ * [#872](https://github.com/stripe/stripe-php/pull/872) Another batch of PHP-CS-Fixer rule updates
33
+ * [#871](https://github.com/stripe/stripe-php/pull/871) Fix a few PHPDoc comments
34
+ * [#870](https://github.com/stripe/stripe-php/pull/870) More PHP-CS-Fixer tweaks
35
+
36
+ ## 7.24.0 - 2020-02-10
37
+ * [#862](https://github.com/stripe/stripe-php/pull/862) Better PHPDoc
38
+ * [#865](https://github.com/stripe/stripe-php/pull/865) Get closer to `@PhpCsFixer` standard ruleset
39
+
40
+ ## 7.23.0 - 2020-02-05
41
+ * [#860](https://github.com/stripe/stripe-php/pull/860) Add PHPDoc types for expandable fields
42
+ * [#858](https://github.com/stripe/stripe-php/pull/858) Use `native_function_invocation` PHPStan rule
43
+ * [#857](https://github.com/stripe/stripe-php/pull/857) Update PHPDoc on nested resources
44
+ * [#855](https://github.com/stripe/stripe-php/pull/855) PHPDoc: `StripeObject` -> `ErrorObject` where appropriate
45
+ * [#837](https://github.com/stripe/stripe-php/pull/837) Autogen diff
46
+ * [#854](https://github.com/stripe/stripe-php/pull/854) Upgrade PHPStan and fix settings
47
+ * [#850](https://github.com/stripe/stripe-php/pull/850) Yet more PHPDoc updates
48
+
49
+ ## 7.22.0 - 2020-01-31
50
+ * [#849](https://github.com/stripe/stripe-php/pull/849) Add new constants for `type` on `TaxId`
51
+ * [#843](https://github.com/stripe/stripe-php/pull/843) Even more PHPDoc fixes
52
+ * [#841](https://github.com/stripe/stripe-php/pull/841) More PHPDoc fixes
53
+
54
+ ## 7.21.1 - 2020-01-29
55
+ * [#840](https://github.com/stripe/stripe-php/pull/840) Update phpdocs across multiple resources.
56
+
57
+ ## 7.21.0 - 2020-01-28
58
+ * [#839](https://github.com/stripe/stripe-php/pull/839) Add support for `TYPE_ES_CIF` on `TaxId`
59
+
60
+ ## 7.20.0 - 2020-01-23
61
+ * [#836](https://github.com/stripe/stripe-php/pull/836) Add new type values for `TaxId`
62
+
63
+ ## 7.19.1 - 2020-01-14
64
+ * [#831](https://github.com/stripe/stripe-php/pull/831) Fix incorrect `UnexpectedValueException` instantiation
65
+
66
+ ## 7.19.0 - 2020-01-14
67
+ * [#830](https://github.com/stripe/stripe-php/pull/830) Add support for `CreditNoteLineItem`
68
+
69
+ ## 7.18.0 - 2020-01-13
70
+ * [#829](https://github.com/stripe/stripe-php/pull/829) Don't call php_uname function if disabled by php.ini
71
+
72
+ ## 7.17.0 - 2020-01-08
73
+ * [#821](https://github.com/stripe/stripe-php/pull/821) Improve PHPDoc types for `ApiErrorException.get/setJsonBody()` methods
74
+
75
+ ## 7.16.0 - 2020-01-06
76
+ * [#826](https://github.com/stripe/stripe-php/pull/826) Rename remaining `$options` to `$opts`
77
+ * [#825](https://github.com/stripe/stripe-php/pull/825) Update PHPDoc
78
+
79
+ ## 7.15.0 - 2020-01-06
80
+ * [#824](https://github.com/stripe/stripe-php/pull/824) Add constant `TYPE_SG_UEN` to `TaxId`
81
+
82
+ ## 7.14.2 - 2019-12-04
83
+ * [#816](https://github.com/stripe/stripe-php/pull/816) Disable autoloader when checking for `Throwable`
84
+
85
+ ## 7.14.1 - 2019-11-26
86
+ * [#812](https://github.com/stripe/stripe-php/pull/812) Fix invalid PHPdoc on `Subscription`
87
+
88
+ ## 7.14.0 - 2019-11-26
89
+ * [#811](https://github.com/stripe/stripe-php/pull/811) Add support for `CreditNote` preview.
90
+
91
+ ## 7.13.0 - 2019-11-19
92
+ * [#808](https://github.com/stripe/stripe-php/pull/808) Add support for listing lines on an Invoice directly via `Invoice::allLines()`
93
+
94
+ ## 7.12.0 - 2019-11-08
95
+
96
+ - [#805](https://github.com/stripe/stripe-php/pull/805) Add Source::allSourceTransactions and SubscriptionItem::allUsageRecordSummaries
97
+ - [#798](https://github.com/stripe/stripe-php/pull/798) The argument of `array_key_exists` cannot be `null`
98
+ - [#803](https://github.com/stripe/stripe-php/pull/803) Removed unwanted got
99
+
100
+ ## 7.11.0 - 2019-11-06
101
+
102
+ - [#797](https://github.com/stripe/stripe-php/pull/797) Add support for reverse pagination
103
+
104
+ ## 7.10.0 - 2019-11-05
105
+
106
+ - [#795](https://github.com/stripe/stripe-php/pull/795) Add support for `Mandate`
107
+
108
+ ## 7.9.0 - 2019-11-05
109
+
110
+ - [#794](https://github.com/stripe/stripe-php/pull/794) Add PHPDoc to `ApiResponse`
111
+ - [#792](https://github.com/stripe/stripe-php/pull/792) Use single quotes for `OBJECT_NAME` constants
112
+
113
+ ## 7.8.0 - 2019-11-05
114
+
115
+ - [#790](https://github.com/stripe/stripe-php/pull/790) Mark nullable fields in PHPDoc
116
+ - [#788](https://github.com/stripe/stripe-php/pull/788) Early codegen fixes
117
+ - [#787](https://github.com/stripe/stripe-php/pull/787) Use PHPStan in Travis CI
118
+
119
+ ## 7.7.1 - 2019-10-25
120
+
121
+ - [#781](https://github.com/stripe/stripe-php/pull/781) Fix telemetry header
122
+ - [#780](https://github.com/stripe/stripe-php/pull/780) Contributor Convenant
123
+
124
+ ## 7.7.0 - 2019-10-23
125
+
126
+ - [#776](https://github.com/stripe/stripe-php/pull/776) Add `CAPABILITY_TRANSFERS` to `Account`
127
+ - [#778](https://github.com/stripe/stripe-php/pull/778) Add support for `TYPE_MX_RFC` type on `TaxId`
128
+
129
+ ## 7.6.0 - 2019-10-22
130
+
131
+ - [#770](https://github.com/stripe/stripe-php/pull/770) Add missing constants for Customer's `TaxId`
132
+
133
+ ## 7.5.0 - 2019-10-18
134
+
135
+ - [#768](https://github.com/stripe/stripe-php/pull/768) Redact API key in `RequestOptions` debug info
136
+
137
+ ## 7.4.0 - 2019-10-15
138
+
139
+ - [#764](https://github.com/stripe/stripe-php/pull/764) Add support for HTTP request monitoring callback
140
+
141
+ ## 7.3.1 - 2019-10-07
142
+
143
+ - [#755](https://github.com/stripe/stripe-php/pull/755) Respect Stripe-Should-Retry and Retry-After headers
144
+
145
+ ## 7.3.0 - 2019-10-02
146
+
147
+ - [#752](https://github.com/stripe/stripe-php/pull/752) Add `payment_intent.canceled` and `setup_intent.canceled` events
148
+ - [#749](https://github.com/stripe/stripe-php/pull/749) Call `toArray()` on objects only
149
+
150
+ ## 7.2.2 - 2019-09-24
151
+
152
+ - [#746](https://github.com/stripe/stripe-php/pull/746) Add missing decline codes
153
+
154
+ ## 7.2.1 - 2019-09-23
155
+
156
+ - [#744](https://github.com/stripe/stripe-php/pull/744) Added new PHPDoc
157
+
158
+ ## 7.2.0 - 2019-09-17
159
+
160
+ - [#738](https://github.com/stripe/stripe-php/pull/738) Added missing constants for `SetupIntent` events
161
+
162
+ ## 7.1.1 - 2019-09-16
163
+
164
+ - [#737](https://github.com/stripe/stripe-php/pull/737) Added new PHPDoc
165
+
166
+ ## 7.1.0 - 2019-09-13
167
+
168
+ - [#736](https://github.com/stripe/stripe-php/pull/736) Make `CaseInsensitiveArray` countable and traversable
169
+
170
+ ## 7.0.2 - 2019-09-06
171
+
172
+ - [#729](https://github.com/stripe/stripe-php/pull/729) Fix usage of `SignatureVerificationException` in PHPDoc blocks
173
+
174
+ ## 7.0.1 - 2019-09-05
175
+
176
+ - [#728](https://github.com/stripe/stripe-php/pull/728) Clean up Collection
177
+
178
+ ## 7.0.0 - 2019-09-03
179
+
180
+ Major version release. The [migration guide](https://github.com/stripe/stripe-php/wiki/Migration-guide-for-v7) contains a detailed list of backwards-incompatible changes with upgrade instructions.
181
+
182
+ Pull requests included in this release (cf. [#552](https://github.com/stripe/stripe-php/pull/552)) (⚠️ = breaking changes):
183
+
184
+ - ⚠️ Drop support for PHP 5.4 ([#551](https://github.com/stripe/stripe-php/pull/551))
185
+ - ⚠️ Drop support for PHP 5.5 ([#554](https://github.com/stripe/stripe-php/pull/554))
186
+ - Bump dependencies ([#553](https://github.com/stripe/stripe-php/pull/553))
187
+ - Remove `CURLFile` check ([#555](https://github.com/stripe/stripe-php/pull/555))
188
+ - Update constant definitions for PHP >= 5.6 ([#556](https://github.com/stripe/stripe-php/pull/556))
189
+ - ⚠️ Remove `FileUpload` alias ([#557](https://github.com/stripe/stripe-php/pull/557))
190
+ - Remove `curl_reset` check ([#570](https://github.com/stripe/stripe-php/pull/570))
191
+ - Use `\Stripe\<class>::class` constant instead of strings ([#643](https://github.com/stripe/stripe-php/pull/643))
192
+ - Use `array_column` to flatten params ([#686](https://github.com/stripe/stripe-php/pull/686))
193
+ - ⚠️ Remove deprecated methods ([#692](https://github.com/stripe/stripe-php/pull/692))
194
+ - ⚠️ Remove `IssuerFraudRecord` ([#696](https://github.com/stripe/stripe-php/pull/696))
195
+ - Update constructors of Stripe exception classes ([#559](https://github.com/stripe/stripe-php/pull/559))
196
+ - Fix remaining TODOs ([#700](https://github.com/stripe/stripe-php/pull/700))
197
+ - Use yield for autopagination ([#703](https://github.com/stripe/stripe-php/pull/703))
198
+ - ⚠️ Rename fake magic methods and rewrite array conversion ([#704](https://github.com/stripe/stripe-php/pull/704))
199
+ - Add `ErrorObject` to Stripe exceptions ([#705](https://github.com/stripe/stripe-php/pull/705))
200
+ - Start using PHP CS Fixer ([#706](https://github.com/stripe/stripe-php/pull/706))
201
+ - Update error messages for nested resource operations ([#708](https://github.com/stripe/stripe-php/pull/708))
202
+ - Upgrade retry logic ([#707](https://github.com/stripe/stripe-php/pull/707))
203
+ - ⚠️ `Collection` improvements / fixes ([#715](https://github.com/stripe/stripe-php/pull/715))
204
+ - ⚠️ Modernize exceptions ([#709](https://github.com/stripe/stripe-php/pull/709))
205
+ - Add constants for error codes ([#716](https://github.com/stripe/stripe-php/pull/716))
206
+ - Update certificate bundle ([#717](https://github.com/stripe/stripe-php/pull/717))
207
+ - Retry requests on a 429 that's a lock timeout ([#718](https://github.com/stripe/stripe-php/pull/718))
208
+ - Fix `toArray()` calls ([#719](https://github.com/stripe/stripe-php/pull/719))
209
+ - Couple of fixes for PHP 7.4 ([#725](https://github.com/stripe/stripe-php/pull/725))
210
+
211
  ## 6.43.1 - 2019-08-29
212
+
213
+ - [#722](https://github.com/stripe/stripe-php/pull/722) Make `LoggerInterface::error` compatible with its PSR-3 counterpart
214
+ - [#714](https://github.com/stripe/stripe-php/pull/714) Add `pending_setup_intent` property in `Subscription`
215
+ - [#713](https://github.com/stripe/stripe-php/pull/713) Add typehint to `ApiResponse`
216
+ - [#712](https://github.com/stripe/stripe-php/pull/712) Fix comment
217
+ - [#701](https://github.com/stripe/stripe-php/pull/701) Start testing PHP 7.3
218
 
219
  ## 6.43.0 - 2019-08-09
220
+
221
+ - [#694](https://github.com/stripe/stripe-php/pull/694) Add `SubscriptionItem::createUsageRecord` method
222
 
223
  ## 6.42.0 - 2019-08-09
224
+
225
+ - [#688](https://github.com/stripe/stripe-php/pull/688) Remove `SubscriptionScheduleRevision`
226
+ - Note that this is technically a breaking change, however we've chosen to release it as a minor version in light of the fact that this resource and its API methods were virtually unused.
227
 
228
  ## 6.41.0 - 2019-07-31
229
+
230
+ - [#683](https://github.com/stripe/stripe-php/pull/683) Move the List Balance History API to `/v1/balance_transactions`
231
 
232
  ## 6.40.0 - 2019-06-27
233
+
234
+ - [#675](https://github.com/stripe/stripe-php/pull/675) Add support for `SetupIntent` resource and APIs
235
 
236
  ## 6.39.2 - 2019-06-26
237
+
238
+ - [#676](https://github.com/stripe/stripe-php/pull/676) Fix exception message in `CustomerBalanceTransaction::update()`
239
 
240
  ## 6.39.1 - 2019-06-25
241
+
242
+ - [#674](https://github.com/stripe/stripe-php/pull/674) Add new constants for `collection_method` on `Invoice`
243
 
244
  ## 6.39.0 - 2019-06-24
245
+
246
+ - [#673](https://github.com/stripe/stripe-php/pull/673) Enable request latency telemetry by default
247
 
248
  ## 6.38.0 - 2019-06-17
249
+
250
+ - [#649](https://github.com/stripe/stripe-php/pull/649) Add support for `CustomerBalanceTransaction` resource and APIs
251
 
252
  ## 6.37.2 - 2019-06-17
253
+
254
+ - [#671](https://github.com/stripe/stripe-php/pull/671) Add new PHPDoc
255
+ - [#672](https://github.com/stripe/stripe-php/pull/672) Add constants for `submit_type` on Checkout `Session`
256
 
257
  ## 6.37.1 - 2019-06-14
258
+
259
+ - [#670](https://github.com/stripe/stripe-php/pull/670) Add new PHPDoc
260
 
261
  ## 6.37.0 - 2019-05-23
262
+
263
+ - [#663](https://github.com/stripe/stripe-php/pull/663) Add support for `radar.early_fraud_warning` resource
264
 
265
  ## 6.36.0 - 2019-05-22
266
+
267
+ - [#661](https://github.com/stripe/stripe-php/pull/661) Add constants for new TaxId types
268
+ - [#662](https://github.com/stripe/stripe-php/pull/662) Add constants for BalanceTransaction types
269
 
270
  ## 6.35.2 - 2019-05-20
271
+
272
+ - [#655](https://github.com/stripe/stripe-php/pull/655) Add constants for payment intent statuses
273
+ - [#659](https://github.com/stripe/stripe-php/pull/659) Fix PHPDoc for various nested Account actions
274
+ - [#660](https://github.com/stripe/stripe-php/pull/660) Fix various PHPDoc
275
 
276
  ## 6.35.1 - 2019-05-20
277
+
278
+ - [#658](https://github.com/stripe/stripe-php/pull/658) Use absolute value when checking timestamp tolerance
279
 
280
  ## 6.35.0 - 2019-05-14
281
+
282
+ - [#651](https://github.com/stripe/stripe-php/pull/651) Add support for the Capability resource and APIs
283
 
284
  ## 6.34.6 - 2019-05-13
285
+
286
+ - [#654](https://github.com/stripe/stripe-php/pull/654) Fix typo in definition of `Event::PAYMENT_METHOD_ATTACHED` constant
287
 
288
  ## 6.34.5 - 2019-05-06
289
+
290
+ - [#647](https://github.com/stripe/stripe-php/pull/647) Set the return type to static for more operations
291
 
292
  ## 6.34.4 - 2019-05-06
293
+
294
+ - [#650](https://github.com/stripe/stripe-php/pull/650) Add missing constants for Event types
295
 
296
  ## 6.34.3 - 2019-05-01
297
+
298
+ - [#644](https://github.com/stripe/stripe-php/pull/644) Update return type to `static` to improve static analysis
299
+ - [#645](https://github.com/stripe/stripe-php/pull/645) Fix constant for `payment_intent.payment_failed`
300
 
301
  ## 6.34.2 - 2019-04-26
302
+
303
+ - [#642](https://github.com/stripe/stripe-php/pull/642) Fix an issue where existing idempotency keys would be overwritten when using automatic retries
304
 
305
  ## 6.34.1 - 2019-04-25
306
+
307
+ - [#640](https://github.com/stripe/stripe-php/pull/640) Add missing phpdocs
308
 
309
  ## 6.34.0 - 2019-04-24
310
+
311
+ - [#626](https://github.com/stripe/stripe-php/pull/626) Add support for the `TaxRate` resource and APIs
312
+ - [#639](https://github.com/stripe/stripe-php/pull/639) Fix multiple phpdoc issues
313
 
314
  ## 6.33.0 - 2019-04-22
315
+
316
+ - [#630](https://github.com/stripe/stripe-php/pull/630) Add support for the `TaxId` resource and APIs
317
 
318
  ## 6.32.1 - 2019-04-19
319
+
320
+ - [#636](https://github.com/stripe/stripe-php/pull/636) Correct type of `$personId` in PHPDoc
321
 
322
  ## 6.32.0 - 2019-04-18
323
+
324
+ - [#621](https://github.com/stripe/stripe-php/pull/621) Add support for `CreditNote`
325
 
326
  ## 6.31.5 - 2019-04-12
327
+
328
+ - [#628](https://github.com/stripe/stripe-php/pull/628) Add constants for `person.*` event types
329
+ - [#628](https://github.com/stripe/stripe-php/pull/628) Add missing constants for `Account` and `Person`
330
 
331
  ## 6.31.4 - 2019-04-05
332
+
333
+ - [#624](https://github.com/stripe/stripe-php/pull/624) Fix encoding of nested parameters in multipart requests
334
 
335
  ## 6.31.3 - 2019-04-02
336
+
337
+ - [#623](https://github.com/stripe/stripe-php/pull/623) Only use HTTP/2 with curl >= 7.60.0
338
 
339
  ## 6.31.2 - 2019-03-25
340
+
341
+ - [#619](https://github.com/stripe/stripe-php/pull/619) Fix PHPDoc return types for list methods for nested resources
342
 
343
  ## 6.31.1 - 2019-03-22
344
+
345
+ - [#612](https://github.com/stripe/stripe-php/pull/612) Add a lot of constants
346
+ - [#614](https://github.com/stripe/stripe-php/pull/614) Add missing subscription status constants
347
 
348
  ## 6.31.0 - 2019-03-18
349
+
350
+ - [#600](https://github.com/stripe/stripe-php/pull/600) Add support for the `PaymentMethod` resource and APIs
351
+ - [#606](https://github.com/stripe/stripe-php/pull/606) Add support for retrieving a Checkout `Session`
352
+ - [#611](https://github.com/stripe/stripe-php/pull/611) Add support for deleting a Terminal `Location` and `Reader`
353
 
354
  ## 6.30.5 - 2019-03-11
355
+
356
+ - [#607](https://github.com/stripe/stripe-php/pull/607) Correctly handle case where a metadata key is called `metadata`
357
 
358
  ## 6.30.4 - 2019-02-27
359
+
360
+ - [#602](https://github.com/stripe/stripe-php/pull/602) Add `subscription_schedule` to `Subscription` for PHPDoc.
361
 
362
  ## 6.30.3 - 2019-02-26
363
+
364
+ - [#603](https://github.com/stripe/stripe-php/pull/603) Improve PHPDoc on the `Source` object to cover all types of Sources currently supported.
365
 
366
  ## 6.30.2 - 2019-02-25
367
+
368
+ - [#601](https://github.com/stripe/stripe-php/pull/601) Fix PHPDoc across multiple resources and add support for new events.
369
 
370
  ## 6.30.1 - 2019-02-16
371
+
372
+ - [#599](https://github.com/stripe/stripe-php/pull/599) Fix PHPDoc for `SubscriptionSchedule` and `SubscriptionScheduleRevision`
373
 
374
  ## 6.30.0 - 2019-02-12
375
+
376
+ - [#590](https://github.com/stripe/stripe-php/pull/590) Add support for `SubscriptionSchedule` and `SubscriptionScheduleRevision`
377
 
378
  ## 6.29.3 - 2019-01-31
379
+
380
+ - [#592](https://github.com/stripe/stripe-php/pull/592) Some more PHPDoc fixes
381
 
382
  ## 6.29.2 - 2019-01-31
383
+
384
+ - [#591](https://github.com/stripe/stripe-php/pull/591) Fix PHPDoc for nested resources
385
 
386
  ## 6.29.1 - 2019-01-25
387
+
388
+ - [#566](https://github.com/stripe/stripe-php/pull/566) Fix dangling message contents
389
+ - [#586](https://github.com/stripe/stripe-php/pull/586) Don't overwrite `CURLOPT_HTTP_VERSION` option
390
 
391
  ## 6.29.0 - 2019-01-23
392
+
393
+ - [#579](https://github.com/stripe/stripe-php/pull/579) Rename `CheckoutSession` to `Session` and move it under the `Checkout` namespace. This is a breaking change, but we've reached out to affected merchants and all new merchants would use the new approach.
394
 
395
  ## 6.28.1 - 2019-01-21
396
+
397
+ - [#580](https://github.com/stripe/stripe-php/pull/580) Properly serialize `individual` on `Account` objects
398
 
399
  ## 6.28.0 - 2019-01-03
400
+
401
+ - [#576](https://github.com/stripe/stripe-php/pull/576) Add support for iterating directly over `Collection` instances
402
 
403
  ## 6.27.0 - 2018-12-21
404
+
405
+ - [#571](https://github.com/stripe/stripe-php/pull/571) Add support for the `CheckoutSession` resource
406
 
407
  ## 6.26.0 - 2018-12-11
408
+
409
+ - [#568](https://github.com/stripe/stripe-php/pull/568) Enable persistent connections
410
 
411
  ## 6.25.0 - 2018-12-10
412
+
413
+ - [#567](https://github.com/stripe/stripe-php/pull/567) Add support for account links
414
 
415
  ## 6.24.0 - 2018-11-28
416
+
417
+ - [#562](https://github.com/stripe/stripe-php/pull/562) Add support for the Review resource
418
+ - [#564](https://github.com/stripe/stripe-php/pull/564) Add event name constants for subscription schedule aborted/expiring
419
 
420
  ## 6.23.0 - 2018-11-27
421
+
422
+ - [#542](https://github.com/stripe/stripe-php/pull/542) Add support for `ValueList` and `ValueListItem` for Radar
423
 
424
  ## 6.22.1 - 2018-11-20
425
+
426
+ - [#561](https://github.com/stripe/stripe-php/pull/561) Add cast and some docs to telemetry introduced in 6.22.0/549
427
 
428
  ## 6.22.0 - 2018-11-15
429
+
430
+ - [#549](https://github.com/stripe/stripe-php/pull/549) Add support for client telemetry
431
 
432
  ## 6.21.1 - 2018-11-12
433
+
434
+ - [#548](https://github.com/stripe/stripe-php/pull/548) Don't mutate `Exception` class properties from `OAuthBase` error
435
 
436
  ## 6.21.0 - 2018-11-08
437
+
438
+ - [#537](https://github.com/stripe/stripe-php/pull/537) Add new API endpoints for the `Invoice` resource.
439
 
440
  ## 6.20.1 - 2018-11-07
441
+
442
+ - [#546](https://github.com/stripe/stripe-php/pull/546) Drop files from the Composer package that aren't needed in the release
443
 
444
  ## 6.20.0 - 2018-10-30
445
+
446
+ - [#536](https://github.com/stripe/stripe-php/pull/536) Add support for the `Person` resource
447
+ - [#541](https://github.com/stripe/stripe-php/pull/541) Add support for the `WebhookEndpoint` resource
448
 
449
  ## 6.19.5 - 2018-10-17
450
+
451
+ - [#539](https://github.com/stripe/stripe-php/pull/539) Fix methods on `\Stripe\PaymentIntent` to properly pass arguments to the API.
452
 
453
  ## 6.19.4 - 2018-10-11
454
+
455
+ - [#534](https://github.com/stripe/stripe-php/pull/534) Fix PSR-4 autoloading for `\Stripe\FileUpload` class alias
456
 
457
  ## 6.19.3 - 2018-10-09
458
+
459
+ - [#530](https://github.com/stripe/stripe-php/pull/530) Add constants for `flow` (`FLOW_*`), `status` (`STATUS_*`) and `usage` (`USAGE_*`) on `\Stripe\Source`
460
 
461
  ## 6.19.2 - 2018-10-08
462
+
463
+ - [#531](https://github.com/stripe/stripe-php/pull/531) Store HTTP response headers in case-insensitive array
464
 
465
  ## 6.19.1 - 2018-09-25
466
+
467
+ - [#526](https://github.com/stripe/stripe-php/pull/526) Ignore null values in request parameters
468
 
469
  ## 6.19.0 - 2018-09-24
470
+
471
+ - [#523](https://github.com/stripe/stripe-php/pull/523) Add support for Stripe Terminal
472
 
473
  ## 6.18.0 - 2018-09-24
474
+
475
+ - [#520](https://github.com/stripe/stripe-php/pull/520) Rename `\Stripe\FileUpload` to `\Stripe\File`
476
 
477
  ## 6.17.2 - 2018-09-18
478
+
479
+ - [#522](https://github.com/stripe/stripe-php/pull/522) Fix warning when adding a new additional owner to an existing array
480
 
481
  ## 6.17.1 - 2018-09-14
482
+
483
+ - [#517](https://github.com/stripe/stripe-php/pull/517) Integer-index encode all sequential arrays
484
 
485
  ## 6.17.0 - 2018-09-05
486
+
487
+ - [#514](https://github.com/stripe/stripe-php/pull/514) Add support for reporting resources
488
 
489
  ## 6.16.0 - 2018-08-23
490
+
491
+ - [#509](https://github.com/stripe/stripe-php/pull/509) Add support for usage record summaries
492
 
493
  ## 6.15.0 - 2018-08-03
494
+
495
+ - [#504](https://github.com/stripe/stripe-php/pull/504) Add cancel support for topups
496
 
497
  ## 6.14.0 - 2018-08-02
498
+
499
+ - [#505](https://github.com/stripe/stripe-php/pull/505) Add support for file links
500
 
501
  ## 6.13.0 - 2018-07-31
502
+
503
+ - [#502](https://github.com/stripe/stripe-php/pull/502) Add `isDeleted()` method to `\Stripe\StripeObject`
504
 
505
  ## 6.12.0 - 2018-07-28
506
+
507
+ - [#501](https://github.com/stripe/stripe-php/pull/501) Add support for scheduled query runs (`\Stripe\Sigma\ScheduledQueryRun`) for Sigma
508
 
509
  ## 6.11.0 - 2018-07-26
510
+
511
+ - [#500](https://github.com/stripe/stripe-php/pull/500) Add support for Stripe Issuing
512
 
513
  ## 6.10.4 - 2018-07-19
514
+
515
+ - [#498](https://github.com/stripe/stripe-php/pull/498) Internal improvements to the `\Stripe\ApiResource.classUrl()` method
516
 
517
  ## 6.10.3 - 2018-07-16
518
+
519
+ - [#497](https://github.com/stripe/stripe-php/pull/497) Use HTTP/2 only for HTTPS requests
520
 
521
  ## 6.10.2 - 2018-07-11
522
+
523
+ - [#494](https://github.com/stripe/stripe-php/pull/494) Enable HTTP/2 support
524
 
525
  ## 6.10.1 - 2018-07-10
526
+
527
+ - [#493](https://github.com/stripe/stripe-php/pull/493) Add PHPDoc for `auto_advance` on `\Stripe\Invoice`
528
 
529
  ## 6.10.0 - 2018-06-28
530
+
531
+ - [#488](https://github.com/stripe/stripe-php/pull/488) Add support for `$appPartnerId` to `Stripe::setAppInfo()`
532
 
533
  ## 6.9.0 - 2018-06-28
534
+
535
+ - [#487](https://github.com/stripe/stripe-php/pull/487) Add support for payment intents
536
 
537
  ## 6.8.2 - 2018-06-24
538
+
539
+ - [#486](https://github.com/stripe/stripe-php/pull/486) Make `Account.deauthorize()` return the `StripeObject` from the API
540
 
541
  ## 6.8.1 - 2018-06-13
542
+
543
+ - [#472](https://github.com/stripe/stripe-php/pull/472) Added phpDoc for `ApiRequestor` and others, especially regarding thrown errors
544
 
545
  ## 6.8.0 - 2018-06-13
546
+
547
+ - [#481](https://github.com/stripe/stripe-php/pull/481) Add new `\Stripe\Discount` and `\Stripe\OrderItem` classes, add more PHPDoc describing object attributes
548
 
549
  ## 6.7.4 - 2018-05-29
550
+
551
+ - [#480](https://github.com/stripe/stripe-php/pull/480) PHPDoc changes for API version 2018-05-21 and the addition of the new `CHARGE_EXPIRED` event type
552
 
553
  ## 6.7.3 - 2018-05-28
554
+
555
+ - [#479](https://github.com/stripe/stripe-php/pull/479) Fix unnecessary traits on `\Stripe\InvoiceLineItem`
556
 
557
  ## 6.7.2 - 2018-05-28
558
+
559
+ - [#471](https://github.com/stripe/stripe-php/pull/471) Add `OBJECT_NAME` constant to all API resource classes, add `\Stripe\InvoiceLineItem` class
560
 
561
  ## 6.7.1 - 2018-05-13
562
+
563
+ - [#468](https://github.com/stripe/stripe-php/pull/468) Update fields in PHP docs for accuracy
564
 
565
  ## 6.7.0 - 2018-05-09
566
+
567
+ - [#466](https://github.com/stripe/stripe-php/pull/466) Add support for issuer fraud records
568
 
569
  ## 6.6.0 - 2018-04-11
570
+
571
+ - [#460](https://github.com/stripe/stripe-php/pull/460) Add support for flexible billing primitives
572
 
573
  ## 6.5.0 - 2018-04-05
574
+
575
+ - [#461](https://github.com/stripe/stripe-php/pull/461) Don't zero keys on non-`metadata` subobjects
576
 
577
  ## 6.4.2 - 2018-03-17
578
+
579
+ - [#458](https://github.com/stripe/stripe-php/pull/458) Add PHPDoc for `account` on `\Stripe\Event`
580
 
581
  ## 6.4.1 - 2018-03-02
582
+
583
+ - [#455](https://github.com/stripe/stripe-php/pull/455) Fix namespaces in PHPDoc
584
+ - [#456](https://github.com/stripe/stripe-php/pull/456) Fix namespaces for some exceptions
585
 
586
  ## 6.4.0 - 2018-02-28
587
+
588
+ - [#453](https://github.com/stripe/stripe-php/pull/453) Add constants for `reason` (`REASON_*`) and `status` (`STATUS_*`) on `\Stripe\Dispute`
589
 
590
  ## 6.3.2 - 2018-02-27
591
+
592
+ - [#452](https://github.com/stripe/stripe-php/pull/452) Add PHPDoc for `amount_paid` and `amount_remaining` on `\Stripe\Invoice`
593
 
594
  ## 6.3.1 - 2018-02-26
595
+
596
+ - [#443](https://github.com/stripe/stripe-php/pull/443) Add event types as constants to `\Stripe\Event` class
597
 
598
  ## 6.3.0 - 2018-02-23
599
+
600
+ - [#450](https://github.com/stripe/stripe-php/pull/450) Add support for `code` attribute on all Stripe exceptions
601
 
602
  ## 6.2.0 - 2018-02-21
603
+
604
+ - [#440](https://github.com/stripe/stripe-php/pull/440) Add support for topups
605
+ - [#442](https://github.com/stripe/stripe-php/pull/442) Fix PHPDoc for `\Stripe\Error\SignatureVerification`
606
 
607
  ## 6.1.0 - 2018-02-12
608
+
609
+ - [#435](https://github.com/stripe/stripe-php/pull/435) Fix header persistence on `Collection` objects
610
+ - [#436](https://github.com/stripe/stripe-php/pull/436) Introduce new `Idempotency` error class
611
 
612
  ## 6.0.0 - 2018-02-07
613
+
614
  Major version release. List of backwards incompatible changes to watch out for:
615
+
616
+ - The minimum PHP version is now 5.4.0. If you're using PHP 5.3 or older, consider upgrading to a more recent version.
617
+
618
+ * `\Stripe\AttachedObject` no longer exists. Attributes that used to be instances of `\Stripe\AttachedObject` (such as `metadata`) are now instances of `\Stripe\StripeObject`.
619
+
620
+ - Attributes that used to be PHP arrays (such as `legal_entity->additional_owners` on `\Stripe\Account` instances) are now instances of `\Stripe\StripeObject`, except when they are empty. `\Stripe\StripeObject` has array semantics so this should not be an issue unless you are actively checking types.
621
+
622
+ * `\Stripe\Collection` now derives from `\Stripe\StripeObject` rather than from `\Stripe\ApiResource`.
623
 
624
  Pull requests included in this release:
625
+
626
+ - [#410](https://github.com/stripe/stripe-php/pull/410) Drop support for PHP 5.3
627
+ - [#411](https://github.com/stripe/stripe-php/pull/411) Use traits for common API operations
628
+ - [#414](https://github.com/stripe/stripe-php/pull/414) Use short array syntax
629
+ - [#404](https://github.com/stripe/stripe-php/pull/404) Fix serialization logic
630
+ - [#417](https://github.com/stripe/stripe-php/pull/417) Remove `ExternalAccount` class
631
+ - [#418](https://github.com/stripe/stripe-php/pull/418) Increase test coverage
632
+ - [#421](https://github.com/stripe/stripe-php/pull/421) Update CA bundle and add script for future updates
633
+ - [#422](https://github.com/stripe/stripe-php/pull/422) Use vendored CA bundle for all requests
634
+ - [#428](https://github.com/stripe/stripe-php/pull/428) Support for automatic request retries
635
 
636
  ## 5.9.2 - 2018-02-07
637
+
638
+ - [#431](https://github.com/stripe/stripe-php/pull/431) Update PHPDoc @property tags for latest API version
639
 
640
  ## 5.9.1 - 2018-02-06
641
+
642
+ - [#427](https://github.com/stripe/stripe-php/pull/427) Add and update PHPDoc @property tags on all API resources
643
 
644
  ## 5.9.0 - 2018-01-17
645
+
646
+ - [#421](https://github.com/stripe/stripe-php/pull/421) Updated bundled CA certificates
647
+ - [#423](https://github.com/stripe/stripe-php/pull/423) Escape unsanitized input in OAuth example
648
 
649
  ## 5.8.0 - 2017-12-20
650
+
651
+ - [#403](https://github.com/stripe/stripe-php/pull/403) Add `__debugInfo()` magic method to `StripeObject`
652
 
653
  ## 5.7.0 - 2017-11-28
654
+
655
+ - [#390](https://github.com/stripe/stripe-php/pull/390) Remove some unsupported API methods
656
+ - [#391](https://github.com/stripe/stripe-php/pull/391) Alphabetize the list of API resources in `Util::convertToStripeObject()` and add missing resources
657
+ - [#393](https://github.com/stripe/stripe-php/pull/393) Fix expiry date update for card sources
658
 
659
  ## 5.6.0 - 2017-10-31
660
+
661
+ - [#386](https://github.com/stripe/stripe-php/pull/386) Support for exchange rates APIs
662
 
663
  ## 5.5.1 - 2017-10-30
664
+
665
+ - [#387](https://github.com/stripe/stripe-php/pull/387) Allow `personal_address_kana` and `personal_address_kanji` to be updated on an account
666
 
667
  ## 5.5.0 - 2017-10-27
668
+
669
+ - [#385](https://github.com/stripe/stripe-php/pull/385) Support for listing source transactions
670
 
671
  ## 5.4.0 - 2017-10-24
672
+
673
+ - [#383](https://github.com/stripe/stripe-php/pull/383) Add static methods to manipulate resources from parent
674
+ - `Account` gains methods for external accounts and login links (e.g. `createExternalAccount`, `createLoginLink`)
675
+ - `ApplicationFee` gains methods for refunds
676
+ - `Customer` gains methods for sources
677
+ - `Transfer` gains methods for reversals
678
 
679
  ## 5.3.0 - 2017-10-11
680
+
681
+ - [#378](https://github.com/stripe/stripe-php/pull/378) Rename source `delete` to `detach` (and deprecate the former)
682
 
683
  ## 5.2.3 - 2017-09-27
684
+
685
+ - Add PHPDoc for `Card`
686
 
687
  ## 5.2.2 - 2017-09-20
688
+
689
+ - Fix deserialization mapping of `FileUpload` objects
690
 
691
  ## 5.2.1 - 2017-09-14
692
+
693
+ - Serialized `shipping` nested attribute
694
 
695
  ## 5.2.0 - 2017-08-29
696
+
697
+ - Add support for `InvalidClient` OAuth error
698
 
699
  ## 5.1.3 - 2017-08-14
700
+
701
+ - Allow `address_kana` and `address_kanji` to be updated for custom accounts
702
 
703
  ## 5.1.2 - 2017-08-01
704
+
705
+ - Fix documented return type of `autoPagingIterator()` (was missing namespace)
706
 
707
  ## 5.1.1 - 2017-07-03
708
+
709
+ - Fix order returns to use the right URL `/v1/order_returns`
710
 
711
  ## 5.1.0 - 2017-06-30
712
+
713
+ - Add support for OAuth
714
 
715
  ## 5.0.0 - 2017-06-27
716
+
717
+ - `pay` on invoice now takes params as well as opts
718
 
719
  ## 4.13.0 - 2017-06-19
720
+
721
+ - Add support for ephemeral keys
722
 
723
  ## 4.12.0 - 2017-06-05
724
+
725
+ - Clients can implement `getUserAgentInfo()` to add additional user agent information
726
 
727
  ## 4.11.0 - 2017-06-05
728
+
729
+ - Implement `Countable` for `AttachedObject` (`metadata` and `additional_owners`)
730
 
731
  ## 4.10.0 - 2017-05-25
732
+
733
+ - Add support for login links
734
 
735
  ## 4.9.1 - 2017-05-10
736
+
737
+ - Fix docs to include arrays on `$id` parameter for retrieve methods
738
 
739
  ## 4.9.0 - 2017-04-28
740
+
741
+ - Support for checking webhook signatures
742
 
743
  ## 4.8.1 - 2017-04-24
744
+
745
+ - Allow nested field `payout_schedule` to be updated
746
 
747
  ## 4.8.0 - 2017-04-20
748
+
749
+ - Add `\Stripe\Stripe::setLogger()` to support an external PSR-3 compatible logger
750
 
751
  ## 4.7.0 - 2017-04-10
752
+
753
+ - Add support for payouts and recipient transfers
754
 
755
  ## 4.6.0 - 2017-04-06
756
+
757
+ - Please see 4.7.0 instead (no-op release)
758
 
759
  ## 4.5.1 - 2017-03-22
760
+
761
+ - Remove hard dependency on cURL
762
 
763
  ## 4.5.0 - 2017-03-20
764
+
765
+ - Support for detaching sources from customers
766
 
767
  ## 4.4.2 - 2017-02-27
768
+
769
+ - Correct handling of `owner` parameter when updating sources
770
 
771
  ## 4.4.1 - 2017-02-24
772
+
773
+ - Correct the error check on a bad JSON decoding
774
 
775
  ## 4.4.0 - 2017-01-18
776
+
777
+ - Add support for updating sources
778
 
779
  ## 4.3.0 - 2016-11-30
780
+
781
+ - Add support for verifying sources
782
 
783
  ## 4.2.0 - 2016-11-21
784
+
785
+ - Add retrieve method for 3-D Secure resources
786
 
787
  ## 4.1.1 - 2016-10-21
788
+
789
+ - Add docblock with model properties for `Plan`
790
 
791
  ## 4.1.0 - 2016-10-18
792
+
793
+ - Support for 403 status codes (permission denied)
794
 
795
  ## 4.0.1 - 2016-10-17
796
+
797
+ - Fix transfer reversal materialization
798
+ - Fixes for some property definitions in docblocks
799
 
800
  ## 4.0.0 - 2016-09-28
801
+
802
+ - Support for subscription items
803
+ - Drop attempt to force TLS 1.2: please note that this could be breaking if you're using old OS distributions or packages and upgraded recently (so please make sure to test your integration!)
804
 
805
  ## 3.23.0 - 2016-09-15
806
+
807
+ - Add support for Apple Pay domains
808
 
809
  ## 3.22.0 - 2016-09-13
810
+
811
+ - Add `Stripe::setAppInfo` to allow plugins to register user agent information
812
 
813
  ## 3.21.0 - 2016-08-25
814
+
815
+ - Add `Source` model for generic payment sources
816
 
817
  ## 3.20.0 - 2016-08-08
818
+
819
+ - Add `getDeclineCode` to card errors
820
 
821
  ## 3.19.0 - 2016-07-29
822
+
823
+ - Opt requests directly into TLS 1.2 where OpenSSL >= 1.0.1 (see #277 for context)
824
 
825
  ## 3.18.0 - 2016-07-28
826
+
827
+ - Add new `STATUS_` constants for subscriptions
828
 
829
  ## 3.17.1 - 2016-07-28
830
+
831
+ - Fix auto-paging iterator so that it plays nicely with `iterator_to_array`
832
 
833
  ## 3.17.0 - 2016-07-14
834
+
835
+ - Add field annotations to model classes for better editor hinting
836
 
837
  ## 3.16.0 - 2016-07-12
838
+
839
+ - Add `ThreeDSecure` model for 3-D secure payments
840
 
841
  ## 3.15.0 - 2016-06-29
842
+
843
+ - Add static `update` method to all resources that can be changed.
844
 
845
  ## 3.14.3 - 2016-06-20
846
+
847
+ - Make sure that cURL never sends `Expects: 100-continue`, even on large request bodies
848
 
849
  ## 3.14.2 - 2016-06-03
850
+
851
+ - Add `inventory` under `SKU` to list of keys that have nested data and can be updated
852
 
853
  ## 3.14.1 - 2016-05-27
854
+
855
+ - Fix some inconsistencies in PHPDoc
856
 
857
  ## 3.14.0 - 2016-05-25
858
+
859
+ - Add support for returning Relay orders
860
 
861
  ## 3.13.0 - 2016-05-04
862
+
863
+ - Add `list`, `create`, `update`, `retrieve`, and `delete` methods to the Subscription class
864
 
865
  ## 3.12.1 - 2016-04-07
866
+
867
+ - Additional check on value arrays for some extra safety
868
 
869
  ## 3.12.0 - 2016-03-31
870
+
871
+ - Fix bug `refreshFrom` on `StripeObject` would not take an `$opts` array
872
+ - Fix bug where `$opts` not passed to parent `save` method in `Account`
873
+ - Fix bug where non-existent variable was referenced in `reverse` in `Transfer`
874
+ - Update CA cert bundle for compatibility with OpenSSL versions below 1.0.1
875
 
876
  ## 3.11.0 - 2016-03-22
877
+
878
+ - Allow `CurlClient` to be initialized with default `CURLOPT_*` options
879
 
880
  ## 3.10.1 - 2016-03-22
881
+
882
+ - Fix bug where request params and options were ignored in `ApplicationFee`'s `refund.`
883
 
884
  ## 3.10.0 - 2016-03-15
885
+
886
+ - Add `reject` on `Account` to support the new API feature
887
 
888
  ## 3.9.2 - 2016-03-04
889
+
890
+ - Fix error when an object's metadata is set more than once
891
 
892
  ## 3.9.1 - 2016-02-24
893
+
894
+ - Fix encoding behavior of nested arrays for requests (see #227)
895
 
896
  ## 3.9.0 - 2016-02-09
897
+
898
+ - Add automatic pagination mechanism with `autoPagingIterator()`
899
+ - Allow global account ID to be set with `Stripe::setAccountId()`
900
 
901
  ## 3.8.0 - 2016-02-08
902
+
903
+ - Add `CountrySpec` model for looking up country payment information
904
 
905
  ## 3.7.1 - 2016-02-01
906
+
907
+ - Update bundled CA certs
908
 
909
  ## 3.7.0 - 2016-01-27
910
+
911
+ - Support deleting Relay products and SKUs
912
 
913
  ## 3.6.0 - 2016-01-05
914
+
915
+ - Allow configuration of HTTP client timeouts
916
 
917
  ## 3.5.0 - 2015-12-01
918
+
919
+ - Add a verification routine for external accounts
920
 
921
  ## 3.4.0 - 2015-09-14
922
+
923
+ - Products, SKUs, and Orders -- https://stripe.com/relay
924
 
925
  ## 3.3.0 - 2015-09-11
926
+
927
+ - Add support for 429 Rate Limit response
928
 
929
  ## 3.2.0 - 2015-08-17
930
+
931
+ - Add refund listing and retrieval without an associated charge
932
 
933
  ## 3.1.0 - 2015-08-03
934
+
935
+ - Add dispute listing and retrieval
936
+ - Add support for manage account deletion
937
 
938
  ## 3.0.0 - 2015-07-28
939
+
940
+ - Rename `\Stripe\Object` to `\Stripe\StripeObject` (PHP 7 compatibility)
941
+ - Rename `getCode` and `getParam` in exceptions to `getStripeCode` and `getStripeParam`
942
+ - Add support for calling `json_encode` on Stripe objects in PHP 5.4+
943
+ - Start supporting/testing PHP 7
944
 
945
  ## 2.3.0 - 2015-07-06
946
+
947
+ - Add request ID to all Stripe exceptions
948
 
949
  ## 2.2.0 - 2015-06-01
950
+
951
+ - Add support for Alipay accounts as sources
952
+ - Add support for bank accounts as sources (private beta)
953
+ - Add support for bank accounts and cards as external_accounts on Account objects
954
 
955
  ## 2.1.4 - 2015-05-13
956
+
957
+ - Fix CA certificate file path (thanks @lphilps & @matthewarkin)
958
 
959
  ## 2.1.3 - 2015-05-12
960
+
961
+ - Fix to account updating to permit `tos_acceptance` and `personal_address` to be set properly
962
+ - Fix to Transfer reversal creation (thanks @neatness!)
963
+ - Network requests are now done through a swappable class for easier mocking
964
 
965
  ## 2.1.2 - 2015-04-10
966
+
967
+ - Remove SSL cert revokation checking (all pre-Heartbleed certs have expired)
968
+ - Bug fixes to account updating
969
 
970
  ## 2.1.1 - 2015-02-27
971
+
972
+ - Support transfer reversals
973
 
974
  ## 2.1.0 - 2015-02-19
975
+
976
+ - Support new API version (2015-02-18)
977
+ - Added Bitcoin Receiever update and delete actions
978
+ - Edited tests to prefer "source" over "card" as per new API version
979
 
980
  ## 2.0.1 - 2015-02-16
981
+
982
+ - Fix to fetching endpoints that use a non-default baseUrl (`FileUpload`)
983
 
984
  ## 2.0.0 - 2015-02-14
985
+
986
+ - Bumped minimum version to 5.3.3
987
+ - Switched to Stripe namespace instead of Stripe\_ class name prefiexes (thanks @chadicus!)
988
+ - Switched tests to PHPUnit (thanks @chadicus!)
989
+ - Switched style guide to PSR2 (thanks @chadicus!)
990
+ - Added \$opts hash to the end of most methods: this permits passing 'idempotency_key', 'stripe_account', or 'stripe_version'. The last 2 will persist across multiple object loads.
991
+ - Added support for retrieving Account by ID
992
 
993
  ## 1.18.0 - 2015-01-21
994
+
995
+ - Support making bitcoin charges through BitcoinReceiver source object
996
 
997
  ## 1.17.5 - 2014-12-23
998
+
999
+ - Adding support for creating file uploads.
1000
 
1001
  ## 1.17.4 - 2014-12-15
1002
+
1003
+ - Saving objects fetched with a custom key now works (thanks @JustinHook & @jpasilan)
1004
+ - Added methods for reporting charges as safe or fraudulent and for specifying the reason for refunds
1005
 
1006
  ## 1.17.3 - 2014-11-06
1007
+
1008
+ - Better handling of HHVM support for SSL certificate blacklist checking.
1009
 
1010
  ## 1.17.2 - 2014-09-23
1011
+
1012
+ - Coupons now are backed by a `Stripe_Coupon` instead of `Stripe_Object`, and support updating metadata
1013
+ - Running operations (`create`, `retrieve`, `all`) on upcoming invoice items now works
1014
 
1015
  ## 1.17.1 - 2014-07-31
1016
+
1017
+ - Requests now send Content-Type header
1018
 
1019
  ## 1.17.0 - 2014-07-29
1020
+
1021
+ - Application Fee refunds now a list instead of array
1022
+ - HHVM now works
1023
+ - Small bug fixes (thanks @bencromwell & @fastest963)
1024
+ - `__toString` now returns the name of the object in addition to its JSON representation
1025
 
1026
  ## 1.16.0 - 2014-06-17
1027
+
1028
+ - Add metadata for refunds and disputes
1029
 
1030
  ## 1.15.0 - 2014-05-28
1031
+
1032
+ - Support canceling transfers
1033
 
1034
  ## 1.14.1 - 2014-05-21
1035
+
1036
+ - Support cards for recipients.
1037
 
1038
  ## 1.13.1 - 2014-05-15
1039
+
1040
+ - Fix bug in account resource where `id` wasn't in the result
1041
 
1042
  ## 1.13.0 - 2014-04-10
1043
+
1044
+ - Add support for certificate blacklisting
1045
+ - Update ca bundle
1046
+ - Drop support for HHVM (Temporarily)
1047
 
1048
  ## 1.12.0 - 2014-04-01
1049
+
1050
+ - Add Stripe_RateLimitError for catching rate limit errors.
1051
+ - Update to Zend coding style (thanks, @jpiasetz)
1052
 
1053
  ## 1.11.0 - 2014-01-29
1054
+
1055
+ - Add support for multiple subscriptions per customer
1056
 
1057
  ## 1.10.1 - 2013-12-02
1058
+
1059
+ - Add new ApplicationFee
1060
 
1061
  ## 1.9.1 - 2013-11-08
1062
+
1063
+ - Fix a bug where a null nestable object causes warnings to fire.
1064
 
1065
  ## 1.9.0 - 2013-10-16
1066
+
1067
+ - Add support for metadata API.
1068
 
1069
  ## 1.8.4 - 2013-09-18
1070
+
1071
+ - Add support for closing disputes.
1072
 
1073
  ## 1.8.3 - 2013-08-13
1074
+
1075
+ - Add new Balance and BalanceTransaction
1076
 
1077
  ## 1.8.2 - 2013-08-12
1078
+
1079
+ - Add support for unsetting attributes by updating to NULL. Setting properties to a blank string is now an error.
1080
 
1081
  ## 1.8.1 - 2013-07-12
1082
+
1083
+ - Add support for multiple cards API (Stripe API version 2013-07-12: https://stripe.com/docs/upgrades#2013-07-05)
1084
 
1085
  ## 1.8.0 - 2013-04-11
1086
+
1087
+ - Allow Transfers to be creatable
1088
+ - Add new Recipient resource
1089
 
1090
  ## 1.7.15 - 2013-02-21
1091
+
1092
+ - Add 'id' to the list of permanent object attributes
1093
 
1094
  ## 1.7.14 - 2013-02-20
1095
 
1096
+ - Don't re-encode strings that are already encoded in UTF-8. If you were previously using plan or coupon objects with UTF-8 IDs, they may have been treated as ISO-8859-1 (Latin-1) and encoded to UTF-8 a 2nd time. You may now need to pass the IDs to utf8_encode before passing them to Stripe_Plan::retrieve or Stripe_Coupon::retrieve.
1097
+ - Ensure that all input is encoded in UTF-8 before submitting it to Stripe's servers. (github issue #27)
1098
 
1099
  ## 1.7.13 - 2013-02-01
1100
+
1101
+ - Add support for passing options when retrieving Stripe objects e.g., Stripe_Charge::retrieve(array("id"=>"foo", "expand" => array("customer"))); Stripe_Charge::retrieve("foo") will continue to work
1102
 
1103
  ## 1.7.12 - 2013-01-15
1104
+
1105
+ - Add support for setting a Stripe API version override
1106
 
1107
  ## 1.7.11 - 2012-12-30
1108
+
1109
+ - Version bump to cleanup constants and such (fix issue #26)
1110
 
1111
  ## 1.7.10 - 2012-11-08
1112
+
1113
+ - Add support for updating charge disputes.
1114
+ - Fix bug preventing retrieval of null attributes
1115
 
1116
  ## 1.7.9 - 2012-11-08
1117
+
1118
+ - Fix usage under autoloaders such as the one generated by composer (fix issue #22)
1119
 
1120
  ## 1.7.8 - 2012-10-30
1121
+
1122
+ - Add support for creating invoices.
1123
+ - Add support for new invoice lines return format
1124
+ - Add support for new list objects
1125
 
1126
  ## 1.7.7 - 2012-09-14
1127
+
1128
+ - Get all of the various version numbers in the repo in sync (no other changes)
1129
 
1130
  ## 1.7.6 - 2012-08-31
1131
+
1132
+ - Add update and pay methods to Invoice resource
1133
 
1134
  ## 1.7.5 - 2012-08-23
1135
+
1136
+ - Change internal function names so that Stripe_SingletonApiRequest is E_STRICT-clean (github issue #16)
1137
 
1138
  ## 1.7.4 - 2012-08-21
1139
+
1140
+ - Bugfix so that Stripe objects (e.g. Customer, Charge objects) used in API calls are transparently converted to their object IDs
1141
 
1142
  ## 1.7.3 - 2012-08-15
1143
+
1144
+ - Add new Account resource
1145
 
1146
  ## 1.7.2 - 2012-06-26
1147
+
1148
+ - Make clearer that you should be including lib/Stripe.php, not test/Stripe.php (github issue #14)
1149
 
1150
  ## 1.7.1 - 2012-05-24
1151
+
1152
+ - Add missing argument to Stripe_InvalidRequestError constructor in Stripe_ApiResource::instanceUrl. Fixes a warning when Stripe_ApiResource::instanceUrl is called on a resource with no ID (fix issue #12)
1153
 
1154
  ## 1.7.0 - 2012-05-17
1155
+
1156
+ - Support Composer and Packagist (github issue #9)
1157
+ - Add new deleteDiscount method to Stripe_Customer
1158
+ - Add new Transfer resource
1159
+ - Switch from using HTTP Basic auth to Bearer auth. (Note: Stripe will support Basic auth for the indefinite future, but recommends Bearer auth when possible going forward)
1160
+ - Numerous test suite improvements
lib/stripe-gateway/CODE_OF_CONDUCT.md ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to make participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, sex characteristics, gender identity and expression,
9
+ level of experience, education, socio-economic status, nationality, personal
10
+ appearance, race, religion, or sexual identity and orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies within all project spaces, and it also applies when
49
+ an individual is representing the project or its community in public spaces.
50
+ Examples of representing a project or community include using an official
51
+ project e-mail address, posting via an official social media account, or acting
52
+ as an appointed representative at an online or offline event. Representation of
53
+ a project may be further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at conduct@stripe.com. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72
+
73
+ [homepage]: https://www.contributor-covenant.org
74
+
75
+ For answers to common questions about this code of conduct, see
76
+ https://www.contributor-covenant.org/faq
77
+
lib/stripe-gateway/Makefile ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ export PHPDOCUMENTOR_VERSION := v3.0.0-rc
2
+ export PHPSTAN_VERSION := 0.12.18
3
+
4
+ vendor: composer.json
5
+ composer install
6
+
7
+ vendor/bin/phpstan: vendor
8
+ curl -sfL https://github.com/phpstan/phpstan/releases/download/$(PHPSTAN_VERSION)/phpstan.phar -o vendor/bin/phpstan
9
+ chmod +x vendor/bin/phpstan
10
+
11
+ vendor/bin/phpdoc: vendor
12
+ curl -sfL https://github.com/phpDocumentor/phpDocumentor/releases/download/$(PHPDOCUMENTOR_VERSION)/phpDocumentor.phar -o vendor/bin/phpdoc
13
+ chmod +x vendor/bin/phpdoc
14
+
15
+ test: vendor
16
+ vendor/bin/phpunit
17
+ .PHONY: test
18
+
19
+ fmt: vendor
20
+ vendor/bin/php-cs-fixer fix -v --using-cache=no .
21
+ .PHONY: fmt
22
+
23
+ fmtcheck: vendor
24
+ vendor/bin/php-cs-fixer fix -v --dry-run --using-cache=no .
25
+ .PHONY: fmtcheck
26
+
27
+ phpdoc: vendor/bin/phpdoc
28
+ vendor/bin/phpdoc
29
+
30
+ phpstan: vendor/bin/phpstan
31
+ php -d memory_limit=512M vendor/bin/phpstan analyse lib tests
32
+ .PHONY: phpstan
33
+
34
+ phpstan-baseline: vendor/bin/phpstan
35
+ php -d memory_limit=512M vendor/bin/phpstan analyse lib tests --generate-baseline
36
+ .PHONY: phpstan-baseline
lib/stripe-gateway/README.md CHANGED
@@ -14,7 +14,7 @@ API.
14
 
15
  ## Requirements
16
 
17
- PHP 5.4.0 and later.
18
 
19
  ## Composer
20
 
@@ -42,9 +42,9 @@ require_once('/path/to/stripe-php/init.php');
42
 
43
  The bindings require the following extensions in order to work properly:
44
 
45
- - [`curl`](https://secure.php.net/manual/en/book.curl.php), although you can use your own non-cURL client if you prefer
46
- - [`json`](https://secure.php.net/manual/en/book.json.php)
47
- - [`mbstring`](https://secure.php.net/manual/en/book.mbstring.php) (Multibyte String)
48
 
49
  If you use Composer, these dependencies should be handled automatically. If you install manually, you'll want to make sure that these extensions are available.
50
 
@@ -54,8 +54,12 @@ Simple usage looks like:
54
 
55
  ```php
56
  \Stripe\Stripe::setApiKey('sk_test_BQokikJOvBiI2HlWgH4olfQ2');
57
- $charge = \Stripe\Charge::create(['amount' => 2000, 'currency' => 'usd', 'source' => 'tok_189fqt2eZvKYlo2CTGBeg6Uq']);
58
- echo $charge;
 
 
 
 
59
  ```
60
 
61
  ## Documentation
@@ -64,25 +68,17 @@ See the [PHP API docs](https://stripe.com/docs/api/php#intro).
64
 
65
  ## Legacy Version Support
66
 
67
- ### PHP 5.3
68
-
69
- If you are using PHP 5.3, you can download v5.9.2 ([zip](https://github.com/stripe/stripe-php/archive/v5.9.2.zip), [tar.gz](https://github.com/stripe/stripe-php/archive/v5.9.2.tar.gz)) from our [releases page](https://github.com/stripe/stripe-php/releases). This version will continue to work with new versions of the Stripe API for all common uses.
70
-
71
- ### PHP 5.2
72
 
73
- If you are using PHP 5.2, you can download v1.18.0 ([zip](https://github.com/stripe/stripe-php/archive/v1.18.0.zip), [tar.gz](https://github.com/stripe/stripe-php/archive/v1.18.0.tar.gz)) from our [releases page](https://github.com/stripe/stripe-php/releases). This version will continue to work with new versions of the Stripe API for all common uses.
74
 
75
- This legacy version may be included via `require_once("/path/to/stripe-php/lib/Stripe.php");`, and used like:
76
 
77
- ```php
78
- Stripe::setApiKey('d8e8fca2dc0f896fd7cb4cb0031ba249');
79
- $charge = Stripe_Charge::create(array('source' => 'tok_XXXXXXXX', 'amount' => 2000, 'currency' => 'usd'));
80
- echo $charge;
81
- ```
82
 
83
  ## Custom Request Timeouts
84
 
85
- *NOTE:* We do not recommend decreasing the timeout for non-read-only calls (e.g. charge creation), since even if you locally timeout, the request on Stripe's side can still complete. If you are decreasing timeouts on these calls, make sure to use [idempotency tokens](https://stripe.com/docs/api/php#idempotent_requests) to avoid executing the same transaction twice as a result of timeout retry logic.
86
 
87
  To modify request timeouts (connect or total, in seconds) you'll need to tell the API client to use a CurlClient other than its default. You'll set the timeouts in that CurlClient.
88
 
@@ -129,8 +125,10 @@ end up there instead of `error_log`:
129
  You can access the data from the last API response on any object via `getLastResponse()`.
130
 
131
  ```php
132
- $charge = \Stripe\Charge::create(['amount' => 2000, 'currency' => 'usd', 'source' => 'tok_visa']);
133
- echo $charge->getLastResponse()->headers['Request-Id'];
 
 
134
  ```
135
 
136
  ### SSL / TLS compatibility issues
@@ -151,12 +149,12 @@ one that uses [Stripe Connect][connect], it's also possible to set a
151
  per-request key and/or account:
152
 
153
  ```php
154
- \Stripe\Charge::all([], [
155
  'api_key' => 'sk_test_...',
156
  'stripe_account' => 'acct_...'
157
  ]);
158
 
159
- \Stripe\Charge::retrieve("ch_18atAXCdGbJFKhCuBAa4532Z", [
160
  'api_key' => 'sk_test_...',
161
  'stripe_account' => 'acct_...'
162
  ]);
@@ -235,6 +233,12 @@ Update bundled CA certificates from the [Mozilla cURL release][curl]:
235
  ./update_certs.php
236
  ```
237
 
 
 
 
 
 
 
238
  ## Attention plugin developers
239
 
240
  Are you writing a plugin that integrates Stripe and embeds our library? Then please use the `setAppInfo` function to identify your plugin. For example:
@@ -252,6 +256,7 @@ See the "SSL / TLS compatibility issues" paragraph above for full context. If yo
252
  [composer]: https://getcomposer.org/
253
  [connect]: https://stripe.com/connect
254
  [curl]: http://curl.haxx.se/docs/caextract.html
255
- [psr3]: http://www.php-fig.org/psr/psr-3/
256
  [idempotency-keys]: https://stripe.com/docs/api/php#idempotent_requests
 
 
257
  [stripe-mock]: https://github.com/stripe/stripe-mock
14
 
15
  ## Requirements
16
 
17
+ PHP 5.6.0 and later.
18
 
19
  ## Composer
20
 
42
 
43
  The bindings require the following extensions in order to work properly:
44
 
45
+ - [`curl`](https://secure.php.net/manual/en/book.curl.php), although you can use your own non-cURL client if you prefer
46
+ - [`json`](https://secure.php.net/manual/en/book.json.php)
47
+ - [`mbstring`](https://secure.php.net/manual/en/book.mbstring.php) (Multibyte String)
48
 
49
  If you use Composer, these dependencies should be handled automatically. If you install manually, you'll want to make sure that these extensions are available.
50
 
54
 
55
  ```php
56
  \Stripe\Stripe::setApiKey('sk_test_BQokikJOvBiI2HlWgH4olfQ2');
57
+ $customer = \Stripe\Customer::create([
58
+ 'description' => 'example customer',
59
+ 'email' => 'email@example.com',
60
+ 'payment_method' => 'pm_card_visa',
61
+ ]);
62
+ echo $customer;
63
  ```
64
 
65
  ## Documentation
68
 
69
  ## Legacy Version Support
70
 
71
+ ### PHP 5.4 & 5.5
 
 
 
 
72
 
73
+ If you are using PHP 5.4 or 5.5, you can download v6.21.1 ([zip](https://github.com/stripe/stripe-php/archive/v6.21.1.zip), [tar.gz](https://github.com/stripe/stripe-php/archive/v5.9.2.tar.gz)) from our [releases page](https://github.com/stripe/stripe-php/releases). This version will continue to work with new versions of the Stripe API for all common uses.
74
 
75
+ ### PHP 5.3
76
 
77
+ If you are using PHP 5.3, you can download v5.9.2 ([zip](https://github.com/stripe/stripe-php/archive/v5.9.2.zip), [tar.gz](https://github.com/stripe/stripe-php/archive/v5.9.2.tar.gz)) from our [releases page](https://github.com/stripe/stripe-php/releases). This version will continue to work with new versions of the Stripe API for all common uses.
 
 
 
 
78
 
79
  ## Custom Request Timeouts
80
 
81
+ _NOTE:_ We do not recommend decreasing the timeout for non-read-only calls (e.g. charge creation), since even if you locally timeout, the request on Stripe's side can still complete. If you are decreasing timeouts on these calls, make sure to use [idempotency tokens](https://stripe.com/docs/api/php#idempotent_requests) to avoid executing the same transaction twice as a result of timeout retry logic.
82
 
83
  To modify request timeouts (connect or total, in seconds) you'll need to tell the API client to use a CurlClient other than its default. You'll set the timeouts in that CurlClient.
84
 
125
  You can access the data from the last API response on any object via `getLastResponse()`.
126
 
127
  ```php
128
+ $customer = \Stripe\Customer::create([
129
+ 'description' => 'example customer',
130
+ ]);
131
+ echo $customer->getLastResponse()->headers['Request-Id'];
132
  ```
133
 
134
  ### SSL / TLS compatibility issues
149
  per-request key and/or account:
150
 
151
  ```php
152
+ $customers = \Stripe\Customer::all([],[
153
  'api_key' => 'sk_test_...',
154
  'stripe_account' => 'acct_...'
155
  ]);
156
 
157
+ \Stripe\Customer::retrieve("cus_123456789", [
158
  'api_key' => 'sk_test_...',
159
  'stripe_account' => 'acct_...'
160
  ]);
233
  ./update_certs.php
234
  ```
235
 
236
+ The library uses [PHP CS Fixer][php-cs-fixer] for code formatting. Code must be formatted before PRs are submitted, otherwise CI will fail. Run the formatter with:
237
+
238
+ ```bash
239
+ ./vendor/bin/php-cs-fixer fix -v .
240
+ ```
241
+
242
  ## Attention plugin developers
243
 
244
  Are you writing a plugin that integrates Stripe and embeds our library? Then please use the `setAppInfo` function to identify your plugin. For example:
256
  [composer]: https://getcomposer.org/
257
  [connect]: https://stripe.com/connect
258
  [curl]: http://curl.haxx.se/docs/caextract.html
 
259
  [idempotency-keys]: https://stripe.com/docs/api/php#idempotent_requests
260
+ [php-cs-fixer]: https://github.com/FriendsOfPHP/PHP-CS-Fixer
261
+ [psr3]: http://www.php-fig.org/psr/psr-3/
262
  [stripe-mock]: https://github.com/stripe/stripe-mock
lib/stripe-gateway/VERSION CHANGED
@@ -1 +1 @@
1
- 6.43.1
1
+ 7.28.1
lib/stripe-gateway/build.php CHANGED
@@ -1,36 +1,25 @@
1
  #!/usr/bin/env php
2
  <?php
3
- chdir(dirname(__FILE__));
4
 
5
- $autoload = (int)$argv[1];
6
  $returnStatus = null;
7
 
8
  if (!$autoload) {
9
  // Modify composer to not autoload Stripe
10
- $composer = json_decode(file_get_contents('composer.json'), true);
11
- unset($composer['autoload']);
12
- unset($composer['require-dev']['squizlabs/php_codesniffer']);
13
- file_put_contents('composer.json', json_encode($composer, JSON_PRETTY_PRINT));
14
- }
15
 
16
- passthru('composer update', $returnStatus);
17
- if ($returnStatus !== 0) {
18
- exit(1);
19
  }
20
 
21
- if ($autoload) {
22
- // Only run CS on 1 of the 2 environments
23
- passthru(
24
- './vendor/bin/phpcs --standard=PSR2 -n lib tests *.php',
25
- $returnStatus
26
- );
27
- if ($returnStatus !== 0) {
28
- exit(1);
29
- }
30
  }
31
 
32
  $config = $autoload ? 'phpunit.xml' : 'phpunit.no_autoload.xml';
33
- passthru("./vendor/bin/phpunit -c $config", $returnStatus);
34
- if ($returnStatus !== 0) {
35
  exit(1);
36
  }
1
  #!/usr/bin/env php
2
  <?php
3
+ \chdir(__DIR__);
4
 
5
+ $autoload = (int) $argv[1];
6
  $returnStatus = null;
7
 
8
  if (!$autoload) {
9
  // Modify composer to not autoload Stripe
10
+ $composer = \json_decode(\file_get_contents('composer.json'), true);
11
+ unset($composer['autoload'], $composer['autoload-dev']);
 
 
 
12
 
13
+ \file_put_contents('composer.json', \json_encode($composer, \JSON_PRETTY_PRINT));
 
 
14
  }
15
 
16
+ \passthru('composer update', $returnStatus);
17
+ if (0 !== $returnStatus) {
18
+ exit(1);
 
 
 
 
 
 
19
  }
20
 
21
  $config = $autoload ? 'phpunit.xml' : 'phpunit.no_autoload.xml';
22
+ \passthru("./vendor/bin/phpunit -c {$config}", $returnStatus);
23
+ if (0 !== $returnStatus) {
24
  exit(1);
25
  }
lib/stripe-gateway/composer.json CHANGED
@@ -15,19 +15,30 @@
15
  }
16
  ],
17
  "require": {
18
- "php": ">=5.4.0",
19
  "ext-curl": "*",
20
  "ext-json": "*",
21
  "ext-mbstring": "*"
22
  },
23
  "require-dev": {
24
- "phpunit/phpunit": "~4.0",
25
- "php-coveralls/php-coveralls": "1.*",
26
- "squizlabs/php_codesniffer": "~2.0",
27
- "symfony/process": "~2.8"
 
28
  },
29
  "autoload": {
30
- "psr-4": { "Stripe\\" : "lib/" }
 
 
 
 
 
 
 
 
 
 
31
  },
32
  "extra": {
33
  "branch-alias": {
15
  }
16
  ],
17
  "require": {
18
+ "php": ">=5.6.0",
19
  "ext-curl": "*",
20
  "ext-json": "*",
21
  "ext-mbstring": "*"
22
  },
23
  "require-dev": {
24
+ "phpunit/phpunit": "^5.7",
25
+ "php-coveralls/php-coveralls": "^2.1",
26
+ "squizlabs/php_codesniffer": "^3.3",
27
+ "symfony/process": "~3.4",
28
+ "friendsofphp/php-cs-fixer": "^2.15"
29
  },
30
  "autoload": {
31
+ "psr-4": {
32
+ "Stripe\\": "lib/"
33
+ }
34
+ },
35
+ "autoload-dev": {
36
+ "psr-4": {
37
+ "Stripe\\": [
38
+ "tests/",
39
+ "tests/Stripe/"
40
+ ]
41
+ }
42
  },
43
  "extra": {
44
  "branch-alias": {
lib/stripe-gateway/data/ca-certificates.crt CHANGED
@@ -1,7 +1,7 @@
1
  ##
2
  ## Bundle of CA Root Certificates
3
  ##
4
- ## Certificate data from Mozilla as of: Wed Sep 20 03:12:05 2017 GMT
5
  ##
6
  ## This is a bundle of X.509 certificates of public Certificate Authorities
7
  ## (CA). These were automatically extracted from Mozilla's root certificates
@@ -14,7 +14,7 @@
14
  ## Just configure this file as the SSLCACertificateFile.
15
  ##
16
  ## Conversion done with mk-ca-bundle.pl version 1.27.
17
- ## SHA256: 2b2dbe5244e0047e088c597998883a913f6c5fffd1cb5c0fe5a368c8466cb2ec
18
  ##
19
 
20
 
@@ -261,47 +261,6 @@ gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm
261
  X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
262
  -----END CERTIFICATE-----
263
 
264
- Visa eCommerce Root
265
- ===================
266
- -----BEGIN CERTIFICATE-----
267
- MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG
268
- EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug
269
- QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2
270
- WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm
271
- VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
272
- bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL
273
- F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b
274
- RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0
275
- TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI
276
- /k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs
277
- GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG
278
- MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc
279
- CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW
280
- YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz
281
- zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu
282
- YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
283
- 398znM/jra6O1I7mT1GvFpLgXPYHDw==
284
- -----END CERTIFICATE-----
285
-
286
- Certum Root CA
287
- ==============
288
- -----BEGIN CERTIFICATE-----
289
- MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK
290
- ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla
291
- Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u
292
- by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x
293
- wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL
294
- kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ
295
- 89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K
296
- Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P
297
- NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
298
- hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+
299
- GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg
300
- GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/
301
- 0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS
302
- qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw==
303
- -----END CERTIFICATE-----
304
-
305
  Comodo AAA Services root
306
  ========================
307
  -----BEGIN CERTIFICATE-----
@@ -465,60 +424,6 @@ EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
465
  llpwrN9M
466
  -----END CERTIFICATE-----
467
 
468
- Camerfirma Chambers of Commerce Root
469
- ====================================
470
- -----BEGIN CERTIFICATE-----
471
- MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
472
- QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
473
- ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx
474
- NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp
475
- cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn
476
- MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC
477
- AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU
478
- xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH
479
- NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW
480
- DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV
481
- d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud
482
- EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v
483
- cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P
484
- AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh
485
- bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD
486
- VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
487
- aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi
488
- fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD
489
- L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN
490
- UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n
491
- ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1
492
- erfutGWaIZDgqtCYvDi1czyL+Nw=
493
- -----END CERTIFICATE-----
494
-
495
- Camerfirma Global Chambersign Root
496
- ==================================
497
- -----BEGIN CERTIFICATE-----
498
- MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
499
- QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
500
- ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx
501
- NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt
502
- YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg
503
- MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw
504
- ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J
505
- 1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O
506
- by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl
507
- 6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c
508
- 8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/
509
- BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j
510
- aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B
511
- Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj
512
- aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y
513
- ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
514
- bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA
515
- PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y
516
- gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ
517
- PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4
518
- IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
519
- t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
520
- -----END CERTIFICATE-----
521
-
522
  XRamp Global CA Root
523
  ====================
524
  -----BEGIN CERTIFICATE-----
@@ -591,47 +496,6 @@ KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
591
  QBFGmh95DmK/D5fs4C8fF5Q=
592
  -----END CERTIFICATE-----
593
 
594
- StartCom Certification Authority
595
- ================================
596
- -----BEGIN CERTIFICATE-----
597
- MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
598
- U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
599
- ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
600
- NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
601
- LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
602
- U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
603
- ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
604
- o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
605
- Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
606
- eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
607
- 2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
608
- 6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
609
- osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
610
- untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
611
- UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
612
- 37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
613
- FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0
614
- Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj
615
- YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH
616
- AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw
617
- Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg
618
- U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5
619
- LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl
620
- cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh
621
- cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT
622
- dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC
623
- AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh
624
- 3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm
625
- vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk
626
- fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3
627
- fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ
628
- EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
629
- yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl
630
- 1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/
631
- lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro
632
- g14=
633
- -----END CERTIFICATE-----
634
-
635
  Taiwan GRCA
636
  ===========
637
  -----BEGIN CERTIFICATE-----
@@ -770,30 +634,6 @@ RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
770
  fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
771
  -----END CERTIFICATE-----
772
 
773
- DST ACES CA X6
774
- ==============
775
- -----BEGIN CERTIFICATE-----
776
- MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG
777
- EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT
778
- MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha
779
- MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE
780
- CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC
781
- AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI
782
- DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa
783
- pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow
784
- GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy
785
- MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud
786
- EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu
787
- Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy
788
- dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU
789
- CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2
790
- 5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t
791
- Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
792
- nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs
793
- vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
794
- oKfN5XozNmr6mis=
795
- -----END CERTIFICATE-----
796
-
797
  SwissSign Gold CA - G2
798
  ======================
799
  -----BEGIN CERTIFICATE-----
@@ -1036,27 +876,6 @@ FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
1036
  U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
1037
  -----END CERTIFICATE-----
1038
 
1039
- Security Communication EV RootCA1
1040
- =================================
1041
- -----BEGIN CERTIFICATE-----
1042
- MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
1043
- U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh
1044
- dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE
1045
- BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl
1046
- Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
1047
- AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO
1048
- /VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX
1049
- WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z
1050
- ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4
1051
- bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK
1052
- 9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
1053
- SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm
1054
- iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG
1055
- Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW
1056
- mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW
1057
- T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
1058
- -----END CERTIFICATE-----
1059
-
1060
  OISTE WISeKey Global Root GA CA
1061
  ===============================
1062
  -----BEGIN CERTIFICATE-----
@@ -1177,34 +996,6 @@ sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD
1177
  BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw=
1178
  -----END CERTIFICATE-----
1179
 
1180
- 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
1181
- =============================================================================================================================
1182
- -----BEGIN CERTIFICATE-----
1183
- MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH
1184
- DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q
1185
- aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry
1186
- b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV
1187
- BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg
1188
- S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4
1189
- MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl
1190
- IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF
1191
- n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl
1192
- IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft
1193
- dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl
1194
- cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B
1195
- AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO
1196
- Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1
1197
- xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR
1198
- 6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
1199
- hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd
1200
- BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
1201
- MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4
1202
- N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT
1203
- y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh
1204
- LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M
1205
- dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
1206
- -----END CERTIFICATE-----
1207
-
1208
  certSIGN ROOT CA
1209
  ================
1210
  -----BEGIN CERTIFICATE-----
@@ -1452,37 +1243,6 @@ y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
1452
  lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
1453
  -----END CERTIFICATE-----
1454
 
1455
- ACEDICOM Root
1456
- =============
1457
- -----BEGIN CERTIFICATE-----
1458
- MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UEAwwNQUNFRElD
1459
- T00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMB4XDTA4
1460
- MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEWMBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoG
1461
- A1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEF
1462
- AAOCAg8AMIICCgKCAgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHk
1463
- WLn709gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7XBZXehuD
1464
- YAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5PGrjm6gSSrj0RuVFCPYew
1465
- MYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAKt0SdE3QrwqXrIhWYENiLxQSfHY9g5QYb
1466
- m8+5eaA9oiM/Qj9r+hwDezCNzmzAv+YbX79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbk
1467
- HQl/Sog4P75n/TSW9R28MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTT
1468
- xKJxqvQUfecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI2Sf2
1469
- 3EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyHK9caUPgn6C9D4zq9
1470
- 2Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEaeZAwUswdbxcJzbPEHXEUkFDWug/Fq
1471
- TYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz
1472
- 4SsrSbbXc6GqlPUB53NlTKxQMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU
1473
- 9QHnc2VMrFAwRAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv
1474
- bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWImfQwng4/F9tqg
1475
- aHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3gvoFNTPhNahXwOf9jU8/kzJP
1476
- eGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKeI6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1Pwk
1477
- zQSulgUV1qzOMPPKC8W64iLgpq0i5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1
1478
- ThCojz2GuHURwCRiipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oI
1479
- KiMnMCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZo5NjEFIq
1480
- nxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6zqylfDJKZ0DcMDQj3dcE
1481
- I2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacNGHk0vFQYXlPKNFHtRQrmjseCNj6nOGOp
1482
- MCwXEGCSn1WHElkQwg9naRHMTh5+Spqtr0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3o
1483
- tkYNbn5XOmeUwssfnHdKZ05phkOTOPu220+DkdRgfks+KzgHVZhepA==
1484
- -----END CERTIFICATE-----
1485
-
1486
  Microsec e-Szigno Root CA 2009
1487
  ==============================
1488
  -----BEGIN CERTIFICATE-----
@@ -1843,37 +1603,6 @@ Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
1843
  03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
1844
  -----END CERTIFICATE-----
1845
 
1846
- Certinomis - Autorité Racine
1847
- ============================
1848
- -----BEGIN CERTIFICATE-----
1849
- MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
1850
- Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg
1851
- LSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkG
1852
- A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYw
1853
- JAYDVQQDDB1DZXJ0aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQAD
1854
- ggIPADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jYF1AMnmHa
1855
- wE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N8y4oH3DfVS9O7cdxbwly
1856
- Lu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWerP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw
1857
- 2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92N
1858
- jMD2AR5vpTESOH2VwnHu7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9q
1859
- c1pkIuVC28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6lSTC
1860
- lrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1Enn1So2+WLhl+HPNb
1861
- xxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB0iSVL1N6aaLwD4ZFjliCK0wi1F6g
1862
- 530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql095gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna
1863
- 4NH4+ej9Uji29YnfAgMBAAGjWzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
1864
- A1UdDgQWBBQNjLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ
1865
- KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9sov3/4gbIOZ/x
1866
- WqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZMOH8oMDX/nyNTt7buFHAAQCva
1867
- R6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40
1868
- nJ+U8/aGH88bc62UeYdocMMzpXDn2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1B
1869
- CxMjidPJC+iKunqjo3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjv
1870
- JL1vnxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG5ERQL1TE
1871
- qkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWqpdEdnV1j6CTmNhTih60b
1872
- WfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZbdsLLO7XSAPCjDuGtbkD326C00EauFddE
1873
- wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/
1874
- vgt2Fl43N+bYdJeimUV5
1875
- -----END CERTIFICATE-----
1876
-
1877
  TWCA Root Certification Authority
1878
  =================================
1879
  -----BEGIN CERTIFICATE-----
@@ -2022,75 +1751,6 @@ l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl
2022
  iB6XzCGcKQENZetX2fNXlrtIzYE=
2023
  -----END CERTIFICATE-----
2024
 
2025
- StartCom Certification Authority
2026
- ================================
2027
- -----BEGIN CERTIFICATE-----
2028
- MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
2029
- U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
2030
- ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
2031
- NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
2032
- LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
2033
- U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
2034
- ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
2035
- o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
2036
- Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
2037
- eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
2038
- 2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
2039
- 6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
2040
- osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
2041
- untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
2042
- UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
2043
- 37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
2044
- VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ
2045
- Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0
2046
- dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu
2047
- c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv
2048
- bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0
2049
- aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0
2050
- aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t
2051
- L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG
2052
- cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5
2053
- fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm
2054
- N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN
2055
- Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T
2056
- tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX
2057
- e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA
2058
- 2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs
2059
- HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
2060
- JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib
2061
- D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8=
2062
- -----END CERTIFICATE-----
2063
-
2064
- StartCom Certification Authority G2
2065
- ===================================
2066
- -----BEGIN CERTIFICATE-----
2067
- MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
2068
- U3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
2069
- RzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UE
2070
- ChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3Jp
2071
- dHkgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8O
2072
- o1XJJZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsDvfOpL9HG
2073
- 4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnooD/Uefyf3lLE3PbfHkffi
2074
- Aez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/Q0kGi4xDuFby2X8hQxfqp0iVAXV16iul
2075
- Q5XqFYSdCI0mblWbq9zSOdIxHWDirMxWRST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbs
2076
- O+wmETRIjfaAKxojAuuKHDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8H
2077
- vKTlXcxNnw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM0D4L
2078
- nMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/iUUjXuG+v+E5+M5iS
2079
- FGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9Ha90OrInwMEePnWjFqmveiJdnxMa
2080
- z6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHgTuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8E
2081
- BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJ
2082
- KoZIhvcNAQELBQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K
2083
- 2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfXUfEpY9Z1zRbk
2084
- J4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl6/2o1PXWT6RbdejF0mCy2wl+
2085
- JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG
2086
- /+gyRr61M3Z3qAFdlsHB1b6uJcDJHgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTc
2087
- nIhT76IxW1hPkWLIwpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/Xld
2088
- blhYXzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5lIxKVCCIc
2089
- l85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoohdVddLHRDiBYmxOlsGOm
2090
- 7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulrso8uBtjRkcfGEvRM/TAXw8HaOFvjqerm
2091
- obp573PYtlNXLfbQ4ddI
2092
- -----END CERTIFICATE-----
2093
-
2094
  Buypass Class 2 Root CA
2095
  =======================
2096
  -----BEGIN CERTIFICATE-----
@@ -2197,31 +1857,6 @@ uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU
2197
  dcGWxZ0=
2198
  -----END CERTIFICATE-----
2199
 
2200
- TURKTRUST Certificate Services Provider Root 2007
2201
- =================================================
2202
- -----BEGIN CERTIFICATE-----
2203
- MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
2204
- bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
2205
- MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
2206
- QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X
2207
- DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl
2208
- a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN
2209
- BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
2210
- bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw
2211
- DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N
2212
- YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv
2213
- KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya
2214
- KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT
2215
- rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC
2216
- AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP
2217
- BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s
2218
- Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I
2219
- aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO
2220
- Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb
2221
- BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK
2222
- poRq0Tl9
2223
- -----END CERTIFICATE-----
2224
-
2225
  D-TRUST Root Class 3 CA 2 2009
2226
  ==============================
2227
  -----BEGIN CERTIFICATE-----
@@ -2271,84 +1906,6 @@ NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv
2271
  w9y4AyHqnxbxLFS1
2272
  -----END CERTIFICATE-----
2273
 
2274
- PSCProcert
2275
- ==========
2276
- -----BEGIN CERTIFICATE-----
2277
- MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1dG9yaWRhZCBk
2278
- ZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9sYW5vMQswCQYDVQQGEwJWRTEQ
2279
- MA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlzdHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lz
2280
- dGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBl
2281
- cmludGVuZGVuY2lhIGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUw
2282
- IwYJKoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEwMFoXDTIw
2283
- MTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHByb2NlcnQubmV0LnZlMQ8w
2284
- DQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGExKjAoBgNVBAsTIVByb3ZlZWRvciBkZSBD
2285
- ZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZp
2286
- Y2FjaW9uIEVsZWN0cm9uaWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIw
2287
- DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo97BVC
2288
- wfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74BCXfgI8Qhd19L3uA
2289
- 3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38GieU89RLAu9MLmV+QfI4tL3czkkoh
2290
- RqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmO
2291
- EO8GqQKJ/+MMbpfg353bIdD0PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG2
2292
- 0qCZyFSTXai20b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH
2293
- 0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/6mnbVSKVUyqU
2294
- td+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1mv6JpIzi4mWCZDlZTOpx+FIyw
2295
- Bm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvp
2296
- r2uKGcfLFFb14dq12fy/czja+eevbqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/
2297
- AgEBMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAz
2298
- Ni0wMB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFDgBStuyId
2299
- xuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRp
2300
- ZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQH
2301
- EwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5h
2302
- Y2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5k
2303
- ZW5jaWEgZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG
2304
- 9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQDAgEGME0GA1UdEQRG
2305
- MESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0wMDAwMDKgGwYFYIZeAgKgEgwQUklG
2306
- LUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEagRKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52
2307
- ZS9sY3IvQ0VSVElGSUNBRE8tUkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNy
2308
- YWl6LnN1c2NlcnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v
2309
- Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsGAQUFBwIBFh5o
2310
- dHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcNAQELBQADggIBACtZ6yKZu4Sq
2311
- T96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmN
2312
- g7+mvTV+LFwxNG9s2/NkAZiqlCxB3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4q
2313
- uxtxj7mkoP3YldmvWb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1
2314
- n8GhHVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHmpHmJWhSn
2315
- FFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXzsOfIt+FTvZLm8wyWuevo
2316
- 5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bEqCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq
2317
- 3TNWOByyrYDT13K9mmyZY+gAu0F2BbdbmRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5
2318
- poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y
2319
- eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km
2320
- -----END CERTIFICATE-----
2321
-
2322
- CA Disig Root R1
2323
- ================
2324
- -----BEGIN CERTIFICATE-----
2325
- MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNVBAYTAlNLMRMw
2326
- EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp
2327
- ZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQyMDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sx
2328
- EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp
2329
- c2lnIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy
2330
- 3QRkD2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/oOI7bm+V8
2331
- u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3AfQ+lekLZWnDZv6fXARz2
2332
- m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJeIgpFy4QxTaz+29FHuvlglzmxZcfe+5nk
2333
- CiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8noc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTa
2334
- YVKvJrT1cU/J19IG32PK/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6
2335
- vpmumwKjrckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD3AjL
2336
- LhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE7cderVC6xkGbrPAX
2337
- ZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkCyC2fg69naQanMVXVz0tv/wQFx1is
2338
- XxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLdqvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNV
2339
- HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ
2340
- 04IwDQYJKoZIhvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR
2341
- xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaASfX8MPWbTx9B
2342
- LxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXoHqJPYNcHKfyyo6SdbhWSVhlM
2343
- CrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpBemOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5Gfb
2344
- VSUZP/3oNn6z4eGBrxEWi1CXYBmCAMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85
2345
- YmLLW1AL14FABZyb7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKS
2346
- ds+xDzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvkF7mGnjix
2347
- lAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqFa3qdnom2piiZk4hA9z7N
2348
- UaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsTQ6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJ
2349
- a7+h89n07eLw4+1knj0vllJPgFOL
2350
- -----END CERTIFICATE-----
2351
-
2352
  CA Disig Root R2
2353
  ================
2354
  -----BEGIN CERTIFICATE-----
@@ -2752,66 +2309,6 @@ G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP
2752
  82Z+
2753
  -----END CERTIFICATE-----
2754
 
2755
- WoSign
2756
- ======
2757
- -----BEGIN CERTIFICATE-----
2758
- MIIFdjCCA16gAwIBAgIQXmjWEXGUY1BWAGjzPsnFkTANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQG
2759
- EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNVBAMTIUNlcnRpZmljYXRpb24g
2760
- QXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMFUxCzAJ
2761
- BgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEqMCgGA1UEAxMhQ2VydGlmaWNh
2762
- dGlvbiBBdXRob3JpdHkgb2YgV29TaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
2763
- vcqNrLiRFVaXe2tcesLea9mhsMMQI/qnobLMMfo+2aYpbxY94Gv4uEBf2zmoAHqLoE1UfcIiePyO
2764
- CbiohdfMlZdLdNiefvAA5A6JrkkoRBoQmTIPJYhTpA2zDxIIFgsDcSccf+Hb0v1naMQFXQoOXXDX
2765
- 2JegvFNBmpGN9J42Znp+VsGQX+axaCA2pIwkLCxHC1l2ZjC1vt7tj/id07sBMOby8w7gLJKA84X5
2766
- KIq0VC6a7fd2/BVoFutKbOsuEo/Uz/4Mx1wdC34FMr5esAkqQtXJTpCzWQ27en7N1QhatH/YHGkR
2767
- +ScPewavVIMYe+HdVHpRaG53/Ma/UkpmRqGyZxq7o093oL5d//xWC0Nyd5DKnvnyOfUNqfTq1+ez
2768
- EC8wQjchzDBwyYaYD8xYTYO7feUapTeNtqwylwA6Y3EkHp43xP901DfA4v6IRmAR3Qg/UDaruHqk
2769
- lWJqbrDKaiFaafPz+x1wOZXzp26mgYmhiMU7ccqjUu6Du/2gd/Tkb+dC221KmYo0SLwX3OSACCK2
2770
- 8jHAPwQ+658geda4BmRkAjHXqc1S+4RFaQkAKtxVi8QGRkvASh0JWzko/amrzgD5LkhLJuYwTKVY
2771
- yrREgk/nkR4zw7CT/xH8gdLKH3Ep3XZPkiWvHYG3Dy+MwwbMLyejSuQOmbp8HkUff6oZRZb9/D0C
2772
- AwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOFmzw7R
2773
- 8bNLtwYgFP6HEtX2/vs+MA0GCSqGSIb3DQEBBQUAA4ICAQCoy3JAsnbBfnv8rWTjMnvMPLZdRtP1
2774
- LOJwXcgu2AZ9mNELIaCJWSQBnfmvCX0KI4I01fx8cpm5o9dU9OpScA7F9dY74ToJMuYhOZO9sxXq
2775
- T2r09Ys/L3yNWC7F4TmgPsc9SnOeQHrAK2GpZ8nzJLmzbVUsWh2eJXLOC62qx1ViC777Y7NhRCOj
2776
- y+EaDveaBk3e1CNOIZZbOVtXHS9dCF4Jef98l7VNg64N1uajeeAz0JmWAjCnPv/So0M/BVoG6kQC
2777
- 2nz4SNAzqfkHx5Xh9T71XXG68pWpdIhhWeO/yloTunK0jF02h+mmxTwTv97QRCbut+wucPrXnbes
2778
- 5cVAWubXbHssw1abR80LzvobtCHXt2a49CUwi1wNuepnsvRtrtWhnk/Yn+knArAdBtaP4/tIEp9/
2779
- EaEQPkxROpaw0RPxx9gmrjrKkcRpnd8BKWRRb2jaFOwIQZeQjdCygPLPwj2/kWjFgGcexGATVdVh
2780
- mVd8upUPYUk6ynW8yQqTP2cOEvIo4jEbwFcW3wh8GcF+Dx+FHgo2fFt+J7x6v+Db9NpSvd4MVHAx
2781
- kUOVyLzwPt0JfjBkUO1/AaQzZ01oT74V77D2AhGiGxMlOtzCWfHjXEa7ZywCRuoeSKbmW9m1vFGi
2782
- kpbbqsY3Iqb+zCB0oy2pLmvLwIIRIbWTee5Ehr7XHuQe+w==
2783
- -----END CERTIFICATE-----
2784
-
2785
- WoSign China
2786
- ============
2787
- -----BEGIN CERTIFICATE-----
2788
- MIIFWDCCA0CgAwIBAgIQUHBrzdgT/BtOOzNy0hFIjTANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQG
2789
- EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMMEkNBIOayg+mAmuagueiv
2790
- geS5pjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMEYxCzAJBgNVBAYTAkNOMRowGAYD
2791
- VQQKExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAwwSQ0Eg5rKD6YCa5qC56K+B5LmmMIICIjAN
2792
- BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0EkhHiX8h8EqwqzbdoYGTufQdDTc7WU1/FDWiD+k
2793
- 8H/rD195L4mx/bxjWDeTmzj4t1up+thxx7S8gJeNbEvxUNUqKaqoGXqW5pWOdO2XCld19AXbbQs5
2794
- uQF/qvbW2mzmBeCkTVL829B0txGMe41P/4eDrv8FAxNXUDf+jJZSEExfv5RxadmWPgxDT74wwJ85
2795
- dE8GRV2j1lY5aAfMh09Qd5Nx2UQIsYo06Yms25tO4dnkUkWMLhQfkWsZHWgpLFbE4h4TV2TwYeO5
2796
- Ed+w4VegG63XX9Gv2ystP9Bojg/qnw+LNVgbExz03jWhCl3W6t8Sb8D7aQdGctyB9gQjF+BNdeFy
2797
- b7Ao65vh4YOhn0pdr8yb+gIgthhid5E7o9Vlrdx8kHccREGkSovrlXLp9glk3Kgtn3R46MGiCWOc
2798
- 76DbT52VqyBPt7D3h1ymoOQ3OMdc4zUPLK2jgKLsLl3Az+2LBcLmc272idX10kaO6m1jGx6KyX2m
2799
- +Jzr5dVjhU1zZmkR/sgO9MHHZklTfuQZa/HpelmjbX7FF+Ynxu8b22/8DU0GAbQOXDBGVWCvOGU6
2800
- yke6rCzMRh+yRpY/8+0mBe53oWprfi1tWFxK1I5nuPHa1UaKJ/kR8slC/k7e3x9cxKSGhxYzoacX
2801
- GKUN5AXlK8IrC6KVkLn9YDxOiT7nnO4fuwECAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud
2802
- EwEB/wQFMAMBAf8wHQYDVR0OBBYEFOBNv9ybQV0T6GTwp+kVpOGBwboxMA0GCSqGSIb3DQEBCwUA
2803
- A4ICAQBqinA4WbbaixjIvirTthnVZil6Xc1bL3McJk6jfW+rtylNpumlEYOnOXOvEESS5iVdT2H6
2804
- yAa+Tkvv/vMx/sZ8cApBWNromUuWyXi8mHwCKe0JgOYKOoICKuLJL8hWGSbueBwj/feTZU7n85iY
2805
- r83d2Z5AiDEoOqsuC7CsDCT6eiaY8xJhEPRdF/d+4niXVOKM6Cm6jBAyvd0zaziGfjk9DgNyp115
2806
- j0WKWa5bIW4xRtVZjc8VX90xJc/bYNaBRHIpAlf2ltTW/+op2znFuCyKGo3Oy+dCMYYFaA6eFN0A
2807
- kLppRQjbbpCBhqcqBT/mhDn4t/lXX0ykeVoQDF7Va/81XwVRHmyjdanPUIPTfPRm94KNPQx96N97
2808
- qA4bLJyuQHCH2u2nFoJavjVsIE4iYdm8UXrNemHcSxH5/mc0zy4EZmFcV5cjjPOGG0jfKq+nwf/Y
2809
- jj4Du9gqsPoUJbJRa4ZDhS4HIxaAjUz7tGM7zMN07RujHv41D198HRaG9Q7DlfEvr10lO1Hm13ZB
2810
- ONFLAzkopR6RctR9q5czxNM+4Gm2KHmgCY0c0f9BckgG/Jou5yD5m6Leie2uPAmvylezkolwQOQv
2811
- T8Jwg0DXJCxr5wkf09XHwQj02w47HAcLQxGEIYbpgNR12KvxAmLBsX5VYc8T1yaw15zLKYs4SgsO
2812
- kI26oQ==
2813
- -----END CERTIFICATE-----
2814
-
2815
  COMODO RSA Certification Authority
2816
  ==================================
2817
  -----BEGIN CERTIFICATE-----
@@ -3116,61 +2613,6 @@ kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C
3116
  ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
3117
  -----END CERTIFICATE-----
3118
 
3119
- TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5
3120
- ====================================================
3121
- -----BEGIN CERTIFICATE-----
3122
- MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN
3123
- BgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
3124
- bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1Qg
3125
- RWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAw
3126
- ODA3MDFaFw0yMzA0MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0w
3127
- SwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnE
3128
- n2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRp
3129
- ZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
3130
- CgKCAQEApCUZ4WWe60ghUEoI5RHwWrom/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537
3131
- jVJp45wnEFPzpALFp/kRGml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1m
3132
- ep5Fimh34khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z5UNP
3133
- 9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0hO8EuPbJbKoCPrZV
3134
- 4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QIDAQABo0IwQDAdBgNVHQ4EFgQUVpkH
3135
- HtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
3136
- hvcNAQELBQADggEBAJ5FdnsXSDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPo
3137
- BP5yCccLqh0lVX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq
3138
- URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nfpeYVhDfwwvJl
3139
- lpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CFYv4HAqGEVka+lgqaE9chTLd8
3140
- B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU=
3141
- -----END CERTIFICATE-----
3142
-
3143
- Certinomis - Root CA
3144
- ====================
3145
- -----BEGIN CERTIFICATE-----
3146
- MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
3147
- Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAbBgNVBAMTFENlcnRpbm9taXMg
3148
- LSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMzMTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIx
3149
- EzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRD
3150
- ZXJ0aW5vbWlzIC0gUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQos
3151
- P5L2fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJflLieY6pOo
3152
- d5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQVWZUKxkd8aRi5pwP5ynap
3153
- z8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDFTKWrteoB4owuZH9kb/2jJZOLyKIOSY00
3154
- 8B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09x
3155
- RLWtwHkziOC/7aOgFLScCbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE
3156
- 6OXWk6RiwsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJwx3t
3157
- FvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SGm/lg0h9tkQPTYKbV
3158
- PZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4F2iw4lNVYC2vPsKD2NkJK/DAZNuH
3159
- i5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZngWVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGj
3160
- YzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I
3161
- 6tNxIqSSaHh02TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF
3162
- AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/0KGRHCwPT5iV
3163
- WVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWwF6YSjNRieOpWauwK0kDDPAUw
3164
- Pk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZSg081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAX
3165
- lCOotQqSD7J6wWAsOMwaplv/8gzjqh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJ
3166
- y29SWwNyhlCVCNSNh4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9
3167
- Iff/ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8Vbtaw5Bng
3168
- DwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwjY/M50n92Uaf0yKHxDHYi
3169
- I0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nM
3170
- cyrDflOR1m749fPH0FFNjkulW+YZFzvWgQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVr
3171
- hkIGuUE=
3172
- -----END CERTIFICATE-----
3173
-
3174
  OISTE WISeKey Global Root GB CA
3175
  ===============================
3176
  -----BEGIN CERTIFICATE-----
@@ -3193,42 +2635,6 @@ HZeeevJuQHHfaPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic
3193
  Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM=
3194
  -----END CERTIFICATE-----
3195
 
3196
- Certification Authority of WoSign G2
3197
- ====================================
3198
- -----BEGIN CERTIFICATE-----
3199
- MIIDfDCCAmSgAwIBAgIQayXaioidfLwPBbOxemFFRDANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQG
3200
- EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxLTArBgNVBAMTJENlcnRpZmljYXRpb24g
3201
- QXV0aG9yaXR5IG9mIFdvU2lnbiBHMjAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4NThaMFgx
3202
- CzAJBgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEtMCsGA1UEAxMkQ2VydGlm
3203
- aWNhdGlvbiBBdXRob3JpdHkgb2YgV29TaWduIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
3204
- CgKCAQEAvsXEoCKASU+/2YcRxlPhuw+9YH+v9oIOH9ywjj2X4FA8jzrvZjtFB5sg+OPXJYY1kBai
3205
- XW8wGQiHC38Gsp1ij96vkqVg1CuAmlI/9ZqD6TRay9nVYlzmDuDfBpgOgHzKtB0TiGsOqCR3A9Du
3206
- W/PKaZE1OVbFbeP3PU9ekzgkyhjpJMuSA93MHD0JcOQg5PGurLtzaaNjOg9FD6FKmsLRY6zLEPg9
3207
- 5k4ot+vElbGs/V6r+kHLXZ1L3PR8du9nfwB6jdKgGlxNIuG12t12s9R23164i5jIFFTMaxeSt+BK
3208
- v0mUYQs4kI9dJGwlezt52eJ+na2fmKEG/HgUYFf47oB3sQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC
3209
- AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU+mCp62XF3RYUCE4MD42b4Pdkr2cwDQYJKoZI
3210
- hvcNAQELBQADggEBAFfDejaCnI2Y4qtAqkePx6db7XznPWZaOzG73/MWM5H8fHulwqZm46qwtyeY
3211
- P0nXYGdnPzZPSsvxFPpahygc7Y9BMsaV+X3avXtbwrAh449G3CE4Q3RM+zD4F3LBMvzIkRfEzFg3
3212
- TgvMWvchNSiDbGAtROtSjFA9tWwS1/oJu2yySrHFieT801LYYRf+epSEj3m2M1m6D8QL4nCgS3gu
3213
- +sif/a+RZQp4OBXllxcU3fngLDT4ONCEIgDAFFEYKwLcMFrw6AF8NTojrwjkr6qOKEJJLvD1mTS+
3214
- 7Q9LGOHSJDy7XUe3IfKN0QqZjuNuPq1w4I+5ysxugTH2e5x6eeRncRg=
3215
- -----END CERTIFICATE-----
3216
-
3217
- CA WoSign ECC Root
3218
- ==================
3219
- -----BEGIN CERTIFICATE-----
3220
- MIICCTCCAY+gAwIBAgIQaEpYcIBr8I8C+vbe6LCQkDAKBggqhkjOPQQDAzBGMQswCQYDVQQGEwJD
3221
- TjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMTEkNBIFdvU2lnbiBFQ0MgUm9v
3222
- dDAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4NThaMEYxCzAJBgNVBAYTAkNOMRowGAYDVQQK
3223
- ExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAxMSQ0EgV29TaWduIEVDQyBSb290MHYwEAYHKoZI
3224
- zj0CAQYFK4EEACIDYgAE4f2OuEMkq5Z7hcK6C62N4DrjJLnSsb6IOsq/Srj57ywvr1FQPEd1bPiU
3225
- t5v8KB7FVMxjnRZLU8HnIKvNrCXSf4/CwVqCXjCLelTOA7WRf6qU0NGKSMyCBSah1VES1ns2o0Iw
3226
- QDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUqv3VWqP2h4syhf3R
3227
- MluARZPzA7gwCgYIKoZIzj0EAwMDaAAwZQIxAOSkhLCB1T2wdKyUpOgOPQB0TKGXa/kNUTyh2Tv0
3228
- Daupn75OcsqF1NnstTJFGG+rrQIwfcf3aWMvoeGY7xMQ0Xk/0f7qO3/eVvSQsRUR2LIiFdAvwyYu
3229
- a/GRspBl9JrmkO5K
3230
- -----END CERTIFICATE-----
3231
-
3232
  SZAFIR ROOT CA2
3233
  ===============
3234
  -----BEGIN CERTIFICATE-----
@@ -3333,126 +2739,6 @@ GiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7SofTUwJCA3sS61kFyjn
3333
  dc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR
3334
  -----END CERTIFICATE-----
3335
 
3336
- Certplus Root CA G1
3337
- ===================
3338
- -----BEGIN CERTIFICATE-----
3339
- MIIFazCCA1OgAwIBAgISESBVg+QtPlRWhS2DN7cs3EYRMA0GCSqGSIb3DQEBDQUAMD4xCzAJBgNV
3340
- BAYTAkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMTAe
3341
- Fw0xNDA1MjYwMDAwMDBaFw0zODAxMTUwMDAwMDBaMD4xCzAJBgNVBAYTAkZSMREwDwYDVQQKDAhD
3342
- ZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMTCCAiIwDQYJKoZIhvcNAQEBBQAD
3343
- ggIPADCCAgoCggIBANpQh7bauKk+nWT6VjOaVj0W5QOVsjQcmm1iBdTYj+eJZJ+622SLZOZ5KmHN
3344
- r49aiZFluVj8tANfkT8tEBXgfs+8/H9DZ6itXjYj2JizTfNDnjl8KvzsiNWI7nC9hRYt6kuJPKNx
3345
- Qv4c/dMcLRC4hlTqQ7jbxofaqK6AJc96Jh2qkbBIb6613p7Y1/oA/caP0FG7Yn2ksYyy/yARujVj
3346
- BYZHYEMzkPZHogNPlk2dT8Hq6pyi/jQu3rfKG3akt62f6ajUeD94/vI4CTYd0hYCyOwqaK/1jpTv
3347
- LRN6HkJKHRUxrgwEV/xhc/MxVoYxgKDEEW4wduOU8F8ExKyHcomYxZ3MVwia9Az8fXoFOvpHgDm2
3348
- z4QTd28n6v+WZxcIbekN1iNQMLAVdBM+5S//Ds3EC0pd8NgAM0lm66EYfFkuPSi5YXHLtaW6uOrc
3349
- 4nBvCGrch2c0798wct3zyT8j/zXhviEpIDCB5BmlIOklynMxdCm+4kLV87ImZsdo/Rmz5yCTmehd
3350
- 4F6H50boJZwKKSTUzViGUkAksnsPmBIgJPaQbEfIDbsYIC7Z/fyL8inqh3SV4EJQeIQEQWGw9CEj
3351
- jy3LKCHyamz0GqbFFLQ3ZU+V/YDI+HLlJWvEYLF7bY5KinPOWftwenMGE9nTdDckQQoRb5fc5+R+
3352
- ob0V8rqHDz1oihYHAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0G
3353
- A1UdDgQWBBSowcCbkahDFXxdBie0KlHYlwuBsTAfBgNVHSMEGDAWgBSowcCbkahDFXxdBie0KlHY
3354
- lwuBsTANBgkqhkiG9w0BAQ0FAAOCAgEAnFZvAX7RvUz1isbwJh/k4DgYzDLDKTudQSk0YcbX8ACh
3355
- 66Ryj5QXvBMsdbRX7gp8CXrc1cqh0DQT+Hern+X+2B50ioUHj3/MeXrKls3N/U/7/SMNkPX0XtPG
3356
- YX2eEeAC7gkE2Qfdpoq3DIMku4NQkv5gdRE+2J2winq14J2by5BSS7CTKtQ+FjPlnsZlFT5kOwQ/
3357
- 2wyPX1wdaR+v8+khjPPvl/aatxm2hHSco1S1cE5j2FddUyGbQJJD+tZ3VTNPZNX70Cxqjm0lpu+F
3358
- 6ALEUz65noe8zDUa3qHpimOHZR4RKttjd5cUvpoUmRGywO6wT/gUITJDT5+rosuoD6o7BlXGEilX
3359
- CNQ314cnrUlZp5GrRHpejXDbl85IULFzk/bwg2D5zfHhMf1bfHEhYxQUqq/F3pN+aLHsIqKqkHWe
3360
- tUNy6mSjhEv9DKgma3GX7lZjZuhCVPnHHd/Qj1vfyDBviP4NxDMcU6ij/UgQ8uQKTuEVV/xuZDDC
3361
- VRHc6qnNSlSsKWNEz0pAoNZoWRsz+e86i9sgktxChL8Bq4fA1SCC28a5g4VCXA9DO2pJNdWY9BW/
3362
- +mGBDAkgGNLQFwzLSABQ6XaCjGTXOqAHVcweMcDvOrRl++O/QmueD6i9a5jc2NvLi6Td11n0bt3+
3363
- qsOR0C5CB8AMTVPNJLFMWx5R9N/pkvo=
3364
- -----END CERTIFICATE-----
3365
-
3366
- Certplus Root CA G2
3367
- ===================
3368
- -----BEGIN CERTIFICATE-----
3369
- MIICHDCCAaKgAwIBAgISESDZkc6uo+jF5//pAq/Pc7xVMAoGCCqGSM49BAMDMD4xCzAJBgNVBAYT
3370
- AkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMjAeFw0x
3371
- NDA1MjYwMDAwMDBaFw0zODAxMTUwMDAwMDBaMD4xCzAJBgNVBAYTAkZSMREwDwYDVQQKDAhDZXJ0
3372
- cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMjB2MBAGByqGSM49AgEGBSuBBAAiA2IA
3373
- BM0PW1aC3/BFGtat93nwHcmsltaeTpwftEIRyoa/bfuFo8XlGVzX7qY/aWfYeOKmycTbLXku54uN
3374
- Am8xIk0G42ByRZ0OQneezs/lf4WbGOT8zC5y0xaTTsqZY1yhBSpsBqNjMGEwDgYDVR0PAQH/BAQD
3375
- AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNqDYwJ5jtpMxjwjFNiPwyCrKGBZMB8GA1Ud
3376
- IwQYMBaAFNqDYwJ5jtpMxjwjFNiPwyCrKGBZMAoGCCqGSM49BAMDA2gAMGUCMHD+sAvZ94OX7PNV
3377
- HdTcswYO/jOYnYs5kGuUIe22113WTNchp+e/IQ8rzfcq3IUHnQIxAIYUFuXcsGXCwI4Un78kFmjl
3378
- vPl5adytRSv3tjFzzAalU5ORGpOucGpnutee5WEaXw==
3379
- -----END CERTIFICATE-----
3380
-
3381
- OpenTrust Root CA G1
3382
- ====================
3383
- -----BEGIN CERTIFICATE-----
3384
- MIIFbzCCA1egAwIBAgISESCzkFU5fX82bWTCp59rY45nMA0GCSqGSIb3DQEBCwUAMEAxCzAJBgNV
3385
- BAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5UcnVzdCBSb290IENBIEcx
3386
- MB4XDTE0MDUyNjA4NDU1MFoXDTM4MDExNTAwMDAwMFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoM
3387
- CU9wZW5UcnVzdDEdMBsGA1UEAwwUT3BlblRydXN0IFJvb3QgQ0EgRzEwggIiMA0GCSqGSIb3DQEB
3388
- AQUAA4ICDwAwggIKAoICAQD4eUbalsUwXopxAy1wpLuwxQjczeY1wICkES3d5oeuXT2R0odsN7fa
3389
- Yp6bwiTXj/HbpqbfRm9RpnHLPhsxZ2L3EVs0J9V5ToybWL0iEA1cJwzdMOWo010hOHQX/uMftk87
3390
- ay3bfWAfjH1MBcLrARYVmBSO0ZB3Ij/swjm4eTrwSSTilZHcYTSSjFR077F9jAHiOH3BX2pfJLKO
3391
- YheteSCtqx234LSWSE9mQxAGFiQD4eCcjsZGT44ameGPuY4zbGneWK2gDqdkVBFpRGZPTBKnjix9
3392
- xNRbxQA0MMHZmf4yzgeEtE7NCv82TWLxp2NX5Ntqp66/K7nJ5rInieV+mhxNaMbBGN4zK1FGSxyO
3393
- 9z0M+Yo0FMT7MzUj8czxKselu7Cizv5Ta01BG2Yospb6p64KTrk5M0ScdMGTHPjgniQlQ/GbI4Kq
3394
- 3ywgsNw2TgOzfALU5nsaqocTvz6hdLubDuHAk5/XpGbKuxs74zD0M1mKB3IDVedzagMxbm+WG+Oi
3395
- n6+Sx+31QrclTDsTBM8clq8cIqPQqwWyTBIjUtz9GVsnnB47ev1CI9sjgBPwvFEVVJSmdz7QdFG9
3396
- URQIOTfLHzSpMJ1ShC5VkLG631UAC9hWLbFJSXKAqWLXwPYYEQRVzXR7z2FwefR7LFxckvzluFqr
3397
- TJOVoSfupb7PcSNCupt2LQIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
3398
- /zAdBgNVHQ4EFgQUl0YhVyE12jZVx/PxN3DlCPaTKbYwHwYDVR0jBBgwFoAUl0YhVyE12jZVx/Px
3399
- N3DlCPaTKbYwDQYJKoZIhvcNAQELBQADggIBAB3dAmB84DWn5ph76kTOZ0BP8pNuZtQ5iSas000E
3400
- PLuHIT839HEl2ku6q5aCgZG27dmxpGWX4m9kWaSW7mDKHyP7Rbr/jyTwyqkxf3kfgLMtMrpkZ2Cv
3401
- uVnN35pJ06iCsfmYlIrM4LvgBBuZYLFGZdwIorJGnkSI6pN+VxbSFXJfLkur1J1juONI5f6ELlgK
3402
- n0Md/rcYkoZDSw6cMoYsYPXpSOqV7XAp8dUv/TW0V8/bhUiZucJvbI/NeJWsZCj9VrDDb8O+WVLh
3403
- X4SPgPL0DTatdrOjteFkdjpY3H1PXlZs5VVZV6Xf8YpmMIzUUmI4d7S+KNfKNsSbBfD4Fdvb8e80
3404
- nR14SohWZ25g/4/Ii+GOvUKpMwpZQhISKvqxnUOOBZuZ2mKtVzazHbYNeS2WuOvyDEsMpZTGMKcm
3405
- GS3tTAZQMPH9WD25SxdfGbRqhFS0OE85og2WaMMolP3tLR9Ka0OWLpABEPs4poEL0L9109S5zvE/
3406
- bw4cHjdx5RiHdRk/ULlepEU0rbDK5uUTdg8xFKmOLZTW1YVNcxVPS/KyPu1svf0OnWZzsD2097+o
3407
- 4BGkxK51CUpjAEggpsadCwmKtODmzj7HPiY46SvepghJAwSQiumPv+i2tCqjI40cHLI5kqiPAlxA
3408
- OXXUc0ECd97N4EOH1uS6SsNsEn/+KuYj1oxx
3409
- -----END CERTIFICATE-----
3410
-
3411
- OpenTrust Root CA G2
3412
- ====================
3413
- -----BEGIN CERTIFICATE-----
3414
- MIIFbzCCA1egAwIBAgISESChaRu/vbm9UpaPI+hIvyYRMA0GCSqGSIb3DQEBDQUAMEAxCzAJBgNV
3415
- BAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5UcnVzdCBSb290IENBIEcy
3416
- MB4XDTE0MDUyNjAwMDAwMFoXDTM4MDExNTAwMDAwMFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoM
3417
- CU9wZW5UcnVzdDEdMBsGA1UEAwwUT3BlblRydXN0IFJvb3QgQ0EgRzIwggIiMA0GCSqGSIb3DQEB
3418
- AQUAA4ICDwAwggIKAoICAQDMtlelM5QQgTJT32F+D3Y5z1zCU3UdSXqWON2ic2rxb95eolq5cSG+
3419
- Ntmh/LzubKh8NBpxGuga2F8ORAbtp+Dz0mEL4DKiltE48MLaARf85KxP6O6JHnSrT78eCbY2albz
3420
- 4e6WiWYkBuTNQjpK3eCasMSCRbP+yatcfD7J6xcvDH1urqWPyKwlCm/61UWY0jUJ9gNDlP7ZvyCV
3421
- eYCYitmJNbtRG6Q3ffyZO6v/v6wNj0OxmXsWEH4db0fEFY8ElggGQgT4hNYdvJGmQr5J1WqIP7wt
3422
- UdGejeBSzFfdNTVY27SPJIjki9/ca1TSgSuyzpJLHB9G+h3Ykst2Z7UJmQnlrBcUVXDGPKBWCgOz
3423
- 3GIZ38i1MH/1PCZ1Eb3XG7OHngevZXHloM8apwkQHZOJZlvoPGIytbU6bumFAYueQ4xncyhZW+vj
3424
- 3CzMpSZyYhK05pyDRPZRpOLAeiRXyg6lPzq1O4vldu5w5pLeFlwoW5cZJ5L+epJUzpM5ChaHvGOz
3425
- 9bGTXOBut9Dq+WIyiET7vycotjCVXRIouZW+j1MY5aIYFuJWpLIsEPUdN6b4t/bQWVyJ98LVtZR0
3426
- 0dX+G7bw5tYee9I8y6jj9RjzIR9u701oBnstXW5DiabA+aC/gh7PU3+06yzbXfZqfUAkBXKJOAGT
3427
- y3HCOV0GEfZvePg3DTmEJwIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
3428
- /zAdBgNVHQ4EFgQUajn6QiL35okATV59M4PLuG53hq8wHwYDVR0jBBgwFoAUajn6QiL35okATV59
3429
- M4PLuG53hq8wDQYJKoZIhvcNAQENBQADggIBAJjLq0A85TMCl38th6aP1F5Kr7ge57tx+4BkJamz
3430
- Gj5oXScmp7oq4fBXgwpkTx4idBvpkF/wrM//T2h6OKQQbA2xx6R3gBi2oihEdqc0nXGEL8pZ0keI
3431
- mUEiyTCYYW49qKgFbdEfwFFEVn8nNQLdXpgKQuswv42hm1GqO+qTRmTFAHneIWv2V6CG1wZy7HBG
3432
- S4tz3aAhdT7cHcCP009zHIXZ/n9iyJVvttN7jLpTwm+bREx50B1ws9efAvSyB7DH5fitIw6mVskp
3433
- EndI2S9G/Tvw/HRwkqWOOAgfZDC2t0v7NqwQjqBSM2OdAzVWxWm9xiNaJ5T2pBL4LTM8oValX9YZ
3434
- 6e18CL13zSdkzJTaTkZQh+D5wVOAHrut+0dSixv9ovneDiK3PTNZbNTe9ZUGMg1RGUFcPk8G97kr
3435
- gCf2o6p6fAbhQ8MTOWIaNr3gKC6UAuQpLmBVrkA9sHSSXvAgZJY/X0VdiLWK2gKgW0VU3jg9CcCo
3436
- SmVGFvyqv1ROTVu+OEO3KMqLM6oaJbolXCkvW0pujOotnCr2BXbgd5eAiN1nE28daCSLT7d0geX0
3437
- YJ96Vdc+N9oWaz53rK4YcJUIeSkDiv7BO7M/Gg+kO14fWKGVyasvc0rQLW6aWQ9VGHgtPFGml4vm
3438
- u7JwqkwR3v98KzfUetF3NI/n+UL3PIEMS1IK
3439
- -----END CERTIFICATE-----
3440
-
3441
- OpenTrust Root CA G3
3442
- ====================
3443
- -----BEGIN CERTIFICATE-----
3444
- MIICITCCAaagAwIBAgISESDm+Ez8JLC+BUCs2oMbNGA/MAoGCCqGSM49BAMDMEAxCzAJBgNVBAYT
3445
- AkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5UcnVzdCBSb290IENBIEczMB4X
3446
- DTE0MDUyNjAwMDAwMFoXDTM4MDExNTAwMDAwMFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCU9w
3447
- ZW5UcnVzdDEdMBsGA1UEAwwUT3BlblRydXN0IFJvb3QgQ0EgRzMwdjAQBgcqhkjOPQIBBgUrgQQA
3448
- IgNiAARK7liuTcpm3gY6oxH84Bjwbhy6LTAMidnW7ptzg6kjFYwvWYpa3RTqnVkrQ7cG7DK2uu5B
3449
- ta1doYXM6h0UZqNnfkbilPPntlahFVmhTzeXuSIevRHr9LIfXsMUmuXZl5mjYzBhMA4GA1UdDwEB
3450
- /wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRHd8MUi2I5DMlv4VBN0BBY3JWIbTAf
3451
- BgNVHSMEGDAWgBRHd8MUi2I5DMlv4VBN0BBY3JWIbTAKBggqhkjOPQQDAwNpADBmAjEAj6jcnboM
3452
- BBf6Fek9LykBl7+BFjNAk2z8+e2AcG+qj9uEwov1NcoG3GRvaBbhj5G5AjEA2Euly8LQCGzpGPta
3453
- 3U1fJAuwACEl74+nBCZx4nxp5V2a+EEfOzmTk51V6s2N8fvB
3454
- -----END CERTIFICATE-----
3455
-
3456
  ISRG Root X1
3457
  ============
3458
  -----BEGIN CERTIFICATE-----
@@ -3644,3 +2930,547 @@ lNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4lzwDGrpDxpa5RXI4s6ehlj2R
3644
  e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0j
3645
  q5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM=
3646
  -----END CERTIFICATE-----
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ##
2
  ## Bundle of CA Root Certificates
3
  ##
4
+ ## Certificate data from Mozilla as of: Wed Aug 28 03:12:10 2019 GMT
5
  ##
6
  ## This is a bundle of X.509 certificates of public Certificate Authorities
7
  ## (CA). These were automatically extracted from Mozilla's root certificates
14
  ## Just configure this file as the SSLCACertificateFile.
15
  ##
16
  ## Conversion done with mk-ca-bundle.pl version 1.27.
17
+ ## SHA256: fffa309937c3be940649293f749b8207fabc6eb224e50e4bb3f2c5e44e0d6a6b
18
  ##
19
 
20
 
261
  X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
262
  -----END CERTIFICATE-----
263
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
264
  Comodo AAA Services root
265
  ========================
266
  -----BEGIN CERTIFICATE-----
424
  llpwrN9M
425
  -----END CERTIFICATE-----
426
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
427
  XRamp Global CA Root
428
  ====================
429
  -----BEGIN CERTIFICATE-----
496
  QBFGmh95DmK/D5fs4C8fF5Q=
497
  -----END CERTIFICATE-----
498
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
499
  Taiwan GRCA
500
  ===========
501
  -----BEGIN CERTIFICATE-----
634
  fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
635
  -----END CERTIFICATE-----
636
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
637
  SwissSign Gold CA - G2
638
  ======================
639
  -----BEGIN CERTIFICATE-----
876
  U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
877
  -----END CERTIFICATE-----
878
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
879
  OISTE WISeKey Global Root GA CA
880
  ===============================
881
  -----BEGIN CERTIFICATE-----
996
  BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw=
997
  -----END CERTIFICATE-----
998
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
999
  certSIGN ROOT CA
1000
  ================
1001
  -----BEGIN CERTIFICATE-----
1243
  lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
1244
  -----END CERTIFICATE-----
1245
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1246
  Microsec e-Szigno Root CA 2009
1247
  ==============================
1248
  -----BEGIN CERTIFICATE-----
1603
  03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
1604
  -----END CERTIFICATE-----
1605
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1606
  TWCA Root Certification Authority
1607
  =================================
1608
  -----BEGIN CERTIFICATE-----
1751
  iB6XzCGcKQENZetX2fNXlrtIzYE=
1752
  -----END CERTIFICATE-----
1753
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1754
  Buypass Class 2 Root CA
1755
  =======================
1756
  -----BEGIN CERTIFICATE-----
1857
  dcGWxZ0=
1858
  -----END CERTIFICATE-----
1859
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1860
  D-TRUST Root Class 3 CA 2 2009
1861
  ==============================
1862
  -----BEGIN CERTIFICATE-----
1906
  w9y4AyHqnxbxLFS1
1907
  -----END CERTIFICATE-----
1908
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1909
  CA Disig Root R2
1910
  ================
1911
  -----BEGIN CERTIFICATE-----
2309
  82Z+
2310
  -----END CERTIFICATE-----
2311
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2312
  COMODO RSA Certification Authority
2313
  ==================================
2314
  -----BEGIN CERTIFICATE-----
2613
  ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
2614
  -----END CERTIFICATE-----
2615
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2616
  OISTE WISeKey Global Root GB CA
2617
  ===============================
2618
  -----BEGIN CERTIFICATE-----
2635
  Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM=
2636
  -----END CERTIFICATE-----
2637
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2638
  SZAFIR ROOT CA2
2639
  ===============
2640
  -----BEGIN CERTIFICATE-----
2739
  dc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR
2740
  -----END CERTIFICATE-----
2741
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2742
  ISRG Root X1
2743
  ============
2744
  -----BEGIN CERTIFICATE-----
2930
  e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0j
2931
  q5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM=
2932
  -----END CERTIFICATE-----
2933
+
2934
+ GDCA TrustAUTH R5 ROOT
2935
+ ======================
2936
+ -----BEGIN CERTIFICATE-----
2937
+ MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCQ04xMjAw
2938
+ BgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8wHQYDVQQD
2939
+ DBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVow
2940
+ YjELMAkGA1UEBhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ
2941
+ IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0B
2942
+ AQEFAAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJjDp6L3TQs
2943
+ AlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBjTnnEt1u9ol2x8kECK62p
2944
+ OqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+uKU49tm7srsHwJ5uu4/Ts765/94Y9cnrr
2945
+ pftZTqfrlYwiOXnhLQiPzLyRuEH3FMEjqcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ
2946
+ 9Cy5WmYqsBebnh52nUpmMUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQ
2947
+ xXABZG12ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloPzgsM
2948
+ R6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3GkL30SgLdTMEZeS1SZ
2949
+ D2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeCjGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4
2950
+ oR24qoAATILnsn8JuLwwoC8N9VKejveSswoAHQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx
2951
+ 9hoh49pwBiFYFIeFd3mqgnkCAwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlR
2952
+ MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg
2953
+ p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZmDRd9FBUb1Ov9
2954
+ H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5COmSdI31R9KrO9b7eGZONn35
2955
+ 6ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ryL3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd
2956
+ +PwyvzeG5LuOmCd+uh8W4XAR8gPfJWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQ
2957
+ HtZa37dG/OaG+svgIHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBD
2958
+ F8Io2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV09tL7ECQ
2959
+ 8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQXR4EzzffHqhmsYzmIGrv
2960
+ /EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrqT8p+ck0LcIymSLumoRT2+1hEmRSuqguT
2961
+ aaApJUqlyyvdimYHFngVV3Eb7PVHhPOeMTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g==
2962
+ -----END CERTIFICATE-----
2963
+
2964
+ TrustCor RootCert CA-1
2965
+ ======================
2966
+ -----BEGIN CERTIFICATE-----
2967
+ MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYDVQQGEwJQQTEP
2968
+ MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig
2969
+ U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp
2970
+ dHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkx
2971
+ MjMxMTcyMzE2WjCBpDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFu
2972
+ YW1hIENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUGA1UECwwe
2973
+ VHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZUcnVzdENvciBSb290Q2Vy
2974
+ dCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv463leLCJhJrMxnHQFgKq1mq
2975
+ jQCj/IDHUHuO1CAmujIS2CNUSSUQIpidRtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4
2976
+ pQa81QBeCQryJ3pS/C3Vseq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0
2977
+ JEsq1pme9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CVEY4h
2978
+ gLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorWhnAbJN7+KIor0Gqw
2979
+ /Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/DeOxCbeKyKsZn3MzUOcwHwYDVR0j
2980
+ BBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
2981
+ AYYwDQYJKoZIhvcNAQELBQADggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5
2982
+ mDo4Nvu7Zp5I/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf
2983
+ ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZyonnMlo2HD6C
2984
+ qFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djtsL1Ac59v2Z3kf9YKVmgenFK+P
2985
+ 3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdNzl/HHk484IkzlQsPpTLWPFp5LBk=
2986
+ -----END CERTIFICATE-----
2987
+
2988
+ TrustCor RootCert CA-2
2989
+ ======================
2990
+ -----BEGIN CERTIFICATE-----
2991
+ MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNVBAYTAlBBMQ8w
2992
+ DQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQwIgYDVQQKDBtUcnVzdENvciBT
2993
+ eXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0
2994
+ eTEfMB0GA1UEAwwWVHJ1c3RDb3IgUm9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEy
2995
+ MzExNzI2MzlaMIGkMQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5h
2996
+ bWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U
2997
+ cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0
2998
+ IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnIG7CKqJiJJWQdsg4foDSq8Gb
2999
+ ZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9Nk
3000
+ RvRUqdw6VC0xK5mC8tkq1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1
3001
+ oYxOdqHp2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nKDOOb
3002
+ XUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hapeaz6LMvYHL1cEksr1
3003
+ /p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF3wP+TfSvPd9cW436cOGlfifHhi5q
3004
+ jxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQP
3005
+ eSghYA2FFn3XVDjxklb9tTNMg9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+Ctg
3006
+ rKAmrhQhJ8Z3mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh
3007
+ 8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAdBgNVHQ4EFgQU
3008
+ 2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6UnrybPZx9mCAZ5YwwYrIwDwYD
3009
+ VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/h
3010
+ Osh80QA9z+LqBrWyOrsGS2h60COXdKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnp
3011
+ kpfbsEZC89NiqpX+MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv
3012
+ 2wnL/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RXCI/hOWB3
3013
+ S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYaZH9bDTMJBzN7Bj8RpFxw
3014
+ PIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dv
3015
+ DDqPys/cA8GiCcjl/YBeyGBCARsaU1q7N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYU
3016
+ RpFHmygk71dSTlxCnKr3Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANE
3017
+ xdqtvArBAs8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp5KeX
3018
+ RKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu1uwJ
3019
+ -----END CERTIFICATE-----
3020
+
3021
+ TrustCor ECA-1
3022
+ ==============
3023
+ -----BEGIN CERTIFICATE-----
3024
+ MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYDVQQGEwJQQTEP
3025
+ MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig
3026
+ U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp
3027
+ dHkxFzAVBgNVBAMMDlRydXN0Q29yIEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3Mjgw
3028
+ N1owgZwxCzAJBgNVBAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5
3029
+ MSQwIgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29y
3030
+ IENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3IgRUNBLTEwggEiMA0GCSqG
3031
+ SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb3w9U73NjKYKtR8aja+3+XzP4Q1HpGjOR
3032
+ MRegdMTUpwHmspI+ap3tDvl0mEDTPwOABoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23
3033
+ xFUfJ3zSCNV2HykVh0A53ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmc
3034
+ p0yJF4OuowReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/wZ0+
3035
+ fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZFZtS6mFjBAgMBAAGj
3036
+ YzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAfBgNVHSMEGDAWgBREnkj1zG1I1KBL
3037
+ f/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
3038
+ AAOCAQEABT41XBVwm8nHc2FvcivUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u
3039
+ /ukZMjgDfxT2AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F
3040
+ hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50soIipX1TH0Xs
3041
+ J5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BIWJZpTdwHjFGTot+fDz2LYLSC
3042
+ jaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1WitJ/X5g==
3043
+ -----END CERTIFICATE-----
3044
+
3045
+ SSL.com Root Certification Authority RSA
3046
+ ========================================
3047
+ -----BEGIN CERTIFICATE-----
3048
+ MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxDjAM
3049
+ BgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24x
3050
+ MTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYw
3051
+ MjEyMTczOTM5WhcNNDEwMjEyMTczOTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx
3052
+ EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NM
3053
+ LmNvbSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcNAQEBBQAD
3054
+ ggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2RxFdHaxh3a3by/ZPkPQ/C
3055
+ Fp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aXqhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8
3056
+ P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcCC52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/ge
3057
+ oeOy3ZExqysdBP+lSgQ36YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkp
3058
+ k8zruFvh/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrFYD3Z
3059
+ fBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93EJNyAKoFBbZQ+yODJ
3060
+ gUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVcUS4cK38acijnALXRdMbX5J+tB5O2
3061
+ UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi8
3062
+ 1xtZPCvM8hnIk2snYxnP/Okm+Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4s
3063
+ bE6x/c+cCbqiM+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV
3064
+ HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4GA1UdDwEB/wQE
3065
+ AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGVcpNxJK1ok1iOMq8bs3AD/CUr
3066
+ dIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBcHadm47GUBwwyOabqG7B52B2ccETjit3E+ZUf
3067
+ ijhDPwGFpUenPUayvOUiaPd7nNgsPgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAsl
3068
+ u1OJD7OAUN5F7kR/q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjq
3069
+ erQ0cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jra6x+3uxj
3070
+ MxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90IH37hVZkLId6Tngr75qNJ
3071
+ vTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/YK9f1JmzJBjSWFupwWRoyeXkLtoh/D1JI
3072
+ Pb9s2KJELtFOt3JY04kTlf5Eq/jXixtunLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406y
3073
+ wKBjYZC6VWg3dGq2ktufoYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NI
3074
+ WuuA8ShYIc2wBlX7Jz9TkHCpBB5XJ7k=
3075
+ -----END CERTIFICATE-----
3076
+
3077
+ SSL.com Root Certification Authority ECC
3078
+ ========================================
3079
+ -----BEGIN CERTIFICATE-----
3080
+ MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMCVVMxDjAMBgNV
3081
+ BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xMTAv
3082
+ BgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEy
3083
+ MTgxNDAzWhcNNDEwMjEyMTgxNDAzWjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAO
3084
+ BgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv
3085
+ bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuBBAAiA2IA
3086
+ BEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI7Z4INcgn64mMU1jrYor+
3087
+ 8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPgCemB+vNH06NjMGEwHQYDVR0OBBYEFILR
3088
+ hXMw5zUE044CkvvlpNHEIejNMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTT
3089
+ jgKS++Wk0cQh6M0wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCW
3090
+ e+0F+S8Tkdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+gA0z
3091
+ 5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl
3092
+ -----END CERTIFICATE-----
3093
+
3094
+ SSL.com EV Root Certification Authority RSA R2
3095
+ ==============================================
3096
+ -----BEGIN CERTIFICATE-----
3097
+ MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNVBAYTAlVTMQ4w
3098
+ DAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9u
3099
+ MTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy
3100
+ MB4XDTE3MDUzMTE4MTQzN1oXDTQyMDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQI
3101
+ DAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYD
3102
+ VQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMIICIjAN
3103
+ BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvqM0fNTPl9fb69LT3w23jh
3104
+ hqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssufOePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7w
3105
+ cXHswxzpY6IXFJ3vG2fThVUCAtZJycxa4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTO
3106
+ Zw+oz12WGQvE43LrrdF9HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+
3107
+ B6KjBSYRaZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcAb9Zh
3108
+ CBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQGp8hLH94t2S42Oim
3109
+ 9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQVPWKchjgGAGYS5Fl2WlPAApiiECto
3110
+ RHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMOpgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+Slm
3111
+ JuwgUHfbSguPvuUCYHBBXtSuUDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48
3112
+ +qvWBkofZ6aYMBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV
3113
+ HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa49QaAJadz20Zp
3114
+ qJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBWs47LCp1Jjr+kxJG7ZhcFUZh1
3115
+ ++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nx
3116
+ Y/hoLVUE0fKNsKTPvDxeH3jnpaAgcLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2G
3117
+ guDKBAdRUNf/ktUM79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDz
3118
+ OFSz/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXtll9ldDz7
3119
+ CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEmKf7GUmG6sXP/wwyc5Wxq
3120
+ lD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKKQbNmC1r7fSOl8hqw/96bg5Qu0T/fkreR
3121
+ rwU7ZcegbLHNYhLDkBvjJc40vG93drEQw/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1
3122
+ hlMYegouCRw2n5H9gooiS9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX
3123
+ 9hwJ1C07mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w==
3124
+ -----END CERTIFICATE-----
3125
+
3126
+ SSL.com EV Root Certification Authority ECC
3127
+ ===========================================
3128
+ -----BEGIN CERTIFICATE-----
3129
+ MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMCVVMxDjAMBgNV
3130
+ BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xNDAy
3131
+ BgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYw
3132
+ MjEyMTgxNTIzWhcNNDEwMjEyMTgxNTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx
3133
+ EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NM
3134
+ LmNvbSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB
3135
+ BAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMAVIbc/R/fALhBYlzccBYy
3136
+ 3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1KthkuWnBaBu2+8KGwytAJKaNjMGEwHQYDVR0O
3137
+ BBYEFFvKXuXe0oGqzagtZFG22XKbl+ZPMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe
3138
+ 5d7SgarNqC1kUbbZcpuX5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJ
3139
+ N+vp1RPZytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZgh5Mm
3140
+ m7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg==
3141
+ -----END CERTIFICATE-----
3142
+
3143
+ GlobalSign Root CA - R6
3144
+ =======================
3145
+ -----BEGIN CERTIFICATE-----
3146
+ MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEgMB4GA1UECxMX
3147
+ R2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds
3148
+ b2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQxMjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9i
3149
+ YWxTaWduIFJvb3QgQ0EgLSBSNjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFs
3150
+ U2lnbjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQss
3151
+ grRIxutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1kZguSgMpE
3152
+ 3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxDaNc9PIrFsmbVkJq3MQbF
3153
+ vuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJwLnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqM
3154
+ PKq0pPbzlUoSB239jLKJz9CgYXfIWHSw1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+
3155
+ azayOeSsJDa38O+2HBNXk7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05O
3156
+ WgtH8wY2SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/hbguy
3157
+ CLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4nWUx2OVvq+aWh2IMP
3158
+ 0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpYrZxCRXluDocZXFSxZba/jJvcE+kN
3159
+ b7gu3GduyYsRtYQUigAZcIN5kZeR1BonvzceMgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQE
3160
+ AwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNV
3161
+ HSMEGDAWgBSubAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN
3162
+ nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGtIxg93eFyRJa0
3163
+ lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr6155wsTLxDKZmOMNOsIeDjHfrY
3164
+ BzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLjvUYAGm0CuiVdjaExUd1URhxN25mW7xocBFym
3165
+ Fe944Hn+Xds+qkxV/ZoVqW/hpvvfcDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr
3166
+ 3TsTjxKM4kEaSHpzoHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB1
3167
+ 0jZpnOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfspA9MRf/T
3168
+ uTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+vJJUEeKgDu+6B5dpffItK
3169
+ oZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+t
3170
+ JDfLRVpOoERIyNiwmcUVhAn21klJwGW45hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA=
3171
+ -----END CERTIFICATE-----
3172
+
3173
+ OISTE WISeKey Global Root GC CA
3174
+ ===============================
3175
+ -----BEGIN CERTIFICATE-----
3176
+ MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQswCQYDVQQGEwJD
3177
+ SDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEo
3178
+ MCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRa
3179
+ Fw00MjA1MDkwOTU4MzNaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQL
3180
+ ExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh
3181
+ bCBSb290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4nieUqjFqdr
3182
+ VCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4Wp2OQ0jnUsYd4XxiWD1Ab
3183
+ NTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd
3184
+ BgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7TrYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0E
3185
+ AwMDaAAwZQIwJsdpW9zV57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtk
3186
+ AjEA2zQgMgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9
3187
+ -----END CERTIFICATE-----
3188
+
3189
+ GTS Root R1
3190
+ ===========
3191
+ -----BEGIN CERTIFICATE-----
3192
+ MIIFWjCCA0KgAwIBAgIQbkepxUtHDA3sM9CJuRz04TANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQG
3193
+ EwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJv
3194
+ b3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAG
3195
+ A1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIi
3196
+ MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx
3197
+ 9vaMf/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7r
3198
+ aKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnW
3199
+ r4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqM
3200
+ LnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly
3201
+ 4cpk9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr
3202
+ 06zqkUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92
3203
+ wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om
3204
+ 3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNu
3205
+ JLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD
3206
+ VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEM
3207
+ BQADggIBADiWCu49tJYeX++dnAsznyvgyv3SjgofQXSlfKqE1OXyHuY3UjKcC9FhHb8owbZEKTV1
3208
+ d5iyfNm9dKyKaOOpMQkpAWBz40d8U6iQSifvS9efk+eCNs6aaAyC58/UEBZvXw6ZXPYfcX3v73sv
3209
+ fuo21pdwCxXu11xWajOl40k4DLh9+42FpLFZXvRq4d2h9mREruZRgyFmxhE+885H7pwoHyXa/6xm
3210
+ ld01D1zvICxi/ZG6qcz8WpyTgYMpl0p8WnK0OdC3d8t5/Wk6kjftbjhlRn7pYL15iJdfOBL07q9b
3211
+ gsiG1eGZbYwE8na6SfZu6W0eX6DvJ4J2QPim01hcDyxC2kLGe4g0x8HYRZvBPsVhHdljUEn2NIVq
3212
+ 4BjFbkerQUIpm/ZgDdIx02OYI5NaAIFItO/Nis3Jz5nu2Z6qNuFoS3FJFDYoOj0dzpqPJeaAcWEr
3213
+ tXvM+SUWgeExX6GjfhaknBZqlxi9dnKlC54dNuYvoS++cJEPqOba+MSSQGwlfnuzCdyyF62ARPBo
3214
+ pY+Udf90WuioAnwMCeKpSwughQtiue+hMZL77/ZRBIls6Kl0obsXs7X9SQ98POyDGCBDTtWTurQ0
3215
+ sR8WNh8M5mQ5Fkzc4P4dyKliPUDqysU0ArSuiYgzNdwsE3PYJ/HQcu51OyLemGhmW/HGY0dVHLql
3216
+ CFF1pkgl
3217
+ -----END CERTIFICATE-----
3218
+
3219
+ GTS Root R2
3220
+ ===========
3221
+ -----BEGIN CERTIFICATE-----
3222
+ MIIFWjCCA0KgAwIBAgIQbkepxlqz5yDFMJo/aFLybzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQG
3223
+ EwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJv
3224
+ b3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAG
3225
+ A1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIi
3226
+ MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTuk
3227
+ k3LvCvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo
3228
+ 7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWI
3229
+ m8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5Gm
3230
+ dFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbu
3231
+ ak7MkogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscsz
3232
+ cTJGr61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW
3233
+ Ir9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73Vululycsl
3234
+ aVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy
3235
+ 5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD
3236
+ VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEM
3237
+ BQADggIBALZp8KZ3/p7uC4Gt4cCpx/k1HUCCq+YEtN/L9x0Pg/B+E02NjO7jMyLDOfxA325BS0JT
3238
+ vhaI8dI4XsRomRyYUpOM52jtG2pzegVATX9lO9ZY8c6DR2Dj/5epnGB3GFW1fgiTz9D2PGcDFWEJ
3239
+ +YF59exTpJ/JjwGLc8R3dtyDovUMSRqodt6Sm2T4syzFJ9MHwAiApJiS4wGWAqoC7o87xdFtCjMw
3240
+ c3i5T1QWvwsHoaRc5svJXISPD+AVdyx+Jn7axEvbpxZ3B7DNdehyQtaVhJ2Gg/LkkM0JR9SLA3Da
3241
+ WsYDQvTtN6LwG1BUSw7YhN4ZKJmBR64JGz9I0cNv4rBgF/XuIwKl2gBbbZCr7qLpGzvpx0QnRY5r
3242
+ n/WkhLx3+WuXrD5RRaIRpsyF7gpo8j5QOHokYh4XIDdtak23CZvJ/KRY9bb7nE4Yu5UC56Gtmwfu
3243
+ Nmsk0jmGwZODUNKBRqhfYlcsu2xkiAhu7xNUX90txGdj08+JN7+dIPT7eoOboB6BAFDC5AwiWVIQ
3244
+ 7UNWhwD4FFKnHYuTjKJNRn8nxnGbJN7k2oaLDX5rIMHAnuFl2GqjpuiFizoHCBy69Y9Vmhh1fuXs
3245
+ gWbRIXOhNUQLgD1bnF5vKheW0YMjiGZt5obicDIvUiLnyOd/xCxgXS/Dr55FBcOEArf9LAhST4Ld
3246
+ o/DUhgkC
3247
+ -----END CERTIFICATE-----
3248
+
3249
+ GTS Root R3
3250
+ ===========
3251
+ -----BEGIN CERTIFICATE-----
3252
+ MIICDDCCAZGgAwIBAgIQbkepx2ypcyRAiQ8DVd2NHTAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJV
3253
+ UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg
3254
+ UjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE
3255
+ ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcq
3256
+ hkjOPQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUU
3257
+ Rout736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24Cej
3258
+ QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP
3259
+ 0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEAgFukfCPAlaUs3L6JbyO5o91lAFJekazInXJ0
3260
+ glMLfalAvWhgxeG4VDvBNhcl2MG9AjEAnjWSdIUlUfUk7GRSJFClH9voy8l27OyCbvWFGFPouOOa
3261
+ KaqW04MjyaR7YbPMAuhd
3262
+ -----END CERTIFICATE-----
3263
+
3264
+ GTS Root R4
3265
+ ===========
3266
+ -----BEGIN CERTIFICATE-----
3267
+ MIICCjCCAZGgAwIBAgIQbkepyIuUtui7OyrYorLBmTAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJV
3268
+ UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg
3269
+ UjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE
3270
+ ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcq
3271
+ hkjOPQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa
3272
+ 6zzuhXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqj
3273
+ QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV
3274
+ 2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNnADBkAjBqUFJ0CMRw3J5QdCHojXohw0+WbhXRIjVhLfoI
3275
+ N+4Zba3bssx9BzT1YBkstTTZbyACMANxsbqjYAuG7ZoIapVon+Kz4ZNkfF6Tpt95LY2F45TPI11x
3276
+ zPKwTdb+mciUqXWi4w==
3277
+ -----END CERTIFICATE-----
3278
+
3279
+ UCA Global G2 Root
3280
+ ==================
3281
+ -----BEGIN CERTIFICATE-----
3282
+ MIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9MQswCQYDVQQG
3283
+ EwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBHbG9iYWwgRzIgUm9vdDAeFw0x
3284
+ NjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0xCzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlU
3285
+ cnVzdDEbMBkGA1UEAwwSVUNBIEdsb2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
3286
+ MIICCgKCAgEAxeYrb3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmT
3287
+ oni9kmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzmVHqUwCoV
3288
+ 8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/RVogvGjqNO7uCEeBHANBS
3289
+ h6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDcC/Vkw85DvG1xudLeJ1uK6NjGruFZfc8o
3290
+ LTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIjtm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/
3291
+ R+zvWr9LesGtOxdQXGLYD0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBe
3292
+ KW4bHAyvj5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6DlNaBa
3293
+ 4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6iIis7nCs+dwp4wwc
3294
+ OxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznPO6Q0ibd5Ei9Hxeepl2n8pndntd97
3295
+ 8XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
3296
+ BBYEFIHEjMz15DD/pQwIX4wVZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo
3297
+ 5sOASD0Ee/ojL3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5
3298
+ 1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl1qnN3e92mI0A
3299
+ Ds0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oUb3n09tDh05S60FdRvScFDcH9
3300
+ yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LVPtateJLbXDzz2K36uGt/xDYotgIVilQsnLAX
3301
+ c47QN6MUPJiVAAwpBVueSUmxX8fjy88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHo
3302
+ jhJi6IjMtX9Gl8CbEGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZk
3303
+ bxqgDMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI+Vg7RE+x
3304
+ ygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGyYiGqhkCyLmTTX8jjfhFn
3305
+ RR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bXUB+K+wb1whnw0A==
3306
+ -----END CERTIFICATE-----
3307
+
3308
+ UCA Extended Validation Root
3309
+ ============================
3310
+ -----BEGIN CERTIFICATE-----
3311
+ MIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQG
3312
+ EwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9u
3313
+ IFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMxMDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8G
3314
+ A1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIi
3315
+ MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrs
3316
+ iWogD4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvSsPGP2KxF
3317
+ Rv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aopO2z6+I9tTcg1367r3CTu
3318
+ eUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dksHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR
3319
+ 59mzLC52LqGj3n5qiAno8geK+LLNEOfic0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH
3320
+ 0mK1lTnj8/FtDw5lhIpjVMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KR
3321
+ el7sFsLzKuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/TuDv
3322
+ B0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41Gsx2VYVdWf6/wFlth
3323
+ WG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs1+lvK9JKBZP8nm9rZ/+I8U6laUpS
3324
+ NwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQDfwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS
3325
+ 3H5aBZ8eNJr34RQwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQEL
3326
+ BQADggIBADaNl8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR
3327
+ ap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQVBcZEhrxH9cM
3328
+ aVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5c6sq1WnIeJEmMX3ixzDx/BR4
3329
+ dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb
3330
+ +7lsq+KePRXBOy5nAliRn+/4Qh8st2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOW
3331
+ F3sGPjLtx7dCvHaj2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwi
3332
+ GpWOvpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2CxR9GUeOc
3333
+ GMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmxcmtpzyKEC2IPrNkZAJSi
3334
+ djzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbMfjKaiJUINlK73nZfdklJrX+9ZSCyycEr
3335
+ dhh2n1ax
3336
+ -----END CERTIFICATE-----
3337
+
3338
+ Certigna Root CA
3339
+ ================
3340
+ -----BEGIN CERTIFICATE-----
3341
+ MIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAwWjELMAkGA1UE
3342
+ BhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAwMiA0ODE0NjMwODEwMDAzNjEZ
3343
+ MBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0xMzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjda
3344
+ MFoxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYz
3345
+ MDgxMDAwMzYxGTAXBgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4IC
3346
+ DwAwggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sOty3tRQgX
3347
+ stmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9MCiBtnyN6tMbaLOQdLNyz
3348
+ KNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPuI9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8
3349
+ JXrJhFwLrN1CTivngqIkicuQstDuI7pmTLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16
3350
+ XdG+RCYyKfHx9WzMfgIhC59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq
3351
+ 4NYKpkDfePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3YzIoej
3352
+ wpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWTCo/1VTp2lc5ZmIoJ
3353
+ lXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1kJWumIWmbat10TWuXekG9qxf5kBdI
3354
+ jzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5hwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp/
3355
+ /TBt2dzhauH8XwIDAQABo4IBGjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
3356
+ HQYDVR0OBBYEFBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of
3357
+ 1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczovL3d3d3cuY2Vy
3358
+ dGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilodHRwOi8vY3JsLmNlcnRpZ25h
3359
+ LmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYraHR0cDovL2NybC5kaGlteW90aXMuY29tL2Nl
3360
+ cnRpZ25hcm9vdGNhLmNybDANBgkqhkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOIt
3361
+ OoldaDgvUSILSo3L6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxP
3362
+ TGRGHVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH60BGM+RFq
3363
+ 7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncBlA2c5uk5jR+mUYyZDDl3
3364
+ 4bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdio2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd
3365
+ 8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1gPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS
3366
+ 6Cvu5zHbugRqh5jnxV/vfaci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaY
3367
+ tlu3zM63Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayhjWZS
3368
+ aX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw3kAP+HwV96LOPNde
3369
+ E4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0=
3370
+ -----END CERTIFICATE-----
3371
+
3372
+ emSign Root CA - G1
3373
+ ===================
3374
+ -----BEGIN CERTIFICATE-----
3375
+ MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJJTjET
3376
+ MBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRl
3377
+ ZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgx
3378
+ ODMwMDBaMGcxCzAJBgNVBAYTAklOMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVk
3379
+ aHJhIFRlY2hub2xvZ2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIB
3380
+ IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQzf2N4aLTN
3381
+ LnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO8oG0x5ZOrRkVUkr+PHB1
3382
+ cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aqd7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHW
3383
+ DV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhMtTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ
3384
+ 6DqS0hdW5TUaQBw+jSztOd9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrH
3385
+ hQIDAQABo0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQDAgEG
3386
+ MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31xPaOfG1vR2vjTnGs2
3387
+ vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjMwiI/aTvFthUvozXGaCocV685743Q
3388
+ NcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6dGNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q
3389
+ +Mri/Tm3R7nrft8EI6/6nAYH6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeih
3390
+ U80Bv2noWgbyRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx
3391
+ iN66zB+Afko=
3392
+ -----END CERTIFICATE-----
3393
+
3394
+ emSign ECC Root CA - G3
3395
+ =======================
3396
+ -----BEGIN CERTIFICATE-----
3397
+ MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEG
3398
+ A1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg
3399
+ MB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4
3400
+ MTgzMDAwWjBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11
3401
+ ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g
3402
+ RzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0WXTsuwYc
3403
+ 58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xySfvalY8L1X44uT6EYGQIr
3404
+ MgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuBzhccLikenEhjQjAOBgNVHQ8BAf8EBAMC
3405
+ AQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+D
3406
+ CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7
3407
+ jHvrZQnD+JbNR6iC8hZVdyR+EhCVBCyj
3408
+ -----END CERTIFICATE-----
3409
+
3410
+ emSign Root CA - C1
3411
+ ===================
3412
+ -----BEGIN CERTIFICATE-----
3413
+ MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx
3414
+ EzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNp
3415
+ Z24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UE
3416
+ BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQD
3417
+ ExNlbVNpZ24gUm9vdCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+up
3418
+ ufGZBczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZHdPIWoU/
3419
+ Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH3DspVpNqs8FqOp099cGX
3420
+ OFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvHGPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4V
3421
+ I5b2P/AgNBbeCsbEBEV5f6f9vtKppa+cxSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleooms
3422
+ lMuoaJuvimUnzYnu3Yy1aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+
3423
+ XJGFehiqTbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQAD
3424
+ ggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87/kOXSTKZEhVb3xEp
3425
+ /6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4kqNPEjE2NuLe/gDEo2APJ62gsIq1
3426
+ NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrGYQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9
3427
+ wC68AivTxEDkigcxHpvOJpkT+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQ
3428
+ BmIMMMAVSKeoWXzhriKi4gp6D/piq1JM4fHfyr6DDUI=
3429
+ -----END CERTIFICATE-----
3430
+
3431
+ emSign ECC Root CA - C3
3432
+ =======================
3433
+ -----BEGIN CERTIFICATE-----
3434
+ MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQGEwJVUzETMBEG
3435
+ A1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxIDAeBgNVBAMTF2VtU2lnbiBF
3436
+ Q0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UE
3437
+ BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQD
3438
+ ExdlbVNpZ24gRUNDIFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd
3439
+ 6bciMK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4OjavtisIGJAnB9
3440
+ SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0OBBYEFPtaSNCAIEDyqOkA
3441
+ B2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gA
3442
+ MGUCMQC02C8Cif22TGK6Q04ThHK1rt0c3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwU
3443
+ ZOR8loMRnLDRWmFLpg9J0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ==
3444
+ -----END CERTIFICATE-----
3445
+
3446
+ Hongkong Post Root CA 3
3447
+ =======================
3448
+ -----BEGIN CERTIFICATE-----
3449
+ MIIFzzCCA7egAwIBAgIUCBZfikyl7ADJk0DfxMauI7gcWqQwDQYJKoZIhvcNAQELBQAwbzELMAkG
3450
+ A1UEBhMCSEsxEjAQBgNVBAgTCUhvbmcgS29uZzESMBAGA1UEBxMJSG9uZyBLb25nMRYwFAYDVQQK
3451
+ Ew1Ib25na29uZyBQb3N0MSAwHgYDVQQDExdIb25na29uZyBQb3N0IFJvb3QgQ0EgMzAeFw0xNzA2
3452
+ MDMwMjI5NDZaFw00MjA2MDMwMjI5NDZaMG8xCzAJBgNVBAYTAkhLMRIwEAYDVQQIEwlIb25nIEtv
3453
+ bmcxEjAQBgNVBAcTCUhvbmcgS29uZzEWMBQGA1UEChMNSG9uZ2tvbmcgUG9zdDEgMB4GA1UEAxMX
3454
+ SG9uZ2tvbmcgUG9zdCBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz
3455
+ iNfqzg8gTr7m1gNt7ln8wlffKWihgw4+aMdoWJwcYEuJQwy51BWy7sFOdem1p+/l6TWZ5Mwc50tf
3456
+ jTMwIDNT2aa71T4Tjukfh0mtUC1Qyhi+AViiE3CWu4mIVoBc+L0sPOFMV4i707mV78vH9toxdCim
3457
+ 5lSJ9UExyuUmGs2C4HDaOym71QP1mbpV9WTRYA6ziUm4ii8F0oRFKHyPaFASePwLtVPLwpgchKOe
3458
+ sL4jpNrcyCse2m5FHomY2vkALgbpDDtw1VAliJnLzXNg99X/NWfFobxeq81KuEXryGgeDQ0URhLj
3459
+ 0mRiikKYvLTGCAj4/ahMZJx2Ab0vqWwzD9g/KLg8aQFChn5pwckGyuV6RmXpwtZQQS4/t+TtbNe/
3460
+ JgERohYpSms0BpDsE9K2+2p20jzt8NYt3eEV7KObLyzJPivkaTv/ciWxNoZbx39ri1UbSsUgYT2u
3461
+ y1DhCDq+sI9jQVMwCFk8mB13umOResoQUGC/8Ne8lYePl8X+l2oBlKN8W4UdKjk60FSh0Tlxnf0h
3462
+ +bV78OLgAo9uliQlLKAeLKjEiafv7ZkGL7YKTE/bosw3Gq9HhS2KX8Q0NEwA/RiTZxPRN+ZItIsG
3463
+ xVd7GYYKecsAyVKvQv83j+GjHno9UKtjBucVtT+2RTeUN7F+8kjDf8V1/peNRY8apxpyKBpADwID
3464
+ AQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQXnc0e
3465
+ i9Y5K3DTXNSguB+wAPzFYTAdBgNVHQ4EFgQUF53NHovWOStw01zUoLgfsAD8xWEwDQYJKoZIhvcN
3466
+ AQELBQADggIBAFbVe27mIgHSQpsY1Q7XZiNc4/6gx5LS6ZStS6LG7BJ8dNVI0lkUmcDrudHr9Egw
3467
+ W62nV3OZqdPlt9EuWSRY3GguLmLYauRwCy0gUCCkMpXRAJi70/33MvJJrsZ64Ee+bs7Lo3I6LWld
3468
+ y8joRTnU+kLBEUx3XZL7av9YROXrgZ6voJmtvqkBZss4HTzfQx/0TW60uhdG/H39h4F5ag0zD/ov
3469
+ +BS5gLNdTaqX4fnkGMX41TiMJjz98iji7lpJiCzfeT2OnpA8vUFKOt1b9pq0zj8lMH8yfaIDlNDc
3470
+ eqFS3m6TjRgm/VWsvY+b0s+v54Ysyx8Jb6NvqYTUc79NoXQbTiNg8swOqn+knEwlqLJmOzj/2ZQw
3471
+ 9nKEvmhVEA/GcywWaZMH/rFF7buiVWqw2rVKAiUnhde3t4ZEFolsgCs+l6mc1X5VTMbeRRAc6uk7
3472
+ nwNT7u56AQIWeNTowr5GdogTPyK7SBIdUgC0An4hGh6cJfTzPV4e0hz5sy229zdcxsshTrD3mUcY
3473
+ hcErulWuBurQB7Lcq9CClnXO0lD+mefPL5/ndtFhKvshuzHQqp9HpLIiyhY6UFfEW0NnxWViA0kB
3474
+ 60PZ2Pierc+xYw5F9KBaLJstxabArahH9CdMOA0uG0k7UvToiIMrVCjU8jVStDKDYmlkDJGcn5fq
3475
+ dBb9HxEGmpv0
3476
+ -----END CERTIFICATE-----
lib/stripe-gateway/init.php CHANGED
@@ -1,144 +1,151 @@
1
  <?php
2
 
3
  // Stripe singleton
4
- require(dirname(__FILE__) . '/lib/Stripe.php');
5
 
6
  // Utilities
7
- require(dirname(__FILE__) . '/lib/Util/AutoPagingIterator.php');
8
- require(dirname(__FILE__) . '/lib/Util/CaseInsensitiveArray.php');
9
- require(dirname(__FILE__) . '/lib/Util/LoggerInterface.php');
10
- require(dirname(__FILE__) . '/lib/Util/DefaultLogger.php');
11
- require(dirname(__FILE__) . '/lib/Util/RandomGenerator.php');
12
- require(dirname(__FILE__) . '/lib/Util/RequestOptions.php');
13
- require(dirname(__FILE__) . '/lib/Util/Set.php');
14
- require(dirname(__FILE__) . '/lib/Util/Util.php');
15
 
16
  // HttpClient
17
- require(dirname(__FILE__) . '/lib/HttpClient/ClientInterface.php');
18
- require(dirname(__FILE__) . '/lib/HttpClient/CurlClient.php');
19
 
20
- // Errors
21
- require(dirname(__FILE__) . '/lib/Error/Base.php');
22
- require(dirname(__FILE__) . '/lib/Error/Api.php');
23
- require(dirname(__FILE__) . '/lib/Error/ApiConnection.php');
24
- require(dirname(__FILE__) . '/lib/Error/Authentication.php');
25
- require(dirname(__FILE__) . '/lib/Error/Card.php');
26
- require(dirname(__FILE__) . '/lib/Error/Idempotency.php');
27
- require(dirname(__FILE__) . '/lib/Error/InvalidRequest.php');
28
- require(dirname(__FILE__) . '/lib/Error/Permission.php');
29
- require(dirname(__FILE__) . '/lib/Error/RateLimit.php');
30
- require(dirname(__FILE__) . '/lib/Error/SignatureVerification.php');
 
 
 
 
31
 
32
- // OAuth errors
33
- require(dirname(__FILE__) . '/lib/Error/OAuth/OAuthBase.php');
34
- require(dirname(__FILE__) . '/lib/Error/OAuth/InvalidClient.php');
35
- require(dirname(__FILE__) . '/lib/Error/OAuth/InvalidGrant.php');
36
- require(dirname(__FILE__) . '/lib/Error/OAuth/InvalidRequest.php');
37
- require(dirname(__FILE__) . '/lib/Error/OAuth/InvalidScope.php');
38
- require(dirname(__FILE__) . '/lib/Error/OAuth/UnsupportedGrantType.php');
39
- require(dirname(__FILE__) . '/lib/Error/OAuth/UnsupportedResponseType.php');
 
 
40
 
41
  // API operations
42
- require(dirname(__FILE__) . '/lib/ApiOperations/All.php');
43
- require(dirname(__FILE__) . '/lib/ApiOperations/Create.php');
44
- require(dirname(__FILE__) . '/lib/ApiOperations/Delete.php');
45
- require(dirname(__FILE__) . '/lib/ApiOperations/NestedResource.php');
46
- require(dirname(__FILE__) . '/lib/ApiOperations/Request.php');
47
- require(dirname(__FILE__) . '/lib/ApiOperations/Retrieve.php');
48
- require(dirname(__FILE__) . '/lib/ApiOperations/Update.php');
49
 
50
  // Plumbing
51
- require(dirname(__FILE__) . '/lib/ApiResponse.php');
52
- require(dirname(__FILE__) . '/lib/RequestTelemetry.php');
53
- require(dirname(__FILE__) . '/lib/StripeObject.php');
54
- require(dirname(__FILE__) . '/lib/ApiRequestor.php');
55
- require(dirname(__FILE__) . '/lib/ApiResource.php');
56
- require(dirname(__FILE__) . '/lib/SingletonApiResource.php');
57
 
58
  // Stripe API Resources
59
- require(dirname(__FILE__) . '/lib/Account.php');
60
- require(dirname(__FILE__) . '/lib/AccountLink.php');
61
- require(dirname(__FILE__) . '/lib/AlipayAccount.php');
62
- require(dirname(__FILE__) . '/lib/ApplePayDomain.php');
63
- require(dirname(__FILE__) . '/lib/ApplicationFee.php');
64
- require(dirname(__FILE__) . '/lib/ApplicationFeeRefund.php');
65
- require(dirname(__FILE__) . '/lib/Balance.php');
66
- require(dirname(__FILE__) . '/lib/BalanceTransaction.php');
67
- require(dirname(__FILE__) . '/lib/BankAccount.php');
68
- require(dirname(__FILE__) . '/lib/BitcoinReceiver.php');
69
- require(dirname(__FILE__) . '/lib/BitcoinTransaction.php');
70
- require(dirname(__FILE__) . '/lib/Capability.php');
71
- require(dirname(__FILE__) . '/lib/Card.php');
72
- require(dirname(__FILE__) . '/lib/Charge.php');
73
- require(dirname(__FILE__) . '/lib/Checkout/Session.php');
74
- require(dirname(__FILE__) . '/lib/Collection.php');
75
- require(dirname(__FILE__) . '/lib/CountrySpec.php');
76
- require(dirname(__FILE__) . '/lib/Coupon.php');
77
- require(dirname(__FILE__) . '/lib/CreditNote.php');
78
- require(dirname(__FILE__) . '/lib/Customer.php');
79
- require(dirname(__FILE__) . '/lib/CustomerBalanceTransaction.php');
80
- require(dirname(__FILE__) . '/lib/Discount.php');
81
- require(dirname(__FILE__) . '/lib/Dispute.php');
82
- require(dirname(__FILE__) . '/lib/EphemeralKey.php');
83
- require(dirname(__FILE__) . '/lib/Event.php');
84
- require(dirname(__FILE__) . '/lib/ExchangeRate.php');
85
- require(dirname(__FILE__) . '/lib/File.php');
86
- require(dirname(__FILE__) . '/lib/FileLink.php');
87
- require(dirname(__FILE__) . '/lib/FileUpload.php');
88
- require(dirname(__FILE__) . '/lib/Invoice.php');
89
- require(dirname(__FILE__) . '/lib/InvoiceItem.php');
90
- require(dirname(__FILE__) . '/lib/InvoiceLineItem.php');
91
- require(dirname(__FILE__) . '/lib/IssuerFraudRecord.php');
92
- require(dirname(__FILE__) . '/lib/Issuing/Authorization.php');
93
- require(dirname(__FILE__) . '/lib/Issuing/Card.php');
94
- require(dirname(__FILE__) . '/lib/Issuing/CardDetails.php');
95
- require(dirname(__FILE__) . '/lib/Issuing/Cardholder.php');
96
- require(dirname(__FILE__) . '/lib/Issuing/Dispute.php');
97
- require(dirname(__FILE__) . '/lib/Issuing/Transaction.php');
98
- require(dirname(__FILE__) . '/lib/LoginLink.php');
99
- require(dirname(__FILE__) . '/lib/Order.php');
100
- require(dirname(__FILE__) . '/lib/OrderItem.php');
101
- require(dirname(__FILE__) . '/lib/OrderReturn.php');
102
- require(dirname(__FILE__) . '/lib/PaymentIntent.php');
103
- require(dirname(__FILE__) . '/lib/PaymentMethod.php');
104
- require(dirname(__FILE__) . '/lib/Payout.php');
105
- require(dirname(__FILE__) . '/lib/Person.php');
106
- require(dirname(__FILE__) . '/lib/Plan.php');
107
- require(dirname(__FILE__) . '/lib/Product.php');
108
- require(dirname(__FILE__) . '/lib/Radar/EarlyFraudWarning.php');
109
- require(dirname(__FILE__) . '/lib/Radar/ValueList.php');
110
- require(dirname(__FILE__) . '/lib/Radar/ValueListItem.php');
111
- require(dirname(__FILE__) . '/lib/Recipient.php');
112
- require(dirname(__FILE__) . '/lib/RecipientTransfer.php');
113
- require(dirname(__FILE__) . '/lib/Refund.php');
114
- require(dirname(__FILE__) . '/lib/Reporting/ReportRun.php');
115
- require(dirname(__FILE__) . '/lib/Reporting/ReportType.php');
116
- require(dirname(__FILE__) . '/lib/Review.php');
117
- require(dirname(__FILE__) . '/lib/SetupIntent.php');
118
- require(dirname(__FILE__) . '/lib/SKU.php');
119
- require(dirname(__FILE__) . '/lib/Sigma/ScheduledQueryRun.php');
120
- require(dirname(__FILE__) . '/lib/Source.php');
121
- require(dirname(__FILE__) . '/lib/SourceTransaction.php');
122
- require(dirname(__FILE__) . '/lib/Subscription.php');
123
- require(dirname(__FILE__) . '/lib/SubscriptionItem.php');
124
- require(dirname(__FILE__) . '/lib/SubscriptionSchedule.php');
125
- require(dirname(__FILE__) . '/lib/TaxId.php');
126
- require(dirname(__FILE__) . '/lib/TaxRate.php');
127
- require(dirname(__FILE__) . '/lib/Terminal/ConnectionToken.php');
128
- require(dirname(__FILE__) . '/lib/Terminal/Location.php');
129
- require(dirname(__FILE__) . '/lib/Terminal/Reader.php');
130
- require(dirname(__FILE__) . '/lib/ThreeDSecure.php');
131
- require(dirname(__FILE__) . '/lib/Token.php');
132
- require(dirname(__FILE__) . '/lib/Topup.php');
133
- require(dirname(__FILE__) . '/lib/Transfer.php');
134
- require(dirname(__FILE__) . '/lib/TransferReversal.php');
135
- require(dirname(__FILE__) . '/lib/UsageRecord.php');
136
- require(dirname(__FILE__) . '/lib/UsageRecordSummary.php');
 
 
137
 
138
  // OAuth
139
- require(dirname(__FILE__) . '/lib/OAuth.php');
 
140
 
141
  // Webhooks
142
- require(dirname(__FILE__) . '/lib/Webhook.php');
143
- require(dirname(__FILE__) . '/lib/WebhookEndpoint.php');
144
- require(dirname(__FILE__) . '/lib/WebhookSignature.php');
1
  <?php
2
 
3
  // Stripe singleton
4
+ require __DIR__ . '/lib/Stripe.php';
5
 
6
  // Utilities
7
+ require __DIR__ . '/lib/Util/CaseInsensitiveArray.php';
8
+ require __DIR__ . '/lib/Util/LoggerInterface.php';
9
+ require __DIR__ . '/lib/Util/DefaultLogger.php';
10
+ require __DIR__ . '/lib/Util/RandomGenerator.php';
11
+ require __DIR__ . '/lib/Util/RequestOptions.php';
12
+ require __DIR__ . '/lib/Util/Set.php';
13
+ require __DIR__ . '/lib/Util/Util.php';
 
14
 
15
  // HttpClient
16
+ require __DIR__ . '/lib/HttpClient/ClientInterface.php';
17
+ require __DIR__ . '/lib/HttpClient/CurlClient.php';
18
 
19
+ // Exceptions
20
+ require __DIR__ . '/lib/Exception/ExceptionInterface.php';
21
+ require __DIR__ . '/lib/Exception/ApiErrorException.php';
22
+ require __DIR__ . '/lib/Exception/ApiConnectionException.php';
23
+ require __DIR__ . '/lib/Exception/AuthenticationException.php';
24
+ require __DIR__ . '/lib/Exception/BadMethodCallException.php';
25
+ require __DIR__ . '/lib/Exception/CardException.php';
26
+ require __DIR__ . '/lib/Exception/IdempotencyException.php';
27
+ require __DIR__ . '/lib/Exception/InvalidArgumentException.php';
28
+ require __DIR__ . '/lib/Exception/InvalidRequestException.php';
29
+ require __DIR__ . '/lib/Exception/PermissionException.php';
30
+ require __DIR__ . '/lib/Exception/RateLimitException.php';
31
+ require __DIR__ . '/lib/Exception/SignatureVerificationException.php';
32
+ require __DIR__ . '/lib/Exception/UnexpectedValueException.php';
33
+ require __DIR__ . '/lib/Exception/UnknownApiErrorException.php';
34
 
35
+ // OAuth exceptions
36
+ require __DIR__ . '/lib/Exception/OAuth/ExceptionInterface.php';
37
+ require __DIR__ . '/lib/Exception/OAuth/OAuthErrorException.php';
38
+ require __DIR__ . '/lib/Exception/OAuth/InvalidClientException.php';
39
+ require __DIR__ . '/lib/Exception/OAuth/InvalidGrantException.php';
40
+ require __DIR__ . '/lib/Exception/OAuth/InvalidRequestException.php';
41
+ require __DIR__ . '/lib/Exception/OAuth/InvalidScopeException.php';
42
+ require __DIR__ . '/lib/Exception/OAuth/UnknownOAuthErrorException.php';
43
+ require __DIR__ . '/lib/Exception/OAuth/UnsupportedGrantTypeException.php';
44
+ require __DIR__ . '/lib/Exception/OAuth/UnsupportedResponseTypeException.php';
45
 
46
  // API operations
47
+ require __DIR__ . '/lib/ApiOperations/All.php';
48
+ require __DIR__ . '/lib/ApiOperations/Create.php';
49
+ require __DIR__ . '/lib/ApiOperations/Delete.php';
50
+ require __DIR__ . '/lib/ApiOperations/NestedResource.php';
51
+ require __DIR__ . '/lib/ApiOperations/Request.php';
52
+ require __DIR__ . '/lib/ApiOperations/Retrieve.php';
53
+ require __DIR__ . '/lib/ApiOperations/Update.php';
54
 
55
  // Plumbing
56
+ require __DIR__ . '/lib/ApiResponse.php';
57
+ require __DIR__ . '/lib/RequestTelemetry.php';
58
+ require __DIR__ . '/lib/StripeObject.php';
59
+ require __DIR__ . '/lib/ApiRequestor.php';
60
+ require __DIR__ . '/lib/ApiResource.php';
61
+ require __DIR__ . '/lib/SingletonApiResource.php';
62
 
63
  // Stripe API Resources
64
+ require __DIR__ . '/lib/Account.php';
65
+ require __DIR__ . '/lib/AccountLink.php';
66
+ require __DIR__ . '/lib/AlipayAccount.php';
67
+ require __DIR__ . '/lib/ApplePayDomain.php';
68
+ require __DIR__ . '/lib/ApplicationFee.php';
69
+ require __DIR__ . '/lib/ApplicationFeeRefund.php';
70
+ require __DIR__ . '/lib/Balance.php';
71
+ require __DIR__ . '/lib/BalanceTransaction.php';
72
+ require __DIR__ . '/lib/BankAccount.php';
73
+ require __DIR__ . '/lib/BitcoinReceiver.php';
74
+ require __DIR__ . '/lib/BitcoinTransaction.php';
75
+ require __DIR__ . '/lib/Capability.php';
76
+ require __DIR__ . '/lib/Card.php';
77
+ require __DIR__ . '/lib/Charge.php';
78
+ require __DIR__ . '/lib/Checkout/Session.php';
79
+ require __DIR__ . '/lib/Collection.php';
80
+ require __DIR__ . '/lib/CountrySpec.php';
81
+ require __DIR__ . '/lib/Coupon.php';
82
+ require __DIR__ . '/lib/CreditNote.php';
83
+ require __DIR__ . '/lib/CreditNoteLineItem.php';
84
+ require __DIR__ . '/lib/Customer.php';
85
+ require __DIR__ . '/lib/CustomerBalanceTransaction.php';
86
+ require __DIR__ . '/lib/Discount.php';
87
+ require __DIR__ . '/lib/Dispute.php';
88
+ require __DIR__ . '/lib/EphemeralKey.php';
89
+ require __DIR__ . '/lib/ErrorObject.php';
90
+ require __DIR__ . '/lib/Event.php';
91
+ require __DIR__ . '/lib/ExchangeRate.php';
92
+ require __DIR__ . '/lib/File.php';
93
+ require __DIR__ . '/lib/FileLink.php';
94
+ require __DIR__ . '/lib/Invoice.php';
95
+ require __DIR__ . '/lib/InvoiceItem.php';
96
+ require __DIR__ . '/lib/InvoiceLineItem.php';
97
+ require __DIR__ . '/lib/Issuing/Authorization.php';
98
+ require __DIR__ . '/lib/Issuing/Card.php';
99
+ require __DIR__ . '/lib/Issuing/CardDetails.php';
100
+ require __DIR__ . '/lib/Issuing/Cardholder.php';
101
+ require __DIR__ . '/lib/Issuing/Dispute.php';
102
+ require __DIR__ . '/lib/Issuing/Transaction.php';
103
+ require __DIR__ . '/lib/LoginLink.php';
104
+ require __DIR__ . '/lib/Mandate.php';
105
+ require __DIR__ . '/lib/Order.php';
106
+ require __DIR__ . '/lib/OrderItem.php';
107
+ require __DIR__ . '/lib/OrderReturn.php';
108
+ require __DIR__ . '/lib/PaymentIntent.php';
109
+ require __DIR__ . '/lib/PaymentMethod.php';
110
+ require __DIR__ . '/lib/Payout.php';
111
+ require __DIR__ . '/lib/Person.php';
112
+ require __DIR__ . '/lib/Plan.php';
113
+ require __DIR__ . '/lib/Product.php';
114
+ require __DIR__ . '/lib/Radar/EarlyFraudWarning.php';
115
+ require __DIR__ . '/lib/Radar/ValueList.php';
116
+ require __DIR__ . '/lib/Radar/ValueListItem.php';
117
+ require __DIR__ . '/lib/Recipient.php';
118
+ require __DIR__ . '/lib/RecipientTransfer.php';
119
+ require __DIR__ . '/lib/Refund.php';
120
+ require __DIR__ . '/lib/Reporting/ReportRun.php';
121
+ require __DIR__ . '/lib/Reporting/ReportType.php';
122
+ require __DIR__ . '/lib/Review.php';
123
+ require __DIR__ . '/lib/SetupIntent.php';
124
+ require __DIR__ . '/lib/Sigma/ScheduledQueryRun.php';
125
+ require __DIR__ . '/lib/SKU.php';
126
+ require __DIR__ . '/lib/Source.php';
127
+ require __DIR__ . '/lib/SourceTransaction.php';
128
+ require __DIR__ . '/lib/Subscription.php';
129
+ require __DIR__ . '/lib/SubscriptionItem.php';
130
+ require __DIR__ . '/lib/SubscriptionSchedule.php';
131
+ require __DIR__ . '/lib/TaxId.php';
132
+ require __DIR__ . '/lib/TaxRate.php';
133
+ require __DIR__ . '/lib/Terminal/ConnectionToken.php';
134
+ require __DIR__ . '/lib/Terminal/Location.php';
135
+ require __DIR__ . '/lib/Terminal/Reader.php';
136
+ require __DIR__ . '/lib/ThreeDSecure.php';
137
+ require __DIR__ . '/lib/Token.php';
138
+ require __DIR__ . '/lib/Topup.php';
139
+ require __DIR__ . '/lib/Transfer.php';
140
+ require __DIR__ . '/lib/TransferReversal.php';
141
+ require __DIR__ . '/lib/UsageRecord.php';
142
+ require __DIR__ . '/lib/UsageRecordSummary.php';
143
+ require __DIR__ . '/lib/WebhookEndpoint.php';
144
 
145
  // OAuth
146
+ require __DIR__ . '/lib/OAuth.php';
147
+ require __DIR__ . '/lib/OAuthErrorObject.php';
148
 
149
  // Webhooks
150
+ require __DIR__ . '/lib/Webhook.php';
151
+ require __DIR__ . '/lib/WebhookSignature.php';
 
lib/stripe-gateway/lib/Account.php CHANGED
@@ -3,136 +3,166 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class Account
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property mixed $business_profile
11
- * @property string $business_type
12
- * @property mixed $capabilities
13
- * @property bool $charges_enabled
14
- * @property mixed $company
15
- * @property string $country
16
- * @property int $created
17
- * @property string $default_currency
18
- * @property bool $details_submitted
19
- * @property string $email
20
- * @property Collection $external_accounts
21
- * @property mixed $individual
22
- * @property StripeObject $metadata
23
- * @property bool $payouts_enabled
24
- * @property mixed $requirements
25
- * @property mixed $settings
26
- * @property mixed $tos_acceptance
27
- * @property string $type
28
  *
29
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  */
31
  class Account extends ApiResource
32
  {
33
- const OBJECT_NAME = "account";
34
 
35
  use ApiOperations\All;
36
  use ApiOperations\Create;
37
  use ApiOperations\Delete;
38
  use ApiOperations\NestedResource;
39
- use ApiOperations\Retrieve {
40
- retrieve as protected _retrieve;
41
- }
42
  use ApiOperations\Update;
43
 
44
- /**
45
- * Possible string representations of an account's business type.
46
- * @link https://stripe.com/docs/api/accounts/object#account_object-business_type
47
- */
48
- const BUSINESS_TYPE_COMPANY = 'company';
49
  const BUSINESS_TYPE_INDIVIDUAL = 'individual';
 
50
 
51
- /**
52
- * Possible string representations of an account's capabilities.
53
- * @link https://stripe.com/docs/api/accounts/object#account_object-capabilities
54
- */
55
- const CAPABILITY_CARD_PAYMENTS = 'card_payments';
56
- const CAPABILITY_LEGACY_PAYMENTS = 'legacy_payments';
57
  const CAPABILITY_PLATFORM_PAYMENTS = 'platform_payments';
 
58
 
59
- /**
60
- * Possible string representations of an account's capability status.
61
- * @link https://stripe.com/docs/api/accounts/object#account_object-capabilities
62
- */
63
- const CAPABILITY_STATUS_ACTIVE = 'active';
64
  const CAPABILITY_STATUS_INACTIVE = 'inactive';
65
- const CAPABILITY_STATUS_PENDING = 'pending';
66
 
67
- /**
68
- * Possible string representations of an account's type.
69
- * @link https://stripe.com/docs/api/accounts/object#account_object-type
70
- */
71
- const TYPE_CUSTOM = 'custom';
72
- const TYPE_EXPRESS = 'express';
73
  const TYPE_STANDARD = 'standard';
74
 
 
 
 
 
75
  public static function getSavedNestedResources()
76
  {
77
  static $savedNestedResources = null;
78
- if ($savedNestedResources === null) {
79
  $savedNestedResources = new Util\Set([
80
  'external_account',
81
  'bank_account',
82
  ]);
83
  }
 
84
  return $savedNestedResources;
85
  }
86
 
87
- const PATH_CAPABILITIES = '/capabilities';
88
- const PATH_EXTERNAL_ACCOUNTS = '/external_accounts';
89
- const PATH_LOGIN_LINKS = '/login_links';
90
- const PATH_PERSONS = '/persons';
91
-
92
  public function instanceUrl()
93
  {
94
- if ($this['id'] === null) {
95
  return '/v1/account';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96
  } else {
97
- return parent::instanceUrl();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
98
  }
 
 
99
  }
100
 
101
  /**
102
- * @param array|string|null $id The ID of the account to retrieve, or an
103
- * options array containing an `id` key.
104
- * @param array|string|null $opts
105
  *
106
- * @return Account
 
 
107
  */
108
  public static function retrieve($id = null, $opts = null)
109
  {
110
- if (!$opts && is_string($id) && substr($id, 0, 3) === 'sk_') {
111
  $opts = $id;
112
  $id = null;
113
  }
 
114
  return self::_retrieve($id, $opts);
115
  }
116
 
117
  /**
118
- * @param array|null $params
119
- * @param array|string|null $opts
120
  *
121
- * @return Account The rejected account.
122
- */
123
- public function reject($params = null, $opts = null)
124
- {
125
- $url = $this->instanceUrl() . '/reject';
126
- list($response, $opts) = $this->_request('post', $url, $params, $opts);
127
- $this->refreshFrom($response, $opts);
128
- return $this;
129
- }
130
-
131
- /**
132
- * @param array|null $clientId
133
- * @param array|string|null $opts
134
  *
135
- * @return StripeObject Object containing the response from the API.
136
  */
137
  public function deauthorize($clientId = null, $opts = null)
138
  {
@@ -140,48 +170,61 @@ class Account extends ApiResource
140
  'client_id' => $clientId,
141
  'stripe_user_id' => $this->id,
142
  ];
 
143
  return OAuth::deauthorize($params, $opts);
144
  }
145
 
146
- /*
147
- * Capabilities methods
148
- * We can not add the capabilities() method today as the Account object already has a
149
- * capabilities property which is a hash and not the sub-list of capabilities.
150
- */
151
-
152
-
153
  /**
154
- * @param string $id The ID of the account to which the capability belongs.
155
- * @param string $capabilityId The ID of the capability to retrieve.
156
- * @param array|null $params
157
- * @param array|string|null $opts
158
  *
159
- * @return Capability
160
  */
161
- public static function retrieveCapability($id, $capabilityId, $params = null, $opts = null)
162
  {
163
- return self::_retrieveNestedResource($id, static::PATH_CAPABILITIES, $capabilityId, $params, $opts);
 
 
 
 
 
164
  }
165
 
166
  /**
167
- * @param string $id The ID of the account to which the capability belongs.
168
- * @param string $capabilityId The ID of the capability to update.
169
- * @param array|null $params
170
- * @param array|string|null $opts
171
  *
172
- * @return Capability
 
 
173
  */
174
- public static function updateCapability($id, $capabilityId, $params = null, $opts = null)
175
  {
176
- return self::_updateNestedResource($id, static::PATH_CAPABILITIES, $capabilityId, $params, $opts);
 
 
 
 
177
  }
178
 
 
 
 
 
 
 
 
 
179
  /**
180
- * @param string $id The ID of the account on which to retrieve the capabilities.
181
- * @param array|null $params
182
- * @param array|string|null $opts
183
  *
184
- * @return Collection The list of capabilities.
 
 
185
  */
186
  public static function allCapabilities($id, $params = null, $opts = null)
187
  {
@@ -189,140 +232,165 @@ class Account extends ApiResource
189
  }
190
 
191
  /**
192
- * @param string $id The ID of the account on which to create the external account.
193
- * @param array|null $params
194
- * @param array|string|null $opts
 
 
 
195
  *
196
- * @return BankAccount|Card
197
  */
198
- public static function createExternalAccount($id, $params = null, $opts = null)
199
  {
200
- return self::_createNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $params, $opts);
201
  }
202
 
203
  /**
204
- * @param string $id The ID of the account to which the external account belongs.
205
- * @param string $externalAccountId The ID of the external account to retrieve.
206
- * @param array|null $params
207
- * @param array|string|null $opts
 
 
208
  *
209
- * @return BankAccount|Card
210
  */
211
- public static function retrieveExternalAccount($id, $externalAccountId, $params = null, $opts = null)
212
  {
213
- return self::_retrieveNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts);
214
  }
215
 
 
 
216
  /**
217
- * @param string $id The ID of the account to which the external account belongs.
218
- * @param string $externalAccountId The ID of the external account to update.
219
- * @param array|null $params
220
- * @param array|string|null $opts
 
221
  *
222
- * @return BankAccount|Card
223
  */
224
- public static function updateExternalAccount($id, $externalAccountId, $params = null, $opts = null)
225
  {
226
- return self::_updateNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts);
227
  }
228
 
229
  /**
230
- * @param string $id The ID of the account to which the external account belongs.
231
- * @param string $externalAccountId The ID of the external account to delete.
232
- * @param array|null $params
233
- * @param array|string|null $opts
234
  *
235
- * @return BankAccount|Card
 
 
236
  */
237
- public static function deleteExternalAccount($id, $externalAccountId, $params = null, $opts = null)
238
  {
239
- return self::_deleteNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts);
240
  }
241
 
242
  /**
243
- * @param string $id The ID of the account on which to retrieve the external accounts.
244
- * @param array|null $params
245
- * @param array|string|null $opts
 
246
  *
247
- * @return Collection The list of external accounts (BankAccount or Card).
 
 
248
  */
249
- public static function allExternalAccounts($id, $params = null, $opts = null)
250
  {
251
- return self::_allNestedResources($id, static::PATH_EXTERNAL_ACCOUNTS, $params, $opts);
252
  }
253
 
254
  /**
255
- * @param string $id The ID of the account on which to create the login link.
256
- * @param array|null $params
257
- * @param array|string|null $opts
 
258
  *
259
- * @return LoginLink
 
 
260
  */
261
- public static function createLoginLink($id, $params = null, $opts = null)
262
  {
263
- return self::_createNestedResource($id, static::PATH_LOGIN_LINKS, $params, $opts);
264
  }
265
 
266
  /**
267
- * @param array|null $params
268
- * @param array|string|null $options
 
 
 
 
269
  *
270
- * @return Collection The list of persons.
271
  */
272
- public function persons($params = null, $options = null)
273
  {
274
- $url = $this->instanceUrl() . '/persons';
275
- list($response, $opts) = $this->_request('get', $url, $params, $options);
276
- $obj = Util\Util::convertToStripeObject($response, $opts);
277
- $obj->setLastResponse($response);
278
- return $obj;
279
  }
280
 
 
 
281
  /**
282
- * @param string $id The ID of the account on which to create the person.
283
- * @param array|null $params
284
- * @param array|string|null $opts
285
  *
286
- * @return Person
 
 
287
  */
288
- public static function createPerson($id, $params = null, $opts = null)
289
  {
290
- return self::_createNestedResource($id, static::PATH_PERSONS, $params, $opts);
291
  }
292
 
 
 
293
  /**
294
- * @param string $id The ID of the account to which the person belongs.
295
- * @param string $personId The ID of the person to retrieve.
296
- * @param array|null $params
297
- * @param array|string|null $opts
298
  *
299
- * @return Person
 
 
300
  */
301
- public static function retrievePerson($id, $personId, $params = null, $opts = null)
302
  {
303
- return self::_retrieveNestedResource($id, static::PATH_PERSONS, $personId, $params, $opts);
304
  }
305
 
306
  /**
307
- * @param string $id The ID of the account to which the person belongs.
308
- * @param string $personId The ID of the person to update.
309
- * @param array|null $params
310
- * @param array|string|null $opts
 
311
  *
312
- * @return Person
313
  */
314
- public static function updatePerson($id, $personId, $params = null, $opts = null)
315
  {
316
- return self::_updateNestedResource($id, static::PATH_PERSONS, $personId, $params, $opts);
317
  }
318
 
319
  /**
320
- * @param string $id The ID of the account to which the person belongs.
321
- * @param string $personId The ID of the person to delete.
322
- * @param array|null $params
323
- * @param array|string|null $opts
 
 
324
  *
325
- * @return Person
326
  */
327
  public static function deletePerson($id, $personId, $params = null, $opts = null)
328
  {
@@ -330,63 +398,32 @@ class Account extends ApiResource
330
  }
331
 
332
  /**
333
- * @param string $id The ID of the account on which to retrieve the persons.
334
- * @param array|null $params
335
- * @param array|string|null $opts
 
336
  *
337
- * @return Collection The list of persons.
 
 
338
  */
339
- public static function allPersons($id, $params = null, $opts = null)
340
- {
341
- return self::_allNestedResources($id, static::PATH_PERSONS, $params, $opts);
342
- }
343
-
344
- public function serializeParameters($force = false)
345
  {
346
- $update = parent::serializeParameters($force);
347
- if (isset($this->_values['legal_entity'])) {
348
- $entity = $this['legal_entity'];
349
- if (isset($entity->_values['additional_owners'])) {
350
- $owners = $entity['additional_owners'];
351
- $entityUpdate = isset($update['legal_entity']) ? $update['legal_entity'] : [];
352
- $entityUpdate['additional_owners'] = $this->serializeAdditionalOwners($entity, $owners);
353
- $update['legal_entity'] = $entityUpdate;
354
- }
355
- }
356
- if (isset($this->_values['individual'])) {
357
- $individual = $this['individual'];
358
- if (($individual instanceof Person) && !isset($update['individual'])) {
359
- $update['individual'] = $individual->serializeParameters($force);
360
- }
361
- }
362
- return $update;
363
  }
364
 
365
- private function serializeAdditionalOwners($legalEntity, $additionalOwners)
 
 
 
 
 
 
 
 
 
 
366
  {
367
- if (isset($legalEntity->_originalValues['additional_owners'])) {
368
- $originalValue = $legalEntity->_originalValues['additional_owners'];
369
- } else {
370
- $originalValue = [];
371
- }
372
- if (($originalValue) && (count($originalValue) > count($additionalOwners))) {
373
- throw new \InvalidArgumentException(
374
- "You cannot delete an item from an array, you must instead set a new array"
375
- );
376
- }
377
-
378
- $updateArr = [];
379
- foreach ($additionalOwners as $i => $v) {
380
- $update = ($v instanceof StripeObject) ? $v->serializeParameters() : $v;
381
-
382
- if ($update !== []) {
383
- if (!$originalValue ||
384
- !array_key_exists($i, $originalValue) ||
385
- ($update != $legalEntity->serializeParamsValue($originalValue[$i], null, false, true))) {
386
- $updateArr[$i] = $update;
387
- }
388
- }
389
- }
390
- return $updateArr;
391
  }
392
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * This is an object representing a Stripe account. You can retrieve it to see
7
+ * properties on the account like its current e-mail address or if the account is
8
+ * enabled yet to make live charges.
9
  *
10
+ * Some properties, marked below, are available only to platforms that want to <a
11
+ * href="https://stripe.com/docs/connect/accounts">create and manage Express or
12
+ * Custom accounts</a>.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  *
14
+ * @property string $id Unique identifier for the object.
15
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
16
+ * @property null|\Stripe\StripeObject $business_profile Business information about the account.
17
+ * @property null|string $business_type The business type.
18
+ * @property \Stripe\StripeObject $capabilities
19
+ * @property bool $charges_enabled Whether the account can create live charges.
20
+ * @property \Stripe\StripeObject $company
21
+ * @property string $country The account's country.
22
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
23
+ * @property string $default_currency Three-letter ISO currency code representing the default currency for the account. This must be a currency that <a href="https://stripe.com/docs/payouts">Stripe supports in the account's country</a>.
24
+ * @property bool $details_submitted Whether account details have been submitted. Standard accounts cannot receive payouts before this is true.
25
+ * @property null|string $email The primary user's email address.
26
+ * @property \Stripe\Collection $external_accounts External accounts (bank accounts and debit cards) currently attached to this account
27
+ * @property \Stripe\Person $individual <p>This is an object representing a person associated with a Stripe account.</p><p>Related guide: <a href="https://stripe.com/docs/connect/identity-verification-api#person-information">Handling Identity Verification with the API</a>.</p>
28
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
29
+ * @property bool $payouts_enabled Whether Stripe can send payouts to this account.
30
+ * @property \Stripe\StripeObject $requirements
31
+ * @property null|\Stripe\StripeObject $settings Options for customizing how the account functions within Stripe.
32
+ * @property \Stripe\StripeObject $tos_acceptance
33
+ * @property string $type The Stripe account type. Can be <code>standard</code>, <code>express</code>, or <code>custom</code>.
34
  */
35
  class Account extends ApiResource
36
  {
37
+ const OBJECT_NAME = 'account';
38
 
39
  use ApiOperations\All;
40
  use ApiOperations\Create;
41
  use ApiOperations\Delete;
42
  use ApiOperations\NestedResource;
 
 
 
43
  use ApiOperations\Update;
44
 
45
+ const BUSINESS_TYPE_COMPANY = 'company';
46
+ const BUSINESS_TYPE_GOVERNMENT_ENTITY = 'government_entity';
 
 
 
47
  const BUSINESS_TYPE_INDIVIDUAL = 'individual';
48
+ const BUSINESS_TYPE_NON_PROFIT = 'non_profit';
49
 
50
+ const CAPABILITY_CARD_PAYMENTS = 'card_payments';
51
+ const CAPABILITY_LEGACY_PAYMENTS = 'legacy_payments';
 
 
 
 
52
  const CAPABILITY_PLATFORM_PAYMENTS = 'platform_payments';
53
+ const CAPABILITY_TRANSFERS = 'transfers';
54
 
55
+ const CAPABILITY_STATUS_ACTIVE = 'active';
 
 
 
 
56
  const CAPABILITY_STATUS_INACTIVE = 'inactive';
57
+ const CAPABILITY_STATUS_PENDING = 'pending';
58
 
59
+ const TYPE_CUSTOM = 'custom';
60
+ const TYPE_EXPRESS = 'express';
 
 
 
 
61
  const TYPE_STANDARD = 'standard';
62
 
63
+ use ApiOperations\Retrieve {
64
+ retrieve as protected _retrieve;
65
+ }
66
+
67
  public static function getSavedNestedResources()
68
  {
69
  static $savedNestedResources = null;
70
+ if (null === $savedNestedResources) {
71
  $savedNestedResources = new Util\Set([
72
  'external_account',
73
  'bank_account',
74
  ]);
75
  }
76
+
77
  return $savedNestedResources;
78
  }
79
 
 
 
 
 
 
80
  public function instanceUrl()
81
  {
82
+ if (null === $this['id']) {
83
  return '/v1/account';
84
+ }
85
+
86
+ return parent::instanceUrl();
87
+ }
88
+
89
+ public function serializeParameters($force = false)
90
+ {
91
+ $update = parent::serializeParameters($force);
92
+ if (isset($this->_values['legal_entity'])) {
93
+ $entity = $this['legal_entity'];
94
+ if (isset($entity->_values['additional_owners'])) {
95
+ $owners = $entity['additional_owners'];
96
+ $entityUpdate = isset($update['legal_entity']) ? $update['legal_entity'] : [];
97
+ $entityUpdate['additional_owners'] = $this->serializeAdditionalOwners($entity, $owners);
98
+ $update['legal_entity'] = $entityUpdate;
99
+ }
100
+ }
101
+ if (isset($this->_values['individual'])) {
102
+ $individual = $this['individual'];
103
+ if (($individual instanceof Person) && !isset($update['individual'])) {
104
+ $update['individual'] = $individual->serializeParameters($force);
105
+ }
106
+ }
107
+
108
+ return $update;
109
+ }
110
+
111
+ private function serializeAdditionalOwners($legalEntity, $additionalOwners)
112
+ {
113
+ if (isset($legalEntity->_originalValues['additional_owners'])) {
114
+ $originalValue = $legalEntity->_originalValues['additional_owners'];
115
  } else {
116
+ $originalValue = [];
117
+ }
118
+ if (($originalValue) && (\count($originalValue) > \count($additionalOwners))) {
119
+ throw new Exception\InvalidArgumentException(
120
+ 'You cannot delete an item from an array, you must instead set a new array'
121
+ );
122
+ }
123
+
124
+ $updateArr = [];
125
+ foreach ($additionalOwners as $i => $v) {
126
+ $update = ($v instanceof StripeObject) ? $v->serializeParameters() : $v;
127
+
128
+ if ($update !== []) {
129
+ if (!$originalValue ||
130
+ !\array_key_exists($i, $originalValue) ||
131
+ ($update !== $legalEntity->serializeParamsValue($originalValue[$i], null, false, true))) {
132
+ $updateArr[$i] = $update;
133
+ }
134
+ }
135
  }
136
+
137
+ return $updateArr;
138
  }
139
 
140
  /**
141
+ * @param null|array|string $id the ID of the account to retrieve, or an
142
+ * options array containing an `id` key
143
+ * @param null|array|string $opts
144
  *
145
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
146
+ *
147
+ * @return \Stripe\Account
148
  */
149
  public static function retrieve($id = null, $opts = null)
150
  {
151
+ if (!$opts && \is_string($id) && 'sk_' === \substr($id, 0, 3)) {
152
  $opts = $id;
153
  $id = null;
154
  }
155
+
156
  return self::_retrieve($id, $opts);
157
  }
158
 
159
  /**
160
+ * @param null|array $clientId
161
+ * @param null|array|string $opts
162
  *
163
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
 
 
 
 
 
 
 
 
 
 
 
 
164
  *
165
+ * @return \Stripe\StripeObject object containing the response from the API
166
  */
167
  public function deauthorize($clientId = null, $opts = null)
168
  {
170
  'client_id' => $clientId,
171
  'stripe_user_id' => $this->id,
172
  ];
173
+
174
  return OAuth::deauthorize($params, $opts);
175
  }
176
 
 
 
 
 
 
 
 
177
  /**
178
+ * @param null|array $params
179
+ * @param null|array|string $opts
180
+ *
181
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
182
  *
183
+ * @return \Stripe\Collection the list of persons
184
  */
185
+ public function persons($params = null, $opts = null)
186
  {
187
+ $url = $this->instanceUrl() . '/persons';
188
+ list($response, $opts) = $this->_request('get', $url, $params, $opts);
189
+ $obj = Util\Util::convertToStripeObject($response, $opts);
190
+ $obj->setLastResponse($response);
191
+
192
+ return $obj;
193
  }
194
 
195
  /**
196
+ * @param null|array $params
197
+ * @param null|array|string $opts
 
 
198
  *
199
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
200
+ *
201
+ * @return Account the rejected account
202
  */
203
+ public function reject($params = null, $opts = null)
204
  {
205
+ $url = $this->instanceUrl() . '/reject';
206
+ list($response, $opts) = $this->_request('post', $url, $params, $opts);
207
+ $this->refreshFrom($response, $opts);
208
+
209
+ return $this;
210
  }
211
 
212
+ /*
213
+ * Capabilities methods
214
+ * We can not add the capabilities() method today as the Account object already has a
215
+ * capabilities property which is a hash and not the sub-list of capabilities.
216
+ */
217
+
218
+ const PATH_CAPABILITIES = '/capabilities';
219
+
220
  /**
221
+ * @param string $id the ID of the account on which to retrieve the capabilities
222
+ * @param null|array $params
223
+ * @param null|array|string $opts
224
  *
225
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
226
+ *
227
+ * @return \Stripe\Collection the list of capabilities
228
  */
229
  public static function allCapabilities($id, $params = null, $opts = null)
230
  {
232
  }
233
 
234
  /**
235
+ * @param string $id the ID of the account to which the capability belongs
236
+ * @param string $capabilityId the ID of the capability to retrieve
237
+ * @param null|array $params
238
+ * @param null|array|string $opts
239
+ *
240
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
241
  *
242
+ * @return \Stripe\Capability
243
  */
244
+ public static function retrieveCapability($id, $capabilityId, $params = null, $opts = null)
245
  {
246
+ return self::_retrieveNestedResource($id, static::PATH_CAPABILITIES, $capabilityId, $params, $opts);
247
  }
248
 
249
  /**
250
+ * @param string $id the ID of the account to which the capability belongs
251
+ * @param string $capabilityId the ID of the capability to update
252
+ * @param null|array $params
253
+ * @param null|array|string $opts
254
+ *
255
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
256
  *
257
+ * @return \Stripe\Capability
258
  */
259
+ public static function updateCapability($id, $capabilityId, $params = null, $opts = null)
260
  {
261
+ return self::_updateNestedResource($id, static::PATH_CAPABILITIES, $capabilityId, $params, $opts);
262
  }
263
 
264
+ const PATH_EXTERNAL_ACCOUNTS = '/external_accounts';
265
+
266
  /**
267
+ * @param string $id the ID of the account on which to retrieve the external accounts
268
+ * @param null|array $params
269
+ * @param null|array|string $opts
270
+ *
271
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
272
  *
273
+ * @return \Stripe\Collection the list of external accounts (BankAccount or Card)
274
  */
275
+ public static function allExternalAccounts($id, $params = null, $opts = null)
276
  {
277
+ return self::_allNestedResources($id, static::PATH_EXTERNAL_ACCOUNTS, $params, $opts);
278
  }
279
 
280
  /**
281
+ * @param string $id the ID of the account on which to create the external account
282
+ * @param null|array $params
283
+ * @param null|array|string $opts
 
284
  *
285
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
286
+ *
287
+ * @return \Stripe\BankAccount|\Stripe\Card
288
  */
289
+ public static function createExternalAccount($id, $params = null, $opts = null)
290
  {
291
+ return self::_createNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $params, $opts);
292
  }
293
 
294
  /**
295
+ * @param string $id the ID of the account to which the external account belongs
296
+ * @param string $externalAccountId the ID of the external account to delete
297
+ * @param null|array $params
298
+ * @param null|array|string $opts
299
  *
300
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
301
+ *
302
+ * @return \Stripe\BankAccount|\Stripe\Card
303
  */
304
+ public static function deleteExternalAccount($id, $externalAccountId, $params = null, $opts = null)
305
  {
306
+ return self::_deleteNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts);
307
  }
308
 
309
  /**
310
+ * @param string $id the ID of the account to which the external account belongs
311
+ * @param string $externalAccountId the ID of the external account to retrieve
312
+ * @param null|array $params
313
+ * @param null|array|string $opts
314
  *
315
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
316
+ *
317
+ * @return \Stripe\BankAccount|\Stripe\Card
318
  */
319
+ public static function retrieveExternalAccount($id, $externalAccountId, $params = null, $opts = null)
320
  {
321
+ return self::_retrieveNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts);
322
  }
323
 
324
  /**
325
+ * @param string $id the ID of the account to which the external account belongs
326
+ * @param string $externalAccountId the ID of the external account to update
327
+ * @param null|array $params
328
+ * @param null|array|string $opts
329
+ *
330
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
331
  *
332
+ * @return \Stripe\BankAccount|\Stripe\Card
333
  */
334
+ public static function updateExternalAccount($id, $externalAccountId, $params = null, $opts = null)
335
  {
336
+ return self::_updateNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts);
 
 
 
 
337
  }
338
 
339
+ const PATH_LOGIN_LINKS = '/login_links';
340
+
341
  /**
342
+ * @param string $id the ID of the account on which to create the login link
343
+ * @param null|array $params
344
+ * @param null|array|string $opts
345
  *
346
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
347
+ *
348
+ * @return \Stripe\LoginLink
349
  */
350
+ public static function createLoginLink($id, $params = null, $opts = null)
351
  {
352
+ return self::_createNestedResource($id, static::PATH_LOGIN_LINKS, $params, $opts);
353
  }
354
 
355
+ const PATH_PERSONS = '/persons';
356
+
357
  /**
358
+ * @param string $id the ID of the account on which to retrieve the persons
359
+ * @param null|array $params
360
+ * @param null|array|string $opts
 
361
  *
362
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
363
+ *
364
+ * @return \Stripe\Collection the list of persons
365
  */
366
+ public static function allPersons($id, $params = null, $opts = null)
367
  {
368
+ return self::_allNestedResources($id, static::PATH_PERSONS, $params, $opts);
369
  }
370
 
371
  /**
372
+ * @param string $id the ID of the account on which to create the person
373
+ * @param null|array $params
374
+ * @param null|array|string $opts
375
+ *
376
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
377
  *
378
+ * @return \Stripe\Person
379
  */
380
+ public static function createPerson($id, $params = null, $opts = null)
381
  {
382
+ return self::_createNestedResource($id, static::PATH_PERSONS, $params, $opts);
383
  }
384
 
385
  /**
386
+ * @param string $id the ID of the account to which the person belongs
387
+ * @param string $personId the ID of the person to delete
388
+ * @param null|array $params
389
+ * @param null|array|string $opts
390
+ *
391
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
392
  *
393
+ * @return \Stripe\Person
394
  */
395
  public static function deletePerson($id, $personId, $params = null, $opts = null)
396
  {
398
  }
399
 
400
  /**
401
+ * @param string $id the ID of the account to which the person belongs
402
+ * @param string $personId the ID of the person to retrieve
403
+ * @param null|array $params
404
+ * @param null|array|string $opts
405
  *
406
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
407
+ *
408
+ * @return \Stripe\Person
409
  */
410
+ public static function retrievePerson($id, $personId, $params = null, $opts = null)
 
 
 
 
 
411
  {
412
+ return self::_retrieveNestedResource($id, static::PATH_PERSONS, $personId, $params, $opts);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
413
  }
414
 
415
+ /**
416
+ * @param string $id the ID of the account to which the person belongs
417
+ * @param string $personId the ID of the person to update
418
+ * @param null|array $params
419
+ * @param null|array|string $opts
420
+ *
421
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
422
+ *
423
+ * @return \Stripe\Person
424
+ */
425
+ public static function updatePerson($id, $personId, $params = null, $opts = null)
426
  {
427
+ return self::_updateNestedResource($id, static::PATH_PERSONS, $personId, $params, $opts);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
428
  }
429
  }
lib/stripe-gateway/lib/AccountLink.php CHANGED
@@ -3,18 +3,22 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class AccountLink
 
 
7
  *
8
- * @property string $object
9
- * @property int $created
10
- * @property int $expires_at
11
- * @property string $url
12
  *
13
- * @package Stripe
 
 
 
14
  */
15
  class AccountLink extends ApiResource
16
  {
17
- const OBJECT_NAME = "account_link";
18
 
19
  use ApiOperations\Create;
20
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * Account Links are the means by which a Connect platform grants a connected
7
+ * account permission to access Stripe-hosted applications, such as Connect
8
+ * Onboarding.
9
  *
10
+ * Related guide: <a
11
+ * href="https://stripe.com/docs/connect/connect-onboarding">Connect
12
+ * Onboarding</a>.
 
13
  *
14
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
15
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
16
+ * @property int $expires_at The timestamp at which this account link will expire.
17
+ * @property string $url The URL for the account link.
18
  */
19
  class AccountLink extends ApiResource
20
  {
21
+ const OBJECT_NAME = 'account_link';
22
 
23
  use ApiOperations\Create;
24
  }
lib/stripe-gateway/lib/AlipayAccount.php CHANGED
@@ -3,16 +3,14 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class AlipayAccount
7
- *
8
- * @package Stripe
9
  *
10
  * @deprecated Alipay accounts are deprecated. Please use the sources API instead.
11
- * @link https://stripe.com/docs/sources/alipay
12
  */
13
  class AlipayAccount extends ApiResource
14
  {
15
- const OBJECT_NAME = "alipay_account";
16
 
17
  use ApiOperations\Delete;
18
  use ApiOperations\Update;
@@ -28,44 +26,50 @@ class AlipayAccount extends ApiResource
28
  $parent = $this['customer'];
29
  $path = 'sources';
30
  } else {
31
- $msg = "Alipay accounts cannot be accessed without a customer ID.";
32
- throw new Error\InvalidRequest($msg, null);
 
33
  }
34
- $parentExtn = urlencode(Util\Util::utf8($parent));
35
- $extn = urlencode(Util\Util::utf8($this['id']));
36
- return "$base/$parentExtn/$path/$extn";
 
37
  }
38
 
39
  /**
40
  * @param array|string $_id
41
- * @param array|string|null $_opts
42
  *
43
- * @throws \Stripe\Error\InvalidRequest
44
  *
45
  * @deprecated Alipay accounts are deprecated. Please use the sources API instead.
46
- * @link https://stripe.com/docs/sources/alipay
47
  */
48
  public static function retrieve($_id, $_opts = null)
49
  {
50
- $msg = "Alipay accounts cannot be accessed without a customer ID. " .
51
- "Retrieve an Alipay account using \$customer->sources->retrieve('alipay_account_id') instead.";
52
- throw new Error\InvalidRequest($msg, null);
 
 
53
  }
54
 
55
  /**
56
  * @param string $_id
57
- * @param array|null $_params
58
- * @param array|string|null $_options
59
  *
60
- * @throws \Stripe\Error\InvalidRequest
61
  *
62
  * @deprecated Alipay accounts are deprecated. Please use the sources API instead.
63
- * @link https://stripe.com/docs/sources/alipay
64
  */
65
  public static function update($_id, $_params = null, $_options = null)
66
  {
67
- $msg = "Alipay accounts cannot be accessed without a customer ID. " .
68
- "Call save() on \$customer->sources->retrieve('alipay_account_id') instead.";
69
- throw new Error\InvalidRequest($msg, null);
 
 
70
  }
71
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * Class AlipayAccount.
 
 
7
  *
8
  * @deprecated Alipay accounts are deprecated. Please use the sources API instead.
9
+ * @see https://stripe.com/docs/sources/alipay
10
  */
11
  class AlipayAccount extends ApiResource
12
  {
13
+ const OBJECT_NAME = 'alipay_account';
14
 
15
  use ApiOperations\Delete;
16
  use ApiOperations\Update;
26
  $parent = $this['customer'];
27
  $path = 'sources';
28
  } else {
29
+ $msg = 'Alipay accounts cannot be accessed without a customer ID.';
30
+
31
+ throw new Exception\UnexpectedValueException($msg);
32
  }
33
+ $parentExtn = \urlencode(Util\Util::utf8($parent));
34
+ $extn = \urlencode(Util\Util::utf8($this['id']));
35
+
36
+ return "{$base}/{$parentExtn}/{$path}/{$extn}";
37
  }
38
 
39
  /**
40
  * @param array|string $_id
41
+ * @param null|array|string $_opts
42
  *
43
+ * @throws \Stripe\Exception\BadMethodCallException
44
  *
45
  * @deprecated Alipay accounts are deprecated. Please use the sources API instead.
46
+ * @see https://stripe.com/docs/sources/alipay
47
  */
48
  public static function retrieve($_id, $_opts = null)
49
  {
50
+ $msg = 'Alipay accounts cannot be retrieved without a customer ID. ' .
51
+ 'Retrieve an Alipay account using `Customer::retrieveSource(' .
52
+ "'customer_id', 'alipay_account_id')`.";
53
+
54
+ throw new Exception\BadMethodCallException($msg);
55
  }
56
 
57
  /**
58
  * @param string $_id
59
+ * @param null|array $_params
60
+ * @param null|array|string $_options
61
  *
62
+ * @throws \Stripe\Exception\BadMethodCallException
63
  *
64
  * @deprecated Alipay accounts are deprecated. Please use the sources API instead.
65
+ * @see https://stripe.com/docs/sources/alipay
66
  */
67
  public static function update($_id, $_params = null, $_options = null)
68
  {
69
+ $msg = 'Alipay accounts cannot be updated without a customer ID. ' .
70
+ 'Update an Alipay account using `Customer::updateSource(' .
71
+ "'customer_id', 'alipay_account_id', \$updateParams)`.";
72
+
73
+ throw new Exception\BadMethodCallException($msg);
74
  }
75
  }
lib/stripe-gateway/lib/ApiOperations/All.php CHANGED
@@ -10,8 +10,10 @@ namespace Stripe\ApiOperations;
10
  trait All
11
  {
12
  /**
13
- * @param array|null $params
14
- * @param array|string|null $opts
 
 
15
  *
16
  * @return \Stripe\Collection of ApiResources
17
  */
@@ -22,13 +24,14 @@ trait All
22
 
23
  list($response, $opts) = static::_staticRequest('get', $url, $params, $opts);
24
  $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
25
- if (!is_a($obj, 'Stripe\\Collection')) {
26
- $class = get_class($obj);
27
- $message = "Expected type \"Stripe\\Collection\", got \"$class\" instead";
28
- throw new \Stripe\Error\Api($message);
29
  }
30
  $obj->setLastResponse($response);
31
- $obj->setRequestParams($params);
 
32
  return $obj;
33
  }
34
  }
10
  trait All
11
  {
12
  /**
13
+ * @param null|array $params
14
+ * @param null|array|string $opts
15
+ *
16
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
17
  *
18
  * @return \Stripe\Collection of ApiResources
19
  */
24
 
25
  list($response, $opts) = static::_staticRequest('get', $url, $params, $opts);
26
  $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
27
+ if (!($obj instanceof \Stripe\Collection)) {
28
+ throw new \Stripe\Exception\UnexpectedValueException(
29
+ 'Expected type ' . \Stripe\Collection::class . ', got "' . \get_class($obj) . '" instead.'
30
+ );
31
  }
32
  $obj->setLastResponse($response);
33
+ $obj->setFilters($params);
34
+
35
  return $obj;
36
  }
37
  }
lib/stripe-gateway/lib/ApiOperations/Create.php CHANGED
@@ -10,10 +10,12 @@ namespace Stripe\ApiOperations;
10
  trait Create
11
  {
12
  /**
13
- * @param array|null $params
14
- * @param array|string|null $options
15
  *
16
- * @return static The created resource.
 
 
17
  */
18
  public static function create($params = null, $options = null)
19
  {
@@ -23,6 +25,7 @@ trait Create
23
  list($response, $opts) = static::_staticRequest('post', $url, $params, $options);
24
  $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
25
  $obj->setLastResponse($response);
 
26
  return $obj;
27
  }
28
  }
10
  trait Create
11
  {
12
  /**
13
+ * @param null|array $params
14
+ * @param null|array|string $options
15
  *
16
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
17
+ *
18
+ * @return static the created resource
19
  */
20
  public static function create($params = null, $options = null)
21
  {
25
  list($response, $opts) = static::_staticRequest('post', $url, $params, $options);
26
  $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
27
  $obj->setLastResponse($response);
28
+
29
  return $obj;
30
  }
31
  }
lib/stripe-gateway/lib/ApiOperations/Delete.php CHANGED
@@ -10,10 +10,12 @@ namespace Stripe\ApiOperations;
10
  trait Delete
11
  {
12
  /**
13
- * @param array|null $params
14
- * @param array|string|null $opts
15
  *
16
- * @return static The deleted resource.
 
 
17
  */
18
  public function delete($params = null, $opts = null)
19
  {
@@ -22,6 +24,7 @@ trait Delete
22
  $url = $this->instanceUrl();
23
  list($response, $opts) = $this->_request('delete', $url, $params, $opts);
24
  $this->refreshFrom($response, $opts);
 
25
  return $this;
26
  }
27
  }
10
  trait Delete
11
  {
12
  /**
13
+ * @param null|array $params
14
+ * @param null|array|string $opts
15
  *
16
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
17
+ *
18
+ * @return static the deleted resource
19
  */
20
  public function delete($params = null, $opts = null)
21
  {
24
  $url = $this->instanceUrl();
25
  list($response, $opts) = $this->_request('delete', $url, $params, $opts);
26
  $this->refreshFrom($response, $opts);
27
+
28
  return $this;
29
  }
30
  }
lib/stripe-gateway/lib/ApiOperations/NestedResource.php CHANGED
@@ -12,8 +12,8 @@ trait NestedResource
12
  /**
13
  * @param string $method
14
  * @param string $url
15
- * @param array|null $params
16
- * @param array|string|null $options
17
  *
18
  * @return \Stripe\StripeObject
19
  */
@@ -24,95 +24,112 @@ trait NestedResource
24
  list($response, $opts) = static::_staticRequest($method, $url, $params, $options);
25
  $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
26
  $obj->setLastResponse($response);
 
27
  return $obj;
28
  }
29
 
30
  /**
31
  * @param string $id
32
  * @param string $nestedPath
33
- * @param string|null $nestedId
34
  *
35
  * @return string
36
  */
37
  protected static function _nestedResourceUrl($id, $nestedPath, $nestedId = null)
38
  {
39
  $url = static::resourceUrl($id) . $nestedPath;
40
- if ($nestedId !== null) {
41
- $url .= "/$nestedId";
42
  }
 
43
  return $url;
44
  }
45
 
46
  /**
47
  * @param string $id
48
  * @param string $nestedPath
49
- * @param array|null $params
50
- * @param array|string|null $options
 
 
51
  *
52
  * @return \Stripe\StripeObject
53
  */
54
  protected static function _createNestedResource($id, $nestedPath, $params = null, $options = null)
55
  {
56
  $url = static::_nestedResourceUrl($id, $nestedPath);
 
57
  return self::_nestedResourceOperation('post', $url, $params, $options);
58
  }
59
 
60
  /**
61
  * @param string $id
62
  * @param string $nestedPath
63
- * @param string|null $nestedId
64
- * @param array|null $params
65
- * @param array|string|null $options
 
 
66
  *
67
  * @return \Stripe\StripeObject
68
  */
69
  protected static function _retrieveNestedResource($id, $nestedPath, $nestedId, $params = null, $options = null)
70
  {
71
  $url = static::_nestedResourceUrl($id, $nestedPath, $nestedId);
 
72
  return self::_nestedResourceOperation('get', $url, $params, $options);
73
  }
74
 
75
  /**
76
  * @param string $id
77
  * @param string $nestedPath
78
- * @param string|null $nestedId
79
- * @param array|null $params
80
- * @param array|string|null $options
 
 
81
  *
82
  * @return \Stripe\StripeObject
83
  */
84
  protected static function _updateNestedResource($id, $nestedPath, $nestedId, $params = null, $options = null)
85
  {
86
  $url = static::_nestedResourceUrl($id, $nestedPath, $nestedId);
 
87
  return self::_nestedResourceOperation('post', $url, $params, $options);
88
  }
89
 
90
  /**
91
  * @param string $id
92
  * @param string $nestedPath
93
- * @param string|null $nestedId
94
- * @param array|null $params
95
- * @param array|string|null $options
 
 
96
  *
97
  * @return \Stripe\StripeObject
98
  */
99
  protected static function _deleteNestedResource($id, $nestedPath, $nestedId, $params = null, $options = null)
100
  {
101
  $url = static::_nestedResourceUrl($id, $nestedPath, $nestedId);
 
102
  return self::_nestedResourceOperation('delete', $url, $params, $options);
103
  }
104
 
105
  /**
106
  * @param string $id
107
  * @param string $nestedPath
108
- * @param array|null $params
109
- * @param array|string|null $options
 
 
110
  *
111
  * @return \Stripe\StripeObject
112
  */
113
  protected static function _allNestedResources($id, $nestedPath, $params = null, $options = null)
114
  {
115
  $url = static::_nestedResourceUrl($id, $nestedPath);
 
116
  return self::_nestedResourceOperation('get', $url, $params, $options);
117
  }
118
  }
12
  /**
13
  * @param string $method
14
  * @param string $url
15
+ * @param null|array $params
16
+ * @param null|array|string $options
17
  *
18
  * @return \Stripe\StripeObject
19
  */
24
  list($response, $opts) = static::_staticRequest($method, $url, $params, $options);
25
  $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
26
  $obj->setLastResponse($response);
27
+
28
  return $obj;
29
  }
30
 
31
  /**
32
  * @param string $id
33
  * @param string $nestedPath
34
+ * @param null|string $nestedId
35
  *
36
  * @return string
37
  */
38
  protected static function _nestedResourceUrl($id, $nestedPath, $nestedId = null)
39
  {
40
  $url = static::resourceUrl($id) . $nestedPath;
41
+ if (null !== $nestedId) {
42
+ $url .= "/{$nestedId}";
43
  }
44
+
45
  return $url;
46
  }
47
 
48
  /**
49
  * @param string $id
50
  * @param string $nestedPath
51
+ * @param null|array $params
52
+ * @param null|array|string $options
53
+ *
54
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
55
  *
56
  * @return \Stripe\StripeObject
57
  */
58
  protected static function _createNestedResource($id, $nestedPath, $params = null, $options = null)
59
  {
60
  $url = static::_nestedResourceUrl($id, $nestedPath);
61
+
62
  return self::_nestedResourceOperation('post', $url, $params, $options);
63
  }
64
 
65
  /**
66
  * @param string $id
67
  * @param string $nestedPath
68
+ * @param null|string $nestedId
69
+ * @param null|array $params
70
+ * @param null|array|string $options
71
+ *
72
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
73
  *
74
  * @return \Stripe\StripeObject
75
  */
76
  protected static function _retrieveNestedResource($id, $nestedPath, $nestedId, $params = null, $options = null)
77
  {
78
  $url = static::_nestedResourceUrl($id, $nestedPath, $nestedId);
79
+
80
  return self::_nestedResourceOperation('get', $url, $params, $options);
81
  }
82
 
83
  /**
84
  * @param string $id
85
  * @param string $nestedPath
86
+ * @param null|string $nestedId
87
+ * @param null|array $params
88
+ * @param null|array|string $options
89
+ *
90
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
91
  *
92
  * @return \Stripe\StripeObject
93
  */
94
  protected static function _updateNestedResource($id, $nestedPath, $nestedId, $params = null, $options = null)
95
  {
96
  $url = static::_nestedResourceUrl($id, $nestedPath, $nestedId);
97
+
98
  return self::_nestedResourceOperation('post', $url, $params, $options);
99
  }
100
 
101
  /**
102
  * @param string $id
103
  * @param string $nestedPath
104
+ * @param null|string $nestedId
105
+ * @param null|array $params
106
+ * @param null|array|string $options
107
+ *
108
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
109
  *
110
  * @return \Stripe\StripeObject
111
  */
112
  protected static function _deleteNestedResource($id, $nestedPath, $nestedId, $params = null, $options = null)
113
  {
114
  $url = static::_nestedResourceUrl($id, $nestedPath, $nestedId);
115
+
116
  return self::_nestedResourceOperation('delete', $url, $params, $options);
117
  }
118
 
119
  /**
120
  * @param string $id
121
  * @param string $nestedPath
122
+ * @param null|array $params
123
+ * @param null|array|string $options
124
+ *
125
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
126
  *
127
  * @return \Stripe\StripeObject
128
  */
129
  protected static function _allNestedResources($id, $nestedPath, $params = null, $options = null)
130
  {
131
  $url = static::_nestedResourceUrl($id, $nestedPath);
132
+
133
  return self::_nestedResourceOperation('get', $url, $params, $options);
134
  }
135
  }
lib/stripe-gateway/lib/ApiOperations/Request.php CHANGED
@@ -10,18 +10,19 @@ namespace Stripe\ApiOperations;
10
  trait Request
11
  {
12
  /**
13
- * @param array|null|mixed $params The list of parameters to validate
14
  *
15
- * @throws \Stripe\Error\Api if $params exists and is not an array
16
  */
17
  protected static function _validateParams($params = null)
18
  {
19
- if ($params && !is_array($params)) {
20
- $message = "You must pass an array as the first argument to Stripe API "
21
- . "method calls. (HINT: an example call to create a charge "
22
  . "would be: \"Stripe\\Charge::create(['amount' => 100, "
23
  . "'currency' => 'usd', 'source' => 'tok_1234'])\")";
24
- throw new \Stripe\Error\Api($message);
 
25
  }
26
  }
27
 
@@ -29,7 +30,9 @@ trait Request
29
  * @param string $method HTTP method ('get', 'post', etc.)
30
  * @param string $url URL for the request
31
  * @param array $params list of parameters for the request
32
- * @param array|string|null $options
 
 
33
  *
34
  * @return array tuple containing (the JSON response, $options)
35
  */
@@ -38,6 +41,7 @@ trait Request
38
  $opts = $this->_opts->merge($options);
39
  list($resp, $options) = static::_staticRequest($method, $url, $params, $opts);
40
  $this->setLastResponse($resp);
 
41
  return [$resp->json, $options];
42
  }
43
 
@@ -45,7 +49,9 @@ trait Request
45
  * @param string $method HTTP method ('get', 'post', etc.)
46
  * @param string $url URL for the request
47
  * @param array $params list of parameters for the request
48
- * @param array|string|null $options
 
 
49
  *
50
  * @return array tuple containing (the JSON response, $options)
51
  */
@@ -56,6 +62,7 @@ trait Request
56
  $requestor = new \Stripe\ApiRequestor($opts->apiKey, $baseUrl);
57
  list($response, $opts->apiKey) = $requestor->request($method, $url, $params, $opts->headers);
58
  $opts->discardNonPersistentHeaders();
 
59
  return [$response, $opts];
60
  }
61
  }
10
  trait Request
11
  {
12
  /**
13
+ * @param null|array|mixed $params The list of parameters to validate
14
  *
15
+ * @throws \Stripe\Exception\InvalidArgumentException if $params exists and is not an array
16
  */
17
  protected static function _validateParams($params = null)
18
  {
19
+ if ($params && !\is_array($params)) {
20
+ $message = 'You must pass an array as the first argument to Stripe API '
21
+ . 'method calls. (HINT: an example call to create a charge '
22
  . "would be: \"Stripe\\Charge::create(['amount' => 100, "
23
  . "'currency' => 'usd', 'source' => 'tok_1234'])\")";
24
+
25
+ throw new \Stripe\Exception\InvalidArgumentException($message);
26
  }
27
  }
28
 
30
  * @param string $method HTTP method ('get', 'post', etc.)
31
  * @param string $url URL for the request
32
  * @param array $params list of parameters for the request
33
+ * @param null|array|string $options
34
+ *
35
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
36
  *
37
  * @return array tuple containing (the JSON response, $options)
38
  */
41
  $opts = $this->_opts->merge($options);
42
  list($resp, $options) = static::_staticRequest($method, $url, $params, $opts);
43
  $this->setLastResponse($resp);
44
+
45
  return [$resp->json, $options];
46
  }
47
 
49
  * @param string $method HTTP method ('get', 'post', etc.)
50
  * @param string $url URL for the request
51
  * @param array $params list of parameters for the request
52
+ * @param null|array|string $options
53
+ *
54
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
55
  *
56
  * @return array tuple containing (the JSON response, $options)
57
  */
62
  $requestor = new \Stripe\ApiRequestor($opts->apiKey, $baseUrl);
63
  list($response, $opts->apiKey) = $requestor->request($method, $url, $params, $opts->headers);
64
  $opts->discardNonPersistentHeaders();
65
+
66
  return [$response, $opts];
67
  }
68
  }
lib/stripe-gateway/lib/ApiOperations/Retrieve.php CHANGED
@@ -11,9 +11,11 @@ namespace Stripe\ApiOperations;
11
  trait Retrieve
12
  {
13
  /**
14
- * @param array|string $id The ID of the API resource to retrieve,
15
- * or an options array containing an `id` key.
16
- * @param array|string|null $opts
 
 
17
  *
18
  * @return static
19
  */
@@ -22,6 +24,7 @@ trait Retrieve
22
  $opts = \Stripe\Util\RequestOptions::parse($opts);
23
  $instance = new static($id, $opts);
24
  $instance->refresh();
 
25
  return $instance;
26
  }
27
  }
11
  trait Retrieve
12
  {
13
  /**
14
+ * @param array|string $id the ID of the API resource to retrieve,
15
+ * or an options array containing an `id` key
16
+ * @param null|array|string $opts
17
+ *
18
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
19
  *
20
  * @return static
21
  */
24
  $opts = \Stripe\Util\RequestOptions::parse($opts);
25
  $instance = new static($id, $opts);
26
  $instance->refresh();
27
+
28
  return $instance;
29
  }
30
  }
lib/stripe-gateway/lib/ApiOperations/Update.php CHANGED
@@ -11,11 +11,13 @@ namespace Stripe\ApiOperations;
11
  trait Update
12
  {
13
  /**
14
- * @param string $id The ID of the resource to update.
15
- * @param array|null $params
16
- * @param array|string|null $opts
17
  *
18
- * @return static The updated resource.
 
 
19
  */
20
  public static function update($id, $params = null, $opts = null)
21
  {
@@ -25,22 +27,26 @@ trait Update
25
  list($response, $opts) = static::_staticRequest('post', $url, $params, $opts);
26
  $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
27
  $obj->setLastResponse($response);
 
28
  return $obj;
29
  }
30
 
31
  /**
32
- * @param array|string|null $opts
33
  *
34
- * @return static The saved resource.
 
 
35
  */
36
  public function save($opts = null)
37
  {
38
  $params = $this->serializeParameters();
39
- if (count($params) > 0) {
40
  $url = $this->instanceUrl();
41
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
42
  $this->refreshFrom($response, $opts);
43
  }
 
44
  return $this;
45
  }
46
  }
11
  trait Update
12
  {
13
  /**
14
+ * @param string $id the ID of the resource to update
15
+ * @param null|array $params
16
+ * @param null|array|string $opts
17
  *
18
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
19
+ *
20
+ * @return static the updated resource
21
  */
22
  public static function update($id, $params = null, $opts = null)
23
  {
27
  list($response, $opts) = static::_staticRequest('post', $url, $params, $opts);
28
  $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
29
  $obj->setLastResponse($response);
30
+
31
  return $obj;
32
  }
33
 
34
  /**
35
+ * @param null|array|string $opts
36
  *
37
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
38
+ *
39
+ * @return static the saved resource
40
  */
41
  public function save($opts = null)
42
  {
43
  $params = $this->serializeParameters();
44
+ if (\count($params) > 0) {
45
  $url = $this->instanceUrl();
46
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
47
  $this->refreshFrom($response, $opts);
48
  }
49
+
50
  return $this;
51
  }
52
  }
lib/stripe-gateway/lib/ApiRequestor.php CHANGED
@@ -3,14 +3,12 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class ApiRequestor
7
- *
8
- * @package Stripe
9
  */
10
  class ApiRequestor
11
  {
12
  /**
13
- * @var string|null
14
  */
15
  private $_apiKey;
16
 
@@ -32,8 +30,8 @@ class ApiRequestor
32
  /**
33
  * ApiRequestor constructor.
34
  *
35
- * @param string|null $apiKey
36
- * @param string|null $apiBase
37
  */
38
  public function __construct($apiKey = null, $apiBase = null)
39
  {
@@ -45,77 +43,71 @@ class ApiRequestor
45
  }
46
 
47
  /**
48
- * Creates a telemetry json blob for use in 'X-Stripe-Client-Telemetry' headers
 
49
  * @static
50
  *
51
  * @param RequestTelemetry $requestTelemetry
 
52
  * @return string
53
  */
54
  private static function _telemetryJson($requestTelemetry)
55
  {
56
- $payload = array(
57
- 'last_request_metrics' => array(
58
  'request_id' => $requestTelemetry->requestId,
59
  'request_duration_ms' => $requestTelemetry->requestDuration,
60
- ));
 
61
 
62
- $result = json_encode($payload);
63
- if ($result != false) {
64
  return $result;
65
- } else {
66
- Stripe::getLogger()->error("Serializing telemetry payload failed!");
67
- return "{}";
68
  }
 
 
 
69
  }
70
 
71
  /**
72
  * @static
73
  *
74
- * @param ApiResource|bool|array|mixed $d
75
  *
76
- * @return ApiResource|array|string|mixed
77
  */
78
  private static function _encodeObjects($d)
79
  {
80
  if ($d instanceof ApiResource) {
81
  return Util\Util::utf8($d->id);
82
- } elseif ($d === true) {
 
83
  return 'true';
84
- } elseif ($d === false) {
 
85
  return 'false';
86
- } elseif (is_array($d)) {
 
87
  $res = [];
88
  foreach ($d as $k => $v) {
89
  $res[$k] = self::_encodeObjects($v);
90
  }
 
91
  return $res;
92
- } else {
93
- return Util\Util::utf8($d);
94
  }
 
 
95
  }
96
 
97
  /**
98
  * @param string $method
99
  * @param string $url
100
- * @param array|null $params
101
- * @param array|null $headers
 
 
102
  *
103
- * @return array An array whose first element is an API response and second
104
- * element is the API key used to make the request.
105
- * @throws Error\Api
106
- * @throws Error\Authentication
107
- * @throws Error\Card
108
- * @throws Error\InvalidRequest
109
- * @throws Error\OAuth\InvalidClient
110
- * @throws Error\OAuth\InvalidGrant
111
- * @throws Error\OAuth\InvalidRequest
112
- * @throws Error\OAuth\InvalidScope
113
- * @throws Error\OAuth\UnsupportedGrantType
114
- * @throws Error\OAuth\UnsupportedResponseType
115
- * @throws Error\Permission
116
- * @throws Error\RateLimit
117
- * @throws Error\Idempotency
118
- * @throws Error\ApiConnection
119
  */
120
  public function request($method, $url, $params = null, $headers = null)
121
  {
@@ -125,48 +117,32 @@ class ApiRequestor
125
  $this->_requestRaw($method, $url, $params, $headers);
126
  $json = $this->_interpretResponse($rbody, $rcode, $rheaders);
127
  $resp = new ApiResponse($rbody, $rcode, $rheaders, $json);
 
128
  return [$resp, $myApiKey];
129
  }
130
 
131
  /**
132
- * @param string $rbody A JSON string.
133
  * @param int $rcode
134
  * @param array $rheaders
135
  * @param array $resp
136
  *
137
- * @throws Error\InvalidRequest if the error is caused by the user.
138
- * @throws Error\Authentication if the error is caused by a lack of
139
- * permissions.
140
- * @throws Error\Permission if the error is caused by insufficient
141
- * permissions.
142
- * @throws Error\Card if the error is the error code is 402 (payment
143
- * required)
144
- * @throws Error\InvalidRequest if the error is caused by the user.
145
- * @throws Error\Idempotency if the error is caused by an idempotency key.
146
- * @throws Error\OAuth\InvalidClient
147
- * @throws Error\OAuth\InvalidGrant
148
- * @throws Error\OAuth\InvalidRequest
149
- * @throws Error\OAuth\InvalidScope
150
- * @throws Error\OAuth\UnsupportedGrantType
151
- * @throws Error\OAuth\UnsupportedResponseType
152
- * @throws Error\Permission if the error is caused by insufficient
153
- * permissions.
154
- * @throws Error\RateLimit if the error is caused by too many requests
155
- * hitting the API.
156
- * @throws Error\Api otherwise.
157
  */
158
  public function handleErrorResponse($rbody, $rcode, $rheaders, $resp)
159
  {
160
- if (!is_array($resp) || !isset($resp['error'])) {
161
- $msg = "Invalid response object from API: $rbody "
162
- . "(HTTP response code was $rcode)";
163
- throw new Error\Api($msg, $rcode, $rbody, $resp, $rheaders);
 
164
  }
165
 
166
  $errorData = $resp['error'];
167
 
168
  $error = null;
169
- if (is_string($errorData)) {
170
  $error = self::_specificOAuthError($rbody, $rcode, $rheaders, $resp, $errorData);
171
  }
172
  if (!$error) {
@@ -185,7 +161,7 @@ class ApiRequestor
185
  * @param array $resp
186
  * @param array $errorData
187
  *
188
- * @return Error\RateLimit|Error\Idempotency|Error\InvalidRequest|Error\Authentication|Error\Card|Error\Permission|Error\Api
189
  */
190
  private static function _specificAPIError($rbody, $rcode, $rheaders, $resp, $errorData)
191
  {
@@ -193,44 +169,45 @@ class ApiRequestor
193
  $param = isset($errorData['param']) ? $errorData['param'] : null;
194
  $code = isset($errorData['code']) ? $errorData['code'] : null;
195
  $type = isset($errorData['type']) ? $errorData['type'] : null;
 
196
 
197
  switch ($rcode) {
198
  case 400:
199
  // 'rate_limit' code is deprecated, but left here for backwards compatibility
200
  // for API versions earlier than 2015-09-08
201
- if ($code == 'rate_limit') {
202
- return new Error\RateLimit($msg, $param, $rcode, $rbody, $resp, $rheaders);
203
  }
204
- if ($type == 'idempotency_error') {
205
- return new Error\Idempotency($msg, $rcode, $rbody, $resp, $rheaders);
206
  }
207
 
208
  // no break
209
  case 404:
210
- return new Error\InvalidRequest($msg, $param, $rcode, $rbody, $resp, $rheaders);
211
  case 401:
212
- return new Error\Authentication($msg, $rcode, $rbody, $resp, $rheaders);
213
  case 402:
214
- return new Error\Card($msg, $param, $code, $rcode, $rbody, $resp, $rheaders);
215
  case 403:
216
- return new Error\Permission($msg, $rcode, $rbody, $resp, $rheaders);
217
  case 429:
218
- return new Error\RateLimit($msg, $param, $rcode, $rbody, $resp, $rheaders);
219
  default:
220
- return new Error\Api($msg, $rcode, $rbody, $resp, $rheaders);
221
  }
222
  }
223
 
224
  /**
225
  * @static
226
  *
227
- * @param string|bool $rbody
228
  * @param int $rcode
229
  * @param array $rheaders
230
  * @param array $resp
231
  * @param string $errorCode
232
  *
233
- * @return null|Error\OAuth\InvalidClient|Error\OAuth\InvalidGrant|Error\OAuth\InvalidRequest|Error\OAuth\InvalidScope|Error\OAuth\UnsupportedGrantType|Error\OAuth\UnsupportedResponseType
234
  */
235
  private static function _specificOAuthError($rbody, $rcode, $rheaders, $resp, $errorCode)
236
  {
@@ -238,20 +215,20 @@ class ApiRequestor
238
 
239
  switch ($errorCode) {
240
  case 'invalid_client':
241
- return new Error\OAuth\InvalidClient($errorCode, $description, $rcode, $rbody, $resp, $rheaders);
242
  case 'invalid_grant':
243
- return new Error\OAuth\InvalidGrant($errorCode, $description, $rcode, $rbody, $resp, $rheaders);
244
  case 'invalid_request':
245
- return new Error\OAuth\InvalidRequest($errorCode, $description, $rcode, $rbody, $resp, $rheaders);
246
  case 'invalid_scope':
247
- return new Error\OAuth\InvalidScope($errorCode, $description, $rcode, $rbody, $resp, $rheaders);
248
  case 'unsupported_grant_type':
249
- return new Error\OAuth\UnsupportedGrantType($errorCode, $description, $rcode, $rbody, $resp, $rheaders);
250
  case 'unsupported_response_type':
251
- return new Error\OAuth\UnsupportedResponseType($errorCode, $description, $rcode, $rbody, $resp, $rheaders);
 
 
252
  }
253
-
254
- return null;
255
  }
256
 
257
  /**
@@ -263,18 +240,19 @@ class ApiRequestor
263
  */
264
  private static function _formatAppInfo($appInfo)
265
  {
266
- if ($appInfo !== null) {
267
  $string = $appInfo['name'];
268
- if ($appInfo['version'] !== null) {
269
  $string .= '/' . $appInfo['version'];
270
  }
271
- if ($appInfo['url'] !== null) {
272
  $string .= ' (' . $appInfo['url'] . ')';
273
  }
 
274
  return $string;
275
- } else {
276
- return null;
277
  }
 
 
278
  }
279
 
280
  /**
@@ -289,8 +267,9 @@ class ApiRequestor
289
  {
290
  $uaString = 'Stripe/v1 PhpBindings/' . Stripe::VERSION;
291
 
292
- $langVersion = phpversion();
293
- $uname = php_uname();
 
294
 
295
  $appInfo = Stripe::getAppInfo();
296
  $ua = [
@@ -301,31 +280,30 @@ class ApiRequestor
301
  'uname' => $uname,
302
  ];
303
  if ($clientInfo) {
304
- $ua = array_merge($clientInfo, $ua);
305
  }
306
- if ($appInfo !== null) {
307
  $uaString .= ' ' . self::_formatAppInfo($appInfo);
308
  $ua['application'] = $appInfo;
309
  }
310
 
311
- $defaultHeaders = [
312
- 'X-Stripe-Client-User-Agent' => json_encode($ua),
313
  'User-Agent' => $uaString,
314
  'Authorization' => 'Bearer ' . $apiKey,
315
  ];
316
- return $defaultHeaders;
317
  }
318
 
319
  /**
320
  * @param string $method
321
  * @param string $url
322
- * @param array $params
323
- * @param array $headers
 
 
 
324
  *
325
  * @return array
326
- * @throws Error\Api
327
- * @throws Error\ApiConnection
328
- * @throws Error\Authentication
329
  */
330
  private function _requestRaw($method, $url, $params, $headers)
331
  {
@@ -339,18 +317,19 @@ class ApiRequestor
339
  . '"Stripe::setApiKey(<API-KEY>)". You can generate API keys from '
340
  . 'the Stripe web interface. See https://stripe.com/api for '
341
  . 'details, or email support@stripe.com if you have any questions.';
342
- throw new Error\Authentication($msg);
 
343
  }
344
 
345
  // Clients can supply arbitrary additional keys to be included in the
346
  // X-Stripe-Client-User-Agent header via the optional getUserAgentInfo()
347
  // method
348
  $clientUAInfo = null;
349
- if (method_exists($this->httpClient(), 'getUserAgentInfo')) {
350
  $clientUAInfo = $this->httpClient()->getUserAgentInfo();
351
  }
352
 
353
- $absUrl = $this->_apiBase.$url;
354
  $params = self::_encodeObjects($params);
355
  $defaultHeaders = $this->_defaultHeaders($myApiKey, $clientUAInfo);
356
  if (Stripe::$apiVersion) {
@@ -361,17 +340,16 @@ class ApiRequestor
361
  $defaultHeaders['Stripe-Account'] = Stripe::$accountId;
362
  }
363
 
364
- if (Stripe::$enableTelemetry && self::$requestTelemetry != null) {
365
- $defaultHeaders["X-Stripe-Client-Telemetry"] = self::_telemetryJson(self::$requestTelemetry);
366
  }
367
 
368
  $hasFile = false;
369
- $hasCurlFile = class_exists('\CURLFile', false);
370
  foreach ($params as $k => $v) {
371
- if (is_resource($v)) {
372
  $hasFile = true;
373
- $params[$k] = self::_processResourceParam($v, $hasCurlFile);
374
- } elseif ($hasCurlFile && $v instanceof \CURLFile) {
375
  $hasFile = true;
376
  }
377
  }
@@ -382,7 +360,7 @@ class ApiRequestor
382
  $defaultHeaders['Content-Type'] = 'application/x-www-form-urlencoded';
383
  }
384
 
385
- $combinedHeaders = array_merge($defaultHeaders, $headers);
386
  $rawHeaders = [];
387
 
388
  foreach ($combinedHeaders as $header => $value) {
@@ -399,9 +377,9 @@ class ApiRequestor
399
  $hasFile
400
  );
401
 
402
- if (array_key_exists('request-id', $rheaders)) {
403
  self::$requestTelemetry = new RequestTelemetry(
404
- $rheaders['request-id'],
405
  Util\Util::currentTimeMillis() - $requestStartMs
406
  );
407
  }
@@ -411,32 +389,28 @@ class ApiRequestor
411
 
412
  /**
413
  * @param resource $resource
414
- * @param bool $hasCurlFile
 
415
  *
416
  * @return \CURLFile|string
417
- * @throws Error\Api
418
  */
419
- private function _processResourceParam($resource, $hasCurlFile)
420
  {
421
- if (get_resource_type($resource) !== 'stream') {
422
- throw new Error\Api(
423
  'Attempted to upload a resource that is not a stream'
424
  );
425
  }
426
 
427
- $metaData = stream_get_meta_data($resource);
428
- if ($metaData['wrapper_type'] !== 'plainfile') {
429
- throw new Error\Api(
430
  'Only plainfile resource streams are supported'
431
  );
432
  }
433
 
434
- if ($hasCurlFile) {
435
- // We don't have the filename or mimetype, but the API doesn't care
436
- return new \CURLFile($metaData['uri']);
437
- } else {
438
- return '@'.$metaData['uri'];
439
- }
440
  }
441
 
442
  /**
@@ -444,34 +418,26 @@ class ApiRequestor
444
  * @param int $rcode
445
  * @param array $rheaders
446
  *
447
- * @return mixed
448
- * @throws Error\Api
449
- * @throws Error\Authentication
450
- * @throws Error\Card
451
- * @throws Error\InvalidRequest
452
- * @throws Error\OAuth\InvalidClient
453
- * @throws Error\OAuth\InvalidGrant
454
- * @throws Error\OAuth\InvalidRequest
455
- * @throws Error\OAuth\InvalidScope
456
- * @throws Error\OAuth\UnsupportedGrantType
457
- * @throws Error\OAuth\UnsupportedResponseType
458
- * @throws Error\Permission
459
- * @throws Error\RateLimit
460
- * @throws Error\Idempotency
461
  */
462
  private function _interpretResponse($rbody, $rcode, $rheaders)
463
  {
464
- $resp = json_decode($rbody, true);
465
- $jsonError = json_last_error();
466
- if ($resp === null && $jsonError !== JSON_ERROR_NONE) {
467
- $msg = "Invalid response body from API: $rbody "
468
- . "(HTTP response code was $rcode, json_last_error() was $jsonError)";
469
- throw new Error\Api($msg, $rcode, $rbody);
 
470
  }
471
 
472
  if ($rcode < 200 || $rcode >= 300) {
473
  $this->handleErrorResponse($rbody, $rcode, $rheaders, $resp);
474
  }
 
475
  return $resp;
476
  }
477
 
@@ -503,6 +469,7 @@ class ApiRequestor
503
  if (!self::$_httpClient) {
504
  self::$_httpClient = HttpClient\CurlClient::instance();
505
  }
 
506
  return self::$_httpClient;
507
  }
508
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * Class ApiRequestor.
 
 
7
  */
8
  class ApiRequestor
9
  {
10
  /**
11
+ * @var null|string
12
  */
13
  private $_apiKey;
14
 
30
  /**
31
  * ApiRequestor constructor.
32
  *
33
+ * @param null|string $apiKey
34
+ * @param null|string $apiBase
35
  */
36
  public function __construct($apiKey = null, $apiBase = null)
37
  {
43
  }
44
 
45
  /**
46
+ * Creates a telemetry json blob for use in 'X-Stripe-Client-Telemetry' headers.
47
+ *
48
  * @static
49
  *
50
  * @param RequestTelemetry $requestTelemetry
51
+ *
52
  * @return string
53
  */
54
  private static function _telemetryJson($requestTelemetry)
55
  {
56
+ $payload = [
57
+ 'last_request_metrics' => [
58
  'request_id' => $requestTelemetry->requestId,
59
  'request_duration_ms' => $requestTelemetry->requestDuration,
60
+ ],
61
+ ];
62
 
63
+ $result = \json_encode($payload);
64
+ if (false !== $result) {
65
  return $result;
 
 
 
66
  }
67
+ Stripe::getLogger()->error('Serializing telemetry payload failed!');
68
+
69
+ return '{}';
70
  }
71
 
72
  /**
73
  * @static
74
  *
75
+ * @param ApiResource|array|bool|mixed $d
76
  *
77
+ * @return ApiResource|array|mixed|string
78
  */
79
  private static function _encodeObjects($d)
80
  {
81
  if ($d instanceof ApiResource) {
82
  return Util\Util::utf8($d->id);
83
+ }
84
+ if (true === $d) {
85
  return 'true';
86
+ }
87
+ if (false === $d) {
88
  return 'false';
89
+ }
90
+ if (\is_array($d)) {
91
  $res = [];
92
  foreach ($d as $k => $v) {
93
  $res[$k] = self::_encodeObjects($v);
94
  }
95
+
96
  return $res;
 
 
97
  }
98
+
99
+ return Util\Util::utf8($d);
100
  }
101
 
102
  /**
103
  * @param string $method
104
  * @param string $url
105
+ * @param null|array $params
106
+ * @param null|array $headers
107
+ *
108
+ * @throws Exception\ApiErrorException
109
  *
110
+ * @return array tuple containing (ApiReponse, API key)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
111
  */
112
  public function request($method, $url, $params = null, $headers = null)
113
  {
117
  $this->_requestRaw($method, $url, $params, $headers);
118
  $json = $this->_interpretResponse($rbody, $rcode, $rheaders);
119
  $resp = new ApiResponse($rbody, $rcode, $rheaders, $json);
120
+
121
  return [$resp, $myApiKey];
122
  }
123
 
124
  /**
125
+ * @param string $rbody a JSON string
126
  * @param int $rcode
127
  * @param array $rheaders
128
  * @param array $resp
129
  *
130
+ * @throws Exception\UnexpectedValueException
131
+ * @throws Exception\ApiErrorException
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
132
  */
133
  public function handleErrorResponse($rbody, $rcode, $rheaders, $resp)
134
  {
135
+ if (!\is_array($resp) || !isset($resp['error'])) {
136
+ $msg = "Invalid response object from API: {$rbody} "
137
+ . "(HTTP response code was {$rcode})";
138
+
139
+ throw new Exception\UnexpectedValueException($msg);
140
  }
141
 
142
  $errorData = $resp['error'];
143
 
144
  $error = null;
145
+ if (\is_string($errorData)) {
146
  $error = self::_specificOAuthError($rbody, $rcode, $rheaders, $resp, $errorData);
147
  }
148
  if (!$error) {
161
  * @param array $resp
162
  * @param array $errorData
163
  *
164
+ * @return Exception\ApiErrorException
165
  */
166
  private static function _specificAPIError($rbody, $rcode, $rheaders, $resp, $errorData)
167
  {
169
  $param = isset($errorData['param']) ? $errorData['param'] : null;
170
  $code = isset($errorData['code']) ? $errorData['code'] : null;
171
  $type = isset($errorData['type']) ? $errorData['type'] : null;
172
+ $declineCode = isset($errorData['decline_code']) ? $errorData['decline_code'] : null;
173
 
174
  switch ($rcode) {
175
  case 400:
176
  // 'rate_limit' code is deprecated, but left here for backwards compatibility
177
  // for API versions earlier than 2015-09-08
178
+ if ('rate_limit' === $code) {
179
+ return Exception\RateLimitException::factory($msg, $rcode, $rbody, $resp, $rheaders, $code, $param);
180
  }
181
+ if ('idempotency_error' === $type) {
182
+ return Exception\IdempotencyException::factory($msg, $rcode, $rbody, $resp, $rheaders, $code);
183
  }
184
 
185
  // no break
186
  case 404:
187
+ return Exception\InvalidRequestException::factory($msg, $rcode, $rbody, $resp, $rheaders, $code, $param);
188
  case 401:
189
+ return Exception\AuthenticationException::factory($msg, $rcode, $rbody, $resp, $rheaders, $code);
190
  case 402:
191
+ return Exception\CardException::factory($msg, $rcode, $rbody, $resp, $rheaders, $code, $declineCode, $param);
192
  case 403:
193
+ return Exception\PermissionException::factory($msg, $rcode, $rbody, $resp, $rheaders, $code);
194
  case 429:
195
+ return Exception\RateLimitException::factory($msg, $rcode, $rbody, $resp, $rheaders, $code, $param);
196
  default:
197
+ return Exception\UnknownApiErrorException::factory($msg, $rcode, $rbody, $resp, $rheaders, $code);
198
  }
199
  }
200
 
201
  /**
202
  * @static
203
  *
204
+ * @param bool|string $rbody
205
  * @param int $rcode
206
  * @param array $rheaders
207
  * @param array $resp
208
  * @param string $errorCode
209
  *
210
+ * @return Exception\OAuth\OAuthErrorException
211
  */
212
  private static function _specificOAuthError($rbody, $rcode, $rheaders, $resp, $errorCode)
213
  {
215
 
216
  switch ($errorCode) {
217
  case 'invalid_client':
218
+ return Exception\OAuth\InvalidClientException::factory($description, $rcode, $rbody, $resp, $rheaders, $errorCode);
219
  case 'invalid_grant':
220
+ return Exception\OAuth\InvalidGrantException::factory($description, $rcode, $rbody, $resp, $rheaders, $errorCode);
221
  case 'invalid_request':
222
+ return Exception\OAuth\InvalidRequestException::factory($description, $rcode, $rbody, $resp, $rheaders, $errorCode);
223
  case 'invalid_scope':
224
+ return Exception\OAuth\InvalidScopeException::factory($description, $rcode, $rbody, $resp, $rheaders, $errorCode);
225
  case 'unsupported_grant_type':
226
+ return Exception\OAuth\UnsupportedGrantTypeException::factory($description, $rcode, $rbody, $resp, $rheaders, $errorCode);
227
  case 'unsupported_response_type':
228
+ return Exception\OAuth\UnsupportedResponseTypeException::factory($description, $rcode, $rbody, $resp, $rheaders, $errorCode);
229
+ default:
230
+ return Exception\OAuth\UnknownOAuthErrorException::factory($description, $rcode, $rbody, $resp, $rheaders, $errorCode);
231
  }
 
 
232
  }
233
 
234
  /**
240
  */
241
  private static function _formatAppInfo($appInfo)
242
  {
243
+ if (null !== $appInfo) {
244
  $string = $appInfo['name'];
245
+ if (null !== $appInfo['version']) {
246
  $string .= '/' . $appInfo['version'];
247
  }
248
+ if (null !== $appInfo['url']) {
249
  $string .= ' (' . $appInfo['url'] . ')';
250
  }
251
+
252
  return $string;
 
 
253
  }
254
+
255
+ return null;
256
  }
257
 
258
  /**
267
  {
268
  $uaString = 'Stripe/v1 PhpBindings/' . Stripe::VERSION;
269
 
270
+ $langVersion = \PHP_VERSION;
271
+ $uname_disabled = \in_array('php_uname', \explode(',', \ini_get('disable_functions')), true);
272
+ $uname = $uname_disabled ? '(disabled)' : \php_uname();
273
 
274
  $appInfo = Stripe::getAppInfo();
275
  $ua = [
280
  'uname' => $uname,
281
  ];
282
  if ($clientInfo) {
283
+ $ua = \array_merge($clientInfo, $ua);
284
  }
285
+ if (null !== $appInfo) {
286
  $uaString .= ' ' . self::_formatAppInfo($appInfo);
287
  $ua['application'] = $appInfo;
288
  }
289
 
290
+ return [
291
+ 'X-Stripe-Client-User-Agent' => \json_encode($ua),
292
  'User-Agent' => $uaString,
293
  'Authorization' => 'Bearer ' . $apiKey,
294
  ];
 
295
  }
296
 
297
  /**
298
  * @param string $method
299
  * @param string $url
300
+ * @param array $params
301
+ * @param array $headers
302
+ *
303
+ * @throws Exception\AuthenticationException
304
+ * @throws Exception\ApiConnectionException
305
  *
306
  * @return array
 
 
 
307
  */
308
  private function _requestRaw($method, $url, $params, $headers)
309
  {
317
  . '"Stripe::setApiKey(<API-KEY>)". You can generate API keys from '
318
  . 'the Stripe web interface. See https://stripe.com/api for '
319
  . 'details, or email support@stripe.com if you have any questions.';
320
+
321
+ throw new Exception\AuthenticationException($msg);
322
  }
323
 
324
  // Clients can supply arbitrary additional keys to be included in the
325
  // X-Stripe-Client-User-Agent header via the optional getUserAgentInfo()
326
  // method
327
  $clientUAInfo = null;
328
+ if (\method_exists($this->httpClient(), 'getUserAgentInfo')) {
329
  $clientUAInfo = $this->httpClient()->getUserAgentInfo();
330
  }
331
 
332
+ $absUrl = $this->_apiBase . $url;
333
  $params = self::_encodeObjects($params);
334
  $defaultHeaders = $this->_defaultHeaders($myApiKey, $clientUAInfo);
335
  if (Stripe::$apiVersion) {
340
  $defaultHeaders['Stripe-Account'] = Stripe::$accountId;
341
  }
342
 
343
+ if (Stripe::$enableTelemetry && null !== self::$requestTelemetry) {
344
+ $defaultHeaders['X-Stripe-Client-Telemetry'] = self::_telemetryJson(self::$requestTelemetry);
345
  }
346
 
347
  $hasFile = false;
 
348
  foreach ($params as $k => $v) {
349
+ if (\is_resource($v)) {
350
  $hasFile = true;
351
+ $params[$k] = self::_processResourceParam($v);
352
+ } elseif ($v instanceof \CURLFile) {
353
  $hasFile = true;
354
  }
355
  }
360
  $defaultHeaders['Content-Type'] = 'application/x-www-form-urlencoded';
361
  }
362
 
363
+ $combinedHeaders = \array_merge($defaultHeaders, $headers);
364
  $rawHeaders = [];
365
 
366
  foreach ($combinedHeaders as $header => $value) {
377
  $hasFile
378
  );
379
 
380
+ if (isset($rheaders['request-id'], $rheaders['request-id'][0])) {
381
  self::$requestTelemetry = new RequestTelemetry(
382
+ $rheaders['request-id'][0],
383
  Util\Util::currentTimeMillis() - $requestStartMs
384
  );
385
  }
389
 
390
  /**
391
  * @param resource $resource
392
+ *
393
+ * @throws Exception\InvalidArgumentException
394
  *
395
  * @return \CURLFile|string
 
396
  */
397
+ private function _processResourceParam($resource)
398
  {
399
+ if ('stream' !== \get_resource_type($resource)) {
400
+ throw new Exception\InvalidArgumentException(
401
  'Attempted to upload a resource that is not a stream'
402
  );
403
  }
404
 
405
+ $metaData = \stream_get_meta_data($resource);
406
+ if ('plainfile' !== $metaData['wrapper_type']) {
407
+ throw new Exception\InvalidArgumentException(
408
  'Only plainfile resource streams are supported'
409
  );
410
  }
411
 
412
+ // We don't have the filename or mimetype, but the API doesn't care
413
+ return new \CURLFile($metaData['uri']);
 
 
 
 
414
  }
415
 
416
  /**
418
  * @param int $rcode
419
  * @param array $rheaders
420
  *
421
+ * @throws Exception\UnexpectedValueException
422
+ * @throws Exception\ApiErrorException
423
+ *
424
+ * @return array
 
 
 
 
 
 
 
 
 
 
425
  */
426
  private function _interpretResponse($rbody, $rcode, $rheaders)
427
  {
428
+ $resp = \json_decode($rbody, true);
429
+ $jsonError = \json_last_error();
430
+ if (null === $resp && \JSON_ERROR_NONE !== $jsonError) {
431
+ $msg = "Invalid response body from API: {$rbody} "
432
+ . "(HTTP response code was {$rcode}, json_last_error() was {$jsonError})";
433
+
434
+ throw new Exception\UnexpectedValueException($msg, $rcode);
435
  }
436
 
437
  if ($rcode < 200 || $rcode >= 300) {
438
  $this->handleErrorResponse($rbody, $rcode, $rheaders, $resp);
439
  }
440
+
441
  return $resp;
442
  }
443
 
469
  if (!self::$_httpClient) {
470
  self::$_httpClient = HttpClient\CurlClient::instance();
471
  }
472
+
473
  return self::$_httpClient;
474
  }
475
  }
lib/stripe-gateway/lib/ApiResource.php CHANGED
@@ -3,9 +3,7 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class ApiResource
7
- *
8
- * @package Stripe
9
  */
10
  abstract class ApiResource extends StripeObject
11
  {
@@ -21,14 +19,15 @@ abstract class ApiResource extends StripeObject
21
  public static function getSavedNestedResources()
22
  {
23
  static $savedNestedResources = null;
24
- if ($savedNestedResources === null) {
25
  $savedNestedResources = new Util\Set();
26
  }
 
27
  return $savedNestedResources;
28
  }
29
 
30
  /**
31
- * @var boolean A flag that can be set a behavior that will cause this
32
  * resource to be encoded and sent up along with an update of its parent
33
  * resource. This is usually not desirable because resources are updated
34
  * individually on their own endpoints, but there are certain cases,
@@ -39,16 +38,17 @@ abstract class ApiResource extends StripeObject
39
  public function __set($k, $v)
40
  {
41
  parent::__set($k, $v);
42
- $v = $this->$k;
43
  if ((static::getSavedNestedResources()->includes($k)) &&
44
  ($v instanceof ApiResource)) {
45
  $v->saveWithParent = true;
46
  }
47
- return $v;
48
  }
49
 
50
  /**
51
- * @return ApiResource The refreshed resource.
 
 
52
  */
53
  public function refresh()
54
  {
@@ -63,11 +63,12 @@ abstract class ApiResource extends StripeObject
63
  );
64
  $this->setLastResponse($response);
65
  $this->refreshFrom($response->json, $this->_opts);
 
66
  return $this;
67
  }
68
 
69
  /**
70
- * @return string The base URL for the given class.
71
  */
72
  public static function baseUrl()
73
  {
@@ -75,35 +76,42 @@ abstract class ApiResource extends StripeObject
75
  }
76
 
77
  /**
78
- * @return string The endpoint URL for the given class.
79
  */
80
  public static function classUrl()
81
  {
82
  // Replace dots with slashes for namespaced resources, e.g. if the object's name is
83
  // "foo.bar", then its URL will be "/v1/foo/bars".
84
- $base = str_replace('.', '/', static::OBJECT_NAME);
85
- return "/v1/${base}s";
 
86
  }
87
 
88
  /**
89
- * @return string The instance endpoint URL for the given class.
 
 
 
 
90
  */
91
  public static function resourceUrl($id)
92
  {
93
- if ($id === null) {
94
- $class = get_called_class();
95
- $message = "Could not determine which URL to request: "
96
- . "$class instance has invalid ID: $id";
97
- throw new Error\InvalidRequest($message, null);
 
98
  }
99
  $id = Util\Util::utf8($id);
100
  $base = static::classUrl();
101
- $extn = urlencode($id);
102
- return "$base/$extn";
 
103
  }
104
 
105
  /**
106
- * @return string The full API URL for this API resource.
107
  */
108
  public function instanceUrl()
109
  {
3
  namespace Stripe;
4
 
5
  /**
6
+ * Class ApiResource.
 
 
7
  */
8
  abstract class ApiResource extends StripeObject
9
  {
19
  public static function getSavedNestedResources()
20
  {
21
  static $savedNestedResources = null;
22
+ if (null === $savedNestedResources) {
23
  $savedNestedResources = new Util\Set();
24
  }
25
+
26
  return $savedNestedResources;
27
  }
28
 
29
  /**
30
+ * @var bool A flag that can be set a behavior that will cause this
31
  * resource to be encoded and sent up along with an update of its parent
32
  * resource. This is usually not desirable because resources are updated
33
  * individually on their own endpoints, but there are certain cases,
38
  public function __set($k, $v)
39
  {
40
  parent::__set($k, $v);
41
+ $v = $this->{$k};
42
  if ((static::getSavedNestedResources()->includes($k)) &&
43
  ($v instanceof ApiResource)) {
44
  $v->saveWithParent = true;
45
  }
 
46
  }
47
 
48
  /**
49
+ * @throws Exception\ApiErrorException
50
+ *
51
+ * @return ApiResource the refreshed resource
52
  */
53
  public function refresh()
54
  {
63
  );
64
  $this->setLastResponse($response);
65
  $this->refreshFrom($response->json, $this->_opts);
66
+
67
  return $this;
68
  }
69
 
70
  /**
71
+ * @return string the base URL for the given class
72
  */
73
  public static function baseUrl()
74
  {
76
  }
77
 
78
  /**
79
+ * @return string the endpoint URL for the given class
80
  */
81
  public static function classUrl()
82
  {
83
  // Replace dots with slashes for namespaced resources, e.g. if the object's name is
84
  // "foo.bar", then its URL will be "/v1/foo/bars".
85
+ $base = \str_replace('.', '/', static::OBJECT_NAME);
86
+
87
+ return "/v1/{$base}s";
88
  }
89
 
90
  /**
91
+ * @param null|string $id the ID of the resource
92
+ *
93
+ * @throws Exception\UnexpectedValueException if $id is null
94
+ *
95
+ * @return string the instance endpoint URL for the given class
96
  */
97
  public static function resourceUrl($id)
98
  {
99
+ if (null === $id) {
100
+ $class = static::class;
101
+ $message = 'Could not determine which URL to request: '
102
+ . "{$class} instance has invalid ID: {$id}";
103
+
104
+ throw new Exception\UnexpectedValueException($message);
105
  }
106
  $id = Util\Util::utf8($id);
107
  $base = static::classUrl();
108
+ $extn = \urlencode($id);
109
+
110
+ return "{$base}/{$extn}";
111
  }
112
 
113
  /**
114
+ * @return string the full API URL for this API resource
115
  */
116
  public function instanceUrl()
117
  {
lib/stripe-gateway/lib/ApiResponse.php CHANGED
@@ -5,24 +5,35 @@ namespace Stripe;
5
  use Stripe\Util\CaseInsensitiveArray;
6
 
7
  /**
8
- * Class ApiResponse
9
- *
10
- * @package Stripe
11
  */
12
  class ApiResponse
13
  {
 
 
 
14
  public $headers;
 
 
 
 
15
  public $body;
 
 
 
 
16
  public $json;
 
 
 
 
17
  public $code;
18
 
19
  /**
20
  * @param string $body
21
- * @param integer $code
22
- * @param array|CaseInsensitiveArray|null $headers
23
- * @param array|null $json
24
- *
25
- * @return obj An APIResponse
26
  */
27
  public function __construct($body, $code, $headers, $json)
28
  {
5
  use Stripe\Util\CaseInsensitiveArray;
6
 
7
  /**
8
+ * Class ApiResponse.
 
 
9
  */
10
  class ApiResponse
11
  {
12
+ /**
13
+ * @var null|array|CaseInsensitiveArray
14
+ */
15
  public $headers;
16
+
17
+ /**
18
+ * @var string
19
+ */
20
  public $body;
21
+
22
+ /**
23
+ * @var null|array
24
+ */
25
  public $json;
26
+
27
+ /**
28
+ * @var int
29
+ */
30
  public $code;
31
 
32
  /**
33
  * @param string $body
34
+ * @param int $code
35
+ * @param null|array|CaseInsensitiveArray $headers
36
+ * @param null|array $json
 
 
37
  */
38
  public function __construct($body, $code, $headers, $json)
39
  {
lib/stripe-gateway/lib/ApplePayDomain.php CHANGED
@@ -3,13 +3,15 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class ApplePayDomain
7
- *
8
- * @package Stripe
 
 
9
  */
10
  class ApplePayDomain extends ApiResource
11
  {
12
- const OBJECT_NAME = "apple_pay_domain";
13
 
14
  use ApiOperations\All;
15
  use ApiOperations\Create;
3
  namespace Stripe;
4
 
5
  /**
6
+ * @property string $id Unique identifier for the object.
7
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
8
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
9
+ * @property string $domain_name
10
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
11
  */
12
  class ApplePayDomain extends ApiResource
13
  {
14
+ const OBJECT_NAME = 'apple_pay_domain';
15
 
16
  use ApiOperations\All;
17
  use ApiOperations\Create;
lib/stripe-gateway/lib/ApplicationFee.php CHANGED
@@ -3,28 +3,24 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class ApplicationFee
7
- *
8
- * @property string $id
9
- * @property string $object
10
- * @property string $account
11
- * @property int $amount
12
- * @property int $amount_refunded
13
- * @property string $application
14
- * @property string $balance_transaction
15
- * @property string $charge
16
- * @property int $created
17
- * @property string $currency
18
- * @property bool $livemode
19
- * @property string $originating_transaction
20
- * @property bool $refunded
21
- * @property Collection $refunds
22
- *
23
- * @package Stripe
24
  */
25
  class ApplicationFee extends ApiResource
26
  {
27
- const OBJECT_NAME = "application_fee";
28
 
29
  use ApiOperations\All;
30
  use ApiOperations\NestedResource;
@@ -33,24 +29,27 @@ class ApplicationFee extends ApiResource
33
  const PATH_REFUNDS = '/refunds';
34
 
35
  /**
36
- * @param array|null $params
37
- * @param array|string|null $opts
 
38
  *
39
- * @return ApplicationFee The refunded application fee.
 
 
40
  */
41
- public function refund($params = null, $opts = null)
42
  {
43
- $this->refunds->create($params, $opts);
44
- $this->refresh();
45
- return $this;
46
  }
47
 
48
  /**
49
- * @param string|null $id The ID of the application fee on which to create the refund.
50
- * @param array|null $params
51
- * @param array|string|null $opts
 
 
52
  *
53
- * @return ApplicationFeeRefund
54
  */
55
  public static function createRefund($id, $params = null, $opts = null)
56
  {
@@ -58,12 +57,14 @@ class ApplicationFee extends ApiResource
58
  }
59
 
60
  /**
61
- * @param string|null $id The ID of the application fee to which the refund belongs.
62
- * @param array|null $refundId The ID of the refund to retrieve.
63
- * @param array|null $params
64
- * @param array|string|null $opts
65
  *
66
- * @return ApplicationFeeRefund
 
 
67
  */
68
  public static function retrieveRefund($id, $refundId, $params = null, $opts = null)
69
  {
@@ -71,27 +72,17 @@ class ApplicationFee extends ApiResource
71
  }
72
 
73
  /**
74
- * @param string|null $id The ID of the application fee to which the refund belongs.
75
- * @param array|null $refundId The ID of the refund to update.
76
- * @param array|null $params
77
- * @param array|string|null $opts
 
 
78
  *
79
- * @return ApplicationFeeRefund
80
  */
81
  public static function updateRefund($id, $refundId, $params = null, $opts = null)
82
  {
83
  return self::_updateNestedResource($id, static::PATH_REFUNDS, $refundId, $params, $opts);
84
  }
85
-
86
- /**
87
- * @param string|null $id The ID of the application fee on which to retrieve the refunds.
88
- * @param array|null $params
89
- * @param array|string|null $opts
90
- *
91
- * @return Collection The list of refunds.
92
- */
93
- public static function allRefunds($id, $params = null, $opts = null)
94
- {
95
- return self::_allNestedResources($id, static::PATH_REFUNDS, $params, $opts);
96
- }
97
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * @property string $id Unique identifier for the object.
7
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
8
+ * @property string|\Stripe\Account $account ID of the Stripe account this fee was taken from.
9
+ * @property int $amount Amount earned, in %s.
10
+ * @property int $amount_refunded Amount in %s refunded (can be less than the amount attribute on the fee if a partial refund was issued)
11
+ * @property string|\Stripe\StripeObject $application ID of the Connect application that earned the fee.
12
+ * @property null|string|\Stripe\BalanceTransaction $balance_transaction Balance transaction that describes the impact of this collected application fee on your account balance (not including refunds).
13
+ * @property string|\Stripe\Charge $charge ID of the charge that the application fee was taken from.
14
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
15
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
16
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
17
+ * @property null|string|\Stripe\Charge $originating_transaction ID of the corresponding charge on the platform account, if this fee was the result of a charge using the <code>destination</code> parameter.
18
+ * @property bool $refunded Whether the fee has been fully refunded. If the fee is only partially refunded, this attribute will still be false.
19
+ * @property \Stripe\Collection $refunds A list of refunds that have been applied to the fee.
 
 
 
 
20
  */
21
  class ApplicationFee extends ApiResource
22
  {
23
+ const OBJECT_NAME = 'application_fee';
24
 
25
  use ApiOperations\All;
26
  use ApiOperations\NestedResource;
29
  const PATH_REFUNDS = '/refunds';
30
 
31
  /**
32
+ * @param string $id the ID of the application fee on which to retrieve the fee refunds
33
+ * @param null|array $params
34
+ * @param null|array|string $opts
35
  *
36
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
37
+ *
38
+ * @return \Stripe\Collection the list of fee refunds
39
  */
40
+ public static function allRefunds($id, $params = null, $opts = null)
41
  {
42
+ return self::_allNestedResources($id, static::PATH_REFUNDS, $params, $opts);
 
 
43
  }
44
 
45
  /**
46
+ * @param string $id the ID of the application fee on which to create the fee refund
47
+ * @param null|array $params
48
+ * @param null|array|string $opts
49
+ *
50
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
51
  *
52
+ * @return \Stripe\ApplicationFeeRefund
53
  */
54
  public static function createRefund($id, $params = null, $opts = null)
55
  {
57
  }
58
 
59
  /**
60
+ * @param string $id the ID of the application fee to which the fee refund belongs
61
+ * @param string $refundId the ID of the fee refund to retrieve
62
+ * @param null|array $params
63
+ * @param null|array|string $opts
64
  *
65
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
66
+ *
67
+ * @return \Stripe\ApplicationFeeRefund
68
  */
69
  public static function retrieveRefund($id, $refundId, $params = null, $opts = null)
70
  {
72
  }
73
 
74
  /**
75
+ * @param string $id the ID of the application fee to which the fee refund belongs
76
+ * @param string $refundId the ID of the fee refund to update
77
+ * @param null|array $params
78
+ * @param null|array|string $opts
79
+ *
80
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
81
  *
82
+ * @return \Stripe\ApplicationFeeRefund
83
  */
84
  public static function updateRefund($id, $refundId, $params = null, $opts = null)
85
  {
86
  return self::_updateNestedResource($id, static::PATH_REFUNDS, $refundId, $params, $opts);
87
  }
 
 
 
 
 
 
 
 
 
 
 
 
88
  }
lib/stripe-gateway/lib/ApplicationFeeRefund.php CHANGED
@@ -3,38 +3,42 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class ApplicationFeeRefund
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $amount
11
- * @property string $balance_transaction
12
- * @property int $created
13
- * @property string $currency
14
- * @property string $fee
15
- * @property StripeObject $metadata
16
  *
17
- * @package Stripe
 
 
 
 
 
 
 
18
  */
19
  class ApplicationFeeRefund extends ApiResource
20
  {
21
- const OBJECT_NAME = "fee_refund";
22
 
23
  use ApiOperations\Update {
24
  save as protected _save;
25
  }
26
 
27
  /**
28
- * @return string The API URL for this Stripe refund.
29
  */
30
  public function instanceUrl()
31
  {
32
  $id = $this['id'];
33
  $fee = $this['fee'];
34
  if (!$id) {
35
- throw new Error\InvalidRequest(
36
- "Could not determine which URL to request: " .
37
- "class instance has invalid ID: $id",
38
  null
39
  );
40
  }
@@ -42,15 +46,16 @@ class ApplicationFeeRefund extends ApiResource
42
  $fee = Util\Util::utf8($fee);
43
 
44
  $base = ApplicationFee::classUrl();
45
- $feeExtn = urlencode($fee);
46
- $extn = urlencode($id);
47
- return "$base/$feeExtn/refunds/$extn";
 
48
  }
49
 
50
  /**
51
- * @param array|string|null $opts
52
  *
53
- * @return ApplicationFeeRefund The saved refund.
54
  */
55
  public function save($opts = null)
56
  {
3
  namespace Stripe;
4
 
5
  /**
6
+ * <code>Application Fee Refund</code> objects allow you to refund an application
7
+ * fee that has previously been created but not yet refunded. Funds will be
8
+ * refunded to the Stripe account from which the fee was originally collected.
9
  *
10
+ * Related guide: <a
11
+ * href="https://stripe.com/docs/connect/destination-charges#refunding-app-fee">Refunding
12
+ * Application Fees</a>.
 
 
 
 
 
13
  *
14
+ * @property string $id Unique identifier for the object.
15
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
16
+ * @property int $amount Amount, in %s.
17
+ * @property null|string|\Stripe\BalanceTransaction $balance_transaction Balance transaction that describes the impact on your account balance.
18
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
19
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
20
+ * @property string|\Stripe\ApplicationFee $fee ID of the application fee that was refunded.
21
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
22
  */
23
  class ApplicationFeeRefund extends ApiResource
24
  {
25
+ const OBJECT_NAME = 'fee_refund';
26
 
27
  use ApiOperations\Update {
28
  save as protected _save;
29
  }
30
 
31
  /**
32
+ * @return string the API URL for this Stripe refund
33
  */
34
  public function instanceUrl()
35
  {
36
  $id = $this['id'];
37
  $fee = $this['fee'];
38
  if (!$id) {
39
+ throw new Exception\UnexpectedValueException(
40
+ 'Could not determine which URL to request: ' .
41
+ "class instance has invalid ID: {$id}",
42
  null
43
  );
44
  }
46
  $fee = Util\Util::utf8($fee);
47
 
48
  $base = ApplicationFee::classUrl();
49
+ $feeExtn = \urlencode($fee);
50
+ $extn = \urlencode($id);
51
+
52
+ return "{$base}/{$feeExtn}/refunds/{$extn}";
53
  }
54
 
55
  /**
56
+ * @param null|array|string $opts
57
  *
58
+ * @return ApplicationFeeRefund the saved refund
59
  */
60
  public function save($opts = null)
61
  {
lib/stripe-gateway/lib/Balance.php CHANGED
@@ -3,24 +3,36 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class Balance
 
7
  *
8
- * @property string $object
9
- * @property array $available
10
- * @property array $connect_reserved
11
- * @property bool $livemode
12
- * @property array $pending
13
  *
14
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
15
  */
16
  class Balance extends SingletonApiResource
17
  {
18
- const OBJECT_NAME = "balance";
19
 
20
  /**
21
- * @param array|string|null $opts
 
 
22
  *
23
- * @return Balance
24
  */
25
  public static function retrieve($opts = null)
26
  {
3
  namespace Stripe;
4
 
5
  /**
6
+ * This is an object representing your Stripe balance. You can retrieve it to see
7
+ * the balance currently on your Stripe account.
8
  *
9
+ * You can also retrieve the balance history, which contains a list of <a
10
+ * href="https://stripe.com/docs/reporting/balance-transaction-types">transactions</a>
11
+ * that contributed to the balance (charges, payouts, and so forth).
 
 
12
  *
13
+ * The available and pending amounts for each currency are broken down further by
14
+ * payment source types.
15
+ *
16
+ * Related guide: <a
17
+ * href="https://stripe.com/docs/connect/account-balances">Understanding Connect
18
+ * Account Balances</a>.
19
+ *
20
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
21
+ * @property \Stripe\StripeObject[] $available Funds that are available to be transferred or paid out, whether automatically by Stripe or explicitly via the <a href="https://stripe.com/docs/api#transfers">Transfers API</a> or <a href="https://stripe.com/docs/api#payouts">Payouts API</a>. The available balance for each currency and payment type can be found in the <code>source_types</code> property.
22
+ * @property \Stripe\StripeObject[] $connect_reserved Funds held due to negative balances on connected Custom accounts. The connect reserve balance for each currency and payment type can be found in the <code>source_types</code> property.
23
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
24
+ * @property \Stripe\StripeObject[] $pending Funds that are not yet available in the balance, due to the 7-day rolling pay cycle. The pending balance for each currency, and for each payment type, can be found in the <code>source_types</code> property.
25
  */
26
  class Balance extends SingletonApiResource
27
  {
28
+ const OBJECT_NAME = 'balance';
29
 
30
  /**
31
+ * @param null|array|string $opts
32
+ *
33
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
34
  *
35
+ * @return \Stripe\Balance
36
  */
37
  public static function retrieve($opts = null)
38
  {
lib/stripe-gateway/lib/BalanceTransaction.php CHANGED
@@ -3,63 +3,64 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class BalanceTransaction
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $amount
11
- * @property int $available_on
12
- * @property int $created
13
- * @property string $currency
14
- * @property string $description
15
- * @property float $exchange_rate
16
- * @property int $fee
17
- * @property mixed $fee_details
18
- * @property int $net
19
- * @property string $source
20
- * @property string $status
21
- * @property string $type
22
  *
23
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  */
25
  class BalanceTransaction extends ApiResource
26
  {
27
- const OBJECT_NAME = "balance_transaction";
28
 
29
  use ApiOperations\All;
30
  use ApiOperations\Retrieve;
31
 
32
- /**
33
- * Possible string representations of the type of balance transaction.
34
- * @link https://stripe.com/docs/api/balance/balance_transaction#balance_transaction_object-type
35
- */
36
- const TYPE_ADJUSTMENT = 'adjustment';
37
- const TYPE_ADVANCE = 'advance';
38
- const TYPE_ADVANCE_FUNDING = 'advance_funding';
39
- const TYPE_APPLICATION_FEE = 'application_fee';
40
- const TYPE_APPLICATION_FEE_REFUND = 'application_fee_refund';
41
- const TYPE_CHARGE = 'charge';
42
- const TYPE_CONNECT_COLLECTION_TRANSFER = 'connect_collection_transfer';
43
- const TYPE_ISSUING_AUTHORIZATION_HOLD = 'issuing_authorization_hold';
44
  const TYPE_ISSUING_AUTHORIZATION_RELEASE = 'issuing_authorization_release';
45
- const TYPE_ISSUING_TRANSACTION = 'issuing_transaction';
46
- const TYPE_PAYMENT = 'payment';
47
- const TYPE_PAYMENT_FAILURE_REFUND = 'payment_failure_refund';
48
- const TYPE_PAYMENT_REFUND = 'payment_refund';
49
- const TYPE_PAYOUT = 'payout';
50
- const TYPE_PAYOUT_CANCEL = 'payout_cancel';
51
- const TYPE_PAYOUT_FAILURE = 'payout_failure';
52
- const TYPE_REFUND = 'refund';
53
- const TYPE_REFUND_FAILURE = 'refund_failure';
54
- const TYPE_RESERVE_TRANSACTION = 'reserve_transaction';
55
- const TYPE_RESERVED_FUNDS = 'reserved_funds';
56
- const TYPE_STRIPE_FEE = 'stripe_fee';
57
- const TYPE_STRIPE_FX_FEE = 'stripe_fx_fee';
58
- const TYPE_TAX_FEE = 'tax_fee';
59
- const TYPE_TOPUP = 'topup';
60
- const TYPE_TOPUP_REVERSAL = 'topup_reversal';
61
- const TYPE_TRANSFER = 'transfer';
62
- const TYPE_TRANSFER_CANCEL = 'transfer_cancel';
63
- const TYPE_TRANSFER_FAILURE = 'transfer_failure';
64
- const TYPE_TRANSFER_REFUND = 'transfer_refund';
65
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * Balance transactions represent funds moving through your Stripe account. They're
7
+ * created for every type of transaction that comes into or flows out of your
8
+ * Stripe account balance.
9
  *
10
+ * Related guide: <a
11
+ * href="https://stripe.com/docs/reports/balance-transaction-types">Balance
12
+ * Transaction Types</a>.
 
 
 
 
 
 
 
 
 
 
 
13
  *
14
+ * @property string $id Unique identifier for the object.
15
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
16
+ * @property int $amount Gross amount of the transaction, in %s.
17
+ * @property int $available_on The date the transaction's net funds will become available in the Stripe balance.
18
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
19
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
20
+ * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users.
21
+ * @property null|float $exchange_rate The exchange rate used, if applicable, for this transaction. Specifically, if money was converted from currency A to currency B, then the <code>amount</code> in currency A, times <code>exchange_rate</code>, would be the <code>amount</code> in currency B. For example, suppose you charged a customer 10.00 EUR. Then the PaymentIntent's <code>amount</code> would be <code>1000</code> and <code>currency</code> would be <code>eur</code>. Suppose this was converted into 12.34 USD in your Stripe account. Then the BalanceTransaction's <code>amount</code> would be <code>1234</code>, <code>currency</code> would be <code>usd</code>, and <code>exchange_rate</code> would be <code>1.234</code>.
22
+ * @property int $fee Fees (in %s) paid for this transaction.
23
+ * @property \Stripe\StripeObject[] $fee_details Detailed breakdown of fees (in %s) paid for this transaction.
24
+ * @property int $net Net amount of the transaction, in %s.
25
+ * @property string $reporting_category <a href="https://stripe.com/docs/reports/reporting-categories">Learn more</a> about how reporting categories can help you understand balance transactions from an accounting perspective.
26
+ * @property null|string|\Stripe\StripeObject $source The Stripe object to which this transaction is related.
27
+ * @property string $status If the transaction's net funds are available in the Stripe balance yet. Either <code>available</code> or <code>pending</code>.
28
+ * @property string $type Transaction type: <code>adjustment</code>, <code>advance</code>, <code>advance_funding</code>, <code>application_fee</code>, <code>application_fee_refund</code>, <code>charge</code>, <code>connect_collection_transfer</code>, <code>issuing_authorization_hold</code>, <code>issuing_authorization_release</code>, <code>issuing_transaction</code>, <code>payment</code>, <code>payment_failure_refund</code>, <code>payment_refund</code>, <code>payout</code>, <code>payout_cancel</code>, <code>payout_failure</code>, <code>refund</code>, <code>refund_failure</code>, <code>reserve_transaction</code>, <code>reserved_funds</code>, <code>stripe_fee</code>, <code>stripe_fx_fee</code>, <code>tax_fee</code>, <code>topup</code>, <code>topup_reversal</code>, <code>transfer</code>, <code>transfer_cancel</code>, <code>transfer_failure</code>, or <code>transfer_refund</code>. <a href="https://stripe.com/docs/reports/balance-transaction-types">Learn more</a> about balance transaction types and what they represent. If you are looking to classify transactions for accounting purposes, you might want to consider <code>reporting_category</code> instead.
29
  */
30
  class BalanceTransaction extends ApiResource
31
  {
32
+ const OBJECT_NAME = 'balance_transaction';
33
 
34
  use ApiOperations\All;
35
  use ApiOperations\Retrieve;
36
 
37
+ const TYPE_ADJUSTMENT = 'adjustment';
38
+ const TYPE_ADVANCE = 'advance';
39
+ const TYPE_ADVANCE_FUNDING = 'advance_funding';
40
+ const TYPE_APPLICATION_FEE = 'application_fee';
41
+ const TYPE_APPLICATION_FEE_REFUND = 'application_fee_refund';
42
+ const TYPE_CHARGE = 'charge';
43
+ const TYPE_CONNECT_COLLECTION_TRANSFER = 'connect_collection_transfer';
44
+ const TYPE_ISSUING_AUTHORIZATION_HOLD = 'issuing_authorization_hold';
 
 
 
 
45
  const TYPE_ISSUING_AUTHORIZATION_RELEASE = 'issuing_authorization_release';
46
+ const TYPE_ISSUING_TRANSACTION = 'issuing_transaction';
47
+ const TYPE_PAYMENT = 'payment';
48
+ const TYPE_PAYMENT_FAILURE_REFUND = 'payment_failure_refund';
49
+ const TYPE_PAYMENT_REFUND = 'payment_refund';
50
+ const TYPE_PAYOUT = 'payout';
51
+ const TYPE_PAYOUT_CANCEL = 'payout_cancel';
52
+ const TYPE_PAYOUT_FAILURE = 'payout_failure';
53
+ const TYPE_REFUND = 'refund';
54
+ const TYPE_REFUND_FAILURE = 'refund_failure';
55
+ const TYPE_RESERVE_TRANSACTION = 'reserve_transaction';
56
+ const TYPE_RESERVED_FUNDS = 'reserved_funds';
57
+ const TYPE_STRIPE_FEE = 'stripe_fee';
58
+ const TYPE_STRIPE_FX_FEE = 'stripe_fx_fee';
59
+ const TYPE_TAX_FEE = 'tax_fee';
60
+ const TYPE_TOPUP = 'topup';
61
+ const TYPE_TOPUP_REVERSAL = 'topup_reversal';
62
+ const TYPE_TRANSFER = 'transfer';
63
+ const TYPE_TRANSFER_CANCEL = 'transfer_cancel';
64
+ const TYPE_TRANSFER_FAILURE = 'transfer_failure';
65
+ const TYPE_TRANSFER_REFUND = 'transfer_refund';
66
  }
lib/stripe-gateway/lib/BankAccount.php CHANGED
@@ -3,42 +3,52 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class BankAccount
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property string $account
11
- * @property string $account_holder_name
12
- * @property string $account_holder_type
13
- * @property string $bank_name
14
- * @property string $country
15
- * @property string $currency
16
- * @property string $customer
17
- * @property bool $default_for_currency
18
- * @property string $fingerprint
19
- * @property string $last4
20
- * @property StripeObject $metadata
21
- * @property string $routing_number
22
- * @property string $status
23
  *
24
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  */
26
  class BankAccount extends ApiResource
27
  {
28
- const OBJECT_NAME = "bank_account";
29
 
30
  use ApiOperations\Delete;
31
  use ApiOperations\Update;
32
 
33
  /**
34
  * Possible string representations of the bank verification status.
35
- * @link https://stripe.com/docs/api/external_account_bank_accounts/object#account_bank_account_object-status
 
36
  */
37
- const STATUS_NEW = 'new';
38
- const STATUS_VALIDATED = 'validated';
39
- const STATUS_VERIFIED = 'verified';
40
  const STATUS_VERIFICATION_FAILED = 'verification_failed';
41
- const STATUS_ERRORED = 'errored';
42
 
43
  /**
44
  * @return string The instance URL for this resource. It needs to be special
@@ -55,54 +65,65 @@ class BankAccount extends ApiResource
55
  $parent = $this['account'];
56
  $path = 'external_accounts';
57
  } else {
58
- $msg = "Bank accounts cannot be accessed without a customer ID or account ID.";
59
- throw new Error\InvalidRequest($msg, null);
 
60
  }
61
- $parentExtn = urlencode(Util\Util::utf8($parent));
62
- $extn = urlencode(Util\Util::utf8($this['id']));
63
- return "$base/$parentExtn/$path/$extn";
 
64
  }
65
 
66
  /**
67
  * @param array|string $_id
68
- * @param array|string|null $_opts
69
  *
70
- * @throws \Stripe\Error\InvalidRequest
71
  */
72
  public static function retrieve($_id, $_opts = null)
73
  {
74
- $msg = "Bank accounts cannot be accessed without a customer ID or account ID. " .
75
- "Retrieve a bank account using \$customer->sources->retrieve('bank_account_id') or " .
76
- "\$account->external_accounts->retrieve('bank_account_id') instead.";
77
- throw new Error\InvalidRequest($msg, null);
 
 
 
78
  }
79
 
80
  /**
81
  * @param string $_id
82
- * @param array|null $_params
83
- * @param array|string|null $_options
84
  *
85
- * @throws \Stripe\Error\InvalidRequest
86
  */
87
  public static function update($_id, $_params = null, $_options = null)
88
  {
89
- $msg = "Bank accounts cannot be accessed without a customer ID or account ID. " .
90
- "Call save() on \$customer->sources->retrieve('bank_account_id') or " .
91
- "\$account->external_accounts->retrieve('bank_account_id') instead.";
92
- throw new Error\InvalidRequest($msg, null);
 
 
 
93
  }
94
 
95
  /**
96
- * @param array|null $params
97
- * @param array|string|null $options
98
- *
99
- * @return BankAccount The verified bank account.
100
- */
101
- public function verify($params = null, $options = null)
 
 
102
  {
103
  $url = $this->instanceUrl() . '/verify';
104
- list($response, $opts) = $this->_request('post', $url, $params, $options);
105
  $this->refreshFrom($response, $opts);
 
106
  return $this;
107
  }
108
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * These bank accounts are payment methods on <code>Customer</code> objects.
7
  *
8
+ * On the other hand <a
9
+ * href="https://stripe.com/docs/api#external_accounts">External Accounts</a> are
10
+ * transfer destinations on <code>Account</code> objects for <a
11
+ * href="https://stripe.com/docs/connect/custom-accounts">Custom accounts</a>. They
12
+ * can be bank accounts or debit cards as well, and are documented in the links
13
+ * above.
 
 
 
 
 
 
 
 
 
14
  *
15
+ * Related guide: <a
16
+ * href="https://stripe.com/docs/payments/ach-bank-transfers">Processing ACH &amp;
17
+ * Bank Transfers</a>.
18
+ *
19
+ * @property string $id Unique identifier for the object.
20
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
21
+ * @property null|string|\Stripe\Account $account The ID of the account that the bank account is associated with.
22
+ * @property null|string $account_holder_name The name of the person or business that owns the bank account.
23
+ * @property null|string $account_holder_type The type of entity that holds the account. This can be either <code>individual</code> or <code>company</code>.
24
+ * @property null|string $bank_name Name of the bank associated with the routing number (e.g., <code>WELLS FARGO</code>).
25
+ * @property string $country Two-letter ISO code representing the country the bank account is located in.
26
+ * @property string $currency Three-letter <a href="https://stripe.com/docs/payouts">ISO code for the currency</a> paid out to the bank account.
27
+ * @property null|string|\Stripe\Customer $customer The ID of the customer that the bank account is associated with.
28
+ * @property null|bool $default_for_currency Whether this bank account is the default external account for its currency.
29
+ * @property null|string $fingerprint Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
30
+ * @property string $last4 The last four digits of the bank account number.
31
+ * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
32
+ * @property null|string $routing_number The routing transit number for the bank account.
33
+ * @property string $status <p>For bank accounts, possible values are <code>new</code>, <code>validated</code>, <code>verified</code>, <code>verification_failed</code>, or <code>errored</code>. A bank account that hasn't had any activity or validation performed is <code>new</code>. If Stripe can determine that the bank account exists, its status will be <code>validated</code>. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be <code>verified</code>. If the verification failed for any reason, such as microdeposit failure, the status will be <code>verification_failed</code>. If a transfer sent to this bank account fails, we'll set the status to <code>errored</code> and will not continue to send transfers until the bank details are updated.</p><p>For external accounts, possible values are <code>new</code> and <code>errored</code>. Validations aren't run against external accounts because they're only used for payouts. This means the other statuses don't apply. If a transfer fails, the status is set to <code>errored</code> and transfers are stopped until account details are updated.</p>
34
  */
35
  class BankAccount extends ApiResource
36
  {
37
+ const OBJECT_NAME = 'bank_account';
38
 
39
  use ApiOperations\Delete;
40
  use ApiOperations\Update;
41
 
42
  /**
43
  * Possible string representations of the bank verification status.
44
+ *
45
+ * @see https://stripe.com/docs/api/external_account_bank_accounts/object#account_bank_account_object-status
46
  */
47
+ const STATUS_NEW = 'new';
48
+ const STATUS_VALIDATED = 'validated';
49
+ const STATUS_VERIFIED = 'verified';
50
  const STATUS_VERIFICATION_FAILED = 'verification_failed';
51
+ const STATUS_ERRORED = 'errored';
52
 
53
  /**
54
  * @return string The instance URL for this resource. It needs to be special
65
  $parent = $this['account'];
66
  $path = 'external_accounts';
67
  } else {
68
+ $msg = 'Bank accounts cannot be accessed without a customer ID or account ID.';
69
+
70
+ throw new Exception\UnexpectedValueException($msg, null);
71
  }
72
+ $parentExtn = \urlencode(Util\Util::utf8($parent));
73
+ $extn = \urlencode(Util\Util::utf8($this['id']));
74
+
75
+ return "{$base}/{$parentExtn}/{$path}/{$extn}";
76
  }
77
 
78
  /**
79
  * @param array|string $_id
80
+ * @param null|array|string $_opts
81
  *
82
+ * @throws \Stripe\Exception\BadMethodCallException
83
  */
84
  public static function retrieve($_id, $_opts = null)
85
  {
86
+ $msg = 'Bank accounts cannot be retrieved without a customer ID or ' .
87
+ 'an account ID. Retrieve a bank account using ' .
88
+ "`Customer::retrieveSource('customer_id', " .
89
+ "'bank_account_id')` or `Account::retrieveExternalAccount(" .
90
+ "'account_id', 'bank_account_id')`.";
91
+
92
+ throw new Exception\BadMethodCallException($msg);
93
  }
94
 
95
  /**
96
  * @param string $_id
97
+ * @param null|array $_params
98
+ * @param null|array|string $_options
99
  *
100
+ * @throws \Stripe\Exception\BadMethodCallException
101
  */
102
  public static function update($_id, $_params = null, $_options = null)
103
  {
104
+ $msg = 'Bank accounts cannot be updated without a customer ID or an ' .
105
+ 'account ID. Update a bank account using ' .
106
+ "`Customer::updateSource('customer_id', 'bank_account_id', " .
107
+ '$updateParams)` or `Account::updateExternalAccount(' .
108
+ "'account_id', 'bank_account_id', \$updateParams)`.";
109
+
110
+ throw new Exception\BadMethodCallException($msg);
111
  }
112
 
113
  /**
114
+ * @param null|array $params
115
+ * @param null|array|string $opts
116
+ *
117
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
118
+ *
119
+ * @return BankAccount the verified bank account
120
+ */
121
+ public function verify($params = null, $opts = null)
122
  {
123
  $url = $this->instanceUrl() . '/verify';
124
+ list($response, $opts) = $this->_request('post', $url, $params, $opts);
125
  $this->refreshFrom($response, $opts);
126
+
127
  return $this;
128
  }
129
  }
lib/stripe-gateway/lib/BitcoinReceiver.php CHANGED
@@ -3,16 +3,35 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class BitcoinReceiver
7
- *
8
- * @package Stripe
9
- *
10
  * @deprecated Bitcoin receivers are deprecated. Please use the sources API instead.
11
- * @link https://stripe.com/docs/sources/bitcoin
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  */
13
  class BitcoinReceiver extends ApiResource
14
  {
15
- const OBJECT_NAME = "bitcoin_receiver";
16
 
17
  use ApiOperations\All;
18
  use ApiOperations\Retrieve;
@@ -23,7 +42,7 @@ class BitcoinReceiver extends ApiResource
23
  */
24
  public static function classUrl()
25
  {
26
- return "/v1/bitcoin/receivers";
27
  }
28
 
29
  /**
@@ -36,13 +55,15 @@ class BitcoinReceiver extends ApiResource
36
  $base = Customer::classUrl();
37
  $parent = $this['customer'];
38
  $path = 'sources';
39
- $parentExtn = urlencode(Util\Util::utf8($parent));
40
- $extn = urlencode(Util\Util::utf8($this['id']));
41
- return "$base/$parentExtn/$path/$extn";
42
- } else {
43
- $base = BitcoinReceiver::classUrl();
44
- $extn = urlencode(Util\Util::utf8($this['id']));
45
- return "$base/$extn";
46
  }
 
 
 
 
 
47
  }
48
  }
3
  namespace Stripe;
4
 
5
  /**
 
 
 
 
6
  * @deprecated Bitcoin receivers are deprecated. Please use the sources API instead.
7
+ * @see https://stripe.com/docs/sources/bitcoin
8
+ *
9
+ * @property string $id Unique identifier for the object.
10
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
11
+ * @property bool $active True when this bitcoin receiver has received a non-zero amount of bitcoin.
12
+ * @property int $amount The amount of <code>currency</code> that you are collecting as payment.
13
+ * @property int $amount_received The amount of <code>currency</code> to which <code>bitcoin_amount_received</code> has been converted.
14
+ * @property int $bitcoin_amount The amount of bitcoin that the customer should send to fill the receiver. The <code>bitcoin_amount</code> is denominated in Satoshi: there are 10^8 Satoshi in one bitcoin.
15
+ * @property int $bitcoin_amount_received The amount of bitcoin that has been sent by the customer to this receiver.
16
+ * @property string $bitcoin_uri This URI can be displayed to the customer as a clickable link (to activate their bitcoin client) or as a QR code (for mobile wallets).
17
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
18
+ * @property string $currency Three-letter <a href="https://stripe.com/docs/currencies">ISO code for the currency</a> to which the bitcoin will be converted.
19
+ * @property null|string $customer The customer ID of the bitcoin receiver.
20
+ * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users.
21
+ * @property null|string $email The customer's email address, set by the API call that creates the receiver.
22
+ * @property bool $filled This flag is initially false and updates to true when the customer sends the <code>bitcoin_amount</code> to this receiver.
23
+ * @property string $inbound_address A bitcoin address that is specific to this receiver. The customer can send bitcoin to this address to fill the receiver.
24
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
25
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
26
+ * @property null|string $payment The ID of the payment created from the receiver, if any. Hidden when viewing the receiver with a publishable key.
27
+ * @property null|string $refund_address The refund address of this bitcoin receiver.
28
+ * @property \Stripe\Collection $transactions A list with one entry for each time that the customer sent bitcoin to the receiver. Hidden when viewing the receiver with a publishable key.
29
+ * @property bool $uncaptured_funds This receiver contains uncaptured funds that can be used for a payment or refunded.
30
+ * @property null|bool $used_for_payment Indicate if this source is used for payment.
31
  */
32
  class BitcoinReceiver extends ApiResource
33
  {
34
+ const OBJECT_NAME = 'bitcoin_receiver';
35
 
36
  use ApiOperations\All;
37
  use ApiOperations\Retrieve;
42
  */
43
  public static function classUrl()
44
  {
45
+ return '/v1/bitcoin/receivers';
46
  }
47
 
48
  /**
55
  $base = Customer::classUrl();
56
  $parent = $this['customer'];
57
  $path = 'sources';
58
+ $parentExtn = \urlencode(Util\Util::utf8($parent));
59
+ $extn = \urlencode(Util\Util::utf8($this['id']));
60
+
61
+ return "{$base}/{$parentExtn}/{$path}/{$extn}";
 
 
 
62
  }
63
+
64
+ $base = BitcoinReceiver::classUrl();
65
+ $extn = \urlencode(Util\Util::utf8($this['id']));
66
+
67
+ return "{$base}/{$extn}";
68
  }
69
  }
lib/stripe-gateway/lib/BitcoinTransaction.php CHANGED
@@ -3,11 +3,15 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class BitcoinTransaction
7
- *
8
- * @package Stripe
 
 
 
 
9
  */
10
  class BitcoinTransaction extends ApiResource
11
  {
12
- const OBJECT_NAME = "bitcoin_transaction";
13
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * @property string $id Unique identifier for the object.
7
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
8
+ * @property int $amount The amount of <code>currency</code> that the transaction was converted to in real-time.
9
+ * @property int $bitcoin_amount The amount of bitcoin contained in the transaction.
10
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
11
+ * @property string $currency Three-letter <a href="https://stripe.com/docs/currencies">ISO code for the currency</a> to which this transaction was converted.
12
+ * @property string $receiver The receiver to which this transaction was sent.
13
  */
14
  class BitcoinTransaction extends ApiResource
15
  {
16
+ const OBJECT_NAME = 'bitcoin_transaction';
17
  }
lib/stripe-gateway/lib/Capability.php CHANGED
@@ -3,44 +3,42 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class Capability
7
  *
8
- * @package Stripe
 
 
9
  *
10
- * @property string $id
11
- * @property string $object
12
- * @property string $account
13
- * @property bool $requested
14
- * @property int $requested_at
15
- * @property mixed $requirements
16
- * @property string $status
17
  */
18
  class Capability extends ApiResource
19
  {
20
- const OBJECT_NAME = "capability";
21
 
22
  use ApiOperations\Update;
23
 
24
- /**
25
- * Possible string representations of a capability's status.
26
- * @link https://stripe.com/docs/api/capabilities/object#capability_object-status
27
- */
28
- const STATUS_ACTIVE = 'active';
29
- const STATUS_INACTIVE = 'inactive';
30
- const STATUS_PENDING = 'pending';
31
  const STATUS_UNREQUESTED = 'unrequested';
32
 
33
  /**
34
- * @return string The API URL for this Stripe account reversal.
35
  */
36
  public function instanceUrl()
37
  {
38
  $id = $this['id'];
39
  $account = $this['account'];
40
  if (!$id) {
41
- throw new Error\InvalidRequest(
42
- "Could not determine which URL to request: " .
43
- "class instance has invalid ID: $id",
44
  null
45
  );
46
  }
@@ -48,35 +46,40 @@ class Capability extends ApiResource
48
  $account = Util\Util::utf8($account);
49
 
50
  $base = Account::classUrl();
51
- $accountExtn = urlencode($account);
52
- $extn = urlencode($id);
53
- return "$base/$accountExtn/capabilities/$extn";
 
54
  }
55
 
56
  /**
57
  * @param array|string $_id
58
- * @param array|string|null $_opts
59
  *
60
- * @throws \Stripe\Error\InvalidRequest
61
  */
62
  public static function retrieve($_id, $_opts = null)
63
  {
64
- $msg = "Capabilities cannot be accessed without an account ID. " .
65
- "Retrieve a Capability using \$account->retrieveCapability('acap_123') instead.";
66
- throw new Error\InvalidRequest($msg, null);
 
 
67
  }
68
 
69
  /**
70
  * @param string $_id
71
- * @param array|null $_params
72
- * @param array|string|null $_options
73
  *
74
- * @throws \Stripe\Error\InvalidRequest
75
  */
76
  public static function update($_id, $_params = null, $_options = null)
77
  {
78
- $msg = "Capabilities cannot be accessed without an account ID. " .
79
- "Update a Capability using \$account->updateCapability('acap_123') instead.";
80
- throw new Error\InvalidRequest($msg, null);
 
 
81
  }
82
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * This is an object representing a capability for a Stripe account.
7
  *
8
+ * Related guide: <a
9
+ * href="https://stripe.com/docs/connect/capabilities-overview">Capabilities
10
+ * Overview</a>.
11
  *
12
+ * @property string $id The identifier for the capability.
13
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
14
+ * @property string|\Stripe\Account $account The account for which the capability enables functionality.
15
+ * @property bool $requested Whether the capability has been requested.
16
+ * @property null|int $requested_at Time at which the capability was requested. Measured in seconds since the Unix epoch.
17
+ * @property \Stripe\StripeObject $requirements
18
+ * @property string $status The status of the capability. Can be <code>active</code>, <code>inactive</code>, <code>pending</code>, or <code>unrequested</code>.
19
  */
20
  class Capability extends ApiResource
21
  {
22
+ const OBJECT_NAME = 'capability';
23
 
24
  use ApiOperations\Update;
25
 
26
+ const STATUS_ACTIVE = 'active';
27
+ const STATUS_INACTIVE = 'inactive';
28
+ const STATUS_PENDING = 'pending';
 
 
 
 
29
  const STATUS_UNREQUESTED = 'unrequested';
30
 
31
  /**
32
+ * @return string the API URL for this Stripe account reversal
33
  */
34
  public function instanceUrl()
35
  {
36
  $id = $this['id'];
37
  $account = $this['account'];
38
  if (!$id) {
39
+ throw new Exception\UnexpectedValueException(
40
+ 'Could not determine which URL to request: ' .
41
+ "class instance has invalid ID: {$id}",
42
  null
43
  );
44
  }
46
  $account = Util\Util::utf8($account);
47
 
48
  $base = Account::classUrl();
49
+ $accountExtn = \urlencode($account);
50
+ $extn = \urlencode($id);
51
+
52
+ return "{$base}/{$accountExtn}/capabilities/{$extn}";
53
  }
54
 
55
  /**
56
  * @param array|string $_id
57
+ * @param null|array|string $_opts
58
  *
59
+ * @throws \Stripe\Exception\BadMethodCallException
60
  */
61
  public static function retrieve($_id, $_opts = null)
62
  {
63
+ $msg = 'Capabilities cannot be retrieved without an account ID. ' .
64
+ 'Retrieve a capability using `Account::retrieveCapability(' .
65
+ "'account_id', 'capability_id')`.";
66
+
67
+ throw new Exception\BadMethodCallException($msg);
68
  }
69
 
70
  /**
71
  * @param string $_id
72
+ * @param null|array $_params
73
+ * @param null|array|string $_options
74
  *
75
+ * @throws \Stripe\Exception\BadMethodCallException
76
  */
77
  public static function update($_id, $_params = null, $_options = null)
78
  {
79
+ $msg = 'Capabilities cannot be updated without an account ID. ' .
80
+ 'Update a capability using `Account::updateCapability(' .
81
+ "'account_id', 'capability_id', \$updateParams)`.";
82
+
83
+ throw new Exception\BadMethodCallException($msg);
84
  }
85
  }
lib/stripe-gateway/lib/Card.php CHANGED
@@ -3,69 +3,75 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class Card
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property string $account
11
- * @property string $address_city
12
- * @property string $address_country
13
- * @property string $address_line1
14
- * @property string $address_line1_check
15
- * @property string $address_line2
16
- * @property string $address_state
17
- * @property string $address_zip
18
- * @property string $address_zip_check
19
- * @property string[] $available_payout_methods
20
- * @property string $brand
21
- * @property string $country
22
- * @property string $currency
23
- * @property string $customer
24
- * @property string $cvc_check
25
- * @property bool $default_for_currency
26
- * @property string $dynamic_last4
27
- * @property int $exp_month
28
- * @property int $exp_year
29
- * @property string $fingerprint
30
- * @property string $funding
31
- * @property string $last4
32
- * @property StripeObject $metadata
33
- * @property string $name
34
- * @property string $recipient
35
- * @property string $tokenization_method
36
  *
37
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  */
39
  class Card extends ApiResource
40
  {
41
- const OBJECT_NAME = "card";
42
 
43
  use ApiOperations\Delete;
44
  use ApiOperations\Update;
45
 
46
  /**
47
  * Possible string representations of the CVC check status.
48
- * @link https://stripe.com/docs/api/cards/object#card_object-cvc_check
 
49
  */
50
- const CVC_CHECK_FAIL = 'fail';
51
- const CVC_CHECK_PASS = 'pass';
52
  const CVC_CHECK_UNAVAILABLE = 'unavailable';
53
- const CVC_CHECK_UNCHECKED = 'unchecked';
54
 
55
  /**
56
  * Possible string representations of the funding of the card.
57
- * @link https://stripe.com/docs/api/cards/object#card_object-funding
 
58
  */
59
- const FUNDING_CREDIT = 'credit';
60
- const FUNDING_DEBIT = 'debit';
61
  const FUNDING_PREPAID = 'prepaid';
62
  const FUNDING_UNKNOWN = 'unknown';
63
 
64
  /**
65
  * Possible string representations of the tokenization method when using Apple Pay or Google Pay.
66
- * @link https://stripe.com/docs/api/cards/object#card_object-tokenization_method
 
67
  */
68
- const TOKENIZATION_METHOD_APPLE_PAY = 'apple_pay';
69
  const TOKENIZATION_METHOD_GOOGLE_PAY = 'google_pay';
70
 
71
  /**
@@ -88,42 +94,47 @@ class Card extends ApiResource
88
  $parent = $this['recipient'];
89
  $path = 'cards';
90
  } else {
91
- $msg = "Cards cannot be accessed without a customer ID, account ID or recipient ID.";
92
- throw new Error\InvalidRequest($msg, null);
 
93
  }
94
- $parentExtn = urlencode(Util\Util::utf8($parent));
95
- $extn = urlencode(Util\Util::utf8($this['id']));
96
- return "$base/$parentExtn/$path/$extn";
 
97
  }
98
 
99
  /**
100
  * @param array|string $_id
101
- * @param array|string|null $_opts
102
  *
103
- * @throws \Stripe\Error\InvalidRequest
104
  */
105
  public static function retrieve($_id, $_opts = null)
106
  {
107
- $msg = "Cards cannot be accessed without a customer, recipient or account ID. " .
108
- "Retrieve a card using \$customer->sources->retrieve('card_id'), " .
109
- "\$recipient->cards->retrieve('card_id'), or " .
110
- "\$account->external_accounts->retrieve('card_id') instead.";
111
- throw new Error\InvalidRequest($msg, null);
 
112
  }
113
 
114
  /**
115
  * @param string $_id
116
- * @param array|null $_params
117
- * @param array|string|null $_options
118
  *
119
- * @throws \Stripe\Error\InvalidRequest
120
  */
121
  public static function update($_id, $_params = null, $_options = null)
122
  {
123
- $msg = "Cards cannot be accessed without a customer, recipient or account ID. " .
124
- "Call save() on \$customer->sources->retrieve('card_id'), " .
125
- "\$recipient->cards->retrieve('card_id'), or " .
126
- "\$account->external_accounts->retrieve('card_id') instead.";
127
- throw new Error\InvalidRequest($msg, null);
 
 
128
  }
129
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * You can store multiple cards on a customer in order to charge the customer
7
+ * later. You can also store multiple debit cards on a recipient in order to
8
+ * transfer to those cards later.
9
  *
10
+ * Related guide: <a href="https://stripe.com/docs/sources/cards">Card Payments
11
+ * with Sources</a>.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  *
13
+ * @property string $id Unique identifier for the object.
14
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
15
+ * @property null|string|\Stripe\Account $account The account this card belongs to. This attribute will not be in the card object if the card belongs to a customer or recipient instead.
16
+ * @property null|string $address_city City/District/Suburb/Town/Village.
17
+ * @property null|string $address_country Billing address country, if provided when creating card.
18
+ * @property null|string $address_line1 Address line 1 (Street address/PO Box/Company name).
19
+ * @property null|string $address_line1_check If <code>address_line1</code> was provided, results of the check: <code>pass</code>, <code>fail</code>, <code>unavailable</code>, or <code>unchecked</code>.
20
+ * @property null|string $address_line2 Address line 2 (Apartment/Suite/Unit/Building).
21
+ * @property null|string $address_state State/County/Province/Region.
22
+ * @property null|string $address_zip ZIP or postal code.
23
+ * @property null|string $address_zip_check If <code>address_zip</code> was provided, results of the check: <code>pass</code>, <code>fail</code>, <code>unavailable</code>, or <code>unchecked</code>.
24
+ * @property null|string[] $available_payout_methods A set of available payout methods for this card. Will be either <code>[&quot;standard&quot;]</code> or <code>[&quot;standard&quot;, &quot;instant&quot;]</code>. Only values from this set should be passed as the <code>method</code> when creating a transfer.
25
+ * @property string $brand Card brand. Can be <code>American Express</code>, <code>Diners Club</code>, <code>Discover</code>, <code>JCB</code>, <code>MasterCard</code>, <code>UnionPay</code>, <code>Visa</code>, or <code>Unknown</code>.
26
+ * @property null|string $country Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.
27
+ * @property null|string $currency
28
+ * @property null|string|\Stripe\Customer $customer The customer that this card belongs to. This attribute will not be in the card object if the card belongs to an account or recipient instead.
29
+ * @property null|string $cvc_check If a CVC was provided, results of the check: <code>pass</code>, <code>fail</code>, <code>unavailable</code>, or <code>unchecked</code>.
30
+ * @property null|bool $default_for_currency Whether this card is the default external account for its currency.
31
+ * @property null|string $dynamic_last4 (For tokenized numbers only.) The last four digits of the device account number.
32
+ * @property int $exp_month Two-digit number representing the card's expiration month.
33
+ * @property int $exp_year Four-digit number representing the card's expiration year.
34
+ * @property null|string $fingerprint Uniquely identifies this particular card number. You can use this attribute to check whether two customers who’ve signed up with you are using the same card number,for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number.
35
+ * @property string $funding Card funding type. Can be <code>credit</code>, <code>debit</code>, <code>prepaid</code>, or <code>unknown</code>.
36
+ * @property string $last4 The last four digits of the card.
37
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
38
+ * @property null|string $name Cardholder name.
39
+ * @property null|string|\Stripe\Recipient $recipient The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
40
+ * @property null|string $tokenization_method If the card number is tokenized, this is the method that was used. Can be <code>amex_express_checkout</code>, <code>android_pay</code> (includes Google Pay), <code>apple_pay</code>, <code>masterpass</code>, <code>visa_checkout</code>, or null.
41
  */
42
  class Card extends ApiResource
43
  {
44
+ const OBJECT_NAME = 'card';
45
 
46
  use ApiOperations\Delete;
47
  use ApiOperations\Update;
48
 
49
  /**
50
  * Possible string representations of the CVC check status.
51
+ *
52
+ * @see https://stripe.com/docs/api/cards/object#card_object-cvc_check
53
  */
54
+ const CVC_CHECK_FAIL = 'fail';
55
+ const CVC_CHECK_PASS = 'pass';
56
  const CVC_CHECK_UNAVAILABLE = 'unavailable';
57
+ const CVC_CHECK_UNCHECKED = 'unchecked';
58
 
59
  /**
60
  * Possible string representations of the funding of the card.
61
+ *
62
+ * @see https://stripe.com/docs/api/cards/object#card_object-funding
63
  */
64
+ const FUNDING_CREDIT = 'credit';
65
+ const FUNDING_DEBIT = 'debit';
66
  const FUNDING_PREPAID = 'prepaid';
67
  const FUNDING_UNKNOWN = 'unknown';
68
 
69
  /**
70
  * Possible string representations of the tokenization method when using Apple Pay or Google Pay.
71
+ *
72
+ * @see https://stripe.com/docs/api/cards/object#card_object-tokenization_method
73
  */
74
+ const TOKENIZATION_METHOD_APPLE_PAY = 'apple_pay';
75
  const TOKENIZATION_METHOD_GOOGLE_PAY = 'google_pay';
76
 
77
  /**
94
  $parent = $this['recipient'];
95
  $path = 'cards';
96
  } else {
97
+ $msg = 'Cards cannot be accessed without a customer ID, account ID or recipient ID.';
98
+
99
+ throw new Exception\UnexpectedValueException($msg);
100
  }
101
+ $parentExtn = \urlencode(Util\Util::utf8($parent));
102
+ $extn = \urlencode(Util\Util::utf8($this['id']));
103
+
104
+ return "{$base}/{$parentExtn}/{$path}/{$extn}";
105
  }
106
 
107
  /**
108
  * @param array|string $_id
109
+ * @param null|array|string $_opts
110
  *
111
+ * @throws \Stripe\Exception\BadMethodCallException
112
  */
113
  public static function retrieve($_id, $_opts = null)
114
  {
115
+ $msg = 'Cards cannot be retrieved without a customer ID or an ' .
116
+ 'account ID. Retrieve a card using ' .
117
+ "`Customer::retrieveSource('customer_id', 'card_id')` or " .
118
+ "`Account::retrieveExternalAccount('account_id', 'card_id')`.";
119
+
120
+ throw new Exception\BadMethodCallException($msg);
121
  }
122
 
123
  /**
124
  * @param string $_id
125
+ * @param null|array $_params
126
+ * @param null|array|string $_options
127
  *
128
+ * @throws \Stripe\Exception\BadMethodCallException
129
  */
130
  public static function update($_id, $_params = null, $_options = null)
131
  {
132
+ $msg = 'Cards cannot be updated without a customer ID or an ' .
133
+ 'account ID. Update a card using ' .
134
+ "`Customer::updateSource('customer_id', 'card_id', " .
135
+ '$updateParams)` or `Account::updateExternalAccount(' .
136
+ "'account_id', 'card_id', \$updateParams)`.";
137
+
138
+ throw new Exception\BadMethodCallException($msg);
139
  }
140
  }
lib/stripe-gateway/lib/Charge.php CHANGED
@@ -3,204 +3,141 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class Charge
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $amount
11
- * @property int $amount_refunded
12
- * @property string $application
13
- * @property string $application_fee
14
- * @property int $application_fee_amount
15
- * @property string $balance_transaction
16
- * @property mixed $billing_details
17
- * @property bool $captured
18
- * @property int $created
19
- * @property string $currency
20
- * @property string $customer
21
- * @property string $description
22
- * @property string $destination
23
- * @property string $dispute
24
- * @property string $failure_code
25
- * @property string $failure_message
26
- * @property mixed $fraud_details
27
- * @property string $invoice
28
- * @property bool $livemode
29
- * @property StripeObject $metadata
30
- * @property string $on_behalf_of
31
- * @property string $order
32
- * @property mixed $outcome
33
- * @property bool $paid
34
- * @property string $payment_intent
35
- * @property string $payment_method
36
- * @property mixed $payment_method_details
37
- * @property string $receipt_email
38
- * @property string $receipt_number
39
- * @property string $receipt_url
40
- * @property bool $refunded
41
- * @property Collection $refunds
42
- * @property string $review
43
- * @property mixed $shipping
44
- * @property mixed $source
45
- * @property string $source_transfer
46
- * @property string $statement_descriptor
47
- * @property string $status
48
- * @property string $transfer
49
- * @property mixed $transfer_data
50
- * @property string $transfer_group
51
  *
52
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  */
54
  class Charge extends ApiResource
55
  {
56
- const OBJECT_NAME = "charge";
57
 
58
  use ApiOperations\All;
59
  use ApiOperations\Create;
60
  use ApiOperations\Retrieve;
61
  use ApiOperations\Update;
62
 
63
- /**
64
- * Possible string representations of decline codes.
65
- * These strings are applicable to the decline_code property of the \Stripe\Error\Card exception.
66
- * @link https://stripe.com/docs/declines/codes
67
- */
68
- const DECLINED_APPROVE_WITH_ID = 'approve_with_id';
69
- const DECLINED_CALL_ISSUER = 'call_issuer';
70
- const DECLINED_CARD_NOT_SUPPORTED = 'card_not_supported';
71
- const DECLINED_CARD_VELOCITY_EXCEEDED = 'card_velocity_exceeded';
72
- const DECLINED_CURRENCY_NOT_SUPPORTED = 'currency_not_supported';
73
- const DECLINED_DO_NOT_HONOR = 'do_not_honor';
74
- const DECLINED_DO_NOT_TRY_AGAIN = 'do_not_try_again';
75
- const DECLINED_DUPLICATED_TRANSACTION = 'duplicate_transaction';
76
- const DECLINED_EXPIRED_CARD = 'expired_card';
77
- const DECLINED_FRAUDULENT = 'fraudulent';
78
- const DECLINED_GENERIC_DECLINE = 'generic_decline';
79
- const DECLINED_INCORRECT_NUMBER = 'incorrect_number';
80
- const DECLINED_INCORRECT_CVC = 'incorrect_cvc';
81
- const DECLINED_INCORRECT_PIN = 'incorrect_pin';
82
- const DECLINED_INCORRECT_ZIP = 'incorrect_zip';
83
- const DECLINED_INSUFFICIENT_FUNDS = 'insufficient_funds';
84
- const DECLINED_INVALID_ACCOUNT = 'invalid_account';
85
- const DECLINED_INVALID_AMOUNT = 'invalid_amount';
86
- const DECLINED_INVALID_CVC = 'invalid_cvc';
87
- const DECLINED_INVALID_EXPIRY_YEAR = 'invalid_expiry_year';
88
- const DECLINED_INVALID_NUMBER = 'invalid_number';
89
- const DECLINED_INVALID_PIN = 'invalid_pin';
90
- const DECLINED_ISSUER_NOT_AVAILABLE = 'issuer_not_available';
91
- const DECLINED_LOST_CARD = 'lost_card';
92
- const DECLINED_MERCHANT_BLACKLIST = 'merchant_blacklist';
93
- const DECLINED_NEW_ACCOUNT_INFORMATION_AVAILABLE = 'new_account_information_available';
94
- const DECLINED_NO_ACTION_TAKEN = 'no_action_taken';
95
- const DECLINED_NOT_PERMITTED = 'not_permitted';
96
- const DECLINED_PICKUP_CARD = 'pickup_card';
97
- const DECLINED_PIN_TRY_EXCEEDED = 'pin_try_exceeded';
98
- const DECLINED_PROCESSING_ERROR = 'processing_error';
99
- const DECLINED_REENTER_TRANSACTION = 'reenter_transaction';
100
- const DECLINED_RESTRICTED_CARD = 'restricted_card';
101
- const DECLINED_REVOCATION_OF_ALL_AUTHORIZATIONS = 'revocation_of_all_authorizations';
102
- const DECLINED_REVOCATION_OF_AUTHORIZATION = 'revocation_of_authorization';
103
- const DECLINED_SECURITY_VIOLATION = 'security_violation';
104
- const DECLINED_SERVICE_NOT_ALLOWED = 'service_not_allowed';
105
- const DECLINED_STOLEN_CARD = 'stolen_card';
106
- const DECLINED_STOP_PAYMENT_ORDER = 'stop_payment_order';
107
- const DECLINED_TESTMODE_DECLINE = 'testmode_decline';
108
- const DECLINED_TRANSACTION_NOT_ALLOWED = 'transaction_not_allowed';
109
- const DECLINED_TRY_AGAIN_LATER = 'try_again_later';
110
- const DECLINED_WITHDRAWAL_COUNT_LIMIT_EXCEEDED = 'withdrawal_count_limit_exceeded';
111
-
112
- /**
113
- * Possible string representations of the status of the charge.
114
- * @link https://stripe.com/docs/api/charges/object#charge_object-status
115
- */
116
- const STATUS_FAILED = 'failed';
117
- const STATUS_PENDING = 'pending';
118
  const STATUS_SUCCEEDED = 'succeeded';
119
 
120
  /**
121
- * @param array|null $params
122
- * @param array|string|null $options
123
- *
124
- * @return Charge The refunded charge.
125
- */
126
- public function refund($params = null, $options = null)
127
- {
128
- $url = $this->instanceUrl() . '/refund';
129
- list($response, $opts) = $this->_request('post', $url, $params, $options);
130
- $this->refreshFrom($response, $opts);
131
- return $this;
132
- }
133
-
134
- /**
135
- * @param array|null $params
136
- * @param array|string|null $options
137
- *
138
- * @return Charge The captured charge.
139
- */
140
- public function capture($params = null, $options = null)
141
- {
142
- $url = $this->instanceUrl() . '/capture';
143
- list($response, $opts) = $this->_request('post', $url, $params, $options);
144
- $this->refreshFrom($response, $opts);
145
- return $this;
146
- }
147
-
148
- /**
149
- * @param array|null $params
150
- * @param array|string|null $options
151
- *
152
- * @deprecated Use the `save` method on the Dispute object
153
  *
154
- * @return array The updated dispute.
155
  */
156
- public function updateDispute($params = null, $options = null)
157
- {
158
- $url = $this->instanceUrl() . '/dispute';
159
- list($response, $opts) = $this->_request('post', $url, $params, $options);
160
- $this->refreshFrom(['dispute' => $response], $opts, true);
161
- return $this->dispute;
162
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
163
 
164
  /**
165
- * @param array|string|null $options
 
166
  *
167
- * @deprecated Use the `close` method on the Dispute object
168
  *
169
- * @return Charge The updated charge.
170
  */
171
- public function closeDispute($options = null)
172
  {
173
- $url = $this->instanceUrl() . '/dispute/close';
174
- list($response, $opts) = $this->_request('post', $url, null, $options);
175
- $this->refreshFrom($response, $opts);
176
- return $this;
177
- }
178
-
179
- /**
180
- * @param array|string|null $opts
181
- *
182
- * @return Charge The updated charge.
183
- */
184
- public function markAsFraudulent($opts = null)
185
- {
186
- $params = ['fraud_details' => ['user_report' => 'fraudulent']];
187
- $url = $this->instanceUrl();
188
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
189
  $this->refreshFrom($response, $opts);
190
- return $this;
191
- }
192
 
193
- /**
194
- * @param array|string|null $opts
195
- *
196
- * @return Charge The updated charge.
197
- */
198
- public function markAsSafe($opts = null)
199
- {
200
- $params = ['fraud_details' => ['user_report' => 'safe']];
201
- $url = $this->instanceUrl();
202
- list($response, $opts) = $this->_request('post', $url, $params, $opts);
203
- $this->refreshFrom($response, $opts);
204
  return $this;
205
  }
206
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * To charge a credit or a debit card, you create a <code>Charge</code> object. You
7
+ * can retrieve and refund individual charges as well as list all charges. Charges
8
+ * are identified by a unique, random ID.
9
  *
10
+ * Related guide: <a
11
+ * href="https://stripe.com/docs/payments/accept-a-payment-charges">Accept a
12
+ * payment with the Charges API</a>.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  *
14
+ * @property string $id Unique identifier for the object.
15
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
16
+ * @property int $amount Amount intended to be collected by this payment. A positive integer representing how much to charge in the <a href="https://stripe.com/docs/currencies#zero-decimal">smallest currency unit</a> (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or <a href="https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts">equivalent in charge currency</a>. The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
17
+ * @property int $amount_refunded Amount in %s refunded (can be less than the amount attribute on the charge if a partial refund was issued).
18
+ * @property null|string|\Stripe\StripeObject $application ID of the Connect application that created the charge.
19
+ * @property null|string|\Stripe\ApplicationFee $application_fee The application fee (if any) for the charge. <a href="https://stripe.com/docs/connect/direct-charges#collecting-fees">See the Connect documentation</a> for details.
20
+ * @property null|int $application_fee_amount The amount of the application fee (if any) for the charge. <a href="https://stripe.com/docs/connect/direct-charges#collecting-fees">See the Connect documentation</a> for details.
21
+ * @property null|string|\Stripe\BalanceTransaction $balance_transaction ID of the balance transaction that describes the impact of this charge on your account balance (not including refunds or disputes).
22
+ * @property \Stripe\StripeObject $billing_details
23
+ * @property null|string $calculated_statement_descriptor The full statement descriptor that is passed to card networks, and that is displayed on your customers' credit card and bank statements. Allows you to see what the statement descriptor looks like after the static and dynamic portions are combined.
24
+ * @property bool $captured If the charge was created without capturing, this Boolean represents whether it is still uncaptured or has since been captured.
25
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
26
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
27
+ * @property null|string|\Stripe\Customer $customer ID of the customer this charge is for if one exists.
28
+ * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users.
29
+ * @property null|string|\Stripe\Account $destination ID of an existing, connected Stripe account to transfer funds to if <code>transfer_data</code> was specified in the charge request.
30
+ * @property null|string|\Stripe\Dispute $dispute Details about the dispute if the charge has been disputed.
31
+ * @property bool $disputed Whether the charge has been disputed.
32
+ * @property null|string $failure_code Error code explaining reason for charge failure if available (see <a href="https://stripe.com/docs/api#errors">the errors section</a> for a list of codes).
33
+ * @property null|string $failure_message Message to user further explaining reason for charge failure if available.
34
+ * @property null|\Stripe\StripeObject $fraud_details Information on fraud assessments for the charge.
35
+ * @property null|string|\Stripe\Invoice $invoice ID of the invoice this charge is for if one exists.
36
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
37
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
38
+ * @property null|string|\Stripe\Account $on_behalf_of The account (if any) the charge was made on behalf of without triggering an automatic transfer. See the <a href="https://stripe.com/docs/connect/charges-transfers">Connect documentation</a> for details.
39
+ * @property null|string|\Stripe\Order $order ID of the order this charge is for if one exists.
40
+ * @property null|\Stripe\StripeObject $outcome Details about whether the payment was accepted, and why. See <a href="https://stripe.com/docs/declines">understanding declines</a> for details.
41
+ * @property bool $paid <code>true</code> if the charge succeeded, or was successfully authorized for later capture.
42
+ * @property null|string|\Stripe\PaymentIntent $payment_intent ID of the PaymentIntent associated with this charge, if one exists.
43
+ * @property null|string $payment_method ID of the payment method used in this charge.
44
+ * @property null|\Stripe\StripeObject $payment_method_details Details about the payment method at the time of the transaction.
45
+ * @property null|string $receipt_email This is the email address that the receipt for this charge was sent to.
46
+ * @property null|string $receipt_number This is the transaction number that appears on email receipts sent for this charge. This attribute will be <code>null</code> until a receipt has been sent.
47
+ * @property null|string $receipt_url This is the URL to view the receipt for this charge. The receipt is kept up-to-date to the latest state of the charge, including any refunds. If the charge is for an Invoice, the receipt will be stylized as an Invoice receipt.
48
+ * @property bool $refunded Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false.
49
+ * @property \Stripe\Collection $refunds A list of refunds that have been applied to the charge.
50
+ * @property null|string|\Stripe\Review $review ID of the review associated with this charge if one exists.
51
+ * @property null|\Stripe\StripeObject $shipping Shipping information for the charge.
52
+ * @property null|\Stripe\StripeObject $source This is a legacy field that will be removed in the future. It contains the Source, Card, or BankAccount object used for the charge. For details about the payment method used for this charge, refer to <code>payment_method</code> or <code>payment_method_details</code> instead.
53
+ * @property null|string|\Stripe\Transfer $source_transfer The transfer ID which created this charge. Only present if the charge came from another Stripe account. <a href="https://stripe.com/docs/connect/destination-charges">See the Connect documentation</a> for details.
54
+ * @property null|string $statement_descriptor For card charges, use <code>statement_descriptor_suffix</code> instead. Otherwise, you can use this value as the complete description of a charge on your customers’ statements. Must contain at least one letter, maximum 22 characters.
55
+ * @property null|string $statement_descriptor_suffix Provides information about the charge that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor.
56
+ * @property string $status The status of the payment is either <code>succeeded</code>, <code>pending</code>, or <code>failed</code>.
57
+ * @property string|\Stripe\Transfer $transfer ID of the transfer to the <code>destination</code> account (only applicable if the charge was created using the <code>destination</code> parameter).
58
+ * @property null|\Stripe\StripeObject $transfer_data An optional dictionary including the account to automatically transfer to as part of a destination charge. <a href="https://stripe.com/docs/connect/destination-charges">See the Connect documentation</a> for details.
59
+ * @property null|string $transfer_group A string that identifies this transaction as part of a group. See the <a href="https://stripe.com/docs/connect/charges-transfers#transfer-options">Connect documentation</a> for details.
60
  */
61
  class Charge extends ApiResource
62
  {
63
+ const OBJECT_NAME = 'charge';
64
 
65
  use ApiOperations\All;
66
  use ApiOperations\Create;
67
  use ApiOperations\Retrieve;
68
  use ApiOperations\Update;
69
 
70
+ const STATUS_FAILED = 'failed';
71
+ const STATUS_PENDING = 'pending';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  const STATUS_SUCCEEDED = 'succeeded';
73
 
74
  /**
75
+ * Possible string representations of decline codes.
76
+ * These strings are applicable to the decline_code property of the \Stripe\Exception\CardException exception.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
  *
78
+ * @see https://stripe.com/docs/declines/codes
79
  */
80
+ const DECLINED_AUTHENTICATION_REQUIRED = 'authentication_required';
81
+ const DECLINED_APPROVE_WITH_ID = 'approve_with_id';
82
+ const DECLINED_CALL_ISSUER = 'call_issuer';
83
+ const DECLINED_CARD_NOT_SUPPORTED = 'card_not_supported';
84
+ const DECLINED_CARD_VELOCITY_EXCEEDED = 'card_velocity_exceeded';
85
+ const DECLINED_CURRENCY_NOT_SUPPORTED = 'currency_not_supported';
86
+ const DECLINED_DO_NOT_HONOR = 'do_not_honor';
87
+ const DECLINED_DO_NOT_TRY_AGAIN = 'do_not_try_again';
88
+ const DECLINED_DUPLICATED_TRANSACTION = 'duplicate_transaction';
89
+ const DECLINED_EXPIRED_CARD = 'expired_card';
90
+ const DECLINED_FRAUDULENT = 'fraudulent';
91
+ const DECLINED_GENERIC_DECLINE = 'generic_decline';
92
+ const DECLINED_INCORRECT_NUMBER = 'incorrect_number';
93
+ const DECLINED_INCORRECT_CVC = 'incorrect_cvc';
94
+ const DECLINED_INCORRECT_PIN = 'incorrect_pin';
95
+ const DECLINED_INCORRECT_ZIP = 'incorrect_zip';
96
+ const DECLINED_INSUFFICIENT_FUNDS = 'insufficient_funds';
97
+ const DECLINED_INVALID_ACCOUNT = 'invalid_account';
98
+ const DECLINED_INVALID_AMOUNT = 'invalid_amount';
99
+ const DECLINED_INVALID_CVC = 'invalid_cvc';
100
+ const DECLINED_INVALID_EXPIRY_YEAR = 'invalid_expiry_year';
101
+ const DECLINED_INVALID_NUMBER = 'invalid_number';
102
+ const DECLINED_INVALID_PIN = 'invalid_pin';
103
+ const DECLINED_ISSUER_NOT_AVAILABLE = 'issuer_not_available';
104
+ const DECLINED_LOST_CARD = 'lost_card';
105
+ const DECLINED_MERCHANT_BLACKLIST = 'merchant_blacklist';
106
+ const DECLINED_NEW_ACCOUNT_INFORMATION_AVAILABLE = 'new_account_information_available';
107
+ const DECLINED_NO_ACTION_TAKEN = 'no_action_taken';
108
+ const DECLINED_NOT_PERMITTED = 'not_permitted';
109
+ const DECLINED_OFFLINE_PIN_REQUIRED = 'offline_pin_required';
110
+ const DECLINED_ONLINE_OR_OFFLINE_PIN_REQUIRED = 'online_or_offline_pin_required';
111
+ const DECLINED_PICKUP_CARD = 'pickup_card';
112
+ const DECLINED_PIN_TRY_EXCEEDED = 'pin_try_exceeded';
113
+ const DECLINED_PROCESSING_ERROR = 'processing_error';
114
+ const DECLINED_REENTER_TRANSACTION = 'reenter_transaction';
115
+ const DECLINED_RESTRICTED_CARD = 'restricted_card';
116
+ const DECLINED_REVOCATION_OF_ALL_AUTHORIZATIONS = 'revocation_of_all_authorizations';
117
+ const DECLINED_REVOCATION_OF_AUTHORIZATION = 'revocation_of_authorization';
118
+ const DECLINED_SECURITY_VIOLATION = 'security_violation';
119
+ const DECLINED_SERVICE_NOT_ALLOWED = 'service_not_allowed';
120
+ const DECLINED_STOLEN_CARD = 'stolen_card';
121
+ const DECLINED_STOP_PAYMENT_ORDER = 'stop_payment_order';
122
+ const DECLINED_TESTMODE_DECLINE = 'testmode_decline';
123
+ const DECLINED_TRANSACTION_NOT_ALLOWED = 'transaction_not_allowed';
124
+ const DECLINED_TRY_AGAIN_LATER = 'try_again_later';
125
+ const DECLINED_WITHDRAWAL_COUNT_LIMIT_EXCEEDED = 'withdrawal_count_limit_exceeded';
126
 
127
  /**
128
+ * @param null|array $params
129
+ * @param null|array|string $opts
130
  *
131
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
132
  *
133
+ * @return Charge the captured charge
134
  */
135
+ public function capture($params = null, $opts = null)
136
  {
137
+ $url = $this->instanceUrl() . '/capture';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
138
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
139
  $this->refreshFrom($response, $opts);
 
 
140
 
 
 
 
 
 
 
 
 
 
 
 
141
  return $this;
142
  }
143
  }
lib/stripe-gateway/lib/Checkout/Session.php CHANGED
@@ -3,37 +3,54 @@
3
  namespace Stripe\Checkout;
4
 
5
  /**
6
- * Class Session
 
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property string $cancel_url
11
- * @property string $client_reference_id
12
- * @property string $customer
13
- * @property string $customer_email
14
- * @property mixed $display_items
15
- * @property bool $livemode
16
- * @property string $payment_intent
17
- * @property string[] $payment_method_types
18
- * @property string $submit_type
19
- * @property string $subscription
20
- * @property string $success_url
21
  *
22
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  */
24
  class Session extends \Stripe\ApiResource
25
  {
26
- const OBJECT_NAME = "checkout.session";
27
 
 
28
  use \Stripe\ApiOperations\Create;
29
  use \Stripe\ApiOperations\Retrieve;
30
 
31
- /**
32
- * Possible string representations of submit type.
33
- * @link https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-submit_type
34
- */
35
- const SUBMIT_TYPE_AUTO = 'auto';
36
- const SUBMIT_TYPE_BOOK = 'book';
37
- const SUBMIT_TYPE_DONATE = 'donate';
38
- const SUBMIT_TYPE_PAY = 'pay';
39
  }
3
  namespace Stripe\Checkout;
4
 
5
  /**
6
+ * A Checkout Session represents your customer's session as they pay for one-time
7
+ * purchases or subscriptions through <a
8
+ * href="https://stripe.com/docs/payments/checkout">Checkout</a>. We recommend
9
+ * creating a new Session each time your customer attempts to pay.
10
  *
11
+ * Once payment is successful, the Checkout Session will contain a reference to the
12
+ * <a href="https://stripe.com/docs/api/customers">Customer</a>, and either the
13
+ * successful <a
14
+ * href="https://stripe.com/docs/api/payment_intents">PaymentIntent</a> or an
15
+ * active <a href="https://stripe.com/docs/api/subscriptions">Subscription</a>.
 
 
 
 
 
 
 
 
16
  *
17
+ * You can create a Checkout Session on your server and pass its ID to the client
18
+ * to begin Checkout.
19
+ *
20
+ * Related guide: <a href="https://stripe.com/docs/payments/checkout/api">Checkout
21
+ * Server Quickstart</a>.
22
+ *
23
+ * @property string $id Unique identifier for the object. Used to pass to <code>redirectToCheckout</code> in Stripe.js.
24
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
25
+ * @property null|string $billing_address_collection The value (<code>auto</code> or <code>required</code>) for whether Checkout collected the customer's billing address.
26
+ * @property string $cancel_url The URL the customer will be directed to if they decide to cancel payment and return to your website.
27
+ * @property null|string $client_reference_id A unique string to reference the Checkout Session. This can be a customer ID, a cart ID, or similar, and can be used to reconcile the session with your internal systems.
28
+ * @property null|string|\Stripe\Customer $customer The ID of the customer for this session. For Checkout Sessions in <code>payment</code> or <code>subscription</code> mode, Checkout will create a new customer object based on information provided during the session unless an existing customer was provided when the session was created.
29
+ * @property null|string $customer_email If provided, this value will be used when the Customer object is created. If not provided, customers will be asked to enter their email address. Use this parameter to prefill customer data if you already have an email on file. To access information about the customer once a session is complete, use the <code>customer</code> field.
30
+ * @property null|\Stripe\StripeObject[] $display_items The line items, plans, or SKUs purchased by the customer.
31
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
32
+ * @property null|string $locale The IETF language tag of the locale Checkout is displayed in. If blank or <code>auto</code>, the browser's locale is used.
33
+ * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
34
+ * @property null|string $mode The mode of the Checkout Session, one of <code>payment</code>, <code>setup</code>, or <code>subscription</code>.
35
+ * @property null|string|\Stripe\PaymentIntent $payment_intent The ID of the PaymentIntent for Checkout Sessions in <code>payment</code> mode.
36
+ * @property string[] $payment_method_types A list of the types of payment methods (e.g. card) this Checkout Session is allowed to accept.
37
+ * @property null|string|\Stripe\SetupIntent $setup_intent The ID of the SetupIntent for Checkout Sessions in <code>setup</code> mode.
38
+ * @property null|\Stripe\StripeObject $shipping Shipping information for this Checkout Session.
39
+ * @property null|\Stripe\StripeObject $shipping_address_collection When set, provides configuration for Checkout to collect a shipping address from a customer.
40
+ * @property null|string $submit_type Describes the type of transaction being performed by Checkout in order to customize relevant text on the page, such as the submit button. <code>submit_type</code> can only be specified on Checkout Sessions in <code>payment</code> mode, but not Checkout Sessions in <code>subscription</code> or <code>setup</code> mode.
41
+ * @property null|string|\Stripe\Subscription $subscription The ID of the subscription for Checkout Sessions in <code>subscription</code> mode.
42
+ * @property string $success_url The URL the customer will be directed to after the payment or subscription creation is successful.
43
  */
44
  class Session extends \Stripe\ApiResource
45
  {
46
+ const OBJECT_NAME = 'checkout.session';
47
 
48
+ use \Stripe\ApiOperations\All;
49
  use \Stripe\ApiOperations\Create;
50
  use \Stripe\ApiOperations\Retrieve;
51
 
52
+ const SUBMIT_TYPE_AUTO = 'auto';
53
+ const SUBMIT_TYPE_BOOK = 'book';
54
+ const SUBMIT_TYPE_DONATE = 'donate';
55
+ const SUBMIT_TYPE_PAY = 'pay';
 
 
 
 
56
  }
lib/stripe-gateway/lib/Collection.php CHANGED
@@ -3,73 +3,118 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class Collection
7
  *
8
  * @property string $object
9
  * @property string $url
10
  * @property bool $has_more
11
- * @property mixed $data
12
- *
13
- * @package Stripe
14
  */
15
- class Collection extends StripeObject implements \IteratorAggregate
16
  {
17
- const OBJECT_NAME = "list";
18
 
19
  use ApiOperations\Request;
20
 
21
- protected $_requestParams = [];
 
22
 
23
  /**
24
- * @return string The base URL for the given class.
25
  */
26
  public static function baseUrl()
27
  {
28
  return Stripe::$apiBase;
29
  }
30
 
31
- public function setRequestParams($params)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  {
33
- $this->_requestParams = $params;
 
 
 
 
 
 
 
 
34
  }
35
 
36
  public function all($params = null, $opts = null)
37
  {
 
38
  list($url, $params) = $this->extractPathAndUpdateParams($params);
39
 
40
  list($response, $opts) = $this->_request('get', $url, $params, $opts);
41
- $this->_requestParams = $params;
42
- return Util\Util::convertToStripeObject($response, $opts);
 
 
 
 
 
 
 
43
  }
44
 
45
  public function create($params = null, $opts = null)
46
  {
 
47
  list($url, $params) = $this->extractPathAndUpdateParams($params);
48
 
49
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
50
- $this->_requestParams = $params;
51
  return Util\Util::convertToStripeObject($response, $opts);
52
  }
53
 
54
  public function retrieve($id, $params = null, $opts = null)
55
  {
 
56
  list($url, $params) = $this->extractPathAndUpdateParams($params);
57
 
58
  $id = Util\Util::utf8($id);
59
- $extn = urlencode($id);
60
  list($response, $opts) = $this->_request(
61
  'get',
62
- "$url/$extn",
63
  $params,
64
  $opts
65
  );
66
- $this->_requestParams = $params;
67
  return Util\Util::convertToStripeObject($response, $opts);
68
  }
69
 
70
  /**
71
- * @return \ArrayIterator An iterator that can be used to iterate
72
- * across objects in the current page.
 
 
 
 
 
 
 
 
73
  */
74
  public function getIterator()
75
  {
@@ -77,29 +122,138 @@ class Collection extends StripeObject implements \IteratorAggregate
77
  }
78
 
79
  /**
80
- * @return Util\AutoPagingIterator An iterator that can be used to iterate
81
- * across all objects across all pages. As page boundaries are
 
 
 
 
 
 
 
 
 
82
  * encountered, the next page will be fetched automatically for
83
  * continued iteration.
84
  */
85
  public function autoPagingIterator()
86
  {
87
- return new Util\AutoPagingIterator($this, $this->_requestParams);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  }
89
 
90
  private function extractPathAndUpdateParams($params)
91
  {
92
- $url = parse_url($this->url);
93
  if (!isset($url['path'])) {
94
- throw new Error\Api("Could not parse list url into parts: $url");
95
  }
96
 
97
  if (isset($url['query'])) {
98
  // If the URL contains a query param, parse it out into $params so they
99
  // don't interact weirdly with each other.
100
  $query = [];
101
- parse_str($url['query'], $query);
102
- $params = array_merge($params ?: [], $query);
103
  }
104
 
105
  return [$url['path'], $params];
3
  namespace Stripe;
4
 
5
  /**
6
+ * Class Collection.
7
  *
8
  * @property string $object
9
  * @property string $url
10
  * @property bool $has_more
11
+ * @property \Stripe\StripeObject[] $data
 
 
12
  */
13
+ class Collection extends StripeObject implements \Countable, \IteratorAggregate
14
  {
15
+ const OBJECT_NAME = 'list';
16
 
17
  use ApiOperations\Request;
18
 
19
+ /** @var array */
20
+ protected $filters = [];
21
 
22
  /**
23
+ * @return string the base URL for the given class
24
  */
25
  public static function baseUrl()
26
  {
27
  return Stripe::$apiBase;
28
  }
29
 
30
+ /**
31
+ * Returns the filters.
32
+ *
33
+ * @return array the filters
34
+ */
35
+ public function getFilters()
36
+ {
37
+ return $this->filters;
38
+ }
39
+
40
+ /**
41
+ * Sets the filters, removing paging options.
42
+ *
43
+ * @param array $filters the filters
44
+ */
45
+ public function setFilters($filters)
46
+ {
47
+ $this->filters = $filters;
48
+ }
49
+
50
+ public function offsetGet($k)
51
  {
52
+ if (\is_string($k)) {
53
+ return parent::offsetGet($k);
54
+ }
55
+ $msg = "You tried to access the {$k} index, but Collection " .
56
+ 'types only support string keys. (HINT: List calls ' .
57
+ 'return an object with a `data` (which is the data ' .
58
+ "array). You likely want to call ->data[{$k}])";
59
+
60
+ throw new Exception\InvalidArgumentException($msg);
61
  }
62
 
63
  public function all($params = null, $opts = null)
64
  {
65
+ self::_validateParams($params);
66
  list($url, $params) = $this->extractPathAndUpdateParams($params);
67
 
68
  list($response, $opts) = $this->_request('get', $url, $params, $opts);
69
+ $obj = Util\Util::convertToStripeObject($response, $opts);
70
+ if (!($obj instanceof \Stripe\Collection)) {
71
+ throw new \Stripe\Exception\UnexpectedValueException(
72
+ 'Expected type ' . \Stripe\Collection::class . ', got "' . \get_class($obj) . '" instead.'
73
+ );
74
+ }
75
+ $obj->setFilters($params);
76
+
77
+ return $obj;
78
  }
79
 
80
  public function create($params = null, $opts = null)
81
  {
82
+ self::_validateParams($params);
83
  list($url, $params) = $this->extractPathAndUpdateParams($params);
84
 
85
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
86
+
87
  return Util\Util::convertToStripeObject($response, $opts);
88
  }
89
 
90
  public function retrieve($id, $params = null, $opts = null)
91
  {
92
+ self::_validateParams($params);
93
  list($url, $params) = $this->extractPathAndUpdateParams($params);
94
 
95
  $id = Util\Util::utf8($id);
96
+ $extn = \urlencode($id);
97
  list($response, $opts) = $this->_request(
98
  'get',
99
+ "{$url}/{$extn}",
100
  $params,
101
  $opts
102
  );
103
+
104
  return Util\Util::convertToStripeObject($response, $opts);
105
  }
106
 
107
  /**
108
+ * @return int the number of objects in the current page
109
+ */
110
+ public function count()
111
+ {
112
+ return \count($this->data);
113
+ }
114
+
115
+ /**
116
+ * @return \ArrayIterator an iterator that can be used to iterate
117
+ * across objects in the current page
118
  */
119
  public function getIterator()
120
  {
122
  }
123
 
124
  /**
125
+ * @return \ArrayIterator an iterator that can be used to iterate
126
+ * backwards across objects in the current page
127
+ */
128
+ public function getReverseIterator()
129
+ {
130
+ return new \ArrayIterator(\array_reverse($this->data));
131
+ }
132
+
133
+ /**
134
+ * @return \Generator|StripeObject[] A generator that can be used to
135
+ * iterate across all objects across all pages. As page boundaries are
136
  * encountered, the next page will be fetched automatically for
137
  * continued iteration.
138
  */
139
  public function autoPagingIterator()
140
  {
141
+ $page = $this;
142
+
143
+ while (true) {
144
+ $filters = $this->filters ?: [];
145
+ if (\array_key_exists('ending_before', $filters) &&
146
+ !\array_key_exists('starting_after', $filters)) {
147
+ foreach ($page->getReverseIterator() as $item) {
148
+ yield $item;
149
+ }
150
+ $page = $page->previousPage();
151
+ } else {
152
+ foreach ($page as $item) {
153
+ yield $item;
154
+ }
155
+ $page = $page->nextPage();
156
+ }
157
+
158
+ if ($page->isEmpty()) {
159
+ break;
160
+ }
161
+ }
162
+ }
163
+
164
+ /**
165
+ * Returns an empty collection. This is returned from {@see nextPage()}
166
+ * when we know that there isn't a next page in order to replicate the
167
+ * behavior of the API when it attempts to return a page beyond the last.
168
+ *
169
+ * @param null|array|string $opts
170
+ *
171
+ * @return Collection
172
+ */
173
+ public static function emptyCollection($opts = null)
174
+ {
175
+ return Collection::constructFrom(['data' => []], $opts);
176
+ }
177
+
178
+ /**
179
+ * Returns true if the page object contains no element.
180
+ *
181
+ * @return bool
182
+ */
183
+ public function isEmpty()
184
+ {
185
+ return empty($this->data);
186
+ }
187
+
188
+ /**
189
+ * Fetches the next page in the resource list (if there is one).
190
+ *
191
+ * This method will try to respect the limit of the current page. If none
192
+ * was given, the default limit will be fetched again.
193
+ *
194
+ * @param null|array $params
195
+ * @param null|array|string $opts
196
+ *
197
+ * @return Collection
198
+ */
199
+ public function nextPage($params = null, $opts = null)
200
+ {
201
+ if (!$this->has_more) {
202
+ return static::emptyCollection($opts);
203
+ }
204
+
205
+ $lastId = \end($this->data)->id;
206
+
207
+ $params = \array_merge(
208
+ $this->filters ?: [],
209
+ ['starting_after' => $lastId],
210
+ $params ?: []
211
+ );
212
+
213
+ return $this->all($params, $opts);
214
+ }
215
+
216
+ /**
217
+ * Fetches the previous page in the resource list (if there is one).
218
+ *
219
+ * This method will try to respect the limit of the current page. If none
220
+ * was given, the default limit will be fetched again.
221
+ *
222
+ * @param null|array $params
223
+ * @param null|array|string $opts
224
+ *
225
+ * @return Collection
226
+ */
227
+ public function previousPage($params = null, $opts = null)
228
+ {
229
+ if (!$this->has_more) {
230
+ return static::emptyCollection($opts);
231
+ }
232
+
233
+ $firstId = $this->data[0]->id;
234
+
235
+ $params = \array_merge(
236
+ $this->filters ?: [],
237
+ ['ending_before' => $firstId],
238
+ $params ?: []
239
+ );
240
+
241
+ return $this->all($params, $opts);
242
  }
243
 
244
  private function extractPathAndUpdateParams($params)
245
  {
246
+ $url = \parse_url($this->url);
247
  if (!isset($url['path'])) {
248
+ throw new Exception\UnexpectedValueException("Could not parse list url into parts: {$url}");
249
  }
250
 
251
  if (isset($url['query'])) {
252
  // If the URL contains a query param, parse it out into $params so they
253
  // don't interact weirdly with each other.
254
  $query = [];
255
+ \parse_str($url['query'], $query);
256
+ $params = \array_merge($params ?: [], $query);
257
  }
258
 
259
  return [$url['path'], $params];
lib/stripe-gateway/lib/CountrySpec.php CHANGED
@@ -3,22 +3,25 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class CountrySpec
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property string $default_currency
11
- * @property mixed $supported_bank_account_currencies
12
- * @property string[] $supported_payment_currencies
13
- * @property string[] $supported_payment_methods
14
- * @property string[] $supported_transfer_countries
15
- * @property mixed $verification_fields
16
  *
17
- * @package Stripe
 
 
 
 
 
 
 
18
  */
19
  class CountrySpec extends ApiResource
20
  {
21
- const OBJECT_NAME = "country_spec";
22
 
23
  use ApiOperations\All;
24
  use ApiOperations\Retrieve;
3
  namespace Stripe;
4
 
5
  /**
6
+ * Stripe needs to collect certain pieces of information about each account
7
+ * created. These requirements can differ depending on the account's country. The
8
+ * Country Specs API makes these rules available to your integration.
9
  *
10
+ * You can also view the information from this API call as <a
11
+ * href="/docs/connect/required-verification-information">an online guide</a>.
 
 
 
 
 
 
12
  *
13
+ * @property string $id Unique identifier for the object. Represented as the ISO country code for this country.
14
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
15
+ * @property string $default_currency The default currency for this country. This applies to both payment methods and bank accounts.
16
+ * @property \Stripe\StripeObject $supported_bank_account_currencies Currencies that can be accepted in the specific country (for transfers).
17
+ * @property string[] $supported_payment_currencies Currencies that can be accepted in the specified country (for payments).
18
+ * @property string[] $supported_payment_methods Payment methods available in the specified country. You may need to enable some payment methods (e.g., <a href="https://stripe.com/docs/ach">ACH</a>) on your account before they appear in this list. The <code>stripe</code> payment method refers to <a href="https://stripe.com/docs/connect/destination-charges">charging through your platform</a>.
19
+ * @property string[] $supported_transfer_countries Countries that can accept transfers from the specified country.
20
+ * @property \Stripe\StripeObject $verification_fields
21
  */
22
  class CountrySpec extends ApiResource
23
  {
24
+ const OBJECT_NAME = 'country_spec';
25
 
26
  use ApiOperations\All;
27
  use ApiOperations\Retrieve;
lib/stripe-gateway/lib/Coupon.php CHANGED
@@ -3,29 +3,32 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class Coupon
 
 
 
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $amount_off
11
- * @property int $created
12
- * @property string $currency
13
- * @property string $duration
14
- * @property int $duration_in_months
15
- * @property bool $livemode
16
- * @property int $max_redemptions
17
- * @property StripeObject $metadata
18
- * @property string $name
19
- * @property float $percent_off
20
- * @property int $redeem_by
21
- * @property int $times_redeemed
22
- * @property bool $valid
23
- *
24
- * @package Stripe
25
  */
26
  class Coupon extends ApiResource
27
  {
28
- const OBJECT_NAME = "coupon";
29
 
30
  use ApiOperations\All;
31
  use ApiOperations\Create;
3
  namespace Stripe;
4
 
5
  /**
6
+ * A coupon contains information about a percent-off or amount-off discount you
7
+ * might want to apply to a customer. Coupons may be applied to <a
8
+ * href="https://stripe.com/docs/api#invoices">invoices</a> or <a
9
+ * href="https://stripe.com/docs/api#create_order-coupon">orders</a>. Coupons do
10
+ * not work with conventional one-off <a
11
+ * href="https://stripe.com/docs/api#create_charge">charges</a>.
12
  *
13
+ * @property string $id Unique identifier for the object.
14
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
15
+ * @property null|int $amount_off Amount (in the <code>currency</code> specified) that will be taken off the subtotal of any invoices for this customer.
16
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
17
+ * @property null|string $currency If <code>amount_off</code> has been set, the three-letter <a href="https://stripe.com/docs/currencies">ISO code for the currency</a> of the amount to take off.
18
+ * @property string $duration One of <code>forever</code>, <code>once</code>, and <code>repeating</code>. Describes how long a customer who applies this coupon will get the discount.
19
+ * @property null|int $duration_in_months If <code>duration</code> is <code>repeating</code>, the number of months the coupon applies. Null if coupon <code>duration</code> is <code>forever</code> or <code>once</code>.
20
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
21
+ * @property null|int $max_redemptions Maximum number of times this coupon can be redeemed, in total, across all customers, before it is no longer valid.
22
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
23
+ * @property null|string $name Name of the coupon displayed to customers on for instance invoices or receipts.
24
+ * @property null|float $percent_off Percent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon. For example, a coupon with percent_off of 50 will make a %s100 invoice %s50 instead.
25
+ * @property null|int $redeem_by Date after which the coupon can no longer be redeemed.
26
+ * @property int $times_redeemed Number of times this coupon has been applied to a customer.
27
+ * @property bool $valid Taking account of the above properties, whether this coupon can still be applied to a customer.
 
 
28
  */
29
  class Coupon extends ApiResource
30
  {
31
+ const OBJECT_NAME = 'coupon';
32
 
33
  use ApiOperations\All;
34
  use ApiOperations\Create;
lib/stripe-gateway/lib/CreditNote.php CHANGED
@@ -3,71 +3,106 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class CreditNote
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $amount
11
- * @property string $customer_balance_transaction
12
- * @property int $created
13
- * @property string $currency
14
- * @property string $customer
15
- * @property string $invoice
16
- * @property bool $livemode
17
- * @property string $memo
18
- * @property StripeObject $metadata
19
- * @property string $number
20
- * @property string $pdf
21
- * @property string $reason
22
- * @property string $refund
23
- * @property string $status
24
- * @property string $type
25
  *
26
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  */
28
  class CreditNote extends ApiResource
29
  {
30
- const OBJECT_NAME = "credit_note";
31
 
32
  use ApiOperations\All;
33
  use ApiOperations\Create;
 
34
  use ApiOperations\Retrieve;
35
  use ApiOperations\Update;
36
 
37
- /**
38
- * Possible string representations of the credit note reason.
39
- * @link https://stripe.com/docs/api/credit_notes/object#credit_note_object-reason
40
- */
41
- const REASON_DUPLICATE = 'duplicate';
42
- const REASON_FRAUDULENT = 'fraudulent';
43
- const REASON_ORDER_CHANGE = 'order_change';
44
  const REASON_PRODUCT_UNSATISFACTORY = 'product_unsatisfactory';
45
 
46
- /**
47
- * Possible string representations of the credit note status.
48
- * @link https://stripe.com/docs/api/credit_notes/object#credit_note_object-status
49
- */
50
  const STATUS_ISSUED = 'issued';
51
- const STATUS_VOID = 'void';
 
 
 
52
 
53
  /**
54
- * Possible string representations of the credit note type.
55
- * @link https://stripe.com/docs/api/credit_notes/object#credit_note_object-status
 
 
 
 
56
  */
57
- const TYPE_POST_PAYMENT = 'post_payment';
58
- const TYPE_PRE_PAYMENT = 'pre_payment';
 
 
 
 
 
 
 
59
 
60
  /**
61
- * @param array|null $params
62
- * @param array|string|null $opts
 
 
63
  *
64
- * @return CreditNote The voided credit note.
65
  */
66
  public function voidCreditNote($params = null, $opts = null)
67
  {
68
  $url = $this->instanceUrl() . '/void';
69
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
70
  $this->refreshFrom($response, $opts);
 
71
  return $this;
72
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * Issue a credit note to adjust an invoice's amount after the invoice is
7
+ * finalized.
8
  *
9
+ * Related guide: <a
10
+ * href="https://stripe.com/docs/billing/invoices/credit-notes">Credit Notes</a>.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  *
12
+ * @property string $id Unique identifier for the object.
13
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
14
+ * @property int $amount The integer amount in <strong>%s</strong> representing the total amount of the credit note, including tax.
15
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
16
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
17
+ * @property string|\Stripe\Customer $customer ID of the customer.
18
+ * @property null|string|\Stripe\CustomerBalanceTransaction $customer_balance_transaction Customer balance transaction related to this credit note.
19
+ * @property int $discount_amount The integer amount in <strong>%s</strong> representing the amount of the discount that was credited.
20
+ * @property string|\Stripe\Invoice $invoice ID of the invoice.
21
+ * @property \Stripe\Collection $lines Line items that make up the credit note
22
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
23
+ * @property null|string $memo Customer-facing text that appears on the credit note PDF.
24
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
25
+ * @property string $number A unique number that identifies this particular credit note and appears on the PDF of the credit note and its associated invoice.
26
+ * @property null|int $out_of_band_amount Amount that was credited outside of Stripe.
27
+ * @property string $pdf The link to download the PDF of the credit note.
28
+ * @property null|string $reason Reason for issuing this credit note, one of <code>duplicate</code>, <code>fraudulent</code>, <code>order_change</code>, or <code>product_unsatisfactory</code>
29
+ * @property null|string|\Stripe\Refund $refund Refund related to this credit note.
30
+ * @property string $status Status of this credit note, one of <code>issued</code> or <code>void</code>. Learn more about <a href="https://stripe.com/docs/billing/invoices/credit-notes#voiding">voiding credit notes</a>.
31
+ * @property int $subtotal The integer amount in <strong>%s</strong> representing the amount of the credit note, excluding tax and discount.
32
+ * @property \Stripe\StripeObject[] $tax_amounts The aggregate amounts calculated per tax rate for all line items.
33
+ * @property int $total The integer amount in <strong>%s</strong> representing the total amount of the credit note, including tax and discount.
34
+ * @property string $type Type of this credit note, one of <code>pre_payment</code> or <code>post_payment</code>. A <code>pre_payment</code> credit note means it was issued when the invoice was open. A <code>post_payment</code> credit note means it was issued when the invoice was paid.
35
+ * @property null|int $voided_at The time that the credit note was voided.
36
  */
37
  class CreditNote extends ApiResource
38
  {
39
+ const OBJECT_NAME = 'credit_note';
40
 
41
  use ApiOperations\All;
42
  use ApiOperations\Create;
43
+ use ApiOperations\NestedResource;
44
  use ApiOperations\Retrieve;
45
  use ApiOperations\Update;
46
 
47
+ const REASON_DUPLICATE = 'duplicate';
48
+ const REASON_FRAUDULENT = 'fraudulent';
49
+ const REASON_ORDER_CHANGE = 'order_change';
 
 
 
 
50
  const REASON_PRODUCT_UNSATISFACTORY = 'product_unsatisfactory';
51
 
 
 
 
 
52
  const STATUS_ISSUED = 'issued';
53
+ const STATUS_VOID = 'void';
54
+
55
+ const TYPE_POST_PAYMENT = 'post_payment';
56
+ const TYPE_PRE_PAYMENT = 'pre_payment';
57
 
58
  /**
59
+ * @param null|array $params
60
+ * @param null|array|string $opts
61
+ *
62
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
63
+ *
64
+ * @return \Stripe\CreditNote the previewed credit note
65
  */
66
+ public static function preview($params = null, $opts = null)
67
+ {
68
+ $url = static::classUrl() . '/preview';
69
+ list($response, $opts) = static::_staticRequest('get', $url, $params, $opts);
70
+ $obj = Util\Util::convertToStripeObject($response->json, $opts);
71
+ $obj->setLastResponse($response);
72
+
73
+ return $obj;
74
+ }
75
 
76
  /**
77
+ * @param null|array $params
78
+ * @param null|array|string $opts
79
+ *
80
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
81
  *
82
+ * @return CreditNote the voided credit note
83
  */
84
  public function voidCreditNote($params = null, $opts = null)
85
  {
86
  $url = $this->instanceUrl() . '/void';
87
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
88
  $this->refreshFrom($response, $opts);
89
+
90
  return $this;
91
  }
92
+
93
+ const PATH_LINES = '/lines';
94
+
95
+ /**
96
+ * @param string $id the ID of the credit note on which to retrieve the credit note line items
97
+ * @param null|array $params
98
+ * @param null|array|string $opts
99
+ *
100
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
101
+ *
102
+ * @return \Stripe\Collection the list of credit note line items
103
+ */
104
+ public static function allLines($id, $params = null, $opts = null)
105
+ {
106
+ return self::_allNestedResources($id, static::PATH_LINES, $params, $opts);
107
+ }
108
  }
lib/stripe-gateway/lib/CreditNoteLineItem.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe;
4
+
5
+ /**
6
+ * @property string $id Unique identifier for the object.
7
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
8
+ * @property int $amount The integer amount in <strong>%s</strong> representing the gross amount being credited for this line item, excluding (exclusive) tax and discounts.
9
+ * @property null|string $description Description of the item being credited.
10
+ * @property int $discount_amount The integer amount in <strong>%s</strong> representing the discount being credited for this line item.
11
+ * @property string $invoice_line_item ID of the invoice line item being credited
12
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
13
+ * @property null|int $quantity The number of units of product being credited.
14
+ * @property \Stripe\StripeObject[] $tax_amounts The amount of tax calculated per tax rate for this line item
15
+ * @property \Stripe\TaxRate[] $tax_rates The tax rates which apply to the line item.
16
+ * @property string $type The type of the credit note line item, one of <code>invoice_line_item</code> or <code>custom_line_item</code>. When the type is <code>invoice_line_item</code> there is an additional <code>invoice_line_item</code> property on the resource the value of which is the id of the credited line item on the invoice.
17
+ * @property null|int $unit_amount The cost of each unit of product being credited.
18
+ * @property null|string $unit_amount_decimal Same as <code>unit_amount</code>, but contains a decimal value with at most 12 decimal places.
19
+ */
20
+ class CreditNoteLineItem extends ApiResource
21
+ {
22
+ const OBJECT_NAME = 'credit_note_line_item';
23
+ }
lib/stripe-gateway/lib/Customer.php CHANGED
@@ -3,37 +3,42 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class Customer
 
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property mixed $address
11
- * @property int $balance
12
- * @property string $created
13
- * @property string $currency
14
- * @property string $default_source
15
- * @property bool $delinquent
16
- * @property string $description
17
- * @property Discount $discount
18
- * @property string $email
19
- * @property string $invoice_prefix
20
- * @property mixed $invoice_settings
21
- * @property bool $livemode
22
- * @property StripeObject $metadata
23
- * @property string $name
24
- * @property string $phone
25
- * @property string[] preferred_locales
26
- * @property mixed $shipping
27
- * @property Collection $sources
28
- * @property Collection $subscriptions
29
- * @property string $tax_exempt
30
- * @property Collection $tax_ids
31
  *
32
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  */
34
  class Customer extends ApiResource
35
  {
36
- const OBJECT_NAME = "customer";
37
 
38
  use ApiOperations\All;
39
  use ApiOperations\Create;
@@ -42,162 +47,134 @@ class Customer extends ApiResource
42
  use ApiOperations\Retrieve;
43
  use ApiOperations\Update;
44
 
45
- /**
46
- * Possible string representations of the customer's type of tax exemption.
47
- * @link https://stripe.com/docs/api/customers/object#customer_object-tax_exempt
48
- */
49
- const TAX_EXEMPT_NONE = 'none';
50
- const TAX_EXEMPT_EXEMPT = 'exempt';
51
  const TAX_EXEMPT_REVERSE = 'reverse';
52
 
53
  public static function getSavedNestedResources()
54
  {
55
  static $savedNestedResources = null;
56
- if ($savedNestedResources === null) {
57
  $savedNestedResources = new Util\Set([
58
  'source',
59
  ]);
60
  }
 
61
  return $savedNestedResources;
62
  }
63
 
64
- const PATH_BALANCE_TRANSACTIONS = '/balance_transactions';
65
- const PATH_SOURCES = '/sources';
66
- const PATH_TAX_IDS = '/tax_ids';
67
-
68
  /**
69
- * @param array|null $params
 
70
  *
71
- * @return InvoiceItem The resulting invoice item.
72
  */
73
- public function addInvoiceItem($params = null)
74
  {
75
- $params = $params ?: [];
76
- $params['customer'] = $this->id;
77
- $ii = InvoiceItem::create($params, $this->_opts);
78
- return $ii;
79
  }
80
 
81
- /**
82
- * @param array|null $params
83
- *
84
- * @return array An array of the customer's Invoices.
85
- */
86
- public function invoices($params = null)
87
- {
88
- $params = $params ?: [];
89
- $params['customer'] = $this->id;
90
- $invoices = Invoice::all($params, $this->_opts);
91
- return $invoices;
92
- }
93
 
94
  /**
95
- * @param array|null $params
 
 
96
  *
97
- * @return array An array of the customer's InvoiceItems.
 
 
98
  */
99
- public function invoiceItems($params = null)
100
  {
101
- $params = $params ?: [];
102
- $params['customer'] = $this->id;
103
- $iis = InvoiceItem::all($params, $this->_opts);
104
- return $iis;
105
  }
106
 
107
  /**
108
- * @param array|null $params
 
 
109
  *
110
- * @return array An array of the customer's Charges.
 
 
111
  */
112
- public function charges($params = null)
113
  {
114
- $params = $params ?: [];
115
- $params['customer'] = $this->id;
116
- $charges = Charge::all($params, $this->_opts);
117
- return $charges;
118
  }
119
 
120
  /**
121
- * @param array|null $params
 
 
 
122
  *
123
- * @return Subscription The updated subscription.
 
 
124
  */
125
- public function updateSubscription($params = null)
126
  {
127
- $url = $this->instanceUrl() . '/subscription';
128
- list($response, $opts) = $this->_request('post', $url, $params);
129
- $this->refreshFrom(['subscription' => $response], $opts, true);
130
- return $this->subscription;
131
  }
132
 
133
  /**
134
- * @param array|null $params
 
 
 
135
  *
136
- * @return Subscription The cancelled subscription.
 
 
137
  */
138
- public function cancelSubscription($params = null)
139
  {
140
- $url = $this->instanceUrl() . '/subscription';
141
- list($response, $opts) = $this->_request('delete', $url, $params);
142
- $this->refreshFrom(['subscription' => $response], $opts, true);
143
- return $this->subscription;
144
  }
145
 
146
- /**
147
- * @return Customer The updated customer.
148
- */
149
- public function deleteDiscount()
150
- {
151
- $url = $this->instanceUrl() . '/discount';
152
- list($response, $opts) = $this->_request('delete', $url);
153
- $this->refreshFrom(['discount' => null], $opts, true);
154
- }
155
 
156
  /**
157
- * @param string|null $id The ID of the customer on which to create the source.
158
- * @param array|null $params
159
- * @param array|string|null $opts
160
  *
161
- * @return ApiResource
162
- */
163
- public static function createSource($id, $params = null, $opts = null)
164
- {
165
- return self::_createNestedResource($id, static::PATH_SOURCES, $params, $opts);
166
- }
167
-
168
- /**
169
- * @param string|null $id The ID of the customer to which the source belongs.
170
- * @param string|null $sourceId The ID of the source to retrieve.
171
- * @param array|null $params
172
- * @param array|string|null $opts
173
  *
174
- * @return ApiResource
175
  */
176
- public static function retrieveSource($id, $sourceId, $params = null, $opts = null)
177
  {
178
- return self::_retrieveNestedResource($id, static::PATH_SOURCES, $sourceId, $params, $opts);
179
  }
180
 
181
  /**
182
- * @param string|null $id The ID of the customer to which the source belongs.
183
- * @param string|null $sourceId The ID of the source to update.
184
- * @param array|null $params
185
- * @param array|string|null $opts
186
  *
187
- * @return ApiResource
 
 
188
  */
189
- public static function updateSource($id, $sourceId, $params = null, $opts = null)
190
  {
191
- return self::_updateNestedResource($id, static::PATH_SOURCES, $sourceId, $params, $opts);
192
  }
193
 
194
  /**
195
- * @param string|null $id The ID of the customer to which the source belongs.
196
- * @param string|null $sourceId The ID of the source to delete.
197
- * @param array|null $params
198
- * @param array|string|null $opts
 
 
199
  *
200
- * @return ApiResource
201
  */
202
  public static function deleteSource($id, $sourceId, $params = null, $opts = null)
203
  {
@@ -205,61 +182,45 @@ class Customer extends ApiResource
205
  }
206
 
207
  /**
208
- * @param string|null $id The ID of the customer on which to retrieve the sources.
209
- * @param array|null $params
210
- * @param array|string|null $opts
 
211
  *
212
- * @return Collection The list of sources.
213
- */
214
- public static function allSources($id, $params = null, $opts = null)
215
- {
216
- return self::_allNestedResources($id, static::PATH_SOURCES, $params, $opts);
217
- }
218
-
219
- /**
220
- * @param string|null $id The ID of the customer on which to create the tax id.
221
- * @param array|null $params
222
- * @param array|string|null $opts
223
  *
224
- * @return ApiResource
225
  */
226
- public static function createTaxId($id, $params = null, $opts = null)
227
  {
228
- return self::_createNestedResource($id, static::PATH_TAX_IDS, $params, $opts);
229
  }
230
 
231
  /**
232
- * @param string|null $id The ID of the customer to which the tax id belongs.
233
- * @param string|null $taxIdId The ID of the tax id to retrieve.
234
- * @param array|null $params
235
- * @param array|string|null $opts
236
  *
237
- * @return ApiResource
238
- */
239
- public static function retrieveTaxId($id, $taxIdId, $params = null, $opts = null)
240
- {
241
- return self::_retrieveNestedResource($id, static::PATH_TAX_IDS, $taxIdId, $params, $opts);
242
- }
243
-
244
- /**
245
- * @param string|null $id The ID of the customer to which the tax id belongs.
246
- * @param string|null $taxIdId The ID of the tax id to delete.
247
- * @param array|null $params
248
- * @param array|string|null $opts
249
  *
250
- * @return ApiResource
251
  */
252
- public static function deleteTaxId($id, $taxIdId, $params = null, $opts = null)
253
  {
254
- return self::_deleteNestedResource($id, static::PATH_TAX_IDS, $taxIdId, $params, $opts);
255
  }
256
 
 
 
257
  /**
258
- * @param string|null $id The ID of the customer on which to retrieve the tax ids.
259
- * @param array|null $params
260
- * @param array|string|null $opts
261
  *
262
- * @return Collection The list of tax ids.
 
 
263
  */
264
  public static function allTaxIds($id, $params = null, $opts = null)
265
  {
@@ -267,53 +228,46 @@ class Customer extends ApiResource
267
  }
268
 
269
  /**
270
- * @param string|null $id The ID of the customer on which to create the balance transaction.
271
- * @param array|null $params
272
- * @param array|string|null $opts
273
  *
274
- * @return ApiResource
275
- */
276
- public static function createBalanceTransaction($id, $params = null, $opts = null)
277
- {
278
- return self::_createNestedResource($id, static::PATH_BALANCE_TRANSACTIONS, $params, $opts);
279
- }
280
-
281
- /**
282
- * @param string|null $id The ID of the customer to which the balance transaction belongs.
283
- * @param string|null $balanceTransactionId The ID of the balance transaction to retrieve.
284
- * @param array|null $params
285
- * @param array|string|null $opts
286
  *
287
- * @return ApiResource
288
  */
289
- public static function retrieveBalanceTransaction($id, $balanceTransactionId, $params = null, $opts = null)
290
  {
291
- return self::_retrieveNestedResource($id, static::PATH_BALANCE_TRANSACTIONS, $balanceTransactionId, $params, $opts);
292
  }
293
 
294
  /**
295
- * @param string|null $id The ID of the customer on which to update the balance transaction.
296
- * @param string|null $balanceTransactionId The ID of the balance transaction to update.
297
- * @param array|null $params
298
- * @param array|string|null $opts
299
  *
 
300
  *
301
- * @return ApiResource
302
  */
303
- public static function updateBalanceTransaction($id, $balanceTransactionId, $params = null, $opts = null)
304
  {
305
- return self::_updateNestedResource($id, static::PATH_BALANCE_TRANSACTIONS, $balanceTransactionId, $params, $opts);
306
  }
307
 
308
  /**
309
- * @param string|null $id The ID of the customer on which to retrieve the customer balance transactions.
310
- * @param array|null $params
311
- * @param array|string|null $opts
 
 
 
312
  *
313
- * @return Collection The list of customer balance transactions.
314
  */
315
- public static function allBalanceTransactions($id, $params = null, $opts = null)
316
  {
317
- return self::_allNestedResources($id, static::PATH_BALANCE_TRANSACTIONS, $params, $opts);
318
  }
319
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * <code>Customer</code> objects allow you to perform recurring charges, and to
7
+ * track multiple charges, that are associated with the same customer. The API
8
+ * allows you to create, delete, and update your customers. You can retrieve
9
+ * individual customers as well as a list of all your customers.
10
  *
11
+ * Related guide: <a href="https://stripe.com/docs/saving-cards">Saving Cards with
12
+ * Customers</a>.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  *
14
+ * @property string $id Unique identifier for the object.
15
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
16
+ * @property null|\Stripe\StripeObject $address The customer's address.
17
+ * @property int $balance Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice. The balance does not refer to any unpaid invoices; it solely takes into account amounts that have yet to be successfully applied to any invoice. This balance is only taken into account as invoices are finalized.
18
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
19
+ * @property null|string $currency Three-letter <a href="https://stripe.com/docs/currencies">ISO code for the currency</a> the customer can be charged in for recurring billing purposes.
20
+ * @property null|string|\Stripe\StripeObject $default_source <p>ID of the default payment source for the customer.</p><p>If you are using payment methods created via the PaymentMethods API, see the <a href="https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method">invoice_settings.default_payment_method</a> field instead.</p>
21
+ * @property null|bool $delinquent When the customer's latest invoice is billed by charging automatically, delinquent is true if the invoice's latest charge is failed. When the customer's latest invoice is billed by sending an invoice, delinquent is true if the invoice is not paid by its due date.
22
+ * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users.
23
+ * @property null|\Stripe\Discount $discount Describes the current discount active on the customer, if there is one.
24
+ * @property null|string $email The customer's email address.
25
+ * @property null|string $invoice_prefix The prefix for the customer used to generate unique invoice numbers.
26
+ * @property \Stripe\StripeObject $invoice_settings
27
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
28
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
29
+ * @property null|string $name The customer's full name or business name.
30
+ * @property int $next_invoice_sequence The suffix of the customer's next invoice number, e.g., 0001.
31
+ * @property null|string $phone The customer's phone number.
32
+ * @property null|string[] $preferred_locales The customer's preferred locales (languages), ordered by preference.
33
+ * @property null|\Stripe\StripeObject $shipping Mailing and shipping address for the customer. Appears on invoices emailed to this customer.
34
+ * @property \Stripe\Collection $sources The customer's payment sources, if any.
35
+ * @property \Stripe\Collection $subscriptions The customer's current subscriptions, if any.
36
+ * @property null|string $tax_exempt Describes the customer's tax exemption status. One of <code>none</code>, <code>exempt</code>, or <code>reverse</code>. When set to <code>reverse</code>, invoice and receipt PDFs include the text <strong>&quot;Reverse charge&quot;</strong>.
37
+ * @property \Stripe\Collection $tax_ids The customer's tax IDs.
38
  */
39
  class Customer extends ApiResource
40
  {
41
+ const OBJECT_NAME = 'customer';
42
 
43
  use ApiOperations\All;
44
  use ApiOperations\Create;
47
  use ApiOperations\Retrieve;
48
  use ApiOperations\Update;
49
 
50
+ const TAX_EXEMPT_EXEMPT = 'exempt';
51
+ const TAX_EXEMPT_NONE = 'none';
 
 
 
 
52
  const TAX_EXEMPT_REVERSE = 'reverse';
53
 
54
  public static function getSavedNestedResources()
55
  {
56
  static $savedNestedResources = null;
57
+ if (null === $savedNestedResources) {
58
  $savedNestedResources = new Util\Set([
59
  'source',
60
  ]);
61
  }
62
+
63
  return $savedNestedResources;
64
  }
65
 
 
 
 
 
66
  /**
67
+ * @param null|array $params
68
+ * @param null|array|string $opts
69
  *
70
+ * @return \Stripe\Customer the updated customer
71
  */
72
+ public function deleteDiscount($params = null, $opts = null)
73
  {
74
+ $url = $this->instanceUrl() . '/discount';
75
+ list($response, $opts) = $this->_request('delete', $url, $params, $opts);
76
+ $this->refreshFrom(['discount' => null], $opts, true);
 
77
  }
78
 
79
+ const PATH_BALANCE_TRANSACTIONS = '/balance_transactions';
 
 
 
 
 
 
 
 
 
 
 
80
 
81
  /**
82
+ * @param string $id the ID of the customer on which to retrieve the customer balance transactions
83
+ * @param null|array $params
84
+ * @param null|array|string $opts
85
  *
86
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
87
+ *
88
+ * @return \Stripe\Collection the list of customer balance transactions
89
  */
90
+ public static function allBalanceTransactions($id, $params = null, $opts = null)
91
  {
92
+ return self::_allNestedResources($id, static::PATH_BALANCE_TRANSACTIONS, $params, $opts);
 
 
 
93
  }
94
 
95
  /**
96
+ * @param string $id the ID of the customer on which to create the customer balance transaction
97
+ * @param null|array $params
98
+ * @param null|array|string $opts
99
  *
100
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
101
+ *
102
+ * @return \Stripe\CustomerBalanceTransaction
103
  */
104
+ public static function createBalanceTransaction($id, $params = null, $opts = null)
105
  {
106
+ return self::_createNestedResource($id, static::PATH_BALANCE_TRANSACTIONS, $params, $opts);
 
 
 
107
  }
108
 
109
  /**
110
+ * @param string $id the ID of the customer to which the customer balance transaction belongs
111
+ * @param string $balanceTransactionId the ID of the customer balance transaction to retrieve
112
+ * @param null|array $params
113
+ * @param null|array|string $opts
114
  *
115
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
116
+ *
117
+ * @return \Stripe\CustomerBalanceTransaction
118
  */
119
+ public static function retrieveBalanceTransaction($id, $balanceTransactionId, $params = null, $opts = null)
120
  {
121
+ return self::_retrieveNestedResource($id, static::PATH_BALANCE_TRANSACTIONS, $balanceTransactionId, $params, $opts);
 
 
 
122
  }
123
 
124
  /**
125
+ * @param string $id the ID of the customer to which the customer balance transaction belongs
126
+ * @param string $balanceTransactionId the ID of the customer balance transaction to update
127
+ * @param null|array $params
128
+ * @param null|array|string $opts
129
  *
130
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
131
+ *
132
+ * @return \Stripe\CustomerBalanceTransaction
133
  */
134
+ public static function updateBalanceTransaction($id, $balanceTransactionId, $params = null, $opts = null)
135
  {
136
+ return self::_updateNestedResource($id, static::PATH_BALANCE_TRANSACTIONS, $balanceTransactionId, $params, $opts);
 
 
 
137
  }
138
 
139
+ const PATH_SOURCES = '/sources';
 
 
 
 
 
 
 
 
140
 
141
  /**
142
+ * @param string $id the ID of the customer on which to retrieve the payment sources
143
+ * @param null|array $params
144
+ * @param null|array|string $opts
145
  *
146
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
 
 
 
 
 
 
 
 
 
 
 
147
  *
148
+ * @return \Stripe\Collection the list of payment sources (AlipayAccount, BankAccount, BitcoinReceiver, Card or Source)
149
  */
150
+ public static function allSources($id, $params = null, $opts = null)
151
  {
152
+ return self::_allNestedResources($id, static::PATH_SOURCES, $params, $opts);
153
  }
154
 
155
  /**
156
+ * @param string $id the ID of the customer on which to create the payment source
157
+ * @param null|array $params
158
+ * @param null|array|string $opts
 
159
  *
160
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
161
+ *
162
+ * @return \Stripe\AlipayAccount|\Stripe\BankAccount|\Stripe\BitcoinReceiver|\Stripe\Card|\Stripe\Source
163
  */
164
+ public static function createSource($id, $params = null, $opts = null)
165
  {
166
+ return self::_createNestedResource($id, static::PATH_SOURCES, $params, $opts);
167
  }
168
 
169
  /**
170
+ * @param string $id the ID of the customer to which the payment source belongs
171
+ * @param string $sourceId the ID of the payment source to delete
172
+ * @param null|array $params
173
+ * @param null|array|string $opts
174
+ *
175
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
176
  *
177
+ * @return \Stripe\AlipayAccount|\Stripe\BankAccount|\Stripe\BitcoinReceiver|\Stripe\Card|\Stripe\Source
178
  */
179
  public static function deleteSource($id, $sourceId, $params = null, $opts = null)
180
  {
182
  }
183
 
184
  /**
185
+ * @param string $id the ID of the customer to which the payment source belongs
186
+ * @param string $sourceId the ID of the payment source to retrieve
187
+ * @param null|array $params
188
+ * @param null|array|string $opts
189
  *
190
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
 
 
 
 
 
 
 
 
 
 
191
  *
192
+ * @return \Stripe\AlipayAccount|\Stripe\BankAccount|\Stripe\BitcoinReceiver|\Stripe\Card|\Stripe\Source
193
  */
194
+ public static function retrieveSource($id, $sourceId, $params = null, $opts = null)
195
  {
196
+ return self::_retrieveNestedResource($id, static::PATH_SOURCES, $sourceId, $params, $opts);
197
  }
198
 
199
  /**
200
+ * @param string $id the ID of the customer to which the payment source belongs
201
+ * @param string $sourceId the ID of the payment source to update
202
+ * @param null|array $params
203
+ * @param null|array|string $opts
204
  *
205
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
 
 
 
 
 
 
 
 
 
 
 
206
  *
207
+ * @return \Stripe\AlipayAccount|\Stripe\BankAccount|\Stripe\BitcoinReceiver|\Stripe\Card|\Stripe\Source
208
  */
209
+ public static function updateSource($id, $sourceId, $params = null, $opts = null)
210
  {
211
+ return self::_updateNestedResource($id, static::PATH_SOURCES, $sourceId, $params, $opts);
212
  }
213
 
214
+ const PATH_TAX_IDS = '/tax_ids';
215
+
216
  /**
217
+ * @param string $id the ID of the customer on which to retrieve the tax ids
218
+ * @param null|array $params
219
+ * @param null|array|string $opts
220
  *
221
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
222
+ *
223
+ * @return \Stripe\Collection the list of tax ids
224
  */
225
  public static function allTaxIds($id, $params = null, $opts = null)
226
  {
228
  }
229
 
230
  /**
231
+ * @param string $id the ID of the customer on which to create the tax id
232
+ * @param null|array $params
233
+ * @param null|array|string $opts
234
  *
235
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
 
 
 
 
 
 
 
 
 
 
 
236
  *
237
+ * @return \Stripe\TaxId
238
  */
239
+ public static function createTaxId($id, $params = null, $opts = null)
240
  {
241
+ return self::_createNestedResource($id, static::PATH_TAX_IDS, $params, $opts);
242
  }
243
 
244
  /**
245
+ * @param string $id the ID of the customer to which the tax id belongs
246
+ * @param string $taxIdId the ID of the tax id to delete
247
+ * @param null|array $params
248
+ * @param null|array|string $opts
249
  *
250
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
251
  *
252
+ * @return \Stripe\TaxId
253
  */
254
+ public static function deleteTaxId($id, $taxIdId, $params = null, $opts = null)
255
  {
256
+ return self::_deleteNestedResource($id, static::PATH_TAX_IDS, $taxIdId, $params, $opts);
257
  }
258
 
259
  /**
260
+ * @param string $id the ID of the customer to which the tax id belongs
261
+ * @param string $taxIdId the ID of the tax id to retrieve
262
+ * @param null|array $params
263
+ * @param null|array|string $opts
264
+ *
265
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
266
  *
267
+ * @return \Stripe\TaxId
268
  */
269
+ public static function retrieveTaxId($id, $taxIdId, $params = null, $opts = null)
270
  {
271
+ return self::_retrieveNestedResource($id, static::PATH_TAX_IDS, $taxIdId, $params, $opts);
272
  }
273
  }
lib/stripe-gateway/lib/CustomerBalanceTransaction.php CHANGED
@@ -3,50 +3,56 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class CustomerBalanceTransaction
 
 
 
 
 
 
7
  *
8
- * @package Stripe
 
 
9
  *
10
- * @property string $id
11
- * @property string $object
12
- * @property int $amount
13
- * @property string $credit_note
14
- * @property int $created
15
- * @property string $currency
16
- * @property string $customer
17
- * @property string $description
18
- * @property int $ending_balance
19
- * @property string $invoice
20
- * @property bool $livemode
21
- * @property StripeObject $metadata
22
- * @property string $type
23
  */
24
  class CustomerBalanceTransaction extends ApiResource
25
  {
26
- const OBJECT_NAME = "customer_balance_transaction";
27
 
28
- /**
29
- * Possible string representations of a balance transaction's type.
30
- * @link https://stripe.com/docs/api/customers/customer_balance_transaction_object#customer_balance_transaction_object-type
31
- */
32
- const TYPE_ADJUSTEMENT = 'adjustment';
33
- const TYPE_APPLIED_TO_INVOICE = 'applied_to_invoice';
34
- const TYPE_CREDIT_NOTE = 'credit_note';
35
- const TYPE_INITIAL = 'initial';
36
- const TYPE_INVOICE_TOO_LARGE = 'invoice_too_large';
37
- const TYPE_INVOICE_TOO_SMALL = 'invoice_too_small';
38
  const TYPE_UNSPENT_RECEIVER_CREDIT = 'unspent_receiver_credit';
39
 
 
 
40
  /**
41
- * @return string The API URL for this balance transaction.
42
  */
43
  public function instanceUrl()
44
  {
45
  $id = $this['id'];
46
  $customer = $this['customer'];
47
  if (!$id) {
48
- throw new Error\InvalidRequest(
49
- "Could not determine which URL to request: class instance has invalid ID: $id",
50
  null
51
  );
52
  }
@@ -54,35 +60,42 @@ class CustomerBalanceTransaction extends ApiResource
54
  $customer = Util\Util::utf8($customer);
55
 
56
  $base = Customer::classUrl();
57
- $customerExtn = urlencode($customer);
58
- $extn = urlencode($id);
59
- return "$base/$customerExtn/balance_transactions/$extn";
 
60
  }
61
 
62
  /**
63
  * @param array|string $_id
64
- * @param array|string|null $_opts
65
  *
66
- * @throws \Stripe\Error\InvalidRequest
67
  */
68
  public static function retrieve($_id, $_opts = null)
69
  {
70
- $msg = "Customer Balance Transactions cannot be accessed without a customer ID. " .
71
- "Retrieve a balance transaction using Customer::retrieveBalanceTransaction('cus_123', 'cbtxn_123') instead.";
72
- throw new Error\InvalidRequest($msg, null);
 
 
 
73
  }
74
 
75
  /**
76
  * @param string $_id
77
- * @param array|null $_params
78
- * @param array|string|null $_options
79
  *
80
- * @throws \Stripe\Error\InvalidRequest
81
  */
82
  public static function update($_id, $_params = null, $_options = null)
83
  {
84
- $msg = "Customer Balance Transactions cannot be accessed without a customer ID. " .
85
- "Update a balance transaction using Customer::updateBalanceTransaction('cus_123', 'cbtxn_123', \$params) instead.";
86
- throw new Error\InvalidRequest($msg, null);
 
 
 
87
  }
88
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * Each customer has a <a
7
+ * href="https://stripe.com/docs/api/customers/object#customer_object-balance"><code>balance</code></a>
8
+ * value, which denotes a debit or credit that's automatically applied to their
9
+ * next invoice upon finalization. You may modify the value directly by using the
10
+ * <a href="https://stripe.com/docs/api/customers/update">update customer API</a>,
11
+ * or by creating a Customer Balance Transaction, which increments or decrements
12
+ * the customer's <code>balance</code> by the specified <code>amount</code>.
13
  *
14
+ * Related guide: <a
15
+ * href="https://stripe.com/docs/billing/customer/balance">Customer Balance</a> to
16
+ * learn more.
17
  *
18
+ * @property string $id Unique identifier for the object.
19
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
20
+ * @property int $amount The amount of the transaction. A negative value is a credit for the customer's balance, and a positive value is a debit to the customer's <code>balance</code>.
21
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
22
+ * @property null|string|\Stripe\CreditNote $credit_note The ID of the credit note (if any) related to the transaction.
23
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
24
+ * @property string|\Stripe\Customer $customer The ID of the customer the transaction belongs to.
25
+ * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users.
26
+ * @property int $ending_balance The customer's <code>balance</code> after the transaction was applied. A negative value decreases the amount due on the customer's next invoice. A positive value increases the amount due on the customer's next invoice.
27
+ * @property null|string|\Stripe\Invoice $invoice The ID of the invoice (if any) related to the transaction.
28
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
29
+ * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
30
+ * @property string $type Transaction type: <code>adjustment</code>, <code>applied_to_invoice</code>, <code>credit_note</code>, <code>initial</code>, <code>invoice_too_large</code>, <code>invoice_too_small</code>, <code>unspent_receiver_credit</code>, or <code>unapplied_from_invoice</code>. See the <a href="https://stripe.com/docs/billing/customer/balance#types">Customer Balance page</a> to learn more about transaction types.
31
  */
32
  class CustomerBalanceTransaction extends ApiResource
33
  {
34
+ const OBJECT_NAME = 'customer_balance_transaction';
35
 
36
+ const TYPE_ADJUSTMENT = 'adjustment';
37
+ const TYPE_APPLIED_TO_INVOICE = 'applied_to_invoice';
38
+ const TYPE_CREDIT_NOTE = 'credit_note';
39
+ const TYPE_INITIAL = 'initial';
40
+ const TYPE_INVOICE_TOO_LARGE = 'invoice_too_large';
41
+ const TYPE_INVOICE_TOO_SMALL = 'invoice_too_small';
 
 
 
 
42
  const TYPE_UNSPENT_RECEIVER_CREDIT = 'unspent_receiver_credit';
43
 
44
+ const TYPE_ADJUSTEMENT = 'adjustment';
45
+
46
  /**
47
+ * @return string the API URL for this balance transaction
48
  */
49
  public function instanceUrl()
50
  {
51
  $id = $this['id'];
52
  $customer = $this['customer'];
53
  if (!$id) {
54
+ throw new Exception\UnexpectedValueException(
55
+ "Could not determine which URL to request: class instance has invalid ID: {$id}",
56
  null
57
  );
58
  }
60
  $customer = Util\Util::utf8($customer);
61
 
62
  $base = Customer::classUrl();
63
+ $customerExtn = \urlencode($customer);
64
+ $extn = \urlencode($id);
65
+
66
+ return "{$base}/{$customerExtn}/balance_transactions/{$extn}";
67
  }
68
 
69
  /**
70
  * @param array|string $_id
71
+ * @param null|array|string $_opts
72
  *
73
+ * @throws \Stripe\Exception\BadMethodCallException
74
  */
75
  public static function retrieve($_id, $_opts = null)
76
  {
77
+ $msg = 'Customer Balance Transactions cannot be retrieved without a ' .
78
+ 'customer ID. Retrieve a Customer Balance Transaction using ' .
79
+ "`Customer::retrieveBalanceTransaction('customer_id', " .
80
+ "'balance_transaction_id')`.";
81
+
82
+ throw new Exception\BadMethodCallException($msg);
83
  }
84
 
85
  /**
86
  * @param string $_id
87
+ * @param null|array $_params
88
+ * @param null|array|string $_options
89
  *
90
+ * @throws \Stripe\Exception\BadMethodCallException
91
  */
92
  public static function update($_id, $_params = null, $_options = null)
93
  {
94
+ $msg = 'Customer Balance Transactions cannot be updated without a ' .
95
+ 'customer ID. Update a Customer Balance Transaction using ' .
96
+ "`Customer::updateBalanceTransaction('customer_id', " .
97
+ "'balance_transaction_id', \$updateParams)`.";
98
+
99
+ throw new Exception\BadMethodCallException($msg);
100
  }
101
  }
lib/stripe-gateway/lib/Discount.php CHANGED
@@ -3,7 +3,7 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class Discount
7
  *
8
  * @property string $object
9
  * @property Coupon $coupon
@@ -11,10 +11,8 @@ namespace Stripe;
11
  * @property int $end
12
  * @property int $start
13
  * @property string $subscription
14
- *
15
- * @package Stripe
16
  */
17
  class Discount extends StripeObject
18
  {
19
- const OBJECT_NAME = "discount";
20
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * Class Discount.
7
  *
8
  * @property string $object
9
  * @property Coupon $coupon
11
  * @property int $end
12
  * @property int $start
13
  * @property string $subscription
 
 
14
  */
15
  class Discount extends StripeObject
16
  {
17
+ const OBJECT_NAME = 'discount';
18
  }
lib/stripe-gateway/lib/Dispute.php CHANGED
@@ -3,75 +3,78 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class Dispute
 
 
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $amount
11
- * @property BalanceTransaction[] $balance_transactions
12
- * @property string $charge
13
- * @property int $created
14
- * @property string $currency
15
- * @property mixed $evidence
16
- * @property mixed $evidence_details
17
- * @property bool $is_charge_refundable
18
- * @property bool $livemode
19
- * @property StripeObject $metadata
20
- * @property string $reason
21
- * @property string $status
22
  *
23
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  */
25
  class Dispute extends ApiResource
26
  {
27
- const OBJECT_NAME = "dispute";
28
 
29
  use ApiOperations\All;
30
  use ApiOperations\Retrieve;
31
  use ApiOperations\Update;
32
 
33
- /**
34
- * Possible string representations of dispute reasons.
35
- * @link https://stripe.com/docs/api#dispute_object
36
- */
37
- const REASON_BANK_CANNOT_PROCESS = 'bank_cannot_process';
38
- const REASON_CHECK_RETURNED = 'check_returned';
39
- const REASON_CREDIT_NOT_PROCESSED = 'credit_not_processed';
40
- const REASON_CUSTOMER_INITIATED = 'customer_initiated';
41
- const REASON_DEBIT_NOT_AUTHORIZED = 'debit_not_authorized';
42
- const REASON_DUPLICATE = 'duplicate';
43
- const REASON_FRAUDULENT = 'fraudulent';
44
- const REASON_GENERAL = 'general';
45
  const REASON_INCORRECT_ACCOUNT_DETAILS = 'incorrect_account_details';
46
- const REASON_INSUFFICIENT_FUNDS = 'insufficient_funds';
47
- const REASON_PRODUCT_NOT_RECEIVED = 'product_not_received';
48
- const REASON_PRODUCT_UNACCEPTABLE = 'product_unacceptable';
49
- const REASON_SUBSCRIPTION_CANCELED = 'subscription_canceled';
50
- const REASON_UNRECOGNIZED = 'unrecognized';
51
 
52
- /**
53
- * Possible string representations of dispute statuses.
54
- * @link https://stripe.com/docs/api#dispute_object
55
- */
56
- const STATUS_CHARGE_REFUNDED = 'charge_refunded';
57
- const STATUS_LOST = 'lost';
58
- const STATUS_NEEDS_RESPONSE = 'needs_response';
59
- const STATUS_UNDER_REVIEW = 'under_review';
60
- const STATUS_WARNING_CLOSED = 'warning_closed';
61
  const STATUS_WARNING_NEEDS_RESPONSE = 'warning_needs_response';
62
- const STATUS_WARNING_UNDER_REVIEW = 'warning_under_review';
63
- const STATUS_WON = 'won';
64
 
65
  /**
66
- * @param array|string|null $options
 
 
67
  *
68
- * @return Dispute The closed dispute.
69
  */
70
- public function close($options = null)
 
71
  {
72
  $url = $this->instanceUrl() . '/close';
73
- list($response, $opts) = $this->_request('post', $url, null, $options);
74
  $this->refreshFrom($response, $opts);
 
75
  return $this;
76
  }
77
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * A dispute occurs when a customer questions your charge with their card issuer.
7
+ * When this happens, you're given the opportunity to respond to the dispute with
8
+ * evidence that shows that the charge is legitimate. You can find more information
9
+ * about the dispute process in our <a href="/docs/disputes">Disputes and Fraud</a>
10
+ * documentation.
11
  *
12
+ * Related guide: <a href="https://stripe.com/docs/disputes">Disputes and
13
+ * Fraud</a>.
 
 
 
 
 
 
 
 
 
 
 
 
14
  *
15
+ * @property string $id Unique identifier for the object.
16
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
17
+ * @property int $amount Disputed amount. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed).
18
+ * @property \Stripe\BalanceTransaction[] $balance_transactions List of zero, one, or two balance transactions that show funds withdrawn and reinstated to your Stripe account as a result of this dispute.
19
+ * @property string|\Stripe\Charge $charge ID of the charge that was disputed.
20
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
21
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
22
+ * @property \Stripe\StripeObject $evidence
23
+ * @property \Stripe\StripeObject $evidence_details
24
+ * @property bool $is_charge_refundable If true, it is still possible to refund the disputed payment. Once the payment has been fully refunded, no further funds will be withdrawn from your Stripe account as a result of this dispute.
25
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
26
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
27
+ * @property null|string $network_reason_code Network-dependent reason code for the dispute.
28
+ * @property null|string|\Stripe\PaymentIntent $payment_intent ID of the PaymentIntent that was disputed.
29
+ * @property string $reason Reason given by cardholder for dispute. Possible values are <code>bank_cannot_process</code>, <code>check_returned</code>, <code>credit_not_processed</code>, <code>customer_initiated</code>, <code>debit_not_authorized</code>, <code>duplicate</code>, <code>fraudulent</code>, <code>general</code>, <code>incorrect_account_details</code>, <code>insufficient_funds</code>, <code>product_not_received</code>, <code>product_unacceptable</code>, <code>subscription_canceled</code>, or <code>unrecognized</code>. Read more about <a href="https://stripe.com/docs/disputes/categories">dispute reasons</a>.
30
+ * @property string $status Current status of dispute. Possible values are <code>warning_needs_response</code>, <code>warning_under_review</code>, <code>warning_closed</code>, <code>needs_response</code>, <code>under_review</code>, <code>charge_refunded</code>, <code>won</code>, or <code>lost</code>.
31
  */
32
  class Dispute extends ApiResource
33
  {
34
+ const OBJECT_NAME = 'dispute';
35
 
36
  use ApiOperations\All;
37
  use ApiOperations\Retrieve;
38
  use ApiOperations\Update;
39
 
40
+ const REASON_BANK_CANNOT_PROCESS = 'bank_cannot_process';
41
+ const REASON_CHECK_RETURNED = 'check_returned';
42
+ const REASON_CREDIT_NOT_PROCESSED = 'credit_not_processed';
43
+ const REASON_CUSTOMER_INITIATED = 'customer_initiated';
44
+ const REASON_DEBIT_NOT_AUTHORIZED = 'debit_not_authorized';
45
+ const REASON_DUPLICATE = 'duplicate';
46
+ const REASON_FRAUDULENT = 'fraudulent';
47
+ const REASON_GENERAL = 'general';
 
 
 
 
48
  const REASON_INCORRECT_ACCOUNT_DETAILS = 'incorrect_account_details';
49
+ const REASON_INSUFFICIENT_FUNDS = 'insufficient_funds';
50
+ const REASON_PRODUCT_NOT_RECEIVED = 'product_not_received';
51
+ const REASON_PRODUCT_UNACCEPTABLE = 'product_unacceptable';
52
+ const REASON_SUBSCRIPTION_CANCELED = 'subscription_canceled';
53
+ const REASON_UNRECOGNIZED = 'unrecognized';
54
 
55
+ const STATUS_CHARGE_REFUNDED = 'charge_refunded';
56
+ const STATUS_LOST = 'lost';
57
+ const STATUS_NEEDS_RESPONSE = 'needs_response';
58
+ const STATUS_UNDER_REVIEW = 'under_review';
59
+ const STATUS_WARNING_CLOSED = 'warning_closed';
 
 
 
 
60
  const STATUS_WARNING_NEEDS_RESPONSE = 'warning_needs_response';
61
+ const STATUS_WARNING_UNDER_REVIEW = 'warning_under_review';
62
+ const STATUS_WON = 'won';
63
 
64
  /**
65
+ * @param null|array|string $opts
66
+ *
67
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
68
  *
69
+ * @return \Stripe\Dispute the closed dispute
70
  */
71
+ // TODO: add $params to standardize signature
72
+ public function close($opts = null)
73
  {
74
  $url = $this->instanceUrl() . '/close';
75
+ list($response, $opts) = $this->_request('post', $url, null, $opts);
76
  $this->refreshFrom($response, $opts);
77
+
78
  return $this;
79
  }
80
  }
lib/stripe-gateway/lib/EphemeralKey.php CHANGED
@@ -3,38 +3,39 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class EphemeralKey
7
- *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $created
11
- * @property int $expires
12
- * @property bool $livemode
13
- * @property string $secret
14
  * @property array $associated_objects
15
- *
16
- * @package Stripe
17
  */
18
  class EphemeralKey extends ApiResource
19
  {
20
- const OBJECT_NAME = "ephemeral_key";
 
 
21
 
22
  use ApiOperations\Create {
23
  create as protected _create;
24
  }
25
- use ApiOperations\Delete;
26
 
27
  /**
28
- * @param array|null $params
29
- * @param array|string|null $opts
30
  *
31
- * @return EphemeralKey The created key.
 
 
 
32
  */
33
  public static function create($params = null, $opts = null)
34
  {
35
- if (!$opts['stripe_version']) {
36
- throw new \InvalidArgumentException('stripe_version must be specified to create an ephemeral key');
37
  }
 
38
  return self::_create($params, $opts);
39
  }
40
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * @property string $id Unique identifier for the object.
7
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
8
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
9
+ * @property int $expires Time at which the key will expire. Measured in seconds since the Unix epoch.
10
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
11
+ * @property string $secret The key's secret. You can use this value to make authorized requests to the Stripe API.
 
 
12
  * @property array $associated_objects
 
 
13
  */
14
  class EphemeralKey extends ApiResource
15
  {
16
+ const OBJECT_NAME = 'ephemeral_key';
17
+
18
+ use ApiOperations\Delete;
19
 
20
  use ApiOperations\Create {
21
  create as protected _create;
22
  }
 
23
 
24
  /**
25
+ * @param null|array $params
26
+ * @param null|array|string $opts
27
  *
28
+ * @throws \Stripe\Exception\InvalidArgumentException if stripe_version is missing
29
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
30
+ *
31
+ * @return \Stripe\EphemeralKey the created key
32
  */
33
  public static function create($params = null, $opts = null)
34
  {
35
+ if (!$opts || !isset($opts['stripe_version'])) {
36
+ throw new Exception\InvalidArgumentException('stripe_version must be specified to create an ephemeral key');
37
  }
38
+
39
  return self::_create($params, $opts);
40
  }
41
  }
lib/stripe-gateway/lib/ErrorObject.php ADDED
@@ -0,0 +1,161 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe;
4
+
5
+ /**
6
+ * Class ErrorObject.
7
+ *
8
+ * @property string $charge For card errors, the ID of the failed charge.
9
+ * @property string $code For some errors that could be handled
10
+ * programmatically, a short string indicating the error code reported.
11
+ * @property string $decline_code For card errors resulting from a card issuer
12
+ * decline, a short string indicating the card issuer's reason for the
13
+ * decline if they provide one.
14
+ * @property string $doc_url A URL to more information about the error code
15
+ * reported.
16
+ * @property string $message A human-readable message providing more details
17
+ * about the error. For card errors, these messages can be shown to your
18
+ * users.
19
+ * @property string $param If the error is parameter-specific, the parameter
20
+ * related to the error. For example, you can use this to display a message
21
+ * near the correct form field.
22
+ * @property PaymentIntent $payment_intent The PaymentIntent object for errors
23
+ * returned on a request involving a PaymentIntent.
24
+ * @property PaymentMethod $payment_method The PaymentMethod object for errors
25
+ * returned on a request involving a PaymentMethod.
26
+ * @property SetupIntent $setup_intent The SetupIntent object for errors
27
+ * returned on a request involving a SetupIntent.
28
+ * @property StripeObject $source The source object for errors returned on a
29
+ * request involving a source.
30
+ * @property string $type The type of error returned. One of
31
+ * `api_connection_error`, `api_error`, `authentication_error`,
32
+ * `card_error`, `idempotency_error`, `invalid_request_error`, or
33
+ * `rate_limit_error`.
34
+ */
35
+ class ErrorObject extends StripeObject
36
+ {
37
+ /**
38
+ * Possible string representations of an error's code.
39
+ *
40
+ * @see https://stripe.com/docs/error-codes
41
+ */
42
+ const CODE_ACCOUNT_ALREADY_EXISTS = 'account_already_exists';
43
+ const CODE_ACCOUNT_COUNTRY_INVALID_ADDRESS = 'account_country_invalid_address';
44
+ const CODE_ACCOUNT_INVALID = 'account_invalid';
45
+ const CODE_ACCOUNT_NUMBER_INVALID = 'account_number_invalid';
46
+ const CODE_ALIPAY_UPGRADE_REQUIRED = 'alipay_upgrade_required';
47
+ const CODE_AMOUNT_TOO_LARGE = 'amount_too_large';
48
+ const CODE_AMOUNT_TOO_SMALL = 'amount_too_small';
49
+ const CODE_API_KEY_EXPIRED = 'api_key_expired';
50
+ const CODE_BALANCE_INSUFFICIENT = 'balance_insufficient';
51
+ const CODE_BANK_ACCOUNT_EXISTS = 'bank_account_exists';
52
+ const CODE_BANK_ACCOUNT_UNUSABLE = 'bank_account_unusable';
53
+ const CODE_BANK_ACCOUNT_UNVERIFIED = 'bank_account_unverified';
54
+ const CODE_BITCOIN_UPGRADE_REQUIRED = 'bitcoin_upgrade_required';
55
+ const CODE_CARD_DECLINED = 'card_declined';
56
+ const CODE_CHARGE_ALREADY_CAPTURED = 'charge_already_captured';
57
+ const CODE_CHARGE_ALREADY_REFUNDED = 'charge_already_refunded';
58
+ const CODE_CHARGE_DISPUTED = 'charge_disputed';
59
+ const CODE_CHARGE_EXCEEDS_SOURCE_LIMIT = 'charge_exceeds_source_limit';
60
+ const CODE_CHARGE_EXPIRED_FOR_CAPTURE = 'charge_expired_for_capture';
61
+ const CODE_COUNTRY_UNSUPPORTED = 'country_unsupported';
62
+ const CODE_COUPON_EXPIRED = 'coupon_expired';
63
+ const CODE_CUSTOMER_MAX_SUBSCRIPTIONS = 'customer_max_subscriptions';
64
+ const CODE_EMAIL_INVALID = 'email_invalid';
65
+ const CODE_EXPIRED_CARD = 'expired_card';
66
+ const CODE_IDEMPOTENCY_KEY_IN_USE = 'idempotency_key_in_use';
67
+ const CODE_INCORRECT_ADDRESS = 'incorrect_address';
68
+ const CODE_INCORRECT_CVC = 'incorrect_cvc';
69
+ const CODE_INCORRECT_NUMBER = 'incorrect_number';
70
+ const CODE_INCORRECT_ZIP = 'incorrect_zip';
71
+ const CODE_INSTANT_PAYOUTS_UNSUPPORTED = 'instant_payouts_unsupported';
72
+ const CODE_INVALID_CARD_TYPE = 'invalid_card_type';
73
+ const CODE_INVALID_CHARGE_AMOUNT = 'invalid_charge_amount';
74
+ const CODE_INVALID_CVC = 'invalid_cvc';
75
+ const CODE_INVALID_EXPIRY_MONTH = 'invalid_expiry_month';
76
+ const CODE_INVALID_EXPIRY_YEAR = 'invalid_expiry_year';
77
+ const CODE_INVALID_NUMBER = 'invalid_number';
78
+ const CODE_INVALID_SOURCE_USAGE = 'invalid_source_usage';
79
+ const CODE_INVOICE_NO_CUSTOMER_LINE_ITEMS = 'invoice_no_customer_line_items';
80
+ const CODE_INVOICE_NO_SUBSCRIPTION_LINE_ITEMS = 'invoice_no_subscription_line_items';
81
+ const CODE_INVOICE_NOT_EDITABLE = 'invoice_not_editable';
82
+ const CODE_INVOICE_PAYMENT_INTENT_REQUIRES_ACTION = 'invoice_payment_intent_requires_action';
83
+ const CODE_INVOICE_UPCOMING_NONE = 'invoice_upcoming_none';
84
+ const CODE_LIVEMODE_MISMATCH = 'livemode_mismatch';
85
+ const CODE_LOCK_TIMEOUT = 'lock_timeout';
86
+ const CODE_MISSING = 'missing';
87
+ const CODE_NOT_ALLOWED_ON_STANDARD_ACCOUNT = 'not_allowed_on_standard_account';
88
+ const CODE_ORDER_CREATION_FAILED = 'order_creation_failed';
89
+ const CODE_ORDER_REQUIRED_SETTINGS = 'order_required_settings';
90
+ const CODE_ORDER_STATUS_INVALID = 'order_status_invalid';
91
+ const CODE_ORDER_UPSTREAM_TIMEOUT = 'order_upstream_timeout';
92
+ const CODE_OUT_OF_INVENTORY = 'out_of_inventory';
93
+ const CODE_PARAMETER_INVALID_EMPTY = 'parameter_invalid_empty';
94
+ const CODE_PARAMETER_INVALID_INTEGER = 'parameter_invalid_integer';
95
+ const CODE_PARAMETER_INVALID_STRING_BLANK = 'parameter_invalid_string_blank';
96
+ const CODE_PARAMETER_INVALID_STRING_EMPTY = 'parameter_invalid_string_empty';
97
+ const CODE_PARAMETER_MISSING = 'parameter_missing';
98
+ const CODE_PARAMETER_UNKNOWN = 'parameter_unknown';
99
+ const CODE_PARAMETERS_EXCLUSIVE = 'parameters_exclusive';
100
+ const CODE_PAYMENT_INTENT_AUTHENTICATION_FAILURE = 'payment_intent_authentication_failure';
101
+ const CODE_PAYMENT_INTENT_INCOMPATIBLE_PAYMENT_METHOD = 'payment_intent_incompatible_payment_method';
102
+ const CODE_PAYMENT_INTENT_INVALID_PARAMETER = 'payment_intent_invalid_parameter';
103
+ const CODE_PAYMENT_INTENT_PAYMENT_ATTEMPT_FAILED = 'payment_intent_payment_attempt_failed';
104
+ const CODE_PAYMENT_INTENT_UNEXPECTED_STATE = 'payment_intent_unexpected_state';
105
+ const CODE_PAYMENT_METHOD_UNACTIVATED = 'payment_method_unactivated';
106
+ const CODE_PAYMENT_METHOD_UNEXPECTED_STATE = 'payment_method_unexpected_state';
107
+ const CODE_PAYOUTS_NOT_ALLOWED = 'payouts_not_allowed';
108
+ const CODE_PLATFORM_API_KEY_EXPIRED = 'platform_api_key_expired';
109
+ const CODE_POSTAL_CODE_INVALID = 'postal_code_invalid';
110
+ const CODE_PROCESSING_ERROR = 'processing_error';
111
+ const CODE_PRODUCT_INACTIVE = 'product_inactive';
112
+ const CODE_RATE_LIMIT = 'rate_limit';
113
+ const CODE_RESOURCE_ALREADY_EXISTS = 'resource_already_exists';
114
+ const CODE_RESOURCE_MISSING = 'resource_missing';
115
+ const CODE_ROUTING_NUMBER_INVALID = 'routing_number_invalid';
116
+ const CODE_SECRET_KEY_REQUIRED = 'secret_key_required';
117
+ const CODE_SEPA_UNSUPPORTED_ACCOUNT = 'sepa_unsupported_account';
118
+ const CODE_SETUP_ATTEMPT_FAILED = 'setup_attempt_failed';
119
+ const CODE_SETUP_INTENT_AUTHENTICATION_FAILURE = 'setup_intent_authentication_failure';
120
+ const CODE_SETUP_INTENT_UNEXPECTED_STATE = 'setup_intent_unexpected_state';
121
+ const CODE_SHIPPING_CALCULATION_FAILED = 'shipping_calculation_failed';
122
+ const CODE_SKU_INACTIVE = 'sku_inactive';
123
+ const CODE_STATE_UNSUPPORTED = 'state_unsupported';
124
+ const CODE_TAX_ID_INVALID = 'tax_id_invalid';
125
+ const CODE_TAXES_CALCULATION_FAILED = 'taxes_calculation_failed';
126
+ const CODE_TESTMODE_CHARGES_ONLY = 'testmode_charges_only';
127
+ const CODE_TLS_VERSION_UNSUPPORTED = 'tls_version_unsupported';
128
+ const CODE_TOKEN_ALREADY_USED = 'token_already_used';
129
+ const CODE_TOKEN_IN_USE = 'token_in_use';
130
+ const CODE_TRANSFERS_NOT_ALLOWED = 'transfers_not_allowed';
131
+ const CODE_UPSTREAM_ORDER_CREATION_FAILED = 'upstream_order_creation_failed';
132
+ const CODE_URL_INVALID = 'url_invalid';
133
+
134
+ /**
135
+ * Refreshes this object using the provided values.
136
+ *
137
+ * @param array $values
138
+ * @param null|array|string|Util\RequestOptions $opts
139
+ * @param bool $partial defaults to false
140
+ */
141
+ public function refreshFrom($values, $opts, $partial = false)
142
+ {
143
+ // Unlike most other API resources, the API will omit attributes in
144
+ // error objects when they have a null value. We manually set default
145
+ // values here to facilitate generic error handling.
146
+ $values = \array_merge([
147
+ 'charge' => null,
148
+ 'code' => null,
149
+ 'decline_code' => null,
150
+ 'doc_url' => null,
151
+ 'message' => null,
152
+ 'param' => null,
153
+ 'payment_intent' => null,
154
+ 'payment_method' => null,
155
+ 'setup_intent' => null,
156
+ 'source' => null,
157
+ 'type' => null,
158
+ ], $values);
159
+ parent::refreshFrom($values, $opts, $partial);
160
+ }
161
+ }
lib/stripe-gateway/lib/Event.php CHANGED
@@ -3,165 +3,201 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class Event
 
 
 
 
 
 
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property string $account
11
- * @property string $api_version
12
- * @property int $created
13
- * @property mixed $data
14
- * @property bool $livemode
15
- * @property int $pending_webhooks
16
- * @property mixed $request
17
- * @property string $type
18
  *
19
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  */
21
  class Event extends ApiResource
22
  {
23
- const OBJECT_NAME = "event";
 
 
 
24
 
25
  /**
26
  * Possible string representations of event types.
27
- * @link https://stripe.com/docs/api#event_types
 
28
  */
29
- const ACCOUNT_UPDATED = 'account.updated';
30
- const ACCOUNT_APPLICATION_AUTHORIZED = 'account.application.authorized';
31
- const ACCOUNT_APPLICATION_DEAUTHORIZED = 'account.application.deauthorized';
32
- const ACCOUNT_EXTERNAL_ACCOUNT_CREATED = 'account.external_account.created';
33
- const ACCOUNT_EXTERNAL_ACCOUNT_DELETED = 'account.external_account.deleted';
34
- const ACCOUNT_EXTERNAL_ACCOUNT_UPDATED = 'account.external_account.updated';
35
- const APPLICATION_FEE_CREATED = 'application_fee.created';
36
- const APPLICATION_FEE_REFUNDED = 'application_fee.refunded';
37
- const APPLICATION_FEE_REFUND_UPDATED = 'application_fee.refund.updated';
38
- const BALANCE_AVAILABLE = 'balance.available';
39
- const CHARGE_CAPTURED = 'charge.captured';
40
- const CHARGE_EXPIRED = 'charge.expired';
41
- const CHARGE_FAILED = 'charge.failed';
42
- const CHARGE_PENDING = 'charge.pending';
43
- const CHARGE_REFUNDED = 'charge.refunded';
44
- const CHARGE_SUCCEEDED = 'charge.succeeded';
45
- const CHARGE_UPDATED = 'charge.updated';
46
- const CHARGE_DISPUTE_CLOSED = 'charge.dispute.closed';
47
- const CHARGE_DISPUTE_CREATED = 'charge.dispute.created';
48
- const CHARGE_DISPUTE_FUNDS_REINSTATED = 'charge.dispute.funds_reinstated';
49
- const CHARGE_DISPUTE_FUNDS_WITHDRAWN = 'charge.dispute.funds_withdrawn';
50
- const CHARGE_DISPUTE_UPDATED = 'charge.dispute.updated';
51
- const CHARGE_REFUND_UPDATED = 'charge.refund.updated';
52
- const CHECKOUT_SESSION_COMPLETED = 'checkout.session.completed';
53
- const COUPON_CREATED = 'coupon.created';
54
- const COUPON_DELETED = 'coupon.deleted';
55
- const COUPON_UPDATED = 'coupon.updated';
56
- const CREDIT_NOTE_CREATED = 'credit_note.created';
57
- const CREDIT_NOTE_UPDATED = 'credit_note.updated';
58
- const CREDIT_NOTE_VOIDED = 'credit_note.voided';
59
- const CUSTOMER_CREATED = 'customer.created';
60
- const CUSTOMER_DELETED = 'customer.deleted';
61
- const CUSTOMER_UPDATED = 'customer.updated';
62
- const CUSTOMER_DISCOUNT_CREATED = 'customer.discount.created';
63
- const CUSTOMER_DISCOUNT_DELETED = 'customer.discount.deleted';
64
- const CUSTOMER_DISCOUNT_UPDATED = 'customer.discount.updated';
65
- const CUSTOMER_SOURCE_CREATED = 'customer.source.created';
66
- const CUSTOMER_SOURCE_DELETED = 'customer.source.deleted';
67
- const CUSTOMER_SOURCE_EXPIRING = 'customer.source.expiring';
68
- const CUSTOMER_SOURCE_UPDATED = 'customer.source.updated';
69
- const CUSTOMER_SUBSCRIPTION_CREATED = 'customer.subscription.created';
70
- const CUSTOMER_SUBSCRIPTION_DELETED = 'customer.subscription.deleted';
71
- const CUSTOMER_SUBSCRIPTION_TRIAL_WILL_END = 'customer.subscription.trial_will_end';
72
- const CUSTOMER_SUBSCRIPTION_UPDATED = 'customer.subscription.updated';
73
- const FILE_CREATED = 'file.created';
74
- const INVOICE_CREATED = 'invoice.created';
75
- const INVOICE_DELETED = 'invoice.deleted';
76
- const INVOICE_FINALIZED = 'invoice.finalized';
77
- const INVOICE_MARKED_UNCOLLECTIBLE = 'invoice.marked_uncollectible';
78
- const INVOICE_PAYMENT_ACTION_REQUIRED = 'invoice.payment_action_required';
79
- const INVOICE_PAYMENT_FAILED = 'invoice.payment_failed';
80
- const INVOICE_PAYMENT_SUCCEEDED = 'invoice.payment_succeeded';
81
- const INVOICE_SENT = 'invoice.sent';
82
- const INVOICE_UPCOMING = 'invoice.upcoming';
83
- const INVOICE_UPDATED = 'invoice.updated';
84
- const INVOICE_VOIDED = 'invoice.voided';
85
- const INVOICEITEM_CREATED = 'invoiceitem.created';
86
- const INVOICEITEM_DELETED = 'invoiceitem.deleted';
87
- const INVOICEITEM_UPDATED = 'invoiceitem.updated';
88
- const ISSUER_FRAUD_RECORD_CREATED = 'issuer_fraud_record.created';
89
- const ISSUING_AUTHORIZATION_CREATED = 'issuing_authorization.created';
90
- const ISSUING_AUTHORIZATION_REQUEST = 'issuing_authorization.request';
91
- const ISSUING_AUTHORIZATION_UPDATED = 'issuing_authorization.updated';
92
- const ISSUING_CARD_CREATED = 'issuing_card.created';
93
- const ISSUING_CARD_UPDATED = 'issuing_card.updated';
94
- const ISSUING_CARDHOLDER_CREATED = 'issuing_cardholder.created';
95
- const ISSUING_CARDHOLDER_UPDATED = 'issuing_cardholder.updated';
96
- const ISSUING_DISPUTE_CREATED = 'issuing_dispute.created';
97
- const ISSUING_DISPUTE_UPDATED = 'issuing_dispute.updated';
98
- const ISSUING_TRANSACTION_CREATED = 'issuing_transaction.created';
99
- const ISSUING_TRANSACTION_UPDATED = 'issuing_transaction.updated';
100
- const ORDER_CREATED = 'order.created';
101
- const ORDER_PAYMENT_FAILED = 'order.payment_failed';
102
- const ORDER_PAYMENT_SUCCEEDED = 'order.payment_succeeded';
103
- const ORDER_UPDATED = 'order.updated';
104
- const ORDER_RETURN_CREATED = 'order_return.created';
105
- const PAYMENT_INTENT_AMOUNT_CAPTURABLE_UPDATED = 'payment_intent.amount_capturable_updated';
106
- const PAYMENT_INTENT_CREATED = 'payment_intent.created';
107
- const PAYMENT_INTENT_PAYMENT_FAILED = 'payment_intent.payment_failed';
108
- const PAYMENT_INTENT_SUCCEEDED = 'payment_intent.succeeded';
109
- const PAYMENT_METHOD_ATTACHED = 'payment_method.attached';
 
110
  const PAYMENT_METHOD_CARD_AUTOMATICALLY_UPDATED = 'payment_method.card_automatically_updated';
111
- const PAYMENT_METHOD_DETACHED = 'payment_method.detached';
112
- const PAYMENT_METHOD_UPDATED = 'payment_method.updated';
113
- const PAYOUT_CANCELED = 'payout.canceled';
114
- const PAYOUT_CREATED = 'payout.created';
115
- const PAYOUT_FAILED = 'payout.failed';
116
- const PAYOUT_PAID = 'payout.paid';
117
- const PAYOUT_UPDATED = 'payout.updated';
118
- const PERSON_CREATED = 'person.created';
119
- const PERSON_DELETED = 'person.deleted';
120
- const PERSON_UPDATED = 'person.updated';
121
- const PING = 'ping';
122
- const PLAN_CREATED = 'plan.created';
123
- const PLAN_DELETED = 'plan.deleted';
124
- const PLAN_UPDATED = 'plan.updated';
125
- const PRODUCT_CREATED = 'product.created';
126
- const PRODUCT_DELETED = 'product.deleted';
127
- const PRODUCT_UPDATED = 'product.updated';
128
- const RECIPIENT_CREATED = 'recipient.created';
129
- const RECIPIENT_DELETED = 'recipient.deleted';
130
- const RECIPIENT_UPDATED = 'recipient.updated';
131
- const REPORTING_REPORT_RUN_FAILED = 'reporting.report_run.failed';
132
- const REPORTING_REPORT_RUN_SUCCEEDED = 'reporting.report_run.succeeded';
133
- const REPORTING_REPORT_TYPE_UPDATED = 'reporting.report_type.updated';
134
- const REVIEW_CLOSED = 'review.closed';
135
- const REVIEW_OPENED = 'review.opened';
136
- const SIGMA_SCHEDULED_QUERY_RUN_CREATED = 'sigma.scheduled_query_run.created';
137
- const SKU_CREATED = 'sku.created';
138
- const SKU_DELETED = 'sku.deleted';
139
- const SKU_UPDATED = 'sku.updated';
140
- const SOURCE_CANCELED = 'source.canceled';
141
- const SOURCE_CHARGEABLE = 'source.chargeable';
142
- const SOURCE_FAILED = 'source.failed';
143
- const SOURCE_MANDATE_NOTIFICATION = 'source.mandate_notification';
144
- const SOURCE_REFUND_ATTRIBUTES_REQUIRED = 'source.refund_attributes_required';
145
- const SOURCE_TRANSACTION_CREATED = 'source.transaction.created';
146
- const SOURCE_TRANSACTION_UPDATED = 'source.transaction.updated';
147
- const SUBSCRIPTION_SCHEDULE_ABORTED = 'subscription_schedule.aborted';
148
- const SUBSCRIPTION_SCHEDULE_CANCELED = 'subscription_schedule.canceled';
149
- const SUBSCRIPTION_SCHEDULE_COMPLETED = 'subscription_schedule.completed';
150
- const SUBSCRIPTION_SCHEDULE_CREATED = 'subscription_schedule.created';
151
- const SUBSCRIPTION_SCHEDULE_EXPIRING = 'subscription_schedule.expiring';
152
- const SUBSCRIPTION_SCHEDULE_RELEASED = 'subscription_schedule.released';
153
- const SUBSCRIPTION_SCHEDULE_UPDATED = 'subscription_schedule.updated';
154
- const TAX_RATE_CREATED = 'tax_rate.created';
155
- const TAX_RATE_UPDATED = 'tax_rate.updated';
156
- const TOPUP_CANCELED = 'topup.canceled';
157
- const TOPUP_CREATED = 'topup.created';
158
- const TOPUP_FAILED = 'topup.failed';
159
- const TOPUP_REVERSED = 'topup.reversed';
160
- const TOPUP_SUCCEEDED = 'topup.succeeded';
161
- const TRANSFER_CREATED = 'transfer.created';
162
- const TRANSFER_REVERSED = 'transfer.reversed';
163
- const TRANSFER_UPDATED = 'transfer.updated';
164
-
165
- use ApiOperations\All;
166
- use ApiOperations\Retrieve;
 
167
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * Events are our way of letting you know when something interesting happens in
7
+ * your account. When an interesting event occurs, we create a new
8
+ * <code>Event</code> object. For example, when a charge succeeds, we create a
9
+ * <code>charge.succeeded</code> event; and when an invoice payment attempt fails,
10
+ * we create an <code>invoice.payment_failed</code> event. Note that many API
11
+ * requests may cause multiple events to be created. For example, if you create a
12
+ * new subscription for a customer, you will receive both a
13
+ * <code>customer.subscription.created</code> event and a
14
+ * <code>charge.succeeded</code> event.
15
  *
16
+ * Events occur when the state of another API resource changes. The state of that
17
+ * resource at the time of the change is embedded in the event's data field. For
18
+ * example, a <code>charge.succeeded</code> event will contain a charge, and an
19
+ * <code>invoice.payment_failed</code> event will contain an invoice.
 
 
 
 
 
 
20
  *
21
+ * As with other API resources, you can use endpoints to retrieve an <a
22
+ * href="https://stripe.com/docs/api#retrieve_event">individual event</a> or a <a
23
+ * href="https://stripe.com/docs/api#list_events">list of events</a> from the API.
24
+ * We also have a separate <a
25
+ * href="http://en.wikipedia.org/wiki/Webhook">webhooks</a> system for sending the
26
+ * <code>Event</code> objects directly to an endpoint on your server. Webhooks are
27
+ * managed in your <a href="https://dashboard.stripe.com/account/webhooks'">account
28
+ * settings</a>, and our <a href="https://stripe.com/docs/webhooks">Using
29
+ * Webhooks</a> guide will help you get set up.
30
+ *
31
+ * When using <a href="https://stripe.com/docs/connect">Connect</a>, you can also
32
+ * receive notifications of events that occur in connected accounts. For these
33
+ * events, there will be an additional <code>account</code> attribute in the
34
+ * received <code>Event</code> object.
35
+ *
36
+ * <strong>NOTE:</strong> Right now, access to events through the <a
37
+ * href="https://stripe.com/docs/api#retrieve_event">Retrieve Event API</a> is
38
+ * guaranteed only for 30 days.
39
+ *
40
+ * @property string $id Unique identifier for the object.
41
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
42
+ * @property string $account The connected account that originated the event.
43
+ * @property null|string $api_version The Stripe API version used to render <code>data</code>. <em>Note: This property is populated only for events on or after October 31, 2014</em>.
44
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
45
+ * @property \Stripe\StripeObject $data
46
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
47
+ * @property int $pending_webhooks Number of webhooks that have yet to be successfully delivered (i.e., to return a 20x response) to the URLs you've specified.
48
+ * @property null|\Stripe\StripeObject $request Information on the API request that instigated the event.
49
+ * @property string $type Description of the event (e.g., <code>invoice.created</code> or <code>charge.refunded</code>).
50
  */
51
  class Event extends ApiResource
52
  {
53
+ const OBJECT_NAME = 'event';
54
+
55
+ use ApiOperations\All;
56
+ use ApiOperations\Retrieve;
57
 
58
  /**
59
  * Possible string representations of event types.
60
+ *
61
+ * @see https://stripe.com/docs/api#event_types
62
  */
63
+ const ACCOUNT_UPDATED = 'account.updated';
64
+ const ACCOUNT_APPLICATION_AUTHORIZED = 'account.application.authorized';
65
+ const ACCOUNT_APPLICATION_DEAUTHORIZED = 'account.application.deauthorized';
66
+ const ACCOUNT_EXTERNAL_ACCOUNT_CREATED = 'account.external_account.created';
67
+ const ACCOUNT_EXTERNAL_ACCOUNT_DELETED = 'account.external_account.deleted';
68
+ const ACCOUNT_EXTERNAL_ACCOUNT_UPDATED = 'account.external_account.updated';
69
+ const APPLICATION_FEE_CREATED = 'application_fee.created';
70
+ const APPLICATION_FEE_REFUNDED = 'application_fee.refunded';
71
+ const APPLICATION_FEE_REFUND_UPDATED = 'application_fee.refund.updated';
72
+ const BALANCE_AVAILABLE = 'balance.available';
73
+ const CHARGE_CAPTURED = 'charge.captured';
74
+ const CHARGE_EXPIRED = 'charge.expired';
75
+ const CHARGE_FAILED = 'charge.failed';
76
+ const CHARGE_PENDING = 'charge.pending';
77
+ const CHARGE_REFUNDED = 'charge.refunded';
78
+ const CHARGE_SUCCEEDED = 'charge.succeeded';
79
+ const CHARGE_UPDATED = 'charge.updated';
80
+ const CHARGE_DISPUTE_CLOSED = 'charge.dispute.closed';
81
+ const CHARGE_DISPUTE_CREATED = 'charge.dispute.created';
82
+ const CHARGE_DISPUTE_FUNDS_REINSTATED = 'charge.dispute.funds_reinstated';
83
+ const CHARGE_DISPUTE_FUNDS_WITHDRAWN = 'charge.dispute.funds_withdrawn';
84
+ const CHARGE_DISPUTE_UPDATED = 'charge.dispute.updated';
85
+ const CHARGE_REFUND_UPDATED = 'charge.refund.updated';
86
+ const CHECKOUT_SESSION_COMPLETED = 'checkout.session.completed';
87
+ const COUPON_CREATED = 'coupon.created';
88
+ const COUPON_DELETED = 'coupon.deleted';
89
+ const COUPON_UPDATED = 'coupon.updated';
90
+ const CREDIT_NOTE_CREATED = 'credit_note.created';
91
+ const CREDIT_NOTE_UPDATED = 'credit_note.updated';
92
+ const CREDIT_NOTE_VOIDED = 'credit_note.voided';
93
+ const CUSTOMER_CREATED = 'customer.created';
94
+ const CUSTOMER_DELETED = 'customer.deleted';
95
+ const CUSTOMER_UPDATED = 'customer.updated';
96
+ const CUSTOMER_DISCOUNT_CREATED = 'customer.discount.created';
97
+ const CUSTOMER_DISCOUNT_DELETED = 'customer.discount.deleted';
98
+ const CUSTOMER_DISCOUNT_UPDATED = 'customer.discount.updated';
99
+ const CUSTOMER_SOURCE_CREATED = 'customer.source.created';
100
+ const CUSTOMER_SOURCE_DELETED = 'customer.source.deleted';
101
+ const CUSTOMER_SOURCE_EXPIRING = 'customer.source.expiring';
102
+ const CUSTOMER_SOURCE_UPDATED = 'customer.source.updated';
103
+ const CUSTOMER_SUBSCRIPTION_CREATED = 'customer.subscription.created';
104
+ const CUSTOMER_SUBSCRIPTION_DELETED = 'customer.subscription.deleted';
105
+ const CUSTOMER_SUBSCRIPTION_TRIAL_WILL_END = 'customer.subscription.trial_will_end';
106
+ const CUSTOMER_SUBSCRIPTION_UPDATED = 'customer.subscription.updated';
107
+ const FILE_CREATED = 'file.created';
108
+ const INVOICE_CREATED = 'invoice.created';
109
+ const INVOICE_DELETED = 'invoice.deleted';
110
+ const INVOICE_FINALIZED = 'invoice.finalized';
111
+ const INVOICE_MARKED_UNCOLLECTIBLE = 'invoice.marked_uncollectible';
112
+ const INVOICE_PAYMENT_ACTION_REQUIRED = 'invoice.payment_action_required';
113
+ const INVOICE_PAYMENT_FAILED = 'invoice.payment_failed';
114
+ const INVOICE_PAYMENT_SUCCEEDED = 'invoice.payment_succeeded';
115
+ const INVOICE_SENT = 'invoice.sent';
116
+ const INVOICE_UPCOMING = 'invoice.upcoming';
117
+ const INVOICE_UPDATED = 'invoice.updated';
118
+ const INVOICE_VOIDED = 'invoice.voided';
119
+ const INVOICEITEM_CREATED = 'invoiceitem.created';
120
+ const INVOICEITEM_DELETED = 'invoiceitem.deleted';
121
+ const INVOICEITEM_UPDATED = 'invoiceitem.updated';
122
+ const ISSUER_FRAUD_RECORD_CREATED = 'issuer_fraud_record.created';
123
+ const ISSUING_AUTHORIZATION_CREATED = 'issuing_authorization.created';
124
+ const ISSUING_AUTHORIZATION_REQUEST = 'issuing_authorization.request';
125
+ const ISSUING_AUTHORIZATION_UPDATED = 'issuing_authorization.updated';
126
+ const ISSUING_CARD_CREATED = 'issuing_card.created';
127
+ const ISSUING_CARD_UPDATED = 'issuing_card.updated';
128
+ const ISSUING_CARDHOLDER_CREATED = 'issuing_cardholder.created';
129
+ const ISSUING_CARDHOLDER_UPDATED = 'issuing_cardholder.updated';
130
+ const ISSUING_DISPUTE_CREATED = 'issuing_dispute.created';
131
+ const ISSUING_DISPUTE_UPDATED = 'issuing_dispute.updated';
132
+ const ISSUING_TRANSACTION_CREATED = 'issuing_transaction.created';
133
+ const ISSUING_TRANSACTION_UPDATED = 'issuing_transaction.updated';
134
+ const ORDER_CREATED = 'order.created';
135
+ const ORDER_PAYMENT_FAILED = 'order.payment_failed';
136
+ const ORDER_PAYMENT_SUCCEEDED = 'order.payment_succeeded';
137
+ const ORDER_UPDATED = 'order.updated';
138
+ const ORDER_RETURN_CREATED = 'order_return.created';
139
+ const PAYMENT_INTENT_AMOUNT_CAPTURABLE_UPDATED = 'payment_intent.amount_capturable_updated';
140
+ const PAYMENT_INTENT_CANCELED = 'payment_intent.canceled';
141
+ const PAYMENT_INTENT_CREATED = 'payment_intent.created';
142
+ const PAYMENT_INTENT_PAYMENT_FAILED = 'payment_intent.payment_failed';
143
+ const PAYMENT_INTENT_SUCCEEDED = 'payment_intent.succeeded';
144
+ const PAYMENT_METHOD_ATTACHED = 'payment_method.attached';
145
  const PAYMENT_METHOD_CARD_AUTOMATICALLY_UPDATED = 'payment_method.card_automatically_updated';
146
+ const PAYMENT_METHOD_DETACHED = 'payment_method.detached';
147
+ const PAYMENT_METHOD_UPDATED = 'payment_method.updated';
148
+ const PAYOUT_CANCELED = 'payout.canceled';
149
+ const PAYOUT_CREATED = 'payout.created';
150
+ const PAYOUT_FAILED = 'payout.failed';
151
+ const PAYOUT_PAID = 'payout.paid';
152
+ const PAYOUT_UPDATED = 'payout.updated';
153
+ const PERSON_CREATED = 'person.created';
154
+ const PERSON_DELETED = 'person.deleted';
155
+ const PERSON_UPDATED = 'person.updated';
156
+ const PING = 'ping';
157
+ const PLAN_CREATED = 'plan.created';
158
+ const PLAN_DELETED = 'plan.deleted';
159
+ const PLAN_UPDATED = 'plan.updated';
160
+ const PRODUCT_CREATED = 'product.created';
161
+ const PRODUCT_DELETED = 'product.deleted';
162
+ const PRODUCT_UPDATED = 'product.updated';
163
+ const RECIPIENT_CREATED = 'recipient.created';
164
+ const RECIPIENT_DELETED = 'recipient.deleted';
165
+ const RECIPIENT_UPDATED = 'recipient.updated';
166
+ const REPORTING_REPORT_RUN_FAILED = 'reporting.report_run.failed';
167
+ const REPORTING_REPORT_RUN_SUCCEEDED = 'reporting.report_run.succeeded';
168
+ const REPORTING_REPORT_TYPE_UPDATED = 'reporting.report_type.updated';
169
+ const REVIEW_CLOSED = 'review.closed';
170
+ const REVIEW_OPENED = 'review.opened';
171
+ const SETUP_INTENT_CANCELED = 'setup_intent.canceled';
172
+ const SETUP_INTENT_CREATED = 'setup_intent.created';
173
+ const SETUP_INTENT_SETUP_FAILED = 'setup_intent.setup_failed';
174
+ const SETUP_INTENT_SUCCEEDED = 'setup_intent.succeeded';
175
+ const SIGMA_SCHEDULED_QUERY_RUN_CREATED = 'sigma.scheduled_query_run.created';
176
+ const SKU_CREATED = 'sku.created';
177
+ const SKU_DELETED = 'sku.deleted';
178
+ const SKU_UPDATED = 'sku.updated';
179
+ const SOURCE_CANCELED = 'source.canceled';
180
+ const SOURCE_CHARGEABLE = 'source.chargeable';
181
+ const SOURCE_FAILED = 'source.failed';
182
+ const SOURCE_MANDATE_NOTIFICATION = 'source.mandate_notification';
183
+ const SOURCE_REFUND_ATTRIBUTES_REQUIRED = 'source.refund_attributes_required';
184
+ const SOURCE_TRANSACTION_CREATED = 'source.transaction.created';
185
+ const SOURCE_TRANSACTION_UPDATED = 'source.transaction.updated';
186
+ const SUBSCRIPTION_SCHEDULE_ABORTED = 'subscription_schedule.aborted';
187
+ const SUBSCRIPTION_SCHEDULE_CANCELED = 'subscription_schedule.canceled';
188
+ const SUBSCRIPTION_SCHEDULE_COMPLETED = 'subscription_schedule.completed';
189
+ const SUBSCRIPTION_SCHEDULE_CREATED = 'subscription_schedule.created';
190
+ const SUBSCRIPTION_SCHEDULE_EXPIRING = 'subscription_schedule.expiring';
191
+ const SUBSCRIPTION_SCHEDULE_RELEASED = 'subscription_schedule.released';
192
+ const SUBSCRIPTION_SCHEDULE_UPDATED = 'subscription_schedule.updated';
193
+ const TAX_RATE_CREATED = 'tax_rate.created';
194
+ const TAX_RATE_UPDATED = 'tax_rate.updated';
195
+ const TOPUP_CANCELED = 'topup.canceled';
196
+ const TOPUP_CREATED = 'topup.created';
197
+ const TOPUP_FAILED = 'topup.failed';
198
+ const TOPUP_REVERSED = 'topup.reversed';
199
+ const TOPUP_SUCCEEDED = 'topup.succeeded';
200
+ const TRANSFER_CREATED = 'transfer.created';
201
+ const TRANSFER_REVERSED = 'transfer.reversed';
202
+ const TRANSFER_UPDATED = 'transfer.updated';
203
  }
lib/stripe-gateway/lib/Exception/ApiConnectionException.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception;
4
+
5
+ /**
6
+ * ApiConnection is thrown in the event that the SDK can't connect to Stripe's
7
+ * servers. That can be for a variety of different reasons from a downed
8
+ * network to a bad TLS certificate.
9
+ */
10
+ class ApiConnectionException extends ApiErrorException
11
+ {
12
+ }
lib/stripe-gateway/lib/Exception/ApiErrorException.php ADDED
@@ -0,0 +1,219 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception;
4
+
5
+ /**
6
+ * Implements properties and methods common to all (non-SPL) Stripe exceptions.
7
+ */
8
+ abstract class ApiErrorException extends \Exception implements ExceptionInterface
9
+ {
10
+ protected $error;
11
+ protected $httpBody;
12
+ protected $httpHeaders;
13
+ protected $httpStatus;
14
+ protected $jsonBody;
15
+ protected $requestId;
16
+ protected $stripeCode;
17
+
18
+ /**
19
+ * Creates a new API error exception.
20
+ *
21
+ * @param string $message the exception message
22
+ * @param null|int $httpStatus the HTTP status code
23
+ * @param null|string $httpBody the HTTP body as a string
24
+ * @param null|array $jsonBody the JSON deserialized body
25
+ * @param null|array|\Stripe\Util\CaseInsensitiveArray $httpHeaders the HTTP headers array
26
+ * @param null|string $stripeCode the Stripe error code
27
+ *
28
+ * @return static
29
+ */
30
+ public static function factory(
31
+ $message,
32
+ $httpStatus = null,
33
+ $httpBody = null,
34
+ $jsonBody = null,
35
+ $httpHeaders = null,
36
+ $stripeCode = null
37
+ ) {
38
+ $instance = new static($message);
39
+ $instance->setHttpStatus($httpStatus);
40
+ $instance->setHttpBody($httpBody);
41
+ $instance->setJsonBody($jsonBody);
42
+ $instance->setHttpHeaders($httpHeaders);
43
+ $instance->setStripeCode($stripeCode);
44
+
45
+ $instance->setRequestId(null);
46
+ if ($httpHeaders && isset($httpHeaders['Request-Id'])) {
47
+ $instance->setRequestId($httpHeaders['Request-Id']);
48
+ }
49
+
50
+ $instance->setError($instance->constructErrorObject());
51
+
52
+ return $instance;
53
+ }
54
+
55
+ /**
56
+ * Gets the Stripe error object.
57
+ *
58
+ * @return null|\Stripe\ErrorObject
59
+ */
60
+ public function getError()
61
+ {
62
+ return $this->error;
63
+ }
64
+
65
+ /**
66
+ * Sets the Stripe error object.
67
+ *
68
+ * @param null|\Stripe\ErrorObject $error
69
+ */
70
+ public function setError($error)
71
+ {
72
+ $this->error = $error;
73
+ }
74
+
75
+ /**
76
+ * Gets the HTTP body as a string.
77
+ *
78
+ * @return null|string
79
+ */
80
+ public function getHttpBody()
81
+ {
82
+ return $this->httpBody;
83
+ }
84
+
85
+ /**
86
+ * Sets the HTTP body as a string.
87
+ *
88
+ * @param null|string $httpBody
89
+ */
90
+ public function setHttpBody($httpBody)
91
+ {
92
+ $this->httpBody = $httpBody;
93
+ }
94
+
95
+ /**
96
+ * Gets the HTTP headers array.
97
+ *
98
+ * @return null|array|\Stripe\Util\CaseInsensitiveArray
99
+ */
100
+ public function getHttpHeaders()
101
+ {
102
+ return $this->httpHeaders;
103
+ }
104
+
105
+ /**
106
+ * Sets the HTTP headers array.
107
+ *
108
+ * @param null|array|\Stripe\Util\CaseInsensitiveArray $httpHeaders
109
+ */
110
+ public function setHttpHeaders($httpHeaders)
111
+ {
112
+ $this->httpHeaders = $httpHeaders;
113
+ }
114
+
115
+ /**
116
+ * Gets the HTTP status code.
117
+ *
118
+ * @return null|int
119
+ */
120
+ public function getHttpStatus()
121
+ {
122
+ return $this->httpStatus;
123
+ }
124
+
125
+ /**
126
+ * Sets the HTTP status code.
127
+ *
128
+ * @param null|int $httpStatus
129
+ */
130
+ public function setHttpStatus($httpStatus)
131
+ {
132
+ $this->httpStatus = $httpStatus;
133
+ }
134
+
135
+ /**
136
+ * Gets the JSON deserialized body.
137
+ *
138
+ * @return null|array<string, mixed>
139
+ */
140
+ public function getJsonBody()
141
+ {
142
+ return $this->jsonBody;
143
+ }
144
+
145
+ /**
146
+ * Sets the JSON deserialized body.
147
+ *
148
+ * @param null|array<string, mixed> $jsonBody
149
+ */
150
+ public function setJsonBody($jsonBody)
151
+ {
152
+ $this->jsonBody = $jsonBody;
153
+ }
154
+
155
+ /**
156
+ * Gets the Stripe request ID.
157
+ *
158
+ * @return null|string
159
+ */
160
+ public function getRequestId()
161
+ {
162
+ return $this->requestId;
163
+ }
164
+
165
+ /**
166
+ * Sets the Stripe request ID.
167
+ *
168
+ * @param null|string $requestId
169
+ */
170
+ public function setRequestId($requestId)
171
+ {
172
+ $this->requestId = $requestId;
173
+ }
174
+
175
+ /**
176
+ * Gets the Stripe error code.
177
+ *
178
+ * Cf. the `CODE_*` constants on {@see \Stripe\ErrorObject} for possible
179
+ * values.
180
+ *
181
+ * @return null|string
182
+ */
183
+ public function getStripeCode()
184
+ {
185
+ return $this->stripeCode;
186
+ }
187
+
188
+ /**
189
+ * Sets the Stripe error code.
190
+ *
191
+ * @param null|string $stripeCode
192
+ */
193
+ public function setStripeCode($stripeCode)
194
+ {
195
+ $this->stripeCode = $stripeCode;
196
+ }
197
+
198
+ /**
199
+ * Returns the string representation of the exception.
200
+ *
201
+ * @return string
202
+ */
203
+ public function __toString()
204
+ {
205
+ $statusStr = (null === $this->getHttpStatus()) ? '' : "(Status {$this->getHttpStatus()}) ";
206
+ $idStr = (null === $this->getRequestId()) ? '' : "(Request {$this->getRequestId()}) ";
207
+
208
+ return "{$statusStr}{$idStr}{$this->getMessage()}";
209
+ }
210
+
211
+ protected function constructErrorObject()
212
+ {
213
+ if (null === $this->jsonBody || !\array_key_exists('error', $this->jsonBody)) {
214
+ return null;
215
+ }
216
+
217
+ return \Stripe\ErrorObject::constructFrom($this->jsonBody['error']);
218
+ }
219
+ }
lib/stripe-gateway/lib/Exception/AuthenticationException.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception;
4
+
5
+ /**
6
+ * AuthenticationException is thrown when invalid credentials are used to
7
+ * connect to Stripe's servers.
8
+ */
9
+ class AuthenticationException extends ApiErrorException
10
+ {
11
+ }
lib/stripe-gateway/lib/Exception/BadMethodCallException.php ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception;
4
+
5
+ class BadMethodCallException extends \BadMethodCallException implements ExceptionInterface
6
+ {
7
+ }
lib/stripe-gateway/lib/Exception/CardException.php ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception;
4
+
5
+ /**
6
+ * CardException is thrown when a user enters a card that can't be charged for
7
+ * some reason.
8
+ */
9
+ class CardException extends ApiErrorException
10
+ {
11
+ protected $declineCode;
12
+ protected $stripeParam;
13
+
14
+ /**
15
+ * Creates a new CardException exception.
16
+ *
17
+ * @param string $message the exception message
18
+ * @param null|int $httpStatus the HTTP status code
19
+ * @param null|string $httpBody the HTTP body as a string
20
+ * @param null|array $jsonBody the JSON deserialized body
21
+ * @param null|array|\Stripe\Util\CaseInsensitiveArray $httpHeaders the HTTP headers array
22
+ * @param null|string $stripeCode the Stripe error code
23
+ * @param null|string $declineCode the decline code
24
+ * @param null|string $stripeParam the parameter related to the error
25
+ *
26
+ * @return CardException
27
+ */
28
+ public static function factory(
29
+ $message,
30
+ $httpStatus = null,
31
+ $httpBody = null,
32
+ $jsonBody = null,
33
+ $httpHeaders = null,
34
+ $stripeCode = null,
35
+ $declineCode = null,
36
+ $stripeParam = null
37
+ ) {
38
+ $instance = parent::factory($message, $httpStatus, $httpBody, $jsonBody, $httpHeaders, $stripeCode);
39
+ $instance->setDeclineCode($declineCode);
40
+ $instance->setStripeParam($stripeParam);
41
+
42
+ return $instance;
43
+ }
44
+
45
+ /**
46
+ * Gets the decline code.
47
+ *
48
+ * @return null|string
49
+ */
50
+ public function getDeclineCode()
51
+ {
52
+ return $this->declineCode;
53
+ }
54
+
55
+ /**
56
+ * Sets the decline code.
57
+ *
58
+ * @param null|string $declineCode
59
+ */
60
+ public function setDeclineCode($declineCode)
61
+ {
62
+ $this->declineCode = $declineCode;
63
+ }
64
+
65
+ /**
66
+ * Gets the parameter related to the error.
67
+ *
68
+ * @return null|string
69
+ */
70
+ public function getStripeParam()
71
+ {
72
+ return $this->stripeParam;
73
+ }
74
+
75
+ /**
76
+ * Sets the parameter related to the error.
77
+ *
78
+ * @param null|string $stripeParam
79
+ */
80
+ public function setStripeParam($stripeParam)
81
+ {
82
+ $this->stripeParam = $stripeParam;
83
+ }
84
+ }
lib/stripe-gateway/lib/Exception/ExceptionInterface.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception;
4
+
5
+ // TODO: remove this check once we drop support for PHP 5
6
+ if (\interface_exists(\Throwable::class, false)) {
7
+ /**
8
+ * The base interface for all Stripe exceptions.
9
+ */
10
+ interface ExceptionInterface extends \Throwable
11
+ {
12
+ }
13
+ } else {
14
+ /**
15
+ * The base interface for all Stripe exceptions.
16
+ */
17
+ // phpcs:disable PSR1.Classes.ClassDeclaration.MultipleClasses
18
+ interface ExceptionInterface
19
+ {
20
+ }
21
+ // phpcs:enable
22
+ }
lib/stripe-gateway/lib/Exception/IdempotencyException.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception;
4
+
5
+ /**
6
+ * IdempotencyException is thrown in cases where an idempotency key was used
7
+ * improperly.
8
+ */
9
+ class IdempotencyException extends ApiErrorException
10
+ {
11
+ }
lib/stripe-gateway/lib/Exception/InvalidArgumentException.php ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception;
4
+
5
+ class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
6
+ {
7
+ }
lib/stripe-gateway/lib/Exception/InvalidRequestException.php ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception;
4
+
5
+ /**
6
+ * InvalidRequestException is thrown when a request is initiated with invalid
7
+ * parameters.
8
+ */
9
+ class InvalidRequestException extends ApiErrorException
10
+ {
11
+ protected $stripeParam;
12
+
13
+ /**
14
+ * Creates a new InvalidRequestException exception.
15
+ *
16
+ * @param string $message the exception message
17
+ * @param null|int $httpStatus the HTTP status code
18
+ * @param null|string $httpBody the HTTP body as a string
19
+ * @param null|array $jsonBody the JSON deserialized body
20
+ * @param null|array|\Stripe\Util\CaseInsensitiveArray $httpHeaders the HTTP headers array
21
+ * @param null|string $stripeCode the Stripe error code
22
+ * @param null|string $stripeParam the parameter related to the error
23
+ *
24
+ * @return InvalidRequestException
25
+ */
26
+ public static function factory(
27
+ $message,
28
+ $httpStatus = null,
29
+ $httpBody = null,
30
+ $jsonBody = null,
31
+ $httpHeaders = null,
32
+ $stripeCode = null,
33
+ $stripeParam = null
34
+ ) {
35
+ $instance = parent::factory($message, $httpStatus, $httpBody, $jsonBody, $httpHeaders, $stripeCode);
36
+ $instance->setStripeParam($stripeParam);
37
+
38
+ return $instance;
39
+ }
40
+
41
+ /**
42
+ * Gets the parameter related to the error.
43
+ *
44
+ * @return null|string
45
+ */
46
+ public function getStripeParam()
47
+ {
48
+ return $this->stripeParam;
49
+ }
50
+
51
+ /**
52
+ * Sets the parameter related to the error.
53
+ *
54
+ * @param null|string $stripeParam
55
+ */
56
+ public function setStripeParam($stripeParam)
57
+ {
58
+ $this->stripeParam = $stripeParam;
59
+ }
60
+ }
lib/stripe-gateway/lib/Exception/OAuth/ExceptionInterface.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception\OAuth;
4
+
5
+ /**
6
+ * The base interface for all Stripe OAuth exceptions.
7
+ */
8
+ interface ExceptionInterface extends \Stripe\Exception\ExceptionInterface
9
+ {
10
+ }
lib/stripe-gateway/lib/Exception/OAuth/InvalidClientException.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception\OAuth;
4
+
5
+ /**
6
+ * InvalidClientException is thrown when the client_id does not belong to you,
7
+ * the stripe_user_id does not exist or is not connected to your application,
8
+ * or the API key mode (live or test mode) does not match the client_id mode.
9
+ */
10
+ class InvalidClientException extends OAuthErrorException
11
+ {
12
+ }
lib/stripe-gateway/lib/Exception/OAuth/InvalidGrantException.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception\OAuth;
4
+
5
+ /**
6
+ * InvalidGrantException is thrown when a specified code doesn't exist, is
7
+ * expired, has been used, or doesn't belong to you; a refresh token doesn't
8
+ * exist, or doesn't belong to you; or if an API key's mode (live or test)
9
+ * doesn't match the mode of a code or refresh token.
10
+ */
11
+ class InvalidGrantException extends OAuthErrorException
12
+ {
13
+ }
lib/stripe-gateway/lib/Exception/OAuth/InvalidRequestException.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception\OAuth;
4
+
5
+ /**
6
+ * InvalidRequestException is thrown when a code, refresh token, or grant
7
+ * type parameter is not provided, but was required.
8
+ */
9
+ class InvalidRequestException extends OAuthErrorException
10
+ {
11
+ }
lib/stripe-gateway/lib/Exception/OAuth/InvalidScopeException.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception\OAuth;
4
+
5
+ /**
6
+ * InvalidScopeException is thrown when an invalid scope parameter is provided.
7
+ */
8
+ class InvalidScopeException extends OAuthErrorException
9
+ {
10
+ }
lib/stripe-gateway/lib/Exception/OAuth/OAuthErrorException.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception\OAuth;
4
+
5
+ /**
6
+ * Implements properties and methods common to all (non-SPL) Stripe OAuth
7
+ * exceptions.
8
+ */
9
+ abstract class OAuthErrorException extends \Stripe\Exception\ApiErrorException
10
+ {
11
+ protected function constructErrorObject()
12
+ {
13
+ if (null === $this->jsonBody) {
14
+ return null;
15
+ }
16
+
17
+ return \Stripe\OAuthErrorObject::constructFrom($this->jsonBody);
18
+ }
19
+ }
lib/stripe-gateway/lib/Exception/OAuth/UnknownOAuthErrorException.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception\OAuth;
4
+
5
+ /**
6
+ * UnknownApiErrorException is thrown when the client library receives an
7
+ * error from the OAuth API it doesn't know about. Receiving this error usually
8
+ * means that your client library is outdated and should be upgraded.
9
+ */
10
+ class UnknownOAuthErrorException extends OAuthErrorException
11
+ {
12
+ }
lib/stripe-gateway/lib/Exception/OAuth/UnsupportedGrantTypeException.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception\OAuth;
4
+
5
+ /**
6
+ * UnsupportedGrantTypeException is thrown when an unuspported grant type
7
+ * parameter is specified.
8
+ */
9
+ class UnsupportedGrantTypeException extends OAuthErrorException
10
+ {
11
+ }
lib/stripe-gateway/lib/Exception/OAuth/UnsupportedResponseTypeException.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception\OAuth;
4
+
5
+ /**
6
+ * UnsupportedResponseTypeException is thrown when an unsupported response type
7
+ * parameter is specified.
8
+ */
9
+ class UnsupportedResponseTypeException extends OAuthErrorException
10
+ {
11
+ }
lib/stripe-gateway/lib/Exception/PermissionException.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception;
4
+
5
+ /**
6
+ * PermissionException is thrown in cases where access was attempted on a
7
+ * resource that wasn't allowed.
8
+ */
9
+ class PermissionException extends ApiErrorException
10
+ {
11
+ }
lib/stripe-gateway/lib/Exception/RateLimitException.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception;
4
+
5
+ /**
6
+ * RateLimitException is thrown in cases where an account is putting too much
7
+ * load on Stripe's API servers (usually by performing too many requests).
8
+ * Please back off on request rate.
9
+ */
10
+ class RateLimitException extends InvalidRequestException
11
+ {
12
+ }
lib/stripe-gateway/lib/Exception/SignatureVerificationException.php ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception;
4
+
5
+ /**
6
+ * SignatureVerificationException is thrown when the signature verification for
7
+ * a webhook fails.
8
+ */
9
+ class SignatureVerificationException extends \Exception implements ExceptionInterface
10
+ {
11
+ protected $httpBody;
12
+ protected $sigHeader;
13
+
14
+ /**
15
+ * Creates a new SignatureVerificationException exception.
16
+ *
17
+ * @param string $message the exception message
18
+ * @param null|string $httpBody the HTTP body as a string
19
+ * @param null|string $sigHeader the `Stripe-Signature` HTTP header
20
+ *
21
+ * @return SignatureVerificationException
22
+ */
23
+ public static function factory(
24
+ $message,
25
+ $httpBody = null,
26
+ $sigHeader = null
27
+ ) {
28
+ $instance = new static($message);
29
+ $instance->setHttpBody($httpBody);
30
+ $instance->setSigHeader($sigHeader);
31
+
32
+ return $instance;
33
+ }
34
+
35
+ /**
36
+ * Gets the HTTP body as a string.
37
+ *
38
+ * @return null|string
39
+ */
40
+ public function getHttpBody()
41
+ {
42
+ return $this->httpBody;
43
+ }
44
+
45
+ /**
46
+ * Sets the HTTP body as a string.
47
+ *
48
+ * @param null|string $httpBody
49
+ */
50
+ public function setHttpBody($httpBody)
51
+ {
52
+ $this->httpBody = $httpBody;
53
+ }
54
+
55
+ /**
56
+ * Gets the `Stripe-Signature` HTTP header.
57
+ *
58
+ * @return null|string
59
+ */
60
+ public function getSigHeader()
61
+ {
62
+ return $this->sigHeader;
63
+ }
64
+
65
+ /**
66
+ * Sets the `Stripe-Signature` HTTP header.
67
+ *
68
+ * @param null|string $sigHeader
69
+ */
70
+ public function setSigHeader($sigHeader)
71
+ {
72
+ $this->sigHeader = $sigHeader;
73
+ }
74
+ }
lib/stripe-gateway/lib/Exception/UnexpectedValueException.php ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception;
4
+
5
+ class UnexpectedValueException extends \UnexpectedValueException implements ExceptionInterface
6
+ {
7
+ }
lib/stripe-gateway/lib/Exception/UnknownApiErrorException.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe\Exception;
4
+
5
+ /**
6
+ * UnknownApiErrorException is thrown when the client library receives an
7
+ * error from the API it doesn't know about. Receiving this error usually
8
+ * means that your client library is outdated and should be upgraded.
9
+ */
10
+ class UnknownApiErrorException extends ApiErrorException
11
+ {
12
+ }
lib/stripe-gateway/lib/ExchangeRate.php CHANGED
@@ -3,13 +3,25 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class ExchangeRate
 
 
 
 
7
  *
8
- * @package Stripe
 
 
 
 
 
 
 
 
9
  */
10
  class ExchangeRate extends ApiResource
11
  {
12
- const OBJECT_NAME = "exchange_rate";
13
 
14
  use ApiOperations\All;
15
  use ApiOperations\Retrieve;
3
  namespace Stripe;
4
 
5
  /**
6
+ * <code>Exchange Rate</code> objects allow you to determine the rates that Stripe
7
+ * is currently using to convert from one currency to another. Since this number is
8
+ * variable throughout the day, there are various reasons why you might want to
9
+ * know the current rate (for example, to dynamically price an item for a user with
10
+ * a default payment in a foreign currency).
11
  *
12
+ * If you want a guarantee that the charge is made with a certain exchange rate you
13
+ * expect is current, you can pass in <code>exchange_rate</code> to charges
14
+ * endpoints. If the value is no longer up to date, the charge won't go through.
15
+ * Please refer to our <a href="https://stripe.com/docs/exchange-rates">Exchange
16
+ * Rates API</a> guide for more details.
17
+ *
18
+ * @property string $id Unique identifier for the object. Represented as the three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a> in lowercase.
19
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
20
+ * @property \Stripe\StripeObject $rates Hash where the keys are supported currencies and the values are the exchange rate at which the base id currency converts to the key currency.
21
  */
22
  class ExchangeRate extends ApiResource
23
  {
24
+ const OBJECT_NAME = 'exchange_rate';
25
 
26
  use ApiOperations\All;
27
  use ApiOperations\Retrieve;
lib/stripe-gateway/lib/File.php CHANGED
@@ -3,35 +3,43 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class File
 
 
 
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $created
11
- * @property string $filename
12
- * @property Collection $links
13
- * @property string $purpose
14
- * @property int $size
15
- * @property string $title
16
- * @property string $type
17
- * @property string $url
18
  *
19
- * @package Stripe
 
 
 
 
 
 
 
 
 
20
  */
21
  class File extends ApiResource
22
  {
 
 
 
 
 
23
  // This resource can have two different object names. In latter API
24
  // versions, only `file` is used, but since stripe-php may be used with
25
  // any API version, we need to support deserializing the older
26
  // `file_upload` object into the same class.
27
- const OBJECT_NAME = "file";
28
- const OBJECT_NAME_ALT = "file_upload";
29
 
30
- use ApiOperations\All;
31
  use ApiOperations\Create {
32
  create as protected _create;
33
  }
34
- use ApiOperations\Retrieve;
35
 
36
  public static function classUrl()
37
  {
@@ -39,24 +47,23 @@ class File extends ApiResource
39
  }
40
 
41
  /**
42
- * @param array|null $params
43
- * @param array|string|null $options
 
 
44
  *
45
- * @return \Stripe\File The created resource.
46
  */
47
- public static function create($params = null, $options = null)
48
  {
49
- $opts = \Stripe\Util\RequestOptions::parse($options);
50
- if (is_null($opts->apiBase)) {
51
  $opts->apiBase = Stripe::$apiUploadBase;
52
  }
53
  // Manually flatten params, otherwise curl's multipart encoder will
54
  // choke on nested arrays.
55
- // TODO: use array_column() once we drop support for PHP 5.4
56
- $flatParams = [];
57
- foreach (\Stripe\Util\Util::flattenParams($params) as $pair) {
58
- $flatParams[$pair[0]] = $pair[1];
59
- }
60
  return static::_create($flatParams, $opts);
61
  }
62
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * This is an object representing a file hosted on Stripe's servers. The file may
7
+ * have been uploaded by yourself using the <a
8
+ * href="https://stripe.com/docs/api#create_file">create file</a> request (for
9
+ * example, when uploading dispute evidence) or it may have been created by Stripe
10
+ * (for example, the results of a <a href="#scheduled_queries">Sigma scheduled
11
+ * query</a>).
12
  *
13
+ * Related guide: <a href="https://stripe.com/docs/file-upload">File Upload
14
+ * Guide</a>.
 
 
 
 
 
 
 
 
15
  *
16
+ * @property string $id Unique identifier for the object.
17
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
18
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
19
+ * @property null|string $filename A filename for the file, suitable for saving to a filesystem.
20
+ * @property null|\Stripe\Collection $links A list of <a href="https://stripe.com/docs/api#file_links">file links</a> that point at this file.
21
+ * @property string $purpose The purpose of the file. Possible values are <code>additional_verification</code>, <code>business_icon</code>, <code>business_logo</code>, <code>customer_signature</code>, <code>dispute_evidence</code>, <code>finance_report_run</code>, <code>identity_document</code>, <code>pci_document</code>, <code>sigma_scheduled_query</code>, or <code>tax_document_user_upload</code>.
22
+ * @property int $size The size in bytes of the file object.
23
+ * @property null|string $title A user friendly title for the document.
24
+ * @property null|string $type The type of the file returned (e.g., <code>csv</code>, <code>pdf</code>, <code>jpg</code>, or <code>png</code>).
25
+ * @property null|string $url The URL from which the file can be downloaded using your live secret API key.
26
  */
27
  class File extends ApiResource
28
  {
29
+ const OBJECT_NAME = 'file';
30
+
31
+ use ApiOperations\All;
32
+ use ApiOperations\Retrieve;
33
+
34
  // This resource can have two different object names. In latter API
35
  // versions, only `file` is used, but since stripe-php may be used with
36
  // any API version, we need to support deserializing the older
37
  // `file_upload` object into the same class.
38
+ const OBJECT_NAME_ALT = 'file_upload';
 
39
 
 
40
  use ApiOperations\Create {
41
  create as protected _create;
42
  }
 
43
 
44
  public static function classUrl()
45
  {
47
  }
48
 
49
  /**
50
+ * @param null|array $params
51
+ * @param null|array|string $opts
52
+ *
53
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
54
  *
55
+ * @return \Stripe\File the created file
56
  */
57
+ public static function create($params = null, $opts = null)
58
  {
59
+ $opts = \Stripe\Util\RequestOptions::parse($opts);
60
+ if (null === $opts->apiBase) {
61
  $opts->apiBase = Stripe::$apiUploadBase;
62
  }
63
  // Manually flatten params, otherwise curl's multipart encoder will
64
  // choke on nested arrays.
65
+ $flatParams = \array_column(\Stripe\Util\Util::flattenParams($params), 1, 0);
66
+
 
 
 
67
  return static::_create($flatParams, $opts);
68
  }
69
  }
lib/stripe-gateway/lib/FileLink.php CHANGED
@@ -3,23 +3,23 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class FileLink
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $created
11
- * @property bool $expired
12
- * @property int $expires_at
13
- * @property string $file
14
- * @property bool $livemode
15
- * @property StripeObject $metadata
16
- * @property string $url
17
- *
18
- * @package Stripe
19
  */
20
  class FileLink extends ApiResource
21
  {
22
- const OBJECT_NAME = "file_link";
23
 
24
  use ApiOperations\All;
25
  use ApiOperations\Create;
3
  namespace Stripe;
4
 
5
  /**
6
+ * To share the contents of a <code>File</code> object with non-Stripe users, you
7
+ * can create a <code>FileLink</code>. <code>FileLink</code>s contain a URL that
8
+ * can be used to retrieve the contents of the file without authentication.
9
  *
10
+ * @property string $id Unique identifier for the object.
11
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
12
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
13
+ * @property bool $expired Whether this link is already expired.
14
+ * @property null|int $expires_at Time at which the link expires.
15
+ * @property string|\Stripe\File $file The file object this link points to.
16
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
17
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
18
+ * @property null|string $url The publicly accessible URL to download the file.
 
 
19
  */
20
  class FileLink extends ApiResource
21
  {
22
+ const OBJECT_NAME = 'file_link';
23
 
24
  use ApiOperations\All;
25
  use ApiOperations\Create;
lib/stripe-gateway/lib/HttpClient/ClientInterface.php CHANGED
@@ -9,13 +9,14 @@ interface ClientInterface
9
  * @param string $absUrl The URL being requested, including domain and protocol
10
  * @param array $headers Headers to be used in the request (full strings, not KV pairs)
11
  * @param array $params KV pairs for parameters. Can be nested for arrays and hashes
12
- * @param boolean $hasFile Whether or not $params references a file (via an @ prefix or
13
- * CurlFile)
14
  *
15
- * @throws \Stripe\Error\Api
16
- * @throws \Stripe\Error\ApiConnection
17
- * @return array An array whose first element is raw request body, second
18
- * element is HTTP status code and third array of HTTP headers.
 
19
  */
20
  public function request($method, $absUrl, $headers, $params, $hasFile);
21
  }
9
  * @param string $absUrl The URL being requested, including domain and protocol
10
  * @param array $headers Headers to be used in the request (full strings, not KV pairs)
11
  * @param array $params KV pairs for parameters. Can be nested for arrays and hashes
12
+ * @param bool $hasFile Whether or not $params references a file (via an @ prefix or
13
+ * CURLFile)
14
  *
15
+ * @throws \Stripe\Exception\ApiConnectionException
16
+ * @throws \Stripe\Exception\UnexpectedValueException
17
+ *
18
+ * @return array an array whose first element is raw request body, second
19
+ * element is HTTP status code and third array of HTTP headers
20
  */
21
  public function request($method, $absUrl, $headers, $params, $hasFile);
22
  }
lib/stripe-gateway/lib/HttpClient/CurlClient.php CHANGED
@@ -2,28 +2,26 @@
2
 
3
  namespace Stripe\HttpClient;
4
 
 
5
  use Stripe\Stripe;
6
- use Stripe\Error;
7
  use Stripe\Util;
8
 
9
- // cURL constants are not defined in PHP < 5.5
10
-
11
  // @codingStandardsIgnoreStart
12
  // PSR2 requires all constants be upper case. Sadly, the CURL_SSLVERSION
13
  // constants do not abide by those rules.
14
 
15
- // Note the values 1 and 6 come from their position in the enum that
16
  // defines them in cURL's source code.
17
- if (!defined('CURL_SSLVERSION_TLSv1')) {
18
- define('CURL_SSLVERSION_TLSv1', 1);
19
- }
20
- if (!defined('CURL_SSLVERSION_TLSv1_2')) {
21
- define('CURL_SSLVERSION_TLSv1_2', 6);
22
  }
23
  // @codingStandardsIgnoreEnd
24
 
25
- if (!defined('CURL_HTTP_VERSION_2TLS')) {
26
- define('CURL_HTTP_VERSION_2TLS', 4);
 
27
  }
28
 
29
  class CurlClient implements ClientInterface
@@ -35,18 +33,24 @@ class CurlClient implements ClientInterface
35
  if (!self::$instance) {
36
  self::$instance = new self();
37
  }
 
38
  return self::$instance;
39
  }
40
 
41
  protected $defaultOptions;
42
 
 
 
 
43
  protected $userAgentInfo;
44
 
45
- protected $enablePersistentConnections = null;
 
 
46
 
47
- protected $enableHttp2 = null;
48
 
49
- protected $curlHandle = null;
50
 
51
  /**
52
  * CurlClient constructor.
@@ -59,7 +63,8 @@ class CurlClient implements ClientInterface
59
  * Note that request() will silently ignore a non-callable, non-array $defaultOptions, and will
60
  * throw an exception if $defaultOptions returns a non-array value.
61
  *
62
- * @param array|callable|null $defaultOptions
 
63
  */
64
  public function __construct($defaultOptions = null, $randomGenerator = null)
65
  {
@@ -67,10 +72,6 @@ class CurlClient implements ClientInterface
67
  $this->randomGenerator = $randomGenerator ?: new Util\RandomGenerator();
68
  $this->initUserAgentInfo();
69
 
70
- // TODO: curl_reset requires PHP >= 5.5.0. Once we drop support for PHP 5.4, we can simply
71
- // initialize this to true.
72
- $this->enablePersistentConnections = function_exists('curl_reset');
73
-
74
  $this->enableHttp2 = $this->canSafelyUseHttp2();
75
  }
76
 
@@ -81,9 +82,9 @@ class CurlClient implements ClientInterface
81
 
82
  public function initUserAgentInfo()
83
  {
84
- $curlVersion = curl_version();
85
  $this->userAgentInfo = [
86
- 'httplib' => 'curl ' . $curlVersion['version'],
87
  'ssllib' => $curlVersion['ssl_version'],
88
  ];
89
  }
@@ -99,7 +100,7 @@ class CurlClient implements ClientInterface
99
  }
100
 
101
  /**
102
- * @return boolean
103
  */
104
  public function getEnablePersistentConnections()
105
  {
@@ -107,7 +108,7 @@ class CurlClient implements ClientInterface
107
  }
108
 
109
  /**
110
- * @param boolean $enable
111
  */
112
  public function setEnablePersistentConnections($enable)
113
  {
@@ -115,7 +116,7 @@ class CurlClient implements ClientInterface
115
  }
116
 
117
  /**
118
- * @return boolean
119
  */
120
  public function getEnableHttp2()
121
  {
@@ -123,13 +124,41 @@ class CurlClient implements ClientInterface
123
  }
124
 
125
  /**
126
- * @param boolean $enable
127
  */
128
  public function setEnableHttp2($enable)
129
  {
130
  $this->enableHttp2 = $enable;
131
  }
132
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  // USER DEFINED TIMEOUTS
134
 
135
  const DEFAULT_TIMEOUT = 80;
@@ -140,13 +169,15 @@ class CurlClient implements ClientInterface
140
 
141
  public function setTimeout($seconds)
142
  {
143
- $this->timeout = (int) max($seconds, 0);
 
144
  return $this;
145
  }
146
 
147
  public function setConnectTimeout($seconds)
148
  {
149
- $this->connectTimeout = (int) max($seconds, 0);
 
150
  return $this;
151
  }
152
 
@@ -164,64 +195,52 @@ class CurlClient implements ClientInterface
164
 
165
  public function request($method, $absUrl, $headers, $params, $hasFile)
166
  {
167
- $method = strtolower($method);
168
 
169
  $opts = [];
170
- if (is_callable($this->defaultOptions)) { // call defaultOptions callback, set options to return value
171
- $opts = call_user_func_array($this->defaultOptions, func_get_args());
172
- if (!is_array($opts)) {
173
- throw new Error\Api("Non-array value returned by defaultOptions CurlClient callback");
174
  }
175
- } elseif (is_array($this->defaultOptions)) { // set default curlopts from array
176
  $opts = $this->defaultOptions;
177
  }
178
 
179
  $params = Util\Util::objectsToIds($params);
180
 
181
- if ($method == 'get') {
182
  if ($hasFile) {
183
- throw new Error\Api(
184
- "Issuing a GET request with a file parameter"
185
  );
186
  }
187
- $opts[CURLOPT_HTTPGET] = 1;
188
- if (count($params) > 0) {
189
  $encoded = Util\Util::encodeParameters($params);
190
- $absUrl = "$absUrl?$encoded";
191
  }
192
- } elseif ($method == 'post') {
193
- $opts[CURLOPT_POST] = 1;
194
- $opts[CURLOPT_POSTFIELDS] = $hasFile ? $params : Util\Util::encodeParameters($params);
195
- } elseif ($method == 'delete') {
196
- $opts[CURLOPT_CUSTOMREQUEST] = 'DELETE';
197
- if (count($params) > 0) {
198
  $encoded = Util\Util::encodeParameters($params);
199
- $absUrl = "$absUrl?$encoded";
200
  }
201
  } else {
202
- throw new Error\Api("Unrecognized method $method");
203
  }
204
 
205
  // It is only safe to retry network failures on POST requests if we
206
  // add an Idempotency-Key header
207
- if (($method == 'post') && (Stripe::$maxNetworkRetries > 0)) {
208
- if (!$this->hasHeader($headers, "Idempotency-Key")) {
209
- array_push($headers, 'Idempotency-Key: ' . $this->randomGenerator->uuid());
210
  }
211
  }
212
 
213
- // Create a callback to capture HTTP headers for the response
214
- $rheaders = new Util\CaseInsensitiveArray();
215
- $headerCallback = function ($curl, $header_line) use (&$rheaders) {
216
- // Ignore the HTTP request line (HTTP/1.1 200 OK)
217
- if (strpos($header_line, ":") === false) {
218
- return strlen($header_line);
219
- }
220
- list($key, $value) = explode(":", trim($header_line), 2);
221
- $rheaders[trim($key)] = trim($value);
222
- return strlen($header_line);
223
- };
224
-
225
  // By default for large request body sizes (> 1024 bytes), cURL will
226
  // send a request without a body and with a `Expect: 100-continue`
227
  // header, which gives the server a chance to respond with an error
@@ -234,69 +253,94 @@ class CurlClient implements ClientInterface
234
  // we'll error under that condition. To compensate for that problem
235
  // for the time being, override cURL's behavior by simply always
236
  // sending an empty `Expect:` header.
237
- array_push($headers, 'Expect: ');
238
 
239
  $absUrl = Util\Util::utf8($absUrl);
240
- $opts[CURLOPT_URL] = $absUrl;
241
- $opts[CURLOPT_RETURNTRANSFER] = true;
242
- $opts[CURLOPT_CONNECTTIMEOUT] = $this->connectTimeout;
243
- $opts[CURLOPT_TIMEOUT] = $this->timeout;
244
- $opts[CURLOPT_HEADERFUNCTION] = $headerCallback;
245
- $opts[CURLOPT_HTTPHEADER] = $headers;
246
- $opts[CURLOPT_CAINFO] = Stripe::getCABundlePath();
247
  if (!Stripe::getVerifySslCerts()) {
248
- $opts[CURLOPT_SSL_VERIFYPEER] = false;
249
  }
250
 
251
- if (!isset($opts[CURLOPT_HTTP_VERSION]) && $this->getEnableHttp2()) {
252
  // For HTTPS requests, enable HTTP/2, if supported
253
- $opts[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_2TLS;
254
  }
255
 
256
- list($rbody, $rcode) = $this->executeRequestWithRetries($opts, $absUrl);
257
 
258
  return [$rbody, $rcode, $rheaders];
259
  }
260
 
261
  /**
262
  * @param array $opts cURL options
 
263
  */
264
  private function executeRequestWithRetries($opts, $absUrl)
265
  {
266
  $numRetries = 0;
 
267
 
268
  while (true) {
269
  $rcode = 0;
270
  $errno = 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
271
 
272
  $this->resetCurlHandle();
273
- curl_setopt_array($this->curlHandle, $opts);
274
- $rbody = curl_exec($this->curlHandle);
275
 
276
- if ($rbody === false) {
277
- $errno = curl_errno($this->curlHandle);
278
- $message = curl_error($this->curlHandle);
279
  } else {
280
- $rcode = curl_getinfo($this->curlHandle, CURLINFO_HTTP_CODE);
281
  }
282
  if (!$this->getEnablePersistentConnections()) {
283
  $this->closeCurlHandle();
284
  }
285
 
286
- if ($this->shouldRetry($errno, $rcode, $numRetries)) {
287
- $numRetries += 1;
288
- $sleepSeconds = $this->sleepTime($numRetries);
289
- usleep(intval($sleepSeconds * 1000000));
 
 
 
 
 
 
 
 
 
290
  } else {
291
  break;
292
  }
293
  }
294
 
295
- if ($rbody === false) {
296
  $this->handleCurlError($absUrl, $errno, $message, $numRetries);
297
  }
298
 
299
- return [$rbody, $rcode];
300
  }
301
 
302
  /**
@@ -304,83 +348,117 @@ class CurlClient implements ClientInterface
304
  * @param int $errno
305
  * @param string $message
306
  * @param int $numRetries
307
- * @throws Error\ApiConnection
 
308
  */
309
  private function handleCurlError($url, $errno, $message, $numRetries)
310
  {
311
  switch ($errno) {
312
- case CURLE_COULDNT_CONNECT:
313
- case CURLE_COULDNT_RESOLVE_HOST:
314
- case CURLE_OPERATION_TIMEOUTED:
315
- $msg = "Could not connect to Stripe ($url). Please check your "
316
- . "internet connection and try again. If this problem persists, "
317
  . "you should check Stripe's service status at "
318
- . "https://twitter.com/stripestatus, or";
 
319
  break;
320
- case CURLE_SSL_CACERT:
321
- case CURLE_SSL_PEER_CERTIFICATE:
322
  $msg = "Could not verify Stripe's SSL certificate. Please make sure "
323
- . "that your network is not intercepting certificates. "
324
- . "(Try going to $url in your browser.) "
325
- . "If this problem persists,";
 
326
  break;
327
  default:
328
- $msg = "Unexpected error communicating with Stripe. "
329
- . "If this problem persists,";
330
  }
331
- $msg .= " let us know at support@stripe.com.";
332
 
333
- $msg .= "\n\n(Network error [errno $errno]: $message)";
334
 
335
  if ($numRetries > 0) {
336
- $msg .= "\n\nRequest was retried $numRetries times.";
337
  }
338
 
339
- throw new Error\ApiConnection($msg);
340
  }
341
 
342
  /**
343
  * Checks if an error is a problem that we should retry on. This includes both
344
  * socket errors that may represent an intermittent problem and some special
345
  * HTTP statuses.
 
346
  * @param int $errno
347
  * @param int $rcode
 
348
  * @param int $numRetries
 
349
  * @return bool
350
  */
351
- private function shouldRetry($errno, $rcode, $numRetries)
352
  {
353
  if ($numRetries >= Stripe::getMaxNetworkRetries()) {
354
  return false;
355
  }
356
 
357
  // Retry on timeout-related problems (either on open or read).
358
- if ($errno === CURLE_OPERATION_TIMEOUTED) {
359
  return true;
360
  }
361
 
362
  // Destination refused the connection, the connection was reset, or a
363
  // variety of other connection failures. This could occur from a single
364
  // saturated server, so retry in case it's intermittent.
365
- if ($errno === CURLE_COULDNT_CONNECT) {
366
  return true;
367
  }
368
 
369
- // 409 conflict
370
- if ($rcode === 409) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
371
  return true;
372
  }
373
 
374
  return false;
375
  }
376
 
377
- private function sleepTime($numRetries)
 
 
 
 
 
 
 
 
378
  {
379
  // Apply exponential backoff with $initialNetworkRetryDelay on the
380
  // number of $numRetries so far as inputs. Do not allow the number to exceed
381
  // $maxNetworkRetryDelay.
382
- $sleepSeconds = min(
383
- Stripe::getInitialNetworkRetryDelay() * 1.0 * pow(2, $numRetries - 1),
384
  Stripe::getMaxNetworkRetryDelay()
385
  );
386
 
@@ -389,7 +467,13 @@ class CurlClient implements ClientInterface
389
  $sleepSeconds *= 0.5 * (1 + $this->randomGenerator->randFloat());
390
 
391
  // But never sleep less than the base sleep seconds.
392
- $sleepSeconds = max(Stripe::getInitialNetworkRetryDelay(), $sleepSeconds);
 
 
 
 
 
 
393
 
394
  return $sleepSeconds;
395
  }
@@ -400,7 +484,7 @@ class CurlClient implements ClientInterface
400
  private function initCurlHandle()
401
  {
402
  $this->closeCurlHandle();
403
- $this->curlHandle = curl_init();
404
  }
405
 
406
  /**
@@ -408,8 +492,8 @@ class CurlClient implements ClientInterface
408
  */
409
  private function closeCurlHandle()
410
  {
411
- if (!is_null($this->curlHandle)) {
412
- curl_close($this->curlHandle);
413
  $this->curlHandle = null;
414
  }
415
  }
@@ -420,8 +504,8 @@ class CurlClient implements ClientInterface
420
  */
421
  private function resetCurlHandle()
422
  {
423
- if (!is_null($this->curlHandle) && $this->getEnablePersistentConnections()) {
424
- curl_reset($this->curlHandle);
425
  } else {
426
  $this->initCurlHandle();
427
  }
@@ -430,14 +514,15 @@ class CurlClient implements ClientInterface
430
  /**
431
  * Indicates whether it is safe to use HTTP/2 or not.
432
  *
433
- * @return boolean
434
  */
435
  private function canSafelyUseHttp2()
436
  {
437
  // Versions of curl older than 7.60.0 don't respect GOAWAY frames
438
  // (cf. https://github.com/curl/curl/issues/2416), which Stripe use.
439
- $curlVersion = curl_version()['version'];
440
- return (version_compare($curlVersion, '7.60.0') >= 0);
 
441
  }
442
 
443
  /**
@@ -445,12 +530,13 @@ class CurlClient implements ClientInterface
445
  *
446
  * @param string[] $headers
447
  * @param string $name
448
- * @return boolean
 
449
  */
450
  private function hasHeader($headers, $name)
451
  {
452
  foreach ($headers as $header) {
453
- if (strncasecmp($header, "{$name}: ", strlen($name) + 2) === 0) {
454
  return true;
455
  }
456
  }
2
 
3
  namespace Stripe\HttpClient;
4
 
5
+ use Stripe\Exception;
6
  use Stripe\Stripe;
 
7
  use Stripe\Util;
8
 
 
 
9
  // @codingStandardsIgnoreStart
10
  // PSR2 requires all constants be upper case. Sadly, the CURL_SSLVERSION
11
  // constants do not abide by those rules.
12
 
13
+ // Note the values come from their position in the enums that
14
  // defines them in cURL's source code.
15
+
16
+ // Available since PHP 5.5.19 and 5.6.3
17
+ if (!\defined('CURL_SSLVERSION_TLSv1_2')) {
18
+ \define('CURL_SSLVERSION_TLSv1_2', 6);
 
19
  }
20
  // @codingStandardsIgnoreEnd
21
 
22
+ // Available since PHP 7.0.7 and cURL 7.47.0
23
+ if (!\defined('CURL_HTTP_VERSION_2TLS')) {
24
+ \define('CURL_HTTP_VERSION_2TLS', 4);
25
  }
26
 
27
  class CurlClient implements ClientInterface
33
  if (!self::$instance) {
34
  self::$instance = new self();
35
  }
36
+
37
  return self::$instance;
38
  }
39
 
40
  protected $defaultOptions;
41
 
42
+ /** @var \Stripe\Util\RandomGenerator */
43
+ protected $randomGenerator;
44
+
45
  protected $userAgentInfo;
46
 
47
+ protected $enablePersistentConnections = true;
48
+
49
+ protected $enableHttp2;
50
 
51
+ protected $curlHandle;
52
 
53
+ protected $requestStatusCallback;
54
 
55
  /**
56
  * CurlClient constructor.
63
  * Note that request() will silently ignore a non-callable, non-array $defaultOptions, and will
64
  * throw an exception if $defaultOptions returns a non-array value.
65
  *
66
+ * @param null|array|callable $defaultOptions
67
+ * @param null|\Stripe\Util\RandomGenerator $randomGenerator
68
  */
69
  public function __construct($defaultOptions = null, $randomGenerator = null)
70
  {
72
  $this->randomGenerator = $randomGenerator ?: new Util\RandomGenerator();
73
  $this->initUserAgentInfo();
74
 
 
 
 
 
75
  $this->enableHttp2 = $this->canSafelyUseHttp2();
76
  }
77
 
82
 
83
  public function initUserAgentInfo()
84
  {
85
+ $curlVersion = \curl_version();
86
  $this->userAgentInfo = [
87
+ 'httplib' => 'curl ' . $curlVersion['version'],
88
  'ssllib' => $curlVersion['ssl_version'],
89
  ];
90
  }
100
  }
101
 
102
  /**
103
+ * @return bool
104
  */
105
  public function getEnablePersistentConnections()
106
  {
108
  }
109
 
110
  /**
111
+ * @param bool $enable
112
  */
113
  public function setEnablePersistentConnections($enable)
114
  {
116
  }
117
 
118
  /**
119
+ * @return bool
120
  */
121
  public function getEnableHttp2()
122
  {
124
  }
125
 
126
  /**
127
+ * @param bool $enable
128
  */
129
  public function setEnableHttp2($enable)
130
  {
131
  $this->enableHttp2 = $enable;
132
  }
133
 
134
+ /**
135
+ * @return null|callable
136
+ */
137
+ public function getRequestStatusCallback()
138
+ {
139
+ return $this->requestStatusCallback;
140
+ }
141
+
142
+ /**
143
+ * Sets a callback that is called after each request. The callback will
144
+ * receive the following parameters:
145
+ * <ol>
146
+ * <li>string $rbody The response body</li>
147
+ * <li>integer $rcode The response status code</li>
148
+ * <li>\Stripe\Util\CaseInsensitiveArray $rheaders The response headers</li>
149
+ * <li>integer $errno The curl error number</li>
150
+ * <li>string|null $message The curl error message</li>
151
+ * <li>boolean $shouldRetry Whether the request will be retried</li>
152
+ * <li>integer $numRetries The number of the retry attempt</li>
153
+ * </ol>.
154
+ *
155
+ * @param null|callable $requestStatusCallback
156
+ */
157
+ public function setRequestStatusCallback($requestStatusCallback)
158
+ {
159
+ $this->requestStatusCallback = $requestStatusCallback;
160
+ }
161
+
162
  // USER DEFINED TIMEOUTS
163
 
164
  const DEFAULT_TIMEOUT = 80;
169
 
170
  public function setTimeout($seconds)
171
  {
172
+ $this->timeout = (int) \max($seconds, 0);
173
+
174
  return $this;
175
  }
176
 
177
  public function setConnectTimeout($seconds)
178
  {
179
+ $this->connectTimeout = (int) \max($seconds, 0);
180
+
181
  return $this;
182
  }
183
 
195
 
196
  public function request($method, $absUrl, $headers, $params, $hasFile)
197
  {
198
+ $method = \strtolower($method);
199
 
200
  $opts = [];
201
+ if (\is_callable($this->defaultOptions)) { // call defaultOptions callback, set options to return value
202
+ $opts = \call_user_func_array($this->defaultOptions, \func_get_args());
203
+ if (!\is_array($opts)) {
204
+ throw new Exception\UnexpectedValueException('Non-array value returned by defaultOptions CurlClient callback');
205
  }
206
+ } elseif (\is_array($this->defaultOptions)) { // set default curlopts from array
207
  $opts = $this->defaultOptions;
208
  }
209
 
210
  $params = Util\Util::objectsToIds($params);
211
 
212
+ if ('get' === $method) {
213
  if ($hasFile) {
214
+ throw new Exception\UnexpectedValueException(
215
+ 'Issuing a GET request with a file parameter'
216
  );
217
  }
218
+ $opts[\CURLOPT_HTTPGET] = 1;
219
+ if (\count($params) > 0) {
220
  $encoded = Util\Util::encodeParameters($params);
221
+ $absUrl = "{$absUrl}?{$encoded}";
222
  }
223
+ } elseif ('post' === $method) {
224
+ $opts[\CURLOPT_POST] = 1;
225
+ $opts[\CURLOPT_POSTFIELDS] = $hasFile ? $params : Util\Util::encodeParameters($params);
226
+ } elseif ('delete' === $method) {
227
+ $opts[\CURLOPT_CUSTOMREQUEST] = 'DELETE';
228
+ if (\count($params) > 0) {
229
  $encoded = Util\Util::encodeParameters($params);
230
+ $absUrl = "{$absUrl}?{$encoded}";
231
  }
232
  } else {
233
+ throw new Exception\UnexpectedValueException("Unrecognized method {$method}");
234
  }
235
 
236
  // It is only safe to retry network failures on POST requests if we
237
  // add an Idempotency-Key header
238
+ if (('post' === $method) && (Stripe::$maxNetworkRetries > 0)) {
239
+ if (!$this->hasHeader($headers, 'Idempotency-Key')) {
240
+ \array_push($headers, 'Idempotency-Key: ' . $this->randomGenerator->uuid());
241
  }
242
  }
243
 
 
 
 
 
 
 
 
 
 
 
 
 
244
  // By default for large request body sizes (> 1024 bytes), cURL will
245
  // send a request without a body and with a `Expect: 100-continue`
246
  // header, which gives the server a chance to respond with an error
253
  // we'll error under that condition. To compensate for that problem
254
  // for the time being, override cURL's behavior by simply always
255
  // sending an empty `Expect:` header.
256
+ \array_push($headers, 'Expect: ');
257
 
258
  $absUrl = Util\Util::utf8($absUrl);
259
+ $opts[\CURLOPT_URL] = $absUrl;
260
+ $opts[\CURLOPT_RETURNTRANSFER] = true;
261
+ $opts[\CURLOPT_CONNECTTIMEOUT] = $this->connectTimeout;
262
+ $opts[\CURLOPT_TIMEOUT] = $this->timeout;
263
+ $opts[\CURLOPT_HTTPHEADER] = $headers;
264
+ $opts[\CURLOPT_CAINFO] = Stripe::getCABundlePath();
 
265
  if (!Stripe::getVerifySslCerts()) {
266
+ $opts[\CURLOPT_SSL_VERIFYPEER] = false;
267
  }
268
 
269
+ if (!isset($opts[\CURLOPT_HTTP_VERSION]) && $this->getEnableHttp2()) {
270
  // For HTTPS requests, enable HTTP/2, if supported
271
+ $opts[\CURLOPT_HTTP_VERSION] = \CURL_HTTP_VERSION_2TLS;
272
  }
273
 
274
+ list($rbody, $rcode, $rheaders) = $this->executeRequestWithRetries($opts, $absUrl);
275
 
276
  return [$rbody, $rcode, $rheaders];
277
  }
278
 
279
  /**
280
  * @param array $opts cURL options
281
+ * @param string $absUrl
282
  */
283
  private function executeRequestWithRetries($opts, $absUrl)
284
  {
285
  $numRetries = 0;
286
+ $isPost = \array_key_exists(\CURLOPT_POST, $opts) && 1 === $opts[\CURLOPT_POST];
287
 
288
  while (true) {
289
  $rcode = 0;
290
  $errno = 0;
291
+ $message = null;
292
+
293
+ // Create a callback to capture HTTP headers for the response
294
+ $rheaders = new Util\CaseInsensitiveArray();
295
+ $headerCallback = function ($curl, $header_line) use (&$rheaders) {
296
+ // Ignore the HTTP request line (HTTP/1.1 200 OK)
297
+ if (false === \strpos($header_line, ':')) {
298
+ return \strlen($header_line);
299
+ }
300
+ list($key, $value) = \explode(':', \trim($header_line), 2);
301
+ $rheaders[\trim($key)] = \trim($value);
302
+
303
+ return \strlen($header_line);
304
+ };
305
+ $opts[\CURLOPT_HEADERFUNCTION] = $headerCallback;
306
 
307
  $this->resetCurlHandle();
308
+ \curl_setopt_array($this->curlHandle, $opts);
309
+ $rbody = \curl_exec($this->curlHandle);
310
 
311
+ if (false === $rbody) {
312
+ $errno = \curl_errno($this->curlHandle);
313
+ $message = \curl_error($this->curlHandle);
314
  } else {
315
+ $rcode = \curl_getinfo($this->curlHandle, \CURLINFO_HTTP_CODE);
316
  }
317
  if (!$this->getEnablePersistentConnections()) {
318
  $this->closeCurlHandle();
319
  }
320
 
321
+ $shouldRetry = $this->shouldRetry($errno, $rcode, $rheaders, $numRetries);
322
+
323
+ if (\is_callable($this->getRequestStatusCallback())) {
324
+ \call_user_func_array(
325
+ $this->getRequestStatusCallback(),
326
+ [$rbody, $rcode, $rheaders, $errno, $message, $shouldRetry, $numRetries]
327
+ );
328
+ }
329
+
330
+ if ($shouldRetry) {
331
+ ++$numRetries;
332
+ $sleepSeconds = $this->sleepTime($numRetries, $rheaders);
333
+ \usleep((int) ($sleepSeconds * 1000000));
334
  } else {
335
  break;
336
  }
337
  }
338
 
339
+ if (false === $rbody) {
340
  $this->handleCurlError($absUrl, $errno, $message, $numRetries);
341
  }
342
 
343
+ return [$rbody, $rcode, $rheaders];
344
  }
345
 
346
  /**
348
  * @param int $errno
349
  * @param string $message
350
  * @param int $numRetries
351
+ *
352
+ * @throws Exception\ApiConnectionException
353
  */
354
  private function handleCurlError($url, $errno, $message, $numRetries)
355
  {
356
  switch ($errno) {
357
+ case \CURLE_COULDNT_CONNECT:
358
+ case \CURLE_COULDNT_RESOLVE_HOST:
359
+ case \CURLE_OPERATION_TIMEOUTED:
360
+ $msg = "Could not connect to Stripe ({$url}). Please check your "
361
+ . 'internet connection and try again. If this problem persists, '
362
  . "you should check Stripe's service status at "
363
+ . 'https://twitter.com/stripestatus, or';
364
+
365
  break;
366
+ case \CURLE_SSL_CACERT:
367
+ case \CURLE_SSL_PEER_CERTIFICATE:
368
  $msg = "Could not verify Stripe's SSL certificate. Please make sure "
369
+ . 'that your network is not intercepting certificates. '
370
+ . "(Try going to {$url} in your browser.) "
371
+ . 'If this problem persists,';
372
+
373
  break;
374
  default:
375
+ $msg = 'Unexpected error communicating with Stripe. '
376
+ . 'If this problem persists,';
377
  }
378
+ $msg .= ' let us know at support@stripe.com.';
379
 
380
+ $msg .= "\n\n(Network error [errno {$errno}]: {$message})";
381
 
382
  if ($numRetries > 0) {
383
+ $msg .= "\n\nRequest was retried {$numRetries} times.";
384
  }
385
 
386
+ throw new Exception\ApiConnectionException($msg);
387
  }
388
 
389
  /**
390
  * Checks if an error is a problem that we should retry on. This includes both
391
  * socket errors that may represent an intermittent problem and some special
392
  * HTTP statuses.
393
+ *
394
  * @param int $errno
395
  * @param int $rcode
396
+ * @param array|\Stripe\Util\CaseInsensitiveArray $rheaders
397
  * @param int $numRetries
398
+ *
399
  * @return bool
400
  */
401
+ private function shouldRetry($errno, $rcode, $rheaders, $numRetries)
402
  {
403
  if ($numRetries >= Stripe::getMaxNetworkRetries()) {
404
  return false;
405
  }
406
 
407
  // Retry on timeout-related problems (either on open or read).
408
+ if (\CURLE_OPERATION_TIMEOUTED === $errno) {
409
  return true;
410
  }
411
 
412
  // Destination refused the connection, the connection was reset, or a
413
  // variety of other connection failures. This could occur from a single
414
  // saturated server, so retry in case it's intermittent.
415
+ if (\CURLE_COULDNT_CONNECT === $errno) {
416
  return true;
417
  }
418
 
419
+ // The API may ask us not to retry (eg; if doing so would be a no-op)
420
+ // or advise us to retry (eg; in cases of lock timeouts); we defer to that.
421
+ if (isset($rheaders['stripe-should-retry'])) {
422
+ if ('false' === $rheaders['stripe-should-retry']) {
423
+ return false;
424
+ }
425
+ if ('true' === $rheaders['stripe-should-retry']) {
426
+ return true;
427
+ }
428
+ }
429
+
430
+ // 409 Conflict
431
+ if (409 === $rcode) {
432
+ return true;
433
+ }
434
+
435
+ // Retry on 500, 503, and other internal errors.
436
+ //
437
+ // Note that we expect the stripe-should-retry header to be false
438
+ // in most cases when a 500 is returned, since our idempotency framework
439
+ // would typically replay it anyway.
440
+ if ($rcode >= 500) {
441
  return true;
442
  }
443
 
444
  return false;
445
  }
446
 
447
+ /**
448
+ * Provides the number of seconds to wait before retrying a request.
449
+ *
450
+ * @param int $numRetries
451
+ * @param array|\Stripe\Util\CaseInsensitiveArray $rheaders
452
+ *
453
+ * @return int
454
+ */
455
+ private function sleepTime($numRetries, $rheaders)
456
  {
457
  // Apply exponential backoff with $initialNetworkRetryDelay on the
458
  // number of $numRetries so far as inputs. Do not allow the number to exceed
459
  // $maxNetworkRetryDelay.
460
+ $sleepSeconds = \min(
461
+ Stripe::getInitialNetworkRetryDelay() * 1.0 * 2 ** ($numRetries - 1),
462
  Stripe::getMaxNetworkRetryDelay()
463
  );
464
 
467
  $sleepSeconds *= 0.5 * (1 + $this->randomGenerator->randFloat());
468
 
469
  // But never sleep less than the base sleep seconds.
470
+ $sleepSeconds = \max(Stripe::getInitialNetworkRetryDelay(), $sleepSeconds);
471
+
472
+ // And never sleep less than the time the API asks us to wait, assuming it's a reasonable ask.
473
+ $retryAfter = isset($rheaders['retry-after']) ? (float) ($rheaders['retry-after']) : 0.0;
474
+ if (\floor($retryAfter) === $retryAfter && $retryAfter <= Stripe::getMaxRetryAfter()) {
475
+ $sleepSeconds = \max($sleepSeconds, $retryAfter);
476
+ }
477
 
478
  return $sleepSeconds;
479
  }
484
  private function initCurlHandle()
485
  {
486
  $this->closeCurlHandle();
487
+ $this->curlHandle = \curl_init();
488
  }
489
 
490
  /**
492
  */
493
  private function closeCurlHandle()
494
  {
495
+ if (null !== $this->curlHandle) {
496
+ \curl_close($this->curlHandle);
497
  $this->curlHandle = null;
498
  }
499
  }
504
  */
505
  private function resetCurlHandle()
506
  {
507
+ if (null !== $this->curlHandle && $this->getEnablePersistentConnections()) {
508
+ \curl_reset($this->curlHandle);
509
  } else {
510
  $this->initCurlHandle();
511
  }
514
  /**
515
  * Indicates whether it is safe to use HTTP/2 or not.
516
  *
517
+ * @return bool
518
  */
519
  private function canSafelyUseHttp2()
520
  {
521
  // Versions of curl older than 7.60.0 don't respect GOAWAY frames
522
  // (cf. https://github.com/curl/curl/issues/2416), which Stripe use.
523
+ $curlVersion = \curl_version()['version'];
524
+
525
+ return \version_compare($curlVersion, '7.60.0') >= 0;
526
  }
527
 
528
  /**
530
  *
531
  * @param string[] $headers
532
  * @param string $name
533
+ *
534
+ * @return bool
535
  */
536
  private function hasHeader($headers, $name)
537
  {
538
  foreach ($headers as $header) {
539
+ if (0 === \strncasecmp($header, "{$name}: ", \strlen($name) + 2)) {
540
  return true;
541
  }
542
  }
lib/stripe-gateway/lib/Invoice.php CHANGED
@@ -3,74 +3,106 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class Invoice
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property string $account_country
11
- * @property string $account_name
12
- * @property int $amount_due
13
- * @property int $amount_paid
14
- * @property int $amount_remaining
15
- * @property int $application_fee_amount
16
- * @property int $attempt_count
17
- * @property bool $attempted
18
- * @property bool $auto_advance
19
- * @property string $billing
20
- * @property string $billing_reason
21
- * @property string $charge
22
- * @property string $collection_method
23
- * @property int $created
24
- * @property string $currency
25
- * @property array $custom_fields
26
- * @property string $customer
27
- * @property mixed $customer_address
28
- * @property string $customer_email
29
- * @property string $customer_name
30
- * @property string $customer_phone
31
- * @property mixed $customer_shipping
32
- * @property string $customer_tax_exempt
33
- * @property array $customer_tax_ids
34
- * @property string $default_payment_method
35
- * @property string $default_source
36
- * @property array $default_tax_rates
37
- * @property string $description
38
- * @property Discount $discount
39
- * @property int $due_date
40
- * @property int $ending_balance
41
- * @property string $footer
42
- * @property string $hosted_invoice_url
43
- * @property string $invoice_pdf
44
- * @property Collection $lines
45
- * @property bool $livemode
46
- * @property StripeObject $metadata
47
- * @property int $next_payment_attempt
48
- * @property string $number
49
- * @property bool $paid
50
- * @property string $payment_intent
51
- * @property int $period_end
52
- * @property int $period_start
53
- * @property int $post_payment_credit_notes_amount
54
- * @property int $pre_payment_credit_notes_amount
55
- * @property string $receipt_number
56
- * @property int $starting_balance
57
- * @property string $statement_descriptor
58
- * @property string $status
59
- * @property mixed $status_transitions
60
- * @property string $subscription
61
- * @property int $subscription_proration_date
62
- * @property int $subtotal
63
- * @property int $tax
64
- * @property mixed $threshold_reason
65
- * @property int $total
66
- * @property array $total_tax_amounts
67
- * @property int $webhooks_delivered_at
68
  *
69
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70
  */
71
  class Invoice extends ApiResource
72
  {
73
- const OBJECT_NAME = "invoice";
74
 
75
  use ApiOperations\All;
76
  use ApiOperations\Create;
@@ -78,125 +110,145 @@ class Invoice extends ApiResource
78
  use ApiOperations\Retrieve;
79
  use ApiOperations\Update;
80
 
81
- /**
82
- * Possible string representations of the billing reason.
83
- * @link https://stripe.com/docs/api/invoices/object#invoice_object-billing_reason
84
- */
85
- const BILLING_REASON_MANUAL = 'manual';
86
- const BILLING_REASON_SUBSCRIPTION = 'subscription';
87
- const BILLING_REASON_SUBSCRIPTION_CREATE = 'subscription_create';
88
- const BILLING_REASON_SUBSCRIPTION_CYCLE = 'subscription_cycle';
89
  const BILLING_REASON_SUBSCRIPTION_THRESHOLD = 'subscription_threshold';
90
- const BILLING_REASON_SUBSCRIPTION_UPDATE = 'subscription_update';
91
- const BILLING_REASON_UPCOMING = 'upcoming';
92
 
93
- /**
94
- * Possible string representations of the `collection_method` property.
95
- * @link https://stripe.com/docs/api/invoices/object#invoice_object-collection_method
96
- */
97
  const COLLECTION_METHOD_CHARGE_AUTOMATICALLY = 'charge_automatically';
98
- const COLLECTION_METHOD_SEND_INVOICE = 'send_invoice';
 
 
 
 
 
 
 
 
 
 
 
99
 
100
  /**
101
- * Possible string representations of the invoice status.
102
- * @link https://stripe.com/docs/api/invoices/object#invoice_object-status
 
 
 
 
103
  */
104
- const STATUS_DRAFT = 'draft';
105
- const STATUS_OPEN = 'open';
106
- const STATUS_PAID = 'paid';
107
- const STATUS_UNCOLLECTIBLE = 'uncollectible';
108
- const STATUS_VOID = 'void';
 
 
 
 
109
 
110
  /**
111
- * Possible string representations of the `billing` property.
112
- * @deprecated Use `collection_method` instead.
113
- * @link https://stripe.com/docs/api/invoices/object#invoice_object-billing
 
 
 
 
114
  */
115
- const BILLING_CHARGE_AUTOMATICALLY = 'charge_automatically';
116
- const BILLING_SEND_INVOICE = 'send_invoice';
 
 
117
 
118
  /**
119
- * @param array|null $params
120
- * @param array|string|null $opts
 
 
121
  *
122
- * @return Invoice The finalized invoice.
123
  */
124
  public function finalizeInvoice($params = null, $opts = null)
125
  {
126
  $url = $this->instanceUrl() . '/finalize';
127
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
128
  $this->refreshFrom($response, $opts);
 
129
  return $this;
130
  }
131
 
132
  /**
133
- * @param array|null $params
134
- * @param array|string|null $opts
 
 
135
  *
136
- * @return Invoice The uncollectible invoice.
137
  */
138
  public function markUncollectible($params = null, $opts = null)
139
  {
140
  $url = $this->instanceUrl() . '/mark_uncollectible';
141
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
142
  $this->refreshFrom($response, $opts);
 
143
  return $this;
144
  }
145
 
146
  /**
147
- * @param array|null $params
148
- * @param array|string|null $opts
149
  *
150
- * @return Invoice The paid invoice.
 
 
151
  */
152
  public function pay($params = null, $opts = null)
153
  {
154
  $url = $this->instanceUrl() . '/pay';
155
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
156
  $this->refreshFrom($response, $opts);
 
157
  return $this;
158
  }
159
 
160
  /**
161
- * @param array|null $params
162
- * @param array|string|null $opts
 
 
163
  *
164
- * @return Invoice The sent invoice.
165
  */
166
  public function sendInvoice($params = null, $opts = null)
167
  {
168
  $url = $this->instanceUrl() . '/send';
169
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
170
  $this->refreshFrom($response, $opts);
 
171
  return $this;
172
  }
173
 
174
  /**
175
- * @param array|null $params
176
- * @param array|string|null $opts
177
  *
178
- * @return Invoice The upcoming invoice.
179
- */
180
- public static function upcoming($params = null, $opts = null)
181
- {
182
- $url = static::classUrl() . '/upcoming';
183
- list($response, $opts) = static::_staticRequest('get', $url, $params, $opts);
184
- $obj = Util\Util::convertToStripeObject($response->json, $opts);
185
- $obj->setLastResponse($response);
186
- return $obj;
187
- }
188
-
189
- /**
190
- * @param array|null $params
191
- * @param array|string|null $opts
192
  *
193
- * @return Invoice The voided invoice.
194
  */
195
  public function voidInvoice($params = null, $opts = null)
196
  {
197
  $url = $this->instanceUrl() . '/void';
198
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
199
  $this->refreshFrom($response, $opts);
 
200
  return $this;
201
  }
202
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * Invoices are statements of amounts owed by a customer, and are either generated
7
+ * one-off, or generated periodically from a subscription.
8
  *
9
+ * They contain <a href="https://stripe.com/docs/api#invoiceitems">invoice
10
+ * items</a>, and proration adjustments that may be caused by subscription
11
+ * upgrades/downgrades (if necessary).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  *
13
+ * If your invoice is configured to be billed through automatic charges, Stripe
14
+ * automatically finalizes your invoice and attempts payment. Note that finalizing
15
+ * the invoice, <a
16
+ * href="https://stripe.com/docs/billing/invoices/workflow/#auto_advance">when
17
+ * automatic</a>, does not happen immediately as the invoice is created. Stripe
18
+ * waits until one hour after the last webhook was successfully sent (or the last
19
+ * webhook timed out after failing). If you (and the platforms you may have
20
+ * connected to) have no webhooks configured, Stripe waits one hour after creation
21
+ * to finalize the invoice.
22
+ *
23
+ * If your invoice is configured to be billed by sending an email, then based on
24
+ * your <a href="https://dashboard.stripe.com/account/billing/automatic'">email
25
+ * settings</a>, Stripe will email the invoice to your customer and await payment.
26
+ * These emails can contain a link to a hosted page to pay the invoice.
27
+ *
28
+ * Stripe applies any customer credit on the account before determining the amount
29
+ * due for the invoice (i.e., the amount that will be actually charged). If the
30
+ * amount due for the invoice is less than Stripe's <a
31
+ * href="/docs/currencies#minimum-and-maximum-charge-amounts">minimum allowed
32
+ * charge per currency</a>, the invoice is automatically marked paid, and we add
33
+ * the amount due to the customer's running account balance which is applied to the
34
+ * next invoice.
35
+ *
36
+ * More details on the customer's account balance are <a
37
+ * href="https://stripe.com/docs/api/customers/object#customer_object-account_balance">here</a>.
38
+ *
39
+ * Related guide: <a href="https://stripe.com/docs/billing/invoices/sending">Send
40
+ * Invoices to Customers</a>.
41
+ *
42
+ * @property string $id Unique identifier for the object.
43
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
44
+ * @property null|string $account_country The country of the business associated with this invoice, most often the business creating the invoice.
45
+ * @property null|string $account_name The public name of the business associated with this invoice, most often the business creating the invoice.
46
+ * @property int $amount_due Final amount due at this time for this invoice. If the invoice's total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the <code>amount_due</code> may be 0. If there is a positive <code>starting_balance</code> for the invoice (the customer owes money), the <code>amount_due</code> will also take that into account. The charge that gets generated for the invoice will be for the amount specified in <code>amount_due</code>.
47
+ * @property int $amount_paid The amount, in %s, that was paid.
48
+ * @property int $amount_remaining The amount remaining, in %s, that is due.
49
+ * @property null|int $application_fee_amount The fee in %s that will be applied to the invoice and transferred to the application owner's Stripe account when the invoice is paid.
50
+ * @property int $attempt_count Number of payment attempts made for this invoice, from the perspective of the payment retry schedule. Any payment attempt counts as the first attempt, and subsequently only automatic retries increment the attempt count. In other words, manual payment attempts after the first attempt do not affect the retry schedule.
51
+ * @property bool $attempted Whether an attempt has been made to pay the invoice. An invoice is not attempted until 1 hour after the <code>invoice.created</code> webhook, for example, so you might not want to display that invoice as unpaid to your users.
52
+ * @property bool $auto_advance Controls whether Stripe will perform <a href="https://stripe.com/docs/billing/invoices/workflow/#auto_advance">automatic collection</a> of the invoice. When <code>false</code>, the invoice's state will not automatically advance without an explicit action.
53
+ * @property null|string $billing_reason Indicates the reason why the invoice was created. <code>subscription_cycle</code> indicates an invoice created by a subscription advancing into a new period. <code>subscription_create</code> indicates an invoice created due to creating a subscription. <code>subscription_update</code> indicates an invoice created due to updating a subscription. <code>subscription</code> is set for all old invoices to indicate either a change to a subscription or a period advancement. <code>manual</code> is set for all invoices unrelated to a subscription (for example: created via the invoice editor). The <code>upcoming</code> value is reserved for simulated invoices per the upcoming invoice endpoint. <code>subscription_threshold</code> indicates an invoice created due to a billing threshold being reached.
54
+ * @property null|string|\Stripe\Charge $charge ID of the latest charge generated for this invoice, if any.
55
+ * @property null|string $collection_method Either <code>charge_automatically</code>, or <code>send_invoice</code>. When charging automatically, Stripe will attempt to pay this invoice using the default source attached to the customer. When sending an invoice, Stripe will email this invoice to the customer with payment instructions.
56
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
57
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
58
+ * @property null|\Stripe\StripeObject[] $custom_fields Custom fields displayed on the invoice.
59
+ * @property string|\Stripe\Customer $customer The ID of the customer who will be billed.
60
+ * @property null|\Stripe\StripeObject $customer_address The customer's address. Until the invoice is finalized, this field will equal <code>customer.address</code>. Once the invoice is finalized, this field will no longer be updated.
61
+ * @property null|string $customer_email The customer's email. Until the invoice is finalized, this field will equal <code>customer.email</code>. Once the invoice is finalized, this field will no longer be updated.
62
+ * @property null|string $customer_name The customer's name. Until the invoice is finalized, this field will equal <code>customer.name</code>. Once the invoice is finalized, this field will no longer be updated.
63
+ * @property null|string $customer_phone The customer's phone number. Until the invoice is finalized, this field will equal <code>customer.phone</code>. Once the invoice is finalized, this field will no longer be updated.
64
+ * @property null|\Stripe\StripeObject $customer_shipping The customer's shipping information. Until the invoice is finalized, this field will equal <code>customer.shipping</code>. Once the invoice is finalized, this field will no longer be updated.
65
+ * @property null|string $customer_tax_exempt The customer's tax exempt status. Until the invoice is finalized, this field will equal <code>customer.tax_exempt</code>. Once the invoice is finalized, this field will no longer be updated.
66
+ * @property null|\Stripe\StripeObject[] $customer_tax_ids The customer's tax IDs. Until the invoice is finalized, this field will contain the same tax IDs as <code>customer.tax_ids</code>. Once the invoice is finalized, this field will no longer be updated.
67
+ * @property null|string|\Stripe\PaymentMethod $default_payment_method ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription's default payment method, if any, or to the default payment method in the customer's invoice settings.
68
+ * @property null|string|\Stripe\StripeObject $default_source ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription's default source, if any, or to the customer's default source.
69
+ * @property null|\Stripe\TaxRate[] $default_tax_rates The tax rates applied to this invoice, if any.
70
+ * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users. Referenced as 'memo' in the Dashboard.
71
+ * @property null|\Stripe\Discount $discount Describes the current discount applied to this invoice, if there is one.
72
+ * @property null|int $due_date The date on which payment for this invoice is due. This value will be <code>null</code> for invoices where <code>collection_method=charge_automatically</code>.
73
+ * @property null|int $ending_balance Ending customer balance after the invoice is finalized. Invoices are finalized approximately an hour after successful webhook delivery or when payment collection is attempted for the invoice. If the invoice has not been finalized yet, this will be null.
74
+ * @property null|string $footer Footer displayed on the invoice.
75
+ * @property null|string $hosted_invoice_url The URL for the hosted invoice page, which allows customers to view and pay an invoice. If the invoice has not been finalized yet, this will be null.
76
+ * @property null|string $invoice_pdf The link to download the PDF for the invoice. If the invoice has not been finalized yet, this will be null.
77
+ * @property \Stripe\Collection $lines The individual line items that make up the invoice. <code>lines</code> is sorted as follows: invoice items in reverse chronological order, followed by the subscription, if any.
78
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
79
+ * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
80
+ * @property null|int $next_payment_attempt The time at which payment will next be attempted. This value will be <code>null</code> for invoices where <code>collection_method=send_invoice</code>.
81
+ * @property null|string $number A unique, identifying string that appears on emails sent to the customer for this invoice. This starts with the customer's unique invoice_prefix if it is specified.
82
+ * @property bool $paid Whether payment was successfully collected for this invoice. An invoice can be paid (most commonly) with a charge or with credit from the customer's account balance.
83
+ * @property null|string|\Stripe\PaymentIntent $payment_intent The PaymentIntent associated with this invoice. The PaymentIntent is generated when the invoice is finalized, and can then be used to pay the invoice. Note that voiding an invoice will cancel the PaymentIntent.
84
+ * @property int $period_end End of the usage period during which invoice items were added to this invoice.
85
+ * @property int $period_start Start of the usage period during which invoice items were added to this invoice.
86
+ * @property int $post_payment_credit_notes_amount Total amount of all post-payment credit notes issued for this invoice.
87
+ * @property int $pre_payment_credit_notes_amount Total amount of all pre-payment credit notes issued for this invoice.
88
+ * @property null|string $receipt_number This is the transaction number that appears on email receipts sent for this invoice.
89
+ * @property int $starting_balance Starting customer balance before the invoice is finalized. If the invoice has not been finalized yet, this will be the current customer balance.
90
+ * @property null|string $statement_descriptor Extra information about an invoice for the customer's credit card statement.
91
+ * @property null|string $status The status of the invoice, one of <code>draft</code>, <code>open</code>, <code>paid</code>, <code>uncollectible</code>, or <code>void</code>. <a href="https://stripe.com/docs/billing/invoices/workflow#workflow-overview">Learn more</a>
92
+ * @property \Stripe\StripeObject $status_transitions
93
+ * @property null|string|\Stripe\Subscription $subscription The subscription that this invoice was prepared for, if any.
94
+ * @property int $subscription_proration_date Only set for upcoming invoices that preview prorations. The time used to calculate prorations.
95
+ * @property int $subtotal Total of all subscriptions, invoice items, and prorations on the invoice before any discount or tax is applied.
96
+ * @property null|int $tax The amount of tax on this invoice. This is the sum of all the tax amounts on this invoice.
97
+ * @property null|float $tax_percent This percentage of the subtotal has been added to the total amount of the invoice, including invoice line items and discounts. This field is inherited from the subscription's <code>tax_percent</code> field, but can be changed before the invoice is paid. This field defaults to null.
98
+ * @property \Stripe\StripeObject $threshold_reason
99
+ * @property int $total Total after discounts and taxes.
100
+ * @property null|\Stripe\StripeObject[] $total_tax_amounts The aggregate amounts calculated per tax rate for all line items.
101
+ * @property null|int $webhooks_delivered_at Invoices are automatically paid or sent 1 hour after webhooks are delivered, or until all webhook delivery attempts have <a href="https://stripe.com/docs/billing/webhooks#understand">been exhausted</a>. This field tracks the time when webhooks for this invoice were successfully delivered. If the invoice had no webhooks to deliver, this will be set while the invoice is being created.
102
  */
103
  class Invoice extends ApiResource
104
  {
105
+ const OBJECT_NAME = 'invoice';
106
 
107
  use ApiOperations\All;
108
  use ApiOperations\Create;
110
  use ApiOperations\Retrieve;
111
  use ApiOperations\Update;
112
 
113
+ const BILLING_CHARGE_AUTOMATICALLY = 'charge_automatically';
114
+ const BILLING_SEND_INVOICE = 'send_invoice';
115
+
116
+ const BILLING_REASON_MANUAL = 'manual';
117
+ const BILLING_REASON_SUBSCRIPTION = 'subscription';
118
+ const BILLING_REASON_SUBSCRIPTION_CREATE = 'subscription_create';
119
+ const BILLING_REASON_SUBSCRIPTION_CYCLE = 'subscription_cycle';
 
120
  const BILLING_REASON_SUBSCRIPTION_THRESHOLD = 'subscription_threshold';
121
+ const BILLING_REASON_SUBSCRIPTION_UPDATE = 'subscription_update';
122
+ const BILLING_REASON_UPCOMING = 'upcoming';
123
 
 
 
 
 
124
  const COLLECTION_METHOD_CHARGE_AUTOMATICALLY = 'charge_automatically';
125
+ const COLLECTION_METHOD_SEND_INVOICE = 'send_invoice';
126
+
127
+ const STATUS_DELETED = 'deleted';
128
+ const STATUS_DRAFT = 'draft';
129
+ const STATUS_OPEN = 'open';
130
+ const STATUS_PAID = 'paid';
131
+ const STATUS_UNCOLLECTIBLE = 'uncollectible';
132
+ const STATUS_VOID = 'void';
133
+
134
+ use ApiOperations\NestedResource;
135
+
136
+ const PATH_LINES = '/lines';
137
 
138
  /**
139
+ * @param null|array $params
140
+ * @param null|array|string $opts
141
+ *
142
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
143
+ *
144
+ * @return \Stripe\Invoice the upcoming invoice
145
  */
146
+ public static function upcoming($params = null, $opts = null)
147
+ {
148
+ $url = static::classUrl() . '/upcoming';
149
+ list($response, $opts) = static::_staticRequest('get', $url, $params, $opts);
150
+ $obj = Util\Util::convertToStripeObject($response->json, $opts);
151
+ $obj->setLastResponse($response);
152
+
153
+ return $obj;
154
+ }
155
 
156
  /**
157
+ * @param string $id the ID of the invoice on which to retrieve the lines
158
+ * @param null|array $params
159
+ * @param null|array|string $opts
160
+ *
161
+ * @throws StripeExceptionApiErrorException if the request fails
162
+ *
163
+ * @return \Stripe\Collection the list of lines (InvoiceLineItem)
164
  */
165
+ public static function allLines($id, $params = null, $opts = null)
166
+ {
167
+ return self::_allNestedResources($id, static::PATH_LINES, $params, $opts);
168
+ }
169
 
170
  /**
171
+ * @param null|array $params
172
+ * @param null|array|string $opts
173
+ *
174
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
175
  *
176
+ * @return Invoice the finalized invoice
177
  */
178
  public function finalizeInvoice($params = null, $opts = null)
179
  {
180
  $url = $this->instanceUrl() . '/finalize';
181
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
182
  $this->refreshFrom($response, $opts);
183
+
184
  return $this;
185
  }
186
 
187
  /**
188
+ * @param null|array $params
189
+ * @param null|array|string $opts
190
+ *
191
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
192
  *
193
+ * @return Invoice the uncollectible invoice
194
  */
195
  public function markUncollectible($params = null, $opts = null)
196
  {
197
  $url = $this->instanceUrl() . '/mark_uncollectible';
198
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
199
  $this->refreshFrom($response, $opts);
200
+
201
  return $this;
202
  }
203
 
204
  /**
205
+ * @param null|array $params
206
+ * @param null|array|string $opts
207
  *
208
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
209
+ *
210
+ * @return Invoice the paid invoice
211
  */
212
  public function pay($params = null, $opts = null)
213
  {
214
  $url = $this->instanceUrl() . '/pay';
215
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
216
  $this->refreshFrom($response, $opts);
217
+
218
  return $this;
219
  }
220
 
221
  /**
222
+ * @param null|array $params
223
+ * @param null|array|string $opts
224
+ *
225
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
226
  *
227
+ * @return Invoice the sent invoice
228
  */
229
  public function sendInvoice($params = null, $opts = null)
230
  {
231
  $url = $this->instanceUrl() . '/send';
232
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
233
  $this->refreshFrom($response, $opts);
234
+
235
  return $this;
236
  }
237
 
238
  /**
239
+ * @param null|array $params
240
+ * @param null|array|string $opts
241
  *
242
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
 
 
 
 
 
 
 
 
 
 
 
 
 
243
  *
244
+ * @return Invoice the voided invoice
245
  */
246
  public function voidInvoice($params = null, $opts = null)
247
  {
248
  $url = $this->instanceUrl() . '/void';
249
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
250
  $this->refreshFrom($response, $opts);
251
+
252
  return $this;
253
  }
254
  }
lib/stripe-gateway/lib/InvoiceItem.php CHANGED
@@ -3,33 +3,40 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class InvoiceItem
 
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $amount
11
- * @property string $currency
12
- * @property string $customer
13
- * @property int $date
14
- * @property string $description
15
- * @property bool $discountable
16
- * @property string $invoice
17
- * @property bool $livemode
18
- * @property StripeObject $metadata
19
- * @property mixed $period
20
- * @property Plan $plan
21
- * @property bool $proration
22
- * @property int $quantity
23
- * @property string $subscription
24
- * @property string $subscription_item
25
- * @property array $tax_rates
26
- * @property int $unit_amount
27
  *
28
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  */
30
  class InvoiceItem extends ApiResource
31
  {
32
- const OBJECT_NAME = "invoiceitem";
33
 
34
  use ApiOperations\All;
35
  use ApiOperations\Create;
3
  namespace Stripe;
4
 
5
  /**
6
+ * Sometimes you want to add a charge or credit to a customer, but actually charge
7
+ * or credit the customer's card only at the end of a regular billing cycle. This
8
+ * is useful for combining several charges (to minimize per-transaction fees), or
9
+ * for having Stripe tabulate your usage-based billing totals.
10
  *
11
+ * Related guide: <a
12
+ * href="https://stripe.com/docs/billing/invoices/subscription#adding-upcoming-invoice-items">Subscription
13
+ * Invoices</a>.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  *
15
+ * @property string $id Unique identifier for the object.
16
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
17
+ * @property int $amount Amount (in the <code>currency</code> specified) of the invoice item. This should always be equal to <code>unit_amount * quantity</code>.
18
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
19
+ * @property string|\Stripe\Customer $customer The ID of the customer who will be billed when this invoice item is billed.
20
+ * @property int $date Time at which the object was created. Measured in seconds since the Unix epoch.
21
+ * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users.
22
+ * @property bool $discountable If true, discounts will apply to this invoice item. Always false for prorations.
23
+ * @property null|string|\Stripe\Invoice $invoice The ID of the invoice this invoice item belongs to.
24
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
25
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
26
+ * @property \Stripe\StripeObject $period
27
+ * @property null|\Stripe\Plan $plan If the invoice item is a proration, the plan of the subscription that the proration was computed for.
28
+ * @property bool $proration Whether the invoice item was created automatically as a proration adjustment when the customer switched plans.
29
+ * @property int $quantity Quantity of units for the invoice item. If the invoice item is a proration, the quantity of the subscription that the proration was computed for.
30
+ * @property null|string|\Stripe\Subscription $subscription The subscription that this invoice item has been created for, if any.
31
+ * @property string $subscription_item The subscription item that this invoice item has been created for, if any.
32
+ * @property null|\Stripe\TaxRate[] $tax_rates The tax rates which apply to the invoice item. When set, the <code>default_tax_rates</code> on the invoice do not apply to this invoice item.
33
+ * @property bool $unified_proration For prorations this indicates whether Stripe automatically grouped multiple related debit and credit line items into a single combined line item.
34
+ * @property null|int $unit_amount Unit Amount (in the <code>currency</code> specified) of the invoice item.
35
+ * @property null|string $unit_amount_decimal Same as <code>unit_amount</code>, but contains a decimal value with at most 12 decimal places.
36
  */
37
  class InvoiceItem extends ApiResource
38
  {
39
+ const OBJECT_NAME = 'invoiceitem';
40
 
41
  use ApiOperations\All;
42
  use ApiOperations\Create;
lib/stripe-gateway/lib/InvoiceLineItem.php CHANGED
@@ -3,30 +3,27 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class InvoiceLineItem
7
- *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $amount
11
- * @property string $currency
12
- * @property string $description
13
- * @property bool $discountable
14
- * @property string $invoice_item
15
- * @property bool $livemode
16
- * @property StripeObject $metadata
17
- * @property mixed $period
18
- * @property Plan $plan
19
- * @property bool $proration
20
- * @property int $quantity
21
- * @property string $subscription
22
- * @property string $subscription_item
23
- * @property array $tax_amounts
24
- * @property array $tax_rates
25
- * @property string $type
26
- *
27
- * @package Stripe
28
  */
29
  class InvoiceLineItem extends ApiResource
30
  {
31
- const OBJECT_NAME = "line_item";
32
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * @property string $id Unique identifier for the object.
7
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
8
+ * @property int $amount The amount, in %s.
9
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
10
+ * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users.
11
+ * @property bool $discountable If true, discounts will apply to this line item. Always false for prorations.
12
+ * @property string $invoice_item The ID of the <a href="https://stripe.com/docs/api/invoiceitems">invoice item</a> associated with this line item if any.
13
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
14
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Note that for line items with <code>type=subscription</code> this will reflect the metadata of the subscription that caused the line item to be created.
15
+ * @property \Stripe\StripeObject $period
16
+ * @property null|\Stripe\Plan $plan The plan of the subscription, if the line item is a subscription or a proration.
17
+ * @property bool $proration Whether this is a proration.
18
+ * @property null|int $quantity The quantity of the subscription, if the line item is a subscription or a proration.
19
+ * @property null|string $subscription The subscription that the invoice item pertains to, if any.
20
+ * @property string $subscription_item The subscription item that generated this invoice item. Left empty if the line item is not an explicit result of a subscription.
21
+ * @property null|\Stripe\StripeObject[] $tax_amounts The amount of tax calculated per tax rate for this line item
22
+ * @property null|\Stripe\TaxRate[] $tax_rates The tax rates which apply to the line item.
23
+ * @property string $type A string identifying the type of the source of this line item, either an <code>invoiceitem</code> or a <code>subscription</code>.
24
+ * @property bool $unified_proration For prorations this indicates whether Stripe automatically grouped multiple related debit and credit line items into a single combined line item.
 
 
 
25
  */
26
  class InvoiceLineItem extends ApiResource
27
  {
28
+ const OBJECT_NAME = 'line_item';
29
  }
lib/stripe-gateway/lib/Issuing/Authorization.php CHANGED
@@ -3,66 +3,84 @@
3
  namespace Stripe\Issuing;
4
 
5
  /**
6
- * Class Authorization
 
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property bool $approved
11
- * @property string $authorization_method
12
- * @property int $authorized_amount
13
- * @property string $authorized_currency
14
- * @property \Stripe\Collection $balance_transactions
15
- * @property Card $card
16
- * @property Cardholder $cardholder
17
- * @property int $created
18
- * @property int $held_amount
19
- * @property string $held_currency
20
- * @property bool $is_held_amount_controllable
21
- * @property bool $livemode
22
- * @property mixed $merchant_data
23
- * @property \Stripe\StripeObject $metadata
24
- * @property int $pending_authorized_amount
25
- * @property int $pending_held_amount
26
- * @property mixed $request_history
27
- * @property string $status
28
- * @property \Stripe\Collection $transactions
29
- * @property mixed $verification_data
30
  *
31
- * @package Stripe\Issuing
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  */
33
  class Authorization extends \Stripe\ApiResource
34
  {
35
- const OBJECT_NAME = "issuing.authorization";
36
 
37
  use \Stripe\ApiOperations\All;
38
  use \Stripe\ApiOperations\Retrieve;
39
  use \Stripe\ApiOperations\Update;
40
 
41
  /**
42
- * @param array|null $params
43
- * @param array|string|null $options
44
  *
45
- * @return Authorization The approved authorization.
 
 
46
  */
47
- public function approve($params = null, $options = null)
48
  {
49
  $url = $this->instanceUrl() . '/approve';
50
- list($response, $opts) = $this->_request('post', $url, $params, $options);
51
  $this->refreshFrom($response, $opts);
 
52
  return $this;
53
  }
54
 
55
  /**
56
- * @param array|null $params
57
- * @param array|string|null $options
58
  *
59
- * @return Authorization The declined authorization.
 
 
60
  */
61
- public function decline($params = null, $options = null)
62
  {
63
  $url = $this->instanceUrl() . '/decline';
64
- list($response, $opts) = $this->_request('post', $url, $params, $options);
65
  $this->refreshFrom($response, $opts);
 
66
  return $this;
67
  }
68
  }
3
  namespace Stripe\Issuing;
4
 
5
  /**
6
+ * When an <a href="https://stripe.com/docs/issuing">issued card</a> is used to
7
+ * make a purchase, an Issuing <code>Authorization</code> object is created. <a
8
+ * href="https://stripe.com/docs/issuing/purchases/authorizations">Authorizations</a>
9
+ * must be approved for the purchase to be completed successfully.
10
  *
11
+ * Related guide: <a
12
+ * href="https://stripe.com/docs/issuing/purchases/authorizations">Issued Card
13
+ * Authorizations</a>.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  *
15
+ * @property string $id Unique identifier for the object.
16
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
17
+ * @property int $amount The total amount that was authorized or rejected. This amount is in the card's currency and in the <a href="https://stripe.com/docs/currencies#zero-decimal">smallest currency unit</a>.
18
+ * @property bool $approved Whether the authorization has been approved.
19
+ * @property string $authorization_method How the card details were provided.
20
+ * @property int $authorized_amount [DEPRECATED] The amount that has been authorized. This will be <code>0</code> when the object is created, and increase after it has been approved.
21
+ * @property string $authorized_currency [DEPRECATED] The currency that was presented to the cardholder for the authorization. Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
22
+ * @property \Stripe\BalanceTransaction[] $balance_transactions List of balance transactions associated with this authorization.
23
+ * @property \Stripe\Issuing\Card $card You can <a href="https://stripe.com/docs/issuing/cards">create physical or virtual cards</a> that are issued to cardholders.
24
+ * @property null|string|\Stripe\Issuing\Cardholder $cardholder The cardholder to whom this authorization belongs.
25
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
26
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
27
+ * @property int $held_amount [DEPRECATED] The amount the authorization is expected to be in <code>held_currency</code>. When Stripe holds funds from you, this is the amount reserved for the authorization. This will be <code>0</code> when the object is created, and increase after it has been approved. For multi-currency transactions, <code>held_amount</code> can be used to determine the expected exchange rate.
28
+ * @property string $held_currency [DEPRECATED] The currency of the <a href="https://stripe.com/docs/api#issuing_authorization_object-held_amount">held amount</a>. This will always be the card currency.
29
+ * @property bool $is_held_amount_controllable [DEPRECATED] If set <code>true</code>, you may provide <a href="https://stripe.com/docs/api/issuing/authorizations/approve#approve_issuing_authorization-held_amount">held_amount</a> to control how much to hold for the authorization.
30
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
31
+ * @property int $merchant_amount The total amount that was authorized or rejected. This amount is in the <code>merchant_currency</code> and in the <a href="https://stripe.com/docs/currencies#zero-decimal">smallest currency unit</a>.
32
+ * @property string $merchant_currency The currency that was presented to the cardholder for the authorization. Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
33
+ * @property \Stripe\StripeObject $merchant_data
34
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
35
+ * @property int $pending_authorized_amount [DEPRECATED] The amount the user is requesting to be authorized. This field will only be non-zero during an <code>issuing_authorization.request</code> webhook.
36
+ * @property int $pending_held_amount [DEPRECATED] The additional amount Stripe will hold if the authorization is approved. This field will only be non-zero during an <code>issuing_authorization.request</code> webhook.
37
+ * @property null|\Stripe\StripeObject $pending_request The pending authorization request. This field will only be non-null during an <code>issuing_authorization.request</code> webhook.
38
+ * @property \Stripe\StripeObject[] $request_history History of every time the authorization was approved/denied (whether approved/denied by you directly, or by Stripe based on your authorization_controls). If the merchant changes the authorization by performing an <a href="https://stripe.com/docs/issuing/purchases/authorizations">incremental authorization or partial capture</a>, you can look at request_history to see the previous states of the authorization.
39
+ * @property string $status The current status of the authorization in its lifecycle.
40
+ * @property \Stripe\Issuing\Transaction[] $transactions List of <a href="https://stripe.com/docs/api/issuing/transactions">transactions</a> associated with this authorization.
41
+ * @property \Stripe\StripeObject $verification_data
42
+ * @property null|string $wallet What, if any, digital wallet was used for this authorization. One of <code>apple_pay</code>, <code>google_pay</code>, or <code>samsung_pay</code>.
43
+ * @property null|string $wallet_provider [DEPRECATED] What, if any, digital wallet was used for this authorization. One of <code>apple_pay</code>, <code>google_pay</code>, or <code>samsung_pay</code>.
44
  */
45
  class Authorization extends \Stripe\ApiResource
46
  {
47
+ const OBJECT_NAME = 'issuing.authorization';
48
 
49
  use \Stripe\ApiOperations\All;
50
  use \Stripe\ApiOperations\Retrieve;
51
  use \Stripe\ApiOperations\Update;
52
 
53
  /**
54
+ * @param null|array $params
55
+ * @param null|array|string $opts
56
  *
57
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
58
+ *
59
+ * @return Authorization the approved authorization
60
  */
61
+ public function approve($params = null, $opts = null)
62
  {
63
  $url = $this->instanceUrl() . '/approve';
64
+ list($response, $opts) = $this->_request('post', $url, $params, $opts);
65
  $this->refreshFrom($response, $opts);
66
+
67
  return $this;
68
  }
69
 
70
  /**
71
+ * @param null|array $params
72
+ * @param null|array|string $opts
73
  *
74
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
75
+ *
76
+ * @return Authorization the declined authorization
77
  */
78
+ public function decline($params = null, $opts = null)
79
  {
80
  $url = $this->instanceUrl() . '/decline';
81
+ list($response, $opts) = $this->_request('post', $url, $params, $opts);
82
  $this->refreshFrom($response, $opts);
83
+
84
  return $this;
85
  }
86
  }
lib/stripe-gateway/lib/Issuing/Card.php CHANGED
@@ -3,31 +3,35 @@
3
  namespace Stripe\Issuing;
4
 
5
  /**
6
- * Class Card
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property mixed $authorization_controls
11
- * @property mixed $billing
12
- * @property string $brand
13
- * @property Cardholder $cardholder
14
- * @property int $created
15
- * @property string $currency
16
- * @property int $exp_month
17
- * @property int $exp_year
18
- * @property string $last4
19
- * @property bool $livemode
20
- * @property \Stripe\StripeObject $metadata
21
- * @property string $name
22
- * @property mixed $shipping
23
- * @property string $status
24
- * @property string $type
25
- *
26
- * @package Stripe\Issuing
 
 
 
27
  */
28
  class Card extends \Stripe\ApiResource
29
  {
30
- const OBJECT_NAME = "issuing.card";
31
 
32
  use \Stripe\ApiOperations\All;
33
  use \Stripe\ApiOperations\Create;
@@ -35,17 +39,20 @@ class Card extends \Stripe\ApiResource
35
  use \Stripe\ApiOperations\Update;
36
 
37
  /**
38
- * @param array|null $params
39
- * @param array|string|null $options
 
 
40
  *
41
- * @return CardDetails The card details associated with that issuing card.
42
  */
43
- public function details($params = null, $options = null)
44
  {
45
  $url = $this->instanceUrl() . '/details';
46
- list($response, $opts) = $this->_request('get', $url, $params, $options);
47
  $obj = \Stripe\Util\Util::convertToStripeObject($response, $opts);
48
  $obj->setLastResponse($response);
 
49
  return $obj;
50
  }
51
  }
3
  namespace Stripe\Issuing;
4
 
5
  /**
6
+ * You can <a href="https://stripe.com/docs/issuing/cards">create physical or
7
+ * virtual cards</a> that are issued to cardholders.
8
  *
9
+ * @property string $id Unique identifier for the object.
10
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
11
+ * @property \Stripe\StripeObject $authorization_controls
12
+ * @property string $brand The brand of the card.
13
+ * @property null|string $cancellation_reason The reason why the card was canceled.
14
+ * @property \Stripe\Issuing\Cardholder $cardholder <p>An Issuing <code>Cardholder</code> object represents an individual or business entity who is <a href="https://stripe.com/docs/issuing">issued</a> cards.</p><p>Related guide: <a href="https://stripe.com/docs/issuing/cards#create-cardholder">How to create a Cardholder</a></p>
15
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
16
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
17
+ * @property int $exp_month The expiration month of the card.
18
+ * @property int $exp_year The expiration year of the card.
19
+ * @property string $last4 The last 4 digits of the card number.
20
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
21
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
22
+ * @property string $name [DEPRECATED] The name of the cardholder, printed on the card. Refer to <code>cardholder.name</code> instead.
23
+ * @property null|\Stripe\StripeObject $pin Metadata about the PIN on the card.
24
+ * @property null|string|\Stripe\Issuing\Card $replaced_by The latest card that replaces this card, if any.
25
+ * @property null|string|\Stripe\Issuing\Card $replacement_for The card this card replaces, if any.
26
+ * @property null|string $replacement_reason The reason why the previous card needed to be replaced.
27
+ * @property null|\Stripe\StripeObject $shipping Where and how the card will be shipped.
28
+ * @property \Stripe\StripeObject $spending_controls
29
+ * @property string $status Whether authorizations can be approved on this card.
30
+ * @property string $type The type of the card.
31
  */
32
  class Card extends \Stripe\ApiResource
33
  {
34
+ const OBJECT_NAME = 'issuing.card';
35
 
36
  use \Stripe\ApiOperations\All;
37
  use \Stripe\ApiOperations\Create;
39
  use \Stripe\ApiOperations\Update;
40
 
41
  /**
42
+ * @param null|array $params
43
+ * @param null|array|string $opts
44
+ *
45
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
46
  *
47
+ * @return \Stripe\Issuing\CardDetails the card details associated with that issuing card
48
  */
49
+ public function details($params = null, $opts = null)
50
  {
51
  $url = $this->instanceUrl() . '/details';
52
+ list($response, $opts) = $this->_request('get', $url, $params, $opts);
53
  $obj = \Stripe\Util\Util::convertToStripeObject($response, $opts);
54
  $obj->setLastResponse($response);
55
+
56
  return $obj;
57
  }
58
  }
lib/stripe-gateway/lib/Issuing/CardDetails.php CHANGED
@@ -3,7 +3,7 @@
3
  namespace Stripe\Issuing;
4
 
5
  /**
6
- * Class CardDetails
7
  *
8
  * @property string $id
9
  * @property string $object
@@ -12,10 +12,8 @@ namespace Stripe\Issuing;
12
  * @property int $exp_month
13
  * @property int $exp_year
14
  * @property string $number
15
- *
16
- * @package Stripe\Issuing
17
  */
18
  class CardDetails extends \Stripe\ApiResource
19
  {
20
- const OBJECT_NAME = "issuing.card_details";
21
  }
3
  namespace Stripe\Issuing;
4
 
5
  /**
6
+ * Class CardDetails.
7
  *
8
  * @property string $id
9
  * @property string $object
12
  * @property int $exp_month
13
  * @property int $exp_year
14
  * @property string $number
 
 
15
  */
16
  class CardDetails extends \Stripe\ApiResource
17
  {
18
+ const OBJECT_NAME = 'issuing.card_details';
19
  }
lib/stripe-gateway/lib/Issuing/Cardholder.php CHANGED
@@ -3,25 +3,34 @@
3
  namespace Stripe\Issuing;
4
 
5
  /**
6
- * Class Cardholder
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property mixed $billing
11
- * @property int $created
12
- * @property string $email
13
- * @property bool $livemode
14
- * @property \Stripe\StripeObject $metadata
15
- * @property string $name
16
- * @property string $phone_number
17
- * @property string $status
18
- * @property string $type
19
  *
20
- * @package Stripe\Issuing
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  */
22
  class Cardholder extends \Stripe\ApiResource
23
  {
24
- const OBJECT_NAME = "issuing.cardholder";
25
 
26
  use \Stripe\ApiOperations\All;
27
  use \Stripe\ApiOperations\Create;
3
  namespace Stripe\Issuing;
4
 
5
  /**
6
+ * An Issuing <code>Cardholder</code> object represents an individual or business
7
+ * entity who is <a href="https://stripe.com/docs/issuing">issued</a> cards.
8
  *
9
+ * Related guide: <a
10
+ * href="https://stripe.com/docs/issuing/cards#create-cardholder">How to create a
11
+ * Cardholder</a>
 
 
 
 
 
 
 
 
12
  *
13
+ * @property string $id Unique identifier for the object.
14
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
15
+ * @property null|\Stripe\StripeObject $authorization_controls [DEPRECATED] Spending rules that give you some control over how this cardholder's cards can be used. Refer to our <a href="https://stripe.com/docs/issuing/purchases/authorizations">authorizations</a> documentation for more details.
16
+ * @property \Stripe\StripeObject $billing
17
+ * @property null|\Stripe\StripeObject $company Additional information about a <code>company</code> cardholder.
18
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
19
+ * @property null|string $email The cardholder's email address.
20
+ * @property null|\Stripe\StripeObject $individual Additional information about an <code>individual</code> cardholder.
21
+ * @property bool $is_default [DEPRECATED] Whether or not this cardholder is the default cardholder.
22
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
23
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
24
+ * @property string $name The cardholder's name. This will be printed on cards issued to them.
25
+ * @property null|string $phone_number The cardholder's phone number.
26
+ * @property \Stripe\StripeObject $requirements
27
+ * @property null|\Stripe\StripeObject $spending_controls Spending rules that give you some control over how this cardholder's cards can be used. Refer to our <a href="https://stripe.com/docs/issuing/purchases/authorizations">authorizations</a> documentation for more details.
28
+ * @property string $status Specifies whether to permit authorizations on this cardholder's cards.
29
+ * @property string $type One of <code>individual</code> or <code>company</code>.
30
  */
31
  class Cardholder extends \Stripe\ApiResource
32
  {
33
+ const OBJECT_NAME = 'issuing.cardholder';
34
 
35
  use \Stripe\ApiOperations\All;
36
  use \Stripe\ApiOperations\Create;
lib/stripe-gateway/lib/Issuing/Dispute.php CHANGED
@@ -3,25 +3,30 @@
3
  namespace Stripe\Issuing;
4
 
5
  /**
6
- * Class Dispute
 
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $amount
11
- * @property int $created
12
- * @property string $currency
13
- * @property mixed $evidence
14
- * @property bool $livemode
15
- * @property \Stripe\StripeObject $metadata
16
- * @property string $reason
17
- * @property string $status
18
- * @property Transaction $transaction
19
  *
20
- * @package Stripe\Issuing
 
 
 
 
 
 
 
 
 
 
21
  */
22
  class Dispute extends \Stripe\ApiResource
23
  {
24
- const OBJECT_NAME = "issuing.dispute";
25
 
26
  use \Stripe\ApiOperations\All;
27
  use \Stripe\ApiOperations\Create;
3
  namespace Stripe\Issuing;
4
 
5
  /**
6
+ * As a <a href="https://stripe.com/docs/issuing">card issuer</a>, you can <a
7
+ * href="https://stripe.com/docs/issuing/purchases/disputes">dispute</a>
8
+ * transactions that you do not recognize, suspect to be fraudulent, or have some
9
+ * other issue.
10
  *
11
+ * Related guide: <a
12
+ * href="https://stripe.com/docs/issuing/purchases/disputes">Disputing
13
+ * Transactions</a>
 
 
 
 
 
 
 
 
14
  *
15
+ * @property string $id Unique identifier for the object.
16
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
17
+ * @property int $amount Disputed amount. Usually the amount of the <code>disputed_transaction</code>, but can differ (usually because of currency fluctuation or because only part of the order is disputed).
18
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
19
+ * @property string $currency The currency the <code>disputed_transaction</code> was made in.
20
+ * @property string|\Stripe\Issuing\Transaction $disputed_transaction The transaction being disputed.
21
+ * @property \Stripe\StripeObject $evidence
22
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
23
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
24
+ * @property string $reason Reason for this dispute. One of <code>duplicate</code>, <code>product_not_received</code>, <code>fraudulent</code>, or <code>other</code>.
25
+ * @property string $status Current status of dispute. One of <code>unsubmitted</code>, <code>under_review</code>, <code>won</code>, or <code>lost</code>.
26
  */
27
  class Dispute extends \Stripe\ApiResource
28
  {
29
+ const OBJECT_NAME = 'issuing.dispute';
30
 
31
  use \Stripe\ApiOperations\All;
32
  use \Stripe\ApiOperations\Create;
lib/stripe-gateway/lib/Issuing/Transaction.php CHANGED
@@ -3,33 +3,37 @@
3
  namespace Stripe\Issuing;
4
 
5
  /**
6
- * Class Transaction
 
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $amount
11
- * @property string $authorization
12
- * @property string $balance_transaction
13
- * @property string $card
14
- * @property string $cardholder
15
- * @property int $created
16
- * @property string $currency
17
- * @property string $dispute
18
- * @property bool $livemode
19
- * @property mixed $merchant_data
20
- * @property int $merchant_amount
21
- * @property string $merchant_currency
22
- * @property \Stripe\StripeObject $metadata
23
- * @property string $type
24
  *
25
- * @package Stripe\Issuing
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  */
27
  class Transaction extends \Stripe\ApiResource
28
  {
29
- const OBJECT_NAME = "issuing.transaction";
30
 
31
  use \Stripe\ApiOperations\All;
32
- use \Stripe\ApiOperations\Create;
33
  use \Stripe\ApiOperations\Retrieve;
34
  use \Stripe\ApiOperations\Update;
35
  }
3
  namespace Stripe\Issuing;
4
 
5
  /**
6
+ * Any use of an <a href="https://stripe.com/docs/issuing">issued card</a> that
7
+ * results in funds entering or leaving your Stripe account, such as a completed
8
+ * purchase or refund, is represented by an Issuing <code>Transaction</code>
9
+ * object.
10
  *
11
+ * Related guide: <a
12
+ * href="https://stripe.com/docs/issuing/purchases/transactions">Issued Card
13
+ * Transactions</a>.
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  *
15
+ * @property string $id Unique identifier for the object.
16
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
17
+ * @property int $amount The transaction amount, which will be reflected in your balance. This amount is in your currency and in the <a href="https://stripe.com/docs/currencies#zero-decimal">smallest currency unit</a>.
18
+ * @property null|string|\Stripe\Issuing\Authorization $authorization The <code>Authorization</code> object that led to this transaction.
19
+ * @property null|string|\Stripe\BalanceTransaction $balance_transaction ID of the <a href="https://stripe.com/docs/api/balance_transactions">balance transaction</a> associated with this transaction.
20
+ * @property string|\Stripe\Issuing\Card $card The card used to make this transaction.
21
+ * @property null|string|\Stripe\Issuing\Cardholder $cardholder The cardholder to whom this transaction belongs.
22
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
23
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
24
+ * @property null|string|\Stripe\Issuing\Dispute $dispute If you've disputed the transaction, the ID of the dispute.
25
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
26
+ * @property int $merchant_amount The amount that the merchant will receive, denominated in <code>merchant_currency</code> and in the <a href="https://stripe.com/docs/currencies#zero-decimal">smallest currency unit</a>. It will be different from <code>amount</code> if the merchant is taking payment in a different currency.
27
+ * @property string $merchant_currency The currency with which the merchant is taking payment.
28
+ * @property \Stripe\StripeObject $merchant_data
29
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
30
+ * @property string $type The nature of the transaction.
31
  */
32
  class Transaction extends \Stripe\ApiResource
33
  {
34
+ const OBJECT_NAME = 'issuing.transaction';
35
 
36
  use \Stripe\ApiOperations\All;
 
37
  use \Stripe\ApiOperations\Retrieve;
38
  use \Stripe\ApiOperations\Update;
39
  }
lib/stripe-gateway/lib/LoginLink.php CHANGED
@@ -3,15 +3,11 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class LoginLink
7
- *
8
- * @property string $object
9
- * @property int $created
10
- * @property string $url
11
- *
12
- * @package Stripe
13
  */
14
  class LoginLink extends ApiResource
15
  {
16
- const OBJECT_NAME = "login_link";
17
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
7
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
8
+ * @property string $url The URL for the login link.
 
 
 
 
9
  */
10
  class LoginLink extends ApiResource
11
  {
12
+ const OBJECT_NAME = 'login_link';
13
  }
lib/stripe-gateway/lib/Mandate.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe;
4
+
5
+ /**
6
+ * A Mandate is a record of the permission a customer has given you to debit their
7
+ * payment method.
8
+ *
9
+ * @property string $id Unique identifier for the object.
10
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
11
+ * @property \Stripe\StripeObject $customer_acceptance
12
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
13
+ * @property \Stripe\StripeObject $multi_use
14
+ * @property string|\Stripe\PaymentMethod $payment_method ID of the payment method associated with this mandate.
15
+ * @property \Stripe\StripeObject $payment_method_details
16
+ * @property \Stripe\StripeObject $single_use
17
+ * @property string $status The status of the mandate, which indicates whether it can be used to initiate a payment.
18
+ * @property string $type The type of the mandate.
19
+ */
20
+ class Mandate extends ApiResource
21
+ {
22
+ const OBJECT_NAME = 'mandate';
23
+
24
+ use ApiOperations\Retrieve;
25
+ }
lib/stripe-gateway/lib/OAuth.php CHANGED
@@ -7,19 +7,19 @@ abstract class OAuth
7
  /**
8
  * Generates a URL to Stripe's OAuth form.
9
  *
10
- * @param array|null $params
11
- * @param array|null $opts
12
  *
13
- * @return string The URL to Stripe's OAuth form.
14
  */
15
  public static function authorizeUrl($params = null, $opts = null)
16
  {
17
  $params = $params ?: [];
18
 
19
- $base = ($opts && array_key_exists('connect_base', $opts)) ? $opts['connect_base'] : Stripe::$connectBase;
20
 
21
  $params['client_id'] = self::_getClientId($params);
22
- if (!array_key_exists('response_type', $params)) {
23
  $params['response_type'] = 'code';
24
  }
25
  $query = Util\Util::encodeParameters($params);
@@ -31,14 +31,16 @@ abstract class OAuth
31
  * Use an authoriztion code to connect an account to your platform and
32
  * fetch the user's credentials.
33
  *
34
- * @param array|null $params
35
- * @param array|null $opts
36
  *
37
- * @return StripeObject Object containing the response from the API.
 
 
38
  */
39
  public static function token($params = null, $opts = null)
40
  {
41
- $base = ($opts && array_key_exists('connect_base', $opts)) ? $opts['connect_base'] : Stripe::$connectBase;
42
  $requestor = new ApiRequestor(null, $base);
43
  list($response, $apiKey) = $requestor->request(
44
  'post',
@@ -46,21 +48,24 @@ abstract class OAuth
46
  $params,
47
  null
48
  );
 
49
  return Util\Util::convertToStripeObject($response->json, $opts);
50
  }
51
 
52
  /**
53
  * Disconnects an account from your platform.
54
  *
55
- * @param array|null $params
56
- * @param array|null $opts
 
 
57
  *
58
- * @return StripeObject Object containing the response from the API.
59
  */
60
  public static function deauthorize($params = null, $opts = null)
61
  {
62
  $params = $params ?: [];
63
- $base = ($opts && array_key_exists('connect_base', $opts)) ? $opts['connect_base'] : Stripe::$connectBase;
64
  $requestor = new ApiRequestor(null, $base);
65
  $params['client_id'] = self::_getClientId($params);
66
  list($response, $apiKey) = $requestor->request(
@@ -69,16 +74,17 @@ abstract class OAuth
69
  $params,
70
  null
71
  );
 
72
  return Util\Util::convertToStripeObject($response->json, $opts);
73
  }
74
 
75
  private static function _getClientId($params = null)
76
  {
77
- $clientId = ($params && array_key_exists('client_id', $params)) ? $params['client_id'] : null;
78
- if ($clientId === null) {
79
  $clientId = Stripe::getClientId();
80
  }
81
- if ($clientId === null) {
82
  $msg = 'No client_id provided. (HINT: set your client_id using '
83
  . '"Stripe::setClientId(<CLIENT-ID>)". You can find your client_ids '
84
  . 'in your Stripe dashboard at '
@@ -86,8 +92,10 @@ abstract class OAuth
86
  . 'after registering your account as a platform. See '
87
  . 'https://stripe.com/docs/connect/standard-accounts for details, '
88
  . 'or email support@stripe.com if you have any questions.';
89
- throw new Error\Authentication($msg);
 
90
  }
 
91
  return $clientId;
92
  }
93
  }
7
  /**
8
  * Generates a URL to Stripe's OAuth form.
9
  *
10
+ * @param null|array $params
11
+ * @param null|array $opts
12
  *
13
+ * @return string the URL to Stripe's OAuth form
14
  */
15
  public static function authorizeUrl($params = null, $opts = null)
16
  {
17
  $params = $params ?: [];
18
 
19
+ $base = ($opts && \array_key_exists('connect_base', $opts)) ? $opts['connect_base'] : Stripe::$connectBase;
20
 
21
  $params['client_id'] = self::_getClientId($params);
22
+ if (!\array_key_exists('response_type', $params)) {
23
  $params['response_type'] = 'code';
24
  }
25
  $query = Util\Util::encodeParameters($params);
31
  * Use an authoriztion code to connect an account to your platform and
32
  * fetch the user's credentials.
33
  *
34
+ * @param null|array $params
35
+ * @param null|array $opts
36
  *
37
+ * @throws \Stripe\Exception\OAuth\OAuthErrorException if the request fails
38
+ *
39
+ * @return StripeObject object containing the response from the API
40
  */
41
  public static function token($params = null, $opts = null)
42
  {
43
+ $base = ($opts && \array_key_exists('connect_base', $opts)) ? $opts['connect_base'] : Stripe::$connectBase;
44
  $requestor = new ApiRequestor(null, $base);
45
  list($response, $apiKey) = $requestor->request(
46
  'post',
48
  $params,
49
  null
50
  );
51
+
52
  return Util\Util::convertToStripeObject($response->json, $opts);
53
  }
54
 
55
  /**
56
  * Disconnects an account from your platform.
57
  *
58
+ * @param null|array $params
59
+ * @param null|array $opts
60
+ *
61
+ * @throws \Stripe\Exception\OAuth\OAuthErrorException if the request fails
62
  *
63
+ * @return StripeObject object containing the response from the API
64
  */
65
  public static function deauthorize($params = null, $opts = null)
66
  {
67
  $params = $params ?: [];
68
+ $base = ($opts && \array_key_exists('connect_base', $opts)) ? $opts['connect_base'] : Stripe::$connectBase;
69
  $requestor = new ApiRequestor(null, $base);
70
  $params['client_id'] = self::_getClientId($params);
71
  list($response, $apiKey) = $requestor->request(
74
  $params,
75
  null
76
  );
77
+
78
  return Util\Util::convertToStripeObject($response->json, $opts);
79
  }
80
 
81
  private static function _getClientId($params = null)
82
  {
83
+ $clientId = ($params && \array_key_exists('client_id', $params)) ? $params['client_id'] : null;
84
+ if (null === $clientId) {
85
  $clientId = Stripe::getClientId();
86
  }
87
+ if (null === $clientId) {
88
  $msg = 'No client_id provided. (HINT: set your client_id using '
89
  . '"Stripe::setClientId(<CLIENT-ID>)". You can find your client_ids '
90
  . 'in your Stripe dashboard at '
92
  . 'after registering your account as a platform. See '
93
  . 'https://stripe.com/docs/connect/standard-accounts for details, '
94
  . 'or email support@stripe.com if you have any questions.';
95
+
96
+ throw new Exception\AuthenticationException($msg);
97
  }
98
+
99
  return $clientId;
100
  }
101
  }
lib/stripe-gateway/lib/OAuthErrorObject.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Stripe;
4
+
5
+ /**
6
+ * Class OAuthErrorObject.
7
+ *
8
+ * @property string $error
9
+ * @property string $error_description
10
+ */
11
+ class OAuthErrorObject extends StripeObject
12
+ {
13
+ /**
14
+ * Refreshes this object using the provided values.
15
+ *
16
+ * @param array $values
17
+ * @param null|array|string|Util\RequestOptions $opts
18
+ * @param bool $partial defaults to false
19
+ */
20
+ public function refreshFrom($values, $opts, $partial = false)
21
+ {
22
+ // Unlike most other API resources, the API will omit attributes in
23
+ // error objects when they have a null value. We manually set default
24
+ // values here to facilitate generic error handling.
25
+ $values = \array_merge([
26
+ 'error' => null,
27
+ 'error_description' => null,
28
+ ], $values);
29
+ parent::refreshFrom($values, $opts, $partial);
30
+ }
31
+ }
lib/stripe-gateway/lib/Order.php CHANGED
@@ -3,37 +3,41 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class Order
 
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $amount
11
- * @property int $amount_returned
12
- * @property string $application
13
- * @property int $application_fee
14
- * @property string $charge
15
- * @property int $created
16
- * @property string $currency
17
- * @property string $customer
18
- * @property string $email
19
- * @property string $external_coupon_code
20
- * @property OrderItem[] $items
21
- * @property bool $livemode
22
- * @property StripeObject $metadata
23
- * @property Collection $returns
24
- * @property string $selected_shipping_method
25
- * @property mixed $shipping
26
- * @property array $shipping_methods
27
- * @property string $status
28
- * @property mixed $status_transitions
29
- * @property int $updated
30
- * @property string $upstream_id
31
  *
32
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  */
34
  class Order extends ApiResource
35
  {
36
- const OBJECT_NAME = "order";
37
 
38
  use ApiOperations\All;
39
  use ApiOperations\Create;
@@ -41,23 +45,35 @@ class Order extends ApiResource
41
  use ApiOperations\Update;
42
 
43
  /**
44
- * @return Order The paid order.
 
 
 
 
 
45
  */
46
- public function pay($params = null, $opts = null)
47
  {
48
- $url = $this->instanceUrl() . '/pay';
49
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
50
- $this->refreshFrom($response, $opts);
51
- return $this;
52
  }
53
 
54
  /**
55
- * @return OrderReturn The newly created return.
 
 
 
 
 
56
  */
57
- public function returnOrder($params = null, $opts = null)
58
  {
59
- $url = $this->instanceUrl() . '/returns';
60
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
61
- return Util\Util::convertToStripeObject($response, $opts);
 
 
62
  }
63
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * Order objects are created to handle end customers' purchases of previously
7
+ * defined <a href="https://stripe.com/docs/api#products">products</a>. You can
8
+ * create, retrieve, and pay individual orders, as well as list all orders. Orders
9
+ * are identified by a unique, random ID.
10
  *
11
+ * Related guide: <a href="https://stripe.com/docs/orders">Tax, Shipping, and
12
+ * Inventory</a>.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  *
14
+ * @property string $id Unique identifier for the object.
15
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
16
+ * @property int $amount A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount for the order.
17
+ * @property null|int $amount_returned The total amount that was returned to the customer.
18
+ * @property null|string $application ID of the Connect Application that created the order.
19
+ * @property null|int $application_fee A fee in cents that will be applied to the order and transferred to the application owner’s Stripe account. The request must be made with an OAuth key or the Stripe-Account header in order to take an application fee. For more information, see the application fees documentation.
20
+ * @property null|string|\Stripe\Charge $charge The ID of the payment used to pay for the order. Present if the order status is <code>paid</code>, <code>fulfilled</code>, or <code>refunded</code>.
21
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
22
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
23
+ * @property null|string|\Stripe\Customer $customer The customer used for the order.
24
+ * @property null|string $email The email address of the customer placing the order.
25
+ * @property string $external_coupon_code External coupon code to load for this order.
26
+ * @property \Stripe\OrderItem[] $items List of items constituting the order. An order can have up to 25 items.
27
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
28
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
29
+ * @property null|\Stripe\Collection $returns A list of returns that have taken place for this order.
30
+ * @property null|string $selected_shipping_method The shipping method that is currently selected for this order, if any. If present, it is equal to one of the <code>id</code>s of shipping methods in the <code>shipping_methods</code> array. At order creation time, if there are multiple shipping methods, Stripe will automatically selected the first method.
31
+ * @property null|\Stripe\StripeObject $shipping The shipping address for the order. Present if the order is for goods to be shipped.
32
+ * @property null|\Stripe\StripeObject[] $shipping_methods A list of supported shipping methods for this order. The desired shipping method can be specified either by updating the order, or when paying it.
33
+ * @property string $status Current order status. One of <code>created</code>, <code>paid</code>, <code>canceled</code>, <code>fulfilled</code>, or <code>returned</code>. More details in the <a href="https://stripe.com/docs/orders/guide#understanding-order-statuses">Orders Guide</a>.
34
+ * @property null|\Stripe\StripeObject $status_transitions The timestamps at which the order status was updated.
35
+ * @property null|int $updated Time at which the object was last updated. Measured in seconds since the Unix epoch.
36
+ * @property string $upstream_id The user's order ID if it is different from the Stripe order ID.
37
  */
38
  class Order extends ApiResource
39
  {
40
+ const OBJECT_NAME = 'order';
41
 
42
  use ApiOperations\All;
43
  use ApiOperations\Create;
45
  use ApiOperations\Update;
46
 
47
  /**
48
+ * @param null|array $params
49
+ * @param null|array|string $opts
50
+ *
51
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
52
+ *
53
+ * @return \Stripe\OrderReturn the newly created return
54
  */
55
+ public function returnOrder($params = null, $opts = null)
56
  {
57
+ $url = $this->instanceUrl() . '/returns';
58
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
59
+
60
+ return Util\Util::convertToStripeObject($response, $opts);
61
  }
62
 
63
  /**
64
+ * @param null|array $params
65
+ * @param null|array|string $opts
66
+ *
67
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
68
+ *
69
+ * @return Order the paid order
70
  */
71
+ public function pay($params = null, $opts = null)
72
  {
73
+ $url = $this->instanceUrl() . '/pay';
74
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
75
+ $this->refreshFrom($response, $opts);
76
+
77
+ return $this;
78
  }
79
  }
lib/stripe-gateway/lib/OrderItem.php CHANGED
@@ -3,7 +3,7 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class OrderItem
7
  *
8
  * @property string $object
9
  * @property int $amount
@@ -12,10 +12,8 @@ namespace Stripe;
12
  * @property string $parent
13
  * @property int $quantity
14
  * @property string $type
15
- *
16
- * @package Stripe
17
  */
18
  class OrderItem extends StripeObject
19
  {
20
- const OBJECT_NAME = "order_item";
21
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * Class OrderItem.
7
  *
8
  * @property string $object
9
  * @property int $amount
12
  * @property string $parent
13
  * @property int $quantity
14
  * @property string $type
 
 
15
  */
16
  class OrderItem extends StripeObject
17
  {
18
+ const OBJECT_NAME = 'order_item';
19
  }
lib/stripe-gateway/lib/OrderReturn.php CHANGED
@@ -3,23 +3,27 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class OrderReturn
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $amount
11
- * @property int $created
12
- * @property string $currency
13
- * @property OrderItem[] $items
14
- * @property bool $livemode
15
- * @property string $order
16
- * @property string $refund
17
  *
18
- * @package Stripe
 
 
 
 
 
 
 
 
19
  */
20
  class OrderReturn extends ApiResource
21
  {
22
- const OBJECT_NAME = "order_return";
23
 
24
  use ApiOperations\All;
25
  use ApiOperations\Retrieve;
3
  namespace Stripe;
4
 
5
  /**
6
+ * A return represents the full or partial return of a number of <a
7
+ * href="https://stripe.com/docs/api#order_items">order items</a>. Returns always
8
+ * belong to an order, and may optionally contain a refund.
9
  *
10
+ * Related guide: <a
11
+ * href="https://stripe.com/docs/orders/guide#handling-returns">Handling
12
+ * Returns</a>.
 
 
 
 
 
 
13
  *
14
+ * @property string $id Unique identifier for the object.
15
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
16
+ * @property int $amount A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount for the returned line item.
17
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
18
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
19
+ * @property \Stripe\OrderItem[] $items The items included in this order return.
20
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
21
+ * @property null|string|\Stripe\Order $order The order that this return includes items from.
22
+ * @property null|string|\Stripe\Refund $refund The ID of the refund issued for this return.
23
  */
24
  class OrderReturn extends ApiResource
25
  {
26
+ const OBJECT_NAME = 'order_return';
27
 
28
  use ApiOperations\All;
29
  use ApiOperations\Retrieve;
lib/stripe-gateway/lib/PaymentIntent.php CHANGED
@@ -3,104 +3,121 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class PaymentIntent
 
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $amount
11
- * @property int $amount_capturable
12
- * @property int $amount_received
13
- * @property string $application
14
- * @property int $application_fee_amount
15
- * @property int $canceled_at
16
- * @property string $cancellation_reason
17
- * @property string $capture_method
18
- * @property Collection $charges
19
- * @property string $client_secret
20
- * @property string $confirmation_method
21
- * @property int $created
22
- * @property string $currency
23
- * @property string $customer
24
- * @property string $description
25
- * @property mixed $last_payment_error
26
- * @property bool $livemode
27
- * @property StripeObject $metadata
28
- * @property mixed $next_action
29
- * @property string $on_behalf_of
30
- * @property string $payment_method
31
- * @property string[] $payment_method_types
32
- * @property string $receipt_email
33
- * @property string $review
34
- * @property mixed $shipping
35
- * @property string $source
36
- * @property string $statement_descriptor
37
- * @property string $status
38
- * @property mixed $transfer_data
39
- * @property string $transfer_group
40
  *
41
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  */
43
  class PaymentIntent extends ApiResource
44
  {
45
- const OBJECT_NAME = "payment_intent";
46
 
47
  use ApiOperations\All;
48
  use ApiOperations\Create;
49
  use ApiOperations\Retrieve;
50
  use ApiOperations\Update;
51
 
52
- /**
53
- * These constants are possible representations of the status field.
54
- *
55
- * @link https://stripe.com/docs/api/payment_intents/object#payment_intent_object-status
56
- */
57
- const STATUS_CANCELED = 'canceled';
58
- const STATUS_PROCESSING = 'processing';
59
- const STATUS_REQUIRES_ACTION = 'requires_action';
60
- const STATUS_REQUIRES_CAPTURE = 'requires_capture';
61
- const STATUS_REQUIRES_CONFIRMATION = 'requires_confirmation';
62
  const STATUS_REQUIRES_PAYMENT_METHOD = 'requires_payment_method';
63
- const STATUS_SUCCEEDED = 'succeeded';
64
 
65
  /**
66
- * @param array|null $params
67
- * @param array|string|null $options
68
  *
69
- * @return PaymentIntent The canceled payment intent.
 
 
70
  */
71
- public function cancel($params = null, $options = null)
72
  {
73
  $url = $this->instanceUrl() . '/cancel';
74
- list($response, $opts) = $this->_request('post', $url, $params, $options);
75
  $this->refreshFrom($response, $opts);
 
76
  return $this;
77
  }
78
 
79
  /**
80
- * @param array|null $params
81
- * @param array|string|null $options
 
 
82
  *
83
- * @return PaymentIntent The captured payment intent.
84
  */
85
- public function capture($params = null, $options = null)
86
  {
87
  $url = $this->instanceUrl() . '/capture';
88
- list($response, $opts) = $this->_request('post', $url, $params, $options);
89
  $this->refreshFrom($response, $opts);
 
90
  return $this;
91
  }
92
 
93
  /**
94
- * @param array|null $params
95
- * @param array|string|null $options
 
 
96
  *
97
- * @return PaymentIntent The confirmed payment intent.
98
  */
99
- public function confirm($params = null, $options = null)
100
  {
101
  $url = $this->instanceUrl() . '/confirm';
102
- list($response, $opts) = $this->_request('post', $url, $params, $options);
103
  $this->refreshFrom($response, $opts);
 
104
  return $this;
105
  }
106
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * A PaymentIntent guides you through the process of collecting a payment from your
7
+ * customer. We recommend that you create exactly one PaymentIntent for each order
8
+ * or customer session in your system. You can reference the PaymentIntent later to
9
+ * see the history of payment attempts for a particular session.
10
  *
11
+ * A PaymentIntent transitions through <a
12
+ * href="https://stripe.com/docs/payments/intents#intent-statuses">multiple
13
+ * statuses</a> throughout its lifetime as it interfaces with Stripe.js to perform
14
+ * authentication flows and ultimately creates at most one successful charge.
15
+ *
16
+ * Related guide: <a
17
+ * href="https://stripe.com/docs/payments/payment-intents">Payment Intents API</a>.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  *
19
+ * @property string $id Unique identifier for the object.
20
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
21
+ * @property int $amount Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the <a href="https://stripe.com/docs/currencies#zero-decimal">smallest currency unit</a> (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or <a href="https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts">equivalent in charge currency</a>. The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
22
+ * @property int $amount_capturable Amount that can be captured from this PaymentIntent.
23
+ * @property int $amount_received Amount that was collected by this PaymentIntent.
24
+ * @property null|string|\Stripe\StripeObject $application ID of the Connect application that created the PaymentIntent.
25
+ * @property null|int $application_fee_amount The amount of the application fee (if any) for the resulting payment. See the PaymentIntents <a href="https://stripe.com/docs/payments/connected-accounts">use case for connected accounts</a> for details.
26
+ * @property null|int $canceled_at Populated when <code>status</code> is <code>canceled</code>, this is the time at which the PaymentIntent was canceled. Measured in seconds since the Unix epoch.
27
+ * @property null|string $cancellation_reason Reason for cancellation of this PaymentIntent, either user-provided (<code>duplicate</code>, <code>fraudulent</code>, <code>requested_by_customer</code>, or <code>abandoned</code>) or generated by Stripe internally (<code>failed_invoice</code>, <code>void_invoice</code>, or <code>automatic</code>).
28
+ * @property string $capture_method Controls when the funds will be captured from the customer's account.
29
+ * @property \Stripe\Collection $charges Charges that were created by this PaymentIntent, if any.
30
+ * @property null|string $client_secret <p>The client secret of this PaymentIntent. Used for client-side retrieval using a publishable key.</p><p>The client secret can be used to complete a payment from your frontend. It should not be stored, logged, embedded in URLs, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret.</p><p>Refer to our docs to <a href="https://stripe.com/docs/payments/accept-a-payment">accept a payment</a> and learn about how <code>client_secret</code> should be handled.</p>
31
+ * @property string $confirmation_method
32
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
33
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
34
+ * @property null|string|\Stripe\Customer $customer <p>ID of the Customer this PaymentIntent belongs to, if one exists.</p><p>Payment methods attached to other Customers cannot be used with this PaymentIntent.</p><p>If present in combination with <a href="https://stripe.com/docs/api#payment_intent_object-setup_future_usage">setup_future_usage</a>, this PaymentIntent's payment method will be attached to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete.</p>
35
+ * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users.
36
+ * @property null|string|\Stripe\Invoice $invoice ID of the invoice that created this PaymentIntent, if it exists.
37
+ * @property null|\Stripe\ErrorObject $last_payment_error The payment error encountered in the previous PaymentIntent confirmation. It will be cleared if the PaymentIntent is later updated for any reason.
38
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
39
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. For more information, see the <a href="https://stripe.com/docs/payments/payment-intents/creating-payment-intents#storing-information-in-metadata">documentation</a>.
40
+ * @property null|\Stripe\StripeObject $next_action If present, this property tells you what actions you need to take in order for your customer to fulfill a payment using the provided source.
41
+ * @property null|string|\Stripe\Account $on_behalf_of The account (if any) for which the funds of the PaymentIntent are intended. See the PaymentIntents <a href="https://stripe.com/docs/payments/connected-accounts">use case for connected accounts</a> for details.
42
+ * @property null|string|\Stripe\PaymentMethod $payment_method ID of the payment method used in this PaymentIntent.
43
+ * @property null|\Stripe\StripeObject $payment_method_options Payment-method-specific configuration for this PaymentIntent.
44
+ * @property string[] $payment_method_types The list of payment method types (e.g. card) that this PaymentIntent is allowed to use.
45
+ * @property null|string $receipt_email Email address that the receipt for the resulting payment will be sent to.
46
+ * @property null|string|\Stripe\Review $review ID of the review associated with this PaymentIntent, if any.
47
+ * @property null|string $setup_future_usage <p>Indicates that you intend to make future payments with this PaymentIntent's payment method.</p><p>Providing this parameter will <a href="https://stripe.com/docs/payments/save-during-payment">attach the payment method</a> to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be <a href="https://stripe.com/docs/api/payment_methods/attach">attached</a> to a Customer after the transaction completes.</p><p>When processing card payments, Stripe also uses <code>setup_future_usage</code> to dynamically optimize your payment flow and comply with regional legislation and network rules, such as <a href="https://stripe.com/docs/strong-customer-authentication">SCA</a>.</p>
48
+ * @property null|\Stripe\StripeObject $shipping Shipping information for this PaymentIntent.
49
+ * @property null|string|\Stripe\StripeObject $source This is a legacy field that will be removed in the future. It is the ID of the Source object that is associated with this PaymentIntent, if one was supplied.
50
+ * @property null|string $statement_descriptor For non-card charges, you can use this value as the complete description that appears on your customers’ statements. Must contain at least one letter, maximum 22 characters.
51
+ * @property null|string $statement_descriptor_suffix Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor.
52
+ * @property string $status Status of this PaymentIntent, one of <code>requires_payment_method</code>, <code>requires_confirmation</code>, <code>requires_action</code>, <code>processing</code>, <code>requires_capture</code>, <code>canceled</code>, or <code>succeeded</code>. Read more about each PaymentIntent <a href="https://stripe.com/docs/payments/intents#intent-statuses">status</a>.
53
+ * @property null|\Stripe\StripeObject $transfer_data The data with which to automatically create a Transfer when the payment is finalized. See the PaymentIntents <a href="https://stripe.com/docs/payments/connected-accounts">use case for connected accounts</a> for details.
54
+ * @property null|string $transfer_group A string that identifies the resulting payment as part of a group. See the PaymentIntents <a href="https://stripe.com/docs/payments/connected-accounts">use case for connected accounts</a> for details.
55
  */
56
  class PaymentIntent extends ApiResource
57
  {
58
+ const OBJECT_NAME = 'payment_intent';
59
 
60
  use ApiOperations\All;
61
  use ApiOperations\Create;
62
  use ApiOperations\Retrieve;
63
  use ApiOperations\Update;
64
 
65
+ const STATUS_CANCELED = 'canceled';
66
+ const STATUS_PROCESSING = 'processing';
67
+ const STATUS_REQUIRES_ACTION = 'requires_action';
68
+ const STATUS_REQUIRES_CAPTURE = 'requires_capture';
69
+ const STATUS_REQUIRES_CONFIRMATION = 'requires_confirmation';
 
 
 
 
 
70
  const STATUS_REQUIRES_PAYMENT_METHOD = 'requires_payment_method';
71
+ const STATUS_SUCCEEDED = 'succeeded';
72
 
73
  /**
74
+ * @param null|array $params
75
+ * @param null|array|string $opts
76
  *
77
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
78
+ *
79
+ * @return PaymentIntent the canceled payment intent
80
  */
81
+ public function cancel($params = null, $opts = null)
82
  {
83
  $url = $this->instanceUrl() . '/cancel';
84
+ list($response, $opts) = $this->_request('post', $url, $params, $opts);
85
  $this->refreshFrom($response, $opts);
86
+
87
  return $this;
88
  }
89
 
90
  /**
91
+ * @param null|array $params
92
+ * @param null|array|string $opts
93
+ *
94
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
95
  *
96
+ * @return PaymentIntent the captured payment intent
97
  */
98
+ public function capture($params = null, $opts = null)
99
  {
100
  $url = $this->instanceUrl() . '/capture';
101
+ list($response, $opts) = $this->_request('post', $url, $params, $opts);
102
  $this->refreshFrom($response, $opts);
103
+
104
  return $this;
105
  }
106
 
107
  /**
108
+ * @param null|array $params
109
+ * @param null|array|string $opts
110
+ *
111
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
112
  *
113
+ * @return PaymentIntent the confirmed payment intent
114
  */
115
+ public function confirm($params = null, $opts = null)
116
  {
117
  $url = $this->instanceUrl() . '/confirm';
118
+ list($response, $opts) = $this->_request('post', $url, $params, $opts);
119
  $this->refreshFrom($response, $opts);
120
+
121
  return $this;
122
  }
123
  }
lib/stripe-gateway/lib/PaymentMethod.php CHANGED
@@ -3,26 +3,35 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class PaymentMethod
 
 
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property mixed $billing_details
11
- * @property mixed $card
12
- * @property mixed $card_present
13
- * @property int $created
14
- * @property string $customer
15
- * @property mixed $ideal
16
- * @property bool $livemode
17
- * @property StripeObject $metadata
18
- * @property mixed $sepa_debit
19
- * @property string $type
20
  *
21
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  */
23
  class PaymentMethod extends ApiResource
24
  {
25
- const OBJECT_NAME = "payment_method";
26
 
27
  use ApiOperations\All;
28
  use ApiOperations\Create;
@@ -30,30 +39,36 @@ class PaymentMethod extends ApiResource
30
  use ApiOperations\Update;
31
 
32
  /**
33
- * @param array|null $params
34
- * @param array|string|null $opts
35
  *
36
- * @return PaymentMethod The attached payment method.
 
 
37
  */
38
  public function attach($params = null, $opts = null)
39
  {
40
  $url = $this->instanceUrl() . '/attach';
41
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
42
  $this->refreshFrom($response, $opts);
 
43
  return $this;
44
  }
45
 
46
  /**
47
- * @param array|null $params
48
- * @param array|string|null $opts
49
  *
50
- * @return PaymentMethod The detached payment method.
 
 
51
  */
52
  public function detach($params = null, $opts = null)
53
  {
54
  $url = $this->instanceUrl() . '/detach';
55
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
56
  $this->refreshFrom($response, $opts);
 
57
  return $this;
58
  }
59
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * PaymentMethod objects represent your customer's payment instruments. They can be
7
+ * used with <a
8
+ * href="https://stripe.com/docs/payments/payment-intents">PaymentIntents</a> to
9
+ * collect payments or saved to Customer objects to store instrument details for
10
+ * future payments.
11
  *
12
+ * Related guides: <a
13
+ * href="https://stripe.com/docs/payments/payment-methods">Payment Methods</a> and
14
+ * <a href="https://stripe.com/docs/payments/more-payment-scenarios">More Payment
15
+ * Scenarios</a>.
 
 
 
 
 
 
 
 
16
  *
17
+ * @property string $id Unique identifier for the object.
18
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
19
+ * @property \Stripe\StripeObject $au_becs_debit
20
+ * @property \Stripe\StripeObject $billing_details
21
+ * @property \Stripe\StripeObject $card
22
+ * @property \Stripe\StripeObject $card_present
23
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
24
+ * @property null|string|\Stripe\Customer $customer The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer.
25
+ * @property \Stripe\StripeObject $fpx
26
+ * @property \Stripe\StripeObject $ideal
27
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
28
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
29
+ * @property \Stripe\StripeObject $sepa_debit
30
+ * @property string $type The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.
31
  */
32
  class PaymentMethod extends ApiResource
33
  {
34
+ const OBJECT_NAME = 'payment_method';
35
 
36
  use ApiOperations\All;
37
  use ApiOperations\Create;
39
  use ApiOperations\Update;
40
 
41
  /**
42
+ * @param null|array $params
43
+ * @param null|array|string $opts
44
  *
45
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
46
+ *
47
+ * @return PaymentMethod the attached payment method
48
  */
49
  public function attach($params = null, $opts = null)
50
  {
51
  $url = $this->instanceUrl() . '/attach';
52
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
53
  $this->refreshFrom($response, $opts);
54
+
55
  return $this;
56
  }
57
 
58
  /**
59
+ * @param null|array $params
60
+ * @param null|array|string $opts
61
  *
62
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
63
+ *
64
+ * @return PaymentMethod the detached payment method
65
  */
66
  public function detach($params = null, $opts = null)
67
  {
68
  $url = $this->instanceUrl() . '/detach';
69
  list($response, $opts) = $this->_request('post', $url, $params, $opts);
70
  $this->refreshFrom($response, $opts);
71
+
72
  return $this;
73
  }
74
  }
lib/stripe-gateway/lib/Payout.php CHANGED
@@ -3,90 +3,85 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class Payout
 
 
 
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $amount
11
- * @property int $arrival_date
12
- * @property bool $automatic
13
- * @property string $balance_transaction
14
- * @property int $created
15
- * @property string $currency
16
- * @property string $description
17
- * @property string $destination
18
- * @property string $failure_balance_transaction
19
- * @property string $failure_code
20
- * @property string $failure_message
21
- * @property bool $livemode
22
- * @property StripeObject $metadata
23
- * @property string $method
24
- * @property string $source_type
25
- * @property string $statement_descriptor
26
- * @property string $status
27
- * @property string $type
28
  *
29
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  */
31
  class Payout extends ApiResource
32
  {
33
- const OBJECT_NAME = "payout";
34
 
35
  use ApiOperations\All;
36
  use ApiOperations\Create;
37
  use ApiOperations\Retrieve;
38
  use ApiOperations\Update;
39
 
40
- /**
41
- * Types of payout failure codes.
42
- * @link https://stripe.com/docs/api#payout_failures
43
- */
44
- const FAILURE_ACCOUNT_CLOSED = 'account_closed';
45
- const FAILURE_ACCOUNT_FROZEN = 'account_frozen';
46
- const FAILURE_BANK_ACCOUNT_RESTRICTED = 'bank_account_restricted';
47
- const FAILURE_BANK_OWNERSHIP_CHANGED = 'bank_ownership_changed';
48
- const FAILURE_COULD_NOT_PROCESS = 'could_not_process';
49
- const FAILURE_DEBIT_NOT_AUTHORIZED = 'debit_not_authorized';
50
- const FAILURE_DECLINED = 'declined';
51
  const FAILURE_INCORRECT_ACCOUNT_HOLDER_NAME = 'incorrect_account_holder_name';
52
- const FAILURE_INSUFFICIENT_FUNDS = 'insufficient_funds';
53
- const FAILURE_INVALID_ACCOUNT_NUMBER = 'invalid_account_number';
54
- const FAILURE_INVALID_CURRENCY = 'invalid_currency';
55
- const FAILURE_NO_ACCOUNT = 'no_account';
56
- const FAILURE_UNSUPPORTED_CARD = 'unsupported_card';
57
 
58
- /**
59
- * Possible string representations of the payout methods.
60
- * @link https://stripe.com/docs/api/payouts/object#payout_object-method
61
- */
62
  const METHOD_STANDARD = 'standard';
63
- const METHOD_INSTANT = 'instant';
64
 
65
- /**
66
- * Possible string representations of the status of the payout.
67
- * @link https://stripe.com/docs/api/payouts/object#payout_object-status
68
- */
69
- const STATUS_CANCELED = 'canceled';
70
  const STATUS_IN_TRANSIT = 'in_transit';
71
- const STATUS_FAILED = 'failed';
72
- const STATUS_PAID = 'paid';
73
- const STATUS_PENDING = 'pending';
74
 
75
- /**
76
- * Possible string representations of the type of payout.
77
- * @link https://stripe.com/docs/api/payouts/object#payout_object-type
78
- */
79
  const TYPE_BANK_ACCOUNT = 'bank_account';
80
- const TYPE_CARD = 'card';
81
 
82
  /**
83
- * @return Payout The canceled payout.
 
 
 
 
 
84
  */
85
- public function cancel()
86
  {
87
  $url = $this->instanceUrl() . '/cancel';
88
- list($response, $opts) = $this->_request('post', $url);
89
  $this->refreshFrom($response, $opts);
 
90
  return $this;
91
  }
92
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * A <code>Payout</code> object is created when you receive funds from Stripe, or
7
+ * when you initiate a payout to either a bank account or debit card of a <a
8
+ * href="/docs/connect/payouts">connected Stripe account</a>. You can retrieve
9
+ * individual payouts, as well as list all payouts. Payouts are made on <a
10
+ * href="/docs/payouts#payout-schedule">varying schedules</a>, depending on your
11
+ * country and industry.
12
  *
13
+ * Related guide: <a href="https://stripe.com/docs/payouts">Receiving Payouts</a>.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  *
15
+ * @property string $id Unique identifier for the object.
16
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
17
+ * @property int $amount Amount (in %s) to be transferred to your bank account or debit card.
18
+ * @property int $arrival_date Date the payout is expected to arrive in the bank. This factors in delays like weekends or bank holidays.
19
+ * @property bool $automatic Returns <code>true</code> if the payout was created by an <a href="https://stripe.com/docs/payouts#payout-schedule">automated payout schedule</a>, and <code>false</code> if it was <a href="https://stripe.com/docs/payouts#manual-payouts">requested manually</a>.
20
+ * @property null|string|\Stripe\BalanceTransaction $balance_transaction ID of the balance transaction that describes the impact of this payout on your account balance.
21
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
22
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
23
+ * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users.
24
+ * @property null|string|\Stripe\StripeObject $destination ID of the bank account or card the payout was sent to.
25
+ * @property null|string|\Stripe\BalanceTransaction $failure_balance_transaction If the payout failed or was canceled, this will be the ID of the balance transaction that reversed the initial balance transaction, and puts the funds from the failed payout back in your balance.
26
+ * @property null|string $failure_code Error code explaining reason for payout failure if available. See <a href="https://stripe.com/docs/api#payout_failures">Types of payout failures</a> for a list of failure codes.
27
+ * @property null|string $failure_message Message to user further explaining reason for payout failure if available.
28
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
29
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
30
+ * @property string $method The method used to send this payout, which can be <code>standard</code> or <code>instant</code>. <code>instant</code> is only supported for payouts to debit cards. (See <a href="https://stripe.com/blog/instant-payouts-for-marketplaces">Instant payouts for marketplaces</a> for more information.)
31
+ * @property string $source_type The source balance this payout came from. One of <code>card</code>, <code>fpx</code>, or <code>bank_account</code>.
32
+ * @property null|string $statement_descriptor Extra information about a payout to be displayed on the user's bank statement.
33
+ * @property string $status Current status of the payout (<code>paid</code>, <code>pending</code>, <code>in_transit</code>, <code>canceled</code> or <code>failed</code>). A payout will be <code>pending</code> until it is submitted to the bank, at which point it becomes <code>in_transit</code>. It will then change to <code>paid</code> if the transaction goes through. If it does not go through successfully, its status will change to <code>failed</code> or <code>canceled</code>.
34
+ * @property string $type Can be <code>bank_account</code> or <code>card</code>.
35
  */
36
  class Payout extends ApiResource
37
  {
38
+ const OBJECT_NAME = 'payout';
39
 
40
  use ApiOperations\All;
41
  use ApiOperations\Create;
42
  use ApiOperations\Retrieve;
43
  use ApiOperations\Update;
44
 
45
+ const FAILURE_ACCOUNT_CLOSED = 'account_closed';
46
+ const FAILURE_ACCOUNT_FROZEN = 'account_frozen';
47
+ const FAILURE_BANK_ACCOUNT_RESTRICTED = 'bank_account_restricted';
48
+ const FAILURE_BANK_OWNERSHIP_CHANGED = 'bank_ownership_changed';
49
+ const FAILURE_COULD_NOT_PROCESS = 'could_not_process';
50
+ const FAILURE_DEBIT_NOT_AUTHORIZED = 'debit_not_authorized';
51
+ const FAILURE_DECLINED = 'declined';
 
 
 
 
52
  const FAILURE_INCORRECT_ACCOUNT_HOLDER_NAME = 'incorrect_account_holder_name';
53
+ const FAILURE_INSUFFICIENT_FUNDS = 'insufficient_funds';
54
+ const FAILURE_INVALID_ACCOUNT_NUMBER = 'invalid_account_number';
55
+ const FAILURE_INVALID_CURRENCY = 'invalid_currency';
56
+ const FAILURE_NO_ACCOUNT = 'no_account';
57
+ const FAILURE_UNSUPPORTED_CARD = 'unsupported_card';
58
 
59
+ const METHOD_INSTANT = 'instant';
 
 
 
60
  const METHOD_STANDARD = 'standard';
 
61
 
62
+ const STATUS_CANCELED = 'canceled';
63
+ const STATUS_FAILED = 'failed';
 
 
 
64
  const STATUS_IN_TRANSIT = 'in_transit';
65
+ const STATUS_PAID = 'paid';
66
+ const STATUS_PENDING = 'pending';
 
67
 
 
 
 
 
68
  const TYPE_BANK_ACCOUNT = 'bank_account';
69
+ const TYPE_CARD = 'card';
70
 
71
  /**
72
+ * @param null|array $params
73
+ * @param null|array|string $opts
74
+ *
75
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
76
+ *
77
+ * @return Payout the canceled payout
78
  */
79
+ public function cancel($params = null, $opts = null)
80
  {
81
  $url = $this->instanceUrl() . '/cancel';
82
+ list($response, $opts) = $this->_request('post', $url, $params, $opts);
83
  $this->refreshFrom($response, $opts);
84
+
85
  return $this;
86
  }
87
  }
lib/stripe-gateway/lib/Person.php CHANGED
@@ -3,69 +3,62 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class Person
7
  *
8
- * @package Stripe
 
 
9
  *
10
- * @property string $id
11
- * @property string $object
12
- * @property string $account
13
- * @property mixed $address
14
- * @property mixed $address_kana
15
- * @property mixed $address_kanji
16
- * @property int $created
17
- * @property bool $deleted
18
- * @property mixed $dob
19
- * @property string $email
20
- * @property string $first_name
21
- * @property string $first_name_kana
22
- * @property string $first_name_kanji
23
- * @property string $gender
24
- * @property bool $id_number_provided
25
- * @property string $last_name
26
- * @property string $last_name_kana
27
- * @property string $last_name_kanji
28
- * @property string $maiden_name
29
- * @property StripeObject $metadata
30
- * @property string $phone
31
- * @property mixed $relationship
32
- * @property mixed $requirements
33
- * @property bool $ssn_last_4_provided
34
- * @property mixed $verification
35
  */
36
  class Person extends ApiResource
37
  {
38
- const OBJECT_NAME = "person";
39
 
40
  use ApiOperations\Delete;
41
  use ApiOperations\Update;
42
 
43
- /**
44
- * Possible string representations of a person's gender.
45
- * @link https://stripe.com/docs/api/persons/object#person_object-gender
46
- */
47
- const GENDER_MALE = 'male';
48
  const GENDER_FEMALE = 'female';
 
49
 
50
- /**
51
- * Possible string representations of a person's verification status.
52
- * @link https://stripe.com/docs/api/persons/object#person_object-verification-status
53
- */
54
- const VERIFICATION_STATUS_PENDING = 'pending';
55
  const VERIFICATION_STATUS_UNVERIFIED = 'unverified';
56
- const VERIFICATION_STATUS_VERIFIED = 'verified';
57
 
58
  /**
59
- * @return string The API URL for this Stripe account reversal.
60
  */
61
  public function instanceUrl()
62
  {
63
  $id = $this['id'];
64
  $account = $this['account'];
65
  if (!$id) {
66
- throw new Error\InvalidRequest(
67
- "Could not determine which URL to request: " .
68
- "class instance has invalid ID: $id",
69
  null
70
  );
71
  }
@@ -73,35 +66,40 @@ class Person extends ApiResource
73
  $account = Util\Util::utf8($account);
74
 
75
  $base = Account::classUrl();
76
- $accountExtn = urlencode($account);
77
- $extn = urlencode($id);
78
- return "$base/$accountExtn/persons/$extn";
 
79
  }
80
 
81
  /**
82
  * @param array|string $_id
83
- * @param array|string|null $_opts
84
  *
85
- * @throws \Stripe\Error\InvalidRequest
86
  */
87
  public static function retrieve($_id, $_opts = null)
88
  {
89
- $msg = "Persons cannot be accessed without an account ID. " .
90
- "Retrieve a Person using \$account->retrievePerson('person_id') instead.";
91
- throw new Error\InvalidRequest($msg, null);
 
 
92
  }
93
 
94
  /**
95
  * @param string $_id
96
- * @param array|null $_params
97
- * @param array|string|null $_options
98
  *
99
- * @throws \Stripe\Error\InvalidRequest
100
  */
101
  public static function update($_id, $_params = null, $_options = null)
102
  {
103
- $msg = "Persons cannot be accessed without an account ID. " .
104
- "Retrieve a Person using \$account->retrievePerson('person_id') instead.";
105
- throw new Error\InvalidRequest($msg, null);
 
 
106
  }
107
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * This is an object representing a person associated with a Stripe account.
7
  *
8
+ * Related guide: <a
9
+ * href="https://stripe.com/docs/connect/identity-verification-api#person-information">Handling
10
+ * Identity Verification with the API</a>.
11
  *
12
+ * @property string $id Unique identifier for the object.
13
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
14
+ * @property string $account The account the person is associated with.
15
+ * @property \Stripe\StripeObject $address
16
+ * @property null|\Stripe\StripeObject $address_kana The Kana variation of the person's address (Japan only).
17
+ * @property null|\Stripe\StripeObject $address_kanji The Kanji variation of the person's address (Japan only).
18
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
19
+ * @property \Stripe\StripeObject $dob
20
+ * @property null|string $email The person's email address.
21
+ * @property null|string $first_name The person's first name.
22
+ * @property null|string $first_name_kana The Kana variation of the person's first name (Japan only).
23
+ * @property null|string $first_name_kanji The Kanji variation of the person's first name (Japan only).
24
+ * @property null|string $gender The person's gender (International regulations require either &quot;male&quot; or &quot;female&quot;).
25
+ * @property bool $id_number_provided Whether the person's <code>id_number</code> was provided.
26
+ * @property null|string $last_name The person's last name.
27
+ * @property null|string $last_name_kana The Kana variation of the person's last name (Japan only).
28
+ * @property null|string $last_name_kanji The Kanji variation of the person's last name (Japan only).
29
+ * @property null|string $maiden_name The person's maiden name.
30
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
31
+ * @property null|string $phone The person's phone number.
32
+ * @property \Stripe\StripeObject $relationship
33
+ * @property null|\Stripe\StripeObject $requirements Information about the requirements for this person, including what information needs to be collected, and by when.
34
+ * @property bool $ssn_last_4_provided Whether the last 4 digits of this person's SSN have been provided.
35
+ * @property \Stripe\StripeObject $verification
 
36
  */
37
  class Person extends ApiResource
38
  {
39
+ const OBJECT_NAME = 'person';
40
 
41
  use ApiOperations\Delete;
42
  use ApiOperations\Update;
43
 
 
 
 
 
 
44
  const GENDER_FEMALE = 'female';
45
+ const GENDER_MALE = 'male';
46
 
47
+ const VERIFICATION_STATUS_PENDING = 'pending';
 
 
 
 
48
  const VERIFICATION_STATUS_UNVERIFIED = 'unverified';
49
+ const VERIFICATION_STATUS_VERIFIED = 'verified';
50
 
51
  /**
52
+ * @return string the API URL for this Stripe account reversal
53
  */
54
  public function instanceUrl()
55
  {
56
  $id = $this['id'];
57
  $account = $this['account'];
58
  if (!$id) {
59
+ throw new Exception\UnexpectedValueException(
60
+ 'Could not determine which URL to request: ' .
61
+ "class instance has invalid ID: {$id}",
62
  null
63
  );
64
  }
66
  $account = Util\Util::utf8($account);
67
 
68
  $base = Account::classUrl();
69
+ $accountExtn = \urlencode($account);
70
+ $extn = \urlencode($id);
71
+
72
+ return "{$base}/{$accountExtn}/persons/{$extn}";
73
  }
74
 
75
  /**
76
  * @param array|string $_id
77
+ * @param null|array|string $_opts
78
  *
79
+ * @throws \Stripe\Exception\BadMethodCallException
80
  */
81
  public static function retrieve($_id, $_opts = null)
82
  {
83
+ $msg = 'Persons cannot be retrieved without an account ID. Retrieve ' .
84
+ "a person using `Account::retrievePerson('account_id', " .
85
+ "'person_id')`.";
86
+
87
+ throw new Exception\BadMethodCallException($msg);
88
  }
89
 
90
  /**
91
  * @param string $_id
92
+ * @param null|array $_params
93
+ * @param null|array|string $_options
94
  *
95
+ * @throws \Stripe\Exception\BadMethodCallException
96
  */
97
  public static function update($_id, $_params = null, $_options = null)
98
  {
99
+ $msg = 'Persons cannot be updated without an account ID. Update ' .
100
+ "a person using `Account::updatePerson('account_id', " .
101
+ "'person_id', \$updateParams)`.";
102
+
103
+ throw new Exception\BadMethodCallException($msg);
104
  }
105
  }
lib/stripe-gateway/lib/Plan.php CHANGED
@@ -3,33 +3,41 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class Plan
 
 
 
7
  *
8
- * @package Stripe
 
 
 
 
9
  *
10
- * @property string $id
11
- * @property string $object
12
- * @property bool $active
13
- * @property string $aggregate_usage
14
- * @property int $amount
15
- * @property string $billing_scheme
16
- * @property int $created
17
- * @property string $currency
18
- * @property string $interval
19
- * @property int $interval_count
20
- * @property bool $livemode
21
- * @property StripeObject $metadata
22
- * @property string $nickname
23
- * @property string $product
24
- * @property mixed $tiers
25
- * @property string $tiers_mode
26
- * @property mixed $transform_usage
27
- * @property int $trial_period_days
28
- * @property string $usage_type
 
29
  */
30
  class Plan extends ApiResource
31
  {
32
- const OBJECT_NAME = "plan";
33
 
34
  use ApiOperations\All;
35
  use ApiOperations\Create;
3
  namespace Stripe;
4
 
5
  /**
6
+ * Plans define the base price, currency, and billing cycle for subscriptions. For
7
+ * example, you might have a &lt;currency&gt;5&lt;/currency&gt;/month plan that
8
+ * provides limited access to your products, and a
9
+ * &lt;currency&gt;15&lt;/currency&gt;/month plan that allows full access.
10
  *
11
+ * Related guides: <a
12
+ * href="https://stripe.com/docs/billing/subscriptions/set-up-subscription">Set up
13
+ * a subscription</a> and more about <a
14
+ * href="https://stripe.com/docs/billing/subscriptions/products-and-plans">products
15
+ * and plans</a>.
16
  *
17
+ * @property string $id Unique identifier for the object.
18
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
19
+ * @property bool $active Whether the plan is currently available for new subscriptions.
20
+ * @property null|string $aggregate_usage Specifies a usage aggregation strategy for plans of <code>usage_type=metered</code>. Allowed values are <code>sum</code> for summing up all usage during a period, <code>last_during_period</code> for using the last usage record reported within a period, <code>last_ever</code> for using the last usage record ever (across period bounds) or <code>max</code> which uses the usage record with the maximum reported usage during a period. Defaults to <code>sum</code>.
21
+ * @property null|int $amount The amount in %s to be charged on the interval specified.
22
+ * @property null|string $amount_decimal Same as <code>amount</code>, but contains a decimal value with at most 12 decimal places.
23
+ * @property string $billing_scheme Describes how to compute the price per period. Either <code>per_unit</code> or <code>tiered</code>. <code>per_unit</code> indicates that the fixed amount (specified in <code>amount</code>) will be charged per unit in <code>quantity</code> (for plans with <code>usage_type=licensed</code>), or per unit of total usage (for plans with <code>usage_type=metered</code>). <code>tiered</code> indicates that the unit pricing will be computed using a tiering strategy as defined using the <code>tiers</code> and <code>tiers_mode</code> attributes.
24
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
25
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
26
+ * @property string $interval The frequency at which a subscription is billed. One of <code>day</code>, <code>week</code>, <code>month</code> or <code>year</code>.
27
+ * @property int $interval_count The number of intervals (specified in the <code>interval</code> attribute) between subscription billings. For example, <code>interval=month</code> and <code>interval_count=3</code> bills every 3 months.
28
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
29
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
30
+ * @property null|string $nickname A brief description of the plan, hidden from customers.
31
+ * @property null|string|\Stripe\Product $product The product whose pricing this plan determines.
32
+ * @property null|\Stripe\StripeObject[] $tiers Each element represents a pricing tier. This parameter requires <code>billing_scheme</code> to be set to <code>tiered</code>. See also the documentation for <code>billing_scheme</code>.
33
+ * @property null|string $tiers_mode Defines if the tiering price should be <code>graduated</code> or <code>volume</code> based. In <code>volume</code>-based tiering, the maximum quantity within a period determines the per unit price. In <code>graduated</code> tiering, pricing can change as the quantity grows.
34
+ * @property null|\Stripe\StripeObject $transform_usage Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with <code>tiers</code>.
35
+ * @property null|int $trial_period_days Default number of trial days when subscribing a customer to this plan using <a href="https://stripe.com/docs/api#create_subscription-trial_from_plan"><code>trial_from_plan=true</code></a>.
36
+ * @property string $usage_type Configures how the quantity per period should be determined. Can be either <code>metered</code> or <code>licensed</code>. <code>licensed</code> automatically bills the <code>quantity</code> set when adding it to a subscription. <code>metered</code> aggregates the total usage based on usage records. Defaults to <code>licensed</code>.
37
  */
38
  class Plan extends ApiResource
39
  {
40
+ const OBJECT_NAME = 'plan';
41
 
42
  use ApiOperations\All;
43
  use ApiOperations\Create;
lib/stripe-gateway/lib/Product.php CHANGED
@@ -3,33 +3,41 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class Product
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property bool $active
11
- * @property string[] $attributes
12
- * @property string $caption
13
- * @property int $created
14
- * @property string[] $deactivate_on
15
- * @property string $description
16
- * @property string[] $images
17
- * @property bool $livemode
18
- * @property StripeObject $metadata
19
- * @property string $name
20
- * @property mixed $package_dimensions
21
- * @property bool $shippable
22
- * @property string $statement_descriptor
23
- * @property string $type
24
- * @property string $unit_label
25
- * @property int $updated
26
- * @property string $url
27
  *
28
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  */
30
  class Product extends ApiResource
31
  {
32
- const OBJECT_NAME = "product";
33
 
34
  use ApiOperations\All;
35
  use ApiOperations\Create;
@@ -37,10 +45,6 @@ class Product extends ApiResource
37
  use ApiOperations\Retrieve;
38
  use ApiOperations\Update;
39
 
40
- /**
41
- * Possible string representations of the type of product.
42
- * @link https://stripe.com/docs/api/service_products/object#service_product_object-type
43
- */
44
- const TYPE_GOOD = 'good';
45
  const TYPE_SERVICE = 'service';
46
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * Store representations of products you sell in <code>Product</code> objects, used
7
+ * in conjunction with <a href="https://stripe.com/docs/api#skus">SKUs</a>.
8
+ * Products may be physical goods, to be shipped, or digital.
9
  *
10
+ * Documentation on <code>Product</code>s for use with <code>Subscription</code>s
11
+ * can be found at <a
12
+ * href="https://stripe.com/docs/api#service_products">Subscription Products</a>.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  *
14
+ * Related guide: <a
15
+ * href="https://stripe.com/docs/orders#define-products-skus">Define products and
16
+ * SKUs</a>
17
+ *
18
+ * @property string $id Unique identifier for the object.
19
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
20
+ * @property bool $active Whether the product is currently available for purchase.
21
+ * @property null|string[] $attributes A list of up to 5 attributes that each SKU can provide values for (e.g., <code>[&quot;color&quot;, &quot;size&quot;]</code>).
22
+ * @property null|string $caption A short one-line description of the product, meant to be displayable to the customer. Only applicable to products of <code>type=good</code>.
23
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
24
+ * @property string[] $deactivate_on An array of connect application identifiers that cannot purchase this product. Only applicable to products of <code>type=good</code>.
25
+ * @property null|string $description The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes.
26
+ * @property string[] $images A list of up to 8 URLs of images for this product, meant to be displayable to the customer.
27
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
28
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
29
+ * @property string $name The product's name, meant to be displayable to the customer. Whenever this product is sold via a subscription, name will show up on associated invoice line item descriptions.
30
+ * @property null|\Stripe\StripeObject $package_dimensions The dimensions of this product for shipping purposes. A SKU associated with this product can override this value by having its own <code>package_dimensions</code>. Only applicable to products of <code>type=good</code>.
31
+ * @property null|bool $shippable Whether this product is a shipped good. Only applicable to products of <code>type=good</code>.
32
+ * @property null|string $statement_descriptor Extra information about a product which will appear on your customer's credit card statement. In the case that multiple products are billed at once, the first statement descriptor will be used.
33
+ * @property string $type The type of the product. The product is either of type <code>good</code>, which is eligible for use with Orders and SKUs, or <code>service</code>, which is eligible for use with Subscriptions and Plans.
34
+ * @property null|string $unit_label A label that represents units of this product in Stripe and on customers’ receipts and invoices. When set, this will be included in associated invoice line item descriptions.
35
+ * @property int $updated Time at which the object was last updated. Measured in seconds since the Unix epoch.
36
+ * @property null|string $url A URL of a publicly-accessible webpage for this product. Only applicable to products of <code>type=good</code>.
37
  */
38
  class Product extends ApiResource
39
  {
40
+ const OBJECT_NAME = 'product';
41
 
42
  use ApiOperations\All;
43
  use ApiOperations\Create;
45
  use ApiOperations\Retrieve;
46
  use ApiOperations\Update;
47
 
48
+ const TYPE_GOOD = 'good';
 
 
 
 
49
  const TYPE_SERVICE = 'service';
50
  }
lib/stripe-gateway/lib/Radar/EarlyFraudWarning.php CHANGED
@@ -3,34 +3,33 @@
3
  namespace Stripe\Radar;
4
 
5
  /**
6
- * Class EarlyFraudWarning
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property bool $actionable
11
- * @property string $charge
12
- * @property int $created
13
- * @property string $fraud_type
14
- * @property bool $livemode
15
  *
16
- * @package Stripe\Radar
 
 
 
 
 
 
17
  */
18
  class EarlyFraudWarning extends \Stripe\ApiResource
19
  {
20
- const OBJECT_NAME = "radar.early_fraud_warning";
21
 
22
  use \Stripe\ApiOperations\All;
23
  use \Stripe\ApiOperations\Retrieve;
24
 
25
- /**
26
- * Possible string representations of an early fraud warning's fraud type.
27
- * @link https://stripe.com/docs/api/early_fraud_warnings/object#early_fraud_warning_object-fraud_type
28
- */
29
- const FRAUD_TYPE_CARD_NEVER_RECEIVED = 'card_never_received';
30
  const FRAUD_TYPE_FRAUDULENT_CARD_APPLICATION = 'fraudulent_card_application';
31
- const FRAUD_TYPE_MADE_WITH_COUNTERFEIT_CARD = 'made_with_counterfeit_card';
32
- const FRAUD_TYPE_MADE_WITH_LOST_CARD = 'made_with_lost_card';
33
- const FRAUD_TYPE_MADE_WITH_STOLEN_CARD = 'made_with_stolen_card';
34
- const FRAUD_TYPE_MISC = 'misc';
35
- const FRAUD_TYPE_UNAUTHORIZED_USE_OF_CARD = 'unauthorized_use_of_card';
36
  }
3
  namespace Stripe\Radar;
4
 
5
  /**
6
+ * An early fraud warning indicates that the card issuer has notified us that a
7
+ * charge may be fraudulent.
8
  *
9
+ * Related guide: <a
10
+ * href="https://stripe.com/docs/disputes/measuring#early-fraud-warnings">Early
11
+ * Fraud Warnings</a>.
 
 
 
 
12
  *
13
+ * @property string $id Unique identifier for the object.
14
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
15
+ * @property bool $actionable An EFW is actionable if it has not received a dispute and has not been fully refunded. You may wish to proactively refund a charge that receives an EFW, in order to avoid receiving a dispute later.
16
+ * @property string|\Stripe\Charge $charge ID of the charge this early fraud warning is for, optionally expanded.
17
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
18
+ * @property string $fraud_type The type of fraud labelled by the issuer. One of <code>card_never_received</code>, <code>fraudulent_card_application</code>, <code>made_with_counterfeit_card</code>, <code>made_with_lost_card</code>, <code>made_with_stolen_card</code>, <code>misc</code>, <code>unauthorized_use_of_card</code>.
19
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
20
  */
21
  class EarlyFraudWarning extends \Stripe\ApiResource
22
  {
23
+ const OBJECT_NAME = 'radar.early_fraud_warning';
24
 
25
  use \Stripe\ApiOperations\All;
26
  use \Stripe\ApiOperations\Retrieve;
27
 
28
+ const FRAUD_TYPE_CARD_NEVER_RECEIVED = 'card_never_received';
 
 
 
 
29
  const FRAUD_TYPE_FRAUDULENT_CARD_APPLICATION = 'fraudulent_card_application';
30
+ const FRAUD_TYPE_MADE_WITH_COUNTERFEIT_CARD = 'made_with_counterfeit_card';
31
+ const FRAUD_TYPE_MADE_WITH_LOST_CARD = 'made_with_lost_card';
32
+ const FRAUD_TYPE_MADE_WITH_STOLEN_CARD = 'made_with_stolen_card';
33
+ const FRAUD_TYPE_MISC = 'misc';
34
+ const FRAUD_TYPE_UNAUTHORIZED_USE_OF_CARD = 'unauthorized_use_of_card';
35
  }
lib/stripe-gateway/lib/Radar/ValueList.php CHANGED
@@ -3,26 +3,27 @@
3
  namespace Stripe\Radar;
4
 
5
  /**
6
- * Class ValueList
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property string $alias
11
- * @property int $created
12
- * @property string $created_by
13
- * @property string $item_type
14
- * @property Collection $list_items
15
- * @property bool $livemode
16
- * @property StripeObject $metadata
17
- * @property mixed $name
18
- * @property int $updated
19
- * @property string $updated_by
20
  *
21
- * @package Stripe\Radar
 
 
 
 
 
 
 
 
 
22
  */
23
  class ValueList extends \Stripe\ApiResource
24
  {
25
- const OBJECT_NAME = "radar.value_list";
26
 
27
  use \Stripe\ApiOperations\All;
28
  use \Stripe\ApiOperations\Create;
3
  namespace Stripe\Radar;
4
 
5
  /**
6
+ * Value lists allow you to group values together which can then be referenced in
7
+ * rules.
8
  *
9
+ * Related guide: <a
10
+ * href="https://stripe.com/docs/radar/lists#managing-list-items">Default Stripe
11
+ * Lists</a>.
 
 
 
 
 
 
 
 
 
12
  *
13
+ * @property string $id Unique identifier for the object.
14
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
15
+ * @property string $alias The name of the value list for use in rules.
16
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
17
+ * @property string $created_by The name or email address of the user who created this value list.
18
+ * @property string $item_type The type of items in the value list. One of <code>card_fingerprint</code>, <code>card_bin</code>, <code>email</code>, <code>ip_address</code>, <code>country</code>, <code>string</code>, or <code>case_sensitive_string</code>.
19
+ * @property \Stripe\Collection $list_items List of items contained within this value list.
20
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
21
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
22
+ * @property string $name The name of the value list.
23
  */
24
  class ValueList extends \Stripe\ApiResource
25
  {
26
+ const OBJECT_NAME = 'radar.value_list';
27
 
28
  use \Stripe\ApiOperations\All;
29
  use \Stripe\ApiOperations\Create;
lib/stripe-gateway/lib/Radar/ValueListItem.php CHANGED
@@ -3,21 +3,24 @@
3
  namespace Stripe\Radar;
4
 
5
  /**
6
- * Class ValueListItem
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $created
11
- * @property string $created_by
12
- * @property string $list
13
- * @property bool $livemode
14
- * @property string $value
15
  *
16
- * @package Stripe\Radar
 
 
 
 
 
 
17
  */
18
  class ValueListItem extends \Stripe\ApiResource
19
  {
20
- const OBJECT_NAME = "radar.value_list_item";
21
 
22
  use \Stripe\ApiOperations\All;
23
  use \Stripe\ApiOperations\Create;
3
  namespace Stripe\Radar;
4
 
5
  /**
6
+ * Value list items allow you to add specific values to a given Radar value list,
7
+ * which can then be used in rules.
8
  *
9
+ * Related guide: <a
10
+ * href="https://stripe.com/docs/radar/lists#managing-list-items">Managing List
11
+ * Items</a>.
 
 
 
 
12
  *
13
+ * @property string $id Unique identifier for the object.
14
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
15
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
16
+ * @property string $created_by The name or email address of the user who added this item to the value list.
17
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
18
+ * @property string $value The value of the item.
19
+ * @property string $value_list The identifier of the value list this item belongs to.
20
  */
21
  class ValueListItem extends \Stripe\ApiResource
22
  {
23
+ const OBJECT_NAME = 'radar.value_list_item';
24
 
25
  use \Stripe\ApiOperations\All;
26
  use \Stripe\ApiOperations\Create;
lib/stripe-gateway/lib/Recipient.php CHANGED
@@ -3,45 +3,43 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class Recipient
 
 
 
7
  *
8
- * @package Stripe
 
 
 
 
 
 
 
9
  *
10
- * @property string $id
11
- * @property string $object
12
- * @property mixed $active_account
13
- * @property Collection $cards
14
- * @property int $created
15
- * @property string $default_card
16
- * @property string $description
17
- * @property string $email
18
- * @property bool $livemode
19
- * @property StripeObject $metadata
20
- * @property string $migrated_to
21
- * @property string $name
22
- * @property string $rolled_back_from
23
- * @property string $type
 
24
  */
25
  class Recipient extends ApiResource
26
  {
27
- const OBJECT_NAME = "recipient";
28
 
29
  use ApiOperations\All;
30
  use ApiOperations\Create;
31
  use ApiOperations\Delete;
32
  use ApiOperations\Retrieve;
33
  use ApiOperations\Update;
34
-
35
- /**
36
- * @param array|null $params
37
- *
38
- * @return Collection of the Recipient's Transfers
39
- */
40
- public function transfers($params = null)
41
- {
42
- $params = $params ?: [];
43
- $params['recipient'] = $this->id;
44
- $transfers = Transfer::all($params, $this->_opts);
45
- return $transfers;
46
- }
47
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * With <code>Recipient</code> objects, you can transfer money from your Stripe
7
+ * account to a third-party bank account or debit card. The API allows you to
8
+ * create, delete, and update your recipients. You can retrieve individual
9
+ * recipients as well as a list of all your recipients.
10
  *
11
+ * <strong><code>Recipient</code> objects have been deprecated in favor of <a
12
+ * href="https://stripe.com/docs/connect">Connect</a>, specifically Connect's much
13
+ * more powerful <a href="https://stripe.com/docs/api#account">Account objects</a>.
14
+ * Stripe accounts that don't already use recipients can no longer begin doing so.
15
+ * Please use <code>Account</code> objects instead. If you are already using
16
+ * recipients, please see our <a
17
+ * href="https://stripe.com/docs/connect/recipient-account-migrations">migration
18
+ * guide</a> for more information.</strong>
19
  *
20
+ * @property string $id Unique identifier for the object.
21
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
22
+ * @property null|\Stripe\BankAccount $active_account Hash describing the current account on the recipient, if there is one.
23
+ * @property null|\Stripe\Collection $cards
24
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
25
+ * @property null|string|\Stripe\Card $default_card The default card to use for creating transfers to this recipient.
26
+ * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users.
27
+ * @property null|string $email
28
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
29
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
30
+ * @property null|string|\Stripe\Account $migrated_to The ID of the <a href="https://stripe.com/docs/connect/custom-accounts">Custom account</a> this recipient was migrated to. If set, the recipient can no longer be updated, nor can transfers be made to it: use the Custom account instead.
31
+ * @property null|string $name Full, legal name of the recipient.
32
+ * @property string|\Stripe\Account $rolled_back_from
33
+ * @property string $type Type of the recipient, one of <code>individual</code> or <code>corporation</code>.
34
+ * @property bool $verified Whether the recipient has been verified. This field is non-standard, and maybe removed in the future
35
  */
36
  class Recipient extends ApiResource
37
  {
38
+ const OBJECT_NAME = 'recipient';
39
 
40
  use ApiOperations\All;
41
  use ApiOperations\Create;
42
  use ApiOperations\Delete;
43
  use ApiOperations\Retrieve;
44
  use ApiOperations\Update;
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  }
lib/stripe-gateway/lib/RecipientTransfer.php CHANGED
@@ -3,7 +3,7 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class RecipientTransfer
7
  *
8
  * @property string $id
9
  * @property string $object
@@ -20,19 +20,17 @@ namespace Stripe;
20
  * @property string $failure_code
21
  * @property string $failure_message
22
  * @property bool $livemode
23
- * @property StripeObject $metadata
24
  * @property string $method
25
  * @property string $recipient
26
- * @property mixed $reversals
27
  * @property bool $reversed
28
  * @property string $source_type
29
  * @property string $statement_descriptor
30
  * @property string $status
31
  * @property string $type
32
- *
33
- * @package Stripe
34
  */
35
  class RecipientTransfer extends ApiResource
36
  {
37
- const OBJECT_NAME = "recipient_transfer";
38
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * Class RecipientTransfer.
7
  *
8
  * @property string $id
9
  * @property string $object
20
  * @property string $failure_code
21
  * @property string $failure_message
22
  * @property bool $livemode
23
+ * @property \Stripe\StripeObject $metadata
24
  * @property string $method
25
  * @property string $recipient
26
+ * @property \Stripe\Collection $reversals
27
  * @property bool $reversed
28
  * @property string $source_type
29
  * @property string $statement_descriptor
30
  * @property string $status
31
  * @property string $type
 
 
32
  */
33
  class RecipientTransfer extends ApiResource
34
  {
35
+ const OBJECT_NAME = 'recipient_transfer';
36
  }
lib/stripe-gateway/lib/Refund.php CHANGED
@@ -3,58 +3,54 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class Refund
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $amount
11
- * @property string $balance_transaction
12
- * @property string $charge
13
- * @property int $created
14
- * @property string $currency
15
- * @property string $description
16
- * @property string $failure_balance_transaction
17
- * @property string $failure_reason
18
- * @property StripeObject $metadata
19
- * @property string $reason
20
- * @property string $receipt_number
21
- * @property string $source_transfer_reversal
22
- * @property string $status
23
- * @property string $transfer_reversal
24
  *
25
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  */
27
  class Refund extends ApiResource
28
  {
29
- const OBJECT_NAME = "refund";
30
 
31
  use ApiOperations\All;
32
  use ApiOperations\Create;
33
  use ApiOperations\Retrieve;
34
  use ApiOperations\Update;
35
 
36
- /**
37
- * Possible string representations of the failure reason.
38
- * @link https://stripe.com/docs/api/refunds/object#refund_object-failure_reason
39
- */
40
- const FAILURE_REASON = 'expired_or_canceled_card';
41
  const FAILURE_REASON_LOST_OR_STOLEN_CARD = 'lost_or_stolen_card';
42
- const FAILURE_REASON_UNKNOWN = 'unknown';
43
 
44
- /**
45
- * Possible string representations of the refund reason.
46
- * @link https://stripe.com/docs/api/refunds/object#refund_object-reason
47
- */
48
- const REASON_DUPLICATE = 'duplicate';
49
- const REASON_FRAUDULENT = 'fraudulent';
50
  const REASON_REQUESTED_BY_CUSTOMER = 'requested_by_customer';
51
 
 
 
 
 
 
52
  /**
53
- * Possible string representations of the refund status.
54
- * @link https://stripe.com/docs/api/refunds/object#refund_object-status
55
  */
56
- const STATUS_CANCELED = 'canceled';
57
- const STATUS_FAILED = 'failed';
58
- const STATUS_PENDING = 'pending';
59
- const STATUS_SUCCEEDED = 'succeeded';
60
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * <code>Refund</code> objects allow you to refund a charge that has previously
7
+ * been created but not yet refunded. Funds will be refunded to the credit or debit
8
+ * card that was originally charged.
9
  *
10
+ * Related guide: <a href="https://stripe.com/docs/refunds">Refunds</a>.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  *
12
+ * @property string $id Unique identifier for the object.
13
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
14
+ * @property int $amount Amount, in %s.
15
+ * @property null|string|\Stripe\BalanceTransaction $balance_transaction Balance transaction that describes the impact on your account balance.
16
+ * @property null|string|\Stripe\Charge $charge ID of the charge that was refunded.
17
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
18
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
19
+ * @property string $description An arbitrary string attached to the object. Often useful for displaying to users. (Available on non-card refunds only)
20
+ * @property string|\Stripe\BalanceTransaction $failure_balance_transaction If the refund failed, this balance transaction describes the adjustment made on your account balance that reverses the initial balance transaction.
21
+ * @property string $failure_reason If the refund failed, the reason for refund failure if known. Possible values are <code>lost_or_stolen_card</code>, <code>expired_or_canceled_card</code>, or <code>unknown</code>.
22
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
23
+ * @property null|string|\Stripe\PaymentIntent $payment_intent ID of the PaymentIntent that was refunded.
24
+ * @property null|string $reason Reason for the refund, either user-provided (<code>duplicate</code>, <code>fraudulent</code>, or <code>requested_by_customer</code>) or generated by Stripe internally (<code>expired_uncaptured_charge</code>).
25
+ * @property null|string $receipt_number This is the transaction number that appears on email receipts sent for this refund.
26
+ * @property null|string|\Stripe\TransferReversal $source_transfer_reversal The transfer reversal that is associated with the refund. Only present if the charge came from another Stripe account. See the Connect documentation for details.
27
+ * @property null|string $status Status of the refund. For credit card refunds, this can be <code>pending</code>, <code>succeeded</code>, or <code>failed</code>. For other types of refunds, it can be <code>pending</code>, <code>succeeded</code>, <code>failed</code>, or <code>canceled</code>. Refer to our <a href="https://stripe.com/docs/refunds#failed-refunds">refunds</a> documentation for more details.
28
+ * @property null|string|\Stripe\TransferReversal $transfer_reversal If the accompanying transfer was reversed, the transfer reversal object. Only applicable if the charge was created using the destination parameter.
29
  */
30
  class Refund extends ApiResource
31
  {
32
+ const OBJECT_NAME = 'refund';
33
 
34
  use ApiOperations\All;
35
  use ApiOperations\Create;
36
  use ApiOperations\Retrieve;
37
  use ApiOperations\Update;
38
 
39
+ const FAILURE_REASON_EXPIRED_OR_CANCELED_CARD = 'expired_or_canceled_card';
 
 
 
 
40
  const FAILURE_REASON_LOST_OR_STOLEN_CARD = 'lost_or_stolen_card';
41
+ const FAILURE_REASON_UNKNOWN = 'unknown';
42
 
43
+ const REASON_DUPLICATE = 'duplicate';
44
+ const REASON_FRAUDULENT = 'fraudulent';
 
 
 
 
45
  const REASON_REQUESTED_BY_CUSTOMER = 'requested_by_customer';
46
 
47
+ const STATUS_CANCELED = 'canceled';
48
+ const STATUS_FAILED = 'failed';
49
+ const STATUS_PENDING = 'pending';
50
+ const STATUS_SUCCEEDED = 'succeeded';
51
+
52
  /**
53
+ * @deprecated use FAILURE_REASON_EXPIRED_OR_CANCELED_CARD instead
 
54
  */
55
+ const FAILURE_REASON = 'expired_or_canceled_card';
 
 
 
56
  }
lib/stripe-gateway/lib/Reporting/ReportRun.php CHANGED
@@ -3,24 +3,31 @@
3
  namespace Stripe\Reporting;
4
 
5
  /**
6
- * Class ReportRun
 
 
 
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $created
11
- * @property string $error
12
- * @property bool $livemode
13
- * @property mixed $parameters
14
- * @property string $report_type
15
- * @property mixed $result
16
- * @property string $status
17
- * @property int $succeeded_at
18
  *
19
- * @package Stripe\Reporting
 
 
 
 
 
 
 
 
 
20
  */
21
  class ReportRun extends \Stripe\ApiResource
22
  {
23
- const OBJECT_NAME = "reporting.report_run";
24
 
25
  use \Stripe\ApiOperations\All;
26
  use \Stripe\ApiOperations\Create;
3
  namespace Stripe\Reporting;
4
 
5
  /**
6
+ * The Report Run object represents an instance of a report type generated with
7
+ * specific run parameters. Once the object is created, Stripe begins processing
8
+ * the report. When the report has finished running, it will give you a reference
9
+ * to a file where you can retrieve your results. For an overview, see <a
10
+ * href="https://stripe.com/docs/reporting/statements/api">API Access to
11
+ * Reports</a>.
12
  *
13
+ * Note that reports can only be run based on your live-mode data (not test-mode
14
+ * data), and thus related requests must be made with a <a
15
+ * href="https://stripe.com/docs/keys#test-live-modes">live-mode API key</a>.
 
 
 
 
 
 
 
16
  *
17
+ * @property string $id Unique identifier for the object.
18
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
19
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
20
+ * @property null|string $error If something should go wrong during the run, a message about the failure (populated when <code>status=failed</code>).
21
+ * @property bool $livemode Always <code>true</code>: reports can only be run on live-mode data.
22
+ * @property \Stripe\StripeObject $parameters
23
+ * @property string $report_type The ID of the <a href="https://stripe.com/docs/reporting/statements/api#report-types">report type</a> to run, such as <code>&quot;balance.summary.1&quot;</code>.
24
+ * @property null|\Stripe\File $result The file object representing the result of the report run (populated when <code>status=succeeded</code>).
25
+ * @property string $status Status of this report run. This will be <code>pending</code> when the run is initially created. When the run finishes, this will be set to <code>succeeded</code> and the <code>result</code> field will be populated. Rarely, we may encounter an error, at which point this will be set to <code>failed</code> and the <code>error</code> field will be populated.
26
+ * @property null|int $succeeded_at Timestamp at which this run successfully finished (populated when <code>status=succeeded</code>). Measured in seconds since the Unix epoch.
27
  */
28
  class ReportRun extends \Stripe\ApiResource
29
  {
30
+ const OBJECT_NAME = 'reporting.report_run';
31
 
32
  use \Stripe\ApiOperations\All;
33
  use \Stripe\ApiOperations\Create;
lib/stripe-gateway/lib/Reporting/ReportType.php CHANGED
@@ -3,21 +3,29 @@
3
  namespace Stripe\Reporting;
4
 
5
  /**
6
- * Class ReportType
 
 
 
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $data_available_end
11
- * @property int $data_available_start
12
- * @property string $name
13
- * @property int $updated
14
- * @property string $version
15
  *
16
- * @package Stripe\Reporting
 
 
 
 
 
 
 
17
  */
18
  class ReportType extends \Stripe\ApiResource
19
  {
20
- const OBJECT_NAME = "reporting.report_type";
21
 
22
  use \Stripe\ApiOperations\All;
23
  use \Stripe\ApiOperations\Retrieve;
3
  namespace Stripe\Reporting;
4
 
5
  /**
6
+ * The Report Type resource corresponds to a particular type of report, such as the
7
+ * &quot;Activity summary&quot; or &quot;Itemized payouts&quot; reports. These
8
+ * objects are identified by an ID belonging to a set of enumerated values. See <a
9
+ * href="https://stripe.com/docs/reporting/statements/api">API Access to Reports
10
+ * documentation</a> for those Report Type IDs, along with required and optional
11
+ * parameters.
12
  *
13
+ * Note that reports can only be run based on your live-mode data (not test-mode
14
+ * data), and thus related requests must be made with a <a
15
+ * href="https://stripe.com/docs/keys#test-live-modes">live-mode API key</a>.
 
 
 
 
16
  *
17
+ * @property string $id The <a href="https://stripe.com/docs/reporting/statements/api#available-report-types">ID of the Report Type</a>, such as <code>balance.summary.1</code>.
18
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
19
+ * @property int $data_available_end Most recent time for which this Report Type is available. Measured in seconds since the Unix epoch.
20
+ * @property int $data_available_start Earliest time for which this Report Type is available. Measured in seconds since the Unix epoch.
21
+ * @property null|string[] $default_columns List of column names that are included by default when this Report Type gets run. (If the Report Type doesn't support the <code>columns</code> parameter, this will be null.)
22
+ * @property string $name Human-readable name of the Report Type
23
+ * @property int $updated When this Report Type was latest updated. Measured in seconds since the Unix epoch.
24
+ * @property int $version Version of the Report Type. Different versions report with the same ID will have the same purpose, but may take different run parameters or have different result schemas.
25
  */
26
  class ReportType extends \Stripe\ApiResource
27
  {
28
+ const OBJECT_NAME = 'reporting.report_type';
29
 
30
  use \Stripe\ApiOperations\All;
31
  use \Stripe\ApiOperations\Retrieve;
lib/stripe-gateway/lib/RequestTelemetry.php CHANGED
@@ -3,10 +3,9 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class RequestTelemetry
7
  *
8
  * Tracks client request telemetry
9
- * @package Stripe
10
  */
11
  class RequestTelemetry
12
  {
@@ -16,8 +15,8 @@ class RequestTelemetry
16
  /**
17
  * Initialize a new telemetry object.
18
  *
19
- * @param string $requestId The request's request ID.
20
- * @param int $requestDuration The request's duration in milliseconds.
21
  */
22
  public function __construct($requestId, $requestDuration)
23
  {
3
  namespace Stripe;
4
 
5
  /**
6
+ * Class RequestTelemetry.
7
  *
8
  * Tracks client request telemetry
 
9
  */
10
  class RequestTelemetry
11
  {
15
  /**
16
  * Initialize a new telemetry object.
17
  *
18
+ * @param string $requestId the request's request ID
19
+ * @param int $requestDuration the request's duration in milliseconds
20
  */
21
  public function __construct($requestId, $requestDuration)
22
  {
lib/stripe-gateway/lib/Review.php CHANGED
@@ -3,28 +3,30 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class Review
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property string $billing_zip
11
- * @property string $charge
12
- * @property string $closed_reason
13
- * @property int $created
14
- * @property string $ip_address
15
- * @property mixed $ip_address_location
16
- * @property bool $livemode
17
- * @property bool $open
18
- * @property string $opened_reason
19
- * @property string $payment_intent
20
- * @property string $reason
21
- * @property mixed $session
22
  *
23
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  */
25
  class Review extends ApiResource
26
  {
27
- const OBJECT_NAME = "review";
28
 
29
  use ApiOperations\All;
30
  use ApiOperations\Retrieve;
@@ -33,25 +35,30 @@ class Review extends ApiResource
33
  * Possible string representations of the current, the opening or the closure reason of the review.
34
  * Not all of these enumeration apply to all of the ´reason´ fields. Please consult the Review object to
35
  * determine where these are apply.
36
- * @link https://stripe.com/docs/api/radar/reviews/object
 
37
  */
38
- const REASON_APPROVED = 'approved';
39
- const REASON_DISPUTED = 'disputed';
40
- const REASON_MANUAL = 'manual';
41
- const REASON_REFUNDED = 'refunded';
42
  const REASON_REFUNDED_AS_FRAUD = 'refunded_as_fraud';
43
- const REASON_RULE = 'rule';
44
 
45
  /**
46
- * @param array|string|null $options
 
 
 
47
  *
48
- * @return Review The approved review.
49
  */
50
- public function approve($params = null, $options = null)
51
  {
52
  $url = $this->instanceUrl() . '/approve';
53
- list($response, $opts) = $this->_request('post', $url, $params, $options);
54
  $this->refreshFrom($response, $opts);
 
55
  return $this;
56
  }
57
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * Reviews can be used to supplement automated fraud detection with human
7
+ * expertise.
8
  *
9
+ * Learn more about <a href="/radar">Radar</a> and reviewing payments <a
10
+ * href="https://stripe.com/docs/radar/reviews">here</a>.
 
 
 
 
 
 
 
 
 
 
 
 
11
  *
12
+ * @property string $id Unique identifier for the object.
13
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
14
+ * @property null|string $billing_zip The ZIP or postal code of the card used, if applicable.
15
+ * @property null|string|\Stripe\Charge $charge The charge associated with this review.
16
+ * @property null|string $closed_reason The reason the review was closed, or null if it has not yet been closed. One of <code>approved</code>, <code>refunded</code>, <code>refunded_as_fraud</code>, or <code>disputed</code>.
17
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
18
+ * @property null|string $ip_address The IP address where the payment originated.
19
+ * @property null|\Stripe\StripeObject $ip_address_location Information related to the location of the payment. Note that this information is an approximation and attempts to locate the nearest population center - it should not be used to determine a specific address.
20
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
21
+ * @property bool $open If <code>true</code>, the review needs action.
22
+ * @property string $opened_reason The reason the review was opened. One of <code>rule</code> or <code>manual</code>.
23
+ * @property string|\Stripe\PaymentIntent $payment_intent The PaymentIntent ID associated with this review, if one exists.
24
+ * @property string $reason The reason the review is currently open or closed. One of <code>rule</code>, <code>manual</code>, <code>approved</code>, <code>refunded</code>, <code>refunded_as_fraud</code>, or <code>disputed</code>.
25
+ * @property null|\Stripe\StripeObject $session Information related to the browsing session of the user who initiated the payment.
26
  */
27
  class Review extends ApiResource
28
  {
29
+ const OBJECT_NAME = 'review';
30
 
31
  use ApiOperations\All;
32
  use ApiOperations\Retrieve;
35
  * Possible string representations of the current, the opening or the closure reason of the review.
36
  * Not all of these enumeration apply to all of the ´reason´ fields. Please consult the Review object to
37
  * determine where these are apply.
38
+ *
39
+ * @see https://stripe.com/docs/api/radar/reviews/object
40
  */
41
+ const REASON_APPROVED = 'approved';
42
+ const REASON_DISPUTED = 'disputed';
43
+ const REASON_MANUAL = 'manual';
44
+ const REASON_REFUNDED = 'refunded';
45
  const REASON_REFUNDED_AS_FRAUD = 'refunded_as_fraud';
46
+ const REASON_RULE = 'rule';
47
 
48
  /**
49
+ * @param null|array $params
50
+ * @param null|array|string $opts
51
+ *
52
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
53
  *
54
+ * @return Review the approved review
55
  */
56
+ public function approve($params = null, $opts = null)
57
  {
58
  $url = $this->instanceUrl() . '/approve';
59
+ list($response, $opts) = $this->_request('post', $url, $params, $opts);
60
  $this->refreshFrom($response, $opts);
61
+
62
  return $this;
63
  }
64
  }
lib/stripe-gateway/lib/SKU.php CHANGED
@@ -3,28 +3,36 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class SKU
 
 
 
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property bool $active
11
- * @property mixed $attributes
12
- * @property int $created
13
- * @property string $currency
14
- * @property string $image
15
- * @property mixed $inventory
16
- * @property bool $livemode
17
- * @property StripeObject $metadata
18
- * @property mixed $package_dimensions
19
- * @property int $price
20
- * @property string $product
21
- * @property int $updated
22
  *
23
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  */
25
  class SKU extends ApiResource
26
  {
27
- const OBJECT_NAME = "sku";
28
 
29
  use ApiOperations\All;
30
  use ApiOperations\Create;
3
  namespace Stripe;
4
 
5
  /**
6
+ * Stores representations of <a
7
+ * href="http://en.wikipedia.org/wiki/Stock_keeping_unit">stock keeping units</a>.
8
+ * SKUs describe specific product variations, taking into account any combination
9
+ * of: attributes, currency, and cost. For example, a product may be a T-shirt,
10
+ * whereas a specific SKU represents the <code>size: large</code>, <code>color:
11
+ * red</code> version of that shirt.
12
  *
13
+ * Can also be used to manage inventory.
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  *
15
+ * Related guide: <a href="https://stripe.com/docs/orders">Tax, Shipping, and
16
+ * Inventory</a>.
17
+ *
18
+ * @property string $id Unique identifier for the object.
19
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
20
+ * @property bool $active Whether the SKU is available for purchase.
21
+ * @property \Stripe\StripeObject $attributes A dictionary of attributes and values for the attributes defined by the product. If, for example, a product's attributes are <code>[&quot;size&quot;, &quot;gender&quot;]</code>, a valid SKU has the following dictionary of attributes: <code>{&quot;size&quot;: &quot;Medium&quot;, &quot;gender&quot;: &quot;Unisex&quot;}</code>.
22
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
23
+ * @property string $currency Three-letter <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO currency code</a>, in lowercase. Must be a <a href="https://stripe.com/docs/currencies">supported currency</a>.
24
+ * @property null|string $image The URL of an image for this SKU, meant to be displayable to the customer.
25
+ * @property \Stripe\StripeObject $inventory
26
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
27
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
28
+ * @property null|\Stripe\StripeObject $package_dimensions The dimensions of this SKU for shipping purposes.
29
+ * @property int $price The cost of the item as a positive integer in the smallest currency unit (that is, 100 cents to charge $1.00, or 100 to charge ¥100, Japanese Yen being a zero-decimal currency).
30
+ * @property string|\Stripe\Product $product The ID of the product this SKU is associated with. The product must be currently active.
31
+ * @property int $updated Time at which the object was last updated. Measured in seconds since the Unix epoch.
32
  */
33
  class SKU extends ApiResource
34
  {
35
+ const OBJECT_NAME = 'sku';
36
 
37
  use ApiOperations\All;
38
  use ApiOperations\Create;
lib/stripe-gateway/lib/SetupIntent.php CHANGED
@@ -3,72 +3,109 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class SetupIntent
 
 
 
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property string $application
11
- * @property string $client_secret
12
- * @property int $created
13
- * @property string $customer
14
- * @property string $description
15
- * @property mixed $last_setup_error
16
- * @property bool $livemode
17
- * @property StripeObject $metadata
18
- * @property mixed $next_action
19
- * @property string $on_behalf_of
20
- * @property string $payment_method
21
- * @property string[] $payment_method_types
22
- * @property string $status
23
  *
24
- * @package Stripe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  */
26
  class SetupIntent extends ApiResource
27
  {
28
- const OBJECT_NAME = "setup_intent";
29
 
30
  use ApiOperations\All;
31
  use ApiOperations\Create;
32
  use ApiOperations\Retrieve;
33
  use ApiOperations\Update;
34
 
35
- /**
36
- * These constants are possible representations of the status field.
37
- *
38
- * @link https://stripe.com/docs/api/setup_intents/object#setup_intent_object-status
39
- */
40
- const STATUS_CANCELED = 'canceled';
41
- const STATUS_PROCESSING = 'processing';
42
- const STATUS_REQUIRES_ACTION = 'requires_action';
43
- const STATUS_REQUIRES_CONFIRMATION = 'requires_confirmation';
44
  const STATUS_REQUIRES_PAYMENT_METHOD = 'requires_payment_method';
45
- const STATUS_SUCCEEDED = 'succeeded';
46
 
47
  /**
48
- * @param array|null $params
49
- * @param array|string|null $options
 
 
50
  *
51
- * @return SetupIntent The canceled setup intent.
52
  */
53
- public function cancel($params = null, $options = null)
54
  {
55
  $url = $this->instanceUrl() . '/cancel';
56
- list($response, $opts) = $this->_request('post', $url, $params, $options);
57
  $this->refreshFrom($response, $opts);
 
58
  return $this;
59
  }
60
 
61
  /**
62
- * @param array|null $params
63
- * @param array|string|null $options
64
  *
65
- * @return SetupIntent The confirmed setup intent.
 
 
66
  */
67
- public function confirm($params = null, $options = null)
68
  {
69
  $url = $this->instanceUrl() . '/confirm';
70
- list($response, $opts) = $this->_request('post', $url, $params, $options);
71
  $this->refreshFrom($response, $opts);
 
72
  return $this;
73
  }
74
  }
3
  namespace Stripe;
4
 
5
  /**
6
+ * A SetupIntent guides you through the process of setting up and saving a
7
+ * customer's payment credentials for future payments. For example, you could use a
8
+ * SetupIntent to set up and save your customer's card without immediately
9
+ * collecting a payment. Later, you can use <a
10
+ * href="https://stripe.com/docs/api#payment_intents">PaymentIntents</a> to drive
11
+ * the payment flow.
12
  *
13
+ * Create a SetupIntent as soon as you're ready to collect your customer's payment
14
+ * credentials. Do not maintain long-lived, unconfirmed SetupIntents as they may no
15
+ * longer be valid. The SetupIntent then transitions through multiple <a
16
+ * href="https://stripe.com/docs/payments/intents#intent-statuses">statuses</a> as
17
+ * it guides you through the setup process.
 
 
 
 
 
 
 
 
 
 
18
  *
19
+ * Successful SetupIntents result in payment credentials that are optimized for
20
+ * future payments. For example, cardholders in <a
21
+ * href="/guides/strong-customer-authentication">certain regions</a> may need to be
22
+ * run through <a
23
+ * href="https://stripe.com/docs/strong-customer-authentication">Strong Customer
24
+ * Authentication</a> at the time of payment method collection in order to
25
+ * streamline later <a
26
+ * href="https://stripe.com/docs/payments/setup-intents">off-session payments</a>.
27
+ * If the SetupIntent is used with a <a
28
+ * href="https://stripe.com/docs/api#setup_intent_object-customer">Customer</a>,
29
+ * upon success, it will automatically attach the resulting payment method to that
30
+ * Customer. We recommend using SetupIntents or <a
31
+ * href="https://stripe.com/docs/api#payment_intent_object-setup_future_usage">setup_future_usage</a>
32
+ * on PaymentIntents to save payment methods in order to prevent saving invalid or
33
+ * unoptimized payment methods.
34
+ *
35
+ * By using SetupIntents, you ensure that your customers experience the minimum set
36
+ * of required friction, even as regulations change over time.
37
+ *
38
+ * Related guide: <a href="https://stripe.com/docs/payments/setup-intents">Setup
39
+ * Intents API</a>.
40
+ *
41
+ * @property string $id Unique identifier for the object.
42
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
43
+ * @property null|string|\Stripe\StripeObject $application ID of the Connect application that created the SetupIntent.
44
+ * @property null|string $cancellation_reason Reason for cancellation of this SetupIntent, one of <code>abandoned</code>, <code>requested_by_customer</code>, or <code>duplicate</code>.
45
+ * @property null|string $client_secret <p>The client secret of this SetupIntent. Used for client-side retrieval using a publishable key.</p><p>The client secret can be used to complete payment setup from your frontend. It should not be stored, logged, embedded in URLs, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret.</p>
46
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
47
+ * @property null|string|\Stripe\Customer $customer <p>ID of the Customer this SetupIntent belongs to, if one exists.</p><p>If present, the SetupIntent's payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent.</p>
48
+ * @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users.
49
+ * @property null|\Stripe\ErrorObject $last_setup_error The error encountered in the previous SetupIntent confirmation.
50
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
51
+ * @property null|string|\Stripe\Mandate $mandate ID of the multi use Mandate generated by the SetupIntent.
52
+ * @property \Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
53
+ * @property null|\Stripe\StripeObject $next_action If present, this property tells you what actions you need to take in order for your customer to continue payment setup.
54
+ * @property null|string|\Stripe\Account $on_behalf_of The account (if any) for which the setup is intended.
55
+ * @property null|string|\Stripe\PaymentMethod $payment_method ID of the payment method used with this SetupIntent.
56
+ * @property null|\Stripe\StripeObject $payment_method_options Payment-method-specific configuration for this SetupIntent.
57
+ * @property string[] $payment_method_types The list of payment method types (e.g. card) that this SetupIntent is allowed to set up.
58
+ * @property null|string|\Stripe\Mandate $single_use_mandate ID of the single_use Mandate generated by the SetupIntent.
59
+ * @property string $status <a href="https://stripe.com/docs/payments/intents#intent-statuses">Status</a> of this SetupIntent, one of <code>requires_payment_method</code>, <code>requires_confirmation</code>, <code>requires_action</code>, <code>processing</code>, <code>canceled</code>, or <code>succeeded</code>.
60
+ * @property string $usage <p>Indicates how the payment method is intended to be used in the future.</p><p>Use <code>on_session</code> if you intend to only reuse the payment method when the customer is in your checkout flow. Use <code>off_session</code> if your customer may or may not be in your checkout flow. If not provided, this value defaults to <code>off_session</code>.</p>
61
  */
62
  class SetupIntent extends ApiResource
63
  {
64
+ const OBJECT_NAME = 'setup_intent';
65
 
66
  use ApiOperations\All;
67
  use ApiOperations\Create;
68
  use ApiOperations\Retrieve;
69
  use ApiOperations\Update;
70
 
71
+ const STATUS_CANCELED = 'canceled';
72
+ const STATUS_PROCESSING = 'processing';
73
+ const STATUS_REQUIRES_ACTION = 'requires_action';
74
+ const STATUS_REQUIRES_CONFIRMATION = 'requires_confirmation';
 
 
 
 
 
75
  const STATUS_REQUIRES_PAYMENT_METHOD = 'requires_payment_method';
76
+ const STATUS_SUCCEEDED = 'succeeded';
77
 
78
  /**
79
+ * @param null|array $params
80
+ * @param null|array|string $opts
81
+ *
82
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
83
  *
84
+ * @return SetupIntent the canceled setup intent
85
  */
86
+ public function cancel($params = null, $opts = null)
87
  {
88
  $url = $this->instanceUrl() . '/cancel';
89
+ list($response, $opts) = $this->_request('post', $url, $params, $opts);
90
  $this->refreshFrom($response, $opts);
91
+
92
  return $this;
93
  }
94
 
95
  /**
96
+ * @param null|array $params
97
+ * @param null|array|string $opts
98
  *
99
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
100
+ *
101
+ * @return SetupIntent the confirmed setup intent
102
  */
103
+ public function confirm($params = null, $opts = null)
104
  {
105
  $url = $this->instanceUrl() . '/confirm';
106
+ list($response, $opts) = $this->_request('post', $url, $params, $opts);
107
  $this->refreshFrom($response, $opts);
108
+
109
  return $this;
110
  }
111
  }
lib/stripe-gateway/lib/Sigma/ScheduledQueryRun.php CHANGED
@@ -3,31 +3,33 @@
3
  namespace Stripe\Sigma;
4
 
5
  /**
6
- * Class Authorization
 
 
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property int $created
11
- * @property int $data_load_time
12
- * @property string $error
13
- * @property \Stripe\FileUpload $file
14
- * @property bool $livemode
15
- * @property int $result_available_until
16
- * @property string $sql
17
- * @property string $status
18
- * @property string $title
19
- *
20
- * @package Stripe\Sigma
21
  */
22
  class ScheduledQueryRun extends \Stripe\ApiResource
23
  {
24
- const OBJECT_NAME = "scheduled_query_run";
25
 
26
  use \Stripe\ApiOperations\All;
27
  use \Stripe\ApiOperations\Retrieve;
28
 
29
  public static function classUrl()
30
  {
31
- return "/v1/sigma/scheduled_query_runs";
32
  }
33
  }
3
  namespace Stripe\Sigma;
4
 
5
  /**
6
+ * If you have <a href="https://stripe.com/docs/sigma/scheduled-queries">scheduled
7
+ * a Sigma query</a>, you'll receive a
8
+ * <code>sigma.scheduled_query_run.created</code> webhook each time the query runs.
9
+ * The webhook contains a <code>ScheduledQueryRun</code> object, which you can use
10
+ * to retrieve the query results.
11
  *
12
+ * @property string $id Unique identifier for the object.
13
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
14
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
15
+ * @property int $data_load_time When the query was run, Sigma contained a snapshot of your Stripe data at this time.
16
+ * @property \Stripe\StripeObject $error
17
+ * @property null|\Stripe\File $file The file object representing the results of the query.
18
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
19
+ * @property int $result_available_until Time at which the result expires and is no longer available for download.
20
+ * @property string $sql SQL for the query.
21
+ * @property string $status The query's execution status, which will be <code>completed</code> for successful runs, and <code>canceled</code>, <code>failed</code>, or <code>timed_out</code> otherwise.
22
+ * @property string $title Title of the query.
 
 
23
  */
24
  class ScheduledQueryRun extends \Stripe\ApiResource
25
  {
26
+ const OBJECT_NAME = 'scheduled_query_run';
27
 
28
  use \Stripe\ApiOperations\All;
29
  use \Stripe\ApiOperations\Retrieve;
30
 
31
  public static function classUrl()
32
  {
33
+ return '/v1/sigma/scheduled_query_runs';
34
  }
35
  }
lib/stripe-gateway/lib/SingletonApiResource.php CHANGED
@@ -3,9 +3,7 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class SingletonApiResource
7
- *
8
- * @package Stripe
9
  */
10
  abstract class SingletonApiResource extends ApiResource
11
  {
@@ -14,22 +12,24 @@ abstract class SingletonApiResource extends ApiResource
14
  $opts = Util\RequestOptions::parse($options);
15
  $instance = new static(null, $opts);
16
  $instance->refresh();
 
17
  return $instance;
18
  }
19
 
20
  /**
21
- * @return string The endpoint associated with this singleton class.
22
  */
23
  public static function classUrl()
24
  {
25
  // Replace dots with slashes for namespaced resources, e.g. if the object's name is
26
  // "foo.bar", then its URL will be "/v1/foo/bar".
27
- $base = str_replace('.', '/', static::OBJECT_NAME);
28
- return "/v1/${base}";
 
29
  }
30
 
31
  /**
32
- * @return string The endpoint associated with this singleton API resource.
33
  */
34
  public function instanceUrl()
35
  {
3
  namespace Stripe;
4
 
5
  /**
6
+ * Class SingletonApiResource.
 
 
7
  */
8
  abstract class SingletonApiResource extends ApiResource
9
  {
12
  $opts = Util\RequestOptions::parse($options);
13
  $instance = new static(null, $opts);
14
  $instance->refresh();
15
+
16
  return $instance;
17
  }
18
 
19
  /**
20
+ * @return string the endpoint associated with this singleton class
21
  */
22
  public static function classUrl()
23
  {
24
  // Replace dots with slashes for namespaced resources, e.g. if the object's name is
25
  // "foo.bar", then its URL will be "/v1/foo/bar".
26
+ $base = \str_replace('.', '/', static::OBJECT_NAME);
27
+
28
+ return "/v1/{$base}";
29
  }
30
 
31
  /**
32
+ * @return string the endpoint associated with this singleton API resource
33
  */
34
  public function instanceUrl()
35
  {
lib/stripe-gateway/lib/Source.php CHANGED
@@ -3,151 +3,164 @@
3
  namespace Stripe;
4
 
5
  /**
6
- * Class Source
 
 
 
7
  *
8
- * @property string $id
9
- * @property string $object
10
- * @property mixed $ach_credit_transfer
11
- * @property mixed $ach_debit
12
- * @property mixed $alipay
13
- * @property int $amount
14
- * @property mixed $bancontact
15
- * @property mixed $card
16
- * @property mixed $card_present
17
- * @property string $client_secret
18
- * @property mixed $code_verification
19
- * @property int $created
20
- * @property string $currency
21
- * @property string $customer
22
- * @property mixed $eps
23
- * @property string $flow
24
- * @property mixed $giropay
25
- * @property mixed $ideal
26
- * @property bool $livemode
27
- * @property StripeObject $metadata
28
- * @property mixed $multibanco
29
- * @property mixed $owner
30
- * @property mixed $p24
31
- * @property mixed $receiver
32
- * @property mixed $redirect
33
- * @property mixed $sepa_debit
34
- * @property mixed $sofort
35
- * @property string $statement_descriptor
36
- * @property string $status
37
- * @property mixed $three_d_secure
38
- * @property string $type
39
- * @property string $usage
40
- * @property mixed $wechat
41
-
42
- * @package Stripe
 
 
 
 
 
 
43
  */
44
  class Source extends ApiResource
45
  {
46
- const OBJECT_NAME = "source";
47
 
48
  use ApiOperations\Create;
49
  use ApiOperations\Retrieve;
50
  use ApiOperations\Update;
51
 
52
- /**
53
- * Possible string representations of source flows.
54
- * @link https://stripe.com/docs/api#source_object-flow
55
- */
56
- const FLOW_REDIRECT = 'redirect';
57
- const FLOW_RECEIVER = 'receiver';
58
  const FLOW_CODE_VERIFICATION = 'code_verification';
59
- const FLOW_NONE = 'none';
 
 
60
 
61
- /**
62
- * Possible string representations of source statuses.
63
- * @link https://stripe.com/docs/api#source_object-status
64
- */
65
- const STATUS_CANCELED = 'canceled';
66
  const STATUS_CHARGEABLE = 'chargeable';
67
- const STATUS_CONSUMED = 'consumed';
68
- const STATUS_FAILED = 'failed';
69
- const STATUS_PENDING = 'pending';
70
 
71
- /**
72
- * Possible string representations of source usage.
73
- * @link https://stripe.com/docs/api#source_object-usage
74
- */
75
- const USAGE_REUSABLE = 'reusable';
76
  const USAGE_SINGLE_USE = 'single_use';
77
 
 
 
78
  /**
79
- * @param array|null $params
80
- * @param array|string|null $options
 
 
 
81
  *
82
- * @return Source The detached source.
83
  */
84
- public function detach($params = null, $options = null)
85
  {
86
  self::_validateParams($params);
87
 
88
  $id = $this['id'];
89
  if (!$id) {
90
- $class = get_class($this);
91
- $msg = "Could not determine which URL to request: $class instance "
92
- . "has invalid ID: $id";
93
- throw new Error\InvalidRequest($msg, null);
 
94
  }
95
 
96
  if ($this['customer']) {
97
  $base = Customer::classUrl();
98
- $parentExtn = urlencode(Util\Util::utf8($this['customer']));
99
- $extn = urlencode(Util\Util::utf8($id));
100
- $url = "$base/$parentExtn/sources/$extn";
101
 
102
- list($response, $opts) = $this->_request('delete', $url, $params, $options);
103
  $this->refreshFrom($response, $opts);
 
104
  return $this;
105
- } else {
106
- $message = "This source object does not appear to be currently attached "
107
- . "to a customer object.";
108
- throw new Error\Api($message);
109
  }
 
3
  namespace Stripe;
4
 
5
  /**
6
+ * <code>Source</code> objects allow you to accept a variety of payment methods.
7
+ * They represent a customer's payment instrument, and can be used with the Stripe
8
+ * API just like a <code>Card</code> object: once chargeable, they can be charged,
9
+ * or can be attached to customers.
10
  *
11
+ * Related guides: <a href="https://stripe.com/docs/sources">Sources API</a> and <a
12
+ * href="https://stripe.com/docs/sources/customers">Sources &amp; Customers</a>.
13
+ *
14
+ * @property string $id Unique identifier for the object.
15
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
16
+ * @property \Stripe\StripeObject $ach_credit_transfer
17
+ * @property \Stripe\StripeObject $ach_debit
18
+ * @property \Stripe\StripeObject $acss_debit
19
+ * @property \Stripe\StripeObject $alipay
20
+ * @property null|int $amount A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount associated with the source. This is the amount for which the source will be chargeable once ready. Required for <code>single_use</code> sources.
21
+ * @property \Stripe\StripeObject $au_becs_debit
22
+ * @property \Stripe\StripeObject $bancontact
23
+ * @property \Stripe\StripeObject $card
24
+ * @property \Stripe\StripeObject $card_present
25
+ * @property string $client_secret The client secret of the source. Used for client-side retrieval using a publishable key.
26
+ * @property \Stripe\StripeObject $code_verification
27
+ * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
28
+ * @property null|string $currency Three-letter <a href="https://stripe.com/docs/currencies">ISO code for the currency</a> associated with the source. This is the currency for which the source will be chargeable once ready. Required for <code>single_use</code> sources.
29
+ * @property string $customer The ID of the customer to which this source is attached. This will not be present when the source has not been attached to a customer.
30
+ * @property \Stripe\StripeObject $eps
31
+ * @property string $flow The authentication <code>flow</code> of the source. <code>flow</code> is one of <code>redirect</code>, <code>receiver</code>, <code>code_verification</code>, <code>none</code>.
32
+ * @property \Stripe\StripeObject $giropay
33
+ * @property \Stripe\StripeObject $ideal
34
+ * @property \Stripe\StripeObject $klarna
35
+ * @property bool $livemode Has the value <code>true</code> if the object exists in live mode or the value <code>false</code> if the object exists in test mode.
36
+ * @property null|\Stripe\StripeObject $metadata Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
37
+ * @property \Stripe\StripeObject $multibanco
38
+ * @property null|\Stripe\StripeObject $owner Information about the owner of the payment instrument that may be used or required by particular source types.
39
+ * @property \Stripe\StripeObject $p24
40
+ * @property \Stripe\StripeObject $receiver
41
+ * @property \Stripe\StripeObject $redirect
42
+ * @property \Stripe\StripeObject $sepa_credit_transfer
43
+ * @property \Stripe\StripeObject $sepa_debit
44
+ * @property \Stripe\StripeObject $sofort
45
+ * @property \Stripe\StripeObject $source_order
46
+ * @property null|string $statement_descriptor Extra information about a source. This will appear on your customer's statement every time you charge the source.
47
+ * @property string $status The status of the source, one of <code>canceled</code>, <code>chargeable</code>, <code>consumed</code>, <code>failed</code>, or <code>pending</code>. Only <code>chargeable</code> sources can be used to create a charge.
48
+ * @property \Stripe\StripeObject $three_d_secure
49
+ * @property string $type The <code>type</code> of the source. The <code>type</code> is a payment method, one of <code>ach_credit_transfer</code>, <code>ach_debit</code>, <code>alipay</code>, <code>bancontact</code>, <code>card</code>, <code>card_present</code>, <code>eps</code>, <code>giropay</code>, <code>ideal</code>, <code>multibanco</code>, <code>klarna</code>, <code>p24</code>, <code>sepa_debit</code>, <code>sofort</code>, <code>three_d_secure</code>, or <code>wechat</code>. An additional hash is included on the source with a name matching this value. It contains additional information specific to the <a href="https://stripe.com/docs/sources">payment method</a> used.
50
+ * @property null|string $usage Either <code>reusable</code> or <code>single_use</code>. Whether this source should be reusable or not. Some source types may or may not be reusable by construction, while others may leave the option at creation. If an incompatible value is passed, an error will be returned.
51
+ * @property \Stripe\StripeObject $wechat
52
  */
53
  class Source extends ApiResource
54
  {
55
+ const OBJECT_NAME = 'source';
56
 
57
  use ApiOperations\Create;
58
  use ApiOperations\Retrieve;
59
  use ApiOperations\Update;
60
 
 
 
 
 
 
 
61
  const FLOW_CODE_VERIFICATION = 'code_verification';
62
+ const FLOW_NONE = 'none';
63
+ const FLOW_RECEIVER = 'receiver';
64
+ const FLOW_REDIRECT = 'redirect';
65
 
66
+ const STATUS_CANCELED = 'canceled';
 
 
 
 
67
  const STATUS_CHARGEABLE = 'chargeable';
68
+ const STATUS_CONSUMED = 'consumed';
69
+ const STATUS_FAILED = 'failed';
70
+ const STATUS_PENDING = 'pending';
71
 
72
+ const USAGE_REUSABLE = 'reusable';
 
 
 
 
73
  const USAGE_SINGLE_USE = 'single_use';
74
 
75
+ use ApiOperations\NestedResource;
76
+
77
  /**
78
+ * @param null|array $params
79
+ * @param null|array|string $opts
80
+ *
81
+ * @throws \Stripe\Exception\UnexpectedValueException if the source is not attached to a customer
82
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
83
  *
84
+ * @return \Stripe\Source the detached source
85
  */
86
+ public function detach($params = null, $opts = null)
87
  {
88
  self::_validateParams($params);
89
 
90
  $id = $this['id'];
91
  if (!$id) {
92
+ $class = \get_class($this);
93
+ $msg = "Could not determine which URL to request: {$class} instance "
94
+ . "has invalid ID: {$id}";
95
+
96
+ throw new Exception\UnexpectedValueException($msg, null);
97
  }
98
 
99
  if ($this['customer']) {
100
  $base = Customer::classUrl();
101
+ $parentExtn = \urlencode(Util\Util::utf8($this['customer']));
102
+ $extn = \urlencode(Util\Util::utf8($id));
103
+ $url = "{$base}/{$parentExtn}/sources/{$extn}";
104
 
105
+ list($response, $opts) = $this->_request('delete', $url, $params, $opts);
106
  $this->refreshFrom($response, $opts);
107
+
108
  return $this;
 
 
 
 
109
  }
110
+ $message = 'This source object does not appear