Version Description
- Spanish translation language files updated.
- Added more debug logging statement in the IPN handling script for easier troubleshooting.
- Fixed an issue with the new SCA stripe subscription cancellation webhook.
Download this release
Release Info
Developer | mra13 |
Plugin | Simple Membership |
Version | 3.9.2 |
Comparing to | |
See all releases |
Code changes from version 3.8.9 to 3.9.2
- classes/class.swpm-access-control.php +2 -2
- classes/class.swpm-auth.php +3 -3
- classes/class.swpm-utils-misc.php +9 -0
- classes/class.swpm-wp-loaded-tasks.php +102 -83
- classes/shortcode-related/class.swpm-shortcodes-handler.php +1 -0
- ipn/swpm-stripe-buy-now-ipn.php +2 -4
- ipn/swpm-stripe-sca-buy-now-ipn.php +225 -0
- ipn/swpm-stripe-sca-subscription-ipn.php +208 -0
- ipn/swpm-stripe-subscription-ipn.php +2 -4
- ipn/swpm_handle_subsc_ipn.php +11 -5
- languages/simple-membership-es_ES.mo +0 -0
- languages/simple-membership-es_ES.po +1868 -1012
- lib/stripe-gateway/.editorconfig +14 -0
- lib/stripe-gateway/.gitignore +17 -0
- lib/stripe-gateway/CHANGELOG.md +732 -0
- lib/stripe-gateway/LICENSE +21 -0
- lib/stripe-gateway/README.md +257 -0
- lib/stripe-gateway/VERSION +1 -0
- lib/stripe-gateway/build.php +36 -0
- lib/stripe-gateway/composer.json +37 -0
- lib/stripe-gateway/data/ca-certificates.crt +421 -694
- lib/stripe-gateway/init.php +79 -3
- lib/stripe-gateway/lib/Account.php +302 -41
- lib/stripe-gateway/lib/AccountLink.php +20 -0
- lib/stripe-gateway/lib/AlipayAccount.php +59 -1
- lib/stripe-gateway/lib/ApiOperations/All.php +34 -0
- lib/stripe-gateway/lib/ApiOperations/Create.php +28 -0
- lib/stripe-gateway/lib/ApiOperations/Delete.php +27 -0
- lib/stripe-gateway/lib/ApiOperations/NestedResource.php +118 -0
- lib/stripe-gateway/lib/ApiOperations/Request.php +61 -0
- lib/stripe-gateway/lib/ApiOperations/Retrieve.php +27 -0
- lib/stripe-gateway/lib/ApiOperations/Update.php +46 -0
- lib/stripe-gateway/lib/ApiRequestor.php +307 -43
- lib/stripe-gateway/lib/ApiResource.php +40 -133
- lib/stripe-gateway/lib/ApiResponse.php +3 -1
- lib/stripe-gateway/lib/ApplePayDomain.php +27 -0
- lib/stripe-gateway/lib/ApplicationFee.php +50 -22
- lib/stripe-gateway/lib/ApplicationFeeRefund.php +15 -0
- lib/stripe-gateway/lib/Balance.php +7 -4
- lib/stripe-gateway/lib/BalanceTransaction.php +35 -27
- lib/stripe-gateway/lib/BankAccount.php +87 -4
- lib/stripe-gateway/lib/BitcoinReceiver.php +17 -54
- lib/stripe-gateway/lib/BitcoinTransaction.php +1 -1
- lib/stripe-gateway/lib/Capability.php +82 -0
- lib/stripe-gateway/lib/Card.php +117 -1
- lib/stripe-gateway/lib/Charge.php +86 -64
- lib/stripe-gateway/lib/Checkout/Session.php +39 -0
- lib/stripe-gateway/lib/Collection.php +31 -11
- lib/stripe-gateway/lib/CountrySpec.php +12 -31
- lib/stripe-gateway/lib/Coupon.php +22 -64
- lib/stripe-gateway/lib/CreditNote.php +73 -0
- lib/stripe-gateway/lib/Customer.php +203 -74
- lib/stripe-gateway/lib/CustomerBalanceTransaction.php +88 -0
- lib/stripe-gateway/lib/Discount.php +20 -0
- lib/stripe-gateway/lib/Dispute.php +32 -38
- lib/stripe-gateway/lib/EphemeralKey.php +40 -0
- lib/stripe-gateway/lib/Error/Base.php +9 -0
- lib/stripe-gateway/lib/Error/Card.php +6 -7
- lib/stripe-gateway/lib/Error/Idempotency.php +7 -0
- lib/stripe-gateway/lib/Error/OAuth/InvalidClient.php +10 -0
- lib/stripe-gateway/lib/Error/OAuth/InvalidGrant.php +13 -0
- lib/stripe-gateway/lib/Error/OAuth/InvalidRequest.php +11 -0
- lib/stripe-gateway/lib/Error/OAuth/InvalidScope.php +10 -0
- lib/stripe-gateway/lib/Error/OAuth/OAuthBase.php +23 -0
- lib/stripe-gateway/lib/Error/OAuth/UnsupportedGrantType.php +11 -0
- lib/stripe-gateway/lib/Error/OAuth/UnsupportedResponseType.php +11 -0
- lib/stripe-gateway/lib/Error/Permission.php +7 -0
- lib/stripe-gateway/lib/Error/SignatureVerification.php +20 -0
- lib/stripe-gateway/lib/Event.php +147 -23
- lib/stripe-gateway/lib/ExchangeRate.php +16 -0
- lib/stripe-gateway/lib/File.php +62 -0
- lib/stripe-gateway/lib/FileLink.php +28 -0
- lib/stripe-gateway/lib/FileUpload.php +2 -57
- lib/stripe-gateway/lib/HttpClient/ClientInterface.php +5 -2
- lib/stripe-gateway/lib/HttpClient/CurlClient.php +258 -96
- lib/stripe-gateway/lib/Invoice.php +137 -27
- lib/stripe-gateway/lib/InvoiceItem.php +26 -64
- lib/stripe-gateway/lib/InvoiceLineItem.php +32 -0
- lib/stripe-gateway/lib/IssuerFraudRecord.php +24 -0
- lib/stripe-gateway/lib/Issuing/Authorization.php +68 -0
- lib/stripe-gateway/lib/Issuing/Card.php +51 -0
- lib/stripe-gateway/lib/Issuing/CardDetails.php +21 -0
- lib/stripe-gateway/lib/Issuing/Cardholder.php +30 -0
- lib/stripe-gateway/lib/Issuing/Dispute.php +30 -0
- lib/stripe-gateway/lib/Issuing/Transaction.php +35 -0
- lib/stripe-gateway/lib/LoginLink.php +17 -0
- lib/stripe-gateway/lib/OAuth.php +93 -0
- lib/stripe-gateway/lib/Order.php +29 -53
- lib/stripe-gateway/lib/OrderItem.php +21 -0
- lib/stripe-gateway/lib/OrderReturn.php +13 -20
- lib/stripe-gateway/lib/PaymentIntent.php +106 -0
- lib/stripe-gateway/lib/PaymentMethod.php +59 -0
- lib/stripe-gateway/lib/Payout.php +92 -0
- lib/stripe-gateway/lib/Person.php +107 -0
- lib/stripe-gateway/lib/Plan.php +26 -64
- lib/stripe-gateway/lib/Product.php +30 -61
- lib/stripe-gateway/lib/Radar/EarlyFraudWarning.php +36 -0
- lib/stripe-gateway/lib/Radar/ValueList.php +32 -0
- lib/stripe-gateway/lib/Radar/ValueListItem.php +26 -0
- lib/stripe-gateway/lib/Recipient.php +22 -67
- lib/stripe-gateway/lib/RecipientTransfer.php +38 -0
- lib/stripe-gateway/lib/Refund.php +30 -49
- lib/stripe-gateway/lib/Reporting/ReportRun.php +28 -0
- lib/stripe-gateway/lib/Reporting/ReportType.php +24 -0
- lib/stripe-gateway/lib/RequestTelemetry.php +27 -0
- lib/stripe-gateway/lib/Review.php +57 -0
- lib/stripe-gateway/lib/SKU.php +21 -64
- lib/stripe-gateway/lib/SetupIntent.php +74 -0
- lib/stripe-gateway/lib/Sigma/ScheduledQueryRun.php +33 -0
- lib/stripe-gateway/lib/SingletonApiResource.php +3 -1
- lib/stripe-gateway/lib/Source.php +122 -13
- lib/stripe-gateway/lib/SourceTransaction.php +22 -0
- lib/stripe-gateway/lib/Stripe.php +167 -2
- lib/stripe-gateway/lib/StripeObject.php +347 -117
- lib/stripe-gateway/lib/Subscription.php +59 -57
- lib/stripe-gateway/lib/SubscriptionItem.php +59 -0
- lib/stripe-gateway/lib/SubscriptionSchedule.php +68 -0
- lib/stripe-gateway/lib/TaxId.php +80 -0
- lib/stripe-gateway/lib/TaxRate.php +30 -0
- lib/stripe-gateway/lib/Terminal/ConnectionToken.php +17 -0
- lib/stripe-gateway/lib/Terminal/Location.php +25 -0
- lib/stripe-gateway/lib/Terminal/Reader.php +30 -0
- lib/stripe-gateway/lib/ThreeDSecure.php +5 -11
- lib/stripe-gateway/lib/Token.php +13 -21
- lib/stripe-gateway/lib/Topup.php +59 -0
- lib/stripe-gateway/lib/Transfer.php +61 -56
- lib/stripe-gateway/lib/TransferReversal.php +9 -1
- lib/stripe-gateway/lib/UsageRecord.php +43 -0
- lib/stripe-gateway/lib/UsageRecordSummary.php +21 -0
- lib/stripe-gateway/lib/Util/AutoPagingIterator.php +3 -3
- lib/stripe-gateway/lib/Util/CaseInsensitiveArray.php +62 -0
- lib/stripe-gateway/lib/Util/DefaultLogger.php +18 -0
- lib/stripe-gateway/lib/Util/LoggerInterface.php +36 -0
- lib/stripe-gateway/lib/Util/RandomGenerator.php +34 -0
- lib/stripe-gateway/lib/Util/RequestOptions.php +34 -5
- lib/stripe-gateway/lib/Util/Set.php +2 -2
- lib/stripe-gateway/lib/Util/Util.php +260 -41
- lib/stripe-gateway/lib/Webhook.php +40 -0
- lib/stripe-gateway/lib/WebhookEndpoint.php +28 -0
- lib/stripe-gateway/lib/WebhookSignature.php +133 -0
- lib/stripe-gateway/update_certs.php +19 -0
- lib/stripe-util-functions.php +2 -4
- readme.txt +15 -2
- simple-wp-membership.php +2 -2
- views/payments/admin_create_payment_buttons.php +65 -59
- views/payments/admin_edit_payment_buttons.php +27 -25
- views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php +440 -0
- views/payments/payment-gateway/admin_stripe_sca_subscription_button.php +339 -0
- views/payments/payment-gateway/stripe_sca_button_shortcode_view.php +327 -0
classes/class.swpm-access-control.php
CHANGED
@@ -63,7 +63,7 @@ class SwpmAccessControl {
|
|
63 |
Â
$protect_older_posts = apply_filters('swpm_should_protect_older_post', false, $id);
|
64 |
Â
if ($protect_older_posts){
|
65 |
Â
//This post falls under the older post protection condition. No access to it.
|
66 |
-
$text = SwpmUtils::_('This content can only be viewed by members who joined on or before ' . SwpmUtils::
|
67 |
Â
$error_msg = '<div class="swpm-post-older-post-msg">'.$text.'</div>';
|
68 |
Â
$this->lastError = apply_filters ('swpm_restricted_post_msg_older_post', $error_msg);
|
69 |
Â
return false;
|
@@ -135,7 +135,7 @@ class SwpmAccessControl {
|
|
135 |
Â
$protect_older_posts = apply_filters('swpm_should_protect_older_post', false, $post_id);
|
136 |
Â
if ($protect_older_posts){
|
137 |
Â
//This comment is protected due to the older post protection addon settings configuration.
|
138 |
-
$text = SwpmUtils::_('This content can only be viewed by members who joined on or before ' . SwpmUtils::
|
139 |
Â
$error_msg = '<div class="swpm-comment-older-post-msg">'.$text.'</div>';
|
140 |
Â
$this->lastError = apply_filters ('swpm_restricted_comment_older_post', $error_msg);
|
141 |
Â
return false;
|
63 |
Â
$protect_older_posts = apply_filters('swpm_should_protect_older_post', false, $id);
|
64 |
Â
if ($protect_older_posts){
|
65 |
Â
//This post falls under the older post protection condition. No access to it.
|
66 |
+
$text = SwpmUtils::_('This content can only be viewed by members who joined on or before ') . SwpmUtils::get_formatted_and_translated_date_according_to_wp_settings($post->post_date);
|
67 |
Â
$error_msg = '<div class="swpm-post-older-post-msg">'.$text.'</div>';
|
68 |
Â
$this->lastError = apply_filters ('swpm_restricted_post_msg_older_post', $error_msg);
|
69 |
Â
return false;
|
135 |
Â
$protect_older_posts = apply_filters('swpm_should_protect_older_post', false, $post_id);
|
136 |
Â
if ($protect_older_posts){
|
137 |
Â
//This comment is protected due to the older post protection addon settings configuration.
|
138 |
+
$text = SwpmUtils::_('This content can only be viewed by members who joined on or before ') . SwpmUtils::get_formatted_and_translated_date_according_to_wp_settings($post->post_date);
|
139 |
Â
$error_msg = '<div class="swpm-comment-older-post-msg">'.$text.'</div>';
|
140 |
Â
$this->lastError = apply_filters ('swpm_restricted_comment_older_post', $error_msg);
|
141 |
Â
return false;
|
classes/class.swpm-auth.php
CHANGED
@@ -385,9 +385,9 @@ class SwpmAuth {
|
|
385 |
Â
; //Use live API key
|
386 |
Â
}
|
387 |
Â
//Include the Stripe library.
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
Â
// Let's try to cancel subscription
|
392 |
Â
try {
|
393 |
Â
$sub = \Stripe\Subscription::retrieve($subscr_id);
|
385 |
Â
; //Use live API key
|
386 |
Â
}
|
387 |
Â
//Include the Stripe library.
|
388 |
+
SwpmMiscUtils::load_stripe_lib();
|
389 |
+
|
390 |
+
\Stripe\Stripe::setApiKey($secret_key);
|
391 |
Â
// Let's try to cancel subscription
|
392 |
Â
try {
|
393 |
Â
$sub = \Stripe\Subscription::retrieve($subscr_id);
|
classes/class.swpm-utils-misc.php
CHANGED
@@ -475,6 +475,8 @@ class SwpmMiscUtils {
|
|
475 |
Â
'pp_smart_checkout' => SwpmUtils::_('PayPal Smart Checkout'),
|
476 |
Â
'stripe_buy_now' => SwpmUtils::_('Stripe Buy Now'),
|
477 |
Â
'stripe_subscription' => SwpmUtils::_('Stripe Subscription'),
|
Â
|
|
Â
|
|
478 |
Â
'braintree_buy_now' => SwpmUtils::_('Braintree Buy Now')
|
479 |
Â
);
|
480 |
Â
|
@@ -496,4 +498,11 @@ class SwpmMiscUtils {
|
|
496 |
Â
return $formatted;
|
497 |
Â
}
|
498 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
499 |
Â
}
|
475 |
Â
'pp_smart_checkout' => SwpmUtils::_('PayPal Smart Checkout'),
|
476 |
Â
'stripe_buy_now' => SwpmUtils::_('Stripe Buy Now'),
|
477 |
Â
'stripe_subscription' => SwpmUtils::_('Stripe Subscription'),
|
478 |
+
'stripe_sca_buy_now' => SwpmUtils::_('Stripe SCA Buy Now'),
|
479 |
+
'stripe_sca_subscription' => SwpmUtils::_('Stripe SCA Subscription'),
|
480 |
Â
'braintree_buy_now' => SwpmUtils::_('Braintree Buy Now')
|
481 |
Â
);
|
482 |
Â
|
498 |
Â
return $formatted;
|
499 |
Â
}
|
500 |
Â
|
501 |
+
public static function load_stripe_lib() {
|
502 |
+
//this function loads Stripe PHP SDK and ensures only once instance is loaded
|
503 |
+
if ( ! class_exists( '\Stripe\Stripe' ) ) {
|
504 |
+
require_once(SIMPLE_WP_MEMBERSHIP_PATH . 'lib/stripe-gateway/init.php');
|
505 |
+
}
|
506 |
+
}
|
507 |
+
|
508 |
Â
}
|
classes/class.swpm-wp-loaded-tasks.php
CHANGED
@@ -1,83 +1,102 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class SwpmWpLoadedTasks {
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class SwpmWpLoadedTasks {
|
4 |
+
|
5 |
+
public function __construct() {
|
6 |
+
|
7 |
+
}
|
8 |
+
|
9 |
+
/*
|
10 |
+
* This is triggered after all plugins, themes and WP has loaded.
|
11 |
+
* It is triggered after init, plugins_loaded etc.
|
12 |
+
*/
|
13 |
+
public function do_wp_loaded_tasks() {
|
14 |
+
$this->synchronise_swpm_logout_for_wp_users();
|
15 |
+
|
16 |
+
//IPN listener
|
17 |
+
$this->swpm_ipn_listener();
|
18 |
+
|
19 |
+
}
|
20 |
+
|
21 |
+
/*
|
22 |
+
* Logs out the user from the swpm session if they are logged out of the WP user session
|
23 |
+
*/
|
24 |
+
public function synchronise_swpm_logout_for_wp_users() {
|
25 |
+
if ( ! is_user_logged_in() ) {
|
26 |
+
/* WP user is logged out. So logout the SWPM user (if applicable) */
|
27 |
+
if ( SwpmMemberUtils::is_member_logged_in() ) {
|
28 |
+
|
29 |
+
//Check if force WP user login sync is enabled or not
|
30 |
+
$force_wp_user_sync = SwpmSettings::get_instance()->get_value( 'force-wp-user-sync' );
|
31 |
+
if ( empty( $force_wp_user_sync ) ) {
|
32 |
+
return '';
|
33 |
+
}
|
34 |
+
/* Force WP user login sync is enabled. */
|
35 |
+
/* SWPM user is logged in the system. Log him out. */
|
36 |
+
SwpmLog::log_auth_debug( 'synchronise_swpm_logout_for_wp_users() - Force wp user login sync is enabled. ', true );
|
37 |
+
SwpmLog::log_auth_debug( 'WP user session is logged out for this user. So logging out of the swpm session also.', true );
|
38 |
+
wp_logout();
|
39 |
+
}
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
/* Payment Gateway IPN listener */
|
44 |
+
|
45 |
+
public function swpm_ipn_listener() {
|
46 |
+
|
47 |
+
//Listen and handle PayPal IPN
|
48 |
+
$swpm_process_ipn = filter_input( INPUT_GET, 'swpm_process_ipn' );
|
49 |
+
if ( $swpm_process_ipn == '1' ) {
|
50 |
+
include SIMPLE_WP_MEMBERSHIP_PATH . 'ipn/swpm_handle_pp_ipn.php';
|
51 |
+
exit;
|
52 |
+
}
|
53 |
+
|
54 |
+
//Listen and handle Stripe Buy Now IPN
|
55 |
+
$swpm_process_stripe_buy_now = filter_input( INPUT_GET, 'swpm_process_stripe_buy_now' );
|
56 |
+
if ( $swpm_process_stripe_buy_now == '1' ) {
|
57 |
+
include SIMPLE_WP_MEMBERSHIP_PATH . 'ipn/swpm-stripe-buy-now-ipn.php';
|
58 |
+
exit;
|
59 |
+
}
|
60 |
+
|
61 |
+
//Listen and handle Stripe SCA Buy Now IPN
|
62 |
+
$swpm_process_stripe_sca_buy_now = filter_input( INPUT_GET, 'swpm_process_stripe_sca_buy_now' );
|
63 |
+
if ( $swpm_process_stripe_sca_buy_now == '1' ) {
|
64 |
+
include SIMPLE_WP_MEMBERSHIP_PATH . 'ipn/swpm-stripe-sca-buy-now-ipn.php';
|
65 |
+
exit;
|
66 |
+
}
|
67 |
+
|
68 |
+
//Listen and handle Stripe Subscription IPN
|
69 |
+
$swpm_process_stripe_subscription = filter_input( INPUT_GET, 'swpm_process_stripe_subscription' );
|
70 |
+
if ( $swpm_process_stripe_subscription == '1' ) {
|
71 |
+
include SIMPLE_WP_MEMBERSHIP_PATH . 'ipn/swpm-stripe-subscription-ipn.php';
|
72 |
+
exit;
|
73 |
+
}
|
74 |
+
|
75 |
+
//Listen and handle Stripe SCA Subscription IPN
|
76 |
+
$swpm_process_stripe_sca_subscription = filter_input( INPUT_GET, 'swpm_process_stripe_sca_subscription' );
|
77 |
+
$hook = filter_input( INPUT_GET, 'hook', FILTER_SANITIZE_NUMBER_INT );
|
78 |
+
if ( $swpm_process_stripe_sca_subscription == '1' ) {
|
79 |
+
if ( $hook ) {
|
80 |
+
include SIMPLE_WP_MEMBERSHIP_PATH . 'ipn/swpm-stripe-subscription-ipn.php';
|
81 |
+
} else {
|
82 |
+
include SIMPLE_WP_MEMBERSHIP_PATH . 'ipn/swpm-stripe-sca-subscription-ipn.php';
|
83 |
+
}
|
84 |
+
exit;
|
85 |
+
}
|
86 |
+
|
87 |
+
//Listen and handle Braintree Buy Now IPN
|
88 |
+
$swpm_process_braintree_buy_now = filter_input( INPUT_GET, 'swpm_process_braintree_buy_now' );
|
89 |
+
if ( $swpm_process_braintree_buy_now == '1' ) {
|
90 |
+
include SIMPLE_WP_MEMBERSHIP_PATH . 'ipn/swpm-braintree-buy-now-ipn.php';
|
91 |
+
exit;
|
92 |
+
}
|
93 |
+
|
94 |
+
//Listen and handle smart paypal checkout IPN
|
95 |
+
if ( wp_doing_ajax() ) {
|
96 |
+
include SIMPLE_WP_MEMBERSHIP_PATH . 'ipn/swpm-smart-checkout-ipn.php';
|
97 |
+
add_action( 'wp_ajax_swpm_process_pp_smart_checkout', 'swpm_pp_smart_checkout_ajax_hanlder' );
|
98 |
+
add_action( 'wp_ajax_nopriv_swpm_process_pp_smart_checkout', 'swpm_pp_smart_checkout_ajax_hanlder' );
|
99 |
+
}
|
100 |
+
}
|
101 |
+
|
102 |
+
}
|
classes/shortcode-related/class.swpm-shortcodes-handler.php
CHANGED
@@ -37,6 +37,7 @@ class SwpmShortcodesHandler {
|
|
37 |
Â
|
38 |
Â
include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/paypal_button_shortcode_view.php');
|
39 |
Â
include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/stripe_button_shortcode_view.php');
|
Â
|
|
40 |
Â
include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/braintree_button_shortcode_view.php');
|
41 |
Â
include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/paypal_smart_checkout_button_shortcode_view.php');
|
42 |
Â
|
37 |
Â
|
38 |
Â
include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/paypal_button_shortcode_view.php');
|
39 |
Â
include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/stripe_button_shortcode_view.php');
|
40 |
+
include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/stripe_sca_button_shortcode_view.php');
|
41 |
Â
include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/braintree_button_shortcode_view.php');
|
42 |
Â
include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/paypal_smart_checkout_button_shortcode_view.php');
|
43 |
Â
|
ipn/swpm-stripe-buy-now-ipn.php
CHANGED
@@ -14,10 +14,8 @@ class SwpmStripeBuyNowIpnHandler {
|
|
14 |
Â
// SwpmLog::log_simple_debug(print_r($_REQUEST, true), true);//Useful for debugging purpose
|
15 |
Â
|
16 |
Â
// Include the Stripe library.
|
17 |
-
|
18 |
-
|
19 |
-
}
|
20 |
-
|
21 |
Â
// Read and sanitize the request parameters.
|
22 |
Â
$button_id = sanitize_text_field( $_REQUEST['item_number'] );
|
23 |
Â
$button_id = absint( $button_id );
|
14 |
Â
// SwpmLog::log_simple_debug(print_r($_REQUEST, true), true);//Useful for debugging purpose
|
15 |
Â
|
16 |
Â
// Include the Stripe library.
|
17 |
+
SwpmMiscUtils::load_stripe_lib();
|
18 |
+
|
Â
|
|
Â
|
|
19 |
Â
// Read and sanitize the request parameters.
|
20 |
Â
$button_id = sanitize_text_field( $_REQUEST['item_number'] );
|
21 |
Â
$button_id = absint( $button_id );
|
ipn/swpm-stripe-sca-buy-now-ipn.php
ADDED
@@ -0,0 +1,225 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require SIMPLE_WP_MEMBERSHIP_PATH . 'ipn/swpm_handle_subsc_ipn.php';
|
4 |
+
|
5 |
+
class SwpmStripeSCABuyNowIpnHandler {
|
6 |
+
|
7 |
+
public function __construct() {
|
8 |
+
|
9 |
+
$this->handle_stripe_ipn();
|
10 |
+
}
|
11 |
+
|
12 |
+
public function handle_stripe_ipn() {
|
13 |
+
SwpmLog::log_simple_debug( 'Stripe SCA Buy Now IPN received. Processing request...', true );
|
14 |
+
// SwpmLog::log_simple_debug(print_r($_REQUEST, true), true);//Useful for debugging purpose
|
15 |
+
|
16 |
+
// Read and sanitize the request parameters.
|
17 |
+
|
18 |
+
$ref_id = filter_input( INPUT_GET, 'ref_id', FILTER_SANITIZE_STRING );
|
19 |
+
|
20 |
+
if ( empty( $ref_id ) ) {
|
21 |
+
//no ref id provided, cannot proceed
|
22 |
+
SwpmLog::log_simple_debug( 'Fatal Error! No ref_id provied.', false );
|
23 |
+
wp_die( esc_html( 'Fatal Error! No ref_id provied.' ) );
|
24 |
+
|
25 |
+
}
|
26 |
+
|
27 |
+
$trans_info = explode( '|', $ref_id );
|
28 |
+
$button_id = isset( $trans_info[1] ) ? absint( $trans_info[1] ) : false;
|
29 |
+
|
30 |
+
// Retrieve the CPT for this button
|
31 |
+
$button_cpt = get_post( $button_id );
|
32 |
+
if ( ! $button_cpt ) {
|
33 |
+
// Fatal error. Could not find this payment button post object.
|
34 |
+
SwpmLog::log_simple_debug( 'Fatal Error! Failed to retrieve the payment button post object for the given button ID: ' . $button_id, false );
|
35 |
+
wp_die( esc_html( sprintf( 'Fatal Error! Payment button (ID: %d) does not exist. This request will fail.', $button_id ) ) );
|
36 |
+
}
|
37 |
+
|
38 |
+
$settings = SwpmSettings::get_instance();
|
39 |
+
$sandbox_enabled = $settings->get_value( 'enable-sandbox-testing' );
|
40 |
+
|
41 |
+
if ( $sandbox_enabled ) {
|
42 |
+
SwpmLog::log_simple_debug( 'Sandbox payment mode is enabled. Using test API key details.', true );
|
43 |
+
$secret_key = get_post_meta( $button_id, 'stripe_test_secret_key', true );
|
44 |
+
// Use sandbox API key
|
45 |
+
} else {
|
46 |
+
$secret_key = get_post_meta( $button_id, 'stripe_live_secret_key', true );
|
47 |
+
// Use live API key
|
48 |
+
}
|
49 |
+
|
50 |
+
// Include the Stripe library.
|
51 |
+
SwpmMiscUtils::load_stripe_lib();
|
52 |
+
|
53 |
+
try {
|
54 |
+
\Stripe\Stripe::setApiKey( $secret_key );
|
55 |
+
|
56 |
+
$events = \Stripe\Event::all(
|
57 |
+
array(
|
58 |
+
'type' => 'checkout.session.completed',
|
59 |
+
'created' => array(
|
60 |
+
'gte' => time() - 60 * 60,
|
61 |
+
),
|
62 |
+
)
|
63 |
+
);
|
64 |
+
|
65 |
+
$sess = false;
|
66 |
+
|
67 |
+
foreach ( $events->autoPagingIterator() as $event ) {
|
68 |
+
$session = $event->data->object;
|
69 |
+
if ( isset( $session->client_reference_id ) && $session->client_reference_id === $ref_id ) {
|
70 |
+
$sess = $session;
|
71 |
+
break;
|
72 |
+
}
|
73 |
+
}
|
74 |
+
|
75 |
+
if ( false === $sess ) {
|
76 |
+
// Can't find session.
|
77 |
+
$error_msg = sprintf( "Fatal error! Payment with ref_id %s can't be found", $ref_id );
|
78 |
+
SwpmLog::log_simple_debug( $error_msg, false );
|
79 |
+
wp_die( esc_html( $error_msg ) );
|
80 |
+
}
|
81 |
+
|
82 |
+
$pi_id = $sess->payment_intent;
|
83 |
+
|
84 |
+
$pi = \Stripe\PaymentIntent::retrieve( $pi_id );
|
85 |
+
} catch ( Exception $e ) {
|
86 |
+
$err = 'Error occurred: ' . $e->getMessage();
|
87 |
+
SwpmLog::log_simple_debug( $error_msg, false );
|
88 |
+
wp_die( esc_html( $error_msg ) );
|
89 |
+
}
|
90 |
+
|
91 |
+
$charge = $pi->charges;
|
92 |
+
|
93 |
+
// Grab the charge ID and set it as the transaction ID.
|
94 |
+
$txn_id = $charge->data[0]->id;
|
95 |
+
// The charge ID can be used to retrieve the transaction details using hte following call.
|
96 |
+
// \Stripe\Charge::retrieve($charge->$data[0]->id);
|
97 |
+
|
98 |
+
//check if this payment has already been processed
|
99 |
+
$payment = get_posts(
|
100 |
+
array(
|
101 |
+
'meta_key' => 'txn_id',
|
102 |
+
'meta_value' => $txn_id,
|
103 |
+
'posts_per_page' => 1,
|
104 |
+
'offset' => 0,
|
105 |
+
'post_type' => 'swpm_transactions',
|
106 |
+
)
|
107 |
+
);
|
108 |
+
wp_reset_postdata();
|
109 |
+
|
110 |
+
if ( $payment ) {
|
111 |
+
//payment has already been processed. Redirecting user to return_url
|
112 |
+
$return_url = get_post_meta( $button_id, 'return_url', true );
|
113 |
+
if ( empty( $return_url ) ) {
|
114 |
+
$return_url = SIMPLE_WP_MEMBERSHIP_SITE_HOME_URL;
|
115 |
+
}
|
116 |
+
SwpmMiscUtils::redirect_to_url( $return_url );
|
117 |
+
return;
|
118 |
+
}
|
119 |
+
|
120 |
+
$price_in_cents = floatval( $pi->amount_received );
|
121 |
+
$currency_code = strtoupper( $pi->currency );
|
122 |
+
|
123 |
+
$zero_cents = unserialize( SIMPLE_WP_MEMBERSHIP_STRIPE_ZERO_CENTS );
|
124 |
+
if ( in_array( $currency_code, $zero_cents, true ) ) {
|
125 |
+
$payment_amount = $price_in_cents;
|
126 |
+
} else {
|
127 |
+
$payment_amount = $price_in_cents / 100;// The amount (in cents). This value is used in Stripe API.
|
128 |
+
}
|
129 |
+
|
130 |
+
$payment_amount = floatval( $payment_amount );
|
131 |
+
|
132 |
+
$stripe_email = $charge->data[0]->billing_details->email;
|
133 |
+
|
134 |
+
$membership_level_id = get_post_meta( $button_id, 'membership_level_id', true );
|
135 |
+
|
136 |
+
// Validate and verify some of the main values.
|
137 |
+
$true_payment_amount = get_post_meta( $button_id, 'payment_amount', true );
|
138 |
+
$true_payment_amount = apply_filters( 'swpm_payment_amount_filter', $true_payment_amount, $button_id );
|
139 |
+
$true_payment_amount = floatval( $true_payment_amount );
|
140 |
+
|
141 |
+
if ( $payment_amount !== $true_payment_amount ) {
|
142 |
+
// Fatal error. Payment amount may have been tampered with.
|
143 |
+
$error_msg = 'Fatal Error! Received payment amount (' . $payment_amount . ') does not match with the original amount (' . $true_payment_amount . ')';
|
144 |
+
SwpmLog::log_simple_debug( $error_msg, false );
|
145 |
+
wp_die( esc_html( $error_msg ) );
|
146 |
+
}
|
147 |
+
$true_currency_code = get_post_meta( $button_id, 'payment_currency', true );
|
148 |
+
if ( $currency_code !== $true_currency_code ) {
|
149 |
+
// Fatal error. Currency code may have been tampered with.
|
150 |
+
$error_msg = 'Fatal Error! Received currency code (' . $currency_code . ') does not match with the original code (' . $true_currency_code . ')';
|
151 |
+
SwpmLog::log_simple_debug( $error_msg, false );
|
152 |
+
wp_die( esc_html( $error_msg ) );
|
153 |
+
}
|
154 |
+
|
155 |
+
// Everything went ahead smoothly with the charge.
|
156 |
+
SwpmLog::log_simple_debug( 'Stripe SCA Buy Now charge successful.', true );
|
157 |
+
|
158 |
+
$user_ip = SwpmUtils::get_user_ip_address();
|
159 |
+
|
160 |
+
//Custom field data
|
161 |
+
$custom_field_value = 'subsc_ref=' . $membership_level_id;
|
162 |
+
$custom_field_value .= '&user_ip=' . $user_ip;
|
163 |
+
if ( SwpmMemberUtils::is_member_logged_in() ) {
|
164 |
+
$custom_field_value .= '&swpm_id=' . SwpmMemberUtils::get_logged_in_members_id();
|
165 |
+
}
|
166 |
+
$custom_field_value = apply_filters( 'swpm_custom_field_value_filter', $custom_field_value );
|
167 |
+
|
168 |
+
$custom = $custom_field_value;
|
169 |
+
|
170 |
+
$custom_var = SwpmTransactions::parse_custom_var( $custom );
|
171 |
+
$swpm_id = isset( $custom_var['swpm_id'] ) ? $custom_var['swpm_id'] : '';
|
172 |
+
|
173 |
+
// Let's try to get first_name and last_name from full name
|
174 |
+
$name = trim( $charge->data[0]->billing_details->name );
|
175 |
+
$last_name = ( strpos( $name, ' ' ) === false ) ? '' : preg_replace( '#.*\s([\w-]*)$#', '$1', $name );
|
176 |
+
$first_name = trim( preg_replace( '#' . $last_name . '#', '', $name ) );
|
177 |
+
|
178 |
+
// Create the $ipn_data array.
|
179 |
+
$ipn_data = array();
|
180 |
+
$ipn_data['mc_gross'] = $payment_amount;
|
181 |
+
$ipn_data['first_name'] = $first_name;
|
182 |
+
$ipn_data['last_name'] = $last_name;
|
183 |
+
$ipn_data['payer_email'] = $stripe_email;
|
184 |
+
$ipn_data['membership_level'] = $membership_level_id;
|
185 |
+
$ipn_data['txn_id'] = $txn_id;
|
186 |
+
$ipn_data['subscr_id'] = '';
|
187 |
+
$ipn_data['swpm_id'] = $swpm_id;
|
188 |
+
$ipn_data['ip'] = $custom_var['user_ip'];
|
189 |
+
$ipn_data['custom'] = $custom;
|
190 |
+
$ipn_data['gateway'] = 'stripe-sca';
|
191 |
+
$ipn_data['status'] = 'completed';
|
192 |
+
|
193 |
+
$bd_addr = $charge->data[0]->billing_details->address;
|
194 |
+
|
195 |
+
$ipn_data['address_street'] = isset( $bd_addr->line1 ) ? $bd_addr->line1 : '';
|
196 |
+
$ipn_data['address_city'] = isset( $bd_addr->city ) ? $bd_addr->city : '';
|
197 |
+
$ipn_data['address_state'] = isset( $bd_addr->state ) ? $bd_addr->state : '';
|
198 |
+
$ipn_data['address_zipcode'] = isset( $bd_addr->postal_code ) ? $bd_addr->postal_code : '';
|
199 |
+
$ipn_data['address_country'] = isset( $bd_addr->country ) ? $bd_addr->country : '';
|
200 |
+
|
201 |
+
// Handle the membership signup related tasks.
|
202 |
+
swpm_handle_subsc_signup_stand_alone( $ipn_data, $membership_level_id, $txn_id, $swpm_id );
|
203 |
+
|
204 |
+
// Save the transaction record
|
205 |
+
SwpmTransactions::save_txn_record( $ipn_data );
|
206 |
+
SwpmLog::log_simple_debug( 'Transaction data saved.', true );
|
207 |
+
|
208 |
+
// Trigger the stripe IPN processed action hook (so other plugins can can listen for this event).
|
209 |
+
do_action( 'swpm_stripe_sca_ipn_processed', $ipn_data );
|
210 |
+
|
211 |
+
do_action( 'swpm_payment_ipn_processed', $ipn_data );
|
212 |
+
|
213 |
+
// Redirect the user to the return URL (or to the homepage if a return URL is not specified for this payment button).
|
214 |
+
$return_url = get_post_meta( $button_id, 'return_url', true );
|
215 |
+
if ( empty( $return_url ) ) {
|
216 |
+
$return_url = SIMPLE_WP_MEMBERSHIP_SITE_HOME_URL;
|
217 |
+
}
|
218 |
+
SwpmLog::log_simple_debug( 'Redirecting customer to: ' . $return_url, true );
|
219 |
+
SwpmLog::log_simple_debug( 'End of Stripe SCA Buy Now IPN processing.', true, true );
|
220 |
+
SwpmMiscUtils::redirect_to_url( $return_url );
|
221 |
+
|
222 |
+
}
|
223 |
+
}
|
224 |
+
|
225 |
+
new SwpmStripeSCABuyNowIpnHandler();
|
ipn/swpm-stripe-sca-subscription-ipn.php
ADDED
@@ -0,0 +1,208 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require SIMPLE_WP_MEMBERSHIP_PATH . 'ipn/swpm_handle_subsc_ipn.php';
|
4 |
+
|
5 |
+
class SwpmStripeSCASubscriptionIpnHandler {
|
6 |
+
|
7 |
+
public function __construct() {
|
8 |
+
|
9 |
+
$this->handle_stripe_ipn();
|
10 |
+
}
|
11 |
+
|
12 |
+
public function handle_stripe_ipn() {
|
13 |
+
SwpmLog::log_simple_debug( 'Stripe SCA Subscription IPN received. Processing request...', true );
|
14 |
+
// SwpmLog::log_simple_debug(print_r($_REQUEST, true), true);//Useful for debugging purpose
|
15 |
+
|
16 |
+
// Read and sanitize the request parameters.
|
17 |
+
|
18 |
+
$ref_id = filter_input( INPUT_GET, 'ref_id', FILTER_SANITIZE_STRING );
|
19 |
+
|
20 |
+
if ( empty( $ref_id ) ) {
|
21 |
+
//no ref id provided, cannot proceed
|
22 |
+
SwpmLog::log_simple_debug( 'Fatal Error! No ref_id provied.', false );
|
23 |
+
wp_die( esc_html( 'Fatal Error! No ref_id provied.' ) );
|
24 |
+
|
25 |
+
}
|
26 |
+
|
27 |
+
$trans_info = explode( '|', $ref_id );
|
28 |
+
$button_id = isset( $trans_info[1] ) ? absint( $trans_info[1] ) : false;
|
29 |
+
|
30 |
+
// Retrieve the CPT for this button
|
31 |
+
$button_cpt = get_post( $button_id );
|
32 |
+
if ( ! $button_cpt ) {
|
33 |
+
// Fatal error. Could not find this payment button post object.
|
34 |
+
SwpmLog::log_simple_debug( 'Fatal Error! Failed to retrieve the payment button post object for the given button ID: ' . $button_id, false );
|
35 |
+
wp_die( esc_html( sprintf( 'Fatal Error! Payment button (ID: %d) does not exist. This request will fail.', $button_id ) ) );
|
36 |
+
}
|
37 |
+
|
38 |
+
$settings = SwpmSettings::get_instance();
|
39 |
+
$sandbox_enabled = $settings->get_value( 'enable-sandbox-testing' );
|
40 |
+
|
41 |
+
if ( $sandbox_enabled ) {
|
42 |
+
SwpmLog::log_simple_debug( 'Sandbox payment mode is enabled. Using test API key details.', true );
|
43 |
+
$secret_key = get_post_meta( $button_id, 'stripe_test_secret_key', true );
|
44 |
+
// Use sandbox API key
|
45 |
+
} else {
|
46 |
+
$secret_key = get_post_meta( $button_id, 'stripe_live_secret_key', true );
|
47 |
+
// Use live API key
|
48 |
+
}
|
49 |
+
|
50 |
+
// Include the Stripe library.
|
51 |
+
SwpmMiscUtils::load_stripe_lib();
|
52 |
+
|
53 |
+
try {
|
54 |
+
\Stripe\Stripe::setApiKey( $secret_key );
|
55 |
+
|
56 |
+
$events = \Stripe\Event::all(
|
57 |
+
array(
|
58 |
+
'type' => 'checkout.session.completed',
|
59 |
+
'created' => array(
|
60 |
+
'gte' => time() - 60 * 60,
|
61 |
+
),
|
62 |
+
)
|
63 |
+
);
|
64 |
+
|
65 |
+
$sess = false;
|
66 |
+
|
67 |
+
foreach ( $events->autoPagingIterator() as $event ) {
|
68 |
+
$session = $event->data->object;
|
69 |
+
if ( isset( $session->client_reference_id ) && $session->client_reference_id === $ref_id ) {
|
70 |
+
$sess = $session;
|
71 |
+
break;
|
72 |
+
}
|
73 |
+
}
|
74 |
+
|
75 |
+
if ( false === $sess ) {
|
76 |
+
// Can't find session.
|
77 |
+
$error_msg = sprintf( "Fatal error! Payment with ref_id %s can't be found", $ref_id );
|
78 |
+
SwpmLog::log_simple_debug( $error_msg, false );
|
79 |
+
wp_die( esc_html( $error_msg ) );
|
80 |
+
}
|
81 |
+
|
82 |
+
$sub_id = $sess->subscription;
|
83 |
+
|
84 |
+
$sub = \Stripe\Subscription::retrieve( $sub_id );
|
85 |
+
} catch ( Exception $e ) {
|
86 |
+
$error_msg = 'Error occurred: ' . $e->getMessage();
|
87 |
+
SwpmLog::log_simple_debug( $error_msg, false );
|
88 |
+
wp_die( esc_html( $error_msg ) );
|
89 |
+
}
|
90 |
+
|
91 |
+
$pm = \Stripe\PaymentMethod::retrieve( $sub->default_payment_method );
|
92 |
+
|
93 |
+
// Grab the charge ID and set it as the transaction ID.
|
94 |
+
$txn_id = $sub->customer;
|
95 |
+
// The charge ID can be used to retrieve the transaction details using hte following call.
|
96 |
+
// \Stripe\Charge::retrieve($charge->$data[0]->id);
|
97 |
+
|
98 |
+
//check if this payment has already been processed
|
99 |
+
$payment = get_posts(
|
100 |
+
array(
|
101 |
+
'meta_key' => 'txn_id',
|
102 |
+
'meta_value' => $txn_id,
|
103 |
+
'posts_per_page' => 1,
|
104 |
+
'offset' => 0,
|
105 |
+
'post_type' => 'swpm_transactions',
|
106 |
+
)
|
107 |
+
);
|
108 |
+
wp_reset_postdata();
|
109 |
+
|
110 |
+
if ( $payment ) {
|
111 |
+
//payment has already been processed. Redirecting user to return_url
|
112 |
+
$return_url = get_post_meta( $button_id, 'return_url', true );
|
113 |
+
if ( empty( $return_url ) ) {
|
114 |
+
$return_url = SIMPLE_WP_MEMBERSHIP_SITE_HOME_URL;
|
115 |
+
}
|
116 |
+
SwpmMiscUtils::redirect_to_url( $return_url );
|
117 |
+
return;
|
118 |
+
}
|
119 |
+
|
120 |
+
$price_in_cents = $sub->plan->amount;
|
121 |
+
$currency_code = strtoupper( $sub->plan->currency );
|
122 |
+
|
123 |
+
$zero_cents = unserialize( SIMPLE_WP_MEMBERSHIP_STRIPE_ZERO_CENTS );
|
124 |
+
if ( in_array( $currency_code, $zero_cents, true ) ) {
|
125 |
+
$payment_amount = $price_in_cents;
|
126 |
+
} else {
|
127 |
+
$payment_amount = $price_in_cents / 100;// The amount (in cents). This value is used in Stripe API.
|
128 |
+
}
|
129 |
+
|
130 |
+
$payment_amount = floatval( $payment_amount );
|
131 |
+
|
132 |
+
$membership_level_id = get_post_meta( $button_id, 'membership_level_id', true );
|
133 |
+
|
134 |
+
// Everything went ahead smoothly with the charge.
|
135 |
+
SwpmLog::log_simple_debug( 'Stripe SCA Subscription charge successful.', true );
|
136 |
+
|
137 |
+
$customer = \Stripe\Customer::retrieve( $txn_id );
|
138 |
+
|
139 |
+
$stripe_email = $customer->email;
|
140 |
+
|
141 |
+
$user_ip = SwpmUtils::get_user_ip_address();
|
142 |
+
|
143 |
+
//Custom field data
|
144 |
+
$custom_field_value = 'subsc_ref=' . $membership_level_id;
|
145 |
+
$custom_field_value .= '&user_ip=' . $user_ip;
|
146 |
+
if ( SwpmMemberUtils::is_member_logged_in() ) {
|
147 |
+
$custom_field_value .= '&swpm_id=' . SwpmMemberUtils::get_logged_in_members_id();
|
148 |
+
}
|
149 |
+
$custom_field_value = apply_filters( 'swpm_custom_field_value_filter', $custom_field_value );
|
150 |
+
|
151 |
+
$custom = $custom_field_value;
|
152 |
+
|
153 |
+
$custom_var = SwpmTransactions::parse_custom_var( $custom );
|
154 |
+
$swpm_id = isset( $custom_var['swpm_id'] ) ? $custom_var['swpm_id'] : '';
|
155 |
+
|
156 |
+
// Let's try to get first_name and last_name from full name
|
157 |
+
$name = $pm->billing_details->name;
|
158 |
+
$last_name = ( strpos( $name, ' ' ) === false ) ? '' : preg_replace( '#.*\s([\w-]*)$#', '$1', $name );
|
159 |
+
$first_name = trim( preg_replace( '#' . $last_name . '#', '', $name ) );
|
160 |
+
|
161 |
+
// Create the $ipn_data array.
|
162 |
+
$ipn_data = array();
|
163 |
+
$ipn_data['mc_gross'] = $payment_amount;
|
164 |
+
$ipn_data['first_name'] = $first_name;
|
165 |
+
$ipn_data['last_name'] = $last_name;
|
166 |
+
$ipn_data['payer_email'] = $stripe_email;
|
167 |
+
$ipn_data['membership_level'] = $membership_level_id;
|
168 |
+
$ipn_data['txn_id'] = $txn_id;
|
169 |
+
$ipn_data['subscr_id'] = $sub_id;
|
170 |
+
$ipn_data['swpm_id'] = $swpm_id;
|
171 |
+
$ipn_data['ip'] = $custom_var['user_ip'];
|
172 |
+
$ipn_data['custom'] = $custom;
|
173 |
+
$ipn_data['gateway'] = 'stripe-sca-subs';
|
174 |
+
$ipn_data['status'] = 'completed';
|
175 |
+
|
176 |
+
$bd_addr = $pm->billing_details->address;
|
177 |
+
|
178 |
+
$ipn_data['address_street'] = isset( $bd_addr->line1 ) ? $bd_addr->line1 : '';
|
179 |
+
$ipn_data['address_city'] = isset( $bd_addr->city ) ? $bd_addr->city : '';
|
180 |
+
$ipn_data['address_state'] = isset( $bd_addr->state ) ? $bd_addr->state : '';
|
181 |
+
$ipn_data['address_zipcode'] = isset( $bd_addr->postal_code ) ? $bd_addr->postal_code : '';
|
182 |
+
$ipn_data['address_country'] = isset( $bd_addr->country ) ? $bd_addr->country : '';
|
183 |
+
|
184 |
+
// Handle the membership signup related tasks.
|
185 |
+
swpm_handle_subsc_signup_stand_alone( $ipn_data, $membership_level_id, $txn_id, $swpm_id );
|
186 |
+
|
187 |
+
// Save the transaction record
|
188 |
+
SwpmTransactions::save_txn_record( $ipn_data );
|
189 |
+
SwpmLog::log_simple_debug( 'Transaction data saved.', true );
|
190 |
+
|
191 |
+
// Trigger the stripe IPN processed action hook (so other plugins can can listen for this event).
|
192 |
+
do_action( 'swpm_stripe_sca_ipn_processed', $ipn_data );
|
193 |
+
|
194 |
+
do_action( 'swpm_payment_ipn_processed', $ipn_data );
|
195 |
+
|
196 |
+
// Redirect the user to the return URL (or to the homepage if a return URL is not specified for this payment button).
|
197 |
+
$return_url = get_post_meta( $button_id, 'return_url', true );
|
198 |
+
if ( empty( $return_url ) ) {
|
199 |
+
$return_url = SIMPLE_WP_MEMBERSHIP_SITE_HOME_URL;
|
200 |
+
}
|
201 |
+
SwpmLog::log_simple_debug( 'Redirecting customer to: ' . $return_url, true );
|
202 |
+
SwpmLog::log_simple_debug( 'End of Stripe SCA Subscription IPN processing.', true, true );
|
203 |
+
SwpmMiscUtils::redirect_to_url( $return_url );
|
204 |
+
|
205 |
+
}
|
206 |
+
}
|
207 |
+
|
208 |
+
new SwpmStripeSCASubscriptionIpnHandler();
|
ipn/swpm-stripe-subscription-ipn.php
CHANGED
@@ -30,7 +30,7 @@ class SwpmStripeSubscriptionIpnHandler {
|
|
30 |
Â
|
31 |
Â
if ( 'customer.subscription.deleted' === $type || 'charge.refunded' === $type ) {
|
32 |
Â
// Subscription expired or refunded event
|
33 |
-
SwpmLog::log_simple_debug( 'Stripe Subscription Webhook received. Processing request...', true );
|
34 |
Â
// Let's form minimal ipn_data array for swpm_handle_subsc_cancel_stand_alone
|
35 |
Â
$customer = $event_json->data->object->customer;
|
36 |
Â
$subscr_id = $event_json->data->object->id;
|
@@ -47,9 +47,7 @@ class SwpmStripeSubscriptionIpnHandler {
|
|
47 |
Â
SwpmLog::log_simple_debug( 'Stripe Subscription IPN received. Processing request...', true );
|
48 |
Â
// SwpmLog::log_simple_debug(print_r($_REQUEST, true), true);//Useful for debugging purpose
|
49 |
Â
// Include the Stripe library.
|
50 |
-
|
51 |
-
include SIMPLE_WP_MEMBERSHIP_PATH . 'lib/stripe-gateway/init.php';
|
52 |
-
}
|
53 |
Â
// Read and sanitize the request parameters.
|
54 |
Â
$button_id = sanitize_text_field( $_REQUEST['item_number'] );
|
55 |
Â
$button_id = absint( $button_id );
|
30 |
Â
|
31 |
Â
if ( 'customer.subscription.deleted' === $type || 'charge.refunded' === $type ) {
|
32 |
Â
// Subscription expired or refunded event
|
33 |
+
SwpmLog::log_simple_debug( sprintf( 'Stripe Subscription Webhook %s received. Processing request...', $type ), true );
|
34 |
Â
// Let's form minimal ipn_data array for swpm_handle_subsc_cancel_stand_alone
|
35 |
Â
$customer = $event_json->data->object->customer;
|
36 |
Â
$subscr_id = $event_json->data->object->id;
|
47 |
Â
SwpmLog::log_simple_debug( 'Stripe Subscription IPN received. Processing request...', true );
|
48 |
Â
// SwpmLog::log_simple_debug(print_r($_REQUEST, true), true);//Useful for debugging purpose
|
49 |
Â
// Include the Stripe library.
|
50 |
+
SwpmMiscUtils::load_stripe_lib();
|
Â
|
|
Â
|
|
51 |
Â
// Read and sanitize the request parameters.
|
52 |
Â
$button_id = sanitize_text_field( $_REQUEST['item_number'] );
|
53 |
Â
$button_id = absint( $button_id );
|
ipn/swpm_handle_subsc_ipn.php
CHANGED
@@ -175,8 +175,12 @@ function swpm_handle_subsc_signup_stand_alone( $ipn_data, $subsc_ref, $unique_re
|
|
175 |
Â
|
176 |
Â
$subject = apply_filters( 'swpm_email_complete_registration_subject', $subject );
|
177 |
Â
$email_body = apply_filters( 'swpm_email_complete_registration_body', $email_body );
|
178 |
-
|
179 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
180 |
Â
}
|
181 |
Â
|
182 |
Â
}
|
@@ -241,8 +245,10 @@ function swpm_handle_subsc_cancel_stand_alone( $ipn_data, $refund = false ) {
|
|
241 |
Â
swpm_debug_log_subsc( 'Membership level ID of the member is: ' . $level_id, true );
|
242 |
Â
$level_row = SwpmUtils::get_membership_level_row_by_id( $level_id );
|
243 |
Â
$subs_duration_type = $level_row->subscription_duration_type;
|
244 |
-
|
245 |
-
|
Â
|
|
Â
|
|
246 |
Â
// This is a level with "no expiry" or "until cancelled" duration.
|
247 |
Â
swpm_debug_log_subsc( 'This is a level with "no expiry" or "until cancelled" duration', true );
|
248 |
Â
|
@@ -250,7 +256,7 @@ function swpm_handle_subsc_cancel_stand_alone( $ipn_data, $refund = false ) {
|
|
250 |
Â
$account_state = 'inactive';
|
251 |
Â
SwpmMemberUtils::update_account_state( $member_id, $account_state );
|
252 |
Â
swpm_debug_log_subsc( 'Subscription cancellation or end of term received! Member account deactivated. Member ID: ' . $member_id, true );
|
253 |
-
}
|
254 |
Â
// This is a level with a "fixed expiry date" duration.
|
255 |
Â
swpm_debug_log_subsc( 'This is a level with a "fixed expiry date" duration.', true );
|
256 |
Â
swpm_debug_log_subsc( 'Nothing to do here. The account will expire on the fixed set date.', true );
|
175 |
Â
|
176 |
Â
$subject = apply_filters( 'swpm_email_complete_registration_subject', $subject );
|
177 |
Â
$email_body = apply_filters( 'swpm_email_complete_registration_body', $email_body );
|
178 |
+
if (empty( $email_body )){
|
179 |
+
swpm_debug_log_subsc( 'Notice: Member signup (prompt to complete registration) email body has been set empty via the filter hook. No email will be sent.', true );
|
180 |
+
} else {
|
181 |
+
wp_mail( $email, $subject, $email_body, $headers );
|
182 |
+
swpm_debug_log_subsc( 'Member signup (prompt to complete registration) email successfully sent to: ' . $email, true );
|
183 |
+
}
|
184 |
Â
}
|
185 |
Â
|
186 |
Â
}
|
245 |
Â
swpm_debug_log_subsc( 'Membership level ID of the member is: ' . $level_id, true );
|
246 |
Â
$level_row = SwpmUtils::get_membership_level_row_by_id( $level_id );
|
247 |
Â
$subs_duration_type = $level_row->subscription_duration_type;
|
248 |
+
|
249 |
+
swpm_debug_log_subsc( 'Subscription duration type: ' . $subs_duration_type, true );
|
250 |
+
|
251 |
+
if ( SwpmMembershipLevel::NO_EXPIRY == $subs_duration_type ) {
|
252 |
Â
// This is a level with "no expiry" or "until cancelled" duration.
|
253 |
Â
swpm_debug_log_subsc( 'This is a level with "no expiry" or "until cancelled" duration', true );
|
254 |
Â
|
256 |
Â
$account_state = 'inactive';
|
257 |
Â
SwpmMemberUtils::update_account_state( $member_id, $account_state );
|
258 |
Â
swpm_debug_log_subsc( 'Subscription cancellation or end of term received! Member account deactivated. Member ID: ' . $member_id, true );
|
259 |
+
} else if ( SwpmMembershipLevel::FIXED_DATE == $subs_duration_type ) {
|
260 |
Â
// This is a level with a "fixed expiry date" duration.
|
261 |
Â
swpm_debug_log_subsc( 'This is a level with a "fixed expiry date" duration.', true );
|
262 |
Â
swpm_debug_log_subsc( 'Nothing to do here. The account will expire on the fixed set date.', true );
|
languages/simple-membership-es_ES.mo
CHANGED
Binary file
|
languages/simple-membership-es_ES.po
CHANGED
@@ -3,8 +3,8 @@
|
|
3 |
Â
msgid ""
|
4 |
Â
msgstr ""
|
5 |
Â
"Project-Id-Version: Plugins - Simple Membership - Development (trunk)\n"
|
6 |
-
"POT-Creation-Date:
|
7 |
-
"PO-Revision-Date:
|
8 |
Â
"Last-Translator: \n"
|
9 |
Â
"Language-Team: \n"
|
10 |
Â
"Language: es\n"
|
@@ -12,665 +12,821 @@ 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.
|
16 |
Â
|
17 |
-
#:
|
18 |
Â
msgid "The admin of this site does not allow users to access the wp dashboard."
|
19 |
Â
msgstr ""
|
20 |
-
"El administrador de este sitio no permite a los usuarios
|
21 |
Â
"escritorio de wp."
|
22 |
Â
|
23 |
-
#:
|
24 |
Â
msgid "Go back to the home page by "
|
25 |
-
msgstr "Volver a la página
|
26 |
Â
|
27 |
-
#:
|
28 |
Â
msgid "clicking here"
|
29 |
Â
msgstr "haciendo clic aquÃ"
|
30 |
Â
|
31 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
32 |
Â
msgid "You are not logged in."
|
33 |
Â
msgstr "No estás conectado."
|
34 |
Â
|
35 |
-
#:
|
36 |
Â
msgid ""
|
37 |
Â
"You have the sandbox payment mode enabled in plugin settings. Make sure to "
|
38 |
Â
"turn off the sandbox mode when you want to do live transactions."
|
39 |
Â
msgstr ""
|
40 |
-
"
|
41 |
-
"
|
42 |
Â
"transacciones en vivo."
|
43 |
Â
|
44 |
-
#:
|
45 |
Â
msgid "Simple WP Membership Protection"
|
46 |
Â
msgstr "Protección de Simple WP Membership"
|
47 |
Â
|
48 |
-
#:
|
49 |
Â
msgid "Simple Membership Protection options"
|
50 |
Â
msgstr "Opciones de protección de Simple Membership"
|
51 |
Â
|
52 |
-
#:
|
53 |
Â
msgid "Do you want to protect this content?"
|
54 |
Â
msgstr "¿Quieres proteger este contenido?"
|
55 |
Â
|
56 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
57 |
Â
msgid "Select the membership level that can access this content:"
|
58 |
-
msgstr ""
|
59 |
-
"Selecciona los niveles de membresÃa que pueden acceder a este contenido:"
|
60 |
Â
|
61 |
-
#:
|
62 |
-
#:
|
63 |
Â
msgid "Validating, please wait"
|
64 |
Â
msgstr "Validando, por favor espere"
|
65 |
Â
|
66 |
-
#:
|
67 |
Â
msgid "Invalid email address"
|
68 |
-
msgstr "Dirección de correo electrónico no
|
69 |
Â
|
70 |
-
#:
|
71 |
Â
msgid "This field is required"
|
72 |
-
msgstr "Este campo es
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
73 |
Â
|
74 |
-
|
75 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
76 |
Â
msgid "Invalid Username"
|
77 |
-
msgstr "Nombre de usuario no
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
78 |
Â
|
79 |
-
#:
|
80 |
Â
msgid "Minimum "
|
81 |
-
msgstr "
|
82 |
Â
|
83 |
-
#:
|
84 |
Â
msgid " characters required"
|
85 |
-
msgstr "
|
86 |
Â
|
87 |
-
#:
|
88 |
Â
msgid "Apostrophe character is not allowed"
|
89 |
Â
msgstr "El carácter de apóstrofo no está permitido"
|
90 |
Â
|
91 |
-
#:
|
92 |
Â
msgid "WP Membership"
|
93 |
Â
msgstr "WP Membership"
|
94 |
Â
|
95 |
-
#:
|
96 |
-
#:
|
97 |
-
#: simple-membership/classes/class.swpm-members.php:579
|
98 |
Â
msgid "Members"
|
99 |
Â
msgstr "Miembros"
|
100 |
Â
|
101 |
-
#:
|
102 |
-
#:
|
103 |
-
#:
|
104 |
-
#:
|
Â
|
|
105 |
Â
msgid "Membership Levels"
|
106 |
Â
msgstr "Niveles de membresÃa"
|
107 |
Â
|
108 |
-
#:
|
109 |
Â
msgid "Settings"
|
110 |
Â
msgstr "Ajustes"
|
111 |
Â
|
112 |
-
#:
|
113 |
Â
msgid "Payments"
|
114 |
Â
msgstr "Pagos"
|
115 |
Â
|
116 |
-
#:
|
117 |
Â
msgid "Add-ons"
|
118 |
Â
msgstr "Extensiones"
|
119 |
Â
|
120 |
-
#:
|
121 |
-
#:
|
122 |
Â
msgid "You need to login to view this content. "
|
123 |
-
msgstr "
|
124 |
Â
|
125 |
-
#:
|
126 |
-
#:
|
127 |
-
#:
|
128 |
Â
msgid "Your account has expired. "
|
129 |
-
msgstr "
|
130 |
Â
|
131 |
-
#:
|
132 |
-
#:
|
133 |
Â
msgid "This content can only be viewed by members who joined on or before "
|
134 |
Â
msgstr ""
|
135 |
-
"Este contenido
|
136 |
-
"
|
137 |
Â
|
138 |
-
#:
|
139 |
-
#:
|
140 |
Â
msgid "This content is not permitted for your membership level."
|
141 |
-
msgstr "Este contenido no está disponible para
|
142 |
Â
|
143 |
-
#:
|
144 |
Â
msgid "You need to login to view the rest of the content. "
|
145 |
-
msgstr "Debes
|
146 |
Â
|
147 |
-
#:
|
148 |
Â
msgid " The rest of the content is not permitted for your membership level."
|
149 |
Â
msgstr " El resto del contenido no está disponible para tu nivel de membresÃa."
|
150 |
Â
|
151 |
-
#:
|
152 |
Â
msgid "Error! Nonce verification failed for user registration from admin end."
|
153 |
Â
msgstr ""
|
154 |
-
"¡Error!
|
155 |
-
"
|
156 |
Â
|
157 |
-
#:
|
158 |
Â
msgid "Member record added successfully."
|
159 |
-
msgstr "Registro de
|
160 |
Â
|
161 |
-
#:
|
162 |
-
#:
|
163 |
-
#:
|
164 |
-
#:
|
165 |
-
#:
|
166 |
Â
msgid "Please correct the following:"
|
167 |
Â
msgstr "Por favor, corrige lo siguiente:"
|
168 |
Â
|
169 |
-
#:
|
170 |
Â
msgid "Error! Nonce verification failed for user edit from admin end."
|
171 |
Â
msgstr ""
|
172 |
Â
"¡Error! La verificación de nonce falló para la edición del usuario desde el "
|
173 |
-
"
|
174 |
Â
|
175 |
-
#:
|
176 |
Â
msgid "Your current password"
|
177 |
Â
msgstr "Tu contraseña actual"
|
178 |
Â
|
179 |
-
#:
|
180 |
Â
msgid "Invalid Email Address"
|
181 |
-
msgstr "Dirección de correo electrónico no
|
182 |
Â
|
183 |
-
#:
|
184 |
-
#: simple-membership/classes/class.swpm-ajax.php:36
|
185 |
Â
msgid "Aready taken"
|
186 |
Â
msgstr "Ya está cogido"
|
187 |
Â
|
188 |
-
#:
|
189 |
Â
msgid "Name contains invalid character"
|
190 |
Â
msgstr "El nombre contiene un carácter no válido"
|
191 |
Â
|
192 |
-
#:
|
193 |
Â
msgid "Available"
|
194 |
Â
msgstr "Disponible"
|
195 |
Â
|
196 |
-
#:
|
197 |
Â
msgid ""
|
198 |
Â
"Warning! Simple Membership plugin cannot process this login request to "
|
199 |
Â
"prevent you from getting logged out of WP Admin accidentally."
|
200 |
Â
msgstr ""
|
201 |
Â
"¡Advertencia! El plugin Simple Membership no puede procesar esta solicitud "
|
202 |
-
"de
|
203 |
Â
"accidentalmente."
|
204 |
Â
|
205 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
206 |
Â
msgid ""
|
207 |
Â
"You are logged into the site as an ADMIN user in this browser. First, logout "
|
208 |
-
"from WP Admin then you will be able to log in as a member."
|
209 |
Â
msgstr ""
|
210 |
-
"
|
211 |
-
"
|
212 |
-
"miembro."
|
213 |
Â
|
214 |
-
#:
|
215 |
Â
msgid ""
|
216 |
Â
"Alternatively, you can use a different browser (where you are not logged-in "
|
217 |
Â
"as ADMIN) to test the membership login."
|
218 |
Â
msgstr ""
|
219 |
-
"Como alternativa,
|
220 |
-
"
|
221 |
Â
|
222 |
-
#:
|
223 |
Â
msgid ""
|
224 |
Â
"Your normal visitors or members will never see this message. This message is "
|
225 |
Â
"ONLY for ADMIN user."
|
226 |
Â
msgstr ""
|
227 |
-
"
|
228 |
-
"SOLO para el usuario
|
229 |
Â
|
230 |
-
#:
|
231 |
Â
msgid "Captcha validation failed on login form."
|
232 |
-
msgstr "Error de validación de
|
233 |
Â
|
234 |
-
#:
|
235 |
Â
msgid "User Not Found."
|
236 |
-
msgstr "Usuario no encontrado."
|
237 |
Â
|
238 |
-
#:
|
239 |
Â
msgid "Password Empty or Invalid."
|
240 |
Â
msgstr "Contraseña vacÃa o no válida."
|
241 |
Â
|
242 |
-
#:
|
243 |
Â
msgid "Account is inactive."
|
244 |
Â
msgstr "La cuenta está inactiva."
|
245 |
Â
|
246 |
-
#:
|
247 |
-
#: simple-membership/classes/class.swpm-auth.php:146
|
248 |
Â
msgid "Account has expired."
|
249 |
Â
msgstr "Tu cuenta ha caducado."
|
250 |
Â
|
251 |
-
#:
|
252 |
Â
msgid "Account is pending."
|
253 |
-
msgstr "La cuenta
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
254 |
Â
|
255 |
-
#:
|
256 |
Â
msgid "You are logged in as:"
|
257 |
-
msgstr "
|
258 |
Â
|
259 |
-
#:
|
260 |
Â
msgid "Logged Out Successfully."
|
261 |
-
msgstr "
|
262 |
Â
|
263 |
-
#:
|
264 |
Â
msgid "Session Expired."
|
265 |
Â
msgstr "Sesión caducada."
|
266 |
Â
|
267 |
-
#:
|
268 |
Â
msgid "Please login again."
|
269 |
-
msgstr "Por favor,
|
270 |
-
|
271 |
-
#:
|
272 |
-
#:
|
273 |
-
#:
|
274 |
-
#:
|
275 |
-
#:
|
276 |
-
#:
|
277 |
-
#:
|
278 |
-
#:
|
279 |
-
#:
|
280 |
-
#:
|
281 |
-
#:
|
282 |
-
#:
|
283 |
-
#:
|
284 |
-
#:
|
285 |
-
#:
|
286 |
Â
msgid "Membership Level"
|
287 |
Â
msgstr "Nivel de membresÃa"
|
288 |
Â
|
289 |
-
#:
|
290 |
Â
msgid "Category ID"
|
291 |
Â
msgstr "ID de categorÃa"
|
292 |
Â
|
293 |
-
#:
|
294 |
Â
msgid "Category Name"
|
295 |
Â
msgstr "Nombre de categorÃa"
|
296 |
Â
|
297 |
-
#:
|
298 |
Â
msgid "Category Type (Taxonomy)"
|
299 |
Â
msgstr "Tipo de categorÃa (TaxonomÃa)"
|
300 |
Â
|
301 |
-
#:
|
302 |
Â
msgid "Description"
|
303 |
Â
msgstr "Descripción"
|
304 |
Â
|
305 |
-
#:
|
306 |
Â
msgid "Count"
|
307 |
Â
msgstr "Contar"
|
308 |
Â
|
309 |
-
#:
|
310 |
Â
msgid "Category protection updated!"
|
311 |
-
msgstr "
|
312 |
Â
|
313 |
-
#:
|
314 |
Â
msgid "No category found."
|
315 |
-
msgstr "No se
|
316 |
Â
|
317 |
-
#:
|
318 |
Â
msgid "Please login to comment."
|
319 |
-
msgstr "Por favor
|
320 |
Â
|
321 |
-
#:
|
322 |
Â
msgid "Please Login to Comment."
|
323 |
-
msgstr "Por favor
|
324 |
Â
|
325 |
-
#:
|
326 |
Â
msgid "Comments not allowed by a non-member."
|
327 |
-
msgstr "
|
328 |
Â
|
329 |
-
#:
|
330 |
Â
msgid ""
|
331 |
Â
"Wordpress account exists with given username. But given email doesn't match."
|
332 |
Â
msgstr ""
|
333 |
-
"La cuenta de
|
334 |
Â
"electrónico dado no coincide."
|
335 |
Â
|
336 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
337 |
Â
msgid ""
|
338 |
Â
"Wordpress account exists with given email. But given username doesn't match."
|
339 |
Â
msgstr ""
|
340 |
-
"La cuenta de
|
341 |
-
"
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
342 |
Â
|
343 |
-
#:
|
344 |
Â
msgid "Username is required"
|
345 |
-
msgstr "
|
346 |
Â
|
347 |
-
#:
|
348 |
Â
msgid "Username contains invalid character"
|
349 |
Â
msgstr "El nombre de usuario contiene un carácter no válido"
|
350 |
Â
|
351 |
-
#:
|
352 |
Â
msgid "Username already exists."
|
353 |
-
msgstr "
|
354 |
Â
|
355 |
-
#:
|
356 |
Â
msgid "Password is required"
|
357 |
Â
msgstr "La contraseña es obligatoria"
|
358 |
Â
|
359 |
-
#:
|
360 |
Â
msgid "Password mismatch"
|
361 |
-
msgstr "
|
362 |
Â
|
363 |
-
#:
|
364 |
Â
msgid "Email is required"
|
365 |
Â
msgstr "El correo electrónico es obligatorio"
|
366 |
Â
|
367 |
-
#:
|
368 |
Â
msgid "Email is invalid"
|
369 |
Â
msgstr "El correo electrónico no es válido"
|
370 |
Â
|
371 |
-
#:
|
372 |
Â
msgid "Email is already used."
|
373 |
-
msgstr "El
|
374 |
Â
|
375 |
-
#:
|
376 |
Â
msgid "Member since field is invalid"
|
377 |
-
msgstr "El campo
|
378 |
Â
|
379 |
-
#:
|
380 |
Â
msgid "Access starts field is invalid"
|
381 |
Â
msgstr "La fecha de comienzo no es válida"
|
382 |
Â
|
383 |
-
#:
|
384 |
Â
msgid "Gender field is invalid"
|
385 |
-
msgstr "El
|
386 |
Â
|
387 |
-
#:
|
388 |
Â
msgid "Account state field is invalid"
|
389 |
Â
msgstr "El valor introducido en el campo \"Estado de la cuenta\" no es válido"
|
390 |
Â
|
391 |
-
#:
|
392 |
Â
msgid "Invalid membership level"
|
393 |
-
msgstr "Nivel de membresÃa no
|
394 |
Â
|
395 |
-
#:
|
396 |
Â
msgid ""
|
397 |
Â
"Error! Invalid Request. Could not find a match for the given security code "
|
398 |
Â
"and the user ID."
|
399 |
Â
msgstr ""
|
400 |
Â
"¡Error! Solicitud no válida. No se pudo encontrar una coincidencia para el "
|
401 |
-
"código de seguridad
|
402 |
Â
|
403 |
-
#:
|
404 |
-
#:
|
405 |
-
#: simple-membership/views/login.php:36
|
406 |
Â
msgid "Join Us"
|
407 |
Â
msgstr "Únete a nosotros"
|
408 |
Â
|
409 |
-
#:
|
410 |
Â
msgid ""
|
411 |
Â
"Free membership is disabled on this site. Please make a payment from the "
|
412 |
Â
msgstr ""
|
413 |
-
"La membresÃa gratuita está
|
414 |
-
"
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
415 |
Â
|
416 |
-
#:
|
417 |
Â
msgid ""
|
418 |
Â
"You will receive a unique link via email after the payment. You will be able "
|
419 |
Â
"to use that link to complete the premium membership registration."
|
420 |
Â
msgstr ""
|
421 |
-
"
|
422 |
-
"utilizar ese enlace para completar el registro de membresÃa
|
423 |
Â
|
424 |
-
#:
|
425 |
Â
msgid "Security check: captcha validation failed."
|
426 |
Â
msgstr "Comprobación de seguridad: la validación del captcha ha fallado."
|
427 |
Â
|
428 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
429 |
Â
msgid "Registration Successful. "
|
430 |
Â
msgstr "Registro con éxito. "
|
431 |
Â
|
432 |
-
#:
|
433 |
-
#:
|
434 |
-
#: simple-membership/classes/class.swpm-utils-misc.php:247
|
435 |
Â
msgid "Please"
|
436 |
-
msgstr "Por
|
437 |
Â
|
438 |
-
#:
|
439 |
-
#:
|
440 |
-
#: simple-membership/views/login.php:30
|
441 |
Â
msgid "Login"
|
442 |
-
msgstr "
|
443 |
Â
|
444 |
-
#:
|
445 |
Â
msgid "Please correct the following"
|
446 |
Â
msgstr "Por favor, corrige lo siguiente"
|
447 |
Â
|
448 |
-
#:
|
449 |
Â
msgid "Membership Level Couldn't be found."
|
450 |
Â
msgstr "No se ha encontrado el nivel de membresÃa."
|
451 |
Â
|
452 |
-
#:
|
453 |
Â
msgid "Error! Nonce verification failed for front end profile edit."
|
454 |
Â
msgstr ""
|
455 |
-
"¡Error!
|
456 |
-
"
|
457 |
Â
|
458 |
-
#:
|
459 |
Â
msgid "Profile updated successfully."
|
460 |
-
msgstr "Perfil actualizado
|
461 |
Â
|
462 |
-
#:
|
463 |
Â
msgid ""
|
464 |
Â
"Profile updated successfully. You will need to re-login since you changed "
|
465 |
Â
"your password."
|
466 |
Â
msgstr ""
|
467 |
-
"Perfil actualizado
|
468 |
-
"
|
469 |
Â
|
470 |
-
#:
|
471 |
Â
msgid "Please correct the following."
|
472 |
-
msgstr "Por favor
|
473 |
Â
|
474 |
-
#:
|
475 |
Â
msgid "Captcha validation failed."
|
476 |
-
msgstr "Error de validación de
|
477 |
Â
|
478 |
-
#:
|
479 |
Â
msgid "Email address not valid."
|
480 |
-
msgstr "Dirección de correo electrónico no
|
481 |
Â
|
482 |
-
#:
|
483 |
Â
msgid "No user found with that email address."
|
484 |
-
msgstr ""
|
485 |
-
"No se han encontrado ningún usuario con esa dirección de correo electrónico."
|
486 |
Â
|
487 |
-
#:
|
488 |
-
#:
|
489 |
Â
msgid "Email Address: "
|
490 |
Â
msgstr "Dirección de correo electrónico: "
|
491 |
Â
|
492 |
-
#:
|
493 |
Â
msgid "New password has been sent to your email address."
|
494 |
-
msgstr "La nueva contraseña ha sido enviada a
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
495 |
Â
|
496 |
-
#:
|
497 |
Â
msgid "Sorry, Nonce verification failed."
|
498 |
-
msgstr "Lo siento, la verificación del
|
499 |
Â
|
500 |
-
#:
|
501 |
Â
msgid "Sorry, Password didn't match."
|
502 |
Â
msgstr "Lo siento, la contraseña no coincide."
|
503 |
Â
|
504 |
-
#:
|
505 |
Â
msgid "Date format is not valid."
|
506 |
Â
msgstr "El formato de fecha no es válido."
|
507 |
Â
|
508 |
-
#:
|
509 |
Â
msgid "Access duration must be > 0."
|
510 |
Â
msgstr "La duración del acceso debe ser mayor a 0."
|
511 |
Â
|
512 |
-
#:
|
513 |
Â
msgid "Member"
|
514 |
Â
msgstr "Miembro"
|
515 |
Â
|
516 |
-
#:
|
517 |
-
#:
|
518 |
Â
msgid "ID"
|
519 |
Â
msgstr "ID"
|
520 |
Â
|
521 |
-
#:
|
522 |
-
#:
|
523 |
-
#:
|
524 |
-
#: simple-membership/views/edit.php:13
|
525 |
Â
msgid "Username"
|
526 |
Â
msgstr "Nombre de usuario"
|
527 |
Â
|
528 |
-
#:
|
529 |
-
#:
|
530 |
-
#:
|
531 |
-
#:
|
532 |
-
#: simple-membership/views/edit.php:29
|
533 |
Â
msgid "First Name"
|
534 |
Â
msgstr "Nombre"
|
535 |
Â
|
536 |
-
#:
|
537 |
-
#:
|
538 |
-
#:
|
539 |
-
#:
|
540 |
-
#: simple-membership/views/edit.php:33
|
541 |
Â
msgid "Last Name"
|
542 |
-
msgstr "
|
543 |
Â
|
544 |
-
#:
|
545 |
-
#:
|
546 |
Â
msgid "Email"
|
547 |
Â
msgstr "Correo electrónico"
|
548 |
Â
|
549 |
-
#:
|
550 |
-
#: simple-membership/views/admin_member_form_common_part.php:11
|
551 |
Â
msgid "Access Starts"
|
552 |
Â
msgstr "El acceso comienza"
|
553 |
Â
|
554 |
-
#:
|
555 |
Â
msgid "Account State"
|
556 |
Â
msgstr "Estado de la cuenta"
|
557 |
Â
|
558 |
-
#:
|
559 |
-
|
560 |
-
|
561 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
562 |
Â
msgid "Delete"
|
563 |
Â
msgstr "Borrar"
|
564 |
Â
|
565 |
-
#:
|
566 |
Â
msgid "Set Status to Active"
|
567 |
-
msgstr "Establecer el
|
568 |
Â
|
569 |
-
#:
|
570 |
Â
msgid "Set Status to Active and Notify"
|
571 |
-
msgstr "Establecer el
|
572 |
Â
|
573 |
-
#:
|
574 |
Â
msgid "Set Status to Inactive"
|
575 |
-
msgstr "Establecer el
|
576 |
Â
|
577 |
-
#:
|
578 |
Â
msgid "Set Status to Pending"
|
579 |
-
msgstr "Establecer el
|
580 |
Â
|
581 |
-
#:
|
582 |
Â
msgid "Set Status to Expired"
|
583 |
-
msgstr "Establecer el
|
584 |
Â
|
585 |
-
#:
|
586 |
Â
msgid "incomplete"
|
587 |
Â
msgstr "incompleto"
|
588 |
Â
|
589 |
-
#:
|
590 |
Â
msgid "No member found."
|
591 |
-
msgstr "No se
|
592 |
Â
|
593 |
-
#:
|
594 |
Â
msgid "Error! Nonce verification failed for user delete from admin end."
|
595 |
Â
msgstr ""
|
596 |
-
"¡Error! La verificación de
|
597 |
-
"
|
598 |
Â
|
599 |
-
#:
|
600 |
-
#: simple-membership/classes/class.swpm-members.php:434
|
601 |
Â
msgid "Error! Please select a membership level first."
|
602 |
Â
msgstr "¡Error! Seleccione primero un nivel de membresÃa."
|
603 |
Â
|
604 |
-
#:
|
605 |
Â
msgid "Membership level change operation completed successfully."
|
606 |
Â
msgstr ""
|
607 |
-
"La operación de cambio de nivel de membresÃa se ha completado
|
608 |
Â
|
609 |
-
#:
|
610 |
Â
msgid "Access starts date change operation successfully completed."
|
611 |
-
msgstr ""
|
612 |
-
"El acceso inicia la operación de cambio de fecha completada "
|
613 |
-
"satisfactoriamente."
|
614 |
Â
|
615 |
-
#:
|
616 |
Â
msgid "Bulk Update Membership Level of Members"
|
617 |
-
msgstr "Actualización
|
618 |
Â
|
619 |
-
#:
|
620 |
Â
msgid ""
|
621 |
Â
"You can manually change the membership level of any member by editing the "
|
622 |
Â
"record from the members menu. "
|
623 |
Â
msgstr ""
|
624 |
-
"
|
625 |
Â
"editando el registro en el menú de miembros. "
|
626 |
Â
|
627 |
-
#:
|
628 |
Â
msgid ""
|
629 |
Â
"You can use the following option to bulk update the membership level of "
|
630 |
Â
"users who belong to the level you select below."
|
631 |
Â
msgstr ""
|
632 |
-
"Se puede
|
633 |
-
"membresÃa de los usuarios que pertenecen al nivel que
|
634 |
Â
"continuación."
|
635 |
Â
|
636 |
-
#:
|
637 |
-
#: simple-membership/classes/class.swpm-members.php:518
|
638 |
Â
msgid "Membership Level: "
|
639 |
Â
msgstr "Nivel de membresÃa: "
|
640 |
Â
|
641 |
-
#:
|
642 |
Â
msgid "Select Current Level"
|
643 |
-
msgstr "
|
644 |
Â
|
645 |
-
#:
|
646 |
Â
msgid ""
|
647 |
Â
"Select the current membership level (the membership level of all members who "
|
648 |
Â
"are in this level will be updated)."
|
649 |
Â
msgstr ""
|
650 |
-
"
|
651 |
-
"miembros que se encuentren en este nivel se
|
652 |
Â
|
653 |
-
#:
|
654 |
Â
msgid "Level to Change to: "
|
655 |
Â
msgstr "Nivel a cambiar a: "
|
656 |
Â
|
657 |
-
#:
|
658 |
Â
msgid "Select Target Level"
|
659 |
-
msgstr "
|
660 |
Â
|
661 |
-
#:
|
662 |
Â
msgid "Select the new membership level."
|
663 |
Â
msgstr "Seleccione el nuevo nivel de membresÃa."
|
664 |
Â
|
665 |
-
#:
|
666 |
Â
msgid "Bulk Change Membership Level"
|
667 |
-
msgstr "Cambio
|
668 |
Â
|
669 |
-
#:
|
670 |
Â
msgid "Bulk Update Access Starts Date of Members"
|
671 |
-
msgstr "
|
Â
|
|
672 |
Â
|
673 |
-
#:
|
674 |
Â
msgid ""
|
675 |
Â
"The access starts date of a member is set to the day the user registers. "
|
676 |
Â
"This date value is used to calculate how long the member can access your "
|
@@ -679,10 +835,10 @@ msgid ""
|
|
679 |
Â
msgstr ""
|
680 |
Â
"La fecha de inicio de acceso de un miembro se establece en el dÃa en que el "
|
681 |
Â
"usuario se registra. Este valor de fecha se utiliza para calcular el tiempo "
|
682 |
-
"que el miembro puede acceder a
|
683 |
-
"protección de tipo duración en el nivel de membresÃa. "
|
684 |
Â
|
685 |
-
#:
|
686 |
Â
msgid ""
|
687 |
Â
"You can manually set a specific access starts date value of all members who "
|
688 |
Â
"belong to a particular level using the following option."
|
@@ -691,518 +847,836 @@ msgstr ""
|
|
691 |
Â
"especÃfico de todos los miembros que pertenezcan a un nivel determinado "
|
692 |
Â
"mediante la siguiente opción."
|
693 |
Â
|
694 |
-
#:
|
695 |
Â
msgid "Select Level"
|
696 |
-
msgstr "
|
697 |
Â
|
698 |
-
#:
|
699 |
Â
msgid ""
|
700 |
Â
"Select the Membership level (the access start date of all members who are in "
|
701 |
Â
"this level will be updated)."
|
702 |
Â
msgstr ""
|
703 |
-
"
|
704 |
-
"miembros que están en este nivel se
|
705 |
Â
|
706 |
-
#:
|
707 |
Â
msgid "Specify the access starts date value."
|
708 |
-
msgstr "
|
709 |
Â
|
710 |
-
#:
|
711 |
Â
msgid "Bulk Change Access Starts Date"
|
712 |
-
msgstr "
|
713 |
Â
|
714 |
-
#:
|
715 |
Â
msgid "Simple WP Membership::Members"
|
716 |
Â
msgstr "Simple WP Membership::Miembros"
|
717 |
Â
|
718 |
-
#:
|
719 |
-
#:
|
720 |
-
#: simple-membership/views/admin_members_list.php:43
|
721 |
Â
msgid "Add New"
|
722 |
Â
msgstr "Añadir nuevo"
|
723 |
Â
|
724 |
-
#:
|
725 |
-
#: simple-membership/views/admin_add.php:6
|
726 |
Â
msgid "Add Member"
|
727 |
Â
msgstr "Añadir miembro"
|
728 |
Â
|
729 |
-
#:
|
730 |
Â
msgid "Bulk Operation"
|
731 |
-
msgstr "Operación
|
732 |
Â
|
733 |
-
#:
|
734 |
Â
msgid ""
|
735 |
Â
"Error! Nonce verification failed for membership level creation from admin "
|
736 |
Â
"end."
|
737 |
Â
msgstr ""
|
738 |
Â
"¡Error! La verificación de Nonce falló en la creación de nivel de membresÃa "
|
739 |
-
"desde
|
740 |
Â
|
741 |
-
#:
|
742 |
Â
msgid "Membership Level Creation Successful."
|
743 |
-
msgstr "Nivel de membresÃa creado
|
744 |
Â
|
745 |
-
#:
|
746 |
Â
msgid ""
|
747 |
Â
"Error! Nonce verification failed for membership level edit from admin end."
|
748 |
Â
msgstr ""
|
749 |
-
"¡Error! La
|
750 |
-
"desde
|
751 |
Â
|
752 |
-
#:
|
753 |
Â
msgid "Membership Level Updated Successfully."
|
754 |
-
msgstr "
|
755 |
Â
|
756 |
-
#:
|
757 |
Â
msgid "Role"
|
758 |
-
msgstr "
|
759 |
Â
|
760 |
-
#:
|
761 |
Â
msgid "Access Valid For/Until"
|
762 |
Â
msgstr "Acceso válido durante/hasta"
|
763 |
Â
|
764 |
-
#:
|
765 |
Â
msgid "No membership levels found."
|
766 |
Â
msgstr "No se encontraron niveles de membresÃa."
|
767 |
Â
|
768 |
-
#:
|
769 |
Â
msgid ""
|
770 |
Â
"Error! Nonce verification failed for membership level delete from admin end."
|
771 |
Â
msgstr ""
|
772 |
-
"¡Error! La verificación de
|
773 |
-
"desde el
|
774 |
Â
|
775 |
-
#:
|
776 |
-
#:
|
777 |
-
#:
|
778 |
Â
msgid "Search"
|
779 |
Â
msgstr "Buscar"
|
780 |
Â
|
781 |
-
#:
|
782 |
Â
msgid "Simple WP Membership::Membership Levels"
|
783 |
Â
msgstr "Simple WP Membership::Nivel de membresÃa"
|
784 |
Â
|
785 |
-
#:
|
786 |
Â
msgid "Add Level"
|
787 |
Â
msgstr "Añadir nivel"
|
788 |
Â
|
789 |
-
#:
|
790 |
Â
msgid "Manage Content Protection"
|
791 |
-
msgstr "
|
792 |
Â
|
793 |
-
#:
|
794 |
Â
msgid "Category Protection"
|
795 |
Â
msgstr "Protección de categorÃa"
|
796 |
Â
|
797 |
-
#:
|
798 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
799 |
Â
msgid "General Settings"
|
800 |
Â
msgstr "Ajustes generales"
|
801 |
Â
|
802 |
-
#:
|
803 |
Â
msgid "Payment Settings"
|
804 |
Â
msgstr "Ajustes de pago"
|
805 |
Â
|
806 |
-
#:
|
807 |
Â
msgid "Email Settings"
|
808 |
-
msgstr "
|
809 |
Â
|
810 |
-
#:
|
811 |
Â
msgid "Tools"
|
812 |
Â
msgstr "Herramientas"
|
813 |
Â
|
814 |
-
#:
|
815 |
-
#: simple-membership/classes/class.swpm-settings.php:189
|
816 |
Â
msgid "Advanced Settings"
|
817 |
Â
msgstr "Ajustes avanzados"
|
818 |
Â
|
819 |
-
#:
|
820 |
Â
msgid "Addons Settings"
|
821 |
Â
msgstr "Ajustes de extensiones"
|
822 |
Â
|
823 |
-
#:
|
824 |
Â
msgid "Plugin Documentation"
|
825 |
Â
msgstr "Documentación del plugin"
|
826 |
Â
|
827 |
-
#:
|
828 |
Â
msgid "Enable Free Membership"
|
829 |
Â
msgstr "Activar membresÃa gratis"
|
830 |
Â
|
831 |
-
#:
|
832 |
Â
msgid ""
|
833 |
Â
"Enable/disable registration for free membership level. When you enable this "
|
834 |
Â
"option, make sure to specify a free membership level ID in the field below."
|
835 |
Â
msgstr ""
|
836 |
-
"
|
837 |
-
"
|
838 |
-
"
|
839 |
Â
|
840 |
-
#:
|
841 |
Â
msgid "Free Membership Level ID"
|
842 |
Â
msgstr "ID de la membresÃa gratuita"
|
843 |
Â
|
844 |
-
#:
|
845 |
Â
msgid "Assign free membership level ID"
|
846 |
Â
msgstr "Asignar el ID de la membresÃa gratuita"
|
847 |
Â
|
848 |
-
#:
|
849 |
Â
msgid "Enable More Tag Protection"
|
850 |
-
msgstr "
|
851 |
Â
|
852 |
-
#:
|
853 |
Â
msgid ""
|
854 |
Â
"Enables or disables \"more\" tag protection in the posts and pages. Anything "
|
855 |
Â
"after the More tag is protected. Anything before the more tag is teaser "
|
856 |
Â
"content."
|
857 |
Â
msgstr ""
|
858 |
-
"Activa o desactiva la
|
859 |
-
"páginas.
|
860 |
-
"
|
861 |
Â
|
862 |
-
#:
|
863 |
Â
msgid "Hide Adminbar"
|
864 |
Â
msgstr "Ocultar la barra de administración"
|
865 |
Â
|
866 |
-
#:
|
867 |
Â
msgid ""
|
868 |
Â
"WordPress shows an admin toolbar to the logged in users of the site. Check "
|
869 |
Â
"this if you want to hide that admin toolbar in the frontend of your site."
|
870 |
Â
msgstr ""
|
871 |
Â
"WordPress muestra una barra de herramientas de administración para los "
|
872 |
-
"usuarios registrados en el sitio.
|
873 |
-
"herramientas de administración en
|
874 |
Â
|
875 |
-
#:
|
876 |
Â
msgid "Show Adminbar to Admin"
|
877 |
-
msgstr "Mostrar barra de administración
|
878 |
Â
|
879 |
-
#:
|
880 |
Â
msgid ""
|
881 |
Â
"Use this option if you want to show the admin toolbar to admin users only. "
|
882 |
Â
"The admin toolbar will be hidden for all other users."
|
883 |
Â
msgstr ""
|
884 |
-
"
|
885 |
Â
"administración sólo a usuarios administradores. La barra de herramientas de "
|
886 |
Â
"administración se ocultará para todos los demás usuarios."
|
887 |
Â
|
888 |
-
#:
|
889 |
Â
msgid "Disable Access to WP Dashboard"
|
890 |
-
msgstr "
|
891 |
Â
|
892 |
-
#:
|
893 |
Â
msgid ""
|
894 |
-
"WordPress allows a
|
895 |
Â
"access his profile from the wp dashbaord. Using this option will prevent any "
|
896 |
Â
"non admin users from going to the wp dashboard."
|
897 |
Â
msgstr ""
|
898 |
-
"WordPress permite
|
899 |
-
"admin y
|
900 |
-
"
|
901 |
-
"
|
902 |
Â
|
903 |
-
#:
|
904 |
Â
msgid "Default Account Status"
|
905 |
Â
msgstr "Estado por defecto de la cuenta"
|
906 |
Â
|
907 |
-
#:
|
908 |
Â
msgid ""
|
909 |
Â
"Select the default account status for newly registered users. If you want to "
|
910 |
Â
"manually approve the members then you can set the status to \"Pending\"."
|
911 |
Â
msgstr ""
|
912 |
-
"
|
913 |
-
"
|
914 |
Â
"\"Pendiente\"."
|
915 |
Â
|
916 |
-
#:
|
917 |
Â
msgid "Members Must be Logged in to Comment"
|
918 |
Â
msgstr "Los miembros deben estar conectados para comentar"
|
919 |
Â
|
920 |
-
#:
|
921 |
Â
msgid ""
|
922 |
Â
"Enable this option if you only want the members of the site to be able to "
|
923 |
Â
"post a comment."
|
924 |
Â
msgstr ""
|
925 |
-
"
|
926 |
Â
"un comentario."
|
927 |
Â
|
928 |
-
#:
|
929 |
Â
msgid "Pages Settings"
|
930 |
Â
msgstr "Ajustes de páginas"
|
931 |
Â
|
932 |
-
#:
|
933 |
Â
msgid "Login Page URL"
|
934 |
-
msgstr "URL
|
935 |
Â
|
936 |
-
#:
|
937 |
Â
msgid "Registration Page URL"
|
938 |
Â
msgstr "El URL de la página de registro"
|
939 |
Â
|
940 |
-
#:
|
941 |
Â
msgid "Join Us Page URL"
|
942 |
-
msgstr "URL página de Únete a nosotros"
|
943 |
Â
|
944 |
-
#:
|
945 |
Â
msgid "Edit Profile Page URL"
|
946 |
-
msgstr "Editar URL de página
|
947 |
Â
|
948 |
-
#:
|
949 |
Â
msgid "Password Reset Page URL"
|
950 |
-
msgstr "URL de página de restablecimiento de contraseña"
|
951 |
Â
|
952 |
-
#:
|
953 |
Â
msgid "Test & Debug Settings"
|
954 |
Â
msgstr "Ajustes de prueba y depuración"
|
955 |
Â
|
956 |
-
#:
|
957 |
Â
msgid "Check this option to enable debug logging."
|
958 |
-
msgstr "
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
959 |
Â
|
960 |
-
#:
|
961 |
Â
msgid "Enable Sandbox Testing"
|
962 |
Â
msgstr "Activar pruebas en sandbox"
|
963 |
Â
|
964 |
-
#:
|
965 |
Â
msgid "Enable this option if you want to do sandbox payment testing."
|
966 |
-
msgstr "
|
967 |
Â
|
968 |
-
#:
|
969 |
-
|
970 |
-
|
971 |
-
msgid "Settings updated!"
|
972 |
-
msgstr "¡Ajustes actualizados!"
|
973 |
Â
|
974 |
-
#:
|
975 |
Â
msgid "Email Misc. Settings"
|
976 |
Â
msgstr "Ajustes varios del correo electrónico"
|
977 |
Â
|
978 |
-
#:
|
979 |
Â
msgid "From Email Address"
|
980 |
Â
msgstr "Remitente del correo electrónico"
|
981 |
Â
|
982 |
-
#:
|
983 |
Â
msgid "Email Settings (Prompt to Complete Registration )"
|
984 |
-
msgstr ""
|
985 |
-
"Configuración del correo electrónico (Solicitud para completar el registro)"
|
986 |
Â
|
987 |
-
#:
|
988 |
-
#:
|
989 |
-
#:
|
990 |
-
#: simple-membership/classes/class.swpm-settings.php:164
|
991 |
-
#: simple-membership/classes/class.swpm-settings.php:169
|
992 |
Â
msgid "Email Subject"
|
993 |
Â
msgstr "Asunto del correo electrónico"
|
994 |
Â
|
995 |
-
#:
|
996 |
-
#:
|
997 |
-
#:
|
998 |
-
#: simple-membership/classes/class.swpm-settings.php:165
|
999 |
-
#: simple-membership/classes/class.swpm-settings.php:170
|
1000 |
Â
msgid "Email Body"
|
1001 |
Â
msgstr "Cuerpo del correo electrónico"
|
1002 |
Â
|
1003 |
-
#:
|
1004 |
Â
msgid ""
|
1005 |
Â
"Enter the email address where you want the admin notification email to be "
|
1006 |
Â
"sent to."
|
1007 |
Â
msgstr ""
|
1008 |
-
"Introduce la dirección de correo electrónico donde deseas que se
|
1009 |
-
"
|
1010 |
Â
|
1011 |
-
#:
|
1012 |
Â
msgid ""
|
1013 |
Â
" You can put multiple email addresses separated by comma (,) in the above "
|
1014 |
Â
"field to send the notification to multiple email addresses."
|
1015 |
Â
msgstr ""
|
1016 |
-
"
|
1017 |
Â
"(,) en el campo anterior para enviar la notificación a varias direcciones de "
|
1018 |
Â
"correo electrónico."
|
1019 |
Â
|
1020 |
-
#:
|
1021 |
Â
msgid "Enter the subject for the admin notification email."
|
1022 |
Â
msgstr ""
|
1023 |
-
"
|
1024 |
Â
"administrador."
|
1025 |
Â
|
1026 |
-
#:
|
1027 |
Â
msgid ""
|
1028 |
Â
"This email will be sent to the admin when a new user completes the "
|
1029 |
Â
"membership registration. Only works if you have enabled the \"Send "
|
1030 |
Â
"Notification to Admin\" option above."
|
1031 |
Â
msgstr ""
|
1032 |
Â
"Este correo electrónico se enviará al administrador cuando un nuevo usuario "
|
1033 |
-
"complete el registro de membresÃa. Sólo funciona si
|
1034 |
-
"\"Enviar notificación al administrador\"
|
1035 |
Â
|
1036 |
-
#:
|
1037 |
Â
msgid "Email Settings (Registration Complete)"
|
1038 |
-
msgstr "Ajustes del correo electrónico (
|
1039 |
Â
|
1040 |
-
#:
|
1041 |
Â
msgid "Send Notification to Admin"
|
1042 |
-
msgstr "Enviar notificación al
|
1043 |
Â
|
1044 |
-
#:
|
1045 |
Â
msgid ""
|
1046 |
Â
"Enable this option if you want the admin to receive a notification when a "
|
1047 |
Â
"member registers."
|
1048 |
Â
msgstr ""
|
1049 |
-
"
|
1050 |
Â
"cuando un miembro se registre."
|
1051 |
Â
|
1052 |
-
#:
|
1053 |
Â
msgid "Admin Email Address"
|
1054 |
Â
msgstr "Dirección de correo electrónico del administrador"
|
1055 |
Â
|
1056 |
-
#:
|
1057 |
Â
msgid "Admin Notification Email Subject"
|
1058 |
Â
msgstr "Asunto del correo electrónico de notificación de administrador"
|
1059 |
Â
|
1060 |
-
#:
|
1061 |
Â
msgid "Admin Notification Email Body"
|
1062 |
Â
msgstr "Cuerpo de correo electrónico de notificación de administrador"
|
1063 |
Â
|
1064 |
-
#:
|
1065 |
Â
msgid "Send Email to Member When Added via Admin Dashboard"
|
1066 |
Â
msgstr ""
|
1067 |
-
"
|
1068 |
-
"de administración"
|
1069 |
Â
|
1070 |
-
#:
|
1071 |
Â
msgid "Email Settings (Password Reset)"
|
1072 |
-
msgstr "
|
1073 |
Â
|
1074 |
-
#:
|
1075 |
Â
msgid " Email Settings (Account Upgrade Notification)"
|
1076 |
Â
msgstr " Ajustes de correo electrónico (Notificación de mejora de la cuenta)"
|
1077 |
Â
|
1078 |
-
#:
|
1079 |
Â
msgid " Email Settings (Bulk Account Activate Notification)"
|
1080 |
Â
msgstr ""
|
1081 |
-
"
|
1082 |
Â
|
1083 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1084 |
Â
msgid "Enable Expired Account Login"
|
1085 |
Â
msgstr "Activar el acceso a la cuenta caducada"
|
1086 |
Â
|
1087 |
-
#:
|
1088 |
Â
msgid ""
|
1089 |
Â
"When enabled, expired members will be able to log into the system but won't "
|
1090 |
Â
"be able to view any protected content. This allows them to easily renew "
|
1091 |
Â
"their account by making another payment."
|
1092 |
Â
msgstr ""
|
1093 |
-
"Cuando está
|
1094 |
-
"
|
1095 |
-
"
|
1096 |
Â
|
1097 |
-
#:
|
1098 |
Â
msgid "Membership Renewal URL"
|
1099 |
-
msgstr "URL de renovación de
|
1100 |
Â
|
1101 |
-
#:
|
1102 |
Â
msgid ""
|
1103 |
Â
"You can create a renewal page for your site. Read <a href=\"https://simple-"
|
1104 |
Â
"membership-plugin.com/creating-membership-renewal-button/\" target=\"_blank"
|
1105 |
Â
"\">this documentation</a> to learn how to create a renewal page."
|
1106 |
Â
msgstr ""
|
1107 |
-
"
|
1108 |
Â
"simple-membership-plugin.com/creating-membership-renewal-button/\" target="
|
1109 |
-
"\"_blank\">
|
1110 |
Â
"renovación."
|
1111 |
Â
|
1112 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1113 |
Â
msgid "Allow Account Deletion"
|
1114 |
-
msgstr "
|
1115 |
Â
|
1116 |
-
#:
|
1117 |
Â
msgid "Allow users to delete their accounts."
|
1118 |
-
msgstr "
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1119 |
Â
|
1120 |
-
#:
|
1121 |
Â
msgid "Use WordPress Timezone"
|
1122 |
-
msgstr "Usar
|
1123 |
Â
|
1124 |
-
#:
|
1125 |
Â
msgid ""
|
1126 |
Â
"Use this option if you want to use the timezone value specified in your "
|
1127 |
Â
"WordPress General Settings interface."
|
1128 |
Â
msgstr ""
|
1129 |
-
"
|
1130 |
-
"en la interfaz de
|
1131 |
Â
|
1132 |
-
#:
|
1133 |
Â
msgid "Auto Delete Pending Account"
|
1134 |
Â
msgstr "Borrar automáticamente las cuentas pendientes"
|
1135 |
Â
|
1136 |
-
#:
|
1137 |
Â
msgid "Select how long you want to keep \"pending\" account."
|
1138 |
-
msgstr "Selecciona cuánto tiempo
|
1139 |
Â
|
1140 |
-
#:
|
1141 |
Â
msgid "Admin Dashboard Access Permission"
|
1142 |
-
msgstr "Permiso de acceso al
|
1143 |
Â
|
1144 |
-
#:
|
1145 |
Â
msgid ""
|
1146 |
Â
"SWPM admin dashboard is accessible to admin users only (just like any other "
|
1147 |
Â
"plugin). You can allow users with other WP user role to access the SWPM "
|
1148 |
Â
"admin dashboard by selecting a value here."
|
1149 |
Â
msgstr ""
|
1150 |
-
"El
|
1151 |
-
"
|
1152 |
-
"
|
1153 |
-
"
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1154 |
Â
|
1155 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1156 |
Â
msgid "General Plugin Settings."
|
1157 |
-
msgstr "
|
1158 |
Â
|
1159 |
-
#:
|
1160 |
Â
msgid "Page Setup and URL Related settings."
|
1161 |
-
msgstr "
|
1162 |
Â
|
1163 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1164 |
Â
msgid "Testing and Debug Related Settings."
|
1165 |
Â
msgstr "Pruebas y ajustes relacionados con depuración."
|
1166 |
Â
|
1167 |
-
#:
|
1168 |
Â
msgid ""
|
1169 |
Â
"This email will be sent to your users when they complete the registration "
|
1170 |
Â
"and become a member."
|
1171 |
Â
msgstr ""
|
1172 |
-
"Este correo electrónico se enviará a
|
1173 |
Â
"registro y se conviertan en miembros."
|
1174 |
Â
|
1175 |
-
#:
|
1176 |
Â
msgid ""
|
1177 |
Â
"This email will be sent to your users when they use the password reset "
|
1178 |
Â
"functionality."
|
1179 |
Â
msgstr ""
|
1180 |
-
"Este correo electrónico se enviará a
|
1181 |
-
"de restablecimiento de contraseña."
|
1182 |
Â
|
1183 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1184 |
Â
msgid "Settings in this section apply to all emails."
|
1185 |
Â
msgstr ""
|
1186 |
Â
"Los ajustes de esta sección se aplican a todos los correos electrónicos."
|
1187 |
Â
|
1188 |
-
#:
|
1189 |
Â
msgid ""
|
1190 |
Â
"This email will be sent to your users after account upgrade (when an "
|
1191 |
Â
"existing member pays for a new membership level)."
|
1192 |
Â
msgstr ""
|
1193 |
-
"Este correo electrónico se enviará a
|
1194 |
Â
"actualización de cuenta (cuando un miembro existente paga por un nuevo nivel "
|
1195 |
Â
"de membresÃa)."
|
1196 |
Â
|
1197 |
-
#:
|
1198 |
Â
msgid ""
|
1199 |
Â
"This email will be sent to your members when you use the bulk account "
|
1200 |
Â
"activate and notify action."
|
1201 |
Â
msgstr ""
|
1202 |
-
"Este correo electrónico se enviará a
|
1203 |
-
"
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1204 |
Â
|
1205 |
-
#:
|
1206 |
Â
msgid ""
|
1207 |
Â
"This email will be sent to prompt users to complete registration after the "
|
1208 |
Â
"payment."
|
@@ -1210,178 +1684,219 @@ msgstr ""
|
|
1210 |
Â
"Este correo electrónico se enviará a los usuarios para completar el registro "
|
1211 |
Â
"después del pago."
|
1212 |
Â
|
1213 |
-
#:
|
1214 |
Â
msgid "This page allows you to configure some advanced features of the plugin."
|
1215 |
Â
msgstr ""
|
1216 |
-
"Esta página
|
Â
|
|
1217 |
Â
|
1218 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1219 |
Â
msgid "Simple WP Membership::Settings"
|
1220 |
Â
msgstr "Simple WP Membership::Ajustes"
|
1221 |
Â
|
1222 |
-
#:
|
1223 |
-
#:
|
1224 |
-
#:
|
1225 |
-
#:
|
1226 |
Â
msgid "User is not logged in."
|
1227 |
Â
msgstr "El usuario no está conectado."
|
1228 |
Â
|
1229 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1230 |
Â
msgid "Registration"
|
1231 |
Â
msgstr "Registro"
|
1232 |
Â
|
1233 |
-
#:
|
1234 |
Â
msgid "Member Login"
|
1235 |
Â
msgstr "Acceso de miembro"
|
1236 |
Â
|
1237 |
-
#:
|
Â
|
|
1238 |
Â
msgid "Profile"
|
1239 |
Â
msgstr "Perfil"
|
1240 |
Â
|
1241 |
-
#:
|
1242 |
Â
msgid "Password Reset"
|
1243 |
Â
msgstr "Restablecer la contraseña"
|
1244 |
Â
|
1245 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1246 |
Â
msgid "Not a Member?"
|
1247 |
Â
msgstr "¿Aún no eres miembro?"
|
1248 |
Â
|
1249 |
-
#:
|
1250 |
Â
msgid "renew"
|
1251 |
Â
msgstr "renovar"
|
1252 |
Â
|
1253 |
-
#:
|
1254 |
Â
msgid " your account to gain access to this content."
|
1255 |
-
msgstr "
|
1256 |
Â
|
1257 |
-
#:
|
1258 |
-
#: simple-membership/classes/class.swpm-utils-misc.php:295
|
1259 |
Â
msgid "Error! This action ("
|
1260 |
Â
msgstr "¡Error! Esta acción ("
|
1261 |
Â
|
1262 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1263 |
Â
msgid "Error! Failed to find a template path for the specified template: "
|
1264 |
Â
msgstr ""
|
1265 |
-
"¡Error!
|
1266 |
Â
"especificada: "
|
1267 |
Â
|
1268 |
-
#:
|
1269 |
Â
msgid "Never"
|
1270 |
Â
msgstr "Nunca"
|
1271 |
Â
|
1272 |
-
#:
|
1273 |
Â
msgid "Active"
|
1274 |
-
msgstr "
|
1275 |
Â
|
1276 |
-
#:
|
1277 |
Â
msgid "Inactive"
|
1278 |
Â
msgstr "Inactivo"
|
1279 |
Â
|
1280 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1281 |
Â
msgid "Pending"
|
1282 |
Â
msgstr "Pendiente"
|
1283 |
Â
|
1284 |
-
#:
|
1285 |
Â
msgid "Expired"
|
1286 |
Â
msgstr "Caducado"
|
1287 |
Â
|
1288 |
-
#:
|
1289 |
Â
msgid "Delete Account"
|
1290 |
Â
msgstr "Borrar cuenta"
|
1291 |
Â
|
1292 |
-
#:
|
1293 |
Â
msgid "Payment Button ID"
|
1294 |
Â
msgstr "ID del botón de pago"
|
1295 |
Â
|
1296 |
-
#:
|
1297 |
Â
msgid "Payment Button Title"
|
1298 |
Â
msgstr "TÃtulo del botón de pago"
|
1299 |
Â
|
1300 |
-
#:
|
1301 |
Â
msgid "Membership Level ID"
|
1302 |
Â
msgstr "ID de nivel de membresÃa"
|
1303 |
Â
|
1304 |
-
#:
|
1305 |
Â
msgid "Button Type"
|
1306 |
Â
msgstr "Tipo de botón"
|
1307 |
Â
|
1308 |
-
#:
|
1309 |
Â
msgid "Button Shortcode"
|
1310 |
-
msgstr "
|
1311 |
Â
|
1312 |
-
#:
|
1313 |
-
#:
|
1314 |
-
#:
|
1315 |
Â
msgid "The selected entry was deleted!"
|
1316 |
Â
msgstr "¡La entrada seleccionada fue borrada!"
|
1317 |
Â
|
1318 |
-
#:
|
1319 |
Â
msgid "Simple Membership::Payments"
|
1320 |
Â
msgstr "Simple Membership::Pagos"
|
1321 |
Â
|
1322 |
-
#:
|
1323 |
Â
msgid "Transactions"
|
1324 |
Â
msgstr "Transacciones"
|
1325 |
Â
|
1326 |
-
#:
|
1327 |
Â
msgid "Manage Payment Buttons"
|
1328 |
-
msgstr "
|
1329 |
Â
|
1330 |
-
#:
|
1331 |
-
#:
|
1332 |
Â
msgid "Create New Button"
|
1333 |
Â
msgstr "Crear nuevo botón"
|
1334 |
Â
|
1335 |
-
#:
|
Â
|
|
1336 |
Â
msgid "View Profile"
|
1337 |
Â
msgstr "Ver perfil"
|
1338 |
Â
|
1339 |
-
#:
|
1340 |
Â
msgid "Row ID"
|
1341 |
-
msgstr "ID de fila"
|
1342 |
Â
|
1343 |
-
#:
|
1344 |
-
#:
|
1345 |
Â
msgid "Email Address"
|
1346 |
Â
msgstr "Dirección de correo electrónico"
|
1347 |
Â
|
1348 |
-
#:
|
1349 |
Â
msgid "Member Profile"
|
1350 |
-
msgstr "Perfil
|
1351 |
-
|
1352 |
-
#: simple-membership/classes/admin-includes/class.swpm-payments-list-table.php:81
|
1353 |
-
msgid "Date"
|
1354 |
-
msgstr "Fecha"
|
1355 |
Â
|
1356 |
-
#:
|
1357 |
Â
msgid "Transaction ID"
|
1358 |
Â
msgstr "ID de transacción"
|
1359 |
Â
|
1360 |
-
#:
|
1361 |
Â
msgid "Subscriber ID"
|
1362 |
-
msgstr "
|
1363 |
Â
|
1364 |
-
#:
|
1365 |
Â
msgid "Amount"
|
1366 |
Â
msgstr "Cantidad"
|
1367 |
Â
|
1368 |
-
#:
|
1369 |
Â
msgid "Your membership profile will be updated to reflect the payment."
|
1370 |
Â
msgstr "Tu perfil de membresÃa se actualizará para reflejar el pago."
|
1371 |
Â
|
1372 |
-
#:
|
1373 |
Â
msgid "Your profile username: "
|
1374 |
-
msgstr "Nombre de usuario de
|
1375 |
Â
|
1376 |
-
#:
|
1377 |
Â
msgid "Click on the following link to complete the registration."
|
1378 |
Â
msgstr "Haga clic en el siguiente enlace para completar el registro."
|
1379 |
Â
|
1380 |
-
#:
|
1381 |
Â
msgid "Click here to complete your paid registration"
|
1382 |
Â
msgstr "Haz clic aquà para completar tu registro de pago"
|
1383 |
Â
|
1384 |
-
#:
|
1385 |
Â
msgid ""
|
1386 |
Â
"If you have just made a membership payment then your payment is yet to be "
|
1387 |
Â
"processed. Please check back in a few minutes. An email will be sent to you "
|
@@ -1391,61 +1906,142 @@ msgstr ""
|
|
1391 |
Â
"procesado. Por favor vuelve a revisarlo en unos minutos. Un correo "
|
1392 |
Â
"electrónico te será enviado con los detalles en breve."
|
1393 |
Â
|
1394 |
-
#:
|
1395 |
Â
msgid "Expiry: "
|
1396 |
Â
msgstr "Caducidad: "
|
1397 |
Â
|
1398 |
-
#:
|
1399 |
Â
msgid "You are not logged-in as a member"
|
1400 |
-
msgstr "No
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1401 |
Â
|
1402 |
-
#:
|
1403 |
-
|
1404 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1405 |
Â
msgid "Password"
|
1406 |
Â
msgstr "Contraseña"
|
1407 |
Â
|
1408 |
-
#:
|
1409 |
Â
msgid "Repeat Password"
|
1410 |
Â
msgstr "Repetir contraseña"
|
1411 |
Â
|
1412 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1413 |
Â
msgid "Register"
|
1414 |
Â
msgstr "Registrarse"
|
1415 |
Â
|
1416 |
-
#:
|
1417 |
Â
msgid "Create a brand new user and add it to this site."
|
1418 |
Â
msgstr "Crear un nuevo usuario y agregarlo a esta web."
|
1419 |
Â
|
1420 |
-
#:
|
1421 |
-
#:
|
1422 |
-
#:
|
1423 |
-
#:
|
1424 |
-
#:
|
1425 |
-
#: simple-membership/views/admin_edit.php:14
|
1426 |
-
#: simple-membership/views/admin_edit.php:35
|
1427 |
-
#: simple-membership/views/admin_edit_level.php:16
|
1428 |
-
#: simple-membership/views/admin_edit_level.php:20
|
1429 |
-
#: simple-membership/views/admin_edit_level.php:24
|
1430 |
Â
msgid "(required)"
|
1431 |
Â
msgstr "(obligatorio)"
|
1432 |
Â
|
1433 |
-
#:
|
1434 |
-
#: simple-membership/views/admin_edit.php:35
|
1435 |
Â
msgid "E-mail"
|
1436 |
Â
msgstr "Correo electrónico"
|
1437 |
Â
|
1438 |
-
#:
|
1439 |
Â
msgid "(twice, required)"
|
1440 |
Â
msgstr "(dos veces, obligatorio)"
|
1441 |
Â
|
1442 |
-
#:
|
1443 |
-
#: simple-membership/views/admin_edit.php:43
|
1444 |
Â
msgid "Strength indicator"
|
1445 |
Â
msgstr "Indicador de fortaleza"
|
1446 |
Â
|
1447 |
-
#:
|
1448 |
-
#: simple-membership/views/admin_edit.php:44
|
1449 |
Â
msgid ""
|
1450 |
Â
"Hint: The password should be at least seven characters long. To make it "
|
1451 |
Â
"stronger, use upper and lower case letters, numbers and symbols like ! \" ? "
|
@@ -1455,251 +2051,373 @@ msgstr ""
|
|
1455 |
Â
"fuerte utiliza mayúsculas y minúsculas, números y sÃmbolos como ! \" ? $ % ^ "
|
1456 |
Â
"& )."
|
1457 |
Â
|
1458 |
-
#:
|
1459 |
-
#: simple-membership/views/admin_edit.php:48
|
1460 |
-
#: simple-membership/views/loggedin.php:10
|
1461 |
Â
msgid "Account Status"
|
1462 |
Â
msgstr "Estado de la cuenta"
|
1463 |
Â
|
1464 |
-
#:
|
1465 |
Â
msgid "Add New Member "
|
1466 |
Â
msgstr "Añadir nuevo miembro "
|
1467 |
Â
|
1468 |
-
#:
|
1469 |
Â
msgid ""
|
1470 |
Â
"Some of the simple membership plugin's addon settings and options will be "
|
1471 |
Â
"displayed here (if you have them)"
|
1472 |
Â
msgstr ""
|
1473 |
-
"Algunos de los ajustes y opciones de
|
1474 |
-
"se mostrarán aquà (si los
|
1475 |
Â
|
1476 |
-
#:
|
1477 |
Â
msgid "Save Changes"
|
1478 |
Â
msgstr "Guardar cambios"
|
1479 |
Â
|
1480 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1481 |
Â
msgid "Create new membership level."
|
1482 |
Â
msgstr "Crear un nuevo nivel de membresÃa."
|
1483 |
Â
|
1484 |
-
#:
|
1485 |
-
#: simple-membership/views/admin_edit_level.php:16
|
1486 |
Â
msgid "Membership Level Name"
|
1487 |
Â
msgstr "Nombre del nivel de membresÃa"
|
1488 |
Â
|
1489 |
-
#:
|
1490 |
-
#: simple-membership/views/admin_edit_level.php:20
|
1491 |
Â
msgid "Default WordPress Role"
|
1492 |
Â
msgstr "Perfil por defecto de WordPress"
|
1493 |
Â
|
1494 |
-
#:
|
1495 |
-
#: simple-membership/views/admin_edit_level.php:24
|
1496 |
Â
msgid "Access Duration"
|
1497 |
Â
msgstr "Duración del acceso"
|
1498 |
Â
|
1499 |
-
#:
|
1500 |
Â
msgid "No Expiry (Access for this level will not expire until cancelled"
|
1501 |
-
msgstr "
|
1502 |
-
|
1503 |
-
|
1504 |
-
#:
|
1505 |
-
#:
|
1506 |
-
#:
|
1507 |
-
#:
|
1508 |
-
#: simple-membership/views/admin_edit_level.php:31
|
1509 |
-
#: simple-membership/views/admin_edit_level.php:34
|
1510 |
-
#: simple-membership/views/admin_edit_level.php:37
|
1511 |
Â
msgid "Expire After"
|
1512 |
-
msgstr "
|
1513 |
Â
|
1514 |
-
#:
|
1515 |
-
#: simple-membership/views/admin_edit_level.php:29
|
1516 |
Â
msgid "Days (Access expires after given number of days)"
|
1517 |
Â
msgstr "DÃas (el acceso caduca después del número establecido de dÃas)"
|
1518 |
Â
|
1519 |
-
#:
|
1520 |
Â
msgid "Weeks (Access expires after given number of weeks"
|
1521 |
Â
msgstr "Semanas (el acceso caduca después del número establecido de semanas"
|
1522 |
Â
|
1523 |
-
#:
|
1524 |
-
#: simple-membership/views/admin_edit_level.php:35
|
1525 |
Â
msgid "Months (Access expires after given number of months)"
|
1526 |
-
msgstr "Meses (
|
1527 |
Â
|
1528 |
-
#:
|
1529 |
-
#: simple-membership/views/admin_edit_level.php:38
|
1530 |
Â
msgid "Years (Access expires after given number of years)"
|
1531 |
Â
msgstr "Años (el acceso caduca después del número establecido de años)"
|
1532 |
Â
|
1533 |
-
#:
|
1534 |
-
#: simple-membership/views/admin_edit_level.php:40
|
1535 |
Â
msgid "Fixed Date Expiry"
|
1536 |
-
msgstr "Fecha de caducidad"
|
1537 |
Â
|
1538 |
-
#:
|
1539 |
-
#: simple-membership/views/admin_edit_level.php:41
|
1540 |
Â
msgid "(Access expires on a fixed date)"
|
1541 |
Â
msgstr "(El acceso caduca en una fecha establecida)"
|
1542 |
Â
|
1543 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1544 |
Â
msgid "Add New Membership Level "
|
1545 |
Â
msgstr "Añadir nuevo nivel de membresÃa "
|
1546 |
Â
|
1547 |
-
#:
|
1548 |
Â
msgid "Simple WP Membership::Add-ons"
|
1549 |
Â
msgstr "Simple WP Membership::Extensiones"
|
1550 |
Â
|
1551 |
-
#:
|
1552 |
Â
msgid ""
|
1553 |
Â
"First of all, globally protect the category on your site by selecting "
|
1554 |
Â
"\"General Protection\" from the drop-down box below and then select the "
|
1555 |
Â
"categories that should be protected from non-logged in users."
|
1556 |
Â
msgstr ""
|
1557 |
-
"
|
1558 |
-
"general\" en el siguiente desplegable y
|
1559 |
-
"proteger de los usuarios no
|
1560 |
Â
|
1561 |
-
#:
|
1562 |
Â
msgid ""
|
1563 |
Â
"Next, select an existing membership level from the drop-down box below and "
|
1564 |
Â
"then select the categories you want to grant access to (for that particular "
|
1565 |
Â
"membership level)."
|
1566 |
Â
msgstr ""
|
1567 |
-
"A continuación,
|
1568 |
-
"desplegable de abajo y, a continuación,
|
1569 |
-
"
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1570 |
Â
|
1571 |
-
#:
|
1572 |
Â
msgid "Membership Level:"
|
1573 |
Â
msgstr "Nivel de membresÃa:"
|
1574 |
Â
|
1575 |
-
#:
|
1576 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1577 |
Â
msgid "Update"
|
1578 |
Â
msgstr "Actualizar"
|
1579 |
Â
|
1580 |
-
#:
|
1581 |
Â
msgid "Edit Member"
|
1582 |
Â
msgstr "Editar usuario"
|
1583 |
Â
|
1584 |
-
#:
|
1585 |
Â
msgid "Edit existing member details."
|
1586 |
Â
msgstr "Editar detalles de los miembros existentes."
|
1587 |
Â
|
1588 |
-
#:
|
1589 |
Â
msgid " You are currenty editing member with member ID: "
|
1590 |
-
msgstr " Actualmente
|
1591 |
Â
|
1592 |
-
#:
|
1593 |
Â
msgid "(twice, leave empty to retain old password)"
|
1594 |
-
msgstr "(dos veces,
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1595 |
Â
|
1596 |
-
#:
|
1597 |
Â
msgid "Notify User"
|
1598 |
Â
msgstr "Notificar al usuario"
|
1599 |
Â
|
1600 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1601 |
Â
msgid "Subscriber ID/Reference"
|
1602 |
-
msgstr "ID/
|
1603 |
Â
|
1604 |
-
#:
|
1605 |
Â
msgid "Last Accessed Date"
|
1606 |
-
msgstr "
|
1607 |
Â
|
1608 |
-
#:
|
1609 |
-
#: simple-membership/views/admin_edit.php:76
|
1610 |
Â
msgid "This value gets updated when this member logs into your site."
|
1611 |
-
msgstr "Este valor se actualiza cuando este miembro
|
1612 |
Â
|
1613 |
-
#:
|
1614 |
Â
msgid "Last Accessed From IP"
|
1615 |
-
msgstr "Último acceso desde
|
1616 |
Â
|
1617 |
-
#:
|
1618 |
-
msgid "
|
1619 |
-
msgstr "
|
1620 |
Â
|
1621 |
-
#:
|
1622 |
Â
msgid "Delete User Profile"
|
1623 |
Â
msgstr "Eliminar perfil del usuario"
|
1624 |
Â
|
1625 |
-
#:
|
1626 |
Â
msgid "Edit membership level"
|
1627 |
Â
msgstr "Editar nivel de membresÃa"
|
1628 |
Â
|
1629 |
-
#:
|
1630 |
Â
msgid ""
|
1631 |
Â
"You can edit details of a selected membership level from this interface. "
|
1632 |
Â
msgstr ""
|
1633 |
-
"
|
1634 |
Â
"interfaz. "
|
1635 |
Â
|
1636 |
-
#:
|
1637 |
Â
msgid "You are currently editing: "
|
1638 |
-
msgstr "
|
1639 |
Â
|
1640 |
-
#:
|
1641 |
Â
msgid "No Expiry (Access for this level will not expire until cancelled)"
|
1642 |
Â
msgstr "Sin caducidad (el acceso a este nivel no expirará hasta que se anule)"
|
1643 |
Â
|
1644 |
-
#:
|
1645 |
Â
msgid "Weeks (Access expires after given number of weeks)"
|
1646 |
-
msgstr "Semanas (el acceso
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1647 |
Â
|
1648 |
-
#:
|
1649 |
-
msgid "
|
1650 |
-
msgstr "
|
1651 |
Â
|
1652 |
-
#:
|
1653 |
Â
msgid "Example Content Protection Settings"
|
1654 |
-
msgstr "Ejemplo de
|
1655 |
Â
|
1656 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1657 |
Â
msgid "Gender"
|
1658 |
-
msgstr "
|
1659 |
Â
|
1660 |
-
#:
|
1661 |
-
#:
|
1662 |
Â
msgid "Phone"
|
1663 |
Â
msgstr "Teléfono"
|
1664 |
Â
|
1665 |
-
#:
|
1666 |
-
#: simple-membership/views/edit.php:41
|
1667 |
Â
msgid "Street"
|
1668 |
Â
msgstr "Calle"
|
1669 |
Â
|
1670 |
-
#:
|
1671 |
-
#: simple-membership/views/edit.php:45
|
1672 |
Â
msgid "City"
|
1673 |
Â
msgstr "Ciudad"
|
1674 |
Â
|
1675 |
-
#:
|
1676 |
-
#: simple-membership/views/edit.php:49
|
1677 |
Â
msgid "State"
|
1678 |
Â
msgstr "Región"
|
1679 |
Â
|
1680 |
-
#:
|
1681 |
-
#: simple-membership/views/edit.php:53
|
1682 |
Â
msgid "Zipcode"
|
1683 |
Â
msgstr "Código postal"
|
1684 |
Â
|
1685 |
-
#:
|
1686 |
-
#:
|
1687 |
Â
msgid "Country"
|
1688 |
Â
msgstr "PaÃs"
|
1689 |
Â
|
1690 |
-
#:
|
Â
|
|
1691 |
Â
msgid "Company"
|
1692 |
-
msgstr "Empresa
|
1693 |
Â
|
1694 |
-
#:
|
Â
|
|
1695 |
Â
msgid "Member Since"
|
1696 |
Â
msgstr "Miembro desde"
|
1697 |
Â
|
1698 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1699 |
Â
msgid "Generate a Registration Completion link"
|
1700 |
-
msgstr "
|
1701 |
Â
|
1702 |
-
#:
|
1703 |
Â
msgid ""
|
1704 |
Â
"You can manually generate a registration completion link here and give it to "
|
1705 |
Â
"your customer if they have missed the email that was automatically sent out "
|
@@ -1709,365 +2427,601 @@ msgstr ""
|
|
1709 |
Â
"enviárselo al usuario si ha perdido el correo electrónico que se les envÃa "
|
1710 |
Â
"después del pago."
|
1711 |
Â
|
1712 |
-
#:
|
1713 |
Â
msgid "Generate Registration Completion Link"
|
1714 |
-
msgstr "
|
1715 |
Â
|
1716 |
-
#:
|
1717 |
Â
msgid "For a Particular Member ID"
|
1718 |
-
msgstr "Para una
|
1719 |
Â
|
1720 |
-
#:
|
1721 |
Â
msgid "OR"
|
1722 |
Â
msgstr "O"
|
1723 |
Â
|
1724 |
-
#:
|
1725 |
Â
msgid "For All Incomplete Registrations"
|
1726 |
-
msgstr "
|
1727 |
Â
|
1728 |
-
#:
|
1729 |
Â
msgid "Send Registration Reminder Email Too"
|
1730 |
-
msgstr "
|
1731 |
Â
|
1732 |
-
#:
|
1733 |
Â
msgid "Submit"
|
1734 |
Â
msgstr "Enviar"
|
1735 |
Â
|
1736 |
-
#:
|
1737 |
Â
msgid ""
|
1738 |
Â
"Link(s) generated successfully. The following link(s) can be used to "
|
1739 |
Â
"complete the registration."
|
1740 |
Â
msgstr ""
|
1741 |
-
"Enlace
|
1742 |
Â
"utilizados para completar el registro."
|
1743 |
Â
|
1744 |
-
#:
|
1745 |
Â
msgid "Registration completion links will appear below"
|
1746 |
-
msgstr "Los enlaces
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1747 |
Â
|
1748 |
-
#:
|
1749 |
Â
msgid "Leave empty to keep the current password"
|
1750 |
Â
msgstr "Dejar vacÃo para guardar la contraseña actual"
|
1751 |
Â
|
1752 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1753 |
Â
msgid "Reset Password"
|
1754 |
-
msgstr "Restablecer contraseña"
|
1755 |
Â
|
1756 |
-
#:
|
1757 |
Â
msgid "Logged in as"
|
1758 |
Â
msgstr "Conectado como"
|
1759 |
Â
|
1760 |
-
#:
|
1761 |
Â
msgid "Membership"
|
1762 |
Â
msgstr "MembresÃa"
|
1763 |
Â
|
1764 |
-
#:
|
1765 |
Â
msgid "Account Expiry"
|
1766 |
-
msgstr "
|
1767 |
Â
|
1768 |
-
#:
|
1769 |
-
msgid "
|
1770 |
-
msgstr "
|
1771 |
Â
|
1772 |
-
#:
|
1773 |
Â
msgid "Username or Email"
|
1774 |
Â
msgstr "Nombre de usuario o correo electrónico"
|
1775 |
Â
|
1776 |
-
#:
|
1777 |
Â
msgid "Remember Me"
|
1778 |
Â
msgstr "Recuérdame"
|
1779 |
Â
|
1780 |
-
#:
|
1781 |
-
msgid "Forgot Password"
|
1782 |
-
msgstr "
|
1783 |
Â
|
1784 |
-
#:
|
1785 |
Â
msgid "All the payments/transactions of your members are recorded here."
|
1786 |
Â
msgstr "Todos los pagos/transacciones de sus miembros se registran aquÃ."
|
1787 |
Â
|
1788 |
-
#:
|
1789 |
Â
msgid "Search for a transaction by using email or name"
|
1790 |
-
msgstr "Buscar una transacción
|
1791 |
Â
|
1792 |
-
#:
|
1793 |
Â
msgid ""
|
1794 |
Â
"You can create new payment button for your memberships using this interface."
|
1795 |
Â
msgstr ""
|
1796 |
-
"Puedes crear un nuevo botón de pago para
|
1797 |
Â
"interfaz."
|
1798 |
Â
|
1799 |
-
#:
|
1800 |
Â
msgid "Select Payment Button Type"
|
1801 |
Â
msgstr "Selecciona el tipo de botón de pago"
|
1802 |
Â
|
1803 |
-
#:
|
1804 |
Â
msgid "PayPal Buy Now"
|
1805 |
-
msgstr "PayPal
|
1806 |
Â
|
1807 |
-
#:
|
1808 |
Â
msgid "PayPal Subscription"
|
1809 |
Â
msgstr "Suscripción de PayPal"
|
1810 |
Â
|
1811 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1812 |
Â
msgid "Stripe Buy Now"
|
1813 |
-
msgstr "Stripe
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1814 |
Â
|
1815 |
-
#:
|
1816 |
Â
msgid "Braintree Buy Now"
|
1817 |
Â
msgstr "Braintree comprar ahora"
|
1818 |
Â
|
1819 |
-
#:
|
1820 |
Â
msgid "Next"
|
1821 |
Â
msgstr "Siguiente"
|
1822 |
Â
|
1823 |
-
#:
|
1824 |
Â
msgid "You can edit a payment button using this interface."
|
1825 |
Â
msgstr "Puede editar un botón de pago utilizando esta interfaz."
|
1826 |
Â
|
1827 |
-
#:
|
1828 |
Â
msgid ""
|
1829 |
Â
"All the membership buttons that you created in the plugin are displayed here."
|
1830 |
Â
msgstr ""
|
1831 |
Â
"Todos los botones de miembros que ha creado en el plugin se muestran aquÃ."
|
1832 |
Â
|
1833 |
-
#:
|
1834 |
Â
msgid "Error! The membership level ID ("
|
1835 |
Â
msgstr "¡Error! El ID de nivel de miembro ("
|
1836 |
Â
|
1837 |
-
#:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1838 |
Â
msgid "PayPal Integration Settings"
|
1839 |
-
msgstr "Ajustes de integración con
|
1840 |
Â
|
1841 |
-
#:
|
1842 |
Â
msgid "Generate the \"Advanced Variables\" Code for your PayPal button"
|
1843 |
-
msgstr "
|
1844 |
Â
|
1845 |
-
#:
|
1846 |
Â
msgid "Enter the Membership Level ID"
|
1847 |
Â
msgstr "Introduce el ID de nivel de membresÃa"
|
1848 |
Â
|
1849 |
-
#:
|
1850 |
Â
msgid "Generate Code"
|
1851 |
Â
msgstr "Generar código"
|
1852 |
Â
|
1853 |
-
#:
|
1854 |
Â
msgid "Braintree Buy Now Button Configuration"
|
1855 |
Â
msgstr "Configuración del botón de Braintree Compre Ahora"
|
1856 |
Â
|
1857 |
-
#:
|
1858 |
-
#:
|
1859 |
-
#:
|
1860 |
-
#:
|
Â
|
|
Â
|
|
1861 |
Â
msgid "Button ID"
|
1862 |
Â
msgstr "ID de botón"
|
1863 |
Â
|
1864 |
-
#:
|
1865 |
-
#:
|
1866 |
-
#:
|
1867 |
-
#:
|
1868 |
-
#:
|
1869 |
-
#:
|
1870 |
-
#:
|
Â
|
|
Â
|
|
1871 |
Â
msgid "Button Title"
|
1872 |
Â
msgstr "Titulo del botón"
|
1873 |
Â
|
1874 |
-
#:
|
1875 |
-
#:
|
1876 |
-
#:
|
1877 |
-
#:
|
1878 |
-
#:
|
Â
|
|
1879 |
Â
msgid "Payment Amount"
|
1880 |
-
msgstr "
|
1881 |
Â
|
1882 |
-
#:
|
1883 |
Â
msgid ""
|
1884 |
Â
"Braintree API key and account details. You can get this from your Braintree "
|
1885 |
Â
"account."
|
1886 |
Â
msgstr ""
|
1887 |
-
"Clave API de Braintree y detalles de la cuenta.
|
1888 |
-
"información de
|
1889 |
Â
|
1890 |
-
#:
|
1891 |
Â
msgid "Merchant ID"
|
1892 |
-
msgstr "
|
1893 |
Â
|
1894 |
-
#:
|
1895 |
Â
msgid "Public Key"
|
1896 |
-
msgstr "
|
1897 |
Â
|
1898 |
-
#:
|
1899 |
Â
msgid "Private Key"
|
1900 |
-
msgstr "
|
1901 |
Â
|
1902 |
-
#:
|
1903 |
Â
msgid "Merchant Account ID"
|
1904 |
-
msgstr "ID de cuenta de comerciante"
|
1905 |
Â
|
1906 |
-
#:
|
1907 |
-
#:
|
1908 |
-
#:
|
1909 |
Â
msgid "The following details are optional."
|
1910 |
Â
msgstr "Los siguientes detalles son opcionales."
|
1911 |
Â
|
1912 |
-
#:
|
1913 |
-
#:
|
1914 |
-
#:
|
1915 |
-
#:
|
1916 |
-
#:
|
1917 |
-
#:
|
1918 |
-
#:
|
Â
|
|
Â
|
|
1919 |
Â
msgid "Return URL"
|
1920 |
Â
msgstr "URL de retorno"
|
1921 |
Â
|
1922 |
-
#:
|
1923 |
-
#:
|
1924 |
-
#:
|
1925 |
-
#:
|
1926 |
-
#:
|
1927 |
-
#:
|
1928 |
-
#:
|
Â
|
|
Â
|
|
1929 |
Â
msgid "Save Payment Data"
|
1930 |
-
msgstr "
|
1931 |
Â
|
1932 |
-
#:
|
1933 |
-
#:
|
1934 |
Â
msgid "PayPal Buy Now Button Configuration"
|
1935 |
-
msgstr "Configuración del botón de PayPal
|
1936 |
-
|
1937 |
-
#:
|
1938 |
-
#:
|
1939 |
-
#:
|
1940 |
-
#:
|
1941 |
-
#:
|
1942 |
-
#:
|
Â
|
|
1943 |
Â
msgid "Payment Currency"
|
1944 |
Â
msgstr "Moneda de pago"
|
1945 |
Â
|
1946 |
-
#:
|
1947 |
-
#:
|
1948 |
-
#:
|
1949 |
-
#:
|
1950 |
Â
msgid "PayPal Email"
|
1951 |
Â
msgstr "Correo electrónico de PayPal"
|
1952 |
Â
|
1953 |
-
#:
|
1954 |
-
#:
|
1955 |
-
#:
|
1956 |
-
#:
|
Â
|
|
1957 |
Â
msgid "Button Image URL"
|
1958 |
-
msgstr "URL de la imagen del
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1959 |
Â
|
1960 |
-
#:
|
1961 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1962 |
Â
msgid "PayPal Subscription Button Configuration"
|
1963 |
-
msgstr "Configuración del botón de
|
1964 |
Â
|
1965 |
-
#:
|
1966 |
-
#:
|
1967 |
Â
msgid "Billing Amount Each Cycle"
|
1968 |
Â
msgstr "Importe facturado cada ciclo"
|
1969 |
Â
|
1970 |
-
#:
|
1971 |
-
#:
|
1972 |
Â
msgid "Billing Cycle"
|
1973 |
Â
msgstr "Ciclo de facturación"
|
1974 |
Â
|
1975 |
-
#:
|
1976 |
-
#:
|
1977 |
Â
msgid "Billing Cycle Count"
|
1978 |
Â
msgstr "Cuenta del ciclo de facturación"
|
1979 |
Â
|
1980 |
-
#:
|
1981 |
-
#:
|
1982 |
Â
msgid "Re-attempt on Failure"
|
1983 |
Â
msgstr "Reintentar en caso de fallo"
|
1984 |
Â
|
1985 |
-
#:
|
1986 |
-
#:
|
1987 |
Â
msgid ""
|
1988 |
Â
"Trial Billing Details (Leave empty if you are not offering a trial period)"
|
1989 |
Â
msgstr ""
|
1990 |
-
"Detalles de facturación de prueba (
|
1991 |
Â
"perÃodo de prueba)"
|
1992 |
Â
|
1993 |
-
#:
|
1994 |
-
#:
|
1995 |
Â
msgid "Trial Billing Amount"
|
1996 |
Â
msgstr "Importe del periodo de prueba"
|
1997 |
Â
|
1998 |
-
#:
|
1999 |
-
#:
|
2000 |
Â
msgid "Trial Billing Period"
|
2001 |
Â
msgstr "PerÃodo de facturación de prueba"
|
2002 |
Â
|
2003 |
-
#:
|
2004 |
-
#:
|
Â
|
|
2005 |
Â
msgid "Optional Details"
|
2006 |
Â
msgstr "Detalles opcionales"
|
2007 |
Â
|
2008 |
-
#:
|
2009 |
-
#:
|
2010 |
Â
msgid "Stripe Buy Now Button Configuration"
|
2011 |
-
msgstr "
|
2012 |
Â
|
2013 |
-
#:
|
2014 |
-
#:
|
2015 |
Â
msgid "Stripe API keys. You can get this from your Stripe account."
|
2016 |
-
msgstr "
|
2017 |
-
|
2018 |
-
#: simple-membership/views/payments/payment-gateway/admin_stripe_buy_now_button.php:108
|
2019 |
-
#: simple-membership/views/payments/payment-gateway/admin_stripe_buy_now_button.php:318
|
2020 |
-
msgid "Test Secret Key"
|
2021 |
-
msgstr "Clave secreta de prueba"
|
2022 |
Â
|
2023 |
-
#:
|
2024 |
-
#:
|
Â
|
|
2025 |
Â
msgid "Test Publishable Key"
|
2026 |
-
msgstr "
|
2027 |
Â
|
2028 |
-
#:
|
2029 |
-
#:
|
2030 |
-
|
2031 |
-
|
Â
|
|
2032 |
Â
|
2033 |
-
#:
|
2034 |
-
#:
|
Â
|
|
2035 |
Â
msgid "Live Publishable Key"
|
2036 |
Â
msgstr "Clave publicable en vivo"
|
2037 |
Â
|
2038 |
-
#:
|
2039 |
-
#:
|
2040 |
-
#:
|
2041 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
2042 |
Â
msgid "Buy Now"
|
2043 |
Â
msgstr "Compra ahora"
|
2044 |
Â
|
2045 |
-
#:
|
2046 |
-
#:
|
2047 |
Â
msgid "Subscribe Now"
|
2048 |
Â
msgstr "SuscrÃbete ahora"
|
2049 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
2050 |
Â
#: Translation strings from addons === Form builder addon
|
2051 |
-
msgid "Type password
|
2052 |
-
msgstr "
|
2053 |
Â
|
2054 |
-
msgid "Retype password
|
2055 |
-
msgstr "
|
2056 |
Â
|
2057 |
Â
msgid "Registration is complete. You can now log into the site."
|
2058 |
-
msgstr "El registro está completo. Ahora
|
2059 |
Â
|
2060 |
Â
msgid " Field has invalid character"
|
2061 |
Â
msgstr " El campo tiene un carácter no válido"
|
2062 |
Â
|
2063 |
Â
msgid " Password does not match"
|
2064 |
-
msgstr "
|
2065 |
Â
|
2066 |
Â
msgid "Already taken."
|
2067 |
-
msgstr "Ya
|
2068 |
Â
|
2069 |
Â
msgid "Street Address"
|
2070 |
-
msgstr "Dirección"
|
2071 |
Â
|
2072 |
Â
msgid "Apt, Suite, Bldg. (optional)"
|
2073 |
Â
msgstr "Apt, Suite, Edificio. (Opcional)"
|
@@ -2082,189 +3036,91 @@ msgid ""
|
|
2082 |
Â
"Check this box to delete the image. The image will be deleted when you save "
|
2083 |
Â
"the profile."
|
2084 |
Â
msgstr ""
|
2085 |
-
"
|
2086 |
-
"
|
2087 |
-
|
2088 |
-
#: === Partial protection addon strings
|
2089 |
-
msgid "You do not have permission to view this content."
|
2090 |
-
msgstr "No tienes permiso para ver este contenido."
|
2091 |
-
|
2092 |
-
msgid "Your membership level does not have permission to view this content."
|
2093 |
-
msgstr "Su nivel de afiliación no tiene permiso para ver este contenido."
|
2094 |
-
|
2095 |
-
msgid "This content is for members only."
|
2096 |
-
msgstr "Este contenido es solo para miembros."
|
2097 |
Â
|
2098 |
-
|
2099 |
-
|
2100 |
Â
|
2101 |
-
|
2102 |
-
|
2103 |
-
|
2104 |
-
|
2105 |
-
#~ "A flexible, well-supported, and easy-to-use WordPress membership plugin "
|
2106 |
-
#~ "for offering free and premium content from your WordPress site."
|
2107 |
-
#~ msgstr ""
|
2108 |
-
#~ "Un plugin de membresÃa WordPress flexible, bien soportado y fácil de usar "
|
2109 |
-
#~ "para ofrecer contenido gratuito y de pago desde su sitio de WordPress."
|
2110 |
-
|
2111 |
-
#~ msgid "https://simple-membership-plugin.com/"
|
2112 |
-
#~ msgstr "https://simple-membership-plugin.com/"
|
2113 |
-
|
2114 |
-
#~ msgid "Simple WordPress Membership"
|
2115 |
-
#~ msgstr "WordPress Simple Membership"
|
2116 |
-
|
2117 |
-
#~ msgid "Send Registration Reminder Email too"
|
2118 |
-
#~ msgstr "Enviar mensaje de recordatorio de correo electrónico también"
|
2119 |
-
|
2120 |
-
#~ msgid "Registration Completion Links Will Appear Below:"
|
2121 |
-
#~ msgstr "Los enlaces para completar el registro aparecen a continuación:"
|
2122 |
-
|
2123 |
-
#~ msgid "For All Pending Registrations"
|
2124 |
-
#~ msgstr "Para todos los registros pendientes"
|
2125 |
-
|
2126 |
-
#~ msgid "Membership level"
|
2127 |
-
#~ msgstr "Nivel de membresÃa"
|
2128 |
-
|
2129 |
-
#~ msgid "search"
|
2130 |
-
#~ msgstr "buscar"
|
2131 |
-
|
2132 |
-
#~ msgid "Edit membership level."
|
2133 |
-
#~ msgstr "Editar nivel de membresÃa."
|
2134 |
-
|
2135 |
-
#~ msgid "Simple WP Membership::Categories"
|
2136 |
-
#~ msgstr "Simple WP Membership::CategorÃas"
|
2137 |
-
|
2138 |
-
#~ msgid "User name"
|
2139 |
-
#~ msgstr "Nombre de usuario"
|
2140 |
-
|
2141 |
-
#~ msgid "Select All"
|
2142 |
-
#~ msgstr "Seleccionar Todo"
|
2143 |
-
|
2144 |
-
#~ msgid "Go to the last page"
|
2145 |
-
#~ msgstr "Ir a la última página"
|
2146 |
-
|
2147 |
-
#~ msgid "Go to the next page"
|
2148 |
-
#~ msgstr "Ir a la página siguiente"
|
2149 |
-
|
2150 |
-
#~ msgctxt "paging"
|
2151 |
-
#~ msgid "%1$s of %2$s"
|
2152 |
-
#~ msgstr "%1$s de %2$s"
|
2153 |
-
|
2154 |
-
#~ msgid "Current page"
|
2155 |
-
#~ msgstr "Página actual"
|
2156 |
-
|
2157 |
-
#~ msgid "Select Page"
|
2158 |
-
#~ msgstr "Seleccionar Página"
|
2159 |
-
|
2160 |
-
#~ msgid "Go to the previous page"
|
2161 |
-
#~ msgstr "Ir a la página anterior"
|
2162 |
-
|
2163 |
-
#~ msgid "Go to the first page"
|
2164 |
-
#~ msgstr "Ir a la primera página"
|
2165 |
-
|
2166 |
-
#~ msgid "1 item"
|
2167 |
-
#~ msgid_plural "%s items"
|
2168 |
-
#~ msgstr[0] "1 elemento"
|
2169 |
-
#~ msgstr[1] "%s elementos"
|
2170 |
-
|
2171 |
-
#~ msgid "%s pending"
|
2172 |
-
#~ msgstr "%s pendientes"
|
2173 |
Â
|
2174 |
-
|
2175 |
-
|
2176 |
Â
|
2177 |
-
|
2178 |
-
|
2179 |
Â
|
2180 |
-
|
2181 |
-
|
2182 |
Â
|
2183 |
-
|
2184 |
-
|
2185 |
Â
|
2186 |
-
|
2187 |
-
|
Â
|
|
2188 |
Â
|
2189 |
-
|
2190 |
-
|
2191 |
Â
|
2192 |
-
|
2193 |
-
|
2194 |
Â
|
2195 |
-
|
2196 |
-
|
2197 |
Â
|
2198 |
-
|
2199 |
-
|
Â
|
|
2200 |
Â
|
2201 |
-
|
2202 |
-
|
Â
|
|
2203 |
Â
|
2204 |
-
|
2205 |
-
|
2206 |
-
|
2207 |
-
#~ "your site."
|
2208 |
-
#~ msgstr ""
|
2209 |
-
#~ "WordPress muestra una barra de herramientas de administración para los "
|
2210 |
-
#~ "usuarios registrados en el sitio. Marque esta casilla si desea ocultar la "
|
2211 |
-
#~ "barra de herramientas de administración en el frontend de su sitio."
|
2212 |
Â
|
2213 |
-
|
2214 |
-
|
Â
|
|
2215 |
Â
|
2216 |
-
|
2217 |
-
|
Â
|
|
2218 |
Â
|
2219 |
-
|
2220 |
-
|
Â
|
|
2221 |
Â
|
2222 |
-
|
2223 |
-
|
2224 |
-
#~ "No se ha encontrado ningún usuario con esa dirección de correo "
|
2225 |
-
#~ "electrónico."
|
2226 |
Â
|
2227 |
-
|
2228 |
-
|
2229 |
Â
|
2230 |
-
|
2231 |
-
|
2232 |
Â
|
2233 |
-
#~ msgid "
|
2234 |
-
#~ msgstr "
|
2235 |
Â
|
2236 |
-
#~ msgid ""
|
2237 |
-
#~ "
|
2238 |
-
#~ "match."
|
2239 |
-
#~ msgstr ""
|
2240 |
-
#~ "Existe una cuenta con el correo electrónico proporcionado, pero el nombre "
|
2241 |
-
#~ "del usuario no coincide."
|
2242 |
Â
|
2243 |
Â
#~ msgid ""
|
2244 |
-
#~ "
|
2245 |
-
#~ "
|
2246 |
Â
#~ msgstr ""
|
2247 |
-
#~ "
|
2248 |
-
#~ "
|
2249 |
-
|
2250 |
-
#~ msgid "Updated! "
|
2251 |
-
#~ msgstr "¡Actualizado!"
|
2252 |
-
|
2253 |
-
#~ msgid "Name"
|
2254 |
-
#~ msgstr "Nombre"
|
2255 |
Â
|
2256 |
-
#~ msgid "
|
2257 |
-
#~ msgstr "
|
2258 |
-
|
2259 |
-
#~ msgid "Invalid User Name"
|
2260 |
-
#~ msgstr "Nombre de usuario incorrecto"
|
2261 |
-
|
2262 |
-
#~ msgid "Registration Successful."
|
2263 |
-
#~ msgstr "Registrado con éxito"
|
2264 |
Â
|
2265 |
-
#~ msgid ""
|
2266 |
-
#~ "
|
2267 |
-
#~ "this content."
|
2268 |
-
#~ msgstr ""
|
2269 |
-
#~ "Tu cuenta ha caducado. Por favor, renueva tu cuenta para obtener acceso a "
|
2270 |
-
#~ "éste contenido."
|
3 |
Â
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 |
Â
"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."
|
19 |
Â
msgstr ""
|
20 |
+
"El administrador de este sitio no permite a los usuarios acceso al "
|
21 |
Â
"escritorio de wp."
|
22 |
Â
|
23 |
+
#: classes/class.simple-wp-membership.php:181
|
24 |
Â
msgid "Go back to the home page by "
|
25 |
+
msgstr "Volver a la página de inicio por "
|
26 |
Â
|
27 |
+
#: classes/class.simple-wp-membership.php:181
|
28 |
Â
msgid "clicking here"
|
29 |
Â
msgstr "haciendo clic aquÃ"
|
30 |
Â
|
31 |
+
#: classes/class.simple-wp-membership.php:242
|
32 |
+
msgid ""
|
33 |
+
"Error! This site has the force WP user login feature enabled in the "
|
34 |
+
"settings. We could not find a WP user record for the given username: "
|
35 |
+
msgstr ""
|
36 |
+
"¡Error! Este sitio tiene activado en los ajustes la caracterÃstica de forzar "
|
37 |
+
"el acceso al usuario de WP. No se ha podido encontrar un registro de usuario "
|
38 |
+
"de WP para el nombre de usuario dado: "
|
39 |
+
|
40 |
+
#: classes/class.simple-wp-membership.php:243
|
41 |
+
msgid ""
|
42 |
+
"This error is triggered when a member account doesn't have a corresponding "
|
43 |
+
"WP user account. So the plugin fails to log the user into the WP User system."
|
44 |
+
msgstr ""
|
45 |
+
"Este error se desencadena cuando una cuenta de miembro no tiene una cuenta "
|
46 |
+
"de usuario de WP correspondiente. Por lo tanto, el plugin no puede registrar "
|
47 |
+
"al usuario en el sistema de usuario de WP."
|
48 |
+
|
49 |
+
#: classes/class.simple-wp-membership.php:244
|
50 |
+
msgid ""
|
51 |
+
"Contact the site admin and request them to check your username in the WP "
|
52 |
+
"Users menu to see what happened with the WP user entry of your account."
|
53 |
+
msgstr ""
|
54 |
+
"Ponte en contacto con el administrador del sitio y solicita que verifique tu "
|
55 |
+
"nombre de usuario en el menú Usuarios de WP para ver qué sucedió con la "
|
56 |
+
"entrada de usuario de WP de tu cuenta."
|
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 |
+
"El administrador del sitio puede desactivar la caracterÃstica de forzar la "
|
64 |
+
"sincronización del usuario de WP en los ajustes para desactivar esta "
|
65 |
+
"caracterÃstica y este error desaparecerá."
|
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 "Puedes usar el botón de atrás en tu navegador para volver al sitio."
|
70 |
+
|
71 |
+
#: classes/class.simple-wp-membership.php:407
|
72 |
Â
msgid "You are not logged in."
|
73 |
Â
msgstr "No estás conectado."
|
74 |
Â
|
75 |
+
#: classes/class.simple-wp-membership.php:458
|
76 |
Â
msgid ""
|
77 |
Â
"You have the sandbox payment mode enabled in plugin settings. Make sure to "
|
78 |
Â
"turn off the sandbox mode when you want to do live transactions."
|
79 |
Â
msgstr ""
|
80 |
+
"Tienes activado el modo de pago de sandbox en los ajustes del plugin. "
|
81 |
+
"Asegúrate de desactivar el modo de sandbox cuando deseas realizar "
|
82 |
Â
"transacciones en vivo."
|
83 |
Â
|
84 |
+
#: classes/class.simple-wp-membership.php:473
|
85 |
Â
msgid "Simple WP Membership Protection"
|
86 |
Â
msgstr "Protección de Simple WP Membership"
|
87 |
Â
|
88 |
+
#: classes/class.simple-wp-membership.php:485
|
89 |
Â
msgid "Simple Membership Protection options"
|
90 |
Â
msgstr "Opciones de protección de Simple Membership"
|
91 |
Â
|
92 |
+
#: classes/class.simple-wp-membership.php:503
|
93 |
Â
msgid "Do you want to protect this content?"
|
94 |
Â
msgstr "¿Quieres proteger este contenido?"
|
95 |
Â
|
96 |
+
#: classes/class.simple-wp-membership.php:504
|
97 |
+
msgid "No, Do not protect this content."
|
98 |
+
msgstr "No, no protejas este contenido."
|
99 |
+
|
100 |
+
#: classes/class.simple-wp-membership.php:505
|
101 |
+
msgid "Yes, Protect this content."
|
102 |
+
msgstr "Si, protege este contenido."
|
103 |
+
|
104 |
+
#: classes/class.simple-wp-membership.php:508
|
105 |
Â
msgid "Select the membership level that can access this content:"
|
106 |
+
msgstr "Selecciona el nivel de membresÃa que puede acceder a este contenido:"
|
Â
|
|
107 |
Â
|
108 |
+
#: classes/class.simple-wp-membership.php:646
|
109 |
+
#: classes/class.simple-wp-membership.php:650
|
110 |
Â
msgid "Validating, please wait"
|
111 |
Â
msgstr "Validando, por favor espere"
|
112 |
Â
|
113 |
+
#: classes/class.simple-wp-membership.php:653
|
114 |
Â
msgid "Invalid email address"
|
115 |
+
msgstr "Dirección de correo electrónico no válido"
|
116 |
Â
|
117 |
+
#: classes/class.simple-wp-membership.php:656
|
118 |
Â
msgid "This field is required"
|
119 |
+
msgstr "Este campo es requerido"
|
120 |
+
|
121 |
+
msgid "Password must contain at least:"
|
122 |
+
msgstr "La contraseña debe contener al menos:"
|
123 |
+
|
124 |
+
msgid "- a digit"
|
125 |
+
msgstr "- un dÃgito"
|
126 |
Â
|
127 |
+
msgid "- an uppercase letter"
|
128 |
+
msgstr "- una letra mayúscula"
|
129 |
+
|
130 |
+
msgid "- a lowercase letter"
|
131 |
+
msgstr "- una letra minúscula"
|
132 |
+
|
133 |
+
#: classes/class.simple-wp-membership.php:659 classes/class.swpm-auth.php:296
|
134 |
Â
msgid "Invalid Username"
|
135 |
+
msgstr "Nombre de usuario no valido"
|
136 |
+
|
137 |
+
#: classes/class.simple-wp-membership.php:659
|
138 |
+
msgid "Usernames can only contain: letters, numbers and .-_*@"
|
139 |
+
msgstr "Los nombres de usuarios solo pueden contener: letras, números y .-_*@"
|
140 |
Â
|
141 |
+
#: classes/class.simple-wp-membership.php:662
|
142 |
Â
msgid "Minimum "
|
143 |
+
msgstr "MÃnimo "
|
144 |
Â
|
145 |
+
#: classes/class.simple-wp-membership.php:663
|
146 |
Â
msgid " characters required"
|
147 |
+
msgstr " caracteres requeridos"
|
148 |
Â
|
149 |
+
#: classes/class.simple-wp-membership.php:666
|
150 |
Â
msgid "Apostrophe character is not allowed"
|
151 |
Â
msgstr "El carácter de apóstrofo no está permitido"
|
152 |
Â
|
153 |
+
#: classes/class.simple-wp-membership.php:697
|
154 |
Â
msgid "WP Membership"
|
155 |
Â
msgstr "WP Membership"
|
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 "Miembros"
|
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 "Niveles de membresÃa"
|
169 |
Â
|
170 |
+
#: classes/class.simple-wp-membership.php:700
|
171 |
Â
msgid "Settings"
|
172 |
Â
msgstr "Ajustes"
|
173 |
Â
|
174 |
+
#: classes/class.simple-wp-membership.php:701
|
175 |
Â
msgid "Payments"
|
176 |
Â
msgstr "Pagos"
|
177 |
Â
|
178 |
+
#: classes/class.simple-wp-membership.php:702
|
179 |
Â
msgid "Add-ons"
|
180 |
Â
msgstr "Extensiones"
|
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 "Debes acceder para ver éste contenido. "
|
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 "Tu cuenta a caducado. "
|
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 ""
|
197 |
+
"Este contenido solo puede ser visto por miembros que se unieron en o antes "
|
198 |
+
"de "
|
199 |
Â
|
200 |
+
#: classes/class.swpm-access-control.php:79
|
201 |
+
#: classes/class.swpm-access-control.php:148
|
202 |
Â
msgid "This content is not permitted for your membership level."
|
203 |
+
msgstr "Este contenido no está disponible para tu nivel de membresÃa."
|
204 |
Â
|
205 |
+
#: classes/class.swpm-access-control.php:204
|
206 |
Â
msgid "You need to login to view the rest of the content. "
|
207 |
+
msgstr "Debes acceder para ver el resto del contenido. "
|
208 |
Â
|
209 |
+
#: classes/class.swpm-access-control.php:217
|
210 |
Â
msgid " The rest of the content is not permitted for your membership level."
|
211 |
Â
msgstr " El resto del contenido no está disponible para tu nivel de membresÃa."
|
212 |
Â
|
213 |
+
#: classes/class.swpm-admin-registration.php:25
|
214 |
Â
msgid "Error! Nonce verification failed for user registration from admin end."
|
215 |
Â
msgstr ""
|
216 |
+
"¡Error! La verificación de nonce falló para el registro de usuario desde el "
|
217 |
+
"administrador."
|
218 |
Â
|
219 |
+
#: classes/class.swpm-admin-registration.php:71
|
220 |
Â
msgid "Member record added successfully."
|
221 |
+
msgstr "Registro de miembro añadido con éxito."
|
222 |
Â
|
223 |
+
#: classes/class.swpm-admin-registration.php:76
|
224 |
+
#: classes/class.swpm-admin-registration.php:124
|
225 |
+
#: classes/class.swpm-admin-registration.php:151
|
226 |
+
#: classes/class.swpm-membership-level.php:73
|
227 |
+
#: classes/class.swpm-membership-level.php:105
|
228 |
Â
msgid "Please correct the following:"
|
229 |
Â
msgstr "Por favor, corrige lo siguiente:"
|
230 |
Â
|
231 |
+
#: classes/class.swpm-admin-registration.php:87
|
232 |
Â
msgid "Error! Nonce verification failed for user edit from admin end."
|
233 |
Â
msgstr ""
|
234 |
Â
"¡Error! La verificación de nonce falló para la edición del usuario desde el "
|
235 |
+
"administrador."
|
236 |
Â
|
237 |
+
#: classes/class.swpm-admin-registration.php:139
|
238 |
Â
msgid "Your current password"
|
239 |
Â
msgstr "Tu contraseña actual"
|
240 |
Â
|
241 |
+
#: classes/class.swpm-ajax.php:14
|
242 |
Â
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
|
250 |
Â
msgid "Name contains invalid character"
|
251 |
Â
msgstr "El nombre contiene un carácter no válido"
|
252 |
Â
|
253 |
+
#: classes/class.swpm-ajax.php:37
|
254 |
Â
msgid "Available"
|
255 |
Â
msgstr "Disponible"
|
256 |
Â
|
257 |
+
#: classes/class.swpm-auth.php:57
|
258 |
Â
msgid ""
|
259 |
Â
"Warning! Simple Membership plugin cannot process this login request to "
|
260 |
Â
"prevent you from getting logged out of WP Admin accidentally."
|
261 |
Â
msgstr ""
|
262 |
Â
"¡Advertencia! El plugin Simple Membership no puede procesar esta solicitud "
|
263 |
+
"de acceso para evitar que se desconecte como administrador de WP "
|
264 |
Â
"accidentalmente."
|
265 |
Â
|
266 |
+
#: classes/class.swpm-auth.php:58
|
267 |
+
msgid "Click here"
|
268 |
+
msgstr "Haz clic aquÃ"
|
269 |
+
|
270 |
+
#: classes/class.swpm-auth.php:58
|
271 |
+
msgid " to see the profile you are currently logged into in this browser."
|
272 |
+
msgstr " para ver el perfil con el que has iniciado sesión en este navegador."
|
273 |
+
|
274 |
+
#: classes/class.swpm-auth.php:59
|
275 |
Â
msgid ""
|
276 |
Â
"You are logged into the site as an ADMIN user in this browser. First, logout "
|
277 |
+
"from WP Admin then you will be able to log in as a normal member."
|
278 |
Â
msgstr ""
|
279 |
+
"En este navegador estas conectado al sitio como usuario ADMIN. Primero, "
|
280 |
+
"cierre sesión en WP Admin y luego podrá iniciar sesión como miembro normal."
|
Â
|
|
281 |
Â
|
282 |
+
#: classes/class.swpm-auth.php:60
|
283 |
Â
msgid ""
|
284 |
Â
"Alternatively, you can use a different browser (where you are not logged-in "
|
285 |
Â
"as ADMIN) to test the membership login."
|
286 |
Â
msgstr ""
|
287 |
+
"Como alternativa, puedes utilizar un navegador diferente (donde no te has "
|
288 |
+
"conectado como administrador) para probar el acceso de membresÃa."
|
289 |
Â
|
290 |
+
#: classes/class.swpm-auth.php:61
|
291 |
Â
msgid ""
|
292 |
Â
"Your normal visitors or members will never see this message. This message is "
|
293 |
Â
"ONLY for ADMIN user."
|
294 |
Â
msgstr ""
|
295 |
+
"Tus visitantes frecuentes o miembros nunca verán este mensaje. Este mensaje "
|
296 |
+
"es SOLO para el usuario de administración."
|
297 |
Â
|
298 |
+
#: classes/class.swpm-auth.php:68
|
299 |
Â
msgid "Captcha validation failed on login form."
|
300 |
+
msgstr "Error de validación de captcha en el formulario de acceso."
|
301 |
Â
|
302 |
+
#: classes/class.swpm-auth.php:93
|
303 |
Â
msgid "User Not Found."
|
304 |
+
msgstr "Usuario no se ha encontrado."
|
305 |
Â
|
306 |
+
#: classes/class.swpm-auth.php:100
|
307 |
Â
msgid "Password Empty or Invalid."
|
308 |
Â
msgstr "Contraseña vacÃa o no válida."
|
309 |
Â
|
310 |
+
#: classes/class.swpm-auth.php:133
|
311 |
Â
msgid "Account is inactive."
|
312 |
Â
msgstr "La cuenta está inactiva."
|
313 |
Â
|
314 |
+
#: classes/class.swpm-auth.php:136 classes/class.swpm-auth.php:162
|
Â
|
|
315 |
Â
msgid "Account has expired."
|
316 |
Â
msgstr "Tu cuenta ha caducado."
|
317 |
Â
|
318 |
+
#: classes/class.swpm-auth.php:139
|
319 |
Â
msgid "Account is pending."
|
320 |
+
msgstr "La cuenta esta pendiente."
|
321 |
+
|
322 |
+
#: classes/class.swpm-auth.php:146
|
323 |
+
#, php-format
|
324 |
+
msgid ""
|
325 |
+
"You need to activate your account. If you didn't receive an email then %s to "
|
326 |
+
"resend the activation email."
|
327 |
+
msgstr ""
|
328 |
+
"Necesitas activar tu cuenta. Si no recibiste un correo electrónico entonces "
|
329 |
+
"%s para volver a enviar el correo electrónico de activación."
|
330 |
+
|
331 |
+
#: classes/class.swpm-auth.php:146
|
332 |
+
#: classes/class.swpm-front-registration.php:376
|
333 |
+
#: classes/class.swpm-front-registration.php:426
|
334 |
+
#: classes/class.swpm-utils-misc.php:169
|
335 |
+
msgid "click here"
|
336 |
+
msgstr "haz clic aquÃ"
|
337 |
Â
|
338 |
+
#: classes/class.swpm-auth.php:170
|
339 |
Â
msgid "You are logged in as:"
|
340 |
+
msgstr "Te has conectado como:"
|
341 |
Â
|
342 |
+
#: classes/class.swpm-auth.php:234
|
343 |
Â
msgid "Logged Out Successfully."
|
344 |
+
msgstr "Te has desconectado con éxito."
|
345 |
Â
|
346 |
+
#: classes/class.swpm-auth.php:287
|
347 |
Â
msgid "Session Expired."
|
348 |
Â
msgstr "Sesión caducada."
|
349 |
Â
|
350 |
+
#: classes/class.swpm-auth.php:304
|
351 |
Â
msgid "Please login again."
|
352 |
+
msgstr "Por favor, accede de nuevo."
|
353 |
+
|
354 |
+
#: classes/class.swpm-category-list.php:19 classes/class.swpm-members.php:24
|
355 |
+
#: classes/class.swpm-membership-levels.php:11
|
356 |
+
#: classes/class.swpm-membership-levels.php:21
|
357 |
+
#: classes/class.swpm-post-list.php:20
|
358 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:85
|
359 |
+
#: views/add.php:40 views/admin_member_form_common_part.php:2 views/edit.php:75
|
360 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:50
|
361 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:34
|
362 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:229
|
363 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:49
|
364 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:35
|
365 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:317
|
366 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:47
|
367 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:273
|
368 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:99
|
369 |
Â
msgid "Membership Level"
|
370 |
Â
msgstr "Nivel de membresÃa"
|
371 |
Â
|
372 |
+
#: classes/class.swpm-category-list.php:33
|
373 |
Â
msgid "Category ID"
|
374 |
Â
msgstr "ID de categorÃa"
|
375 |
Â
|
376 |
+
#: classes/class.swpm-category-list.php:34
|
377 |
Â
msgid "Category Name"
|
378 |
Â
msgstr "Nombre de categorÃa"
|
379 |
Â
|
380 |
+
#: classes/class.swpm-category-list.php:35
|
381 |
Â
msgid "Category Type (Taxonomy)"
|
382 |
Â
msgstr "Tipo de categorÃa (TaxonomÃa)"
|
383 |
Â
|
384 |
+
#: classes/class.swpm-category-list.php:36
|
385 |
Â
msgid "Description"
|
386 |
Â
msgstr "Descripción"
|
387 |
Â
|
388 |
+
#: classes/class.swpm-category-list.php:37
|
389 |
Â
msgid "Count"
|
390 |
Â
msgstr "Contar"
|
391 |
Â
|
392 |
+
#: classes/class.swpm-category-list.php:92
|
393 |
Â
msgid "Category protection updated!"
|
394 |
+
msgstr "Protección de categorÃa actualizada!"
|
395 |
Â
|
396 |
+
#: classes/class.swpm-category-list.php:130
|
397 |
Â
msgid "No category found."
|
398 |
+
msgstr "No se ha encontrado ninguna categorÃa."
|
399 |
Â
|
400 |
+
#: classes/class.swpm-comment-form-related.php:15
|
401 |
Â
msgid "Please login to comment."
|
402 |
+
msgstr "Por favor acceder para comentar."
|
403 |
Â
|
404 |
+
#: classes/class.swpm-comment-form-related.php:40
|
405 |
Â
msgid "Please Login to Comment."
|
406 |
+
msgstr "Por favor acceder para comentar."
|
407 |
Â
|
408 |
+
#: classes/class.swpm-comment-form-related.php:79
|
409 |
Â
msgid "Comments not allowed by a non-member."
|
410 |
+
msgstr "No se permiten comentarios al que no es miembro."
|
411 |
Â
|
412 |
+
#: classes/class.swpm-form.php:30
|
413 |
Â
msgid ""
|
414 |
Â
"Wordpress account exists with given username. But given email doesn't match."
|
415 |
Â
msgstr ""
|
416 |
+
"La cuenta de Wordpress existe con el nombre de usuario dado. Pero el correo "
|
417 |
Â
"electrónico dado no coincide."
|
418 |
Â
|
419 |
+
#: classes/class.swpm-form.php:31
|
420 |
+
msgid ""
|
421 |
+
" Use a different username to complete the registration. If you want to use "
|
422 |
+
"that username then you must enter the correct email address associated with "
|
423 |
+
"the existing WP user to connect with that account."
|
424 |
+
msgstr ""
|
425 |
+
" Utiliza un nombre de usuario diferente para completar el registro. Si "
|
426 |
+
"deseas utilizar ese nombre de usuario, debes introducir la dirección de "
|
427 |
+
"correo electrónico correcta asociada al usuario de WP existente para "
|
428 |
+
"conectarse con esa cuenta."
|
429 |
+
|
430 |
+
#: classes/class.swpm-form.php:37
|
431 |
Â
msgid ""
|
432 |
Â
"Wordpress account exists with given email. But given username doesn't match."
|
433 |
Â
msgstr ""
|
434 |
+
"La cuenta de WordPress existe con el correo electrónico dado, pero el nombre "
|
435 |
+
"del usuario dado no coincide."
|
436 |
+
|
437 |
+
#: classes/class.swpm-form.php:38
|
438 |
+
msgid ""
|
439 |
+
" Use a different email address to complete the registration. If you want to "
|
440 |
+
"use that email then you must enter the correct username associated with the "
|
441 |
+
"existing WP user to connect with that account."
|
442 |
+
msgstr ""
|
443 |
+
" Utiliza una dirección de correo electrónico diferente para completar el "
|
444 |
+
"registro. Si deseas utilizar ese correo electrónico, debes introducir el "
|
445 |
+
"nombre correcto de usuario asociado al usuario de WP existente para "
|
446 |
+
"conectarse con esa cuenta."
|
447 |
Â
|
448 |
+
#: classes/class.swpm-form.php:48
|
449 |
Â
msgid "Username is required"
|
450 |
+
msgstr "Es obligatorio el nombre de usuario"
|
451 |
Â
|
452 |
+
#: classes/class.swpm-form.php:52
|
453 |
Â
msgid "Username contains invalid character"
|
454 |
Â
msgstr "El nombre de usuario contiene un carácter no válido"
|
455 |
Â
|
456 |
+
#: classes/class.swpm-form.php:60
|
457 |
Â
msgid "Username already exists."
|
458 |
+
msgstr "El nombre de usuario ya existe."
|
459 |
Â
|
460 |
+
#: classes/class.swpm-form.php:83
|
461 |
Â
msgid "Password is required"
|
462 |
Â
msgstr "La contraseña es obligatoria"
|
463 |
Â
|
464 |
+
#: classes/class.swpm-form.php:90
|
465 |
Â
msgid "Password mismatch"
|
466 |
+
msgstr "La contraseña no coincide"
|
467 |
Â
|
468 |
+
#: classes/class.swpm-form.php:101
|
469 |
Â
msgid "Email is required"
|
470 |
Â
msgstr "El correo electrónico es obligatorio"
|
471 |
Â
|
472 |
+
#: classes/class.swpm-form.php:105
|
473 |
Â
msgid "Email is invalid"
|
474 |
Â
msgstr "El correo electrónico no es válido"
|
475 |
Â
|
476 |
+
#: classes/class.swpm-form.php:121
|
477 |
Â
msgid "Email is already used."
|
478 |
+
msgstr "El correo electrónico ya está usado."
|
479 |
Â
|
480 |
+
#: classes/class.swpm-form.php:179
|
481 |
Â
msgid "Member since field is invalid"
|
482 |
+
msgstr "El campo desde del miembro no es válido"
|
483 |
Â
|
484 |
+
#: classes/class.swpm-form.php:190
|
485 |
Â
msgid "Access starts field is invalid"
|
486 |
Â
msgstr "La fecha de comienzo no es válida"
|
487 |
Â
|
488 |
+
#: classes/class.swpm-form.php:200
|
489 |
Â
msgid "Gender field is invalid"
|
490 |
+
msgstr "El campo de género no es válido"
|
491 |
Â
|
492 |
+
#: classes/class.swpm-form.php:211
|
493 |
Â
msgid "Account state field is invalid"
|
494 |
Â
msgstr "El valor introducido en el campo \"Estado de la cuenta\" no es válido"
|
495 |
Â
|
496 |
+
#: classes/class.swpm-form.php:218
|
497 |
Â
msgid "Invalid membership level"
|
498 |
+
msgstr "Nivel de membresÃa no válida"
|
499 |
Â
|
500 |
+
#: classes/class.swpm-front-registration.php:33
|
501 |
Â
msgid ""
|
502 |
Â
"Error! Invalid Request. Could not find a match for the given security code "
|
503 |
Â
"and the user ID."
|
504 |
Â
msgstr ""
|
505 |
Â
"¡Error! Solicitud no válida. No se pudo encontrar una coincidencia para el "
|
506 |
+
"código de seguridad dado y el ID de usuario."
|
507 |
Â
|
508 |
+
#: classes/class.swpm-front-registration.php:45
|
509 |
+
#: classes/class.swpm-utils-misc.php:274 views/login.php:36
|
Â
|
|
510 |
Â
msgid "Join Us"
|
511 |
Â
msgstr "Únete a nosotros"
|
512 |
Â
|
513 |
+
#: classes/class.swpm-front-registration.php:47
|
514 |
Â
msgid ""
|
515 |
Â
"Free membership is disabled on this site. Please make a payment from the "
|
516 |
Â
msgstr ""
|
517 |
+
"La membresÃa gratuita está desactivada en este sitio. Por favor haz un pago "
|
518 |
+
"desde la "
|
519 |
+
|
520 |
+
#: classes/class.swpm-front-registration.php:49
|
521 |
+
msgid " page to pay for a premium membership."
|
522 |
+
msgstr " página para pagar una membresÃa de pago."
|
523 |
Â
|
524 |
+
#: classes/class.swpm-front-registration.php:51
|
525 |
Â
msgid ""
|
526 |
Â
"You will receive a unique link via email after the payment. You will be able "
|
527 |
Â
"to use that link to complete the premium membership registration."
|
528 |
Â
msgstr ""
|
529 |
+
"Recibirás un enlace único a través del correo electrónico después del pago. "
|
530 |
+
"Podrás utilizar ese enlace para completar el registro de membresÃa de pago."
|
531 |
Â
|
532 |
+
#: classes/class.swpm-front-registration.php:79
|
533 |
Â
msgid "Security check: captcha validation failed."
|
534 |
Â
msgstr "Comprobación de seguridad: la validación del captcha ha fallado."
|
535 |
Â
|
536 |
+
#: classes/class.swpm-front-registration.php:89
|
537 |
+
msgid "You must accept the terms and conditions."
|
538 |
+
msgstr "Debes aceptar los Términos y Condiciones."
|
539 |
+
|
540 |
+
#: classes/class.swpm-front-registration.php:100
|
541 |
+
msgid "You must agree to the privacy policy."
|
542 |
+
msgstr "Debes aceptar la polÃtica de privacidad."
|
543 |
+
|
544 |
+
#: classes/class.swpm-front-registration.php:140
|
545 |
+
msgid ""
|
546 |
+
"You need to confirm your email address. Please check your email and follow "
|
547 |
+
"instructions to complete your registration."
|
548 |
+
msgstr ""
|
549 |
+
"Necesitas confirmar tu dirección de correo electrónico. Por favor, revisa tu "
|
550 |
+
"correo electrónico y sigue las instrucciones para completar el registro."
|
551 |
+
|
552 |
+
#: classes/class.swpm-front-registration.php:145
|
553 |
Â
msgid "Registration Successful. "
|
554 |
Â
msgstr "Registro con éxito. "
|
555 |
Â
|
556 |
+
#: classes/class.swpm-front-registration.php:145
|
557 |
+
#: classes/class.swpm-utils-misc.php:273 classes/class.swpm-utils-misc.php:285
|
Â
|
|
558 |
Â
msgid "Please"
|
559 |
+
msgstr "Por favor"
|
560 |
Â
|
561 |
+
#: classes/class.swpm-front-registration.php:145
|
562 |
+
#: classes/class.swpm-utils-misc.php:273 views/login.php:30
|
Â
|
|
563 |
Â
msgid "Login"
|
564 |
+
msgstr "Acceso"
|
565 |
Â
|
566 |
+
#: classes/class.swpm-front-registration.php:159
|
567 |
Â
msgid "Please correct the following"
|
568 |
Â
msgstr "Por favor, corrige lo siguiente"
|
569 |
Â
|
570 |
+
#: classes/class.swpm-front-registration.php:207
|
571 |
Â
msgid "Membership Level Couldn't be found."
|
572 |
Â
msgstr "No se ha encontrado el nivel de membresÃa."
|
573 |
Â
|
574 |
+
#: classes/class.swpm-front-registration.php:258
|
575 |
Â
msgid "Error! Nonce verification failed for front end profile edit."
|
576 |
Â
msgstr ""
|
577 |
+
"¡Error! No se ha podido verificar la verificación de editar el perfil en la "
|
578 |
+
"portada."
|
579 |
Â
|
580 |
+
#: classes/class.swpm-front-registration.php:266
|
581 |
Â
msgid "Profile updated successfully."
|
582 |
+
msgstr "Perfil actualizado con éxito."
|
583 |
Â
|
584 |
+
#: classes/class.swpm-front-registration.php:275
|
585 |
Â
msgid ""
|
586 |
Â
"Profile updated successfully. You will need to re-login since you changed "
|
587 |
Â
"your password."
|
588 |
Â
msgstr ""
|
589 |
+
"Perfil se ha actualizado con éxito. Tendrás que volver a acceder porque has "
|
590 |
+
"cambiado la contraseña."
|
591 |
Â
|
592 |
+
#: classes/class.swpm-front-registration.php:289
|
593 |
Â
msgid "Please correct the following."
|
594 |
+
msgstr "Por favor, corrige lo siguiente."
|
595 |
Â
|
596 |
+
#: classes/class.swpm-front-registration.php:301
|
597 |
Â
msgid "Captcha validation failed."
|
598 |
+
msgstr "Error de validación de captcha."
|
599 |
Â
|
600 |
+
#: classes/class.swpm-front-registration.php:309
|
601 |
Â
msgid "Email address not valid."
|
602 |
+
msgstr "Dirección de correo electrónico no válido."
|
603 |
Â
|
604 |
+
#: classes/class.swpm-front-registration.php:320
|
605 |
Â
msgid "No user found with that email address."
|
606 |
+
msgstr "No se encontró ningún usuario con esa dirección de correo electrónico."
|
Â
|
|
607 |
Â
|
608 |
+
#: classes/class.swpm-front-registration.php:321
|
609 |
+
#: classes/class.swpm-front-registration.php:350
|
610 |
Â
msgid "Email Address: "
|
611 |
Â
msgstr "Dirección de correo electrónico: "
|
612 |
Â
|
613 |
+
#: classes/class.swpm-front-registration.php:349
|
614 |
Â
msgid "New password has been sent to your email address."
|
615 |
+
msgstr "La nueva contraseña ha sido enviada a tu correo electrónico."
|
616 |
+
|
617 |
+
#: classes/class.swpm-front-registration.php:371
|
618 |
+
msgid "Can't find member account."
|
619 |
+
msgstr "No se puede encontrar la cuenta del miembro."
|
620 |
+
|
621 |
+
#: classes/class.swpm-front-registration.php:376
|
622 |
+
#: classes/class.swpm-front-registration.php:426
|
623 |
+
msgid "Account already active. "
|
624 |
+
msgstr "La cuenta ya ha sido activada. "
|
625 |
+
|
626 |
+
#: classes/class.swpm-front-registration.php:376
|
627 |
+
#: classes/class.swpm-front-registration.php:426
|
628 |
+
msgid " to login."
|
629 |
+
msgstr " para iniciar sesión."
|
630 |
+
|
631 |
+
#: classes/class.swpm-front-registration.php:383
|
632 |
+
msgid ""
|
633 |
+
"Activation code mismatch. Cannot activate this account. Please contact the "
|
634 |
+
"site admin."
|
635 |
+
msgstr ""
|
636 |
+
"El código de activación no coincide. No se puede activar esta cuenta. Por "
|
637 |
+
"favor, ponte en contacto con el administrador del sitio."
|
638 |
+
|
639 |
+
#: classes/class.swpm-front-registration.php:397
|
640 |
+
msgid "Success! Your account has been activated successfully."
|
641 |
+
msgstr "¡Lo lograste! Tu cuenta ha sido activada correctamente."
|
642 |
+
|
643 |
+
#: classes/class.swpm-front-registration.php:421
|
644 |
+
msgid "Cannot find member account."
|
645 |
+
msgstr "No se puede encontrar la cuenta del miembro."
|
646 |
+
|
647 |
+
#: classes/class.swpm-front-registration.php:443
|
648 |
+
msgid ""
|
649 |
+
"Activation email has been sent. Please check your email and activate your "
|
650 |
+
"account."
|
651 |
+
msgstr ""
|
652 |
+
"Se ha enviado un correo electrónico de activación. Por favor, revisa tu "
|
653 |
+
"correo electrónico y activa tu cuenta."
|
654 |
Â
|
655 |
+
#: classes/class.swpm-init-time-tasks.php:118
|
656 |
Â
msgid "Sorry, Nonce verification failed."
|
657 |
+
msgstr "Lo siento, la verificación del nonce falló."
|
658 |
Â
|
659 |
+
#: classes/class.swpm-init-time-tasks.php:125
|
660 |
Â
msgid "Sorry, Password didn't match."
|
661 |
Â
msgstr "Lo siento, la contraseña no coincide."
|
662 |
Â
|
663 |
+
#: classes/class.swpm-level-form.php:50
|
664 |
Â
msgid "Date format is not valid."
|
665 |
Â
msgstr "El formato de fecha no es válido."
|
666 |
Â
|
667 |
+
#: classes/class.swpm-level-form.php:58
|
668 |
Â
msgid "Access duration must be > 0."
|
669 |
Â
msgstr "La duración del acceso debe ser mayor a 0."
|
670 |
Â
|
671 |
+
#: classes/class.swpm-members.php:10
|
672 |
Â
msgid "Member"
|
673 |
Â
msgstr "Miembro"
|
674 |
Â
|
675 |
+
#: classes/class.swpm-members.php:19
|
676 |
+
#: classes/class.swpm-membership-levels.php:20
|
677 |
Â
msgid "ID"
|
678 |
Â
msgstr "ID"
|
679 |
Â
|
680 |
+
#: classes/class.swpm-members.php:20 views/add.php:16 views/admin_add.php:11
|
681 |
+
#: views/admin_edit.php:19 views/edit.php:23
|
682 |
+
#: includes/swpm_mda_show_profile.php:27
|
Â
|
|
683 |
Â
msgid "Username"
|
684 |
Â
msgstr "Nombre de usuario"
|
685 |
Â
|
686 |
+
#: classes/class.swpm-members.php:21
|
687 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:78
|
688 |
+
#: views/add.php:32 views/admin_member_form_common_part.php:15
|
689 |
+
#: views/edit.php:39 includes/swpm_mda_show_profile.php:28
|
Â
|
|
690 |
Â
msgid "First Name"
|
691 |
Â
msgstr "Nombre"
|
692 |
Â
|
693 |
+
#: classes/class.swpm-members.php:22
|
694 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:79
|
695 |
+
#: views/add.php:36 views/admin_member_form_common_part.php:19
|
696 |
+
#: views/edit.php:43 includes/swpm_mda_show_profile.php:29
|
Â
|
|
697 |
Â
msgid "Last Name"
|
698 |
+
msgstr "Apellidos"
|
699 |
Â
|
700 |
+
#: classes/class.swpm-members.php:23 views/add.php:20 views/edit.php:27
|
701 |
+
#: includes/swpm_mda_show_profile.php:35
|
702 |
Â
msgid "Email"
|
703 |
Â
msgstr "Correo electrónico"
|
704 |
Â
|
705 |
+
#: classes/class.swpm-members.php:25 views/admin_member_form_common_part.php:11
|
Â
|
|
706 |
Â
msgid "Access Starts"
|
707 |
Â
msgstr "El acceso comienza"
|
708 |
Â
|
709 |
+
#: classes/class.swpm-members.php:26 includes/swpm_mda_show_profile.php:31
|
710 |
Â
msgid "Account State"
|
711 |
Â
msgstr "Estado de la cuenta"
|
712 |
Â
|
713 |
+
#: classes/class.swpm-members.php:27
|
714 |
+
msgid "Last Login Date"
|
715 |
+
msgstr "Última fecha de acceso"
|
716 |
+
|
717 |
+
#: classes/class.swpm-members.php:46
|
718 |
+
#: classes/class.swpm-membership-levels.php:36
|
719 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:94
|
720 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:102
|
721 |
Â
msgid "Delete"
|
722 |
Â
msgstr "Borrar"
|
723 |
Â
|
724 |
+
#: classes/class.swpm-members.php:47
|
725 |
Â
msgid "Set Status to Active"
|
726 |
+
msgstr "Establecer el estado como activo"
|
727 |
Â
|
728 |
+
#: classes/class.swpm-members.php:48
|
729 |
Â
msgid "Set Status to Active and Notify"
|
730 |
+
msgstr "Establecer el estado como activo y notificar"
|
731 |
Â
|
732 |
+
#: classes/class.swpm-members.php:49
|
733 |
Â
msgid "Set Status to Inactive"
|
734 |
+
msgstr "Establecer el estado como inactivo"
|
735 |
Â
|
736 |
+
#: classes/class.swpm-members.php:50
|
737 |
Â
msgid "Set Status to Pending"
|
738 |
+
msgstr "Establecer el estado como pendiente"
|
739 |
Â
|
740 |
+
#: classes/class.swpm-members.php:51
|
741 |
Â
msgid "Set Status to Expired"
|
742 |
+
msgstr "Establecer el estado como caducado"
|
743 |
Â
|
744 |
+
#: classes/class.swpm-members.php:72
|
745 |
Â
msgid "incomplete"
|
746 |
Â
msgstr "incompleto"
|
747 |
Â
|
748 |
+
#: classes/class.swpm-members.php:191
|
749 |
Â
msgid "No member found."
|
750 |
+
msgstr "No se encontró el miembro."
|
751 |
Â
|
752 |
+
#: classes/class.swpm-members.php:337
|
753 |
Â
msgid "Error! Nonce verification failed for user delete from admin end."
|
754 |
Â
msgstr ""
|
755 |
+
"¡Error! La verificación de nonce falló para la eliminación de usuario desde "
|
756 |
+
"el administrador."
|
757 |
Â
|
758 |
+
#: classes/class.swpm-members.php:406 classes/class.swpm-members.php:436
|
Â
|
|
759 |
Â
msgid "Error! Please select a membership level first."
|
760 |
Â
msgstr "¡Error! Seleccione primero un nivel de membresÃa."
|
761 |
Â
|
762 |
+
#: classes/class.swpm-members.php:423
|
763 |
Â
msgid "Membership level change operation completed successfully."
|
764 |
Â
msgstr ""
|
765 |
+
"La operación de cambio de nivel de membresÃa se ha completado con éxito."
|
766 |
Â
|
767 |
+
#: classes/class.swpm-members.php:453
|
768 |
Â
msgid "Access starts date change operation successfully completed."
|
769 |
+
msgstr "El acceso inicia la operación de cambio de fecha completada con éxito."
|
Â
|
|
Â
|
|
770 |
Â
|
771 |
+
#: classes/class.swpm-members.php:462
|
772 |
Â
msgid "Bulk Update Membership Level of Members"
|
773 |
+
msgstr "Actualización en lote de nivel de membresÃa de miembros"
|
774 |
Â
|
775 |
+
#: classes/class.swpm-members.php:465
|
776 |
Â
msgid ""
|
777 |
Â
"You can manually change the membership level of any member by editing the "
|
778 |
Â
"record from the members menu. "
|
779 |
Â
msgstr ""
|
780 |
+
"Puedes cambiar manualmente el nivel de membresÃa de cualquier miembro "
|
781 |
Â
"editando el registro en el menú de miembros. "
|
782 |
Â
|
783 |
+
#: classes/class.swpm-members.php:466
|
784 |
Â
msgid ""
|
785 |
Â
"You can use the following option to bulk update the membership level of "
|
786 |
Â
"users who belong to the level you select below."
|
787 |
Â
msgstr ""
|
788 |
+
"Se puede usa la siguiente opción de actualización en lote del nivel de "
|
789 |
+
"membresÃa de los usuarios que pertenecen al nivel que seleccionas a "
|
790 |
Â
"continuación."
|
791 |
Â
|
792 |
+
#: classes/class.swpm-members.php:472 classes/class.swpm-members.php:520
|
Â
|
|
793 |
Â
msgid "Membership Level: "
|
794 |
Â
msgstr "Nivel de membresÃa: "
|
795 |
Â
|
796 |
+
#: classes/class.swpm-members.php:476
|
797 |
Â
msgid "Select Current Level"
|
798 |
+
msgstr "Selecciona el nivel actual"
|
799 |
Â
|
800 |
+
#: classes/class.swpm-members.php:479
|
801 |
Â
msgid ""
|
802 |
Â
"Select the current membership level (the membership level of all members who "
|
803 |
Â
"are in this level will be updated)."
|
804 |
Â
msgstr ""
|
805 |
+
"Selecciona el nivel de membresÃa actual (el nivel de membresÃa de todos los "
|
806 |
+
"miembros que se encuentren en este nivel se actualizarán)."
|
807 |
Â
|
808 |
+
#: classes/class.swpm-members.php:485
|
809 |
Â
msgid "Level to Change to: "
|
810 |
Â
msgstr "Nivel a cambiar a: "
|
811 |
Â
|
812 |
+
#: classes/class.swpm-members.php:489
|
813 |
Â
msgid "Select Target Level"
|
814 |
+
msgstr "Selecciona el nivel de destino"
|
815 |
Â
|
816 |
+
#: classes/class.swpm-members.php:492
|
817 |
Â
msgid "Select the new membership level."
|
818 |
Â
msgstr "Seleccione el nuevo nivel de membresÃa."
|
819 |
Â
|
820 |
+
#: classes/class.swpm-members.php:498
|
821 |
Â
msgid "Bulk Change Membership Level"
|
822 |
+
msgstr "Cambio en lote de nivel de membresÃa"
|
823 |
Â
|
824 |
+
#: classes/class.swpm-members.php:508
|
825 |
Â
msgid "Bulk Update Access Starts Date of Members"
|
826 |
+
msgstr ""
|
827 |
+
"La fecha del comienzo de acceso de la actualización en lote de los miembros"
|
828 |
Â
|
829 |
+
#: classes/class.swpm-members.php:512
|
830 |
Â
msgid ""
|
831 |
Â
"The access starts date of a member is set to the day the user registers. "
|
832 |
Â
"This date value is used to calculate how long the member can access your "
|
835 |
Â
msgstr ""
|
836 |
Â
"La fecha de inicio de acceso de un miembro se establece en el dÃa en que el "
|
837 |
Â
"usuario se registra. Este valor de fecha se utiliza para calcular el tiempo "
|
838 |
+
"que el miembro puede acceder a tu contenido que está protegido con una "
|
839 |
+
"protección de tipo de duración en el nivel de membresÃa. "
|
840 |
Â
|
841 |
+
#: classes/class.swpm-members.php:513
|
842 |
Â
msgid ""
|
843 |
Â
"You can manually set a specific access starts date value of all members who "
|
844 |
Â
"belong to a particular level using the following option."
|
847 |
Â
"especÃfico de todos los miembros que pertenezcan a un nivel determinado "
|
848 |
Â
"mediante la siguiente opción."
|
849 |
Â
|
850 |
+
#: classes/class.swpm-members.php:523
|
851 |
Â
msgid "Select Level"
|
852 |
+
msgstr "Seleccionar el nivel"
|
853 |
Â
|
854 |
+
#: classes/class.swpm-members.php:526
|
855 |
Â
msgid ""
|
856 |
Â
"Select the Membership level (the access start date of all members who are in "
|
857 |
Â
"this level will be updated)."
|
858 |
Â
msgstr ""
|
859 |
+
"Selecciona el nivel de membresÃa (la fecha de inicio de acceso de todos los "
|
860 |
+
"miembros que están en este nivel se actualizarán)."
|
861 |
Â
|
862 |
+
#: classes/class.swpm-members.php:535
|
863 |
Â
msgid "Specify the access starts date value."
|
864 |
+
msgstr "Especifica el valor de la fecha de inicio del acceso."
|
865 |
Â
|
866 |
+
#: classes/class.swpm-members.php:541
|
867 |
Â
msgid "Bulk Change Access Starts Date"
|
868 |
+
msgstr "Cambio en lote de la fecha de comienzo de acceso"
|
869 |
Â
|
870 |
+
#: classes/class.swpm-members.php:576
|
871 |
Â
msgid "Simple WP Membership::Members"
|
872 |
Â
msgstr "Simple WP Membership::Miembros"
|
873 |
Â
|
874 |
+
#: classes/class.swpm-members.php:577
|
875 |
+
#: classes/class.swpm-membership-levels.php:226 views/admin_members_list.php:44
|
Â
|
|
876 |
Â
msgid "Add New"
|
877 |
Â
msgstr "Añadir nuevo"
|
878 |
Â
|
879 |
+
#: classes/class.swpm-members.php:582 views/admin_add.php:6
|
Â
|
|
880 |
Â
msgid "Add Member"
|
881 |
Â
msgstr "Añadir miembro"
|
882 |
Â
|
883 |
+
#: classes/class.swpm-members.php:583
|
884 |
Â
msgid "Bulk Operation"
|
885 |
+
msgstr "Operación en lote"
|
886 |
Â
|
887 |
+
#: classes/class.swpm-membership-level.php:52
|
888 |
Â
msgid ""
|
889 |
Â
"Error! Nonce verification failed for membership level creation from admin "
|
890 |
Â
"end."
|
891 |
Â
msgstr ""
|
892 |
Â
"¡Error! La verificación de Nonce falló en la creación de nivel de membresÃa "
|
893 |
+
"desde el administrador."
|
894 |
Â
|
895 |
+
#: classes/class.swpm-membership-level.php:68
|
896 |
Â
msgid "Membership Level Creation Successful."
|
897 |
+
msgstr "Nivel de membresÃa creado con éxito."
|
898 |
Â
|
899 |
+
#: classes/class.swpm-membership-level.php:84
|
900 |
Â
msgid ""
|
901 |
Â
"Error! Nonce verification failed for membership level edit from admin end."
|
902 |
Â
msgstr ""
|
903 |
+
"¡Error! La comprobación de nonce falló para la edición de nivel de membresÃa "
|
904 |
+
"desde el administrador."
|
905 |
Â
|
906 |
+
#: classes/class.swpm-membership-level.php:100
|
907 |
Â
msgid "Membership Level Updated Successfully."
|
908 |
+
msgstr "Nombre del nivel de membresÃa actualizado con éxito."
|
909 |
Â
|
910 |
+
#: classes/class.swpm-membership-levels.php:22
|
911 |
Â
msgid "Role"
|
912 |
+
msgstr "Perfil"
|
913 |
Â
|
914 |
+
#: classes/class.swpm-membership-levels.php:23
|
915 |
Â
msgid "Access Valid For/Until"
|
916 |
Â
msgstr "Acceso válido durante/hasta"
|
917 |
Â
|
918 |
+
#: classes/class.swpm-membership-levels.php:133
|
919 |
Â
msgid "No membership levels found."
|
920 |
Â
msgstr "No se encontraron niveles de membresÃa."
|
921 |
Â
|
922 |
+
#: classes/class.swpm-membership-levels.php:197
|
923 |
Â
msgid ""
|
924 |
Â
"Error! Nonce verification failed for membership level delete from admin end."
|
925 |
Â
msgstr ""
|
926 |
+
"¡Error! La verificación de Nonce falló al eliminar el nivel de pertenencia "
|
927 |
+
"desde el administrador."
|
928 |
Â
|
929 |
+
#: classes/class.swpm-membership-levels.php:216 views/admin_members_list.php:31
|
930 |
+
#: views/payments/admin_all_payment_transactions.php:16 views/template-1.php:53
|
931 |
+
#: views/template-2.php:54
|
932 |
Â
msgid "Search"
|
933 |
Â
msgstr "Buscar"
|
934 |
Â
|
935 |
+
#: classes/class.swpm-membership-levels.php:261
|
936 |
Â
msgid "Simple WP Membership::Membership Levels"
|
937 |
Â
msgstr "Simple WP Membership::Nivel de membresÃa"
|
938 |
Â
|
939 |
+
#: classes/class.swpm-membership-levels.php:266
|
940 |
Â
msgid "Add Level"
|
941 |
Â
msgstr "Añadir nivel"
|
942 |
Â
|
943 |
+
#: classes/class.swpm-membership-levels.php:267
|
944 |
Â
msgid "Manage Content Protection"
|
945 |
+
msgstr "Gestionar la protección de contenido"
|
946 |
Â
|
947 |
+
#: classes/class.swpm-membership-levels.php:268
|
948 |
Â
msgid "Category Protection"
|
949 |
Â
msgstr "Protección de categorÃa"
|
950 |
Â
|
951 |
+
#: classes/class.swpm-membership-levels.php:269
|
952 |
+
msgid "Post and Page Protection"
|
953 |
+
msgstr "Protección de la entrada y página"
|
954 |
+
|
955 |
+
#: classes/class.swpm-post-list.php:43 classes/class.swpm-post-list.php:52
|
956 |
+
#: classes/class.swpm-post-list.php:62
|
957 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:81
|
958 |
+
msgid "Date"
|
959 |
+
msgstr "Fecha"
|
960 |
+
|
961 |
+
#: classes/class.swpm-post-list.php:44 classes/class.swpm-post-list.php:53
|
962 |
+
#: classes/class.swpm-post-list.php:63
|
963 |
+
msgid "Title"
|
964 |
+
msgstr "Titulo"
|
965 |
+
|
966 |
+
#: classes/class.swpm-post-list.php:45 classes/class.swpm-post-list.php:54
|
967 |
+
#: classes/class.swpm-post-list.php:64
|
968 |
+
msgid "Author"
|
969 |
+
msgstr "Autor"
|
970 |
+
|
971 |
+
#: classes/class.swpm-post-list.php:46 classes/class.swpm-post-list.php:56
|
972 |
+
#: classes/class.swpm-post-list.php:66
|
973 |
+
msgid "Status"
|
974 |
+
msgstr "Estado"
|
975 |
+
|
976 |
+
#: classes/class.swpm-post-list.php:55
|
977 |
+
msgid "Categories"
|
978 |
+
msgstr "CategorÃa"
|
979 |
+
|
980 |
+
#: classes/class.swpm-post-list.php:65
|
981 |
+
msgid "Type"
|
982 |
+
msgstr "Tipo"
|
983 |
+
|
984 |
+
#: classes/class.swpm-post-list.php:125
|
985 |
+
msgid "Protection settings updated!"
|
986 |
+
msgstr "¡Actualizados los ajustes de protección!"
|
987 |
+
|
988 |
+
#: classes/class.swpm-post-list.php:230
|
989 |
+
msgid "No items found."
|
990 |
+
msgstr "No se han encontrado artÃculos."
|
991 |
+
|
992 |
+
#: classes/class.swpm-protection.php:22
|
993 |
+
msgid ""
|
994 |
+
"The category or parent category of this post is protected. You can change "
|
995 |
+
"the category protection settings from the "
|
996 |
+
msgstr ""
|
997 |
+
"La categorÃa o categorÃa principal de esta entrada está protegida. Puedes "
|
998 |
+
"cambiar los ajustes de protección de categorÃa desde "
|
999 |
+
|
1000 |
+
#: classes/class.swpm-protection.php:23
|
1001 |
+
msgid "category protection menu"
|
1002 |
+
msgstr "menú de protección de categorÃa"
|
1003 |
+
|
1004 |
+
#: classes/class.swpm-settings.php:26 classes/class.swpm-settings.php:54
|
1005 |
Â
msgid "General Settings"
|
1006 |
Â
msgstr "Ajustes generales"
|
1007 |
Â
|
1008 |
+
#: classes/class.swpm-settings.php:27
|
1009 |
Â
msgid "Payment Settings"
|
1010 |
Â
msgstr "Ajustes de pago"
|
1011 |
Â
|
1012 |
+
#: classes/class.swpm-settings.php:28
|
1013 |
Â
msgid "Email Settings"
|
1014 |
+
msgstr "Ajustes del correo electrónico"
|
1015 |
Â
|
1016 |
+
#: classes/class.swpm-settings.php:29
|
1017 |
Â
msgid "Tools"
|
1018 |
Â
msgstr "Herramientas"
|
1019 |
Â
|
1020 |
+
#: classes/class.swpm-settings.php:30 classes/class.swpm-settings.php:187
|
Â
|
|
1021 |
Â
msgid "Advanced Settings"
|
1022 |
Â
msgstr "Ajustes avanzados"
|
1023 |
Â
|
1024 |
+
#: classes/class.swpm-settings.php:31
|
1025 |
Â
msgid "Addons Settings"
|
1026 |
Â
msgstr "Ajustes de extensiones"
|
1027 |
Â
|
1028 |
+
#: classes/class.swpm-settings.php:53
|
1029 |
Â
msgid "Plugin Documentation"
|
1030 |
Â
msgstr "Documentación del plugin"
|
1031 |
Â
|
1032 |
+
#: classes/class.swpm-settings.php:55
|
1033 |
Â
msgid "Enable Free Membership"
|
1034 |
Â
msgstr "Activar membresÃa gratis"
|
1035 |
Â
|
1036 |
+
#: classes/class.swpm-settings.php:56
|
1037 |
Â
msgid ""
|
1038 |
Â
"Enable/disable registration for free membership level. When you enable this "
|
1039 |
Â
"option, make sure to specify a free membership level ID in the field below."
|
1040 |
Â
msgstr ""
|
1041 |
+
"Activa/desactiva el registro para el nivel de membresÃa gratis. Al activar "
|
1042 |
+
"esta opción, asegúrate de especificar un ID de nivel de membresÃa gratuita "
|
1043 |
+
"en el siguiente campo."
|
1044 |
Â
|
1045 |
+
#: classes/class.swpm-settings.php:57
|
1046 |
Â
msgid "Free Membership Level ID"
|
1047 |
Â
msgstr "ID de la membresÃa gratuita"
|
1048 |
Â
|
1049 |
+
#: classes/class.swpm-settings.php:58
|
1050 |
Â
msgid "Assign free membership level ID"
|
1051 |
Â
msgstr "Asignar el ID de la membresÃa gratuita"
|
1052 |
Â
|
1053 |
+
#: classes/class.swpm-settings.php:59
|
1054 |
Â
msgid "Enable More Tag Protection"
|
1055 |
+
msgstr "Activa la etiqueta more de protección"
|
1056 |
Â
|
1057 |
+
#: classes/class.swpm-settings.php:60
|
1058 |
Â
msgid ""
|
1059 |
Â
"Enables or disables \"more\" tag protection in the posts and pages. Anything "
|
1060 |
Â
"after the More tag is protected. Anything before the more tag is teaser "
|
1061 |
Â
"content."
|
1062 |
Â
msgstr ""
|
1063 |
+
"Activa o desactiva la etiqueta \"more\" de protección en las entradas y "
|
1064 |
+
"páginas. Cualquier cosa por debajo de la etiqueta more esta protegido. "
|
1065 |
+
"Cualquier cosa por encima de la etiqueta more es contenido sumario."
|
1066 |
Â
|
1067 |
+
#: classes/class.swpm-settings.php:61
|
1068 |
Â
msgid "Hide Adminbar"
|
1069 |
Â
msgstr "Ocultar la barra de administración"
|
1070 |
Â
|
1071 |
+
#: classes/class.swpm-settings.php:62
|
1072 |
Â
msgid ""
|
1073 |
Â
"WordPress shows an admin toolbar to the logged in users of the site. Check "
|
1074 |
Â
"this if you want to hide that admin toolbar in the frontend of your site."
|
1075 |
Â
msgstr ""
|
1076 |
Â
"WordPress muestra una barra de herramientas de administración para los "
|
1077 |
+
"usuarios registrados en el sitio. Selecciona esta casilla si deseas ocultar "
|
1078 |
+
"la barra de herramientas de administración en la portada de tu sitio."
|
1079 |
Â
|
1080 |
+
#: classes/class.swpm-settings.php:63
|
1081 |
Â
msgid "Show Adminbar to Admin"
|
1082 |
+
msgstr "Mostrar la barra de administración al administrador"
|
1083 |
Â
|
1084 |
+
#: classes/class.swpm-settings.php:64
|
1085 |
Â
msgid ""
|
1086 |
Â
"Use this option if you want to show the admin toolbar to admin users only. "
|
1087 |
Â
"The admin toolbar will be hidden for all other users."
|
1088 |
Â
msgstr ""
|
1089 |
+
"Utiliza esta opción si deseas mostrar la barra de herramientas de "
|
1090 |
Â
"administración sólo a usuarios administradores. La barra de herramientas de "
|
1091 |
Â
"administración se ocultará para todos los demás usuarios."
|
1092 |
Â
|
1093 |
+
#: classes/class.swpm-settings.php:65
|
1094 |
Â
msgid "Disable Access to WP Dashboard"
|
1095 |
+
msgstr "Desactivar el acceso al escritorio de WP"
|
1096 |
Â
|
1097 |
+
#: classes/class.swpm-settings.php:66
|
1098 |
Â
msgid ""
|
1099 |
+
"WordPress allows a standard wp user to be able to go to the wp-admin URL and "
|
1100 |
Â
"access his profile from the wp dashbaord. Using this option will prevent any "
|
1101 |
Â
"non admin users from going to the wp dashboard."
|
1102 |
Â
msgstr ""
|
1103 |
+
"WordPress permite que un usuario estándar de wp pueda acceder a la URL de wp-"
|
1104 |
+
"admin y acceda a su perfil desde el escritorio de wp. Usando esta opción "
|
1105 |
+
"evitará que los usuarios que no sean administradores accedan al escritorio "
|
1106 |
+
"de wp."
|
1107 |
Â
|
1108 |
+
#: classes/class.swpm-settings.php:68 classes/class.swpm-settings.php:242
|
1109 |
Â
msgid "Default Account Status"
|
1110 |
Â
msgstr "Estado por defecto de la cuenta"
|
1111 |
Â
|
1112 |
+
#: classes/class.swpm-settings.php:71
|
1113 |
Â
msgid ""
|
1114 |
Â
"Select the default account status for newly registered users. If you want to "
|
1115 |
Â
"manually approve the members then you can set the status to \"Pending\"."
|
1116 |
Â
msgstr ""
|
1117 |
+
"Selecciona un estado de cuenta por defecto para los nuevos registros. Si "
|
1118 |
+
"deseas aprobar manualmente los miembros, puedes establecer el estado en "
|
1119 |
Â
"\"Pendiente\"."
|
1120 |
Â
|
1121 |
+
#: classes/class.swpm-settings.php:73
|
1122 |
Â
msgid "Members Must be Logged in to Comment"
|
1123 |
Â
msgstr "Los miembros deben estar conectados para comentar"
|
1124 |
Â
|
1125 |
+
#: classes/class.swpm-settings.php:74
|
1126 |
Â
msgid ""
|
1127 |
Â
"Enable this option if you only want the members of the site to be able to "
|
1128 |
Â
"post a comment."
|
1129 |
Â
msgstr ""
|
1130 |
+
"Activa esta opción si sólo deseas que los miembros del sitio puedan publicar "
|
1131 |
Â
"un comentario."
|
1132 |
Â
|
1133 |
+
#: classes/class.swpm-settings.php:83
|
1134 |
Â
msgid "Pages Settings"
|
1135 |
Â
msgstr "Ajustes de páginas"
|
1136 |
Â
|
1137 |
+
#: classes/class.swpm-settings.php:84
|
1138 |
Â
msgid "Login Page URL"
|
1139 |
+
msgstr "URL de la página de acceso"
|
1140 |
Â
|
1141 |
+
#: classes/class.swpm-settings.php:86
|
1142 |
Â
msgid "Registration Page URL"
|
1143 |
Â
msgstr "El URL de la página de registro"
|
1144 |
Â
|
1145 |
+
#: classes/class.swpm-settings.php:88
|
1146 |
Â
msgid "Join Us Page URL"
|
1147 |
+
msgstr "URL de la página de \"Únete a nosotros\""
|
1148 |
Â
|
1149 |
+
#: classes/class.swpm-settings.php:90
|
1150 |
Â
msgid "Edit Profile Page URL"
|
1151 |
+
msgstr "Editar URL de la página del perfil"
|
1152 |
Â
|
1153 |
+
#: classes/class.swpm-settings.php:92
|
1154 |
Â
msgid "Password Reset Page URL"
|
1155 |
+
msgstr "URL de la página de restablecimiento de la contraseña"
|
1156 |
Â
|
1157 |
+
#: classes/class.swpm-settings.php:95
|
1158 |
Â
msgid "Test & Debug Settings"
|
1159 |
Â
msgstr "Ajustes de prueba y depuración"
|
1160 |
Â
|
1161 |
+
#: classes/class.swpm-settings.php:97
|
1162 |
Â
msgid "Check this option to enable debug logging."
|
1163 |
+
msgstr "Selecciona esta opción para activar los registro de depuración."
|
1164 |
+
|
1165 |
+
#: classes/class.swpm-settings.php:98
|
1166 |
+
msgid ""
|
1167 |
+
" This can be useful when troubleshooting an issue. Turn it off and reset the "
|
1168 |
+
"log files after the troubleshooting is complete."
|
1169 |
+
msgstr ""
|
1170 |
+
" Esto puede ser útil para solucionar un problema. DesactÃvalo y restablece "
|
1171 |
+
"los archivos de registro una vez completada la solución del problema."
|
1172 |
+
|
1173 |
+
#: classes/class.swpm-settings.php:100
|
1174 |
+
msgid "View general debug log file by clicking "
|
1175 |
+
msgstr "Ver el archivo de registro de depuración general haciendo clic "
|
1176 |
+
|
1177 |
+
#: classes/class.swpm-settings.php:100 classes/class.swpm-settings.php:101
|
1178 |
+
#: classes/class.swpm-settings.php:102
|
1179 |
+
msgid "here"
|
1180 |
+
msgstr "aquÃ"
|
1181 |
+
|
1182 |
+
#: classes/class.swpm-settings.php:101
|
1183 |
+
msgid "View login related debug log file by clicking "
|
1184 |
+
msgstr ""
|
1185 |
+
"Ver el archivo de registro de depuración relacionado con el acceso haciendo "
|
1186 |
+
"clic "
|
1187 |
+
|
1188 |
+
#: classes/class.swpm-settings.php:102
|
1189 |
+
msgid "Reset debug log files by clicking "
|
1190 |
+
msgstr "Restablecer los archivos de registro de depuración haciendo clic "
|
1191 |
+
|
1192 |
+
#: classes/class.swpm-settings.php:103
|
1193 |
+
msgid "Enable Debug"
|
1194 |
+
msgstr "Activar depuración"
|
1195 |
Â
|
1196 |
+
#: classes/class.swpm-settings.php:105
|
1197 |
Â
msgid "Enable Sandbox Testing"
|
1198 |
Â
msgstr "Activar pruebas en sandbox"
|
1199 |
Â
|
1200 |
+
#: classes/class.swpm-settings.php:106
|
1201 |
Â
msgid "Enable this option if you want to do sandbox payment testing."
|
1202 |
+
msgstr "Activa esta opción si quieres hacer pagos de prueba en sandbox."
|
1203 |
Â
|
1204 |
+
#: classes/class.swpm-settings.php:119
|
1205 |
+
msgid "Email Settings Overview"
|
1206 |
+
msgstr "Visión general de ajustes de correo electrónico"
|
Â
|
|
Â
|
|
1207 |
Â
|
1208 |
+
#: classes/class.swpm-settings.php:120
|
1209 |
Â
msgid "Email Misc. Settings"
|
1210 |
Â
msgstr "Ajustes varios del correo electrónico"
|
1211 |
Â
|
1212 |
+
#: classes/class.swpm-settings.php:122
|
1213 |
Â
msgid "From Email Address"
|
1214 |
Â
msgstr "Remitente del correo electrónico"
|
1215 |
Â
|
1216 |
+
#: classes/class.swpm-settings.php:126
|
1217 |
Â
msgid "Email Settings (Prompt to Complete Registration )"
|
1218 |
+
msgstr "Ajustes del correo electrónico (Solicitud para completar el registro)"
|
Â
|
|
1219 |
Â
|
1220 |
+
#: classes/class.swpm-settings.php:127 classes/class.swpm-settings.php:140
|
1221 |
+
#: classes/class.swpm-settings.php:158 classes/class.swpm-settings.php:163
|
1222 |
+
#: classes/class.swpm-settings.php:168 classes/class.swpm-settings.php:173
|
Â
|
|
Â
|
|
1223 |
Â
msgid "Email Subject"
|
1224 |
Â
msgstr "Asunto del correo electrónico"
|
1225 |
Â
|
1226 |
+
#: classes/class.swpm-settings.php:129 classes/class.swpm-settings.php:142
|
1227 |
+
#: classes/class.swpm-settings.php:159 classes/class.swpm-settings.php:164
|
1228 |
+
#: classes/class.swpm-settings.php:169 classes/class.swpm-settings.php:174
|
Â
|
|
Â
|
|
1229 |
Â
msgid "Email Body"
|
1230 |
Â
msgstr "Cuerpo del correo electrónico"
|
1231 |
Â
|
1232 |
+
#: classes/class.swpm-settings.php:133
|
1233 |
Â
msgid ""
|
1234 |
Â
"Enter the email address where you want the admin notification email to be "
|
1235 |
Â
"sent to."
|
1236 |
Â
msgstr ""
|
1237 |
+
"Introduce la dirección de correo electrónico donde deseas que se envÃe la "
|
1238 |
+
"notificación de administrador."
|
1239 |
Â
|
1240 |
+
#: classes/class.swpm-settings.php:134
|
1241 |
Â
msgid ""
|
1242 |
Â
" You can put multiple email addresses separated by comma (,) in the above "
|
1243 |
Â
"field to send the notification to multiple email addresses."
|
1244 |
Â
msgstr ""
|
1245 |
+
" Puedes colocar varias direcciones de correo electrónico separadas por coma "
|
1246 |
Â
"(,) en el campo anterior para enviar la notificación a varias direcciones de "
|
1247 |
Â
"correo electrónico."
|
1248 |
Â
|
1249 |
+
#: classes/class.swpm-settings.php:136
|
1250 |
Â
msgid "Enter the subject for the admin notification email."
|
1251 |
Â
msgstr ""
|
1252 |
+
"Introduce el asunto para el correo electrónico de notificación del "
|
1253 |
Â
"administrador."
|
1254 |
Â
|
1255 |
+
#: classes/class.swpm-settings.php:137
|
1256 |
Â
msgid ""
|
1257 |
Â
"This email will be sent to the admin when a new user completes the "
|
1258 |
Â
"membership registration. Only works if you have enabled the \"Send "
|
1259 |
Â
"Notification to Admin\" option above."
|
1260 |
Â
msgstr ""
|
1261 |
Â
"Este correo electrónico se enviará al administrador cuando un nuevo usuario "
|
1262 |
+
"complete el registro de membresÃa. Sólo funciona si has activado la opción "
|
1263 |
+
"anterior \"Enviar notificación al administrador\"."
|
1264 |
Â
|
1265 |
+
#: classes/class.swpm-settings.php:139
|
1266 |
Â
msgid "Email Settings (Registration Complete)"
|
1267 |
+
msgstr "Ajustes del correo electrónico (el registro se ha completado)"
|
1268 |
Â
|
1269 |
+
#: classes/class.swpm-settings.php:144
|
1270 |
Â
msgid "Send Notification to Admin"
|
1271 |
+
msgstr "Enviar notificación al administrador"
|
1272 |
Â
|
1273 |
+
#: classes/class.swpm-settings.php:145
|
1274 |
Â
msgid ""
|
1275 |
Â
"Enable this option if you want the admin to receive a notification when a "
|
1276 |
Â
"member registers."
|
1277 |
Â
msgstr ""
|
1278 |
+
"Activa esta opción si deseas que el administrador reciba una notificación "
|
1279 |
Â
"cuando un miembro se registre."
|
1280 |
Â
|
1281 |
+
#: classes/class.swpm-settings.php:146
|
1282 |
Â
msgid "Admin Email Address"
|
1283 |
Â
msgstr "Dirección de correo electrónico del administrador"
|
1284 |
Â
|
1285 |
+
#: classes/class.swpm-settings.php:148
|
1286 |
Â
msgid "Admin Notification Email Subject"
|
1287 |
Â
msgstr "Asunto del correo electrónico de notificación de administrador"
|
1288 |
Â
|
1289 |
+
#: classes/class.swpm-settings.php:150
|
1290 |
Â
msgid "Admin Notification Email Body"
|
1291 |
Â
msgstr "Cuerpo de correo electrónico de notificación de administrador"
|
1292 |
Â
|
1293 |
+
#: classes/class.swpm-settings.php:153
|
1294 |
Â
msgid "Send Email to Member When Added via Admin Dashboard"
|
1295 |
Â
msgstr ""
|
1296 |
+
"EnvÃa un correo electrónico al miembro cuando ha sido añadido desde el "
|
1297 |
+
"escritorio de administración"
|
1298 |
Â
|
1299 |
+
#: classes/class.swpm-settings.php:157
|
1300 |
Â
msgid "Email Settings (Password Reset)"
|
1301 |
+
msgstr "Ajustes del correo electrónico (Restablecer contraseña)"
|
1302 |
Â
|
1303 |
+
#: classes/class.swpm-settings.php:162
|
1304 |
Â
msgid " Email Settings (Account Upgrade Notification)"
|
1305 |
Â
msgstr " Ajustes de correo electrónico (Notificación de mejora de la cuenta)"
|
1306 |
Â
|
1307 |
+
#: classes/class.swpm-settings.php:167
|
1308 |
Â
msgid " Email Settings (Bulk Account Activate Notification)"
|
1309 |
Â
msgstr ""
|
1310 |
+
" Ajustes de correo electrónico (notificación de activar la cuenta en lote)"
|
1311 |
Â
|
1312 |
+
#: classes/class.swpm-settings.php:172
|
1313 |
+
msgid " Email Settings (Email Activation)"
|
1314 |
+
msgstr " Ajustes de correo electrónico (Activación por correo electrónico)"
|
1315 |
+
|
1316 |
+
#: classes/class.swpm-settings.php:189
|
1317 |
Â
msgid "Enable Expired Account Login"
|
1318 |
Â
msgstr "Activar el acceso a la cuenta caducada"
|
1319 |
Â
|
1320 |
+
#: classes/class.swpm-settings.php:190
|
1321 |
Â
msgid ""
|
1322 |
Â
"When enabled, expired members will be able to log into the system but won't "
|
1323 |
Â
"be able to view any protected content. This allows them to easily renew "
|
1324 |
Â
"their account by making another payment."
|
1325 |
Â
msgstr ""
|
1326 |
+
"Cuando está activado, los miembros vencidos podrán acceder en el sistema "
|
1327 |
+
"pero no podrán ver ningún contenido protegido. Esto les permite renovar "
|
1328 |
+
"fácilmente su cuenta haciendo otro pago."
|
1329 |
Â
|
1330 |
+
#: classes/class.swpm-settings.php:192
|
1331 |
Â
msgid "Membership Renewal URL"
|
1332 |
+
msgstr "URL de renovación de membresÃa"
|
1333 |
Â
|
1334 |
+
#: classes/class.swpm-settings.php:193
|
1335 |
Â
msgid ""
|
1336 |
Â
"You can create a renewal page for your site. Read <a href=\"https://simple-"
|
1337 |
Â
"membership-plugin.com/creating-membership-renewal-button/\" target=\"_blank"
|
1338 |
Â
"\">this documentation</a> to learn how to create a renewal page."
|
1339 |
Â
msgstr ""
|
1340 |
+
"Puedes crear una página de renovación para tu sitio. Lee <a href=\"https://"
|
1341 |
Â
"simple-membership-plugin.com/creating-membership-renewal-button/\" target="
|
1342 |
+
"\"_blank\">esta documentación</a> para aprender cómo crear una página de "
|
1343 |
Â
"renovación."
|
1344 |
Â
|
1345 |
+
#: classes/class.swpm-settings.php:195
|
1346 |
+
msgid "After Registration Redirect URL"
|
1347 |
+
msgstr "URL de redirección después de registro"
|
1348 |
+
|
1349 |
+
#: classes/class.swpm-settings.php:196
|
1350 |
+
msgid ""
|
1351 |
+
"You can enter an URL here to redirect the members to this page after they "
|
1352 |
+
"submit the registration form. Read <a href=\"https://simple-membership-"
|
1353 |
+
"plugin.com/configure-after-registration-redirect-for-members/\" target="
|
1354 |
+
"\"_blank\">this documentation</a> to learn how to setup after registration "
|
1355 |
+
"redirect."
|
1356 |
+
msgstr ""
|
1357 |
+
"Puedes introducir una URL aquà para redirigir a los miembros a esta página "
|
1358 |
+
"después de que envÃen el formulario de registro. Lee <a href=\"https://"
|
1359 |
+
"simple-membership-plugin.com/configure-after-registration-redirect-for-"
|
1360 |
+
"members/\" target=\"_blank\">esta documentación</a> para aprender cómo "
|
1361 |
+
"configurar después de la redirección de registro."
|
1362 |
+
|
1363 |
+
#: classes/class.swpm-settings.php:198
|
1364 |
+
msgid "Enable Auto Login After Registration"
|
1365 |
+
msgstr "Activa el acceso automático después del registro"
|
1366 |
+
|
1367 |
+
#: classes/class.swpm-settings.php:199
|
1368 |
+
msgid ""
|
1369 |
+
"Use this option if you want the members to be automatically logged into your "
|
1370 |
+
"site right after they complete the registration. This option will override "
|
1371 |
+
"any after registration redirection and instead it will trigger the after "
|
1372 |
+
"login redirection. Read <a href=\"https://simple-membership-plugin.com/"
|
1373 |
+
"configure-auto-login-after-registration-members/\" target=\"_blank\">this "
|
1374 |
+
"documentation</a> to learn more."
|
1375 |
+
msgstr ""
|
1376 |
+
"Utiliza esta opción si deseas que los miembros se conecten automáticamente "
|
1377 |
+
"en tu sitio justo después de completar el registro. Esta opción anulará la "
|
1378 |
+
"redirección posterior al registro y, en su lugar, activará la redirección "
|
1379 |
+
"posterior de acceso. Lee <a href=\"https://simple-membership-plugin.com/"
|
1380 |
+
"configure-auto-login-after-registration-members/\" target=\"_blank\"> esta "
|
1381 |
+
"documentación </a> para saber más."
|
1382 |
+
|
1383 |
+
#: classes/class.swpm-settings.php:201
|
1384 |
+
msgid "After Logout Redirect URL"
|
1385 |
+
msgstr "Redirigir la URL después de cerrar sesión"
|
1386 |
+
|
1387 |
+
#: classes/class.swpm-settings.php:202
|
1388 |
+
msgid ""
|
1389 |
+
"You can enter an URL here to redirect the members to this page after they "
|
1390 |
+
"click the logout link to logout from your site."
|
1391 |
+
msgstr ""
|
1392 |
+
"Puedes introducir una URL aquà para redirigir a los miembros a esta página "
|
1393 |
+
"después de hacer clic en el enlace de cerrar sesión para cerrar la sesión en "
|
1394 |
+
"tu sitio."
|
1395 |
+
|
1396 |
+
#: classes/class.swpm-settings.php:204
|
1397 |
+
msgid "Logout Member on Browser Close"
|
1398 |
+
msgstr "Cerrar la sesión de miembro cuando se cierra el navegador"
|
1399 |
+
|
1400 |
+
#: classes/class.swpm-settings.php:205
|
1401 |
+
msgid ""
|
1402 |
+
"Enable this option if you want the member to be logged out of the account "
|
1403 |
+
"when he closes the browser."
|
1404 |
+
msgstr ""
|
1405 |
+
"Activar esta opción si deseas que el miembro se desconecte de la cuenta "
|
1406 |
+
"cuando cierra el navegador."
|
1407 |
+
|
1408 |
+
#: classes/class.swpm-settings.php:207
|
1409 |
Â
msgid "Allow Account Deletion"
|
1410 |
+
msgstr "Permite la eliminación de cuenta"
|
1411 |
Â
|
1412 |
+
#: classes/class.swpm-settings.php:208
|
1413 |
Â
msgid "Allow users to delete their accounts."
|
1414 |
+
msgstr "Permite a los usuarios eliminar sus cuentas."
|
1415 |
+
|
1416 |
+
#: classes/class.swpm-settings.php:210
|
1417 |
+
msgid "Force Strong Password for Members"
|
1418 |
+
msgstr "Forzar una contraseña segura para los miembros"
|
1419 |
+
|
1420 |
+
#: classes/class.swpm-settings.php:211
|
1421 |
+
msgid ""
|
1422 |
+
"Enable this if you want the users to be forced to use a strong password for "
|
1423 |
+
"their accounts."
|
1424 |
+
msgstr ""
|
1425 |
+
"Activa esto si deseas que los usuarios se vean obligados a utilizar una "
|
1426 |
+
"contraseña segura para sus cuentas."
|
1427 |
Â
|
1428 |
+
#: classes/class.swpm-settings.php:213
|
1429 |
Â
msgid "Use WordPress Timezone"
|
1430 |
+
msgstr "Usar zona horaria de WordPress"
|
1431 |
Â
|
1432 |
+
#: classes/class.swpm-settings.php:214
|
1433 |
Â
msgid ""
|
1434 |
Â
"Use this option if you want to use the timezone value specified in your "
|
1435 |
Â
"WordPress General Settings interface."
|
1436 |
Â
msgstr ""
|
1437 |
+
"Utiliza esta opción si deseas utilizar el valor de zona horaria especificado "
|
1438 |
+
"en la interfaz de ajustes general de WordPress."
|
1439 |
Â
|
1440 |
+
#: classes/class.swpm-settings.php:216
|
1441 |
Â
msgid "Auto Delete Pending Account"
|
1442 |
Â
msgstr "Borrar automáticamente las cuentas pendientes"
|
1443 |
Â
|
1444 |
+
#: classes/class.swpm-settings.php:219
|
1445 |
Â
msgid "Select how long you want to keep \"pending\" account."
|
1446 |
+
msgstr "Selecciona cuánto tiempo deseas mantener la cuenta \"pendiente\"."
|
1447 |
Â
|
1448 |
+
#: classes/class.swpm-settings.php:221
|
1449 |
Â
msgid "Admin Dashboard Access Permission"
|
1450 |
+
msgstr "Permiso de acceso al escritorio de administración"
|
1451 |
Â
|
1452 |
+
#: classes/class.swpm-settings.php:224
|
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"
|
1465 |
+
msgstr "Forzar la sincronización del usuario de WP"
|
1466 |
+
|
1467 |
+
#: classes/class.swpm-settings.php:227
|
1468 |
+
msgid ""
|
1469 |
+
"Enable this option if you want to force the member login to be synchronized "
|
1470 |
+
"with WP user account. This can be useful if you are using another plugin "
|
1471 |
+
"that uses WP user records. For example: bbPress plugin."
|
1472 |
+
msgstr ""
|
1473 |
+
"Activa esta opción si deseas forzar que se sincronice el acceso de miembro "
|
1474 |
+
"con la cuenta de usuario de WP. Esto puede ser útil si estas usando otro "
|
1475 |
+
"plugin que usa los registros de usuarios de WP. Por ejemplo: El plugin "
|
1476 |
+
"bbPress."
|
1477 |
+
|
1478 |
+
#: classes/class.swpm-settings.php:230
|
1479 |
+
msgid "Create Member Accounts for New WP Users"
|
1480 |
+
msgstr "Crear cuentas de miembros para nuevos usuarios de WP"
|
1481 |
+
|
1482 |
+
#: classes/class.swpm-settings.php:232
|
1483 |
+
msgid "Enable Auto Create Member Accounts"
|
1484 |
+
msgstr "Activar auto crear cuentas de miembros"
|
1485 |
+
|
1486 |
+
#: classes/class.swpm-settings.php:233
|
1487 |
+
msgid ""
|
1488 |
+
"Enable this option to automatically create member accounts for any new WP "
|
1489 |
+
"user that is created by another plugin."
|
1490 |
+
msgstr ""
|
1491 |
+
"Activa esta opción para crear automáticamente cuentas de miembro para "
|
1492 |
+
"cualquier usuario nuevo de WP creado por otro plugin."
|
1493 |
+
|
1494 |
+
#: classes/class.swpm-settings.php:236
|
1495 |
+
msgid "Default Membership Level"
|
1496 |
+
msgstr "Nivel de membresÃa por defecto"
|
1497 |
+
|
1498 |
+
#: classes/class.swpm-settings.php:239
|
1499 |
+
msgid ""
|
1500 |
+
"When automatically creating a member account using this feature, the "
|
1501 |
+
"membership level of the user will be set to the one you specify here."
|
1502 |
+
msgstr ""
|
1503 |
+
"Al crear automáticamente una cuenta de miembro utilizando esta "
|
1504 |
+
"caracterÃstica, el nivel de membresÃa del usuario se establecerá en el que "
|
1505 |
+
"especifiques aquÃ."
|
1506 |
+
|
1507 |
+
#: classes/class.swpm-settings.php:245
|
1508 |
+
msgid ""
|
1509 |
+
"When automatically creating a member account using this feature, the "
|
1510 |
+
"membership account status of the user will be set to the one you specify "
|
1511 |
+
"here."
|
1512 |
+
msgstr ""
|
1513 |
+
"Al crear automáticamente una cuenta de miembro utilizando esta "
|
1514 |
+
"caracterÃstica, el estado de la cuenta de membresÃa del usuario se "
|
1515 |
+
"establecerá en el que especifiques aquÃ."
|
1516 |
+
|
1517 |
+
#: classes/class.swpm-settings.php:247
|
1518 |
+
msgid "Payment Notification Forward URL"
|
1519 |
+
msgstr "URL de reenvÃo de aviso de pago"
|
1520 |
Â
|
1521 |
+
#: classes/class.swpm-settings.php:248
|
1522 |
+
msgid ""
|
1523 |
+
"You can enter an URL here to forward the payment notification after the "
|
1524 |
+
"membership payment has been processed by this plugin. Useful if you want to "
|
1525 |
+
"forward the payment notification to an external script for further "
|
1526 |
+
"processing."
|
1527 |
+
msgstr ""
|
1528 |
+
"Puedes introducir una URL aquà para reenviar el aviso de pago después de que "
|
1529 |
+
"este plugin haya procesado el pago de la membresÃa. Útil si deseas reenviar "
|
1530 |
+
"el aviso de pago a un script externo para más procesamiento."
|
1531 |
+
|
1532 |
+
#: classes/class.swpm-settings.php:251 views/add.php:65
|
1533 |
+
msgid "Terms and Conditions"
|
1534 |
+
msgstr "Términos y Condiciones"
|
1535 |
+
|
1536 |
+
#: classes/class.swpm-settings.php:253
|
1537 |
+
msgid "Enable Terms and Conditions"
|
1538 |
+
msgstr "Activar términos y condiciones"
|
1539 |
+
|
1540 |
+
#: classes/class.swpm-settings.php:254
|
1541 |
+
msgid "Users must accept the terms before they can complete the registration."
|
1542 |
+
msgstr ""
|
1543 |
+
"Los usuarios deben aceptar los términos antes de que puedan completar el "
|
1544 |
+
"registro."
|
1545 |
+
|
1546 |
+
#: classes/class.swpm-settings.php:255
|
1547 |
+
msgid "Terms and Conditions Page URL"
|
1548 |
+
msgstr "URL de la página de Términos y condiciones"
|
1549 |
+
|
1550 |
+
#: classes/class.swpm-settings.php:256
|
1551 |
+
msgid ""
|
1552 |
+
"Enter the URL of your terms and conditions page. You can create a WordPress "
|
1553 |
+
"page and specify your terms in there then specify the URL of that page in "
|
1554 |
+
"the above field."
|
1555 |
+
msgstr ""
|
1556 |
+
"Introduce la URL de tu página de términos y condiciones. Puedes crear una "
|
1557 |
+
"página de WordPress y especificar tus términos allÃ, luego introduce la URL "
|
1558 |
+
"de esa página en el campo de arriba."
|
1559 |
+
|
1560 |
+
#: classes/class.swpm-settings.php:257
|
1561 |
+
msgid "Enable Privacy Policy"
|
1562 |
+
msgstr "Activar polÃtica de privacidad"
|
1563 |
+
|
1564 |
+
#: classes/class.swpm-settings.php:258
|
1565 |
+
msgid "Users must accept it before they can complete the registration."
|
1566 |
+
msgstr ""
|
1567 |
+
"Los usuarios deben aceptarlo antes de que puedan completar el registro."
|
1568 |
+
|
1569 |
+
#: classes/class.swpm-settings.php:259
|
1570 |
+
msgid "Privacy Policy Page URL"
|
1571 |
+
msgstr "URL de la página de PolÃtica de privacidad"
|
1572 |
+
|
1573 |
+
#: classes/class.swpm-settings.php:260
|
1574 |
+
msgid "Enter the URL of your privacy policy page."
|
1575 |
+
msgstr "Introduce la URL de tu página de polÃtica de privacidad."
|
1576 |
+
|
1577 |
+
#: classes/class.swpm-settings.php:350 classes/class.swpm-settings.php:396
|
1578 |
+
#: classes/class.swpm-settings.php:425
|
1579 |
+
msgid "Settings updated!"
|
1580 |
+
msgstr "¡Ajustes actualizados!"
|
1581 |
+
|
1582 |
+
#: classes/class.swpm-settings.php:355
|
1583 |
Â
msgid "General Plugin Settings."
|
1584 |
+
msgstr "Ajustes generales del plugin."
|
1585 |
Â
|
1586 |
+
#: classes/class.swpm-settings.php:359
|
1587 |
Â
msgid "Page Setup and URL Related settings."
|
1588 |
+
msgstr "Ajustes de la página y la configuración de las URL relacionadas."
|
1589 |
Â
|
1590 |
+
#: classes/class.swpm-settings.php:362
|
1591 |
+
msgid ""
|
1592 |
+
"The following pages are required for the plugin to function correctly. These "
|
1593 |
+
"pages were automatically created by the plugin at install time."
|
1594 |
+
msgstr ""
|
1595 |
+
"Las siguientes páginas son necesarias para que el plugin funcione "
|
1596 |
+
"correctamente. Estas páginas fueron creadas automáticamente por el plugin "
|
1597 |
+
"cuando se instaló."
|
1598 |
+
|
1599 |
+
#: classes/class.swpm-settings.php:367
|
1600 |
Â
msgid "Testing and Debug Related Settings."
|
1601 |
Â
msgstr "Pruebas y ajustes relacionados con depuración."
|
1602 |
Â
|
1603 |
+
#: classes/class.swpm-settings.php:371
|
1604 |
Â
msgid ""
|
1605 |
Â
"This email will be sent to your users when they complete the registration "
|
1606 |
Â
"and become a member."
|
1607 |
Â
msgstr ""
|
1608 |
+
"Este correo electrónico se enviará a tus usuarios cuando completen el "
|
1609 |
Â
"registro y se conviertan en miembros."
|
1610 |
Â
|
1611 |
+
#: classes/class.swpm-settings.php:375
|
1612 |
Â
msgid ""
|
1613 |
Â
"This email will be sent to your users when they use the password reset "
|
1614 |
Â
"functionality."
|
1615 |
Â
msgstr ""
|
1616 |
+
"Este correo electrónico se enviará a tus usuarios cuando utilicen la "
|
1617 |
+
"funcionalidad de restablecimiento de contraseña."
|
1618 |
Â
|
1619 |
+
#: classes/class.swpm-settings.php:381
|
1620 |
+
msgid ""
|
1621 |
+
"This interface lets you custsomize the various emails that gets sent to your "
|
1622 |
+
"members for various actions. The default settings should be good to get your "
|
1623 |
+
"started."
|
1624 |
+
msgstr ""
|
1625 |
+
"Esta interfaz te permite personalizar los diversos correos electrónicos que "
|
1626 |
+
"se envÃan a tus miembros para diversas acciones. La configuración por "
|
1627 |
+
"defecto deberÃa ser buena para comenzar."
|
1628 |
+
|
1629 |
+
#: classes/class.swpm-settings.php:385 views/admin_tools_settings.php:82
|
1630 |
+
msgid "This documentation"
|
1631 |
+
msgstr "Esta documentación"
|
1632 |
+
|
1633 |
+
#: classes/class.swpm-settings.php:386
|
1634 |
+
msgid ""
|
1635 |
+
" explains what email merge tags you can use in the email body field to "
|
1636 |
+
"customize it (if you want to)."
|
1637 |
+
msgstr ""
|
1638 |
+
" explica qué etiquetas de combinación de correo electrónico puedes usar en "
|
1639 |
+
"el campo de cuerpo de correo electrónico para personalizarlo (si lo deseas)."
|
1640 |
+
|
1641 |
+
#: classes/class.swpm-settings.php:399
|
1642 |
Â
msgid "Settings in this section apply to all emails."
|
1643 |
Â
msgstr ""
|
1644 |
Â
"Los ajustes de esta sección se aplican a todos los correos electrónicos."
|
1645 |
Â
|
1646 |
+
#: classes/class.swpm-settings.php:403
|
1647 |
Â
msgid ""
|
1648 |
Â
"This email will be sent to your users after account upgrade (when an "
|
1649 |
Â
"existing member pays for a new membership level)."
|
1650 |
Â
msgstr ""
|
1651 |
+
"Este correo electrónico se enviará a tus usuarios después de la "
|
1652 |
Â
"actualización de cuenta (cuando un miembro existente paga por un nuevo nivel "
|
1653 |
Â
"de membresÃa)."
|
1654 |
Â
|
1655 |
+
#: classes/class.swpm-settings.php:407
|
1656 |
Â
msgid ""
|
1657 |
Â
"This email will be sent to your members when you use the bulk account "
|
1658 |
Â
"activate and notify action."
|
1659 |
Â
msgstr ""
|
1660 |
+
"Este correo electrónico se enviará a tus miembros cuando uses la acción de "
|
1661 |
+
"activar y notificar la cuenta en lote."
|
1662 |
+
|
1663 |
+
#: classes/class.swpm-settings.php:408
|
1664 |
+
msgid ""
|
1665 |
+
" You cannot use email merge tags in this email. You can only use generic "
|
1666 |
+
"text."
|
1667 |
+
msgstr ""
|
1668 |
+
" No puedes usar etiquetas de combinación de correo electrónico en este "
|
1669 |
+
"correo electrónico. Solo puedes usar texto genérico."
|
1670 |
+
|
1671 |
+
#: classes/class.swpm-settings.php:413
|
1672 |
+
msgid ""
|
1673 |
+
"This email will be sent if Email Activation is enabled for a Membership "
|
1674 |
+
"Level."
|
1675 |
+
msgstr ""
|
1676 |
+
"Este correo electrónico se enviará si la activación de correo electrónico "
|
1677 |
+
"está activada para un nivel de membresÃa."
|
1678 |
Â
|
1679 |
+
#: classes/class.swpm-settings.php:417
|
1680 |
Â
msgid ""
|
1681 |
Â
"This email will be sent to prompt users to complete registration after the "
|
1682 |
Â
"payment."
|
1684 |
Â
"Este correo electrónico se enviará a los usuarios para completar el registro "
|
1685 |
Â
"después del pago."
|
1686 |
Â
|
1687 |
+
#: classes/class.swpm-settings.php:428
|
1688 |
Â
msgid "This page allows you to configure some advanced features of the plugin."
|
1689 |
Â
msgstr ""
|
1690 |
+
"Esta página te permite configurar algunas caracterÃsticas avanzadas del "
|
1691 |
+
"plugin."
|
1692 |
Â
|
1693 |
+
#: classes/class.swpm-settings.php:432
|
1694 |
+
msgid ""
|
1695 |
+
"This section allows you to configure automatic creation of member accounts "
|
1696 |
+
"when new WP User records are created by another plugin. It can be useful if "
|
1697 |
+
"you are using another plugin that creates WP user records and you want them "
|
1698 |
+
"to be recognized in the membership plugin."
|
1699 |
+
msgstr ""
|
1700 |
+
"Esta sección te permite configurar la creación automática de cuentas de "
|
1701 |
+
"miembros cuando otro plugin crea nuevos registros de usuario de WP. Puede "
|
1702 |
+
"ser útil si estás utilizando otro plugin que crea registros de usuarios de "
|
1703 |
+
"WP y deseas que sean reconocidos en el plugin de membresÃa."
|
1704 |
+
|
1705 |
+
#: classes/class.swpm-settings.php:436
|
1706 |
+
msgid ""
|
1707 |
+
"This section allows you to configure terms and conditions and privacy policy "
|
1708 |
+
"that users must accept at registration time."
|
1709 |
+
msgstr ""
|
1710 |
+
"Esta sección te permite configurar los términos y condiciones y la polÃtica "
|
1711 |
+
"de privacidad que los usuarios deben aceptar en el momento del registro."
|
1712 |
+
|
1713 |
+
#: classes/class.swpm-settings.php:565
|
1714 |
Â
msgid "Simple WP Membership::Settings"
|
1715 |
Â
msgstr "Simple WP Membership::Ajustes"
|
1716 |
Â
|
1717 |
+
#: classes/class.swpm-utils-member.php:36
|
1718 |
+
#: classes/class.swpm-utils-member.php:44
|
1719 |
+
#: classes/class.swpm-utils-member.php:52
|
1720 |
+
#: classes/class.swpm-utils-member.php:62
|
1721 |
Â
msgid "User is not logged in."
|
1722 |
Â
msgstr "El usuario no está conectado."
|
1723 |
Â
|
1724 |
+
#: classes/class.swpm-utils-member.php:80
|
1725 |
+
msgid "No Expiry"
|
1726 |
+
msgstr "Sin caducidad"
|
1727 |
+
|
1728 |
+
#: classes/class.swpm-utils-misc.php:50
|
1729 |
Â
msgid "Registration"
|
1730 |
Â
msgstr "Registro"
|
1731 |
Â
|
1732 |
+
#: classes/class.swpm-utils-misc.php:73
|
1733 |
Â
msgid "Member Login"
|
1734 |
Â
msgstr "Acceso de miembro"
|
1735 |
Â
|
1736 |
+
#: classes/class.swpm-utils-misc.php:96
|
1737 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:117
|
1738 |
Â
msgid "Profile"
|
1739 |
Â
msgstr "Perfil"
|
1740 |
Â
|
1741 |
+
#: classes/class.swpm-utils-misc.php:119
|
1742 |
Â
msgid "Password Reset"
|
1743 |
Â
msgstr "Restablecer la contraseña"
|
1744 |
Â
|
1745 |
+
#: classes/class.swpm-utils-misc.php:168
|
1746 |
+
#, php-format
|
1747 |
+
msgid ""
|
1748 |
+
"You will be automatically redirected in a few seconds. If not, please %s."
|
1749 |
+
msgstr ""
|
1750 |
+
"Serás redirigido automáticamente en unos pocos segundos. Si no, por favor %s."
|
1751 |
+
|
1752 |
+
#: classes/class.swpm-utils-misc.php:172
|
1753 |
+
msgid "Action Status"
|
1754 |
+
msgstr "Estado de la acción"
|
1755 |
+
|
1756 |
+
#: classes/class.swpm-utils-misc.php:274
|
1757 |
Â
msgid "Not a Member?"
|
1758 |
Â
msgstr "¿Aún no eres miembro?"
|
1759 |
Â
|
1760 |
+
#: classes/class.swpm-utils-misc.php:285
|
1761 |
Â
msgid "renew"
|
1762 |
Â
msgstr "renovar"
|
1763 |
Â
|
1764 |
+
#: classes/class.swpm-utils-misc.php:285
|
1765 |
Â
msgid " your account to gain access to this content."
|
1766 |
+
msgstr " tu cuenta para acceder a este contenido."
|
1767 |
Â
|
1768 |
+
#: classes/class.swpm-utils-misc.php:343 classes/class.swpm-utils-misc.php:349
|
Â
|
|
1769 |
Â
msgid "Error! This action ("
|
1770 |
Â
msgstr "¡Error! Esta acción ("
|
1771 |
Â
|
1772 |
+
#: classes/class.swpm-utils-misc.php:421
|
1773 |
+
msgid "(Please Select)"
|
1774 |
+
msgstr "(Por favor, elige)"
|
1775 |
+
|
1776 |
+
#: classes/class.swpm-utils-template.php:38
|
1777 |
Â
msgid "Error! Failed to find a template path for the specified template: "
|
1778 |
Â
msgstr ""
|
1779 |
+
"¡Error! No se pudo encontrar una ruta de plantilla para la plantilla "
|
1780 |
Â
"especificada: "
|
1781 |
Â
|
1782 |
+
#: classes/class.swpm-utils.php:101
|
1783 |
Â
msgid "Never"
|
1784 |
Â
msgstr "Nunca"
|
1785 |
Â
|
1786 |
+
#: classes/class.swpm-utils.php:116 views/admin_members_list.php:19
|
1787 |
Â
msgid "Active"
|
1788 |
+
msgstr "Activada"
|
1789 |
Â
|
1790 |
+
#: classes/class.swpm-utils.php:117 views/admin_members_list.php:20
|
1791 |
Â
msgid "Inactive"
|
1792 |
Â
msgstr "Inactivo"
|
1793 |
Â
|
1794 |
+
#: classes/class.swpm-utils.php:118 views/admin_members_list.php:21
|
1795 |
+
msgid "Activation Required"
|
1796 |
+
msgstr "Activación obligatoria"
|
1797 |
+
|
1798 |
+
#: classes/class.swpm-utils.php:119 views/admin_members_list.php:22
|
1799 |
Â
msgid "Pending"
|
1800 |
Â
msgstr "Pendiente"
|
1801 |
Â
|
1802 |
+
#: classes/class.swpm-utils.php:120 views/admin_members_list.php:24
|
1803 |
Â
msgid "Expired"
|
1804 |
Â
msgstr "Caducado"
|
1805 |
Â
|
1806 |
+
#: classes/class.swpm-utils.php:414 views/account_delete_warning.php:3
|
1807 |
Â
msgid "Delete Account"
|
1808 |
Â
msgstr "Borrar cuenta"
|
1809 |
Â
|
1810 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:75
|
1811 |
Â
msgid "Payment Button ID"
|
1812 |
Â
msgstr "ID del botón de pago"
|
1813 |
Â
|
1814 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:76
|
1815 |
Â
msgid "Payment Button Title"
|
1816 |
Â
msgstr "TÃtulo del botón de pago"
|
1817 |
Â
|
1818 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:77
|
1819 |
Â
msgid "Membership Level ID"
|
1820 |
Â
msgstr "ID de nivel de membresÃa"
|
1821 |
Â
|
1822 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:78
|
1823 |
Â
msgid "Button Type"
|
1824 |
Â
msgstr "Tipo de botón"
|
1825 |
Â
|
1826 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:79
|
1827 |
Â
msgid "Button Shortcode"
|
1828 |
+
msgstr "Botón del shortcode"
|
1829 |
Â
|
1830 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:127
|
1831 |
+
#: views/admin_members_list.php:9
|
1832 |
+
#: views/payments/admin_all_payment_transactions.php:32
|
1833 |
Â
msgid "The selected entry was deleted!"
|
1834 |
Â
msgstr "¡La entrada seleccionada fue borrada!"
|
1835 |
Â
|
1836 |
+
#: classes/admin-includes/class.swpm-payments-admin-menu.php:21
|
1837 |
Â
msgid "Simple Membership::Payments"
|
1838 |
Â
msgstr "Simple Membership::Pagos"
|
1839 |
Â
|
1840 |
+
#: classes/admin-includes/class.swpm-payments-admin-menu.php:25
|
1841 |
Â
msgid "Transactions"
|
1842 |
Â
msgstr "Transacciones"
|
1843 |
Â
|
1844 |
+
#: classes/admin-includes/class.swpm-payments-admin-menu.php:26
|
1845 |
Â
msgid "Manage Payment Buttons"
|
1846 |
+
msgstr "Administrar botones de pago"
|
1847 |
Â
|
1848 |
+
#: classes/admin-includes/class.swpm-payments-admin-menu.php:27
|
1849 |
+
#: views/payments/admin_payment_buttons.php:27
|
1850 |
Â
msgid "Create New Button"
|
1851 |
Â
msgstr "Crear nuevo botón"
|
1852 |
Â
|
1853 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:57
|
1854 |
+
#: views/template-1.php:95 views/template-2.php:97
|
1855 |
Â
msgid "View Profile"
|
1856 |
Â
msgstr "Ver perfil"
|
1857 |
Â
|
1858 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:76
|
1859 |
Â
msgid "Row ID"
|
1860 |
+
msgstr "ID de la fila"
|
1861 |
Â
|
1862 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:77
|
1863 |
+
#: views/forgot_password.php:5
|
1864 |
Â
msgid "Email Address"
|
1865 |
Â
msgstr "Dirección de correo electrónico"
|
1866 |
Â
|
1867 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:80
|
1868 |
Â
msgid "Member Profile"
|
1869 |
+
msgstr "Perfil de miembro"
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1870 |
Â
|
1871 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:82
|
1872 |
Â
msgid "Transaction ID"
|
1873 |
Â
msgstr "ID de transacción"
|
1874 |
Â
|
1875 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:83
|
1876 |
Â
msgid "Subscriber ID"
|
1877 |
+
msgstr "ID del suscriptor"
|
1878 |
Â
|
1879 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:84
|
1880 |
Â
msgid "Amount"
|
1881 |
Â
msgstr "Cantidad"
|
1882 |
Â
|
1883 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:60
|
1884 |
Â
msgid "Your membership profile will be updated to reflect the payment."
|
1885 |
Â
msgstr "Tu perfil de membresÃa se actualizará para reflejar el pago."
|
1886 |
Â
|
1887 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:61
|
1888 |
Â
msgid "Your profile username: "
|
1889 |
+
msgstr "Nombre de usuario de tu perfil: "
|
1890 |
Â
|
1891 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:73
|
1892 |
Â
msgid "Click on the following link to complete the registration."
|
1893 |
Â
msgstr "Haga clic en el siguiente enlace para completar el registro."
|
1894 |
Â
|
1895 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:74
|
1896 |
Â
msgid "Click here to complete your paid registration"
|
1897 |
Â
msgstr "Haz clic aquà para completar tu registro de pago"
|
1898 |
Â
|
1899 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:79
|
1900 |
Â
msgid ""
|
1901 |
Â
"If you have just made a membership payment then your payment is yet to be "
|
1902 |
Â
"processed. Please check back in a few minutes. An email will be sent to you "
|
1906 |
Â
"procesado. Por favor vuelve a revisarlo en unos minutos. Un correo "
|
1907 |
Â
"electrónico te será enviado con los detalles en breve."
|
1908 |
Â
|
1909 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:93
|
1910 |
Â
msgid "Expiry: "
|
1911 |
Â
msgstr "Caducidad: "
|
1912 |
Â
|
1913 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:95
|
1914 |
Â
msgid "You are not logged-in as a member"
|
1915 |
+
msgstr "No estás conectado como miembro"
|
1916 |
+
|
1917 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:115
|
1918 |
+
msgid "Logged in as: "
|
1919 |
+
msgstr "Conectado como: "
|
1920 |
+
|
1921 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:118
|
1922 |
+
#: views/loggedin.php:31
|
1923 |
+
msgid "Logout"
|
1924 |
+
msgstr "Cerrar sesión"
|
1925 |
+
|
1926 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:121
|
1927 |
+
msgid "Login Here"
|
1928 |
+
msgstr "Accede aquÃ"
|
1929 |
+
|
1930 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:122
|
1931 |
+
msgid "Not a member? "
|
1932 |
+
msgstr "¿No eres miembro? "
|
1933 |
+
|
1934 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:123
|
1935 |
+
msgid "Join Now"
|
1936 |
+
msgstr "Únete ahora"
|
1937 |
+
|
1938 |
+
#: ipn/swpm-smart-checkout-ipn.php:260 ipn/swpm-smart-checkout-ipn.php:285
|
1939 |
+
#, php-format
|
1940 |
+
msgid "Error occured during payment verification. Error code: %d. Message: %s"
|
1941 |
+
msgstr ""
|
1942 |
+
"Se ha producido un error durante la verificación del pago. Código de error: "
|
1943 |
+
"%d. Mensaje: %s"
|
1944 |
+
|
1945 |
+
#: ipn/swpm-smart-checkout-ipn.php:298
|
1946 |
+
#, php-format
|
1947 |
+
msgid ""
|
1948 |
+
"Payment check failed: invalid amount received. Expected %s %s, got %s %s."
|
1949 |
+
msgstr ""
|
1950 |
+
"Error en la comprobación de pago: se ha recibido la cantidad no válida. Se "
|
1951 |
+
"esperaba %s %s, pero recibà %s %s."
|
1952 |
+
|
1953 |
+
#: ipn/swpm-smart-checkout-ipn.php:315
|
1954 |
+
msgid "Empty payment data received."
|
1955 |
+
msgstr "Datos de pago vacÃos recibidos."
|
1956 |
+
|
1957 |
+
#: ipn/swpm-smart-checkout-ipn.php:355
|
1958 |
+
msgid "IPN product validation failed. Check debug log for more details."
|
1959 |
+
msgstr ""
|
1960 |
+
"La validación del producto IPN falló. Comprueba el registro de depuración "
|
1961 |
+
"para más detalles."
|
1962 |
+
|
1963 |
+
#: views/account_delete_warning.php:7
|
1964 |
+
msgid ""
|
1965 |
+
"You are about to delete an account. This will delete user data associated "
|
1966 |
+
"with this account. "
|
1967 |
+
msgstr ""
|
1968 |
+
"Estás a punto de borrar una cuenta. Esto eliminará los datos de usuario "
|
1969 |
+
"asociados con esta cuenta. "
|
1970 |
Â
|
1971 |
+
#: views/account_delete_warning.php:8
|
1972 |
+
msgid "It will also delete associated WordPress user account."
|
1973 |
+
msgstr "También borrara la cuenta de usuario de WordPress asociada."
|
1974 |
+
|
1975 |
+
#: views/account_delete_warning.php:9
|
1976 |
+
msgid ""
|
1977 |
+
"(NOTE: for safety, we do not allow deletion of any associated WordPress "
|
1978 |
+
"account with administrator role)."
|
1979 |
+
msgstr ""
|
1980 |
+
"(NOTA: por seguridad, no permitimos borrar ninguna cuenta de WordPress "
|
1981 |
+
"asociada con el perfil de administrador)."
|
1982 |
+
|
1983 |
+
#: views/account_delete_warning.php:10
|
1984 |
+
msgid "Continue?"
|
1985 |
+
msgstr "¿Continuar?"
|
1986 |
+
|
1987 |
+
#: views/account_delete_warning.php:13
|
1988 |
+
msgid "Password: "
|
1989 |
+
msgstr "Contraseña: "
|
1990 |
+
|
1991 |
+
#: views/account_delete_warning.php:14
|
1992 |
+
msgid "Confirm Account Deletion"
|
1993 |
+
msgstr "Confirmar eliminación de cuenta"
|
1994 |
+
|
1995 |
+
#: views/add.php:24 views/admin_add.php:19 views/admin_edit.php:44
|
1996 |
+
#: views/edit.php:31 views/login.php:17
|
1997 |
Â
msgid "Password"
|
1998 |
Â
msgstr "Contraseña"
|
1999 |
Â
|
2000 |
+
#: views/add.php:28 views/edit.php:35
|
2001 |
Â
msgid "Repeat Password"
|
2002 |
Â
msgstr "Repetir contraseña"
|
2003 |
Â
|
2004 |
+
#: views/add.php:65
|
2005 |
+
msgid "I accept the "
|
2006 |
+
msgstr "Acepto los "
|
2007 |
+
|
2008 |
+
#: views/add.php:77
|
2009 |
+
msgid "I agree to the "
|
2010 |
+
msgstr "Estoy de acuerdo con la "
|
2011 |
+
|
2012 |
+
#: views/add.php:77
|
2013 |
+
msgid "Privacy Policy"
|
2014 |
+
msgstr "PolÃtica de privacidad"
|
2015 |
+
|
2016 |
+
#: views/add.php:88
|
2017 |
Â
msgid "Register"
|
2018 |
Â
msgstr "Registrarse"
|
2019 |
Â
|
2020 |
+
#: views/admin_add.php:7
|
2021 |
Â
msgid "Create a brand new user and add it to this site."
|
2022 |
Â
msgstr "Crear un nuevo usuario y agregarlo a esta web."
|
2023 |
Â
|
2024 |
+
#: views/admin_add.php:11 views/admin_add.php:15 views/admin_add_level.php:12
|
2025 |
+
#: views/admin_add_level.php:16 views/admin_add_level.php:20
|
2026 |
+
#: views/admin_edit.php:19 views/admin_edit.php:40
|
2027 |
+
#: views/admin_edit_level.php:16 views/admin_edit_level.php:20
|
2028 |
+
#: views/admin_edit_level.php:24
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
2029 |
Â
msgid "(required)"
|
2030 |
Â
msgstr "(obligatorio)"
|
2031 |
Â
|
2032 |
+
#: views/admin_add.php:15 views/admin_edit.php:40
|
Â
|
|
2033 |
Â
msgid "E-mail"
|
2034 |
Â
msgstr "Correo electrónico"
|
2035 |
Â
|
2036 |
+
#: views/admin_add.php:19
|
2037 |
Â
msgid "(twice, required)"
|
2038 |
Â
msgstr "(dos veces, obligatorio)"
|
2039 |
Â
|
2040 |
+
#: views/admin_add.php:24 views/admin_edit.php:48
|
Â
|
|
2041 |
Â
msgid "Strength indicator"
|
2042 |
Â
msgstr "Indicador de fortaleza"
|
2043 |
Â
|
2044 |
+
#: views/admin_add.php:25 views/admin_edit.php:49
|
Â
|
|
2045 |
Â
msgid ""
|
2046 |
Â
"Hint: The password should be at least seven characters long. To make it "
|
2047 |
Â
"stronger, use upper and lower case letters, numbers and symbols like ! \" ? "
|
2051 |
Â
"fuerte utiliza mayúsculas y minúsculas, números y sÃmbolos como ! \" ? $ % ^ "
|
2052 |
Â
"& )."
|
2053 |
Â
|
2054 |
+
#: views/admin_add.php:29 views/admin_edit.php:53 views/loggedin.php:10
|
Â
|
|
Â
|
|
2055 |
Â
msgid "Account Status"
|
2056 |
Â
msgstr "Estado de la cuenta"
|
2057 |
Â
|
2058 |
+
#: views/admin_add.php:39
|
2059 |
Â
msgid "Add New Member "
|
2060 |
Â
msgstr "Añadir nuevo miembro "
|
2061 |
Â
|
2062 |
+
#: views/admin_addon_settings.php:3
|
2063 |
Â
msgid ""
|
2064 |
Â
"Some of the simple membership plugin's addon settings and options will be "
|
2065 |
Â
"displayed here (if you have them)"
|
2066 |
Â
msgstr ""
|
2067 |
+
"Algunos de los ajustes y opciones de las extensiones de simple membership "
|
2068 |
+
"plugin se mostrarán aquà (si los tienes)"
|
2069 |
Â
|
2070 |
+
#: views/admin_addon_settings.php:8
|
2071 |
Â
msgid "Save Changes"
|
2072 |
Â
msgstr "Guardar cambios"
|
2073 |
Â
|
2074 |
+
#: views/admin_add_level.php:6
|
2075 |
+
msgid "Add Membership Level"
|
2076 |
+
msgstr "Añadir nuevo nivel de membresÃa"
|
2077 |
+
|
2078 |
+
#: views/admin_add_level.php:7
|
2079 |
Â
msgid "Create new membership level."
|
2080 |
Â
msgstr "Crear un nuevo nivel de membresÃa."
|
2081 |
Â
|
2082 |
+
#: views/admin_add_level.php:12 views/admin_edit_level.php:16
|
Â
|
|
2083 |
Â
msgid "Membership Level Name"
|
2084 |
Â
msgstr "Nombre del nivel de membresÃa"
|
2085 |
Â
|
2086 |
+
#: views/admin_add_level.php:16 views/admin_edit_level.php:20
|
Â
|
|
2087 |
Â
msgid "Default WordPress Role"
|
2088 |
Â
msgstr "Perfil por defecto de WordPress"
|
2089 |
Â
|
2090 |
+
#: views/admin_add_level.php:20 views/admin_edit_level.php:24
|
Â
|
|
2091 |
Â
msgid "Access Duration"
|
2092 |
Â
msgstr "Duración del acceso"
|
2093 |
Â
|
2094 |
+
#: views/admin_add_level.php:23
|
2095 |
Â
msgid "No Expiry (Access for this level will not expire until cancelled"
|
2096 |
+
msgstr ""
|
2097 |
+
"Sin caducidad (el acceso a este nivel no expirará hasta que se cancele)"
|
2098 |
+
|
2099 |
+
#: views/admin_add_level.php:24 views/admin_add_level.php:26
|
2100 |
+
#: views/admin_add_level.php:28 views/admin_add_level.php:30
|
2101 |
+
#: views/admin_edit_level.php:28 views/admin_edit_level.php:31
|
2102 |
+
#: views/admin_edit_level.php:34 views/admin_edit_level.php:37
|
Â
|
|
Â
|
|
Â
|
|
2103 |
Â
msgid "Expire After"
|
2104 |
+
msgstr "Caduca después de"
|
2105 |
Â
|
2106 |
+
#: views/admin_add_level.php:25 views/admin_edit_level.php:29
|
Â
|
|
2107 |
Â
msgid "Days (Access expires after given number of days)"
|
2108 |
Â
msgstr "DÃas (el acceso caduca después del número establecido de dÃas)"
|
2109 |
Â
|
2110 |
+
#: views/admin_add_level.php:27
|
2111 |
Â
msgid "Weeks (Access expires after given number of weeks"
|
2112 |
Â
msgstr "Semanas (el acceso caduca después del número establecido de semanas"
|
2113 |
Â
|
2114 |
+
#: views/admin_add_level.php:29 views/admin_edit_level.php:35
|
Â
|
|
2115 |
Â
msgid "Months (Access expires after given number of months)"
|
2116 |
+
msgstr "Meses (El acceso caduca después del número establecido de meses)"
|
2117 |
Â
|
2118 |
+
#: views/admin_add_level.php:31 views/admin_edit_level.php:38
|
Â
|
|
2119 |
Â
msgid "Years (Access expires after given number of years)"
|
2120 |
Â
msgstr "Años (el acceso caduca después del número establecido de años)"
|
2121 |
Â
|
2122 |
+
#: views/admin_add_level.php:32 views/admin_edit_level.php:40
|
Â
|
|
2123 |
Â
msgid "Fixed Date Expiry"
|
2124 |
+
msgstr "Fecha de caducidad fija"
|
2125 |
Â
|
2126 |
+
#: views/admin_add_level.php:33 views/admin_edit_level.php:41
|
Â
|
|
2127 |
Â
msgid "(Access expires on a fixed date)"
|
2128 |
Â
msgstr "(El acceso caduca en una fecha establecida)"
|
2129 |
Â
|
2130 |
+
#: views/admin_add_level.php:38 views/admin_edit_level.php:46
|
2131 |
+
msgid "Email Activation"
|
2132 |
+
msgstr "Activación por correo electrónico"
|
2133 |
+
|
2134 |
+
#: views/admin_add_level.php:43
|
2135 |
+
msgid ""
|
2136 |
+
"Enable new user activation via email. When enabled, members will need to "
|
2137 |
+
"click on an activation link that is sent to their email address to activate "
|
2138 |
+
"the account. Useful for free membership. "
|
2139 |
+
msgstr ""
|
2140 |
+
"Activa la activación del nuevo usuario a través de correo electrónico. "
|
2141 |
+
"Cuando esté activado, los miembros deberán hacer clic en un enlace de "
|
2142 |
+
"activación que se envÃa a su dirección de correo electrónico para activar la "
|
2143 |
+
"cuenta. Útil para la membresÃa gratis. "
|
2144 |
+
|
2145 |
+
#: views/admin_add_level.php:44 views/admin_edit_level.php:52
|
2146 |
+
msgid "View Documentation"
|
2147 |
+
msgstr "Ver la documentación"
|
2148 |
+
|
2149 |
+
#: views/admin_add_level.php:45 views/admin_edit_level.php:53
|
2150 |
+
msgid "Note:"
|
2151 |
+
msgstr "Nota:"
|
2152 |
+
|
2153 |
+
#: views/admin_add_level.php:45 views/admin_edit_level.php:53
|
2154 |
+
msgid ""
|
2155 |
+
"If enabled, decryptable member password is temporarily stored in the "
|
2156 |
+
"database until the account is activated."
|
2157 |
+
msgstr ""
|
2158 |
+
"Si está activado, la contraseña de miembro descifrable se almacena "
|
2159 |
+
"temporalmente en la base de datos hasta que se activa la cuenta."
|
2160 |
+
|
2161 |
+
#: views/admin_add_level.php:52
|
2162 |
Â
msgid "Add New Membership Level "
|
2163 |
Â
msgstr "Añadir nuevo nivel de membresÃa "
|
2164 |
Â
|
2165 |
+
#: views/admin_add_ons_page.php:7
|
2166 |
Â
msgid "Simple WP Membership::Add-ons"
|
2167 |
Â
msgstr "Simple WP Membership::Extensiones"
|
2168 |
Â
|
2169 |
+
#: views/admin_category_list.php:5
|
2170 |
Â
msgid ""
|
2171 |
Â
"First of all, globally protect the category on your site by selecting "
|
2172 |
Â
"\"General Protection\" from the drop-down box below and then select the "
|
2173 |
Â
"categories that should be protected from non-logged in users."
|
2174 |
Â
msgstr ""
|
2175 |
+
"En primer lugar, protege las categorÃas de tu sitio seleccionando "
|
2176 |
+
"\"Protección general\" en el siguiente desplegable y selecciona las "
|
2177 |
+
"categorÃas que deseas proteger de los usuarios que no están conectados."
|
2178 |
Â
|
2179 |
+
#: views/admin_category_list.php:8
|
2180 |
Â
msgid ""
|
2181 |
Â
"Next, select an existing membership level from the drop-down box below and "
|
2182 |
Â
"then select the categories you want to grant access to (for that particular "
|
2183 |
Â
"membership level)."
|
2184 |
Â
msgstr ""
|
2185 |
+
"A continuación, selecciona un nivel de membresÃa existente en el cuadro "
|
2186 |
+
"desplegable de abajo y, a continuación, selecciona las categorÃas a las que "
|
2187 |
+
"deseas conceder el acceso (para ese nivel de membresÃa en particular)."
|
2188 |
+
|
2189 |
+
#: views/admin_category_list.php:11 views/admin_post_list.php:11
|
2190 |
+
msgid "Read the "
|
2191 |
+
msgstr "Leer la "
|
2192 |
+
|
2193 |
+
#: views/admin_category_list.php:11
|
2194 |
+
msgid "category protection documentation"
|
2195 |
+
msgstr "documentación de protección de categorÃa"
|
2196 |
Â
|
2197 |
+
#: views/admin_category_list.php:17 views/admin_post_list.php:27
|
2198 |
Â
msgid "Membership Level:"
|
2199 |
Â
msgstr "Nivel de membresÃa:"
|
2200 |
Â
|
2201 |
+
#: views/admin_category_list.php:19 views/admin_post_list.php:29
|
2202 |
+
msgid "General Protection"
|
2203 |
+
msgstr "Protección general"
|
2204 |
+
|
2205 |
+
#: views/admin_category_list.php:23 views/admin_post_list.php:33
|
2206 |
+
#: views/edit.php:83
|
2207 |
Â
msgid "Update"
|
2208 |
Â
msgstr "Actualizar"
|
2209 |
Â
|
2210 |
+
#: views/admin_edit.php:11
|
2211 |
Â
msgid "Edit Member"
|
2212 |
Â
msgstr "Editar usuario"
|
2213 |
Â
|
2214 |
+
#: views/admin_edit.php:13
|
2215 |
Â
msgid "Edit existing member details."
|
2216 |
Â
msgstr "Editar detalles de los miembros existentes."
|
2217 |
Â
|
2218 |
+
#: views/admin_edit.php:14
|
2219 |
Â
msgid " You are currenty editing member with member ID: "
|
2220 |
+
msgstr " Actualmente estas editando un miembro con el ID de miembro: "
|
2221 |
Â
|
2222 |
+
#: views/admin_edit.php:44
|
2223 |
Â
msgid "(twice, leave empty to retain old password)"
|
2224 |
+
msgstr "(dos veces, déjalo en blanco para mantener la contraseña actual)"
|
2225 |
+
|
2226 |
+
#: views/admin_edit.php:59
|
2227 |
+
msgid ""
|
2228 |
+
"This is the member's account status. If you want to manually activate an "
|
2229 |
+
"expired member's account then read"
|
2230 |
+
msgstr ""
|
2231 |
+
"Este es el estado de la cuenta del miembro. Si deseas activar manualmente la "
|
2232 |
+
"cuenta de un miembro caducado, entonces lee"
|
2233 |
+
|
2234 |
+
#: views/admin_edit.php:60
|
2235 |
+
msgid "this documentation"
|
2236 |
+
msgstr "esta documentación"
|
2237 |
+
|
2238 |
+
#: views/admin_edit.php:61
|
2239 |
+
msgid " to learn how to do it."
|
2240 |
+
msgstr " para aprender cómo hacerlo."
|
2241 |
Â
|
2242 |
+
#: views/admin_edit.php:66
|
2243 |
Â
msgid "Notify User"
|
2244 |
Â
msgstr "Notificar al usuario"
|
2245 |
Â
|
2246 |
+
#: views/admin_edit.php:69
|
2247 |
+
msgid ""
|
2248 |
+
"You can use this option to send a quick notification email to this member "
|
2249 |
+
"(the email will be sent when you hit the save button below)."
|
2250 |
+
msgstr ""
|
2251 |
+
"Puedes usar esta opción para enviar un correo electrónico de notificación "
|
2252 |
+
"rápida a este miembro (el correo electrónico se enviará cuando presiones el "
|
2253 |
+
"botón guardar a continuación)."
|
2254 |
+
|
2255 |
+
#: views/admin_edit.php:75
|
2256 |
Â
msgid "Subscriber ID/Reference"
|
2257 |
+
msgstr "ID/referencia del suscriptor"
|
2258 |
Â
|
2259 |
+
#: views/admin_edit.php:79
|
2260 |
Â
msgid "Last Accessed Date"
|
2261 |
+
msgstr "Última fecha de acceso"
|
2262 |
Â
|
2263 |
+
#: views/admin_edit.php:82 views/admin_edit.php:89
|
Â
|
|
2264 |
Â
msgid "This value gets updated when this member logs into your site."
|
2265 |
+
msgstr "Este valor se actualiza cuando este miembro accede a tu sitio."
|
2266 |
Â
|
2267 |
+
#: views/admin_edit.php:86
|
2268 |
Â
msgid "Last Accessed From IP"
|
2269 |
+
msgstr "Último acceso desde el IP"
|
2270 |
Â
|
2271 |
+
#: views/admin_edit.php:97
|
2272 |
+
msgid "Save Data"
|
2273 |
+
msgstr "Guardar datos"
|
2274 |
Â
|
2275 |
+
#: views/admin_edit.php:102
|
2276 |
Â
msgid "Delete User Profile"
|
2277 |
Â
msgstr "Eliminar perfil del usuario"
|
2278 |
Â
|
2279 |
+
#: views/admin_edit_level.php:6
|
2280 |
Â
msgid "Edit membership level"
|
2281 |
Â
msgstr "Editar nivel de membresÃa"
|
2282 |
Â
|
2283 |
+
#: views/admin_edit_level.php:9
|
2284 |
Â
msgid ""
|
2285 |
Â
"You can edit details of a selected membership level from this interface. "
|
2286 |
Â
msgstr ""
|
2287 |
+
"Puedes editar los detalles de un nivel de membresÃa seleccionado desde este "
|
2288 |
Â
"interfaz. "
|
2289 |
Â
|
2290 |
+
#: views/admin_edit_level.php:10
|
2291 |
Â
msgid "You are currently editing: "
|
2292 |
+
msgstr "Actualmente estas editando: "
|
2293 |
Â
|
2294 |
+
#: views/admin_edit_level.php:27
|
2295 |
Â
msgid "No Expiry (Access for this level will not expire until cancelled)"
|
2296 |
Â
msgstr "Sin caducidad (el acceso a este nivel no expirará hasta que se anule)"
|
2297 |
Â
|
2298 |
+
#: views/admin_edit_level.php:32
|
2299 |
Â
msgid "Weeks (Access expires after given number of weeks)"
|
2300 |
+
msgstr "Semanas (el acceso caducara después del número establecido de semanas)"
|
2301 |
+
|
2302 |
+
#: views/admin_edit_level.php:51
|
2303 |
+
msgid ""
|
2304 |
+
"Enable new user activation via email. When enabled, members will need to "
|
2305 |
+
"click on an activation link that is sent to their email address to activate "
|
2306 |
+
"the account. Useful for free membership."
|
2307 |
+
msgstr ""
|
2308 |
+
"Activa la activación del nuevo usuario a través de correo electrónico. "
|
2309 |
+
"Cuando esté activado, los miembros deberán hacer clic en un enlace de "
|
2310 |
+
"activación que se envÃa a su dirección de correo electrónico para activar la "
|
2311 |
+
"cuenta. Útil para la membresÃa gratis."
|
2312 |
Â
|
2313 |
+
#: views/admin_edit_level.php:60
|
2314 |
+
msgid "Save Membership Level "
|
2315 |
+
msgstr "Guardar nivel de membresÃa "
|
2316 |
Â
|
2317 |
+
#: views/admin_membership_manage.php:18
|
2318 |
Â
msgid "Example Content Protection Settings"
|
2319 |
+
msgstr "Ejemplo de ajustes de contenido protegido"
|
2320 |
Â
|
2321 |
+
#: views/admin_members_list.php:18
|
2322 |
+
msgid "All"
|
2323 |
+
msgstr "Todos"
|
2324 |
+
|
2325 |
+
#: views/admin_members_list.php:23
|
2326 |
+
msgid "Incomplete"
|
2327 |
+
msgstr "Incompleto"
|
2328 |
+
|
2329 |
+
#: views/admin_member_form_common_part.php:23
|
2330 |
+
#: includes/swpm_mda_show_profile.php:37
|
2331 |
Â
msgid "Gender"
|
2332 |
+
msgstr "Genero"
|
2333 |
Â
|
2334 |
+
#: views/admin_member_form_common_part.php:30 views/edit.php:47
|
2335 |
+
#: includes/swpm_mda_show_profile.php:34
|
2336 |
Â
msgid "Phone"
|
2337 |
Â
msgstr "Teléfono"
|
2338 |
Â
|
2339 |
+
#: views/admin_member_form_common_part.php:34 views/edit.php:51
|
Â
|
|
2340 |
Â
msgid "Street"
|
2341 |
Â
msgstr "Calle"
|
2342 |
Â
|
2343 |
+
#: views/admin_member_form_common_part.php:38 views/edit.php:55
|
Â
|
|
2344 |
Â
msgid "City"
|
2345 |
Â
msgstr "Ciudad"
|
2346 |
Â
|
2347 |
+
#: views/admin_member_form_common_part.php:42 views/edit.php:59
|
Â
|
|
2348 |
Â
msgid "State"
|
2349 |
Â
msgstr "Región"
|
2350 |
Â
|
2351 |
+
#: views/admin_member_form_common_part.php:46 views/edit.php:63
|
Â
|
|
2352 |
Â
msgid "Zipcode"
|
2353 |
Â
msgstr "Código postal"
|
2354 |
Â
|
2355 |
+
#: views/admin_member_form_common_part.php:50 views/edit.php:67
|
2356 |
+
#: includes/swpm_mda_show_profile.php:33
|
2357 |
Â
msgid "Country"
|
2358 |
Â
msgstr "PaÃs"
|
2359 |
Â
|
2360 |
+
#: views/admin_member_form_common_part.php:54
|
2361 |
+
#: includes/swpm_mda_show_profile.php:38
|
2362 |
Â
msgid "Company"
|
2363 |
+
msgstr "Empresa"
|
2364 |
Â
|
2365 |
+
#: views/admin_member_form_common_part.php:58
|
2366 |
+
#: includes/swpm_mda_show_profile.php:36
|
2367 |
Â
msgid "Member Since"
|
2368 |
Â
msgstr "Miembro desde"
|
2369 |
Â
|
2370 |
+
#: views/admin_post_list.php:5
|
2371 |
+
msgid ""
|
2372 |
+
"First of all, globally protect posts and pages on your site by selecting "
|
2373 |
+
"\"General Protection\" from the drop-down box below and then select posts "
|
2374 |
+
"and pages that should be protected from non-logged in users."
|
2375 |
+
msgstr ""
|
2376 |
+
"En primer lugar, protege globalmente las entradas y las páginas de tu sitio "
|
2377 |
+
"seleccionando \"Protección general\" en el cuadro desplegable que aparece a "
|
2378 |
+
"continuación y luego selecciona las entradas y las páginas que deben ser "
|
2379 |
+
"protegidas de los usuarios que no están conectados."
|
2380 |
+
|
2381 |
+
#: views/admin_post_list.php:8
|
2382 |
+
msgid ""
|
2383 |
+
"Next, select an existing membership level from the drop-down box below and "
|
2384 |
+
"then select posts and pages you want to grant access to (for that particular "
|
2385 |
+
"membership level)."
|
2386 |
+
msgstr ""
|
2387 |
+
"A continuación, selecciona un nivel de membresÃa existente en el cuadro "
|
2388 |
+
"desplegable de abajo y, a continuación, selecciona las entradas y las "
|
2389 |
+
"páginas que deseas conceder acceso (para ese nivel de membresÃa en "
|
2390 |
+
"particular)."
|
2391 |
+
|
2392 |
+
#: views/admin_post_list.php:11
|
2393 |
+
msgid "bulk protect posts and pages documentation"
|
2394 |
+
msgstr "protección en lotes de entradas y páginas de documentación"
|
2395 |
+
|
2396 |
+
#: views/admin_post_list.php:11
|
2397 |
+
msgid " to learn how to use it."
|
2398 |
+
msgstr " para aprender a usarlo."
|
2399 |
+
|
2400 |
+
#: views/admin_post_list.php:21
|
2401 |
+
msgid "Posts"
|
2402 |
+
msgstr "Entradas"
|
2403 |
+
|
2404 |
+
#: views/admin_post_list.php:22
|
2405 |
+
msgid "Pages"
|
2406 |
+
msgstr "Páginas"
|
2407 |
+
|
2408 |
+
#: views/admin_post_list.php:23
|
2409 |
+
msgid "Custom Posts"
|
2410 |
+
msgstr "Entradas personalizadas"
|
2411 |
+
|
2412 |
+
#: views/admin_tools_settings.php:14
|
2413 |
+
msgid "The required pages have been re-created."
|
2414 |
+
msgstr "Las páginas requeridas han sido recreadas."
|
2415 |
+
|
2416 |
+
#: views/admin_tools_settings.php:21
|
2417 |
Â
msgid "Generate a Registration Completion link"
|
2418 |
+
msgstr "Genera un enlace para completar el registro"
|
2419 |
Â
|
2420 |
+
#: views/admin_tools_settings.php:24
|
2421 |
Â
msgid ""
|
2422 |
Â
"You can manually generate a registration completion link here and give it to "
|
2423 |
Â
"your customer if they have missed the email that was automatically sent out "
|
2427 |
Â
"enviárselo al usuario si ha perdido el correo electrónico que se les envÃa "
|
2428 |
Â
"después del pago."
|
2429 |
Â
|
2430 |
+
#: views/admin_tools_settings.php:29
|
2431 |
Â
msgid "Generate Registration Completion Link"
|
2432 |
+
msgstr "Genera el enlace para completar el registro"
|
2433 |
Â
|
2434 |
+
#: views/admin_tools_settings.php:30
|
2435 |
Â
msgid "For a Particular Member ID"
|
2436 |
+
msgstr "Para una ID de un miembro particular"
|
2437 |
Â
|
2438 |
+
#: views/admin_tools_settings.php:32
|
2439 |
Â
msgid "OR"
|
2440 |
Â
msgstr "O"
|
2441 |
Â
|
2442 |
+
#: views/admin_tools_settings.php:33
|
2443 |
Â
msgid "For All Incomplete Registrations"
|
2444 |
+
msgstr "Por todas las inscripciones incompletas"
|
2445 |
Â
|
2446 |
+
#: views/admin_tools_settings.php:38
|
2447 |
Â
msgid "Send Registration Reminder Email Too"
|
2448 |
+
msgstr "También envÃa el correo electrónico de recordatorio de registro"
|
2449 |
Â
|
2450 |
+
#: views/admin_tools_settings.php:44
|
2451 |
Â
msgid "Submit"
|
2452 |
Â
msgstr "Enviar"
|
2453 |
Â
|
2454 |
+
#: views/admin_tools_settings.php:53
|
2455 |
Â
msgid ""
|
2456 |
Â
"Link(s) generated successfully. The following link(s) can be used to "
|
2457 |
Â
"complete the registration."
|
2458 |
Â
msgstr ""
|
2459 |
+
"Enlace(s) generado correctamente. Los siguientes enlace(s) pueden ser "
|
2460 |
Â
"utilizados para completar el registro."
|
2461 |
Â
|
2462 |
+
#: views/admin_tools_settings.php:55
|
2463 |
Â
msgid "Registration completion links will appear below"
|
2464 |
+
msgstr "Los enlaces para completar el registro aparecerán a continuación"
|
2465 |
+
|
2466 |
+
#: views/admin_tools_settings.php:65
|
2467 |
+
msgid "A prompt to complete registration email was also sent."
|
2468 |
+
msgstr ""
|
2469 |
+
"También ha sido enviado un aviso para completar el correo electrónico de "
|
2470 |
+
"registro."
|
2471 |
+
|
2472 |
+
#: views/admin_tools_settings.php:78 views/admin_tools_settings.php:88
|
2473 |
+
msgid "Re-create the Required Pages"
|
2474 |
+
msgstr "Volver a crear las páginas requeridas"
|
2475 |
+
|
2476 |
+
#: views/admin_tools_settings.php:81
|
2477 |
+
msgid ""
|
2478 |
+
"If you have accidentally deleted the required pages that this plugin creates "
|
2479 |
+
"at install time, you can use this option to re-create them."
|
2480 |
+
msgstr ""
|
2481 |
+
"Si has eliminado accidentalmente las páginas requeridas que este plugin crea "
|
2482 |
+
"en el momento de la instalación, puedes usar esta opción para volver a "
|
2483 |
+
"crearlas."
|
2484 |
+
|
2485 |
+
#: views/admin_tools_settings.php:82
|
2486 |
+
msgid " has full explanation."
|
2487 |
+
msgstr " tiene una explicación completa."
|
2488 |
Â
|
2489 |
+
#: views/edit.php:32 views/edit.php:36
|
2490 |
Â
msgid "Leave empty to keep the current password"
|
2491 |
Â
msgstr "Dejar vacÃo para guardar la contraseña actual"
|
2492 |
Â
|
2493 |
+
#: views/edit.php:71
|
2494 |
+
msgid "Company Name"
|
2495 |
+
msgstr "Nombre de empresa"
|
2496 |
+
|
2497 |
+
#: views/forgot_password.php:12
|
2498 |
Â
msgid "Reset Password"
|
2499 |
+
msgstr "Restablecer la contraseña"
|
2500 |
Â
|
2501 |
+
#: views/loggedin.php:6
|
2502 |
Â
msgid "Logged in as"
|
2503 |
Â
msgstr "Conectado como"
|
2504 |
Â
|
2505 |
+
#: views/loggedin.php:14
|
2506 |
Â
msgid "Membership"
|
2507 |
Â
msgstr "MembresÃa"
|
2508 |
Â
|
2509 |
+
#: views/loggedin.php:18
|
2510 |
Â
msgid "Account Expiry"
|
2511 |
+
msgstr "Caducidad de la cuenta"
|
2512 |
Â
|
2513 |
+
#: views/loggedin.php:26
|
2514 |
+
msgid "Edit Profile"
|
2515 |
+
msgstr "Editar perfil"
|
2516 |
Â
|
2517 |
+
#: views/login.php:11
|
2518 |
Â
msgid "Username or Email"
|
2519 |
Â
msgstr "Nombre de usuario o correo electrónico"
|
2520 |
Â
|
2521 |
+
#: views/login.php:24
|
2522 |
Â
msgid "Remember Me"
|
2523 |
Â
msgstr "Recuérdame"
|
2524 |
Â
|
2525 |
+
#: views/login.php:33
|
2526 |
+
msgid "Forgot Password?"
|
2527 |
+
msgstr "¿Has olvidado tu contraseña?"
|
2528 |
Â
|
2529 |
+
#: views/payments/admin_all_payment_transactions.php:6
|
2530 |
Â
msgid "All the payments/transactions of your members are recorded here."
|
2531 |
Â
msgstr "Todos los pagos/transacciones de sus miembros se registran aquÃ."
|
2532 |
Â
|
2533 |
+
#: views/payments/admin_all_payment_transactions.php:12
|
2534 |
Â
msgid "Search for a transaction by using email or name"
|
2535 |
+
msgstr "Buscar una transacción usando el correo electrónico o el nombre"
|
2536 |
Â
|
2537 |
+
#: views/payments/admin_create_payment_buttons.php:15
|
2538 |
Â
msgid ""
|
2539 |
Â
"You can create new payment button for your memberships using this interface."
|
2540 |
Â
msgstr ""
|
2541 |
+
"Puedes crear un nuevo botón de pago para tus membresÃas utilizando este "
|
2542 |
Â
"interfaz."
|
2543 |
Â
|
2544 |
+
#: views/payments/admin_create_payment_buttons.php:23
|
2545 |
Â
msgid "Select Payment Button Type"
|
2546 |
Â
msgstr "Selecciona el tipo de botón de pago"
|
2547 |
Â
|
2548 |
+
#: views/payments/admin_create_payment_buttons.php:26
|
2549 |
Â
msgid "PayPal Buy Now"
|
2550 |
+
msgstr "PayPal comprar ahora"
|
2551 |
Â
|
2552 |
+
#: views/payments/admin_create_payment_buttons.php:28
|
2553 |
Â
msgid "PayPal Subscription"
|
2554 |
Â
msgstr "Suscripción de PayPal"
|
2555 |
Â
|
2556 |
+
#: views/payments/admin_create_payment_buttons.php:30
|
2557 |
+
msgid "PayPal Smart Checkout"
|
2558 |
+
msgstr "Pago inteligente de PayPal"
|
2559 |
+
|
2560 |
+
#: views/payments/admin_create_payment_buttons.php:32
|
2561 |
Â
msgid "Stripe Buy Now"
|
2562 |
+
msgstr "Stripe comprar ahora"
|
2563 |
+
|
2564 |
+
#: views/payments/admin_create_payment_buttons.php:34
|
2565 |
+
msgid "Stripe Subscription"
|
2566 |
+
msgstr "Suscripción de Stripe"
|
2567 |
Â
|
2568 |
+
#: views/payments/admin_create_payment_buttons.php:36
|
2569 |
Â
msgid "Braintree Buy Now"
|
2570 |
Â
msgstr "Braintree comprar ahora"
|
2571 |
Â
|
2572 |
+
#: views/payments/admin_create_payment_buttons.php:43
|
2573 |
Â
msgid "Next"
|
2574 |
Â
msgstr "Siguiente"
|
2575 |
Â
|
2576 |
+
#: views/payments/admin_edit_payment_buttons.php:15
|
2577 |
Â
msgid "You can edit a payment button using this interface."
|
2578 |
Â
msgstr "Puede editar un botón de pago utilizando esta interfaz."
|
2579 |
Â
|
2580 |
+
#: views/payments/admin_payment_buttons.php:6
|
2581 |
Â
msgid ""
|
2582 |
Â
"All the membership buttons that you created in the plugin are displayed here."
|
2583 |
Â
msgstr ""
|
2584 |
Â
"Todos los botones de miembros que ha creado en el plugin se muestran aquÃ."
|
2585 |
Â
|
2586 |
+
#: views/payments/admin_payment_settings.php:21
|
2587 |
Â
msgid "Error! The membership level ID ("
|
2588 |
Â
msgstr "¡Error! El ID de nivel de miembro ("
|
2589 |
Â
|
2590 |
+
#: views/payments/admin_payment_settings.php:28
|
2591 |
+
msgid ""
|
2592 |
+
"You can create membership payment buttons from the payments menu of this "
|
2593 |
+
"plugin (useful if you want to offer paid membership on the site)."
|
2594 |
+
msgstr ""
|
2595 |
+
"Puedes crear botones de pago de membresÃa desde el menú de pagos de este "
|
2596 |
+
"plugin (útil si deseas ofrecer membresÃa de pago en el sitio)."
|
2597 |
+
|
2598 |
+
#: views/payments/admin_payment_settings.php:33
|
2599 |
Â
msgid "PayPal Integration Settings"
|
2600 |
+
msgstr "Ajustes de integración con PayPal"
|
2601 |
Â
|
2602 |
+
#: views/payments/admin_payment_settings.php:36
|
2603 |
Â
msgid "Generate the \"Advanced Variables\" Code for your PayPal button"
|
2604 |
+
msgstr "Genera el código de \"Variables avanzadas\" para tu botón de PayPal"
|
2605 |
Â
|
2606 |
+
#: views/payments/admin_payment_settings.php:39
|
2607 |
Â
msgid "Enter the Membership Level ID"
|
2608 |
Â
msgstr "Introduce el ID de nivel de membresÃa"
|
2609 |
Â
|
2610 |
+
#: views/payments/admin_payment_settings.php:41
|
2611 |
Â
msgid "Generate Code"
|
2612 |
Â
msgstr "Generar código"
|
2613 |
Â
|
2614 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:22
|
2615 |
Â
msgid "Braintree Buy Now Button Configuration"
|
2616 |
Â
msgstr "Configuración del botón de Braintree Compre Ahora"
|
2617 |
Â
|
2618 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:34
|
2619 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:213
|
2620 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:33
|
2621 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:301
|
2622 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:259
|
2623 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:83
|
2624 |
Â
msgid "Button ID"
|
2625 |
Â
msgstr "ID de botón"
|
2626 |
Â
|
2627 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:42
|
2628 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:26
|
2629 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:221
|
2630 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:41
|
2631 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:27
|
2632 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:309
|
2633 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:39
|
2634 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:266
|
2635 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:91
|
2636 |
Â
msgid "Button Title"
|
2637 |
Â
msgstr "Titulo del botón"
|
2638 |
Â
|
2639 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:60
|
2640 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:44
|
2641 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:239
|
2642 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:59
|
2643 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:57
|
2644 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:282
|
2645 |
Â
msgid "Payment Amount"
|
2646 |
+
msgstr "Cantidad de pago"
|
2647 |
Â
|
2648 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:68
|
2649 |
Â
msgid ""
|
2650 |
Â
"Braintree API key and account details. You can get this from your Braintree "
|
2651 |
Â
"account."
|
2652 |
Â
msgstr ""
|
2653 |
+
"Clave API de Braintree y detalles de la cuenta. Puedes obtener esta "
|
2654 |
+
"información de tu cuenta de Braintree."
|
2655 |
Â
|
2656 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:72
|
2657 |
Â
msgid "Merchant ID"
|
2658 |
+
msgstr "ID del comerciante"
|
2659 |
Â
|
2660 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:80
|
2661 |
Â
msgid "Public Key"
|
2662 |
+
msgstr "Llave publica"
|
2663 |
Â
|
2664 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:87
|
2665 |
Â
msgid "Private Key"
|
2666 |
+
msgstr "Llave privada"
|
2667 |
Â
|
2668 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:95
|
2669 |
Â
msgid "Merchant Account ID"
|
2670 |
+
msgstr "ID de la cuenta de comerciante"
|
2671 |
Â
|
2672 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:113
|
2673 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:137
|
2674 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:361
|
2675 |
Â
msgid "The following details are optional."
|
2676 |
Â
msgstr "Los siguientes detalles son opcionales."
|
2677 |
Â
|
2678 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:117
|
2679 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:92
|
2680 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:287
|
2681 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:204
|
2682 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:172
|
2683 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:456
|
2684 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:149
|
2685 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:373
|
2686 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:191
|
2687 |
Â
msgid "Return URL"
|
2688 |
Â
msgstr "URL de retorno"
|
2689 |
Â
|
2690 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:127
|
2691 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:126
|
2692 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:321
|
2693 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:214
|
2694 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:200
|
2695 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:484
|
2696 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:159
|
2697 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:383
|
2698 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:212
|
2699 |
Â
msgid "Save Payment Data"
|
2700 |
+
msgstr "Guarda los datos de pago"
|
2701 |
Â
|
2702 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:16
|
2703 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:204
|
2704 |
Â
msgid "PayPal Buy Now Button Configuration"
|
2705 |
+
msgstr "Configuración del botón de PayPal Comprar ahora"
|
2706 |
+
|
2707 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:52
|
2708 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:247
|
2709 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:67
|
2710 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:45
|
2711 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:327
|
2712 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:65
|
2713 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:289
|
2714 |
Â
msgid "Payment Currency"
|
2715 |
Â
msgstr "Moneda de pago"
|
2716 |
Â
|
2717 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:100
|
2718 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:295
|
2719 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:85
|
2720 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:367
|
2721 |
Â
msgid "PayPal Email"
|
2722 |
Â
msgstr "Correo electrónico de PayPal"
|
2723 |
Â
|
2724 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:108
|
2725 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:303
|
2726 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:180
|
2727 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:464
|
2728 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:199
|
2729 |
Â
msgid "Button Image URL"
|
2730 |
+
msgstr "URL de la imagen del botón"
|
2731 |
+
|
2732 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:116
|
2733 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:311
|
2734 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:188
|
2735 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:472
|
2736 |
+
msgid "Custom Checkout Page Logo Image"
|
2737 |
+
msgstr "Imagen de logotipo de la página de finalizar compra personalizada"
|
2738 |
+
|
2739 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:21
|
2740 |
+
msgid "PayPal Smart Checkout Button Configuration"
|
2741 |
+
msgstr "Configuración del botón de pago inteligente de PayPal"
|
2742 |
+
|
2743 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:107
|
2744 |
+
msgid ""
|
2745 |
+
"PayPal Smart Checkout API Credentials (you can get this from your PayPal "
|
2746 |
+
"account)"
|
2747 |
+
msgstr ""
|
2748 |
+
"Credenciales de la API de pago inteligente de PayPal (puedes obtener esto "
|
2749 |
+
"desde tu cuenta de PayPal)"
|
2750 |
+
|
2751 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:111
|
2752 |
+
msgid "Live Client ID"
|
2753 |
+
msgstr "ID de cliente en vivo"
|
2754 |
+
|
2755 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:119
|
2756 |
+
msgid "Live Secret"
|
2757 |
+
msgstr "Secreto en vivo"
|
2758 |
+
|
2759 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:127
|
2760 |
+
msgid "Sandbox Client ID"
|
2761 |
+
msgstr "ID de cliente de Sandbox"
|
2762 |
+
|
2763 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:135
|
2764 |
+
msgid "Sandbox Secret"
|
2765 |
+
msgstr "Secreto de Sandbox"
|
2766 |
+
|
2767 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:143
|
2768 |
+
msgid "Button Appearance Settings"
|
2769 |
+
msgstr "Ajustes de apariencia del botón"
|
2770 |
+
|
2771 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:147
|
2772 |
+
msgid "Size"
|
2773 |
+
msgstr "Tamaño"
|
2774 |
+
|
2775 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:150
|
2776 |
+
msgid "Medium"
|
2777 |
+
msgstr "Mediano"
|
2778 |
+
|
2779 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:151
|
2780 |
+
msgid "Large"
|
2781 |
+
msgstr "Grande"
|
2782 |
+
|
2783 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:152
|
2784 |
+
msgid "Repsonsive"
|
2785 |
+
msgstr "Adaptable"
|
2786 |
+
|
2787 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:154
|
2788 |
+
msgid "Select button size."
|
2789 |
+
msgstr "Selecciona el tamaño del botón."
|
2790 |
+
|
2791 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:158
|
2792 |
+
msgid "Color"
|
2793 |
+
msgstr "Color"
|
2794 |
+
|
2795 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:161
|
2796 |
+
msgid "Gold"
|
2797 |
+
msgstr "Oro"
|
2798 |
+
|
2799 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:162
|
2800 |
+
msgid "Blue"
|
2801 |
+
msgstr "Azul"
|
2802 |
+
|
2803 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:163
|
2804 |
+
msgid "Silver"
|
2805 |
+
msgstr "Plata"
|
2806 |
+
|
2807 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:164
|
2808 |
+
msgid "Black"
|
2809 |
+
msgstr "Negro"
|
2810 |
+
|
2811 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:166
|
2812 |
+
msgid "Select button color."
|
2813 |
+
msgstr "Selecciona el color del botón."
|
2814 |
+
|
2815 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:170
|
2816 |
+
msgid "Shape"
|
2817 |
+
msgstr "Forma"
|
2818 |
+
|
2819 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:172
|
2820 |
+
msgid "Rectangular"
|
2821 |
+
msgstr "Rectangular"
|
2822 |
+
|
2823 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:173
|
2824 |
+
msgid "Pill"
|
2825 |
+
msgstr "PÃldora"
|
2826 |
+
|
2827 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:174
|
2828 |
+
msgid "Select button shape."
|
2829 |
+
msgstr "Selecciona la forma del botón."
|
2830 |
Â
|
2831 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:178
|
2832 |
+
msgid "Layout"
|
2833 |
+
msgstr "Diseño"
|
2834 |
+
|
2835 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:180
|
2836 |
+
msgid "Vertical"
|
2837 |
+
msgstr "Vertical"
|
2838 |
+
|
2839 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:181
|
2840 |
+
msgid "Horizontal"
|
2841 |
+
msgstr "Horizontal"
|
2842 |
+
|
2843 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:182
|
2844 |
+
msgid "Select button layout."
|
2845 |
+
msgstr "Selecciona el diseño del botón."
|
2846 |
+
|
2847 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:187
|
2848 |
+
msgid "Additional Settings"
|
2849 |
+
msgstr "Ajustes adicionales"
|
2850 |
+
|
2851 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:191
|
2852 |
+
msgid "Payment Methods"
|
2853 |
+
msgstr "Métodos de pago"
|
2854 |
+
|
2855 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:193
|
2856 |
+
msgid "PayPal Credit"
|
2857 |
+
msgstr "Crédito de PayPal"
|
2858 |
+
|
2859 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:194
|
2860 |
+
msgid "ELV"
|
2861 |
+
msgstr "ELV"
|
2862 |
+
|
2863 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:195
|
2864 |
+
msgid ""
|
2865 |
+
"Select payment methods that could be used by customers. Note that payment "
|
2866 |
+
"with cards is always enabled."
|
2867 |
+
msgstr ""
|
2868 |
+
"Selecciona los métodos de pago que podrÃan ser utilizados por los clientes. "
|
2869 |
+
"Ten en cuenta que el pago con tarjetas siempre está activado."
|
2870 |
+
|
2871 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:200
|
2872 |
+
msgid "The following details are optional"
|
2873 |
+
msgstr "Los siguientes detalles son opcionales"
|
2874 |
+
|
2875 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:18
|
2876 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:295
|
2877 |
Â
msgid "PayPal Subscription Button Configuration"
|
2878 |
+
msgstr "Configuración del botón de Suscripción de PayPal"
|
2879 |
Â
|
2880 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:93
|
2881 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:375
|
2882 |
Â
msgid "Billing Amount Each Cycle"
|
2883 |
Â
msgstr "Importe facturado cada ciclo"
|
2884 |
Â
|
2885 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:101
|
2886 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:383
|
2887 |
Â
msgid "Billing Cycle"
|
2888 |
Â
msgstr "Ciclo de facturación"
|
2889 |
Â
|
2890 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:114
|
2891 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:396
|
2892 |
Â
msgid "Billing Cycle Count"
|
2893 |
Â
msgstr "Cuenta del ciclo de facturación"
|
2894 |
Â
|
2895 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:122
|
2896 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:404
|
2897 |
Â
msgid "Re-attempt on Failure"
|
2898 |
Â
msgstr "Reintentar en caso de fallo"
|
2899 |
Â
|
2900 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:135
|
2901 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:419
|
2902 |
Â
msgid ""
|
2903 |
Â
"Trial Billing Details (Leave empty if you are not offering a trial period)"
|
2904 |
Â
msgstr ""
|
2905 |
+
"Detalles de facturación de prueba (Deja en blanco si no estas ofreciendo un "
|
2906 |
Â
"perÃodo de prueba)"
|
2907 |
Â
|
2908 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:141
|
2909 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:425
|
2910 |
Â
msgid "Trial Billing Amount"
|
2911 |
Â
msgstr "Importe del periodo de prueba"
|
2912 |
Â
|
2913 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:149
|
2914 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:433
|
2915 |
Â
msgid "Trial Billing Period"
|
2916 |
Â
msgstr "PerÃodo de facturación de prueba"
|
2917 |
Â
|
2918 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:166
|
2919 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:450
|
2920 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:177
|
2921 |
Â
msgid "Optional Details"
|
2922 |
Â
msgstr "Detalles opcionales"
|
2923 |
Â
|
2924 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:29
|
2925 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:250
|
2926 |
Â
msgid "Stripe Buy Now Button Configuration"
|
2927 |
+
msgstr "Ajustes del botón Comprar ahora de Stripe"
|
2928 |
Â
|
2929 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:104
|
2930 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:328
|
2931 |
Â
msgid "Stripe API keys. You can get this from your Stripe account."
|
2932 |
+
msgstr ""
|
2933 |
+
"Las claves de API de Stripe. Puedes obtener esto en tu cuenta de Stripe."
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
2934 |
Â
|
2935 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:108
|
2936 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:332
|
2937 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:131
|
2938 |
Â
msgid "Test Publishable Key"
|
2939 |
+
msgstr "Llave de publicación de prueba"
|
2940 |
Â
|
2941 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:115
|
2942 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:339
|
2943 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:139
|
2944 |
+
msgid "Test Secret Key"
|
2945 |
+
msgstr "Prueba la llave secreta"
|
2946 |
Â
|
2947 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:122
|
2948 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:346
|
2949 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:147
|
2950 |
Â
msgid "Live Publishable Key"
|
2951 |
Â
msgstr "Clave publicable en vivo"
|
2952 |
Â
|
2953 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:129
|
2954 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:353
|
2955 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:155
|
2956 |
+
msgid "Live Secret Key"
|
2957 |
+
msgstr "Clave secreta en vivo"
|
2958 |
+
|
2959 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:141
|
2960 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:365
|
2961 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:183
|
2962 |
+
msgid "Collect Customer Address"
|
2963 |
+
msgstr "Recopila la dirección del cliente"
|
2964 |
+
|
2965 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:75
|
2966 |
+
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"
|
2975 |
+
msgstr "Ajustes de API de Stripe"
|
2976 |
+
|
2977 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:163
|
2978 |
+
msgid "Webook Endpoint URL"
|
2979 |
+
msgstr "URL de Endpoint del WebWook"
|
2980 |
+
|
2981 |
+
#: views/payments/payment-gateway/braintree_button_shortcode_view.php:20
|
2982 |
+
#: views/payments/payment-gateway/paypal_button_shortcode_view.php:91
|
2983 |
+
#: views/payments/payment-gateway/paypal_button_shortcode_view.php:93
|
2984 |
+
#: views/payments/payment-gateway/paypal_smart_checkout_button_shortcode_view.php:15
|
2985 |
+
#: views/payments/payment-gateway/stripe_button_shortcode_view.php:20
|
2986 |
+
#: views/payments/payment-gateway/stripe_button_shortcode_view.php:150
|
2987 |
Â
msgid "Buy Now"
|
2988 |
Â
msgstr "Compra ahora"
|
2989 |
Â
|
2990 |
+
#: views/payments/payment-gateway/paypal_button_shortcode_view.php:226
|
2991 |
+
#: views/payments/payment-gateway/paypal_button_shortcode_view.php:228
|
2992 |
Â
msgid "Subscribe Now"
|
2993 |
Â
msgstr "SuscrÃbete ahora"
|
2994 |
Â
|
2995 |
+
#: views/payments/payment-gateway/paypal_smart_checkout_button_shortcode_view.php:137
|
2996 |
+
msgid "Error occured during PayPal Smart Checkout process."
|
2997 |
+
msgstr ""
|
2998 |
+
"Se ha producido un error durante el proceso de pago inteligente de PayPal."
|
2999 |
+
|
3000 |
+
#: views/payments/payment-gateway/paypal_smart_checkout_button_shortcode_view.php:165
|
3001 |
+
msgid "HTTP error occured during payment process:"
|
3002 |
+
msgstr "El error HTTP ha ocurrido durante el proceso de pago:"
|
3003 |
+
|
3004 |
Â
#: Translation strings from addons === Form builder addon
|
3005 |
+
msgid "Type password here"
|
3006 |
+
msgstr "Teclear la contraseña aquÃ"
|
3007 |
Â
|
3008 |
+
msgid "Retype password here"
|
3009 |
+
msgstr "Vuelve a teclear la contraseña aquÃ"
|
3010 |
Â
|
3011 |
Â
msgid "Registration is complete. You can now log into the site."
|
3012 |
+
msgstr "El registro está completo. Ahora puedes acceder al sitio."
|
3013 |
Â
|
3014 |
Â
msgid " Field has invalid character"
|
3015 |
Â
msgstr " El campo tiene un carácter no válido"
|
3016 |
Â
|
3017 |
Â
msgid " Password does not match"
|
3018 |
+
msgstr " La contraseña no coincide"
|
3019 |
Â
|
3020 |
Â
msgid "Already taken."
|
3021 |
+
msgstr "Ya está cogido."
|
3022 |
Â
|
3023 |
Â
msgid "Street Address"
|
3024 |
+
msgstr "Dirección de calle"
|
3025 |
Â
|
3026 |
Â
msgid "Apt, Suite, Bldg. (optional)"
|
3027 |
Â
msgstr "Apt, Suite, Edificio. (Opcional)"
|
3036 |
Â
"Check this box to delete the image. The image will be deleted when you save "
|
3037 |
Â
"the profile."
|
3038 |
Â
msgstr ""
|
3039 |
+
"Selecciona esta casilla para eliminar la imagen. La imagen se borrará cuando "
|
3040 |
+
"guardes el perfil."
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
3041 |
Â
|
3042 |
+
msgid "You will need to re-login since you changed your password."
|
3043 |
+
msgstr "Tendrás que volver a acceder porque has cambiado tu contraseña."
|
3044 |
Â
|
3045 |
+
msgid ""
|
3046 |
+
"Please enter any two digits with <strong>no</strong> spaces (Example: 12)"
|
3047 |
+
msgstr ""
|
3048 |
+
"Por favor, introduce dos dÃgitos <strong>sin</ strong> espacio (Ejemplo: 12)"
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
3049 |
Â
|
3050 |
+
msgid "Verification"
|
3051 |
+
msgstr "Verificación"
|
3052 |
Â
|
3053 |
+
msgid "Please enter any two digits with no spaces (Example: 12)*"
|
3054 |
+
msgstr "Por favor, introduce dos dÃgitos sin espacio (Ejemplo: 12)*"
|
3055 |
Â
|
3056 |
+
msgid "Username can only contain: letters, numbers and .-*@"
|
3057 |
+
msgstr "El nombres de usuario solo puede contener: letras, números y .-*@"
|
3058 |
Â
|
3059 |
+
msgid "Allowed characters are: letters, numbers and .-_*@"
|
3060 |
+
msgstr "Los caracteres permitidos son: letras, números y .-_*@"
|
3061 |
Â
|
3062 |
+
#: === Partial protection addon strings
|
3063 |
+
msgid "You do not have permission to view this content."
|
3064 |
+
msgstr "No tienes permiso para ver este contenido."
|
3065 |
Â
|
3066 |
+
msgid "Your membership level does not have permission to view this content."
|
3067 |
+
msgstr "Tu nivel de membresÃa no tiene permiso para ver este contenido."
|
3068 |
Â
|
3069 |
+
msgid "This content is for members only."
|
3070 |
+
msgstr "Este contenido es solo para miembros."
|
3071 |
Â
|
3072 |
+
msgid "Please check at least one."
|
3073 |
+
msgstr "Por favor, selecciona al menos una."
|
3074 |
Â
|
3075 |
+
#: === Member Directory Listing addon strings swpm-member-directory-admin.php:9
|
3076 |
+
msgid "Member Directory"
|
3077 |
+
msgstr "Directorio de miembros"
|
3078 |
Â
|
3079 |
+
#: includes/swpm_mda_show_profile.php:26
|
3080 |
+
msgid "Member ID"
|
3081 |
+
msgstr "ID del miembro"
|
3082 |
Â
|
3083 |
+
#: includes/swpm_mda_show_profile.php:30
|
3084 |
+
msgid "Level"
|
3085 |
+
msgstr "Nivel"
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
3086 |
Â
|
3087 |
+
#: includes/swpm_mda_show_profile.php:32
|
3088 |
+
msgid "Address"
|
3089 |
+
msgstr "Dirección"
|
3090 |
Â
|
3091 |
+
#: views/template-1.php:52 views/template-2.php:53
|
3092 |
+
msgid "Search..."
|
3093 |
+
msgstr "Buscar..."
|
3094 |
Â
|
3095 |
+
#: views/template-1.php:60 views/template-2.php:62
|
3096 |
+
msgid "Clear Search"
|
3097 |
+
msgstr "Borrar la búsqueda"
|
3098 |
Â
|
3099 |
+
msgid "You must be logged in to upgrade a membership."
|
3100 |
+
msgstr "Debes estar conectado para actualizar una suscripción."
|
Â
|
|
Â
|
|
3101 |
Â
|
3102 |
+
msgid "Membership level has been updated."
|
3103 |
+
msgstr "El nivel de membresÃa ha sido actualizado."
|
3104 |
Â
|
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 |
Â
|
3111 |
+
#~ msgid "smp7, wp.insider"
|
3112 |
+
#~ msgstr "smp7, wp.insider"
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
3113 |
Â
|
3114 |
Â
#~ msgid ""
|
3115 |
+
#~ "A flexible, well-supported, and easy-to-use WordPress membership plugin "
|
3116 |
+
#~ "for offering free and premium content from your WordPress site."
|
3117 |
Â
#~ msgstr ""
|
3118 |
+
#~ "Un plugin de membresÃa de WordPress flexible, bien apoyado y fácil de "
|
3119 |
+
#~ "usar para ofrecer contenido gratuito y de pago desde tu sitio de "
|
3120 |
+
#~ "WordPress."
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
3121 |
Â
|
3122 |
+
#~ msgid "https://simple-membership-plugin.com/"
|
3123 |
+
#~ msgstr "https://simple-membership-plugin.com/"
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
3124 |
Â
|
3125 |
+
#~ msgid "Simple WordPress Membership"
|
3126 |
+
#~ msgstr "WordPress Simple Membership"
|
Â
|
|
Â
|
|
Â
|
|
Â
|
lib/stripe-gateway/.editorconfig
ADDED
@@ -0,0 +1,14 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
; https://editorconfig.org/
|
2 |
+
|
3 |
+
root = true
|
4 |
+
|
5 |
+
[*]
|
6 |
+
indent_style = space
|
7 |
+
indent_size = 4
|
8 |
+
insert_final_newline = true
|
9 |
+
trim_trailing_whitespace = true
|
10 |
+
end_of_line = lf
|
11 |
+
charset = utf-8
|
12 |
+
|
13 |
+
[*.{json,yml}]
|
14 |
+
indent_size = 2
|
lib/stripe-gateway/.gitignore
ADDED
@@ -0,0 +1,17 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
# Mac OS X dumps these all over the place.
|
2 |
+
.DS_Store
|
3 |
+
|
4 |
+
# Ignore the SimpleTest library if it is installed to /test/.
|
5 |
+
/test/simpletest/
|
6 |
+
|
7 |
+
# Ignore the /vendor/ directory for people using composer
|
8 |
+
/vendor/
|
9 |
+
|
10 |
+
# If the vendor directory isn't being commited the composer.lock file should also be ignored
|
11 |
+
composer.lock
|
12 |
+
|
13 |
+
# Ignore PHPUnit coverage file
|
14 |
+
clover.xml
|
15 |
+
|
16 |
+
# Ignore IDE's configuration files
|
17 |
+
.idea
|
lib/stripe-gateway/CHANGELOG.md
ADDED
@@ -0,0 +1,732 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
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
|
lib/stripe-gateway/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
The MIT License
|
2 |
+
|
3 |
+
Copyright (c) 2010-2019 Stripe, Inc. (https://stripe.com)
|
4 |
+
|
5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6 |
+
of this software and associated documentation files (the "Software"), to deal
|
7 |
+
in the Software without restriction, including without limitation the rights
|
8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9 |
+
copies of the Software, and to permit persons to whom the Software is
|
10 |
+
furnished to do so, subject to the following conditions:
|
11 |
+
|
12 |
+
The above copyright notice and this permission notice shall be included in
|
13 |
+
all copies or substantial portions of the Software.
|
14 |
+
|
15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21 |
+
THE SOFTWARE.
|
lib/stripe-gateway/README.md
ADDED
@@ -0,0 +1,257 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
# Stripe PHP bindings
|
2 |
+
|
3 |
+
[![Build Status](https://travis-ci.org/stripe/stripe-php.svg?branch=master)](https://travis-ci.org/stripe/stripe-php)
|
4 |
+
[![Latest Stable Version](https://poser.pugx.org/stripe/stripe-php/v/stable.svg)](https://packagist.org/packages/stripe/stripe-php)
|
5 |
+
[![Total Downloads](https://poser.pugx.org/stripe/stripe-php/downloads.svg)](https://packagist.org/packages/stripe/stripe-php)
|
6 |
+
[![License](https://poser.pugx.org/stripe/stripe-php/license.svg)](https://packagist.org/packages/stripe/stripe-php)
|
7 |
+
[![Code Coverage](https://coveralls.io/repos/stripe/stripe-php/badge.svg?branch=master)](https://coveralls.io/r/stripe/stripe-php?branch=master)
|
8 |
+
|
9 |
+
The Stripe PHP library provides convenient access to the Stripe API from
|
10 |
+
applications written in the PHP language. It includes a pre-defined set of
|
11 |
+
classes for API resources that initialize themselves dynamically from API
|
12 |
+
responses which makes it compatible with a wide range of versions of the Stripe
|
13 |
+
API.
|
14 |
+
|
15 |
+
## Requirements
|
16 |
+
|
17 |
+
PHP 5.4.0 and later.
|
18 |
+
|
19 |
+
## Composer
|
20 |
+
|
21 |
+
You can install the bindings via [Composer](http://getcomposer.org/). Run the following command:
|
22 |
+
|
23 |
+
```bash
|
24 |
+
composer require stripe/stripe-php
|
25 |
+
```
|
26 |
+
|
27 |
+
To use the bindings, use Composer's [autoload](https://getcomposer.org/doc/01-basic-usage.md#autoloading):
|
28 |
+
|
29 |
+
```php
|
30 |
+
require_once('vendor/autoload.php');
|
31 |
+
```
|
32 |
+
|
33 |
+
## Manual Installation
|
34 |
+
|
35 |
+
If you do not wish to use Composer, you can download the [latest release](https://github.com/stripe/stripe-php/releases). Then, to use the bindings, include the `init.php` file.
|
36 |
+
|
37 |
+
```php
|
38 |
+
require_once('/path/to/stripe-php/init.php');
|
39 |
+
```
|
40 |
+
|
41 |
+
## Dependencies
|
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 |
+
|
51 |
+
## Getting Started
|
52 |
+
|
53 |
+
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
|
62 |
+
|
63 |
+
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 |
+
|
89 |
+
```php
|
90 |
+
// set up your tweaked Curl client
|
91 |
+
$curl = new \Stripe\HttpClient\CurlClient();
|
92 |
+
$curl->setTimeout(10); // default is \Stripe\HttpClient\CurlClient::DEFAULT_TIMEOUT
|
93 |
+
$curl->setConnectTimeout(5); // default is \Stripe\HttpClient\CurlClient::DEFAULT_CONNECT_TIMEOUT
|
94 |
+
|
95 |
+
echo $curl->getTimeout(); // 10
|
96 |
+
echo $curl->getConnectTimeout(); // 5
|
97 |
+
|
98 |
+
// tell Stripe to use the tweaked client
|
99 |
+
\Stripe\ApiRequestor::setHttpClient($curl);
|
100 |
+
|
101 |
+
// use the Stripe API client as you normally would
|
102 |
+
```
|
103 |
+
|
104 |
+
## Custom cURL Options (e.g. proxies)
|
105 |
+
|
106 |
+
Need to set a proxy for your requests? Pass in the requisite `CURLOPT_*` array to the CurlClient constructor, using the same syntax as `curl_stopt_array()`. This will set the default cURL options for each HTTP request made by the SDK, though many more common options (e.g. timeouts; see above on how to set those) will be overridden by the client even if set here.
|
107 |
+
|
108 |
+
```php
|
109 |
+
// set up your tweaked Curl client
|
110 |
+
$curl = new \Stripe\HttpClient\CurlClient([CURLOPT_PROXY => 'proxy.local:80']);
|
111 |
+
// tell Stripe to use the tweaked client
|
112 |
+
\Stripe\ApiRequestor::setHttpClient($curl);
|
113 |
+
```
|
114 |
+
|
115 |
+
Alternately, a callable can be passed to the CurlClient constructor that returns the above array based on request inputs. See `testDefaultOptions()` in `tests/CurlClientTest.php` for an example of this behavior. Note that the callable is called at the beginning of every API request, before the request is sent.
|
116 |
+
|
117 |
+
### Configuring a Logger
|
118 |
+
|
119 |
+
The library does minimal logging, but it can be configured
|
120 |
+
with a [`PSR-3` compatible logger][psr3] so that messages
|
121 |
+
end up there instead of `error_log`:
|
122 |
+
|
123 |
+
```php
|
124 |
+
\Stripe\Stripe::setLogger($logger);
|
125 |
+
```
|
126 |
+
|
127 |
+
### Accessing response data
|
128 |
+
|
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
|
137 |
+
|
138 |
+
Stripe's API now requires that [all connections use TLS 1.2](https://stripe.com/blog/upgrading-tls). Some systems (most notably some older CentOS and RHEL versions) are capable of using TLS 1.2 but will use TLS 1.0 or 1.1 by default. In this case, you'd get an `invalid_request_error` with the following error message: "Stripe no longer supports API requests made with TLS 1.0. Please initiate HTTPS connections with TLS 1.2 or later. You can learn more about this at [https://stripe.com/blog/upgrading-tls](https://stripe.com/blog/upgrading-tls).".
|
139 |
+
|
140 |
+
The recommended course of action is to [upgrade your cURL and OpenSSL packages](https://support.stripe.com/questions/how-do-i-upgrade-my-stripe-integration-from-tls-1-0-to-tls-1-2#php) so that TLS 1.2 is used by default, but if that is not possible, you might be able to solve the issue by setting the `CURLOPT_SSLVERSION` option to either `CURL_SSLVERSION_TLSv1` or `CURL_SSLVERSION_TLSv1_2`:
|
141 |
+
|
142 |
+
```php
|
143 |
+
$curl = new \Stripe\HttpClient\CurlClient([CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1]);
|
144 |
+
\Stripe\ApiRequestor::setHttpClient($curl);
|
145 |
+
```
|
146 |
+
|
147 |
+
### Per-request Configuration
|
148 |
+
|
149 |
+
For apps that need to use multiple keys during the lifetime of a process, like
|
150 |
+
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 |
+
]);
|
163 |
+
```
|
164 |
+
|
165 |
+
### Configuring CA Bundles
|
166 |
+
|
167 |
+
By default, the library will use its own internal bundle of known CA
|
168 |
+
certificates, but it's possible to configure your own:
|
169 |
+
|
170 |
+
```php
|
171 |
+
\Stripe\Stripe::setCABundlePath("path/to/ca/bundle");
|
172 |
+
```
|
173 |
+
|
174 |
+
### Configuring Automatic Retries
|
175 |
+
|
176 |
+
The library can be configured to automatically retry requests that fail due to
|
177 |
+
an intermittent network problem:
|
178 |
+
|
179 |
+
```php
|
180 |
+
\Stripe\Stripe::setMaxNetworkRetries(2);
|
181 |
+
```
|
182 |
+
|
183 |
+
[Idempotency keys][idempotency-keys] are added to requests to guarantee that
|
184 |
+
retries are safe.
|
185 |
+
|
186 |
+
### Request latency telemetry
|
187 |
+
|
188 |
+
By default, the library sends request latency telemetry to Stripe. These
|
189 |
+
numbers help Stripe improve the overall latency of its API for all users.
|
190 |
+
|
191 |
+
You can disable this behavior if you prefer:
|
192 |
+
|
193 |
+
```php
|
194 |
+
\Stripe\Stripe::setEnableTelemetry(false);
|
195 |
+
```
|
196 |
+
|
197 |
+
## Development
|
198 |
+
|
199 |
+
Get [Composer][composer]. For example, on Mac OS:
|
200 |
+
|
201 |
+
```bash
|
202 |
+
brew install composer
|
203 |
+
```
|
204 |
+
|
205 |
+
Install dependencies:
|
206 |
+
|
207 |
+
```bash
|
208 |
+
composer install
|
209 |
+
```
|
210 |
+
|
211 |
+
The test suite depends on [stripe-mock], so make sure to fetch and run it from a
|
212 |
+
background terminal ([stripe-mock's README][stripe-mock] also contains
|
213 |
+
instructions for installing via Homebrew and other methods):
|
214 |
+
|
215 |
+
```bash
|
216 |
+
go get -u github.com/stripe/stripe-mock
|
217 |
+
stripe-mock
|
218 |
+
```
|
219 |
+
|
220 |
+
Install dependencies as mentioned above (which will resolve [PHPUnit](http://packagist.org/packages/phpunit/phpunit)), then you can run the test suite:
|
221 |
+
|
222 |
+
```bash
|
223 |
+
./vendor/bin/phpunit
|
224 |
+
```
|
225 |
+
|
226 |
+
Or to run an individual test file:
|
227 |
+
|
228 |
+
```bash
|
229 |
+
./vendor/bin/phpunit tests/UtilTest.php
|
230 |
+
```
|
231 |
+
|
232 |
+
Update bundled CA certificates from the [Mozilla cURL release][curl]:
|
233 |
+
|
234 |
+
```bash
|
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:
|
241 |
+
|
242 |
+
```php
|
243 |
+
\Stripe\Stripe::setAppInfo("MyAwesomePlugin", "1.2.34", "https://myawesomeplugin.info");
|
244 |
+
```
|
245 |
+
|
246 |
+
The method should be called once, before any request is sent to the API. The second and third parameters are optional.
|
247 |
+
|
248 |
+
### SSL / TLS configuration option
|
249 |
+
|
250 |
+
See the "SSL / TLS compatibility issues" paragraph above for full context. If you want to ensure that your plugin can be used on all systems, you should add a configuration option to let your users choose between different values for `CURLOPT_SSLVERSION`: none (default), `CURL_SSLVERSION_TLSv1` and `CURL_SSLVERSION_TLSv1_2`.
|
251 |
+
|
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
|
lib/stripe-gateway/VERSION
ADDED
@@ -0,0 +1 @@
|
|
Â
|
1 |
+
6.43.1
|
lib/stripe-gateway/build.php
ADDED
@@ -0,0 +1,36 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
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 |
+
}
|
lib/stripe-gateway/composer.json
ADDED
@@ -0,0 +1,37 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
{
|
2 |
+
"name": "stripe/stripe-php",
|
3 |
+
"description": "Stripe PHP Library",
|
4 |
+
"keywords": [
|
5 |
+
"stripe",
|
6 |
+
"payment processing",
|
7 |
+
"api"
|
8 |
+
],
|
9 |
+
"homepage": "https://stripe.com/",
|
10 |
+
"license": "MIT",
|
11 |
+
"authors": [
|
12 |
+
{
|
13 |
+
"name": "Stripe and contributors",
|
14 |
+
"homepage": "https://github.com/stripe/stripe-php/contributors"
|
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": {
|
34 |
+
"dev-master": "2.0-dev"
|
35 |
+
}
|
36 |
+
}
|
37 |
+
}
|
lib/stripe-gateway/data/ca-certificates.crt
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
Â
##
|
2 |
Â
## Bundle of CA Root Certificates
|
3 |
Â
##
|
4 |
-
## Certificate data from Mozilla as of:
|
5 |
Â
##
|
6 |
Â
## This is a bundle of X.509 certificates of public Certificate Authorities
|
7 |
Â
## (CA). These were automatically extracted from Mozilla's root certificates
|
8 |
Â
## file (certdata.txt). This file can be found in the mozilla source tree:
|
9 |
-
##
|
10 |
Â
##
|
11 |
Â
## It contains the certificates in PEM format and therefore
|
12 |
Â
## can be directly used with curl / libcurl / php_curl, or with
|
13 |
Â
## an Apache+mod_ssl webserver for SSL client authentication.
|
14 |
Â
## Just configure this file as the SSLCACertificateFile.
|
15 |
Â
##
|
16 |
-
## Conversion done with mk-ca-bundle.pl version 1.
|
17 |
-
##
|
18 |
Â
##
|
19 |
Â
|
20 |
Â
|
@@ -130,30 +130,6 @@ Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
|
|
130 |
Â
RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
|
131 |
Â
-----END CERTIFICATE-----
|
132 |
Â
|
133 |
-
AddTrust Low-Value Services Root
|
134 |
-
================================
|
135 |
-
-----BEGIN CERTIFICATE-----
|
136 |
-
MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
|
137 |
-
QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU
|
138 |
-
cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw
|
139 |
-
CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO
|
140 |
-
ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB
|
141 |
-
AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6
|
142 |
-
54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr
|
143 |
-
oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1
|
144 |
-
Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui
|
145 |
-
GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w
|
146 |
-
HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD
|
147 |
-
AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT
|
148 |
-
RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw
|
149 |
-
HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt
|
150 |
-
ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph
|
151 |
-
iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
|
152 |
-
eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr
|
153 |
-
mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj
|
154 |
-
ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
|
155 |
-
-----END CERTIFICATE-----
|
156 |
-
|
157 |
Â
AddTrust External Root
|
158 |
Â
======================
|
159 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -178,54 +154,6 @@ e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
|
|
178 |
Â
G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
|
179 |
Â
-----END CERTIFICATE-----
|
180 |
Â
|
181 |
-
AddTrust Public Services Root
|
182 |
-
=============================
|
183 |
-
-----BEGIN CERTIFICATE-----
|
184 |
-
MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
|
185 |
-
QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU
|
186 |
-
cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ
|
187 |
-
BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l
|
188 |
-
dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF
|
189 |
-
AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu
|
190 |
-
nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i
|
191 |
-
d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG
|
192 |
-
Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw
|
193 |
-
HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G
|
194 |
-
A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
|
195 |
-
/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux
|
196 |
-
FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G
|
197 |
-
A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4
|
198 |
-
JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL
|
199 |
-
+YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
|
200 |
-
GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9
|
201 |
-
Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H
|
202 |
-
EufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
|
203 |
-
-----END CERTIFICATE-----
|
204 |
-
|
205 |
-
AddTrust Qualified Certificates Root
|
206 |
-
====================================
|
207 |
-
-----BEGIN CERTIFICATE-----
|
208 |
-
MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
|
209 |
-
QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU
|
210 |
-
cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx
|
211 |
-
CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ
|
212 |
-
IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG
|
213 |
-
9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx
|
214 |
-
64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3
|
215 |
-
KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o
|
216 |
-
L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR
|
217 |
-
wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU
|
218 |
-
MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/
|
219 |
-
BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE
|
220 |
-
BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y
|
221 |
-
azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD
|
222 |
-
ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG
|
223 |
-
GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
|
224 |
-
dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze
|
225 |
-
RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB
|
226 |
-
iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE=
|
227 |
-
-----END CERTIFICATE-----
|
228 |
-
|
229 |
Â
Entrust Root Certification Authority
|
230 |
Â
====================================
|
231 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -252,27 +180,6 @@ W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
|
|
252 |
Â
tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
|
253 |
Â
-----END CERTIFICATE-----
|
254 |
Â
|
255 |
-
RSA Security 2048 v3
|
256 |
-
====================
|
257 |
-
-----BEGIN CERTIFICATE-----
|
258 |
-
MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK
|
259 |
-
ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy
|
260 |
-
MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb
|
261 |
-
BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
|
262 |
-
AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7
|
263 |
-
Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb
|
264 |
-
WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH
|
265 |
-
KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP
|
266 |
-
+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/
|
267 |
-
MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E
|
268 |
-
FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY
|
269 |
-
v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj
|
270 |
-
0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj
|
271 |
-
VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395
|
272 |
-
nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA
|
273 |
-
pKnXwiJPZ9d37CAFYd4=
|
274 |
-
-----END CERTIFICATE-----
|
275 |
-
|
276 |
Â
GeoTrust Global CA
|
277 |
Â
==================
|
278 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -294,27 +201,6 @@ XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
|
|
294 |
Â
Mw==
|
295 |
Â
-----END CERTIFICATE-----
|
296 |
Â
|
297 |
-
GeoTrust Global CA 2
|
298 |
-
====================
|
299 |
-
-----BEGIN CERTIFICATE-----
|
300 |
-
MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
|
301 |
-
R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw
|
302 |
-
MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
|
303 |
-
LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
304 |
-
ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/
|
305 |
-
NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k
|
306 |
-
LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA
|
307 |
-
Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b
|
308 |
-
HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF
|
309 |
-
MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH
|
310 |
-
K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7
|
311 |
-
srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh
|
312 |
-
ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL
|
313 |
-
OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC
|
314 |
-
x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF
|
315 |
-
H4z1Ir+rzoPz4iIprn2DQKi6bA==
|
316 |
-
-----END CERTIFICATE-----
|
317 |
-
|
318 |
Â
GeoTrust Universal CA
|
319 |
Â
=====================
|
320 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -440,56 +326,6 @@ Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
|
|
440 |
Â
12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
|
441 |
Â
-----END CERTIFICATE-----
|
442 |
Â
|
443 |
-
Comodo Secure Services root
|
444 |
-
===========================
|
445 |
-
-----BEGIN CERTIFICATE-----
|
446 |
-
MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
|
447 |
-
R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
|
448 |
-
TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw
|
449 |
-
MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu
|
450 |
-
Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi
|
451 |
-
BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
452 |
-
ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP
|
453 |
-
9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc
|
454 |
-
rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC
|
455 |
-
oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V
|
456 |
-
p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E
|
457 |
-
FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
|
458 |
-
gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj
|
459 |
-
YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm
|
460 |
-
aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm
|
461 |
-
4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
|
462 |
-
Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL
|
463 |
-
DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw
|
464 |
-
pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H
|
465 |
-
RR3B7Hzs/Sk=
|
466 |
-
-----END CERTIFICATE-----
|
467 |
-
|
468 |
-
Comodo Trusted Services root
|
469 |
-
============================
|
470 |
-
-----BEGIN CERTIFICATE-----
|
471 |
-
MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
|
472 |
-
R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
|
473 |
-
TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw
|
474 |
-
MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h
|
475 |
-
bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw
|
476 |
-
IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
477 |
-
AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7
|
478 |
-
3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y
|
479 |
-
/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6
|
480 |
-
juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS
|
481 |
-
ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud
|
482 |
-
DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
|
483 |
-
/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp
|
484 |
-
ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl
|
485 |
-
cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw
|
486 |
-
uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
|
487 |
-
pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA
|
488 |
-
BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l
|
489 |
-
R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O
|
490 |
-
9y5Xt5hwXsjEeLBi
|
491 |
-
-----END CERTIFICATE-----
|
492 |
-
|
493 |
Â
QuoVadis Root CA
|
494 |
Â
================
|
495 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -629,54 +465,6 @@ EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
|
|
629 |
Â
llpwrN9M
|
630 |
Â
-----END CERTIFICATE-----
|
631 |
Â
|
632 |
-
Staat der Nederlanden Root CA
|
633 |
-
=============================
|
634 |
-
-----BEGIN CERTIFICATE-----
|
635 |
-
MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE
|
636 |
-
ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g
|
637 |
-
Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w
|
638 |
-
HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh
|
639 |
-
bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt
|
640 |
-
vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P
|
641 |
-
jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca
|
642 |
-
C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth
|
643 |
-
vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6
|
644 |
-
22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV
|
645 |
-
HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v
|
646 |
-
dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN
|
647 |
-
BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR
|
648 |
-
EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw
|
649 |
-
MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y
|
650 |
-
nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
|
651 |
-
iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
|
652 |
-
-----END CERTIFICATE-----
|
653 |
-
|
654 |
-
UTN USERFirst Hardware Root CA
|
655 |
-
==============================
|
656 |
-
-----BEGIN CERTIFICATE-----
|
657 |
-
MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE
|
658 |
-
BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
|
659 |
-
IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd
|
660 |
-
BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx
|
661 |
-
OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0
|
662 |
-
eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz
|
663 |
-
ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3
|
664 |
-
DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI
|
665 |
-
wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd
|
666 |
-
tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8
|
667 |
-
i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf
|
668 |
-
Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw
|
669 |
-
gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF
|
670 |
-
lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF
|
671 |
-
UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF
|
672 |
-
BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
|
673 |
-
//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW
|
674 |
-
XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2
|
675 |
-
lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn
|
676 |
-
iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67
|
677 |
-
nfhmqA==
|
678 |
-
-----END CERTIFICATE-----
|
679 |
-
|
680 |
Â
Camerfirma Chambers of Commerce Root
|
681 |
Â
====================================
|
682 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -731,41 +519,6 @@ IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
|
|
731 |
Â
t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
|
732 |
Â
-----END CERTIFICATE-----
|
733 |
Â
|
734 |
-
NetLock Notary (Class A) Root
|
735 |
-
=============================
|
736 |
-
-----BEGIN CERTIFICATE-----
|
737 |
-
MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI
|
738 |
-
EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
|
739 |
-
dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j
|
740 |
-
ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX
|
741 |
-
DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH
|
742 |
-
EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD
|
743 |
-
VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz
|
744 |
-
cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM
|
745 |
-
D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ
|
746 |
-
z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC
|
747 |
-
/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7
|
748 |
-
tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6
|
749 |
-
4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG
|
750 |
-
A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC
|
751 |
-
Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv
|
752 |
-
bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
|
753 |
-
IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn
|
754 |
-
LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0
|
755 |
-
ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz
|
756 |
-
IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh
|
757 |
-
IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu
|
758 |
-
b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh
|
759 |
-
bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg
|
760 |
-
Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp
|
761 |
-
bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5
|
762 |
-
ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP
|
763 |
-
ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB
|
764 |
-
CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr
|
765 |
-
KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM
|
766 |
-
8CgHrTwXZoi1/baI
|
767 |
-
-----END CERTIFICATE-----
|
768 |
-
|
769 |
Â
XRamp Global CA Root
|
770 |
Â
====================
|
771 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -909,38 +662,6 @@ CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy
|
|
909 |
Â
+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS
|
910 |
Â
-----END CERTIFICATE-----
|
911 |
Â
|
912 |
-
Swisscom Root CA 1
|
913 |
-
==================
|
914 |
-
-----BEGIN CERTIFICATE-----
|
915 |
-
MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG
|
916 |
-
EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
|
917 |
-
dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4
|
918 |
-
MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln
|
919 |
-
aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC
|
920 |
-
IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM
|
921 |
-
MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF
|
922 |
-
NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe
|
923 |
-
AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC
|
924 |
-
b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn
|
925 |
-
7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN
|
926 |
-
cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp
|
927 |
-
WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5
|
928 |
-
haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY
|
929 |
-
MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
|
930 |
-
HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j
|
931 |
-
BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9
|
932 |
-
MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn
|
933 |
-
jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ
|
934 |
-
MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H
|
935 |
-
VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl
|
936 |
-
vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl
|
937 |
-
OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3
|
938 |
-
1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq
|
939 |
-
nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy
|
940 |
-
x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW
|
941 |
-
NY6E0F/6MBr1mmz0DlP5OlvRHA==
|
942 |
-
-----END CERTIFICATE-----
|
943 |
-
|
944 |
Â
DigiCert Assured ID Root CA
|
945 |
Â
===========================
|
946 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -1298,33 +1019,6 @@ wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
|
|
1298 |
Â
ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
|
1299 |
Â
-----END CERTIFICATE-----
|
1300 |
Â
|
1301 |
-
WellsSecure Public Root Certificate Authority
|
1302 |
-
=============================================
|
1303 |
-
-----BEGIN CERTIFICATE-----
|
1304 |
-
MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM
|
1305 |
-
F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw
|
1306 |
-
NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
|
1307 |
-
MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl
|
1308 |
-
bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD
|
1309 |
-
VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
|
1310 |
-
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1
|
1311 |
-
iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13
|
1312 |
-
i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8
|
1313 |
-
bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB
|
1314 |
-
K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB
|
1315 |
-
AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu
|
1316 |
-
cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm
|
1317 |
-
lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB
|
1318 |
-
i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww
|
1319 |
-
GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
|
1320 |
-
Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI
|
1321 |
-
K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0
|
1322 |
-
bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj
|
1323 |
-
qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es
|
1324 |
-
E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ
|
1325 |
-
tylv2G0xffX8oRAHh84vWdw+WNs=
|
1326 |
-
-----END CERTIFICATE-----
|
1327 |
-
|
1328 |
Â
COMODO ECC Certification Authority
|
1329 |
Â
==================================
|
1330 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -1342,30 +1036,6 @@ FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
|
|
1342 |
Â
U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
|
1343 |
Â
-----END CERTIFICATE-----
|
1344 |
Â
|
1345 |
-
IGC/A
|
1346 |
-
=====
|
1347 |
-
-----BEGIN CERTIFICATE-----
|
1348 |
-
MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD
|
1349 |
-
VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE
|
1350 |
-
Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy
|
1351 |
-
MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI
|
1352 |
-
EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT
|
1353 |
-
STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB
|
1354 |
-
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2
|
1355 |
-
TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW
|
1356 |
-
So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy
|
1357 |
-
HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd
|
1358 |
-
frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ
|
1359 |
-
tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB
|
1360 |
-
egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC
|
1361 |
-
iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK
|
1362 |
-
q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q
|
1363 |
-
MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
|
1364 |
-
Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI
|
1365 |
-
lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF
|
1366 |
-
0mBWWg==
|
1367 |
-
-----END CERTIFICATE-----
|
1368 |
-
|
1369 |
Â
Security Communication EV RootCA1
|
1370 |
Â
=================================
|
1371 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -1410,46 +1080,6 @@ hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY
|
|
1410 |
Â
okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
|
1411 |
Â
-----END CERTIFICATE-----
|
1412 |
Â
|
1413 |
-
Microsec e-Szigno Root CA
|
1414 |
-
=========================
|
1415 |
-
-----BEGIN CERTIFICATE-----
|
1416 |
-
MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE
|
1417 |
-
BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL
|
1418 |
-
EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0
|
1419 |
-
MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz
|
1420 |
-
dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT
|
1421 |
-
GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
|
1422 |
-
AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG
|
1423 |
-
d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N
|
1424 |
-
oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc
|
1425 |
-
QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ
|
1426 |
-
PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb
|
1427 |
-
MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG
|
1428 |
-
IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD
|
1429 |
-
VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3
|
1430 |
-
LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A
|
1431 |
-
dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
|
1432 |
-
AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA
|
1433 |
-
4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg
|
1434 |
-
AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA
|
1435 |
-
egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6
|
1436 |
-
Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO
|
1437 |
-
PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv
|
1438 |
-
c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h
|
1439 |
-
cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw
|
1440 |
-
IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT
|
1441 |
-
WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV
|
1442 |
-
MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER
|
1443 |
-
MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp
|
1444 |
-
Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal
|
1445 |
-
HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT
|
1446 |
-
nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE
|
1447 |
-
aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
|
1448 |
-
86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK
|
1449 |
-
yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB
|
1450 |
-
S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
|
1451 |
-
-----END CERTIFICATE-----
|
1452 |
-
|
1453 |
Â
Certigna
|
1454 |
Â
========
|
1455 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -1575,58 +1205,6 @@ LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M
|
|
1575 |
Â
dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
|
1576 |
Â
-----END CERTIFICATE-----
|
1577 |
Â
|
1578 |
-
Buypass Class 2 CA 1
|
1579 |
-
====================
|
1580 |
-
-----BEGIN CERTIFICATE-----
|
1581 |
-
MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
|
1582 |
-
QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2
|
1583 |
-
MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
|
1584 |
-
c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI
|
1585 |
-
hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M
|
1586 |
-
cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83
|
1587 |
-
0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4
|
1588 |
-
0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R
|
1589 |
-
uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC
|
1590 |
-
MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P
|
1591 |
-
AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV
|
1592 |
-
1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt
|
1593 |
-
7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2
|
1594 |
-
fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w
|
1595 |
-
wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
|
1596 |
-
-----END CERTIFICATE-----
|
1597 |
-
|
1598 |
-
EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
|
1599 |
-
==========================================================================
|
1600 |
-
-----BEGIN CERTIFICATE-----
|
1601 |
-
MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNVBAMML0VCRyBF
|
1602 |
-
bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMTcwNQYDVQQKDC5FQkcg
|
1603 |
-
QmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXptZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAe
|
1604 |
-
Fw0wNjA4MTcwMDIxMDlaFw0xNjA4MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25p
|
1605 |
-
ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2lt
|
1606 |
-
IFRla25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIiMA0GCSqG
|
1607 |
-
SIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h4fuXd7hxlugTlkaDT7by
|
1608 |
-
X3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAktiHq6yOU/im/+4mRDGSaBUorzAzu8T2b
|
1609 |
-
gmmkTPiab+ci2hC6X5L8GCcKqKpE+i4stPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfr
|
1610 |
-
eYteIAbTdgtsApWjluTLdlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZ
|
1611 |
-
TqNGFav4c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8UmTDGy
|
1612 |
-
Y5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z+kI2sSXFCjEmN1Zn
|
1613 |
-
uqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0OLna9XvNRiYuoP1Vzv9s6xiQFlpJI
|
1614 |
-
qkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMWOeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vm
|
1615 |
-
ExH8nYQKE3vwO9D8owrXieqWfo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0
|
1616 |
-
Nokb+Clsi7n2l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
|
1617 |
-
/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgwFoAU587GT/wW
|
1618 |
-
Z5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+8ygjdsZs93/mQJ7ANtyVDR2t
|
1619 |
-
FcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgm
|
1620 |
-
zJNSroIBk5DKd8pNSe/iWtkqvTDOTLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64k
|
1621 |
-
XPBfrAowzIpAoHMEwfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqT
|
1622 |
-
bCmYIai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJnxk1Gj7sU
|
1623 |
-
RT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4QDgZxGhBM/nV+/x5XOULK
|
1624 |
-
1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9qKd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt
|
1625 |
-
2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11thie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQ
|
1626 |
-
Y9iJSrSq3RZj9W6+YKH47ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9
|
1627 |
-
AahH3eU7QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT
|
1628 |
-
-----END CERTIFICATE-----
|
1629 |
-
|
1630 |
Â
certSIGN ROOT CA
|
1631 |
Â
================
|
1632 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -1647,49 +1225,6 @@ vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
|
|
1647 |
Â
TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
|
1648 |
Â
-----END CERTIFICATE-----
|
1649 |
Â
|
1650 |
-
CNNIC ROOT
|
1651 |
-
==========
|
1652 |
-
-----BEGIN CERTIFICATE-----
|
1653 |
-
MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE
|
1654 |
-
ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw
|
1655 |
-
OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw
|
1656 |
-
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD
|
1657 |
-
o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz
|
1658 |
-
VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT
|
1659 |
-
VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or
|
1660 |
-
czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK
|
1661 |
-
y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC
|
1662 |
-
wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S
|
1663 |
-
lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5
|
1664 |
-
Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM
|
1665 |
-
O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8
|
1666 |
-
BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2
|
1667 |
-
G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m
|
1668 |
-
mxE=
|
1669 |
-
-----END CERTIFICATE-----
|
1670 |
-
|
1671 |
-
ApplicationCA - Japanese Government
|
1672 |
-
===================================
|
1673 |
-
-----BEGIN CERTIFICATE-----
|
1674 |
-
MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT
|
1675 |
-
SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw
|
1676 |
-
MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl
|
1677 |
-
cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
1678 |
-
CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4
|
1679 |
-
fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN
|
1680 |
-
wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE
|
1681 |
-
jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu
|
1682 |
-
nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU
|
1683 |
-
WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV
|
1684 |
-
BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD
|
1685 |
-
vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs
|
1686 |
-
o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g
|
1687 |
-
/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD
|
1688 |
-
io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW
|
1689 |
-
dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
|
1690 |
-
rosot4LKGAfmt1t06SAZf7IbiVQ=
|
1691 |
-
-----END CERTIFICATE-----
|
1692 |
-
|
1693 |
Â
GeoTrust Primary Certification Authority - G3
|
1694 |
Â
=============================================
|
1695 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -1821,7 +1356,7 @@ AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
|
|
1821 |
Â
-----END CERTIFICATE-----
|
1822 |
Â
|
1823 |
Â
NetLock Arany (Class Gold) FÅ‘tanúsÃtvány
|
1824 |
-
|
1825 |
Â
-----BEGIN CERTIFICATE-----
|
1826 |
Â
MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
|
1827 |
Â
A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
|
@@ -1876,58 +1411,6 @@ IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm
|
|
1876 |
Â
66+KAQ==
|
1877 |
Â
-----END CERTIFICATE-----
|
1878 |
Â
|
1879 |
-
CA Disig
|
1880 |
-
========
|
1881 |
-
-----BEGIN CERTIFICATE-----
|
1882 |
-
MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK
|
1883 |
-
QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw
|
1884 |
-
MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz
|
1885 |
-
bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3
|
1886 |
-
DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm
|
1887 |
-
GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD
|
1888 |
-
Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo
|
1889 |
-
hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt
|
1890 |
-
ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w
|
1891 |
-
gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P
|
1892 |
-
AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz
|
1893 |
-
aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff
|
1894 |
-
ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa
|
1895 |
-
BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t
|
1896 |
-
WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3
|
1897 |
-
mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/
|
1898 |
-
CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K
|
1899 |
-
ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA
|
1900 |
-
4Z7CRneC9VkGjCFMhwnN5ag=
|
1901 |
-
-----END CERTIFICATE-----
|
1902 |
-
|
1903 |
-
Juur-SK
|
1904 |
-
=======
|
1905 |
-
-----BEGIN CERTIFICATE-----
|
1906 |
-
MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA
|
1907 |
-
c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw
|
1908 |
-
DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG
|
1909 |
-
SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy
|
1910 |
-
aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
1911 |
-
ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf
|
1912 |
-
TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC
|
1913 |
-
+Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw
|
1914 |
-
UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa
|
1915 |
-
Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF
|
1916 |
-
MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD
|
1917 |
-
HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh
|
1918 |
-
AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA
|
1919 |
-
cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr
|
1920 |
-
AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw
|
1921 |
-
cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE
|
1922 |
-
FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G
|
1923 |
-
A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo
|
1924 |
-
ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL
|
1925 |
-
abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678
|
1926 |
-
IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh
|
1927 |
-
Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2
|
1928 |
-
yyqcjg==
|
1929 |
-
-----END CERTIFICATE-----
|
1930 |
-
|
1931 |
Â
Hongkong Post Root CA 1
|
1932 |
Â
=======================
|
1933 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -2361,7 +1844,7 @@ Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
|
|
2361 |
Â
-----END CERTIFICATE-----
|
2362 |
Â
|
2363 |
Â
Certinomis - Autorité Racine
|
2364 |
-
|
2365 |
Â
-----BEGIN CERTIFICATE-----
|
2366 |
Â
MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
|
2367 |
Â
Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg
|
@@ -2391,41 +1874,6 @@ wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/
|
|
2391 |
Â
vgt2Fl43N+bYdJeimUV5
|
2392 |
Â
-----END CERTIFICATE-----
|
2393 |
Â
|
2394 |
-
Root CA Generalitat Valenciana
|
2395 |
-
==============================
|
2396 |
-
-----BEGIN CERTIFICATE-----
|
2397 |
-
MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE
|
2398 |
-
ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290
|
2399 |
-
IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3
|
2400 |
-
WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE
|
2401 |
-
CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G
|
2402 |
-
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2
|
2403 |
-
F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B
|
2404 |
-
ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ
|
2405 |
-
D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte
|
2406 |
-
JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB
|
2407 |
-
AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n
|
2408 |
-
dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB
|
2409 |
-
ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl
|
2410 |
-
AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA
|
2411 |
-
YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy
|
2412 |
-
AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
|
2413 |
-
aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt
|
2414 |
-
AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA
|
2415 |
-
YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu
|
2416 |
-
AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA
|
2417 |
-
OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0
|
2418 |
-
dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV
|
2419 |
-
BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G
|
2420 |
-
A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S
|
2421 |
-
b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh
|
2422 |
-
TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz
|
2423 |
-
Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63
|
2424 |
-
NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH
|
2425 |
-
iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt
|
2426 |
-
+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
|
2427 |
-
-----END CERTIFICATE-----
|
2428 |
-
|
2429 |
Â
TWCA Root Certification Authority
|
2430 |
Â
=================================
|
2431 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -2871,93 +2319,6 @@ poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y
|
|
2871 |
Â
eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km
|
2872 |
Â
-----END CERTIFICATE-----
|
2873 |
Â
|
2874 |
-
China Internet Network Information Center EV Certificates Root
|
2875 |
-
==============================================================
|
2876 |
-
-----BEGIN CERTIFICATE-----
|
2877 |
-
MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCQ04xMjAwBgNV
|
2878 |
-
BAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyMUcwRQYDVQQDDD5D
|
2879 |
-
aGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMg
|
2880 |
-
Um9vdDAeFw0xMDA4MzEwNzExMjVaFw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAG
|
2881 |
-
A1UECgwpQ2hpbmEgSW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMM
|
2882 |
-
PkNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRpZmljYXRl
|
2883 |
-
cyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z7r07eKpkQ0H1UN+U8i6y
|
2884 |
-
jUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV
|
2885 |
-
98YPjUesWgbdYavi7NifFy2cyjw1l1VxzUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2H
|
2886 |
-
klY0bBoQCxfVWhyXWIQ8hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23
|
2887 |
-
KzhmBsUs4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54ugQEC
|
2888 |
-
7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oYNJKiyoOCWTAPBgNV
|
2889 |
-
HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfHJLOcfA22KlT5uqGDSSosqD
|
2890 |
-
glkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd5
|
2891 |
-
0XPFtQO3WKwMVC/GVhMPMdoG52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM
|
2892 |
-
7+czV0I664zBechNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws
|
2893 |
-
ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrIzo9uoV1/A3U0
|
2894 |
-
5K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATywy39FCqQmbkHzJ8=
|
2895 |
-
-----END CERTIFICATE-----
|
2896 |
-
|
2897 |
-
Swisscom Root CA 2
|
2898 |
-
==================
|
2899 |
-
-----BEGIN CERTIFICATE-----
|
2900 |
-
MIIF2TCCA8GgAwIBAgIQHp4o6Ejy5e/DfEoeWhhntjANBgkqhkiG9w0BAQsFADBkMQswCQYDVQQG
|
2901 |
-
EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
|
2902 |
-
dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMjAeFw0xMTA2MjQwODM4MTRaFw0zMTA2
|
2903 |
-
MjUwNzM4MTRaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln
|
2904 |
-
aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAyMIIC
|
2905 |
-
IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlUJOhJ1R5tMJ6HJaI2nbeHCOFvErjw0DzpPM
|
2906 |
-
LgAIe6szjPTpQOYXTKueuEcUMncy3SgM3hhLX3af+Dk7/E6J2HzFZ++r0rk0X2s682Q2zsKwzxNo
|
2907 |
-
ysjL67XiPS4h3+os1OD5cJZM/2pYmLcX5BtS5X4HAB1f2uY+lQS3aYg5oUFgJWFLlTloYhyxCwWJ
|
2908 |
-
wDaCFCE/rtuh/bxvHGCGtlOUSbkrRsVPACu/obvLP+DHVxxX6NZp+MEkUp2IVd3Chy50I9AU/SpH
|
2909 |
-
Wrumnf2U5NGKpV+GY3aFy6//SSj8gO1MedK75MDvAe5QQQg1I3ArqRa0jG6F6bYRzzHdUyYb3y1a
|
2910 |
-
SgJA/MTAtukxGggo5WDDH8SQjhBiYEQN7Aq+VRhxLKX0srwVYv8c474d2h5Xszx+zYIdkeNL6yxS
|
2911 |
-
NLCK/RJOlrDrcH+eOfdmQrGrrFLadkBXeyq96G4DsguAhYidDMfCd7Camlf0uPoTXGiTOmekl9Ab
|
2912 |
-
mbeGMktg2M7v0Ax/lZ9vh0+Hio5fCHyqW/xavqGRn1V9TrALacywlKinh/LTSlDcX3KwFnUey7QY
|
2913 |
-
Ypqwpzmqm59m2I2mbJYV4+by+PGDYmy7Velhk6M99bFXi08jsJvllGov34zflVEpYKELKeRcVVi3
|
2914 |
-
qPyZ7iVNTA6z00yPhOgpD/0QVAKFyPnlw4vP5w8CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
|
2915 |
-
HQYDVR0hBBYwFDASBgdghXQBUwIBBgdghXQBUwIBMBIGA1UdEwEB/wQIMAYBAf8CAQcwHQYDVR0O
|
2916 |
-
BBYEFE0mICKJS9PVpAqhb97iEoHF8TwuMB8GA1UdIwQYMBaAFE0mICKJS9PVpAqhb97iEoHF8Twu
|
2917 |
-
MA0GCSqGSIb3DQEBCwUAA4ICAQAyCrKkG8t9voJXiblqf/P0wS4RfbgZPnm3qKhyN2abGu2sEzsO
|
2918 |
-
v2LwnN+ee6FTSA5BesogpxcbtnjsQJHzQq0Qw1zv/2BZf82Fo4s9SBwlAjxnffUy6S8w5X2lejjQ
|
2919 |
-
82YqZh6NM4OKb3xuqFp1mrjX2lhIREeoTPpMSQpKwhI3qEAMw8jh0FcNlzKVxzqfl9NX+Ave5XLz
|
2920 |
-
o9v/tdhZsnPdTSpxsrpJ9csc1fV5yJmz/MFMdOO0vSk3FQQoHt5FRnDsr7p4DooqzgB53MBfGWcs
|
2921 |
-
a0vvaGgLQ+OswWIJ76bdZWGgr4RVSJFSHMYlkSrQwSIjYVmvRRGFHQEkNI/Ps/8XciATwoCqISxx
|
2922 |
-
OQ7Qj1zB09GOInJGTB2Wrk9xseEFKZZZ9LuedT3PDTcNYtsmjGOpI99nBjx8Oto0QuFmtEYE3saW
|
2923 |
-
mA9LSHokMnWRn6z3aOkquVVlzl1h0ydw2Df+n7mvoC5Wt6NlUe07qxS/TFED6F+KBZvuim6c779o
|
2924 |
-
+sjaC+NCydAXFJy3SuCvkychVSa1ZC+N8f+mQAWFBVzKBxlcCxMoTFh/wqXvRdpg065lYZ1Tg3TC
|
2925 |
-
rvJcwhbtkj6EPnNgiLx29CzP0H1907he0ZESEOnN3col49XtmS++dYFLJPlFRpTJKSFTnCZFqhMX
|
2926 |
-
5OfNeOI5wSsSnqaeG8XmDtkx2Q==
|
2927 |
-
-----END CERTIFICATE-----
|
2928 |
-
|
2929 |
-
Swisscom Root EV CA 2
|
2930 |
-
=====================
|
2931 |
-
-----BEGIN CERTIFICATE-----
|
2932 |
-
MIIF4DCCA8igAwIBAgIRAPL6ZOJ0Y9ON/RAdBB92ylgwDQYJKoZIhvcNAQELBQAwZzELMAkGA1UE
|
2933 |
-
BhMCY2gxETAPBgNVBAoTCFN3aXNzY29tMSUwIwYDVQQLExxEaWdpdGFsIENlcnRpZmljYXRlIFNl
|
2934 |
-
cnZpY2VzMR4wHAYDVQQDExVTd2lzc2NvbSBSb290IEVWIENBIDIwHhcNMTEwNjI0MDk0NTA4WhcN
|
2935 |
-
MzEwNjI1MDg0NTA4WjBnMQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsT
|
2936 |
-
HERpZ2l0YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxHjAcBgNVBAMTFVN3aXNzY29tIFJvb3QgRVYg
|
2937 |
-
Q0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMT3HS9X6lds93BdY7BxUglgRCgz
|
2938 |
-
o3pOCvrY6myLURYaVa5UJsTMRQdBTxB5f3HSek4/OE6zAMaVylvNwSqD1ycfMQ4jFrclyxy0uYAy
|
2939 |
-
Xhqdk/HoPGAsp15XGVhRXrwsVgu42O+LgrQ8uMIkqBPHoCE2G3pXKSinLr9xJZDzRINpUKTk4Rti
|
2940 |
-
GZQJo/PDvO/0vezbE53PnUgJUmfANykRHvvSEaeFGHR55E+FFOtSN+KxRdjMDUN/rhPSays/p8Li
|
2941 |
-
qG12W0OfvrSdsyaGOx9/5fLoZigWJdBLlzin5M8J0TbDC77aO0RYjb7xnglrPvMyxyuHxuxenPaH
|
2942 |
-
Za0zKcQvidm5y8kDnftslFGXEBuGCxobP/YCfnvUxVFkKJ3106yDgYjTdLRZncHrYTNaRdHLOdAG
|
2943 |
-
alNgHa/2+2m8atwBz735j9m9W8E6X47aD0upm50qKGsaCnw8qyIL5XctcfaCNYGu+HuB5ur+rPQa
|
2944 |
-
m3Rc6I8k9l2dRsQs0h4rIWqDJ2dVSqTjyDKXZpBy2uPUZC5f46Fq9mDU5zXNysRojddxyNMkM3Ox
|
2945 |
-
bPlq4SjbX8Y96L5V5jcb7STZDxmPX2MYWFCBUWVv8p9+agTnNCRxunZLWB4ZvRVgRaoMEkABnRDi
|
2946 |
-
xzgHcgplwLa7JSnaFp6LNYth7eVxV4O1PHGf40+/fh6Bn0GXAgMBAAGjgYYwgYMwDgYDVR0PAQH/
|
2947 |
-
BAQDAgGGMB0GA1UdIQQWMBQwEgYHYIV0AVMCAgYHYIV0AVMCAjASBgNVHRMBAf8ECDAGAQH/AgED
|
2948 |
-
MB0GA1UdDgQWBBRF2aWBbj2ITY1x0kbBbkUe88SAnTAfBgNVHSMEGDAWgBRF2aWBbj2ITY1x0kbB
|
2949 |
-
bkUe88SAnTANBgkqhkiG9w0BAQsFAAOCAgEAlDpzBp9SSzBc1P6xXCX5145v9Ydkn+0UjrgEjihL
|
2950 |
-
j6p7jjm02Vj2e6E1CqGdivdj5eu9OYLU43otb98TPLr+flaYC/NUn81ETm484T4VvwYmneTwkLbU
|
2951 |
-
wp4wLh/vx3rEUMfqe9pQy3omywC0Wqu1kx+AiYQElY2NfwmTv9SoqORjbdlk5LgpWgi/UOGED1V7
|
2952 |
-
XwgiG/W9mR4U9s70WBCCswo9GcG/W6uqmdjyMb3lOGbcWAXH7WMaLgqXfIeTK7KK4/HsGOV1timH
|
2953 |
-
59yLGn602MnTihdsfSlEvoqq9X46Lmgxk7lq2prg2+kupYTNHAq4Sgj5nPFhJpiTt3tm7JFe3VE/
|
2954 |
-
23MPrQRYCd0EApUKPtN236YQHoA96M2kZNEzx5LH4k5E4wnJTsJdhw4Snr8PyQUQ3nqjsTzyP6Wq
|
2955 |
-
J3mtMX0f/fwZacXduT98zca0wjAefm6S139hdlqP65VNvBFuIXxZN5nQBrz5Bm0yFqXZaajh3DyA
|
2956 |
-
HmBR3NdUIR7KYndP+tiPsys6DXhyyWhBWkdKwqPrGtcKqzwyVcgKEZzfdNbwQBUdyLmPtTbFr/gi
|
2957 |
-
uMod89a2GQ+fYWVq6nTIfI/DT11lgh/ZDYnadXL77/FHZxOzyNEZiCcmmpl5fx7kLD977vHeTYuW
|
2958 |
-
l8PVP3wbI+2ksx0WckNLIOFZfsLorSa/ovc=
|
2959 |
-
-----END CERTIFICATE-----
|
2960 |
-
|
2961 |
Â
CA Disig Root R1
|
2962 |
Â
================
|
2963 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -3756,7 +3117,7 @@ ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
|
|
3756 |
Â
-----END CERTIFICATE-----
|
3757 |
Â
|
3758 |
Â
TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5
|
3759 |
-
|
3760 |
Â
-----BEGIN CERTIFICATE-----
|
3761 |
Â
MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN
|
3762 |
Â
BgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
|
@@ -3779,30 +3140,6 @@ lpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CFYv4HAqGEVka+lgqaE9chTLd8
|
|
3779 |
Â
B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU=
|
3780 |
Â
-----END CERTIFICATE-----
|
3781 |
Â
|
3782 |
-
TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H6
|
3783 |
-
=========================================================
|
3784 |
-
-----BEGIN CERTIFICATE-----
|
3785 |
-
MIIEJjCCAw6gAwIBAgIGfaHyZeyKMA0GCSqGSIb3DQEBCwUAMIGxMQswCQYDVQQGEwJUUjEPMA0G
|
3786 |
-
A1UEBwwGQW5rYXJhMU0wSwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
|
3787 |
-
acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBF
|
3788 |
-
bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg2MB4XDTEzMTIxODA5
|
3789 |
-
MDQxMFoXDTIzMTIxNjA5MDQxMFowgbExCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExTTBL
|
3790 |
-
BgNVBAoMRFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBCaWxpxZ9pbSBHw7x2ZW5sacSf
|
3791 |
-
aSBIaXptZXRsZXJpIEEuxZ4uMUIwQAYDVQQDDDlUw5xSS1RSVVNUIEVsZWt0cm9uaWsgU2VydGlm
|
3792 |
-
aWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLEgSDYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
|
3793 |
-
AoIBAQCdsGjW6L0UlqMACprx9MfMkU1xeHe59yEmFXNRFpQJRwXiM/VomjX/3EsvMsew7eKC5W/a
|
3794 |
-
2uqsxgbPJQ1BgfbBOCK9+bGlprMBvD9QFyv26WZV1DOzXPhDIHiTVRZwGTLmiddk671IUP320EED
|
3795 |
-
wnS3/faAz1vFq6TWlRKb55cTMgPp1KtDWxbtMyJkKbbSk60vbNg9tvYdDjTu0n2pVQ8g9P0pu5Fb
|
3796 |
-
HH3GQjhtQiht1AH7zYiXSX6484P4tZgvsycLSF5W506jM7NE1qXyGJTtHB6plVxiSvgNZ1GpryHV
|
3797 |
-
+DKdeboaX+UEVU0TRv/yz3THGmNtwx8XEsMeED5gCLMxAgMBAAGjQjBAMB0GA1UdDgQWBBTdVRcT
|
3798 |
-
9qzoSCHK77Wv0QAy7Z6MtTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
|
3799 |
-
9w0BAQsFAAOCAQEAb1gNl0OqFlQ+v6nfkkU/hQu7VtMMUszIv3ZnXuaqs6fvuay0EBQNdH49ba3R
|
3800 |
-
fdCaqaXKGDsCQC4qnFAUi/5XfldcEQlLNkVS9z2sFP1E34uXI9TDwe7UU5X+LEr+DXCqu4svLcsy
|
3801 |
-
o4LyVN/Y8t3XSHLuSqMplsNEzm61kod2pLv0kmzOLBQJZo6NrRa1xxsJYTvjIKIDgI6tflEATseW
|
3802 |
-
hvtDmHd9KMeP2Cpu54Rvl0EpABZeTeIT6lnAY2c6RPuY/ATTMHKm9ocJV612ph1jmv3XZch4gyt1
|
3803 |
-
O6VbuA1df74jrlZVlFjvH4GMKrLN5ptjnhi85WsGtAuYSyher4hYyw==
|
3804 |
-
-----END CERTIFICATE-----
|
3805 |
-
|
3806 |
Â
Certinomis - Root CA
|
3807 |
Â
====================
|
3808 |
Â
-----BEGIN CERTIFICATE-----
|
@@ -3892,28 +3229,418 @@ Daupn75OcsqF1NnstTJFGG+rrQIwfcf3aWMvoeGY7xMQ0Xk/0f7qO3/eVvSQsRUR2LIiFdAvwyYu
|
|
3892 |
Â
a/GRspBl9JrmkO5K
|
3893 |
Â
-----END CERTIFICATE-----
|
3894 |
Â
|
3895 |
-
|
3896 |
-
|
3897 |
-
|
3898 |
-
|
3899 |
-
|
3900 |
-
|
3901 |
-
|
3902 |
-
|
3903 |
-
|
3904 |
-
|
3905 |
-
|
3906 |
-
|
3907 |
-
|
3908 |
-
|
3909 |
-
|
3910 |
-
|
3911 |
-
|
3912 |
-
|
3913 |
-
|
3914 |
-
|
3915 |
-
|
3916 |
-
|
3917 |
-
|
3918 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
3919 |
Â
-----END CERTIFICATE-----
|
1 |
Â
##
|
2 |
Â
## Bundle of CA Root Certificates
|
3 |
Â
##
|
4 |
+
## Certificate data from Mozilla as of: Wed Sep 20 03:12:05 2017 GMT
|
5 |
Â
##
|
6 |
Â
## This is a bundle of X.509 certificates of public Certificate Authorities
|
7 |
Â
## (CA). These were automatically extracted from Mozilla's root certificates
|
8 |
Â
## file (certdata.txt). This file can be found in the mozilla source tree:
|
9 |
+
## https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt
|
10 |
Â
##
|
11 |
Â
## It contains the certificates in PEM format and therefore
|
12 |
Â
## can be directly used with curl / libcurl / php_curl, or with
|
13 |
Â
## an Apache+mod_ssl webserver for SSL client authentication.
|
14 |
Â
## Just configure this file as the SSLCACertificateFile.
|
15 |
Â
##
|
16 |
+
## Conversion done with mk-ca-bundle.pl version 1.27.
|
17 |
+
## SHA256: 2b2dbe5244e0047e088c597998883a913f6c5fffd1cb5c0fe5a368c8466cb2ec
|
18 |
Â
##
|
19 |
Â
|
20 |
Â
|
130 |
Â
RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
|
131 |
Â
-----END CERTIFICATE-----
|
132 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
133 |
Â
AddTrust External Root
|
134 |
Â
======================
|
135 |
Â
-----BEGIN CERTIFICATE-----
|
154 |
Â
G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
|
155 |
Â
-----END CERTIFICATE-----
|
156 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
157 |
Â
Entrust Root Certification Authority
|
158 |
Â
====================================
|
159 |
Â
-----BEGIN CERTIFICATE-----
|
180 |
Â
tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
|
181 |
Â
-----END CERTIFICATE-----
|
182 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
183 |
Â
GeoTrust Global CA
|
184 |
Â
==================
|
185 |
Â
-----BEGIN CERTIFICATE-----
|
201 |
Â
Mw==
|
202 |
Â
-----END CERTIFICATE-----
|
203 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
204 |
Â
GeoTrust Universal CA
|
205 |
Â
=====================
|
206 |
Â
-----BEGIN CERTIFICATE-----
|
326 |
Â
12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
|
327 |
Â
-----END CERTIFICATE-----
|
328 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
329 |
Â
QuoVadis Root CA
|
330 |
Â
================
|
331 |
Â
-----BEGIN CERTIFICATE-----
|
465 |
Â
llpwrN9M
|
466 |
Â
-----END CERTIFICATE-----
|
467 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
468 |
Â
Camerfirma Chambers of Commerce Root
|
469 |
Â
====================================
|
470 |
Â
-----BEGIN CERTIFICATE-----
|
519 |
Â
t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
|
520 |
Â
-----END CERTIFICATE-----
|
521 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
522 |
Â
XRamp Global CA Root
|
523 |
Â
====================
|
524 |
Â
-----BEGIN CERTIFICATE-----
|
662 |
Â
+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS
|
663 |
Â
-----END CERTIFICATE-----
|
664 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
665 |
Â
DigiCert Assured ID Root CA
|
666 |
Â
===========================
|
667 |
Â
-----BEGIN CERTIFICATE-----
|
1019 |
Â
ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
|
1020 |
Â
-----END CERTIFICATE-----
|
1021 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1022 |
Â
COMODO ECC Certification Authority
|
1023 |
Â
==================================
|
1024 |
Â
-----BEGIN CERTIFICATE-----
|
1036 |
Â
U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
|
1037 |
Â
-----END CERTIFICATE-----
|
1038 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1039 |
Â
Security Communication EV RootCA1
|
1040 |
Â
=================================
|
1041 |
Â
-----BEGIN CERTIFICATE-----
|
1080 |
Â
okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
|
1081 |
Â
-----END CERTIFICATE-----
|
1082 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1083 |
Â
Certigna
|
1084 |
Â
========
|
1085 |
Â
-----BEGIN CERTIFICATE-----
|
1205 |
Â
dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
|
1206 |
Â
-----END CERTIFICATE-----
|
1207 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1208 |
Â
certSIGN ROOT CA
|
1209 |
Â
================
|
1210 |
Â
-----BEGIN CERTIFICATE-----
|
1225 |
Â
TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
|
1226 |
Â
-----END CERTIFICATE-----
|
1227 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1228 |
Â
GeoTrust Primary Certification Authority - G3
|
1229 |
Â
=============================================
|
1230 |
Â
-----BEGIN CERTIFICATE-----
|
1356 |
Â
-----END CERTIFICATE-----
|
1357 |
Â
|
1358 |
Â
NetLock Arany (Class Gold) FÅ‘tanúsÃtvány
|
1359 |
+
========================================
|
1360 |
Â
-----BEGIN CERTIFICATE-----
|
1361 |
Â
MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
|
1362 |
Â
A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
|
1411 |
Â
66+KAQ==
|
1412 |
Â
-----END CERTIFICATE-----
|
1413 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1414 |
Â
Hongkong Post Root CA 1
|
1415 |
Â
=======================
|
1416 |
Â
-----BEGIN CERTIFICATE-----
|
1844 |
Â
-----END CERTIFICATE-----
|
1845 |
Â
|
1846 |
Â
Certinomis - Autorité Racine
|
1847 |
+
============================
|
1848 |
Â
-----BEGIN CERTIFICATE-----
|
1849 |
Â
MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
|
1850 |
Â
Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg
|
1874 |
Â
vgt2Fl43N+bYdJeimUV5
|
1875 |
Â
-----END CERTIFICATE-----
|
1876 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1877 |
Â
TWCA Root Certification Authority
|
1878 |
Â
=================================
|
1879 |
Â
-----BEGIN CERTIFICATE-----
|
2319 |
Â
eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km
|
2320 |
Â
-----END CERTIFICATE-----
|
2321 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
2322 |
Â
CA Disig Root R1
|
2323 |
Â
================
|
2324 |
Â
-----BEGIN CERTIFICATE-----
|
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
|
3140 |
Â
B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU=
|
3141 |
Â
-----END CERTIFICATE-----
|
3142 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
3143 |
Â
Certinomis - Root CA
|
3144 |
Â
====================
|
3145 |
Â
-----BEGIN CERTIFICATE-----
|
3229 |
Â
a/GRspBl9JrmkO5K
|
3230 |
Â
-----END CERTIFICATE-----
|
3231 |
Â
|
3232 |
+
SZAFIR ROOT CA2
|
3233 |
+
===============
|
3234 |
+
-----BEGIN CERTIFICATE-----
|
3235 |
+
MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTELMAkG
|
3236 |
+
A1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNV
|
3237 |
+
BAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJ
|
3238 |
+
BgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYD
|
3239 |
+
VQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5Q
|
3240 |
+
qEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT3PSQ1hNK
|
3241 |
+
DJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw3gAeqDRHu5rr/gsUvTaE
|
3242 |
+
2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr63fE9biCloBK0TXC5ztdyO4mTp4CEHCdJ
|
3243 |
+
ckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwi
|
3244 |
+
ieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P
|
3245 |
+
AQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOC
|
3246 |
+
AQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5
|
3247 |
+
O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67
|
3248 |
+
oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul
|
3249 |
+
4+vJhaAlIDf7js4MNIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6
|
3250 |
+
+/NNIxuZMzSgLvWpCz/UXeHPhJ/iGcJfitYgHuNztw==
|
3251 |
+
-----END CERTIFICATE-----
|
3252 |
+
|
3253 |
+
Certum Trusted Network CA 2
|
3254 |
+
===========================
|
3255 |
+
-----BEGIN CERTIFICATE-----
|
3256 |
+
MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UE
|
3257 |
+
BhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1
|
3258 |
+
bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29y
|
3259 |
+
ayBDQSAyMCIYDzIwMTExMDA2MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQ
|
3260 |
+
TDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENl
|
3261 |
+
cnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENB
|
3262 |
+
IDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWADGSdhhuWZGc/IjoedQF9
|
3263 |
+
7/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+o
|
3264 |
+
CgCXhVqqndwpyeI1B+twTUrWwbNWuKFBOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40b
|
3265 |
+
Rr5HMNUuctHFY9rnY3lEfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2p
|
3266 |
+
uTRZCr+ESv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1mo130
|
3267 |
+
GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02isx7QBlrd9pPPV3WZ
|
3268 |
+
9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOWOZV7bIBaTxNyxtd9KXpEulKkKtVB
|
3269 |
+
Rgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pye
|
3270 |
+
hizKV/Ma5ciSixqClnrDvFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vM
|
3271 |
+
BhBgu4M1t15n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
|
3272 |
+
AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI
|
3273 |
+
hvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQF/xlhMcQSZDe28cmk4gmb3DW
|
3274 |
+
Al45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuA
|
3275 |
+
L55MYIR4PSFk1vtBHxgP58l1cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMo
|
3276 |
+
clm2q8KMZiYcdywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tM
|
3277 |
+
pkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jbAoJnwTnb
|
3278 |
+
w3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksqP/ujmv5zMnHCnsZy4Ypo
|
3279 |
+
J/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Kob7a6bINDd82Kkhehnlt4Fj1F4jNy3eFm
|
3280 |
+
ypnTycUm/Q1oBEauttmbjL4ZvrHG8hnjXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLX
|
3281 |
+
is7VmFxWlgPF7ncGNf/P5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7
|
3282 |
+
zAYspsbiDrW5viSP
|
3283 |
+
-----END CERTIFICATE-----
|
3284 |
+
|
3285 |
+
Hellenic Academic and Research Institutions RootCA 2015
|
3286 |
+
=======================================================
|
3287 |
+
-----BEGIN CERTIFICATE-----
|
3288 |
+
MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcT
|
3289 |
+
BkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0
|
3290 |
+
aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl
|
3291 |
+
YXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAx
|
3292 |
+
MTIxWjCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMg
|
3293 |
+
QWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNV
|
3294 |
+
BAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIw
|
3295 |
+
MTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDC+Kk/G4n8PDwEXT2QNrCROnk8Zlrv
|
3296 |
+
bTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+eh
|
3297 |
+
iGsxr/CL0BgzuNtFajT0AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+
|
3298 |
+
6PAQZe104S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06CojXd
|
3299 |
+
FPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV9Cz82XBST3i4vTwr
|
3300 |
+
i5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrDgfgXy5I2XdGj2HUb4Ysn6npIQf1F
|
3301 |
+
GQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2
|
3302 |
+
fu/Z8VFRfS0myGlZYeCsargqNhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9mu
|
3303 |
+
iNX6hME6wGkoLfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc
|
3304 |
+
Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
|
3305 |
+
AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVdctA4GGqd83EkVAswDQYJKoZI
|
3306 |
+
hvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0IXtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+
|
3307 |
+
D1hYc2Ryx+hFjtyp8iY/xnmMsVMIM4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrM
|
3308 |
+
d/K4kPFox/la/vot9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+y
|
3309 |
+
d+2VZ5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/eaj8GsGsVn
|
3310 |
+
82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnhX9izjFk0WaSrT2y7Hxjb
|
3311 |
+
davYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQl033DlZdwJVqwjbDG2jJ9SrcR5q+ss7F
|
3312 |
+
Jej6A7na+RZukYT1HCjI/CbM1xyQVqdfbzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVt
|
3313 |
+
J94Cj8rDtSvK6evIIVM4pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGa
|
3314 |
+
JI7ZjnHKe7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0vm9q
|
3315 |
+
p/UsQu0yrbYhnr68
|
3316 |
+
-----END CERTIFICATE-----
|
3317 |
+
|
3318 |
+
Hellenic Academic and Research Institutions ECC RootCA 2015
|
3319 |
+
===========================================================
|
3320 |
+
-----BEGIN CERTIFICATE-----
|
3321 |
+
MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0
|
3322 |
+
aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u
|
3323 |
+
cyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj
|
3324 |
+
aCBJbnN0aXR1dGlvbnMgRUNDIFJvb3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEw
|
3325 |
+
MzcxMlowgaoxCzAJBgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmlj
|
3326 |
+
IEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUQwQgYD
|
3327 |
+
VQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIEVDQyBSb290
|
3328 |
+
Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKgQehLgoRc4vgxEZmGZE4JJS+dQS8KrjVP
|
3329 |
+
dJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJajq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoK
|
3330 |
+
Vlp8aQuqgAkkbH7BRqNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
|
3331 |
+
BBYEFLQiC4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaeplSTA
|
3332 |
+
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-----
|
3459 |
+
MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAwTzELMAkGA1UE
|
3460 |
+
BhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQD
|
3461 |
+
EwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQG
|
3462 |
+
EwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMT
|
3463 |
+
DElTUkcgUm9vdCBYMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54r
|
3464 |
+
Vygch77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+0TM8ukj1
|
3465 |
+
3Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6UA5/TR5d8mUgjU+g4rk8K
|
3466 |
+
b4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sWT8KOEUt+zwvo/7V3LvSye0rgTBIlDHCN
|
3467 |
+
Aymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyHB5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ
|
3468 |
+
4Q7e2RCOFvu396j3x+UCB5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf
|
3469 |
+
1b0SHzUvKBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWnOlFu
|
3470 |
+
hjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTnjh8BCNAw1FtxNrQH
|
3471 |
+
usEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbwqHyGO0aoSCqI3Haadr8faqU9GY/r
|
3472 |
+
OPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CIrU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4G
|
3473 |
+
A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY
|
3474 |
+
9umbbjANBgkqhkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
|
3475 |
+
ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ3BebYhtF8GaV
|
3476 |
+
0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KKNFtY2PwByVS5uCbMiogziUwt
|
3477 |
+
hDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJw
|
3478 |
+
TdwJx4nLCgdNbOhdjsnvzqvHu7UrTkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nx
|
3479 |
+
e5AW0wdeRlN8NwdCjNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZA
|
3480 |
+
JzVcoyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq4RgqsahD
|
3481 |
+
YVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPAmRGunUHBcnWEvgJBQl9n
|
3482 |
+
JEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57demyPxgcYxn/eR44/KJ4EBs+lVDR3veyJ
|
3483 |
+
m+kXQ99b21/+jh5Xos1AnX5iItreGCc=
|
3484 |
+
-----END CERTIFICATE-----
|
3485 |
+
|
3486 |
+
AC RAIZ FNMT-RCM
|
3487 |
+
================
|
3488 |
+
-----BEGIN CERTIFICATE-----
|
3489 |
+
MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsxCzAJBgNVBAYT
|
3490 |
+
AkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTAeFw0wODEw
|
3491 |
+
MjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJD
|
3492 |
+
TTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
|
3493 |
+
ggIBALpxgHpMhm5/yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcf
|
3494 |
+
qQgfBBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAzWHFctPVr
|
3495 |
+
btQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxFtBDXaEAUwED653cXeuYL
|
3496 |
+
j2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z374jNUUeAlz+taibmSXaXvMiwzn15Cou
|
3497 |
+
08YfxGyqxRxqAQVKL9LFwag0Jl1mpdICIfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mw
|
3498 |
+
WsXmo8RZZUc1g16p6DULmbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnT
|
3499 |
+
tOmlcYF7wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peSMKGJ
|
3500 |
+
47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2ZSysV4999AeU14EC
|
3501 |
+
ll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMetUqIJ5G+GR4of6ygnXYMgrwTJbFaa
|
3502 |
+
i0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
|
3503 |
+
FPd9xf3E6Jobd2Sn9R2gzL+HYJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1o
|
3504 |
+
dHRwOi8vd3d3LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD
|
3505 |
+
nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1RXxlDPiyN8+s
|
3506 |
+
D8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYMLVN0V2Ue1bLdI4E7pWYjJ2cJ
|
3507 |
+
j+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrT
|
3508 |
+
Qfv6MooqtyuGC2mDOL7Nii4LcK2NJpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW
|
3509 |
+
+YJF1DngoABd15jmfZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7
|
3510 |
+
Ixjp6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp1txyM/1d
|
3511 |
+
8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B9kiABdcPUXmsEKvU7ANm
|
3512 |
+
5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wokRqEIr9baRRmW1FMdW4R58MD3R++Lj8UG
|
3513 |
+
rp1MYp3/RgT408m2ECVAdf4WqslKYIYvuu8wd+RU4riEmViAqhOLUTpPSPaLtrM=
|
3514 |
+
-----END CERTIFICATE-----
|
3515 |
+
|
3516 |
+
Amazon Root CA 1
|
3517 |
+
================
|
3518 |
+
-----BEGIN CERTIFICATE-----
|
3519 |
+
MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsFADA5MQswCQYD
|
3520 |
+
VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAxMB4XDTE1
|
3521 |
+
MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv
|
3522 |
+
bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
3523 |
+
ggEBALJ4gHHKeNXjca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgH
|
3524 |
+
FzZM9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qwIFAGbHrQ
|
3525 |
+
gLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6VOujw5H5SNz/0egwLX0t
|
3526 |
+
dHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L93FcXmn/6pUCyziKrlA4b9v7LWIbxcce
|
3527 |
+
VOF34GfID5yHI9Y/QCB/IIDEgEw+OyQmjgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB
|
3528 |
+
/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3
|
3529 |
+
DQEBCwUAA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDIU5PM
|
3530 |
+
CCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUsN+gDS63pYaACbvXy
|
3531 |
+
8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vvo/ufQJVtMVT8QtPHRh8jrdkPSHCa
|
3532 |
+
2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2
|
3533 |
+
xJNDd2ZhwLnoQdeXeGADbkpyrqXRfboQnoZsG4q5WTP468SQvvG5
|
3534 |
+
-----END CERTIFICATE-----
|
3535 |
+
|
3536 |
+
Amazon Root CA 2
|
3537 |
+
================
|
3538 |
+
-----BEGIN CERTIFICATE-----
|
3539 |
+
MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwFADA5MQswCQYD
|
3540 |
+
VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAyMB4XDTE1
|
3541 |
+
MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv
|
3542 |
+
bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
|
3543 |
+
ggIBAK2Wny2cSkxKgXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4
|
3544 |
+
kHbZW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg1dKmSYXp
|
3545 |
+
N+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K8nu+NQWpEjTj82R0Yiw9
|
3546 |
+
AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvd
|
3547 |
+
fLC6HM783k81ds8P+HgfajZRRidhW+mez/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAEx
|
3548 |
+
kv8LV/SasrlX6avvDXbR8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSS
|
3549 |
+
btqDT6ZjmUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz7Mt0
|
3550 |
+
Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6+XUyo05f7O0oYtlN
|
3551 |
+
c/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI0u1ufm8/0i2BWSlmy5A5lREedCf+
|
3552 |
+
3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSw
|
3553 |
+
DPBMMPQFWAJI/TPlUq9LhONmUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oA
|
3554 |
+
A7CXDpO8Wqj2LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY
|
3555 |
+
+gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kSk5Nrp+gvU5LE
|
3556 |
+
YFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl7uxMMne0nxrpS10gxdr9HIcW
|
3557 |
+
xkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygmbtmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQ
|
3558 |
+
gj9sAq+uEjonljYE1x2igGOpm/HlurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbW
|
3559 |
+
aQbLU8uz/mtBzUF+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoV
|
3560 |
+
Yh63n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE76KlXIx3
|
3561 |
+
KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H9jVlpNMKVv/1F2Rs76gi
|
3562 |
+
JUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT4PsJYGw=
|
3563 |
+
-----END CERTIFICATE-----
|
3564 |
+
|
3565 |
+
Amazon Root CA 3
|
3566 |
+
================
|
3567 |
+
-----BEGIN CERTIFICATE-----
|
3568 |
+
MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG
|
3569 |
+
EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy
|
3570 |
+
NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ
|
3571 |
+
MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB
|
3572 |
+
f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr
|
3573 |
+
Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43
|
3574 |
+
rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc
|
3575 |
+
eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw==
|
3576 |
+
-----END CERTIFICATE-----
|
3577 |
+
|
3578 |
+
Amazon Root CA 4
|
3579 |
+
================
|
3580 |
+
-----BEGIN CERTIFICATE-----
|
3581 |
+
MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYDVQQG
|
3582 |
+
EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTE1MDUy
|
3583 |
+
NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ
|
3584 |
+
MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN
|
3585 |
+
/sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri
|
3586 |
+
83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
|
3587 |
+
HQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WBMAoGCCqGSM49BAMDA2gA
|
3588 |
+
MGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlwCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1
|
3589 |
+
AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJElMzrdfkviT8tQp21KW8EA==
|
3590 |
+
-----END CERTIFICATE-----
|
3591 |
+
|
3592 |
+
LuxTrust Global Root 2
|
3593 |
+
======================
|
3594 |
+
-----BEGIN CERTIFICATE-----
|
3595 |
+
MIIFwzCCA6ugAwIBAgIUCn6m30tEntpqJIWe5rgV0xZ/u7EwDQYJKoZIhvcNAQELBQAwRjELMAkG
|
3596 |
+
A1UEBhMCTFUxFjAUBgNVBAoMDUx1eFRydXN0IFMuQS4xHzAdBgNVBAMMFkx1eFRydXN0IEdsb2Jh
|
3597 |
+
bCBSb290IDIwHhcNMTUwMzA1MTMyMTU3WhcNMzUwMzA1MTMyMTU3WjBGMQswCQYDVQQGEwJMVTEW
|
3598 |
+
MBQGA1UECgwNTHV4VHJ1c3QgUy5BLjEfMB0GA1UEAwwWTHV4VHJ1c3QgR2xvYmFsIFJvb3QgMjCC
|
3599 |
+
AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANeFl78RmOnwYoNMPIf5U2o3C/IPPIfOb9wm
|
3600 |
+
Kb3FibrJgz337spbxm1Jc7TJRqMbNBM/wYlFV/TZsfs2ZUv7COJIcRHIbjuend+JZTemhfY7RBi2
|
3601 |
+
xjcwYkSSl2l9QjAk5A0MiWtj3sXh306pFGxT4GHO9hcvHTy95iJMHZP1EMShduxq3sVs35a0VkBC
|
3602 |
+
wGKSMKEtFZSg0iAGCW5qbeXrt77U8PEVfIvmTroTzEsnXpk8F12PgX8zPU/TPxvsXD/wPEx1bvKm
|
3603 |
+
1Z3aLQdjAsZy6ZS8TEmVT4hSyNvoaYL4zDRbIvCGp4m9SAptZoFtyMhk+wHh9OHe2Z7d21vUKpkm
|
3604 |
+
FRseTJIpgp7VkoGSQXAZ96Tlk0u8d2cx3Rz9MXANF5kM+Qw5GSoXtTBxVdUPrljhPS80m8+f9niF
|
3605 |
+
wpN6cj5mj5wWEWCPnolvZ77gR1o7DJpni89Gxq44o/KnvObWhWszJHAiS8sIm7vI+AIpHb4gDEa/
|
3606 |
+
a4ebsypmQjVGbKq6rfmYe+lQVRQxv7HaLe2ArWgk+2mr2HETMOZns4dA/Yl+8kPREd8vZS9kzl8U
|
3607 |
+
ubG/Mb2HeFpZZYiq/FkySIbWTLkpS5XTdvN3JW1CHDiDTf2jX5t/Lax5Gw5CMZdjpPuKadUiDTSQ
|
3608 |
+
MC6otOBttpSsvItO13D8xTiOZCXhTTmQzsmHhFhxAgMBAAGjgagwgaUwDwYDVR0TAQH/BAUwAwEB
|
3609 |
+
/zBCBgNVHSAEOzA5MDcGByuBKwEBAQowLDAqBggrBgEFBQcCARYeaHR0cHM6Ly9yZXBvc2l0b3J5
|
3610 |
+
Lmx1eHRydXN0Lmx1MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBT/GCh2+UgFLKGu8SsbK7JT
|
3611 |
+
+Et8szAdBgNVHQ4EFgQU/xgodvlIBSyhrvErGyuyU/hLfLMwDQYJKoZIhvcNAQELBQADggIBAGoZ
|
3612 |
+
FO1uecEsh9QNcH7X9njJCwROxLHOk3D+sFTAMs2ZMGQXvw/l4jP9BzZAcg4atmpZ1gDlaCDdLnIN
|
3613 |
+
H2pkMSCEfUmmWjfrRcmF9dTHF5kH5ptV5AzoqbTOjFu1EVzPig4N1qx3gf4ynCSecs5U89BvolbW
|
3614 |
+
7MM3LGVYvlcAGvI1+ut7MV3CwRI9loGIlonBWVx65n9wNOeD4rHh4bhY79SV5GCc8JaXcozrhAIu
|
3615 |
+
ZY+kt9J/Z93I055cqqmkoCUUBpvsT34tC38ddfEz2O3OuHVtPlu5mB0xDVbYQw8wkbIEa91WvpWA
|
3616 |
+
VWe+2M2D2RjuLg+GLZKecBPs3lHJQ3gCpU3I+V/EkVhGFndadKpAvAefMLmx9xIX3eP/JEAdemrR
|
3617 |
+
TxgKqpAd60Ae36EeRJIQmvKN4dFLRp7oRUKX6kWZ8+xm1QL68qZKJKrezrnK+T+Tb/mjuuqlPpmt
|
3618 |
+
/f97mfVl7vBZKGfXkJWkE4SphMHozs51k2MavDzq1WQfLSoSOcbDWjLtR5EWDrw4wVDej8oqkDQc
|
3619 |
+
7kGUnF4ZLvhFSZl0kbAEb+MEWrGrKqv+x9CWttrhSmQGbmBNvUJO/3jaJMobtNeWOWyu8Q6qp31I
|
3620 |
+
iyBMz2TWuJdGsE7RKlY6oJO9r4Ak4Ap+58rVyuiFVdw2KuGUaJPHZnJED4AhMmwlxyOAgwrr
|
3621 |
+
-----END CERTIFICATE-----
|
3622 |
+
|
3623 |
+
TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1
|
3624 |
+
=============================================
|
3625 |
+
-----BEGIN CERTIFICATE-----
|
3626 |
+
MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIxGDAWBgNVBAcT
|
3627 |
+
D0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxpbXNlbCB2ZSBUZWtub2xvamlr
|
3628 |
+
IEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0wKwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24g
|
3629 |
+
TWVya2V6aSAtIEthbXUgU00xNjA0BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRp
|
3630 |
+
ZmlrYXNpIC0gU3VydW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYD
|
3631 |
+
VQQGEwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXllIEJpbGlt
|
3632 |
+
c2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklUQUsxLTArBgNVBAsTJEth
|
3633 |
+
bXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBTTTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11
|
3634 |
+
IFNNIFNTTCBLb2sgU2VydGlmaWthc2kgLSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
3635 |
+
MIIBCgKCAQEAr3UwM6q7a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y8
|
3636 |
+
6Ij5iySrLqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INrN3wc
|
3637 |
+
wv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2XYacQuFWQfw4tJzh0
|
3638 |
+
3+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/iSIzL+aFCr2lqBs23tPcLG07xxO9
|
3639 |
+
WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4fAJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQU
|
3640 |
+
ZT/HiobGPN08VFw1+DrtUgxHV8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJ
|
3641 |
+
KoZIhvcNAQELBQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh
|
3642 |
+
AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPfIPP54+M638yc
|
3643 |
+
lNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4lzwDGrpDxpa5RXI4s6ehlj2R
|
3644 |
+
e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0j
|
3645 |
+
q5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM=
|
3646 |
Â
-----END CERTIFICATE-----
|
lib/stripe-gateway/init.php
CHANGED
@@ -5,6 +5,10 @@ require(dirname(__FILE__) . '/lib/Stripe.php');
|
|
5 |
Â
|
6 |
Â
// Utilities
|
7 |
Â
require(dirname(__FILE__) . '/lib/Util/AutoPagingIterator.php');
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
require(dirname(__FILE__) . '/lib/Util/RequestOptions.php');
|
9 |
Â
require(dirname(__FILE__) . '/lib/Util/Set.php');
|
10 |
Â
require(dirname(__FILE__) . '/lib/Util/Util.php');
|
@@ -19,22 +23,43 @@ require(dirname(__FILE__) . '/lib/Error/Api.php');
|
|
19 |
Â
require(dirname(__FILE__) . '/lib/Error/ApiConnection.php');
|
20 |
Â
require(dirname(__FILE__) . '/lib/Error/Authentication.php');
|
21 |
Â
require(dirname(__FILE__) . '/lib/Error/Card.php');
|
Â
|
|
22 |
Â
require(dirname(__FILE__) . '/lib/Error/InvalidRequest.php');
|
Â
|
|
23 |
Â
require(dirname(__FILE__) . '/lib/Error/RateLimit.php');
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
24 |
Â
|
25 |
Â
// Plumbing
|
26 |
Â
require(dirname(__FILE__) . '/lib/ApiResponse.php');
|
27 |
-
require(dirname(__FILE__) . '/lib/
|
28 |
Â
require(dirname(__FILE__) . '/lib/StripeObject.php');
|
29 |
Â
require(dirname(__FILE__) . '/lib/ApiRequestor.php');
|
30 |
Â
require(dirname(__FILE__) . '/lib/ApiResource.php');
|
31 |
Â
require(dirname(__FILE__) . '/lib/SingletonApiResource.php');
|
32 |
-
require(dirname(__FILE__) . '/lib/AttachedObject.php');
|
33 |
-
require(dirname(__FILE__) . '/lib/ExternalAccount.php');
|
34 |
Â
|
35 |
Â
// Stripe API Resources
|
36 |
Â
require(dirname(__FILE__) . '/lib/Account.php');
|
Â
|
|
37 |
Â
require(dirname(__FILE__) . '/lib/AlipayAccount.php');
|
Â
|
|
38 |
Â
require(dirname(__FILE__) . '/lib/ApplicationFee.php');
|
39 |
Â
require(dirname(__FILE__) . '/lib/ApplicationFeeRefund.php');
|
40 |
Â
require(dirname(__FILE__) . '/lib/Balance.php');
|
@@ -42,27 +67,78 @@ require(dirname(__FILE__) . '/lib/BalanceTransaction.php');
|
|
42 |
Â
require(dirname(__FILE__) . '/lib/BankAccount.php');
|
43 |
Â
require(dirname(__FILE__) . '/lib/BitcoinReceiver.php');
|
44 |
Â
require(dirname(__FILE__) . '/lib/BitcoinTransaction.php');
|
Â
|
|
45 |
Â
require(dirname(__FILE__) . '/lib/Card.php');
|
46 |
Â
require(dirname(__FILE__) . '/lib/Charge.php');
|
Â
|
|
47 |
Â
require(dirname(__FILE__) . '/lib/Collection.php');
|
48 |
Â
require(dirname(__FILE__) . '/lib/CountrySpec.php');
|
49 |
Â
require(dirname(__FILE__) . '/lib/Coupon.php');
|
Â
|
|
50 |
Â
require(dirname(__FILE__) . '/lib/Customer.php');
|
Â
|
|
Â
|
|
51 |
Â
require(dirname(__FILE__) . '/lib/Dispute.php');
|
Â
|
|
52 |
Â
require(dirname(__FILE__) . '/lib/Event.php');
|
Â
|
|
Â
|
|
Â
|
|
53 |
Â
require(dirname(__FILE__) . '/lib/FileUpload.php');
|
54 |
Â
require(dirname(__FILE__) . '/lib/Invoice.php');
|
55 |
Â
require(dirname(__FILE__) . '/lib/InvoiceItem.php');
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
56 |
Â
require(dirname(__FILE__) . '/lib/Order.php');
|
Â
|
|
57 |
Â
require(dirname(__FILE__) . '/lib/OrderReturn.php');
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
58 |
Â
require(dirname(__FILE__) . '/lib/Plan.php');
|
59 |
Â
require(dirname(__FILE__) . '/lib/Product.php');
|
Â
|
|
Â
|
|
Â
|
|
60 |
Â
require(dirname(__FILE__) . '/lib/Recipient.php');
|
Â
|
|
61 |
Â
require(dirname(__FILE__) . '/lib/Refund.php');
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
62 |
Â
require(dirname(__FILE__) . '/lib/SKU.php');
|
Â
|
|
63 |
Â
require(dirname(__FILE__) . '/lib/Source.php');
|
Â
|
|
64 |
Â
require(dirname(__FILE__) . '/lib/Subscription.php');
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
65 |
Â
require(dirname(__FILE__) . '/lib/ThreeDSecure.php');
|
66 |
Â
require(dirname(__FILE__) . '/lib/Token.php');
|
Â
|
|
67 |
Â
require(dirname(__FILE__) . '/lib/Transfer.php');
|
68 |
Â
require(dirname(__FILE__) . '/lib/TransferReversal.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');
|
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');
|
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');
|
lib/stripe-gateway/lib/Account.php
CHANGED
@@ -7,35 +7,88 @@ namespace Stripe;
|
|
7 |
Â
*
|
8 |
Â
* @property string $id
|
9 |
Â
* @property string $object
|
10 |
-
* @property mixed $
|
11 |
-
* @property string $
|
12 |
-
* @property mixed $
|
13 |
Â
* @property bool $charges_enabled
|
Â
|
|
14 |
Â
* @property string $country
|
15 |
-
* @property
|
16 |
-
* @property mixed $decline_charge_on
|
17 |
Â
* @property string $default_currency
|
18 |
Â
* @property bool $details_submitted
|
19 |
-
* @property string $display_name
|
20 |
Â
* @property string $email
|
21 |
-
* @property
|
22 |
-
* @property mixed $
|
23 |
-
* @property
|
24 |
-
* @property
|
25 |
-
* @property mixed $
|
26 |
-
* @property mixed $
|
27 |
-
* @property mixed $support_phone
|
28 |
-
* @property string $timezone
|
29 |
Â
* @property mixed $tos_acceptance
|
30 |
-
* @property
|
31 |
-
* @property bool $transfers_enabled
|
32 |
-
* @property mixed $verification
|
33 |
-
* @property mixed $keys
|
34 |
Â
*
|
35 |
Â
* @package Stripe
|
36 |
Â
*/
|
37 |
Â
class Account extends ApiResource
|
38 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
39 |
Â
public function instanceUrl()
|
40 |
Â
{
|
41 |
Â
if ($this['id'] === null) {
|
@@ -46,7 +99,8 @@ class Account extends ApiResource
|
|
46 |
Â
}
|
47 |
Â
|
48 |
Â
/**
|
49 |
-
* @param string|null $id
|
Â
|
|
50 |
Â
* @param array|string|null $opts
|
51 |
Â
*
|
52 |
Â
* @return Account
|
@@ -64,68 +118,275 @@ class Account extends ApiResource
|
|
64 |
Â
* @param array|null $params
|
65 |
Â
* @param array|string|null $opts
|
66 |
Â
*
|
67 |
-
* @return Account
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
68 |
Â
*/
|
69 |
-
public static function
|
70 |
Â
{
|
71 |
-
return self::
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
72 |
Â
}
|
73 |
Â
|
74 |
Â
/**
|
75 |
-
* @param string $id The ID of the account to update.
|
76 |
Â
* @param array|null $params
|
77 |
Â
* @param array|string|null $options
|
78 |
Â
*
|
79 |
-
* @return
|
80 |
Â
*/
|
81 |
-
public
|
82 |
Â
{
|
83 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
84 |
Â
}
|
85 |
Â
|
86 |
Â
/**
|
Â
|
|
Â
|
|
87 |
Â
* @param array|string|null $opts
|
88 |
Â
*
|
89 |
-
* @return
|
90 |
Â
*/
|
91 |
-
public function
|
92 |
Â
{
|
93 |
-
return
|
94 |
Â
}
|
95 |
Â
|
96 |
Â
/**
|
Â
|
|
Â
|
|
97 |
Â
* @param array|null $params
|
98 |
Â
* @param array|string|null $opts
|
99 |
Â
*
|
100 |
-
* @return
|
101 |
Â
*/
|
102 |
-
public function
|
103 |
Â
{
|
104 |
-
return
|
105 |
Â
}
|
106 |
Â
|
107 |
Â
/**
|
Â
|
|
Â
|
|
108 |
Â
* @param array|null $params
|
109 |
Â
* @param array|string|null $opts
|
110 |
Â
*
|
111 |
-
* @return
|
112 |
Â
*/
|
113 |
-
public function
|
114 |
Â
{
|
115 |
-
$
|
116 |
-
|
117 |
-
|
118 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
119 |
Â
}
|
120 |
Â
|
121 |
Â
/**
|
Â
|
|
122 |
Â
* @param array|null $params
|
123 |
Â
* @param array|string|null $opts
|
124 |
Â
*
|
125 |
-
* @return Collection of
|
126 |
Â
*/
|
127 |
-
public static function
|
128 |
Â
{
|
129 |
-
return self::
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
130 |
Â
}
|
131 |
Â
}
|
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) {
|
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
|
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 |
+
{
|
139 |
+
$params = [
|
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 |
+
{
|
188 |
+
return self::_allNestedResources($id, static::PATH_CAPABILITIES, $params, $opts);
|
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 |
+
{
|
329 |
+
return self::_deleteNestedResource($id, static::PATH_PERSONS, $personId, $params, $opts);
|
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 |
Â
}
|
lib/stripe-gateway/lib/AccountLink.php
ADDED
@@ -0,0 +1,20 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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 |
+
}
|
lib/stripe-gateway/lib/AlipayAccount.php
CHANGED
@@ -6,8 +6,66 @@ namespace Stripe;
|
|
6 |
Â
* Class AlipayAccount
|
7 |
Â
*
|
8 |
Â
* @package Stripe
|
Â
|
|
Â
|
|
Â
|
|
9 |
Â
*/
|
10 |
-
class AlipayAccount extends
|
11 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
12 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
13 |
Â
}
|
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;
|
19 |
+
|
20 |
+
/**
|
21 |
+
* @return string The instance URL for this resource. It needs to be special
|
22 |
+
* cased because it doesn't fit into the standard resource pattern.
|
23 |
+
*/
|
24 |
+
public function instanceUrl()
|
25 |
+
{
|
26 |
+
if ($this['customer']) {
|
27 |
+
$base = Customer::classUrl();
|
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 |
Â
}
|
lib/stripe-gateway/lib/ApiOperations/All.php
ADDED
@@ -0,0 +1,34 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\ApiOperations;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Trait for listable resources. Adds a `all()` static method to the class.
|
7 |
+
*
|
8 |
+
* This trait should only be applied to classes that derive from StripeObject.
|
9 |
+
*/
|
10 |
+
trait All
|
11 |
+
{
|
12 |
+
/**
|
13 |
+
* @param array|null $params
|
14 |
+
* @param array|string|null $opts
|
15 |
+
*
|
16 |
+
* @return \Stripe\Collection of ApiResources
|
17 |
+
*/
|
18 |
+
public static function all($params = null, $opts = null)
|
19 |
+
{
|
20 |
+
self::_validateParams($params);
|
21 |
+
$url = static::classUrl();
|
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 |
+
}
|
lib/stripe-gateway/lib/ApiOperations/Create.php
ADDED
@@ -0,0 +1,28 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\ApiOperations;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Trait for creatable resources. Adds a `create()` static method to the class.
|
7 |
+
*
|
8 |
+
* This trait should only be applied to classes that derive from StripeObject.
|
9 |
+
*/
|
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 |
+
{
|
20 |
+
self::_validateParams($params);
|
21 |
+
$url = static::classUrl();
|
22 |
+
|
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 |
+
}
|
lib/stripe-gateway/lib/ApiOperations/Delete.php
ADDED
@@ -0,0 +1,27 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\ApiOperations;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Trait for deletable resources. Adds a `delete()` method to the class.
|
7 |
+
*
|
8 |
+
* This trait should only be applied to classes that derive from StripeObject.
|
9 |
+
*/
|
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 |
+
{
|
20 |
+
self::_validateParams($params);
|
21 |
+
|
22 |
+
$url = $this->instanceUrl();
|
23 |
+
list($response, $opts) = $this->_request('delete', $url, $params, $opts);
|
24 |
+
$this->refreshFrom($response, $opts);
|
25 |
+
return $this;
|
26 |
+
}
|
27 |
+
}
|
lib/stripe-gateway/lib/ApiOperations/NestedResource.php
ADDED
@@ -0,0 +1,118 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\ApiOperations;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Trait for resources that have nested resources.
|
7 |
+
*
|
8 |
+
* This trait should only be applied to classes that derive from StripeObject.
|
9 |
+
*/
|
10 |
+
trait NestedResource
|
11 |
+
{
|
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 |
+
*/
|
20 |
+
protected static function _nestedResourceOperation($method, $url, $params = null, $options = null)
|
21 |
+
{
|
22 |
+
self::_validateParams($params);
|
23 |
+
|
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 |
+
}
|
lib/stripe-gateway/lib/ApiOperations/Request.php
ADDED
@@ -0,0 +1,61 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\ApiOperations;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Trait for resources that need to make API requests.
|
7 |
+
*
|
8 |
+
* This trait should only be applied to classes that derive from StripeObject.
|
9 |
+
*/
|
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 |
+
|
28 |
+
/**
|
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 |
+
*/
|
36 |
+
protected function _request($method, $url, $params = [], $options = null)
|
37 |
+
{
|
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 |
+
|
44 |
+
/**
|
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 |
+
*/
|
52 |
+
protected static function _staticRequest($method, $url, $params, $options)
|
53 |
+
{
|
54 |
+
$opts = \Stripe\Util\RequestOptions::parse($options);
|
55 |
+
$baseUrl = isset($opts->apiBase) ? $opts->apiBase : static::baseUrl();
|
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 |
+
}
|
lib/stripe-gateway/lib/ApiOperations/Retrieve.php
ADDED
@@ -0,0 +1,27 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\ApiOperations;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Trait for retrievable resources. Adds a `retrieve()` static method to the
|
7 |
+
* class.
|
8 |
+
*
|
9 |
+
* This trait should only be applied to classes that derive from StripeObject.
|
10 |
+
*/
|
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 |
+
*/
|
20 |
+
public static function retrieve($id, $opts = null)
|
21 |
+
{
|
22 |
+
$opts = \Stripe\Util\RequestOptions::parse($opts);
|
23 |
+
$instance = new static($id, $opts);
|
24 |
+
$instance->refresh();
|
25 |
+
return $instance;
|
26 |
+
}
|
27 |
+
}
|
lib/stripe-gateway/lib/ApiOperations/Update.php
ADDED
@@ -0,0 +1,46 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\ApiOperations;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Trait for updatable resources. Adds an `update()` static method and a
|
7 |
+
* `save()` method to the class.
|
8 |
+
*
|
9 |
+
* This trait should only be applied to classes that derive from StripeObject.
|
10 |
+
*/
|
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 |
+
{
|
22 |
+
self::_validateParams($params);
|
23 |
+
$url = static::resourceUrl($id);
|
24 |
+
|
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 |
+
}
|
lib/stripe-gateway/lib/ApiRequestor.php
CHANGED
@@ -9,12 +9,32 @@ namespace Stripe;
|
|
9 |
Â
*/
|
10 |
Â
class ApiRequestor
|
11 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
12 |
Â
private $_apiKey;
|
13 |
Â
|
Â
|
|
Â
|
|
Â
|
|
14 |
Â
private $_apiBase;
|
15 |
Â
|
Â
|
|
Â
|
|
Â
|
|
16 |
Â
private static $_httpClient;
|
17 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
18 |
Â
public function __construct($apiKey = null, $apiBase = null)
|
19 |
Â
{
|
20 |
Â
$this->_apiKey = $apiKey;
|
@@ -24,6 +44,37 @@ class ApiRequestor
|
|
24 |
Â
$this->_apiBase = $apiBase;
|
25 |
Â
}
|
26 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
27 |
Â
private static function _encodeObjects($d)
|
28 |
Â
{
|
29 |
Â
if ($d instanceof ApiResource) {
|
@@ -33,7 +84,7 @@ class ApiRequestor
|
|
33 |
Â
} elseif ($d === false) {
|
34 |
Â
return 'false';
|
35 |
Â
} elseif (is_array($d)) {
|
36 |
-
$res =
|
37 |
Â
foreach ($d as $k => $v) {
|
38 |
Â
$res[$k] = self::_encodeObjects($v);
|
39 |
Â
}
|
@@ -44,27 +95,37 @@ class ApiRequestor
|
|
44 |
Â
}
|
45 |
Â
|
46 |
Â
/**
|
47 |
-
* @param string
|
48 |
-
* @param string
|
49 |
Â
* @param array|null $params
|
50 |
Â
* @param array|null $headers
|
51 |
Â
*
|
52 |
Â
* @return array An array whose first element is an API response and second
|
53 |
Â
* element is the API key used to make the request.
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
54 |
Â
*/
|
55 |
Â
public function request($method, $url, $params = null, $headers = null)
|
56 |
Â
{
|
57 |
-
|
58 |
-
|
59 |
-
}
|
60 |
-
if (!$headers) {
|
61 |
-
$headers = array();
|
62 |
-
}
|
63 |
Â
list($rbody, $rcode, $rheaders, $myApiKey) =
|
64 |
Â
$this->_requestRaw($method, $url, $params, $headers);
|
65 |
Â
$json = $this->_interpretResponse($rbody, $rcode, $rheaders);
|
66 |
Â
$resp = new ApiResponse($rbody, $rcode, $rheaders, $json);
|
67 |
-
return
|
68 |
Â
}
|
69 |
Â
|
70 |
Â
/**
|
@@ -76,13 +137,25 @@ class ApiRequestor
|
|
76 |
Â
* @throws Error\InvalidRequest if the error is caused by the user.
|
77 |
Â
* @throws Error\Authentication if the error is caused by a lack of
|
78 |
Â
* permissions.
|
Â
|
|
Â
|
|
79 |
Â
* @throws Error\Card if the error is the error code is 402 (payment
|
80 |
Â
* required)
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
81 |
Â
* @throws Error\RateLimit if the error is caused by too many requests
|
82 |
Â
* hitting the API.
|
83 |
Â
* @throws Error\Api otherwise.
|
84 |
Â
*/
|
85 |
-
public function
|
86 |
Â
{
|
87 |
Â
if (!is_array($resp) || !isset($resp['error'])) {
|
88 |
Â
$msg = "Invalid response object from API: $rbody "
|
@@ -90,33 +163,170 @@ class ApiRequestor
|
|
90 |
Â
throw new Error\Api($msg, $rcode, $rbody, $resp, $rheaders);
|
91 |
Â
}
|
92 |
Â
|
93 |
-
$
|
94 |
-
|
95 |
-
$
|
96 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
97 |
Â
|
98 |
Â
switch ($rcode) {
|
99 |
Â
case 400:
|
100 |
Â
// 'rate_limit' code is deprecated, but left here for backwards compatibility
|
101 |
Â
// for API versions earlier than 2015-09-08
|
102 |
Â
if ($code == 'rate_limit') {
|
103 |
-
|
Â
|
|
Â
|
|
Â
|
|
104 |
Â
}
|
105 |
Â
|
106 |
-
//
|
107 |
Â
case 404:
|
108 |
-
|
109 |
Â
case 401:
|
110 |
-
|
111 |
Â
case 402:
|
112 |
-
|
Â
|
|
Â
|
|
113 |
Â
case 429:
|
114 |
-
|
115 |
Â
default:
|
116 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
117 |
Â
}
|
Â
|
|
Â
|
|
118 |
Â
}
|
119 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
120 |
Â
private function _requestRaw($method, $url, $params, $headers)
|
121 |
Â
{
|
122 |
Â
$myApiKey = $this->_apiKey;
|
@@ -132,22 +342,17 @@ class ApiRequestor
|
|
132 |
Â
throw new Error\Authentication($msg);
|
133 |
Â
}
|
134 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
135 |
Â
$absUrl = $this->_apiBase.$url;
|
136 |
Â
$params = self::_encodeObjects($params);
|
137 |
-
$
|
138 |
-
$uname = php_uname();
|
139 |
-
$ua = array(
|
140 |
-
'bindings_version' => Stripe::VERSION,
|
141 |
-
'lang' => 'php',
|
142 |
-
'lang_version' => $langVersion,
|
143 |
-
'publisher' => 'stripe',
|
144 |
-
'uname' => $uname,
|
145 |
-
);
|
146 |
-
$defaultHeaders = array(
|
147 |
-
'X-Stripe-Client-User-Agent' => json_encode($ua),
|
148 |
-
'User-Agent' => 'Stripe/v1 PhpBindings/' . Stripe::VERSION,
|
149 |
-
'Authorization' => 'Bearer ' . $myApiKey,
|
150 |
-
);
|
151 |
Â
if (Stripe::$apiVersion) {
|
152 |
Â
$defaultHeaders['Stripe-Version'] = Stripe::$apiVersion;
|
153 |
Â
}
|
@@ -156,6 +361,10 @@ class ApiRequestor
|
|
156 |
Â
$defaultHeaders['Stripe-Account'] = Stripe::$accountId;
|
157 |
Â
}
|
158 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
159 |
Â
$hasFile = false;
|
160 |
Â
$hasCurlFile = class_exists('\CURLFile', false);
|
161 |
Â
foreach ($params as $k => $v) {
|
@@ -174,12 +383,14 @@ class ApiRequestor
|
|
174 |
Â
}
|
175 |
Â
|
176 |
Â
$combinedHeaders = array_merge($defaultHeaders, $headers);
|
177 |
-
$rawHeaders =
|
178 |
Â
|
179 |
Â
foreach ($combinedHeaders as $header => $value) {
|
180 |
Â
$rawHeaders[] = $header . ': ' . $value;
|
181 |
Â
}
|
182 |
Â
|
Â
|
|
Â
|
|
183 |
Â
list($rbody, $rcode, $rheaders) = $this->httpClient()->request(
|
184 |
Â
$method,
|
185 |
Â
$absUrl,
|
@@ -187,9 +398,24 @@ class ApiRequestor
|
|
187 |
Â
$params,
|
188 |
Â
$hasFile
|
189 |
Â
);
|
190 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
191 |
Â
}
|
192 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
193 |
Â
private function _processResourceParam($resource, $hasCurlFile)
|
194 |
Â
{
|
195 |
Â
if (get_resource_type($resource) !== 'stream') {
|
@@ -213,27 +439,65 @@ class ApiRequestor
|
|
213 |
Â
}
|
214 |
Â
}
|
215 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
216 |
Â
private function _interpretResponse($rbody, $rcode, $rheaders)
|
217 |
Â
{
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
Â
$msg = "Invalid response body from API: $rbody "
|
222 |
-
. "(HTTP response code was $rcode)";
|
223 |
Â
throw new Error\Api($msg, $rcode, $rbody);
|
224 |
Â
}
|
225 |
Â
|
226 |
Â
if ($rcode < 200 || $rcode >= 300) {
|
227 |
-
$this->
|
228 |
Â
}
|
229 |
Â
return $resp;
|
230 |
Â
}
|
231 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
232 |
Â
public static function setHttpClient($client)
|
233 |
Â
{
|
234 |
Â
self::$_httpClient = $client;
|
235 |
Â
}
|
236 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
237 |
Â
private function httpClient()
|
238 |
Â
{
|
239 |
Â
if (!self::$_httpClient) {
|
9 |
Â
*/
|
10 |
Â
class ApiRequestor
|
11 |
Â
{
|
12 |
+
/**
|
13 |
+
* @var string|null
|
14 |
+
*/
|
15 |
Â
private $_apiKey;
|
16 |
Â
|
17 |
+
/**
|
18 |
+
* @var string
|
19 |
+
*/
|
20 |
Â
private $_apiBase;
|
21 |
Â
|
22 |
+
/**
|
23 |
+
* @var HttpClient\ClientInterface
|
24 |
+
*/
|
25 |
Â
private static $_httpClient;
|
26 |
Â
|
27 |
+
/**
|
28 |
+
* @var RequestTelemetry
|
29 |
+
*/
|
30 |
+
private static $requestTelemetry;
|
31 |
+
|
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 |
Â
{
|
40 |
Â
$this->_apiKey = $apiKey;
|
44 |
Â
$this->_apiBase = $apiBase;
|
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) {
|
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 |
Â
}
|
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 |
Â
{
|
122 |
+
$params = $params ?: [];
|
123 |
+
$headers = $headers ?: [];
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
124 |
Â
list($rbody, $rcode, $rheaders, $myApiKey) =
|
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 |
Â
/**
|
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 "
|
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) {
|
173 |
+
$error = self::_specificAPIError($rbody, $rcode, $rheaders, $resp, $errorData);
|
174 |
+
}
|
175 |
+
|
176 |
+
throw $error;
|
177 |
+
}
|
178 |
+
|
179 |
+
/**
|
180 |
+
* @static
|
181 |
+
*
|
182 |
+
* @param string $rbody
|
183 |
+
* @param int $rcode
|
184 |
+
* @param array $rheaders
|
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 |
+
{
|
192 |
+
$msg = isset($errorData['message']) ? $errorData['message'] : null;
|
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 |
+
{
|
237 |
+
$description = isset($resp['error_description']) ? $resp['error_description'] : $errorCode;
|
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 |
+
/**
|
258 |
+
* @static
|
259 |
+
*
|
260 |
+
* @param null|array $appInfo
|
261 |
+
*
|
262 |
+
* @return null|string
|
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 |
+
/**
|
281 |
+
* @static
|
282 |
+
*
|
283 |
+
* @param string $apiKey
|
284 |
+
* @param null $clientInfo
|
285 |
+
*
|
286 |
+
* @return array
|
287 |
+
*/
|
288 |
+
private static function _defaultHeaders($apiKey, $clientInfo = null)
|
289 |
+
{
|
290 |
+
$uaString = 'Stripe/v1 PhpBindings/' . Stripe::VERSION;
|
291 |
+
|
292 |
+
$langVersion = phpversion();
|
293 |
+
$uname = php_uname();
|
294 |
+
|
295 |
+
$appInfo = Stripe::getAppInfo();
|
296 |
+
$ua = [
|
297 |
+
'bindings_version' => Stripe::VERSION,
|
298 |
+
'lang' => 'php',
|
299 |
+
'lang_version' => $langVersion,
|
300 |
+
'publisher' => 'stripe',
|
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 |
Â
{
|
332 |
Â
$myApiKey = $this->_apiKey;
|
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) {
|
357 |
Â
$defaultHeaders['Stripe-Version'] = Stripe::$apiVersion;
|
358 |
Â
}
|
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) {
|
383 |
Â
}
|
384 |
Â
|
385 |
Â
$combinedHeaders = array_merge($defaultHeaders, $headers);
|
386 |
+
$rawHeaders = [];
|
387 |
Â
|
388 |
Â
foreach ($combinedHeaders as $header => $value) {
|
389 |
Â
$rawHeaders[] = $header . ': ' . $value;
|
390 |
Â
}
|
391 |
Â
|
392 |
+
$requestStartMs = Util\Util::currentTimeMillis();
|
393 |
+
|
394 |
Â
list($rbody, $rcode, $rheaders) = $this->httpClient()->request(
|
395 |
Â
$method,
|
396 |
Â
$absUrl,
|
398 |
Â
$params,
|
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 |
+
}
|
408 |
+
|
409 |
+
return [$rbody, $rcode, $rheaders, $myApiKey];
|
410 |
Â
}
|
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') {
|
439 |
Â
}
|
440 |
Â
}
|
441 |
Â
|
442 |
+
/**
|
443 |
+
* @param string $rbody
|
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 |
Â
|
478 |
+
/**
|
479 |
+
* @static
|
480 |
+
*
|
481 |
+
* @param HttpClient\ClientInterface $client
|
482 |
+
*/
|
483 |
Â
public static function setHttpClient($client)
|
484 |
Â
{
|
485 |
Â
self::$_httpClient = $client;
|
486 |
Â
}
|
487 |
Â
|
488 |
+
/**
|
489 |
+
* @static
|
490 |
+
*
|
491 |
+
* Resets any stateful telemetry data
|
492 |
+
*/
|
493 |
+
public static function resetTelemetry()
|
494 |
+
{
|
495 |
+
self::$requestTelemetry = null;
|
496 |
+
}
|
497 |
+
|
498 |
+
/**
|
499 |
+
* @return HttpClient\ClientInterface
|
500 |
+
*/
|
501 |
Â
private function httpClient()
|
502 |
Â
{
|
503 |
Â
if (!self::$_httpClient) {
|
lib/stripe-gateway/lib/ApiResource.php
CHANGED
@@ -9,11 +9,42 @@ namespace Stripe;
|
|
9 |
Â
*/
|
10 |
Â
abstract class ApiResource extends StripeObject
|
11 |
Â
{
|
12 |
-
|
13 |
Â
|
14 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
15 |
Â
{
|
16 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
17 |
Â
}
|
18 |
Â
|
19 |
Â
/**
|
@@ -36,27 +67,11 @@ abstract class ApiResource extends StripeObject
|
|
36 |
Â
}
|
37 |
Â
|
38 |
Â
/**
|
39 |
-
* @return string The
|
40 |
-
* stripped.
|
41 |
Â
*/
|
42 |
-
public static function
|
43 |
Â
{
|
44 |
-
|
45 |
-
// Useful for namespaces: Foo\Charge
|
46 |
-
if ($postfixNamespaces = strrchr($class, '\\')) {
|
47 |
-
$class = substr($postfixNamespaces, 1);
|
48 |
-
}
|
49 |
-
// Useful for underscored 'namespaces': Foo_Charge
|
50 |
-
if ($postfixFakeNamespaces = strrchr($class, '')) {
|
51 |
-
$class = $postfixFakeNamespaces;
|
52 |
-
}
|
53 |
-
if (substr($class, 0, strlen('Stripe')) == 'Stripe') {
|
54 |
-
$class = substr($class, strlen('Stripe'));
|
55 |
-
}
|
56 |
-
$class = str_replace('_', '', $class);
|
57 |
-
$name = urlencode($class);
|
58 |
-
$name = strtolower($name);
|
59 |
-
return $name;
|
60 |
Â
}
|
61 |
Â
|
62 |
Â
/**
|
@@ -64,7 +79,9 @@ abstract class ApiResource extends StripeObject
|
|
64 |
Â
*/
|
65 |
Â
public static function classUrl()
|
66 |
Â
{
|
67 |
-
|
Â
|
|
Â
|
|
68 |
Â
return "/v1/${base}s";
|
69 |
Â
}
|
70 |
Â
|
@@ -92,114 +109,4 @@ abstract class ApiResource extends StripeObject
|
|
92 |
Â
{
|
93 |
Â
return static::resourceUrl($this['id']);
|
94 |
Â
}
|
95 |
-
|
96 |
-
private static function _validateParams($params = null)
|
97 |
-
{
|
98 |
-
if ($params && !is_array($params)) {
|
99 |
-
$message = "You must pass an array as the first argument to Stripe API "
|
100 |
-
. "method calls. (HINT: an example call to create a charge "
|
101 |
-
. "would be: \"Stripe\\Charge::create(array('amount' => 100, "
|
102 |
-
. "'currency' => 'usd', 'card' => array('number' => "
|
103 |
-
. "4242424242424242, 'exp_month' => 5, 'exp_year' => 2015)))\")";
|
104 |
-
throw new Error\Api($message);
|
105 |
-
}
|
106 |
-
}
|
107 |
-
|
108 |
-
protected function _request($method, $url, $params = array(), $options = null)
|
109 |
-
{
|
110 |
-
$opts = $this->_opts->merge($options);
|
111 |
-
list($resp, $options) = static::_staticRequest($method, $url, $params, $opts);
|
112 |
-
$this->setLastResponse($resp);
|
113 |
-
return array($resp->json, $options);
|
114 |
-
}
|
115 |
-
|
116 |
-
protected static function _staticRequest($method, $url, $params, $options)
|
117 |
-
{
|
118 |
-
$opts = Util\RequestOptions::parse($options);
|
119 |
-
$requestor = new ApiRequestor($opts->apiKey, static::baseUrl());
|
120 |
-
list($response, $opts->apiKey) = $requestor->request($method, $url, $params, $opts->headers);
|
121 |
-
foreach ($opts->headers as $k => $v) {
|
122 |
-
if (!array_key_exists($k, self::$HEADERS_TO_PERSIST)) {
|
123 |
-
unset($opts->headers[$k]);
|
124 |
-
}
|
125 |
-
}
|
126 |
-
return array($response, $opts);
|
127 |
-
}
|
128 |
-
|
129 |
-
protected static function _retrieve($id, $options = null)
|
130 |
-
{
|
131 |
-
$opts = Util\RequestOptions::parse($options);
|
132 |
-
$instance = new static($id, $opts);
|
133 |
-
$instance->refresh();
|
134 |
-
return $instance;
|
135 |
-
}
|
136 |
-
|
137 |
-
protected static function _all($params = null, $options = null)
|
138 |
-
{
|
139 |
-
self::_validateParams($params);
|
140 |
-
$url = static::classUrl();
|
141 |
-
|
142 |
-
list($response, $opts) = static::_staticRequest('get', $url, $params, $options);
|
143 |
-
$obj = Util\Util::convertToStripeObject($response->json, $opts);
|
144 |
-
if (!is_a($obj, 'Stripe\\Collection')) {
|
145 |
-
$class = get_class($obj);
|
146 |
-
$message = "Expected type \"Stripe\\Collection\", got \"$class\" instead";
|
147 |
-
throw new Error\Api($message);
|
148 |
-
}
|
149 |
-
$obj->setLastResponse($response);
|
150 |
-
$obj->setRequestParams($params);
|
151 |
-
return $obj;
|
152 |
-
}
|
153 |
-
|
154 |
-
protected static function _create($params = null, $options = null)
|
155 |
-
{
|
156 |
-
self::_validateParams($params);
|
157 |
-
$base = static::baseUrl();
|
158 |
-
$url = static::classUrl();
|
159 |
-
|
160 |
-
list($response, $opts) = static::_staticRequest('post', $url, $params, $options);
|
161 |
-
$obj = Util\Util::convertToStripeObject($response->json, $opts);
|
162 |
-
$obj->setLastResponse($response);
|
163 |
-
return $obj;
|
164 |
-
}
|
165 |
-
|
166 |
-
/**
|
167 |
-
* @param string $id The ID of the API resource to update.
|
168 |
-
* @param array|null $params
|
169 |
-
* @param array|string|null $opts
|
170 |
-
*
|
171 |
-
* @return ApiResource the updated API resource
|
172 |
-
*/
|
173 |
-
protected static function _update($id, $params = null, $options = null)
|
174 |
-
{
|
175 |
-
self::_validateParams($params);
|
176 |
-
$base = static::baseUrl();
|
177 |
-
$url = static::resourceUrl($id);
|
178 |
-
|
179 |
-
list($response, $opts) = static::_staticRequest('post', $url, $params, $options);
|
180 |
-
$obj = Util\Util::convertToStripeObject($response->json, $opts);
|
181 |
-
$obj->setLastResponse($response);
|
182 |
-
return $obj;
|
183 |
-
}
|
184 |
-
|
185 |
-
protected function _save($options = null)
|
186 |
-
{
|
187 |
-
$params = $this->serializeParameters();
|
188 |
-
if (count($params) > 0) {
|
189 |
-
$url = $this->instanceUrl();
|
190 |
-
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
191 |
-
$this->refreshFrom($response, $opts);
|
192 |
-
}
|
193 |
-
return $this;
|
194 |
-
}
|
195 |
-
|
196 |
-
protected function _delete($params = null, $options = null)
|
197 |
-
{
|
198 |
-
self::_validateParams($params);
|
199 |
-
|
200 |
-
$url = $this->instanceUrl();
|
201 |
-
list($response, $opts) = $this->_request('delete', $url, $params, $options);
|
202 |
-
$this->refreshFrom($response, $opts);
|
203 |
-
return $this;
|
204 |
-
}
|
205 |
Â
}
|
9 |
Â
*/
|
10 |
Â
abstract class ApiResource extends StripeObject
|
11 |
Â
{
|
12 |
+
use ApiOperations\Request;
|
13 |
Â
|
14 |
+
/**
|
15 |
+
* @return \Stripe\Util\Set A list of fields that can be their own type of
|
16 |
+
* API resource (say a nested card under an account for example), and if
|
17 |
+
* that resource is set, it should be transmitted to the API on a create or
|
18 |
+
* update. Doing so is not the default behavior because API resources
|
19 |
+
* should normally be persisted on their own RESTful endpoints.
|
20 |
+
*/
|
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,
|
35 |
+
* replacing a customer's source for example, where this is allowed.
|
36 |
+
*/
|
37 |
+
public $saveWithParent = false;
|
38 |
+
|
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 |
Â
/**
|
67 |
Â
}
|
68 |
Â
|
69 |
Â
/**
|
70 |
+
* @return string The base URL for the given class.
|
Â
|
|
71 |
Â
*/
|
72 |
+
public static function baseUrl()
|
73 |
Â
{
|
74 |
+
return Stripe::$apiBase;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
75 |
Â
}
|
76 |
Â
|
77 |
Â
/**
|
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 |
Â
|
109 |
Â
{
|
110 |
Â
return static::resourceUrl($this['id']);
|
111 |
Â
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
112 |
Â
}
|
lib/stripe-gateway/lib/ApiResponse.php
CHANGED
@@ -2,6 +2,8 @@
|
|
2 |
Â
|
3 |
Â
namespace Stripe;
|
4 |
Â
|
Â
|
|
Â
|
|
5 |
Â
/**
|
6 |
Â
* Class ApiResponse
|
7 |
Â
*
|
@@ -17,7 +19,7 @@ class ApiResponse
|
|
17 |
Â
/**
|
18 |
Â
* @param string $body
|
19 |
Â
* @param integer $code
|
20 |
-
* @param array|null $headers
|
21 |
Â
* @param array|null $json
|
22 |
Â
*
|
23 |
Â
* @return obj An APIResponse
|
2 |
Â
|
3 |
Â
namespace Stripe;
|
4 |
Â
|
5 |
+
use Stripe\Util\CaseInsensitiveArray;
|
6 |
+
|
7 |
Â
/**
|
8 |
Â
* Class ApiResponse
|
9 |
Â
*
|
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
|
lib/stripe-gateway/lib/ApplePayDomain.php
ADDED
@@ -0,0 +1,27 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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;
|
16 |
+
use ApiOperations\Delete;
|
17 |
+
use ApiOperations\Retrieve;
|
18 |
+
|
19 |
+
/**
|
20 |
+
* @return string The class URL for this resource. It needs to be special
|
21 |
+
* cased because it doesn't fit into the standard resource pattern.
|
22 |
+
*/
|
23 |
+
public static function classUrl()
|
24 |
+
{
|
25 |
+
return '/v1/apple_pay/domains';
|
26 |
+
}
|
27 |
+
}
|
lib/stripe-gateway/lib/ApplicationFee.php
CHANGED
@@ -5,65 +5,93 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class ApplicationFee
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class ApplicationFee extends ApiResource
|
11 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
12 |
Â
/**
|
13 |
-
*
|
14 |
-
*
|
15 |
Â
*
|
16 |
-
* @return
|
17 |
Â
*/
|
18 |
-
public
|
19 |
Â
{
|
20 |
-
|
Â
|
|
Â
|
|
21 |
Â
}
|
22 |
Â
|
23 |
Â
/**
|
24 |
-
* @param string $id The ID of the application fee to
|
Â
|
|
25 |
Â
* @param array|string|null $opts
|
26 |
Â
*
|
27 |
-
* @return
|
28 |
Â
*/
|
29 |
-
public static function
|
30 |
Â
{
|
31 |
-
return self::
|
32 |
Â
}
|
33 |
Â
|
34 |
Â
/**
|
35 |
-
* @param string $id The ID of the application fee to
|
Â
|
|
36 |
Â
* @param array|null $params
|
37 |
-
* @param array|string|null $
|
38 |
Â
*
|
39 |
-
* @return
|
40 |
Â
*/
|
41 |
-
public static function
|
42 |
Â
{
|
43 |
-
return self::
|
44 |
Â
}
|
45 |
Â
|
46 |
Â
/**
|
Â
|
|
Â
|
|
47 |
Â
* @param array|null $params
|
48 |
Â
* @param array|string|null $opts
|
49 |
Â
*
|
50 |
-
* @return
|
51 |
Â
*/
|
52 |
-
public static function
|
53 |
Â
{
|
54 |
-
return self::
|
55 |
Â
}
|
56 |
Â
|
57 |
Â
/**
|
Â
|
|
58 |
Â
* @param array|null $params
|
59 |
Â
* @param array|string|null $opts
|
60 |
Â
*
|
61 |
-
* @return
|
62 |
Â
*/
|
63 |
-
public function
|
64 |
Â
{
|
65 |
-
|
66 |
-
$this->refresh();
|
67 |
-
return $this;
|
68 |
Â
}
|
69 |
Â
}
|
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;
|
31 |
+
use ApiOperations\Retrieve;
|
32 |
+
|
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 |
Â
{
|
57 |
+
return self::_createNestedResource($id, static::PATH_REFUNDS, $params, $opts);
|
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 |
Â
{
|
70 |
+
return self::_retrieveNestedResource($id, static::PATH_REFUNDS, $refundId, $params, $opts);
|
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 |
Â
}
|
lib/stripe-gateway/lib/ApplicationFeeRefund.php
CHANGED
@@ -5,10 +5,25 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class ApplicationFeeRefund
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class ApplicationFeeRefund extends ApiResource
|
11 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
12 |
Â
/**
|
13 |
Â
* @return string The API URL for this Stripe refund.
|
14 |
Â
*/
|
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 |
Â
*/
|
lib/stripe-gateway/lib/Balance.php
CHANGED
@@ -5,15 +5,18 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class Balance
|
7 |
Â
*
|
8 |
-
* @
|
9 |
-
* @
|
10 |
-
* @
|
11 |
-
* @
|
Â
|
|
12 |
Â
*
|
13 |
Â
* @package Stripe
|
14 |
Â
*/
|
15 |
Â
class Balance extends SingletonApiResource
|
16 |
Â
{
|
Â
|
|
Â
|
|
17 |
Â
/**
|
18 |
Â
* @param array|string|null $opts
|
19 |
Â
*
|
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 |
Â
*
|
lib/stripe-gateway/lib/BalanceTransaction.php
CHANGED
@@ -12,11 +12,11 @@ namespace Stripe;
|
|
12 |
Â
* @property int $created
|
13 |
Â
* @property string $currency
|
14 |
Â
* @property string $description
|
Â
|
|
15 |
Â
* @property int $fee
|
16 |
Â
* @property mixed $fee_details
|
17 |
Â
* @property int $net
|
18 |
Â
* @property string $source
|
19 |
-
* @property mixed $sourced_transfers
|
20 |
Â
* @property string $status
|
21 |
Â
* @property string $type
|
22 |
Â
*
|
@@ -24,34 +24,42 @@ namespace Stripe;
|
|
24 |
Â
*/
|
25 |
Â
class BalanceTransaction extends ApiResource
|
26 |
Â
{
|
27 |
-
|
28 |
-
* @return string The class URL for this resource. It needs to be special
|
29 |
-
* cased because it doesn't fit into the standard resource pattern.
|
30 |
-
*/
|
31 |
-
public static function classUrl()
|
32 |
-
{
|
33 |
-
return "/v1/balance/history";
|
34 |
-
}
|
35 |
Â
|
36 |
-
|
37 |
-
|
38 |
-
* @param array|string|null $opts
|
39 |
-
*
|
40 |
-
* @return BalanceTransaction
|
41 |
-
*/
|
42 |
-
public static function retrieve($id, $opts = null)
|
43 |
-
{
|
44 |
-
return self::_retrieve($id, $opts);
|
45 |
-
}
|
46 |
Â
|
47 |
Â
/**
|
48 |
-
*
|
49 |
-
* @
|
50 |
-
*
|
51 |
-
* @return Collection of BalanceTransactions
|
52 |
Â
*/
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
57 |
Â
}
|
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 |
Â
*
|
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 |
Â
}
|
lib/stripe-gateway/lib/BankAccount.php
CHANGED
@@ -5,16 +5,99 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class BankAccount
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
-
class BankAccount extends
|
11 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
12 |
Â
/**
|
13 |
-
* @param array|
|
14 |
-
* @param array|string|null $
|
15 |
Â
*
|
16 |
-
* @
|
17 |
Â
*/
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
18 |
Â
public function verify($params = null, $options = null)
|
19 |
Â
{
|
20 |
Â
$url = $this->instanceUrl() . '/verify';
|
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
|
45 |
+
* cased because it doesn't fit into the standard resource pattern.
|
46 |
+
*/
|
47 |
+
public function instanceUrl()
|
48 |
+
{
|
49 |
+
if ($this['customer']) {
|
50 |
+
$base = Customer::classUrl();
|
51 |
+
$parent = $this['customer'];
|
52 |
+
$path = 'sources';
|
53 |
+
} elseif ($this['account']) {
|
54 |
+
$base = Account::classUrl();
|
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';
|
lib/stripe-gateway/lib/BitcoinReceiver.php
CHANGED
@@ -6,9 +6,17 @@ namespace Stripe;
|
|
6 |
Â
* Class BitcoinReceiver
|
7 |
Â
*
|
8 |
Â
* @package Stripe
|
Â
|
|
Â
|
|
Â
|
|
9 |
Â
*/
|
10 |
-
class BitcoinReceiver extends
|
11 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
12 |
Â
/**
|
13 |
Â
* @return string The class URL for this resource. It needs to be special
|
14 |
Â
* cased because it doesn't fit into the standard resource pattern.
|
@@ -24,62 +32,17 @@ class BitcoinReceiver extends ExternalAccount
|
|
24 |
Â
*/
|
25 |
Â
public function instanceUrl()
|
26 |
Â
{
|
27 |
-
|
28 |
-
|
29 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
30 |
Â
} else {
|
31 |
-
$id = $this['id'];
|
32 |
-
$id = Util\Util::utf8($id);
|
33 |
-
$extn = urlencode($id);
|
34 |
Â
$base = BitcoinReceiver::classUrl();
|
Â
|
|
35 |
Â
return "$base/$extn";
|
36 |
Â
}
|
37 |
Â
}
|
38 |
-
|
39 |
-
/**
|
40 |
-
* @param string $id The ID of the Bitcoin Receiver to retrieve.
|
41 |
-
* @param array|string|null $opts
|
42 |
-
*
|
43 |
-
* @return BitcoinReceiver
|
44 |
-
*/
|
45 |
-
public static function retrieve($id, $opts = null)
|
46 |
-
{
|
47 |
-
return self::_retrieve($id, $opts);
|
48 |
-
}
|
49 |
-
|
50 |
-
/**
|
51 |
-
* @param array|null $params
|
52 |
-
* @param array|string|null $opts
|
53 |
-
*
|
54 |
-
* @return Collection of BitcoinReceivers
|
55 |
-
*/
|
56 |
-
public static function all($params = null, $opts = null)
|
57 |
-
{
|
58 |
-
return self::_all($params, $opts);
|
59 |
-
}
|
60 |
-
|
61 |
-
/**
|
62 |
-
* @param array|null $params
|
63 |
-
* @param array|string|null $opts
|
64 |
-
*
|
65 |
-
* @return BitcoinReceiver The created Bitcoin Receiver item.
|
66 |
-
*/
|
67 |
-
public static function create($params = null, $opts = null)
|
68 |
-
{
|
69 |
-
return self::_create($params, $opts);
|
70 |
-
}
|
71 |
-
|
72 |
-
/**
|
73 |
-
* @param array|null $params
|
74 |
-
* @param array|string|null $options
|
75 |
-
*
|
76 |
-
* @return BitcoinReceiver The refunded Bitcoin Receiver item.
|
77 |
-
*/
|
78 |
-
public function refund($params = null, $options = null)
|
79 |
-
{
|
80 |
-
$url = $this->instanceUrl() . '/refund';
|
81 |
-
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
82 |
-
$this->refreshFrom($response, $opts);
|
83 |
-
return $this;
|
84 |
-
}
|
85 |
Â
}
|
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;
|
19 |
+
|
20 |
Â
/**
|
21 |
Â
* @return string The class URL for this resource. It needs to be special
|
22 |
Â
* cased because it doesn't fit into the standard resource pattern.
|
32 |
Â
*/
|
33 |
Â
public function instanceUrl()
|
34 |
Â
{
|
35 |
+
if ($this['customer']) {
|
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 |
Â
}
|
lib/stripe-gateway/lib/BitcoinTransaction.php
CHANGED
@@ -9,5 +9,5 @@ namespace Stripe;
|
|
9 |
Â
*/
|
10 |
Â
class BitcoinTransaction extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
Â
}
|
9 |
Â
*/
|
10 |
Â
class BitcoinTransaction extends ApiResource
|
11 |
Â
{
|
12 |
+
const OBJECT_NAME = "bitcoin_transaction";
|
13 |
Â
}
|
lib/stripe-gateway/lib/Capability.php
ADDED
@@ -0,0 +1,82 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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 |
+
}
|
47 |
+
$id = Util\Util::utf8($id);
|
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 |
+
}
|
lib/stripe-gateway/lib/Card.php
CHANGED
@@ -5,9 +5,125 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class Card
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
-
class Card extends
|
11 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
12 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
13 |
Â
}
|
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 |
+
/**
|
72 |
+
* @return string The instance URL for this resource. It needs to be special
|
73 |
+
* cased because cards are nested resources that may belong to different
|
74 |
+
* top-level resources.
|
75 |
+
*/
|
76 |
+
public function instanceUrl()
|
77 |
+
{
|
78 |
+
if ($this['customer']) {
|
79 |
+
$base = Customer::classUrl();
|
80 |
+
$parent = $this['customer'];
|
81 |
+
$path = 'sources';
|
82 |
+
} elseif ($this['account']) {
|
83 |
+
$base = Account::classUrl();
|
84 |
+
$parent = $this['account'];
|
85 |
+
$path = 'external_accounts';
|
86 |
+
} elseif ($this['recipient']) {
|
87 |
+
$base = Recipient::classUrl();
|
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 |
Â
}
|
lib/stripe-gateway/lib/Charge.php
CHANGED
@@ -9,91 +9,113 @@ namespace Stripe;
|
|
9 |
Â
* @property string $object
|
10 |
Â
* @property int $amount
|
11 |
Â
* @property int $amount_refunded
|
12 |
-
* @property
|
Â
|
|
Â
|
|
13 |
Â
* @property string $balance_transaction
|
Â
|
|
14 |
Â
* @property bool $captured
|
15 |
Â
* @property int $created
|
16 |
Â
* @property string $currency
|
17 |
Â
* @property string $customer
|
18 |
-
* @property
|
19 |
-
* @property
|
20 |
-
* @property
|
21 |
-
* @property
|
22 |
-
* @property
|
23 |
Â
* @property mixed $fraud_details
|
24 |
-
* @property
|
25 |
Â
* @property bool $livemode
|
26 |
-
* @property
|
27 |
-
* @property
|
Â
|
|
Â
|
|
28 |
Â
* @property bool $paid
|
29 |
-
* @property
|
30 |
-
* @property
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
31 |
Â
* @property bool $refunded
|
32 |
-
* @property
|
Â
|
|
33 |
Â
* @property mixed $shipping
|
34 |
Â
* @property mixed $source
|
35 |
-
* @property
|
36 |
-
* @property
|
37 |
Â
* @property string $status
|
Â
|
|
Â
|
|
Â
|
|
38 |
Â
*
|
39 |
Â
* @package Stripe
|
40 |
Â
*/
|
41 |
Â
class Charge extends ApiResource
|
42 |
Â
{
|
43 |
-
|
44 |
-
* @param string $id The ID of the charge to retrieve.
|
45 |
-
* @param array|string|null $options
|
46 |
-
*
|
47 |
-
* @return Charge
|
48 |
-
*/
|
49 |
-
public static function retrieve($id, $options = null)
|
50 |
-
{
|
51 |
-
return self::_retrieve($id, $options);
|
52 |
-
}
|
53 |
Â
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
* @return Collection of Charges
|
59 |
-
*/
|
60 |
-
public static function all($params = null, $options = null)
|
61 |
-
{
|
62 |
-
return self::_all($params, $options);
|
63 |
-
}
|
64 |
Â
|
65 |
Â
/**
|
66 |
-
*
|
67 |
-
*
|
68 |
-
*
|
69 |
-
* @return Charge The created charge.
|
70 |
Â
*/
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
75 |
Â
|
76 |
Â
/**
|
77 |
-
*
|
78 |
-
* @
|
79 |
-
* @param array|string|null $options
|
80 |
-
*
|
81 |
-
* @return Charge The updated charge.
|
82 |
Â
*/
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
}
|
87 |
-
|
88 |
-
/**
|
89 |
-
* @param array|string|null $options
|
90 |
-
*
|
91 |
-
* @return Charge The saved charge.
|
92 |
-
*/
|
93 |
-
public function save($options = null)
|
94 |
-
{
|
95 |
-
return $this->_save($options);
|
96 |
-
}
|
97 |
Â
|
98 |
Â
/**
|
99 |
Â
* @param array|null $params
|
@@ -135,7 +157,7 @@ class Charge extends ApiResource
|
|
135 |
Â
{
|
136 |
Â
$url = $this->instanceUrl() . '/dispute';
|
137 |
Â
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
138 |
-
$this->refreshFrom(
|
139 |
Â
return $this->dispute;
|
140 |
Â
}
|
141 |
Â
|
@@ -161,7 +183,7 @@ class Charge extends ApiResource
|
|
161 |
Â
*/
|
162 |
Â
public function markAsFraudulent($opts = null)
|
163 |
Â
{
|
164 |
-
$params =
|
165 |
Â
$url = $this->instanceUrl();
|
166 |
Â
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
167 |
Â
$this->refreshFrom($response, $opts);
|
@@ -175,7 +197,7 @@ class Charge extends ApiResource
|
|
175 |
Â
*/
|
176 |
Â
public function markAsSafe($opts = null)
|
177 |
Â
{
|
178 |
-
$params =
|
179 |
Â
$url = $this->instanceUrl();
|
180 |
Â
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
181 |
Â
$this->refreshFrom($response, $opts);
|
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
|
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 |
Â
|
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);
|
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);
|
lib/stripe-gateway/lib/Checkout/Session.php
ADDED
@@ -0,0 +1,39 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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 |
+
}
|
lib/stripe-gateway/lib/Collection.php
CHANGED
@@ -5,16 +5,28 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class Collection
|
7 |
Â
*
|
8 |
-
* @
|
9 |
-
* @
|
10 |
-
* @
|
11 |
-
* @
|
12 |
Â
*
|
13 |
Â
* @package Stripe
|
14 |
Â
*/
|
15 |
-
class Collection extends
|
16 |
Â
{
|
17 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
18 |
Â
|
19 |
Â
public function setRequestParams($params)
|
20 |
Â
{
|
@@ -56,7 +68,16 @@ class Collection extends ApiResource
|
|
56 |
Â
}
|
57 |
Â
|
58 |
Â
/**
|
59 |
-
* @return
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
60 |
Â
* across all objects across all pages. As page boundaries are
|
61 |
Â
* encountered, the next page will be fetched automatically for
|
62 |
Â
* continued iteration.
|
@@ -76,12 +97,11 @@ class Collection extends ApiResource
|
|
76 |
Â
if (isset($url['query'])) {
|
77 |
Â
// If the URL contains a query param, parse it out into $params so they
|
78 |
Â
// don't interact weirdly with each other.
|
79 |
-
$query =
|
80 |
Â
parse_str($url['query'], $query);
|
81 |
-
|
82 |
-
$params = array_merge($params ? $params : array(), $query);
|
83 |
Â
}
|
84 |
Â
|
85 |
-
return
|
86 |
Â
}
|
87 |
Â
}
|
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 |
Â
{
|
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 |
+
{
|
76 |
+
return new \ArrayIterator($this->data);
|
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.
|
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];
|
106 |
Â
}
|
107 |
Â
}
|
lib/stripe-gateway/lib/CountrySpec.php
CHANGED
@@ -5,40 +5,21 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class CountrySpec
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class CountrySpec extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
-
* This is a special case because the country specs endpoint has an
|
14 |
-
* underscore in it. The parent `className` function strips underscores.
|
15 |
-
*
|
16 |
-
* @return string The name of the class.
|
17 |
-
*/
|
18 |
-
public static function className()
|
19 |
-
{
|
20 |
-
return 'country_spec';
|
21 |
-
}
|
22 |
-
|
23 |
-
/**
|
24 |
-
* @param string $country The ISO country code of the country we retrieve the CountrySpec for.
|
25 |
-
* @param array|string|null $opts
|
26 |
-
*
|
27 |
-
* @return CountrySpec
|
28 |
-
*/
|
29 |
-
public static function retrieve($country, $opts = null)
|
30 |
-
{
|
31 |
-
return self::_retrieve($country, $opts);
|
32 |
-
}
|
33 |
Â
|
34 |
-
|
35 |
-
|
36 |
-
* @param array|string|null $opts
|
37 |
-
*
|
38 |
-
* @return Collection of CountrySpecs
|
39 |
-
*/
|
40 |
-
public static function all($params = null, $opts = null)
|
41 |
-
{
|
42 |
-
return self::_all($params, $opts);
|
43 |
-
}
|
44 |
Â
}
|
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;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
25 |
Â
}
|
lib/stripe-gateway/lib/Coupon.php
CHANGED
@@ -5,73 +5,31 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class Coupon
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class Coupon extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
-
* @param string $id The ID of the coupon to retrieve.
|
14 |
-
* @param array|string|null $opts
|
15 |
-
*
|
16 |
-
* @return Coupon
|
17 |
-
*/
|
18 |
-
public static function retrieve($id, $opts = null)
|
19 |
-
{
|
20 |
-
return self::_retrieve($id, $opts);
|
21 |
-
}
|
22 |
-
|
23 |
-
/**
|
24 |
-
* @param array|null $params
|
25 |
-
* @param array|string|null $opts
|
26 |
-
*
|
27 |
-
* @return Coupon The created coupon.
|
28 |
-
*/
|
29 |
-
public static function create($params = null, $opts = null)
|
30 |
-
{
|
31 |
-
return self::_create($params, $opts);
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @param string $id The ID of the coupon to update.
|
36 |
-
* @param array|null $params
|
37 |
-
* @param array|string|null $options
|
38 |
-
*
|
39 |
-
* @return Coupon The updated coupon.
|
40 |
-
*/
|
41 |
-
public static function update($id, $params = null, $options = null)
|
42 |
-
{
|
43 |
-
return self::_update($id, $params, $options);
|
44 |
-
}
|
45 |
-
|
46 |
-
/**
|
47 |
-
* @param array|null $params
|
48 |
-
* @param array|string|null $opts
|
49 |
-
*
|
50 |
-
* @return Coupon The deleted coupon.
|
51 |
-
*/
|
52 |
-
public function delete($params = null, $opts = null)
|
53 |
-
{
|
54 |
-
return $this->_delete($params, $opts);
|
55 |
-
}
|
56 |
-
|
57 |
-
/**
|
58 |
-
* @param array|string|null $opts
|
59 |
-
*
|
60 |
-
* @return Coupon The saved coupon.
|
61 |
-
*/
|
62 |
-
public function save($opts = null)
|
63 |
-
{
|
64 |
-
return $this->_save($opts);
|
65 |
-
}
|
66 |
Â
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
*/
|
73 |
-
public static function all($params = null, $opts = null)
|
74 |
-
{
|
75 |
-
return self::_all($params, $opts);
|
76 |
-
}
|
77 |
Â
}
|
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;
|
32 |
+
use ApiOperations\Delete;
|
33 |
+
use ApiOperations\Retrieve;
|
34 |
+
use ApiOperations\Update;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
35 |
Â
}
|
lib/stripe-gateway/lib/CreditNote.php
ADDED
@@ -0,0 +1,73 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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 |
+
}
|
lib/stripe-gateway/lib/Customer.php
CHANGED
@@ -7,184 +7,313 @@ namespace Stripe;
|
|
7 |
Â
*
|
8 |
Â
* @property string $id
|
9 |
Â
* @property string $object
|
10 |
-
* @property
|
11 |
-
* @property
|
12 |
Â
* @property string $created
|
13 |
Â
* @property string $currency
|
14 |
Â
* @property string $default_source
|
15 |
Â
* @property bool $delinquent
|
16 |
Â
* @property string $description
|
17 |
-
* @property
|
18 |
Â
* @property string $email
|
Â
|
|
Â
|
|
19 |
Â
* @property bool $livemode
|
20 |
-
* @property
|
Â
|
|
Â
|
|
Â
|
|
21 |
Â
* @property mixed $shipping
|
22 |
Â
* @property Collection $sources
|
23 |
Â
* @property Collection $subscriptions
|
Â
|
|
Â
|
|
24 |
Â
*
|
25 |
Â
* @package Stripe
|
26 |
Â
*/
|
27 |
Â
class Customer extends ApiResource
|
28 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
29 |
Â
/**
|
30 |
-
* @param
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
31 |
Â
* @param array|string|null $opts
|
32 |
Â
*
|
33 |
-
* @return
|
34 |
Â
*/
|
35 |
-
public static function
|
36 |
Â
{
|
37 |
-
return self::
|
38 |
Â
}
|
39 |
Â
|
40 |
Â
/**
|
Â
|
|
Â
|
|
41 |
Â
* @param array|null $params
|
42 |
Â
* @param array|string|null $opts
|
43 |
Â
*
|
44 |
-
* @return
|
45 |
Â
*/
|
46 |
-
public static function
|
47 |
Â
{
|
48 |
-
return self::
|
49 |
Â
}
|
50 |
Â
|
51 |
Â
/**
|
Â
|
|
Â
|
|
52 |
Â
* @param array|null $params
|
53 |
Â
* @param array|string|null $opts
|
54 |
Â
*
|
55 |
-
* @return
|
56 |
Â
*/
|
57 |
-
public static function
|
58 |
Â
{
|
59 |
-
return self::
|
60 |
Â
}
|
61 |
Â
|
62 |
Â
/**
|
63 |
-
* @param string $id The ID of the customer to
|
Â
|
|
64 |
Â
* @param array|null $params
|
65 |
-
* @param array|string|null $
|
66 |
Â
*
|
67 |
-
* @return
|
68 |
Â
*/
|
69 |
-
public static function
|
70 |
Â
{
|
71 |
-
return self::
|
72 |
Â
}
|
73 |
Â
|
74 |
Â
/**
|
Â
|
|
Â
|
|
75 |
Â
* @param array|string|null $opts
|
76 |
Â
*
|
77 |
-
* @return
|
78 |
Â
*/
|
79 |
-
public function
|
80 |
Â
{
|
81 |
-
return
|
82 |
Â
}
|
83 |
Â
|
84 |
Â
/**
|
Â
|
|
85 |
Â
* @param array|null $params
|
86 |
Â
* @param array|string|null $opts
|
87 |
Â
*
|
88 |
-
* @return
|
89 |
Â
*/
|
90 |
-
public function
|
91 |
Â
{
|
92 |
-
return
|
93 |
Â
}
|
94 |
Â
|
95 |
Â
/**
|
Â
|
|
Â
|
|
96 |
Â
* @param array|null $params
|
Â
|
|
97 |
Â
*
|
98 |
-
* @return
|
99 |
Â
*/
|
100 |
-
public function
|
101 |
Â
{
|
102 |
-
|
103 |
-
$params = array();
|
104 |
-
}
|
105 |
-
$params['customer'] = $this->id;
|
106 |
-
$ii = InvoiceItem::create($params, $this->_opts);
|
107 |
-
return $ii;
|
108 |
Â
}
|
109 |
Â
|
110 |
Â
/**
|
Â
|
|
Â
|
|
111 |
Â
* @param array|null $params
|
Â
|
|
112 |
Â
*
|
113 |
-
* @return
|
114 |
Â
*/
|
115 |
-
public function
|
116 |
Â
{
|
117 |
-
|
118 |
-
$params = array();
|
119 |
-
}
|
120 |
-
$params['customer'] = $this->id;
|
121 |
-
$invoices = Invoice::all($params, $this->_opts);
|
122 |
-
return $invoices;
|
123 |
Â
}
|
124 |
Â
|
125 |
Â
/**
|
Â
|
|
126 |
Â
* @param array|null $params
|
Â
|
|
127 |
Â
*
|
128 |
-
* @return
|
129 |
Â
*/
|
130 |
-
public function
|
131 |
Â
{
|
132 |
-
|
133 |
-
$params = array();
|
134 |
-
}
|
135 |
-
$params['customer'] = $this->id;
|
136 |
-
$iis = InvoiceItem::all($params, $this->_opts);
|
137 |
-
return $iis;
|
138 |
Â
}
|
139 |
Â
|
140 |
Â
/**
|
Â
|
|
141 |
Â
* @param array|null $params
|
Â
|
|
142 |
Â
*
|
143 |
-
* @return
|
144 |
Â
*/
|
145 |
-
public function
|
146 |
Â
{
|
147 |
-
|
148 |
-
$params = array();
|
149 |
-
}
|
150 |
-
$params['customer'] = $this->id;
|
151 |
-
$charges = Charge::all($params, $this->_opts);
|
152 |
-
return $charges;
|
153 |
Â
}
|
154 |
Â
|
155 |
Â
/**
|
Â
|
|
Â
|
|
156 |
Â
* @param array|null $params
|
Â
|
|
157 |
Â
*
|
158 |
-
* @return
|
159 |
Â
*/
|
160 |
-
public function
|
161 |
Â
{
|
162 |
-
$
|
163 |
-
list($response, $opts) = $this->_request('post', $url, $params);
|
164 |
-
$this->refreshFrom(array('subscription' => $response), $opts, true);
|
165 |
-
return $this->subscription;
|
166 |
Â
}
|
167 |
Â
|
168 |
Â
/**
|
Â
|
|
Â
|
|
169 |
Â
* @param array|null $params
|
Â
|
|
170 |
Â
*
|
171 |
-
*
|
Â
|
|
172 |
Â
*/
|
173 |
-
public function
|
174 |
Â
{
|
175 |
-
$
|
176 |
-
list($response, $opts) = $this->_request('delete', $url, $params);
|
177 |
-
$this->refreshFrom(array('subscription' => $response), $opts, true);
|
178 |
-
return $this->subscription;
|
179 |
Â
}
|
180 |
Â
|
181 |
Â
/**
|
182 |
-
* @
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
183 |
Â
*/
|
184 |
-
public function
|
185 |
Â
{
|
186 |
-
$
|
187 |
-
list($response, $opts) = $this->_request('delete', $url);
|
188 |
-
$this->refreshFrom(array('discount' => null), $opts, true);
|
189 |
Â
}
|
190 |
Â
}
|
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;
|
40 |
+
use ApiOperations\Delete;
|
41 |
+
use ApiOperations\NestedResource;
|
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 |
Â
{
|
204 |
+
return self::_deleteNestedResource($id, static::PATH_SOURCES, $sourceId, $params, $opts);
|
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 |
Â
{
|
266 |
+
return self::_allNestedResources($id, static::PATH_TAX_IDS, $params, $opts);
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
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 |
Â
}
|
lib/stripe-gateway/lib/CustomerBalanceTransaction.php
ADDED
@@ -0,0 +1,88 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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 |
+
}
|
53 |
+
$id = Util\Util::utf8($id);
|
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 |
+
}
|
lib/stripe-gateway/lib/Discount.php
ADDED
@@ -0,0 +1,20 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Discount
|
7 |
+
*
|
8 |
+
* @property string $object
|
9 |
+
* @property Coupon $coupon
|
10 |
+
* @property string $customer
|
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 |
+
}
|
lib/stripe-gateway/lib/Dispute.php
CHANGED
@@ -8,7 +8,7 @@ namespace Stripe;
|
|
8 |
Â
* @property string $id
|
9 |
Â
* @property string $object
|
10 |
Â
* @property int $amount
|
11 |
-
* @property
|
12 |
Â
* @property string $charge
|
13 |
Â
* @property int $created
|
14 |
Â
* @property string $currency
|
@@ -16,7 +16,7 @@ namespace Stripe;
|
|
16 |
Â
* @property mixed $evidence_details
|
17 |
Â
* @property bool $is_charge_refundable
|
18 |
Â
* @property bool $livemode
|
19 |
-
* @property
|
20 |
Â
* @property string $reason
|
21 |
Â
* @property string $status
|
22 |
Â
*
|
@@ -24,49 +24,43 @@ namespace Stripe;
|
|
24 |
Â
*/
|
25 |
Â
class Dispute extends ApiResource
|
26 |
Â
{
|
27 |
-
|
28 |
-
* @param string $id The ID of the dispute to retrieve.
|
29 |
-
* @param array|string|null $options
|
30 |
-
*
|
31 |
-
* @return Dispute
|
32 |
-
*/
|
33 |
-
public static function retrieve($id, $options = null)
|
34 |
-
{
|
35 |
-
return self::_retrieve($id, $options);
|
36 |
-
}
|
37 |
Â
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
*
|
42 |
-
* @return array An array of Disputes.
|
43 |
-
*/
|
44 |
-
public static function all($params = null, $options = null)
|
45 |
-
{
|
46 |
-
return self::_all($params, $options);
|
47 |
-
}
|
48 |
Â
|
49 |
Â
/**
|
50 |
-
*
|
51 |
-
* @
|
52 |
-
* @param array|string|null $options
|
53 |
-
*
|
54 |
-
* @return Dispute The updated dispute.
|
55 |
Â
*/
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
60 |
Â
|
61 |
Â
/**
|
62 |
-
*
|
63 |
-
*
|
64 |
-
* @return Dispute The saved charge.
|
65 |
Â
*/
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
70 |
Â
|
71 |
Â
/**
|
72 |
Â
* @param array|string|null $options
|
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
|
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 |
Â
*
|
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
|
lib/stripe-gateway/lib/EphemeralKey.php
ADDED
@@ -0,0 +1,40 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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 |
+
}
|
lib/stripe-gateway/lib/Error/Base.php
CHANGED
@@ -20,11 +20,20 @@ abstract class Base extends Exception
|
|
20 |
Â
$this->httpHeaders = $httpHeaders;
|
21 |
Â
$this->requestId = null;
|
22 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
23 |
Â
if ($httpHeaders && isset($httpHeaders['Request-Id'])) {
|
24 |
Â
$this->requestId = $httpHeaders['Request-Id'];
|
25 |
Â
}
|
26 |
Â
}
|
27 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
28 |
Â
public function getHttpStatus()
|
29 |
Â
{
|
30 |
Â
return $this->httpStatus;
|
20 |
Â
$this->httpHeaders = $httpHeaders;
|
21 |
Â
$this->requestId = null;
|
22 |
Â
|
23 |
+
// TODO: make this a proper constructor argument in the next major
|
24 |
+
// release.
|
25 |
+
$this->stripeCode = isset($jsonBody["error"]["code"]) ? $jsonBody["error"]["code"] : null;
|
26 |
+
|
27 |
Â
if ($httpHeaders && isset($httpHeaders['Request-Id'])) {
|
28 |
Â
$this->requestId = $httpHeaders['Request-Id'];
|
29 |
Â
}
|
30 |
Â
}
|
31 |
Â
|
32 |
+
public function getStripeCode()
|
33 |
+
{
|
34 |
+
return $this->stripeCode;
|
35 |
+
}
|
36 |
+
|
37 |
Â
public function getHttpStatus()
|
38 |
Â
{
|
39 |
Â
return $this->httpStatus;
|
lib/stripe-gateway/lib/Error/Card.php
CHANGED
@@ -15,12 +15,16 @@ class Card extends Base
|
|
15 |
Â
) {
|
16 |
Â
parent::__construct($message, $httpStatus, $httpBody, $jsonBody, $httpHeaders);
|
17 |
Â
$this->stripeParam = $stripeParam;
|
Â
|
|
Â
|
|
Â
|
|
18 |
Â
$this->stripeCode = $stripeCode;
|
19 |
Â
|
20 |
Â
// This one is not like the others because it was added later and we're
|
21 |
Â
// trying to do our best not to change the public interface of this class'
|
22 |
-
// constructor.
|
23 |
-
//
|
Â
|
|
24 |
Â
$this->declineCode = isset($jsonBody["error"]["decline_code"]) ? $jsonBody["error"]["decline_code"] : null;
|
25 |
Â
}
|
26 |
Â
|
@@ -29,11 +33,6 @@ class Card extends Base
|
|
29 |
Â
return $this->declineCode;
|
30 |
Â
}
|
31 |
Â
|
32 |
-
public function getStripeCode()
|
33 |
-
{
|
34 |
-
return $this->stripeCode;
|
35 |
-
}
|
36 |
-
|
37 |
Â
public function getStripeParam()
|
38 |
Â
{
|
39 |
Â
return $this->stripeParam;
|
15 |
Â
) {
|
16 |
Â
parent::__construct($message, $httpStatus, $httpBody, $jsonBody, $httpHeaders);
|
17 |
Â
$this->stripeParam = $stripeParam;
|
18 |
+
|
19 |
+
// TODO: once Error\Base accepts the error code as an argument, pass it
|
20 |
+
// in the call to parent::__construct() and stop setting it here.
|
21 |
Â
$this->stripeCode = $stripeCode;
|
22 |
Â
|
23 |
Â
// This one is not like the others because it was added later and we're
|
24 |
Â
// trying to do our best not to change the public interface of this class'
|
25 |
+
// constructor.
|
26 |
+
// TODO: make this a proper constructor argument in the next major
|
27 |
+
// release.
|
28 |
Â
$this->declineCode = isset($jsonBody["error"]["decline_code"]) ? $jsonBody["error"]["decline_code"] : null;
|
29 |
Â
}
|
30 |
Â
|
33 |
Â
return $this->declineCode;
|
34 |
Â
}
|
35 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
36 |
Â
public function getStripeParam()
|
37 |
Â
{
|
38 |
Â
return $this->stripeParam;
|
lib/stripe-gateway/lib/Error/Idempotency.php
ADDED
@@ -0,0 +1,7 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Error;
|
4 |
+
|
5 |
+
class Idempotency extends Base
|
6 |
+
{
|
7 |
+
}
|
lib/stripe-gateway/lib/Error/OAuth/InvalidClient.php
ADDED
@@ -0,0 +1,10 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Error\OAuth;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* InvalidClient is raised when authentication fails.
|
7 |
+
*/
|
8 |
+
class InvalidClient extends OAuthBase
|
9 |
+
{
|
10 |
+
}
|
lib/stripe-gateway/lib/Error/OAuth/InvalidGrant.php
ADDED
@@ -0,0 +1,13 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Error\OAuth;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* InvalidGrant is raised 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 InvalidGrant extends OAuthBase
|
12 |
+
{
|
13 |
+
}
|
lib/stripe-gateway/lib/Error/OAuth/InvalidRequest.php
ADDED
@@ -0,0 +1,11 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Error\OAuth;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* InvalidRequest is raised when a code, refresh token, or grant type
|
7 |
+
* parameter is not provided, but was required.
|
8 |
+
*/
|
9 |
+
class InvalidRequest extends OAuthBase
|
10 |
+
{
|
11 |
+
}
|
lib/stripe-gateway/lib/Error/OAuth/InvalidScope.php
ADDED
@@ -0,0 +1,10 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Error\OAuth;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* InvalidScope is raised when an invalid scope parameter is provided.
|
7 |
+
*/
|
8 |
+
class InvalidScope extends OAuthBase
|
9 |
+
{
|
10 |
+
}
|
lib/stripe-gateway/lib/Error/OAuth/OAuthBase.php
ADDED
@@ -0,0 +1,23 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Error\OAuth;
|
4 |
+
|
5 |
+
class OAuthBase extends \Stripe\Error\Base
|
6 |
+
{
|
7 |
+
public function __construct(
|
8 |
+
$code,
|
9 |
+
$description,
|
10 |
+
$httpStatus = null,
|
11 |
+
$httpBody = null,
|
12 |
+
$jsonBody = null,
|
13 |
+
$httpHeaders = null
|
14 |
+
) {
|
15 |
+
parent::__construct($description, $httpStatus, $httpBody, $jsonBody, $httpHeaders);
|
16 |
+
$this->errorCode = $code;
|
17 |
+
}
|
18 |
+
|
19 |
+
public function getErrorCode()
|
20 |
+
{
|
21 |
+
return $this->errorCode;
|
22 |
+
}
|
23 |
+
}
|
lib/stripe-gateway/lib/Error/OAuth/UnsupportedGrantType.php
ADDED
@@ -0,0 +1,11 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Error\OAuth;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* UnsupportedGrantType is raised when an unuspported grant type
|
7 |
+
* parameter is specified.
|
8 |
+
*/
|
9 |
+
class UnsupportedGrantType extends OAuthBase
|
10 |
+
{
|
11 |
+
}
|
lib/stripe-gateway/lib/Error/OAuth/UnsupportedResponseType.php
ADDED
@@ -0,0 +1,11 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Error\OAuth;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* UnsupportedResponseType is raised when an unsupported response type
|
7 |
+
* parameter is specified.
|
8 |
+
*/
|
9 |
+
class UnsupportedResponseType extends OAuthBase
|
10 |
+
{
|
11 |
+
}
|
lib/stripe-gateway/lib/Error/Permission.php
ADDED
@@ -0,0 +1,7 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Error;
|
4 |
+
|
5 |
+
class Permission extends Base
|
6 |
+
{
|
7 |
+
}
|
lib/stripe-gateway/lib/Error/SignatureVerification.php
ADDED
@@ -0,0 +1,20 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Error;
|
4 |
+
|
5 |
+
class SignatureVerification extends Base
|
6 |
+
{
|
7 |
+
public function __construct(
|
8 |
+
$message,
|
9 |
+
$sigHeader,
|
10 |
+
$httpBody = null
|
11 |
+
) {
|
12 |
+
parent::__construct($message, null, $httpBody, null, null);
|
13 |
+
$this->sigHeader = $sigHeader;
|
14 |
+
}
|
15 |
+
|
16 |
+
public function getSigHeader()
|
17 |
+
{
|
18 |
+
return $this->sigHeader;
|
19 |
+
}
|
20 |
+
}
|
lib/stripe-gateway/lib/Event.php
CHANGED
@@ -7,37 +7,161 @@ namespace Stripe;
|
|
7 |
Â
*
|
8 |
Â
* @property string $id
|
9 |
Â
* @property string $object
|
Â
|
|
10 |
Â
* @property string $api_version
|
11 |
-
* @property int
|
12 |
-
* @property mixed
|
13 |
-
* @property bool
|
14 |
-
* @property int
|
15 |
-
* @property
|
16 |
Â
* @property string $type
|
17 |
Â
*
|
18 |
Â
* @package Stripe
|
19 |
Â
*/
|
20 |
Â
class Event extends ApiResource
|
21 |
Â
{
|
22 |
-
|
23 |
-
* @param string $id The ID of the event to retrieve.
|
24 |
-
* @param array|string|null $opts
|
25 |
-
*
|
26 |
-
* @return Event
|
27 |
-
*/
|
28 |
-
public static function retrieve($id, $opts = null)
|
29 |
-
{
|
30 |
-
return self::_retrieve($id, $opts);
|
31 |
-
}
|
32 |
Â
|
33 |
Â
/**
|
34 |
-
*
|
35 |
-
* @
|
36 |
-
*
|
37 |
-
* @return Collection of Events
|
38 |
Â
*/
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
43 |
Â
}
|
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 |
Â
}
|
lib/stripe-gateway/lib/ExchangeRate.php
ADDED
@@ -0,0 +1,16 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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;
|
16 |
+
}
|
lib/stripe-gateway/lib/File.php
ADDED
@@ -0,0 +1,62 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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 |
+
{
|
38 |
+
return '/v1/files';
|
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 |
+
}
|
lib/stripe-gateway/lib/FileLink.php
ADDED
@@ -0,0 +1,28 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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;
|
26 |
+
use ApiOperations\Retrieve;
|
27 |
+
use ApiOperations\Update;
|
28 |
+
}
|
lib/stripe-gateway/lib/FileUpload.php
CHANGED
@@ -2,60 +2,5 @@
|
|
2 |
Â
|
3 |
Â
namespace Stripe;
|
4 |
Â
|
5 |
-
|
6 |
-
|
7 |
-
*
|
8 |
-
* @property string $id
|
9 |
-
* @property string $object
|
10 |
-
* @property int $created
|
11 |
-
* @property string $purpose
|
12 |
-
* @property int $size
|
13 |
-
* @property string $type
|
14 |
-
*
|
15 |
-
* @package Stripe
|
16 |
-
*/
|
17 |
-
class FileUpload extends ApiResource
|
18 |
-
{
|
19 |
-
public static function baseUrl()
|
20 |
-
{
|
21 |
-
return Stripe::$apiUploadBase;
|
22 |
-
}
|
23 |
-
|
24 |
-
public static function className()
|
25 |
-
{
|
26 |
-
return 'file';
|
27 |
-
}
|
28 |
-
|
29 |
-
/**
|
30 |
-
* @param string $id The ID of the file upload to retrieve.
|
31 |
-
* @param array|string|null $opts
|
32 |
-
*
|
33 |
-
* @return FileUpload
|
34 |
-
*/
|
35 |
-
public static function retrieve($id, $opts = null)
|
36 |
-
{
|
37 |
-
return self::_retrieve($id, $opts);
|
38 |
-
}
|
39 |
-
|
40 |
-
/**
|
41 |
-
* @param array|null $params
|
42 |
-
* @param array|string|null $opts
|
43 |
-
*
|
44 |
-
* @return FileUpload The created file upload.
|
45 |
-
*/
|
46 |
-
public static function create($params = null, $opts = null)
|
47 |
-
{
|
48 |
-
return self::_create($params, $opts);
|
49 |
-
}
|
50 |
-
|
51 |
-
/**
|
52 |
-
* @param array|null $params
|
53 |
-
* @param array|string|null $opts
|
54 |
-
*
|
55 |
-
* @return Collection of FileUploads
|
56 |
-
*/
|
57 |
-
public static function all($params = null, $opts = null)
|
58 |
-
{
|
59 |
-
return self::_all($params, $opts);
|
60 |
-
}
|
61 |
-
}
|
2 |
Â
|
3 |
Â
namespace Stripe;
|
4 |
Â
|
5 |
+
// For backwards compatibility, the `File` class is aliased to `FileUpload`.
|
6 |
+
class_alias('Stripe\\File', 'Stripe\\FileUpload');
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
lib/stripe-gateway/lib/HttpClient/ClientInterface.php
CHANGED
@@ -11,8 +11,11 @@ interface ClientInterface
|
|
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 |
-
* @
|
Â
|
|
Â
|
|
Â
|
|
16 |
Â
*/
|
17 |
Â
public function request($method, $absUrl, $headers, $params, $hasFile);
|
18 |
Â
}
|
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 |
Â
}
|
lib/stripe-gateway/lib/HttpClient/CurlClient.php
CHANGED
@@ -6,6 +6,26 @@ use Stripe\Stripe;
|
|
6 |
Â
use Stripe\Error;
|
7 |
Â
use Stripe\Util;
|
8 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
9 |
Â
class CurlClient implements ClientInterface
|
10 |
Â
{
|
11 |
Â
private static $instance;
|
@@ -20,6 +40,14 @@ class CurlClient implements ClientInterface
|
|
20 |
Â
|
21 |
Â
protected $defaultOptions;
|
22 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
23 |
Â
/**
|
24 |
Â
* CurlClient constructor.
|
25 |
Â
*
|
@@ -33,9 +61,31 @@ class CurlClient implements ClientInterface
|
|
33 |
Â
*
|
34 |
Â
* @param array|callable|null $defaultOptions
|
35 |
Â
*/
|
36 |
-
public function __construct($defaultOptions = null)
|
37 |
Â
{
|
38 |
Â
$this->defaultOptions = $defaultOptions;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
39 |
Â
}
|
40 |
Â
|
41 |
Â
public function getDefaultOptions()
|
@@ -43,6 +93,43 @@ class CurlClient implements ClientInterface
|
|
43 |
Â
return $this->defaultOptions;
|
44 |
Â
}
|
45 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
46 |
Â
// USER DEFINED TIMEOUTS
|
47 |
Â
|
48 |
Â
const DEFAULT_TIMEOUT = 80;
|
@@ -77,10 +164,9 @@ class CurlClient implements ClientInterface
|
|
77 |
Â
|
78 |
Â
public function request($method, $absUrl, $headers, $params, $hasFile)
|
79 |
Â
{
|
80 |
-
$curl = curl_init();
|
81 |
Â
$method = strtolower($method);
|
82 |
Â
|
83 |
-
$opts =
|
84 |
Â
if (is_callable($this->defaultOptions)) { // call defaultOptions callback, set options to return value
|
85 |
Â
$opts = call_user_func_array($this->defaultOptions, func_get_args());
|
86 |
Â
if (!is_array($opts)) {
|
@@ -90,6 +176,8 @@ class CurlClient implements ClientInterface
|
|
90 |
Â
$opts = $this->defaultOptions;
|
91 |
Â
}
|
92 |
Â
|
Â
|
|
Â
|
|
93 |
Â
if ($method == 'get') {
|
94 |
Â
if ($hasFile) {
|
95 |
Â
throw new Error\Api(
|
@@ -98,24 +186,32 @@ class CurlClient implements ClientInterface
|
|
98 |
Â
}
|
99 |
Â
$opts[CURLOPT_HTTPGET] = 1;
|
100 |
Â
if (count($params) > 0) {
|
101 |
-
$encoded =
|
102 |
Â
$absUrl = "$absUrl?$encoded";
|
103 |
Â
}
|
104 |
Â
} elseif ($method == 'post') {
|
105 |
Â
$opts[CURLOPT_POST] = 1;
|
106 |
-
$opts[CURLOPT_POSTFIELDS] = $hasFile ? $params :
|
107 |
Â
} elseif ($method == 'delete') {
|
108 |
Â
$opts[CURLOPT_CUSTOMREQUEST] = 'DELETE';
|
109 |
Â
if (count($params) > 0) {
|
110 |
-
$encoded =
|
111 |
Â
$absUrl = "$absUrl?$encoded";
|
112 |
Â
}
|
113 |
Â
} else {
|
114 |
Â
throw new Error\Api("Unrecognized method $method");
|
115 |
Â
}
|
116 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
117 |
Â
// Create a callback to capture HTTP headers for the response
|
118 |
-
$rheaders =
|
119 |
Â
$headerCallback = function ($curl, $header_line) use (&$rheaders) {
|
120 |
Â
// Ignore the HTTP request line (HTTP/1.1 200 OK)
|
121 |
Â
if (strpos($header_line, ":") === false) {
|
@@ -147,82 +243,70 @@ class CurlClient implements ClientInterface
|
|
147 |
Â
$opts[CURLOPT_TIMEOUT] = $this->timeout;
|
148 |
Â
$opts[CURLOPT_HEADERFUNCTION] = $headerCallback;
|
149 |
Â
$opts[CURLOPT_HTTPHEADER] = $headers;
|
150 |
-
|
Â
|
|
151 |
Â
$opts[CURLOPT_SSL_VERIFYPEER] = false;
|
152 |
Â
}
|
153 |
Â
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
//
|
158 |
-
// Explicitly set a TLS version for cURL to use now that we're starting
|
159 |
-
// to block 1.0 and 1.1 requests.
|
160 |
-
//
|
161 |
-
// If users are on OpenSSL >= 1.0.1, we know that they support TLS 1.2,
|
162 |
-
// so set that explicitly because on some older Linux distros, clients may
|
163 |
-
// default to TLS 1.0 even when they have TLS 1.2 available.
|
164 |
-
//
|
165 |
-
// For users on much older versions of OpenSSL, set a valid range of
|
166 |
-
// TLS 1.0 to 1.2 (CURL_SSLVERSION_TLSv1). Note that this may result in
|
167 |
-
// their requests being blocked unless they're specially flagged into
|
168 |
-
// being able to use an old TLS version.
|
169 |
-
//
|
170 |
-
// Note: The int on the right is pulled from the source of OpenSSL 1.0.1a.
|
171 |
-
if (OPENSSL_VERSION_NUMBER >= 0x1000100f) {
|
172 |
-
if (!defined('CURL_SSLVERSION_TLSv1_2')) {
|
173 |
-
// Note the value 6 comes from its position in the enum that
|
174 |
-
// defines it in cURL's source code.
|
175 |
-
define('CURL_SSLVERSION_TLSv1_2', 6); // constant not defined in PHP < 5.5
|
176 |
-
}
|
177 |
-
$opts[CURLOPT_SSLVERSION] = CURL_SSLVERSION_TLSv1_2;
|
178 |
-
} else {
|
179 |
-
if (!defined('CURL_SSLVERSION_TLSv1')) {
|
180 |
-
define('CURL_SSLVERSION_TLSv1', 1); // constant not defined in PHP < 5.5
|
181 |
-
}
|
182 |
-
$opts[CURLOPT_SSLVERSION] = CURL_SSLVERSION_TLSv1;
|
183 |
Â
}
|
184 |
-
// @codingStandardsIgnoreEnd
|
185 |
Â
|
186 |
-
|
187 |
-
$rbody = curl_exec($curl);
|
188 |
Â
|
189 |
-
|
190 |
-
|
191 |
-
}
|
192 |
Â
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
$
|
203 |
-
|
204 |
-
|
205 |
-
$
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
206 |
Â
}
|
207 |
Â
|
208 |
Â
if ($rbody === false) {
|
209 |
-
$errno
|
210 |
-
$message = curl_error($curl);
|
211 |
-
curl_close($curl);
|
212 |
-
$this->handleCurlError($absUrl, $errno, $message);
|
213 |
Â
}
|
214 |
Â
|
215 |
-
|
216 |
-
curl_close($curl);
|
217 |
-
return array($rbody, $rcode, $rheaders);
|
218 |
Â
}
|
219 |
Â
|
220 |
Â
/**
|
221 |
-
* @param
|
Â
|
|
222 |
Â
* @param string $message
|
Â
|
|
223 |
Â
* @throws Error\ApiConnection
|
224 |
Â
*/
|
225 |
-
private function handleCurlError($url, $errno, $message)
|
226 |
Â
{
|
227 |
Â
switch ($errno) {
|
228 |
Â
case CURLE_COULDNT_CONNECT:
|
@@ -247,52 +331,130 @@ class CurlClient implements ClientInterface
|
|
247 |
Â
$msg .= " let us know at support@stripe.com.";
|
248 |
Â
|
249 |
Â
$msg .= "\n\n(Network error [errno $errno]: $message)";
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
250 |
Â
throw new Error\ApiConnection($msg);
|
251 |
Â
}
|
252 |
Â
|
253 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
254 |
Â
{
|
255 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
256 |
Â
}
|
257 |
Â
|
258 |
Â
/**
|
259 |
-
*
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
265 |
Â
*/
|
266 |
-
|
267 |
Â
{
|
268 |
-
if (!
|
269 |
-
|
Â
|
|
270 |
Â
}
|
Â
|
|
271 |
Â
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
277 |
Â
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
285 |
Â
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
293 |
Â
}
|
294 |
Â
}
|
295 |
Â
|
296 |
-
return
|
297 |
Â
}
|
298 |
Â
}
|
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
|
30 |
Â
{
|
31 |
Â
private static $instance;
|
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.
|
53 |
Â
*
|
61 |
Â
*
|
62 |
Â
* @param array|callable|null $defaultOptions
|
63 |
Â
*/
|
64 |
+
public function __construct($defaultOptions = null, $randomGenerator = null)
|
65 |
Â
{
|
66 |
Â
$this->defaultOptions = $defaultOptions;
|
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 |
+
|
77 |
+
public function __destruct()
|
78 |
+
{
|
79 |
+
$this->closeCurlHandle();
|
80 |
+
}
|
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 |
Â
}
|
90 |
Â
|
91 |
Â
public function getDefaultOptions()
|
93 |
Â
return $this->defaultOptions;
|
94 |
Â
}
|
95 |
Â
|
96 |
+
public function getUserAgentInfo()
|
97 |
+
{
|
98 |
+
return $this->userAgentInfo;
|
99 |
+
}
|
100 |
+
|
101 |
+
/**
|
102 |
+
* @return boolean
|
103 |
+
*/
|
104 |
+
public function getEnablePersistentConnections()
|
105 |
+
{
|
106 |
+
return $this->enablePersistentConnections;
|
107 |
+
}
|
108 |
+
|
109 |
+
/**
|
110 |
+
* @param boolean $enable
|
111 |
+
*/
|
112 |
+
public function setEnablePersistentConnections($enable)
|
113 |
+
{
|
114 |
+
$this->enablePersistentConnections = $enable;
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
* @return boolean
|
119 |
+
*/
|
120 |
+
public function getEnableHttp2()
|
121 |
+
{
|
122 |
+
return $this->enableHttp2;
|
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;
|
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)) {
|
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(
|
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) {
|
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 |
Â
/**
|
303 |
+
* @param string $url
|
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:
|
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 |
+
|
387 |
+
// Apply some jitter by randomizing the value in the range of
|
388 |
+
// ($sleepSeconds / 2) to ($sleepSeconds).
|
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 |
Â
}
|
396 |
Â
|
397 |
Â
/**
|
398 |
+
* Initializes the curl handle. If already initialized, the handle is closed first.
|
399 |
+
*/
|
400 |
+
private function initCurlHandle()
|
401 |
+
{
|
402 |
+
$this->closeCurlHandle();
|
403 |
+
$this->curlHandle = curl_init();
|
404 |
+
}
|
405 |
+
|
406 |
+
/**
|
407 |
+
* Closes the curl handle if initialized. Do nothing if already closed.
|
408 |
Â
*/
|
409 |
+
private function closeCurlHandle()
|
410 |
Â
{
|
411 |
+
if (!is_null($this->curlHandle)) {
|
412 |
+
curl_close($this->curlHandle);
|
413 |
+
$this->curlHandle = null;
|
414 |
Â
}
|
415 |
+
}
|
416 |
Â
|
417 |
+
/**
|
418 |
+
* Resets the curl handle. If the handle is not already initialized, or if persistent
|
419 |
+
* connections are disabled, the handle is reinitialized instead.
|
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 |
+
}
|
428 |
+
}
|
429 |
Â
|
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 |
+
/**
|
444 |
+
* Checks if a list of headers contains a specific header name.
|
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 |
Â
}
|
457 |
Â
|
458 |
+
return false;
|
459 |
Â
}
|
460 |
Â
}
|
lib/stripe-gateway/lib/Invoice.php
CHANGED
@@ -5,53 +5,170 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class Invoice
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class Invoice extends ApiResource
|
11 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
12 |
Â
/**
|
13 |
Â
* @param array|null $params
|
14 |
Â
* @param array|string|null $opts
|
15 |
Â
*
|
16 |
-
* @return Invoice The
|
17 |
Â
*/
|
18 |
-
public
|
19 |
Â
{
|
20 |
-
|
Â
|
|
Â
|
|
Â
|
|
21 |
Â
}
|
22 |
Â
|
23 |
Â
/**
|
24 |
-
* @param
|
25 |
Â
* @param array|string|null $opts
|
26 |
Â
*
|
27 |
-
* @return Invoice
|
28 |
Â
*/
|
29 |
-
public
|
30 |
Â
{
|
31 |
-
|
Â
|
|
Â
|
|
Â
|
|
32 |
Â
}
|
33 |
Â
|
34 |
Â
/**
|
35 |
Â
* @param array|null $params
|
36 |
Â
* @param array|string|null $opts
|
37 |
Â
*
|
38 |
-
* @return
|
39 |
Â
*/
|
40 |
-
public
|
41 |
Â
{
|
42 |
-
|
Â
|
|
Â
|
|
Â
|
|
43 |
Â
}
|
44 |
Â
|
45 |
Â
/**
|
46 |
-
* @param string $id The ID of the invoice to update.
|
47 |
Â
* @param array|null $params
|
48 |
-
* @param array|string|null $
|
49 |
Â
*
|
50 |
-
* @return Invoice The
|
51 |
Â
*/
|
52 |
-
public
|
53 |
Â
{
|
54 |
-
|
Â
|
|
Â
|
|
Â
|
|
55 |
Â
}
|
56 |
Â
|
57 |
Â
/**
|
@@ -70,22 +187,15 @@ class Invoice extends ApiResource
|
|
70 |
Â
}
|
71 |
Â
|
72 |
Â
/**
|
Â
|
|
73 |
Â
* @param array|string|null $opts
|
74 |
Â
*
|
75 |
-
* @return Invoice The
|
76 |
-
*/
|
77 |
-
public function save($opts = null)
|
78 |
-
{
|
79 |
-
return $this->_save($opts);
|
80 |
-
}
|
81 |
-
|
82 |
-
/**
|
83 |
-
* @return Invoice The paid invoice.
|
84 |
Â
*/
|
85 |
-
public function
|
86 |
Â
{
|
87 |
-
$url = $this->instanceUrl() . '/
|
88 |
-
list($response, $opts) = $this->_request('post', $url,
|
89 |
Â
$this->refreshFrom($response, $opts);
|
90 |
Â
return $this;
|
91 |
Â
}
|
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;
|
77 |
+
use ApiOperations\Delete;
|
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 |
Â
/**
|
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 |
Â
}
|
lib/stripe-gateway/lib/InvoiceItem.php
CHANGED
@@ -5,73 +5,35 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class InvoiceItem
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class InvoiceItem extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
-
* @param string $id The ID of the invoice item to retrieve.
|
14 |
-
* @param array|string|null $opts
|
15 |
-
*
|
16 |
-
* @return InvoiceItem
|
17 |
-
*/
|
18 |
-
public static function retrieve($id, $opts = null)
|
19 |
-
{
|
20 |
-
return self::_retrieve($id, $opts);
|
21 |
-
}
|
22 |
-
|
23 |
-
/**
|
24 |
-
* @param array|null $params
|
25 |
-
* @param array|string|null $opts
|
26 |
-
*
|
27 |
-
* @return Collection of InvoiceItems
|
28 |
-
*/
|
29 |
-
public static function all($params = null, $opts = null)
|
30 |
-
{
|
31 |
-
return self::_all($params, $opts);
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @param array|null $params
|
36 |
-
* @param array|string|null $opts
|
37 |
-
*
|
38 |
-
* @return InvoiceItem The created invoice item.
|
39 |
-
*/
|
40 |
-
public static function create($params = null, $opts = null)
|
41 |
-
{
|
42 |
-
return self::_create($params, $opts);
|
43 |
-
}
|
44 |
-
|
45 |
-
/**
|
46 |
-
* @param string $id The ID of the invoice item to update.
|
47 |
-
* @param array|null $params
|
48 |
-
* @param array|string|null $options
|
49 |
-
*
|
50 |
-
* @return InvoiceItem The updated invoice item.
|
51 |
-
*/
|
52 |
-
public static function update($id, $params = null, $options = null)
|
53 |
-
{
|
54 |
-
return self::_update($id, $params, $options);
|
55 |
-
}
|
56 |
-
|
57 |
-
/**
|
58 |
-
* @param array|string|null $opts
|
59 |
-
*
|
60 |
-
* @return InvoiceItem The saved invoice item.
|
61 |
-
*/
|
62 |
-
public function save($opts = null)
|
63 |
-
{
|
64 |
-
return $this->_save($opts);
|
65 |
-
}
|
66 |
Â
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
*/
|
73 |
-
public function delete($params = null, $opts = null)
|
74 |
-
{
|
75 |
-
return $this->_delete($params, $opts);
|
76 |
-
}
|
77 |
Â
}
|
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;
|
36 |
+
use ApiOperations\Delete;
|
37 |
+
use ApiOperations\Retrieve;
|
38 |
+
use ApiOperations\Update;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
39 |
Â
}
|
lib/stripe-gateway/lib/InvoiceLineItem.php
ADDED
@@ -0,0 +1,32 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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 |
+
}
|
lib/stripe-gateway/lib/IssuerFraudRecord.php
ADDED
@@ -0,0 +1,24 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class IssuerFraudRecord
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property string $charge
|
11 |
+
* @property int $created
|
12 |
+
* @property int $post_date
|
13 |
+
* @property string $fraud_type
|
14 |
+
* @property bool $livemode
|
15 |
+
*
|
16 |
+
* @package Stripe
|
17 |
+
*/
|
18 |
+
class IssuerFraudRecord extends ApiResource
|
19 |
+
{
|
20 |
+
const OBJECT_NAME = "issuer_fraud_record";
|
21 |
+
|
22 |
+
use ApiOperations\All;
|
23 |
+
use ApiOperations\Retrieve;
|
24 |
+
}
|
lib/stripe-gateway/lib/Issuing/Authorization.php
ADDED
@@ -0,0 +1,68 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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 |
+
}
|
lib/stripe-gateway/lib/Issuing/Card.php
ADDED
@@ -0,0 +1,51 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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;
|
34 |
+
use \Stripe\ApiOperations\Retrieve;
|
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 |
+
}
|
lib/stripe-gateway/lib/Issuing/CardDetails.php
ADDED
@@ -0,0 +1,21 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Issuing;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class CardDetails
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property Card $card
|
11 |
+
* @property string $cvc
|
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 |
+
}
|
lib/stripe-gateway/lib/Issuing/Cardholder.php
ADDED
@@ -0,0 +1,30 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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;
|
28 |
+
use \Stripe\ApiOperations\Retrieve;
|
29 |
+
use \Stripe\ApiOperations\Update;
|
30 |
+
}
|
lib/stripe-gateway/lib/Issuing/Dispute.php
ADDED
@@ -0,0 +1,30 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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;
|
28 |
+
use \Stripe\ApiOperations\Retrieve;
|
29 |
+
use \Stripe\ApiOperations\Update;
|
30 |
+
}
|
lib/stripe-gateway/lib/Issuing/Transaction.php
ADDED
@@ -0,0 +1,35 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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 |
+
}
|
lib/stripe-gateway/lib/LoginLink.php
ADDED
@@ -0,0 +1,17 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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 |
+
}
|
lib/stripe-gateway/lib/OAuth.php
ADDED
@@ -0,0 +1,93 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
abstract class OAuth
|
6 |
+
{
|
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);
|
26 |
+
|
27 |
+
return $base . '/oauth/authorize?' . $query;
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
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',
|
45 |
+
'/oauth/token',
|
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(
|
67 |
+
'post',
|
68 |
+
'/oauth/deauthorize',
|
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 '
|
85 |
+
. 'https://dashboard.stripe.com/account/applications/settings, '
|
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 |
+
}
|
lib/stripe-gateway/lib/Order.php
CHANGED
@@ -5,64 +5,40 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class Order
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class Order extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
-
* @param string $id The ID of the Order to retrieve.
|
14 |
-
* @param array|string|null $opts
|
15 |
-
*
|
16 |
-
* @return Order
|
17 |
-
*/
|
18 |
-
public static function retrieve($id, $opts = null)
|
19 |
-
{
|
20 |
-
return self::_retrieve($id, $opts);
|
21 |
-
}
|
22 |
-
|
23 |
-
/**
|
24 |
-
* @param array|null $params
|
25 |
-
* @param array|string|null $opts
|
26 |
-
*
|
27 |
-
* @return Order The created Order.
|
28 |
-
*/
|
29 |
-
public static function create($params = null, $opts = null)
|
30 |
-
{
|
31 |
-
return self::_create($params, $opts);
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @param string $id The ID of the order to update.
|
36 |
-
* @param array|null $params
|
37 |
-
* @param array|string|null $options
|
38 |
-
*
|
39 |
-
* @return Order The updated order.
|
40 |
-
*/
|
41 |
-
public static function update($id, $params = null, $options = null)
|
42 |
-
{
|
43 |
-
return self::_update($id, $params, $options);
|
44 |
-
}
|
45 |
-
|
46 |
-
/**
|
47 |
-
* @param array|string|null $opts
|
48 |
-
*
|
49 |
-
* @return Order The saved Order.
|
50 |
-
*/
|
51 |
-
public function save($opts = null)
|
52 |
-
{
|
53 |
-
return $this->_save($opts);
|
54 |
-
}
|
55 |
Â
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
* @return Collection of Orders
|
61 |
-
*/
|
62 |
-
public static function all($params = null, $opts = null)
|
63 |
-
{
|
64 |
-
return self::_all($params, $opts);
|
65 |
-
}
|
66 |
Â
|
67 |
Â
/**
|
68 |
Â
* @return Order The paid order.
|
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;
|
40 |
+
use ApiOperations\Retrieve;
|
41 |
+
use ApiOperations\Update;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
42 |
Â
|
43 |
Â
/**
|
44 |
Â
* @return Order The paid order.
|
lib/stripe-gateway/lib/OrderItem.php
ADDED
@@ -0,0 +1,21 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class OrderItem
|
7 |
+
*
|
8 |
+
* @property string $object
|
9 |
+
* @property int $amount
|
10 |
+
* @property string $currency
|
11 |
+
* @property string $description
|
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 |
+
}
|
lib/stripe-gateway/lib/OrderReturn.php
CHANGED
@@ -5,29 +5,22 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class OrderReturn
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class OrderReturn extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
-
* @param string $id The ID of the OrderReturn to retrieve.
|
14 |
-
* @param array|string|null $opts
|
15 |
-
*
|
16 |
-
* @return Order
|
17 |
-
*/
|
18 |
-
public static function retrieve($id, $opts = null)
|
19 |
-
{
|
20 |
-
return self::_retrieve($id, $opts);
|
21 |
-
}
|
22 |
Â
|
23 |
-
|
24 |
-
|
25 |
-
* @param array|string|null $opts
|
26 |
-
*
|
27 |
-
* @return Collection of OrderReturns
|
28 |
-
*/
|
29 |
-
public static function all($params = null, $opts = null)
|
30 |
-
{
|
31 |
-
return self::_all($params, $opts);
|
32 |
-
}
|
33 |
Â
}
|
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;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
26 |
Â
}
|
lib/stripe-gateway/lib/PaymentIntent.php
ADDED
@@ -0,0 +1,106 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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 |
+
}
|
lib/stripe-gateway/lib/PaymentMethod.php
ADDED
@@ -0,0 +1,59 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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;
|
29 |
+
use ApiOperations\Retrieve;
|
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 |
+
}
|
lib/stripe-gateway/lib/Payout.php
ADDED
@@ -0,0 +1,92 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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 |
+
}
|
lib/stripe-gateway/lib/Person.php
ADDED
@@ -0,0 +1,107 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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 |
+
}
|
72 |
+
$id = Util\Util::utf8($id);
|
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 |
+
}
|
lib/stripe-gateway/lib/Plan.php
CHANGED
@@ -6,72 +6,34 @@ namespace Stripe;
|
|
6 |
Â
* Class Plan
|
7 |
Â
*
|
8 |
Â
* @package Stripe
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
9 |
Â
*/
|
10 |
Â
class Plan extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
-
* @param string $id The ID of the plan to retrieve.
|
14 |
-
* @param array|string|null $opts
|
15 |
-
*
|
16 |
-
* @return Plan
|
17 |
-
*/
|
18 |
-
public static function retrieve($id, $opts = null)
|
19 |
-
{
|
20 |
-
return self::_retrieve($id, $opts);
|
21 |
-
}
|
22 |
-
|
23 |
-
/**
|
24 |
-
* @param array|null $params
|
25 |
-
* @param array|string|null $opts
|
26 |
-
*
|
27 |
-
* @return Plan The created plan.
|
28 |
-
*/
|
29 |
-
public static function create($params = null, $opts = null)
|
30 |
-
{
|
31 |
-
return self::_create($params, $opts);
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @param string $id The ID of the plan to update.
|
36 |
-
* @param array|null $params
|
37 |
-
* @param array|string|null $options
|
38 |
-
*
|
39 |
-
* @return Plan The updated plan.
|
40 |
-
*/
|
41 |
-
public static function update($id, $params = null, $options = null)
|
42 |
-
{
|
43 |
-
return self::_update($id, $params, $options);
|
44 |
-
}
|
45 |
-
|
46 |
-
/**
|
47 |
-
* @param array|null $params
|
48 |
-
* @param array|string|null $opts
|
49 |
-
*
|
50 |
-
* @return Plan The deleted plan.
|
51 |
-
*/
|
52 |
-
public function delete($params = null, $opts = null)
|
53 |
-
{
|
54 |
-
return $this->_delete($params, $opts);
|
55 |
-
}
|
56 |
-
|
57 |
-
/**
|
58 |
-
* @param array|string|null $opts
|
59 |
-
*
|
60 |
-
* @return Plan The saved plan.
|
61 |
-
*/
|
62 |
-
public function save($opts = null)
|
63 |
-
{
|
64 |
-
return $this->_save($opts);
|
65 |
-
}
|
66 |
Â
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
*/
|
73 |
-
public static function all($params = null, $opts = null)
|
74 |
-
{
|
75 |
-
return self::_all($params, $opts);
|
76 |
-
}
|
77 |
Â
}
|
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;
|
36 |
+
use ApiOperations\Delete;
|
37 |
+
use ApiOperations\Retrieve;
|
38 |
+
use ApiOperations\Update;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
39 |
Â
}
|
lib/stripe-gateway/lib/Product.php
CHANGED
@@ -5,73 +5,42 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class Product
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class Product extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
-
* @param string $id The ID of the Product to retrieve.
|
14 |
-
* @param array|string|null $opts
|
15 |
-
*
|
16 |
-
* @return Product
|
17 |
-
*/
|
18 |
-
public static function retrieve($id, $opts = null)
|
19 |
-
{
|
20 |
-
return self::_retrieve($id, $opts);
|
21 |
-
}
|
22 |
-
|
23 |
-
/**
|
24 |
-
* @param array|null $params
|
25 |
-
* @param array|string|null $opts
|
26 |
-
*
|
27 |
-
* @return Product The created Product.
|
28 |
-
*/
|
29 |
-
public static function create($params = null, $opts = null)
|
30 |
-
{
|
31 |
-
return self::_create($params, $opts);
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @param string $id The ID of the product to update.
|
36 |
-
* @param array|null $params
|
37 |
-
* @param array|string|null $options
|
38 |
-
*
|
39 |
-
* @return Product The updated product.
|
40 |
-
*/
|
41 |
-
public static function update($id, $params = null, $options = null)
|
42 |
-
{
|
43 |
-
return self::_update($id, $params, $options);
|
44 |
-
}
|
45 |
Â
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
public function save($opts = null)
|
52 |
-
{
|
53 |
-
return $this->_save($opts);
|
54 |
-
}
|
55 |
-
|
56 |
-
/**
|
57 |
-
* @param array|null $params
|
58 |
-
* @param array|string|null $opts
|
59 |
-
*
|
60 |
-
* @return Collection of Products
|
61 |
-
*/
|
62 |
-
public static function all($params = null, $opts = null)
|
63 |
-
{
|
64 |
-
return self::_all($params, $opts);
|
65 |
-
}
|
66 |
Â
|
67 |
Â
/**
|
68 |
-
*
|
69 |
-
* @
|
70 |
-
*
|
71 |
-
* @return Product The deleted product.
|
72 |
Â
*/
|
73 |
-
|
74 |
-
|
75 |
-
return $this->_delete($params, $opts);
|
76 |
-
}
|
77 |
Â
}
|
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;
|
36 |
+
use ApiOperations\Delete;
|
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 |
Â
}
|
lib/stripe-gateway/lib/Radar/EarlyFraudWarning.php
ADDED
@@ -0,0 +1,36 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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 |
+
}
|
lib/stripe-gateway/lib/Radar/ValueList.php
ADDED
@@ -0,0 +1,32 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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;
|
29 |
+
use \Stripe\ApiOperations\Delete;
|
30 |
+
use \Stripe\ApiOperations\Retrieve;
|
31 |
+
use \Stripe\ApiOperations\Update;
|
32 |
+
}
|
lib/stripe-gateway/lib/Radar/ValueListItem.php
ADDED
@@ -0,0 +1,26 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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;
|
24 |
+
use \Stripe\ApiOperations\Delete;
|
25 |
+
use \Stripe\ApiOperations\Retrieve;
|
26 |
+
}
|
lib/stripe-gateway/lib/Recipient.php
CHANGED
@@ -6,74 +6,31 @@ namespace Stripe;
|
|
6 |
Â
* Class Recipient
|
7 |
Â
*
|
8 |
Â
* @package Stripe
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
9 |
Â
*/
|
10 |
Â
class Recipient extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
-
* @param string $id The ID of the recipient to retrieve.
|
14 |
-
* @param array|string|null $opts
|
15 |
-
*
|
16 |
-
* @return Recipient
|
17 |
-
*/
|
18 |
-
public static function retrieve($id, $opts = null)
|
19 |
-
{
|
20 |
-
return self::_retrieve($id, $opts);
|
21 |
-
}
|
22 |
-
|
23 |
-
/**
|
24 |
-
* @param array|null $params
|
25 |
-
* @param array|string|null $opts
|
26 |
-
*
|
27 |
-
* @return Collection of Recipients
|
28 |
-
*/
|
29 |
-
public static function all($params = null, $opts = null)
|
30 |
-
{
|
31 |
-
return self::_all($params, $opts);
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @param array|null $params
|
36 |
-
* @param array|string|null $opts
|
37 |
-
*
|
38 |
-
* @return Recipient The created recipient.
|
39 |
-
*/
|
40 |
-
public static function create($params = null, $opts = null)
|
41 |
-
{
|
42 |
-
return self::_create($params, $opts);
|
43 |
-
}
|
44 |
-
|
45 |
-
/**
|
46 |
-
* @param string $id The ID of the recipient to update.
|
47 |
-
* @param array|null $params
|
48 |
-
* @param array|string|null $options
|
49 |
-
*
|
50 |
-
* @return Recipient The updated recipient.
|
51 |
-
*/
|
52 |
-
public static function update($id, $params = null, $options = null)
|
53 |
-
{
|
54 |
-
return self::_update($id, $params, $options);
|
55 |
-
}
|
56 |
-
|
57 |
-
/**
|
58 |
-
* @param array|string|null $opts
|
59 |
-
*
|
60 |
-
* @return Recipient The saved recipient.
|
61 |
-
*/
|
62 |
-
public function save($opts = null)
|
63 |
-
{
|
64 |
-
return $this->_save($opts);
|
65 |
-
}
|
66 |
-
|
67 |
-
/**
|
68 |
-
* @param array|null $params
|
69 |
-
*
|
70 |
-
* @return Recipient The deleted recipient.
|
71 |
-
*/
|
72 |
-
public function delete($params = null, $opts = null)
|
73 |
-
{
|
74 |
-
return $this->_delete($params, $opts);
|
75 |
-
}
|
76 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
77 |
Â
|
78 |
Â
/**
|
79 |
Â
* @param array|null $params
|
@@ -82,9 +39,7 @@ class Recipient extends ApiResource
|
|
82 |
Â
*/
|
83 |
Â
public function transfers($params = null)
|
84 |
Â
{
|
85 |
-
|
86 |
-
$params = array();
|
87 |
-
}
|
88 |
Â
$params['recipient'] = $this->id;
|
89 |
Â
$transfers = Transfer::all($params, $this->_opts);
|
90 |
Â
return $transfers;
|
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
|
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;
|
lib/stripe-gateway/lib/RecipientTransfer.php
ADDED
@@ -0,0 +1,38 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class RecipientTransfer
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $amount
|
11 |
+
* @property int $amount_reversed
|
12 |
+
* @property string $balance_transaction
|
13 |
+
* @property string $bank_account
|
14 |
+
* @property string $card
|
15 |
+
* @property int $created
|
16 |
+
* @property string $currency
|
17 |
+
* @property int $date
|
18 |
+
* @property string $description
|
19 |
+
* @property string $destination
|
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 |
+
}
|
lib/stripe-gateway/lib/Refund.php
CHANGED
@@ -8,72 +8,53 @@ namespace Stripe;
|
|
8 |
Â
* @property string $id
|
9 |
Â
* @property string $object
|
10 |
Â
* @property int $amount
|
11 |
-
* @property
|
12 |
Â
* @property string $charge
|
13 |
Â
* @property int $created
|
14 |
Â
* @property string $currency
|
15 |
-
* @property
|
16 |
-
* @property
|
17 |
-
* @property
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
18 |
Â
* @property string $status
|
Â
|
|
19 |
Â
*
|
20 |
Â
* @package Stripe
|
21 |
Â
*/
|
22 |
Â
class Refund extends ApiResource
|
23 |
Â
{
|
Â
|
|
24 |
Â
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
* @return Refund
|
30 |
-
*/
|
31 |
-
public static function retrieve($id, $options = null)
|
32 |
-
{
|
33 |
-
return self::_retrieve($id, $options);
|
34 |
-
}
|
35 |
-
|
36 |
-
/**
|
37 |
-
* @param string $id The ID of the refund to update.
|
38 |
-
* @param array|null $params
|
39 |
-
* @param array|string|null $options
|
40 |
-
*
|
41 |
-
* @return Refund The updated refund.
|
42 |
-
*/
|
43 |
-
public static function update($id, $params = null, $options = null)
|
44 |
-
{
|
45 |
-
return self::_update($id, $params, $options);
|
46 |
-
}
|
47 |
Â
|
48 |
Â
/**
|
49 |
-
*
|
50 |
-
* @
|
51 |
-
*
|
52 |
-
* @return Collection of Refunds
|
53 |
Â
*/
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
}
|
58 |
Â
|
59 |
Â
/**
|
60 |
-
*
|
61 |
-
* @
|
62 |
-
*
|
63 |
-
* @return Refund The created refund.
|
64 |
Â
*/
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
}
|
69 |
Â
|
70 |
Â
/**
|
71 |
-
*
|
72 |
-
*
|
73 |
-
* @return Refund The saved refund.
|
74 |
Â
*/
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
Â
}
|
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 |
Â
}
|
lib/stripe-gateway/lib/Reporting/ReportRun.php
ADDED
@@ -0,0 +1,28 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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;
|
27 |
+
use \Stripe\ApiOperations\Retrieve;
|
28 |
+
}
|
lib/stripe-gateway/lib/Reporting/ReportType.php
ADDED
@@ -0,0 +1,24 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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;
|
24 |
+
}
|
lib/stripe-gateway/lib/RequestTelemetry.php
ADDED
@@ -0,0 +1,27 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class RequestTelemetry
|
7 |
+
*
|
8 |
+
* Tracks client request telemetry
|
9 |
+
* @package Stripe
|
10 |
+
*/
|
11 |
+
class RequestTelemetry
|
12 |
+
{
|
13 |
+
public $requestId;
|
14 |
+
public $requestDuration;
|
15 |
+
|
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 |
+
{
|
24 |
+
$this->requestId = $requestId;
|
25 |
+
$this->requestDuration = $requestDuration;
|
26 |
+
}
|
27 |
+
}
|
lib/stripe-gateway/lib/Review.php
ADDED
@@ -0,0 +1,57 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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;
|
31 |
+
|
32 |
+
/**
|
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 |
+
}
|
lib/stripe-gateway/lib/SKU.php
CHANGED
@@ -5,73 +5,30 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class SKU
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class SKU extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
-
* @param string $id The ID of the SKU to retrieve.
|
14 |
-
* @param array|string|null $opts
|
15 |
-
*
|
16 |
-
* @return SKU
|
17 |
-
*/
|
18 |
-
public static function retrieve($id, $opts = null)
|
19 |
-
{
|
20 |
-
return self::_retrieve($id, $opts);
|
21 |
-
}
|
22 |
-
|
23 |
-
/**
|
24 |
-
* @param array|null $params
|
25 |
-
* @param array|string|null $opts
|
26 |
-
*
|
27 |
-
* @return SKU The created SKU.
|
28 |
-
*/
|
29 |
-
public static function create($params = null, $opts = null)
|
30 |
-
{
|
31 |
-
return self::_create($params, $opts);
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @param string $id The ID of the SKU to update.
|
36 |
-
* @param array|null $params
|
37 |
-
* @param array|string|null $options
|
38 |
-
*
|
39 |
-
* @return SKU The updated SKU.
|
40 |
-
*/
|
41 |
-
public static function update($id, $params = null, $options = null)
|
42 |
-
{
|
43 |
-
return self::_update($id, $params, $options);
|
44 |
-
}
|
45 |
-
|
46 |
-
/**
|
47 |
-
* @param array|string|null $opts
|
48 |
-
*
|
49 |
-
* @return SKU The saved SKU.
|
50 |
-
*/
|
51 |
-
public function save($opts = null)
|
52 |
-
{
|
53 |
-
return $this->_save($opts);
|
54 |
-
}
|
55 |
-
|
56 |
-
/**
|
57 |
-
* @param array|null $params
|
58 |
-
* @param array|string|null $opts
|
59 |
-
*
|
60 |
-
* @return Collection of SKUs
|
61 |
-
*/
|
62 |
-
public static function all($params = null, $opts = null)
|
63 |
-
{
|
64 |
-
return self::_all($params, $opts);
|
65 |
-
}
|
66 |
Â
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
*/
|
73 |
-
public function delete($params = null, $opts = null)
|
74 |
-
{
|
75 |
-
return $this->_delete($params, $opts);
|
76 |
-
}
|
77 |
Â
}
|
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;
|
31 |
+
use ApiOperations\Delete;
|
32 |
+
use ApiOperations\Retrieve;
|
33 |
+
use ApiOperations\Update;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
34 |
Â
}
|
lib/stripe-gateway/lib/SetupIntent.php
ADDED
@@ -0,0 +1,74 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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 |
+
}
|
lib/stripe-gateway/lib/Sigma/ScheduledQueryRun.php
ADDED
@@ -0,0 +1,33 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
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 |
+
}
|
lib/stripe-gateway/lib/SingletonApiResource.php
CHANGED
@@ -22,7 +22,9 @@ abstract class SingletonApiResource extends ApiResource
|
|
22 |
Â
*/
|
23 |
Â
public static function classUrl()
|
24 |
Â
{
|
25 |
-
|
Â
|
|
Â
|
|
26 |
Â
return "/v1/${base}";
|
27 |
Â
}
|
28 |
Â
|
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 |
Â
|
lib/stripe-gateway/lib/Source.php
CHANGED
@@ -5,40 +5,149 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class Source
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class Source extends ApiResource
|
11 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
12 |
Â
/**
|
13 |
-
* @param
|
14 |
-
* @param array|string|null $
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
15 |
Â
*
|
16 |
-
* @
|
17 |
Â
*/
|
18 |
-
public
|
19 |
Â
{
|
20 |
-
|
21 |
Â
}
|
22 |
Â
|
23 |
Â
/**
|
24 |
Â
* @param array|null $params
|
25 |
-
* @param array|string|null $
|
26 |
Â
*
|
27 |
-
* @return Collection of
|
28 |
Â
*/
|
29 |
-
public
|
30 |
Â
{
|
31 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
32 |
Â
}
|
33 |
Â
|
34 |
Â
/**
|
35 |
Â
* @param array|null $params
|
36 |
-
* @param array|string|null $
|
37 |
Â
*
|
38 |
-
* @return Source The
|
39 |
Â
*/
|
40 |
-
public
|
41 |
Â
{
|
42 |
-
|
Â
|
|
Â
|
|
Â
|
|
43 |
Â
}
|
44 |
Â
}
|
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 |
+
}
|
110 |
+
}
|
111 |
+
|
112 |
+
/**
|
113 |
+
* @param array|null $params
|
114 |
+
* @param array|string|null $options
|
115 |
+
*
|
116 |
+
* @return Source The detached source.
|
117 |
Â
*
|
118 |
+
* @deprecated Use the `detach` method instead.
|
119 |
Â
*/
|
120 |
+
public function delete($params = null, $options = null)
|
121 |
Â
{
|
122 |
+
$this->detach($params, $options);
|
123 |
Â
}
|
124 |
Â
|
125 |
Â
/**
|
126 |
Â
* @param array|null $params
|
127 |
+
* @param array|string|null $options
|
128 |
Â
*
|
129 |
+
* @return Collection The list of source transactions.
|
130 |
Â
*/
|
131 |
+
public function sourceTransactions($params = null, $options = null)
|
132 |
Â
{
|
133 |
+
$url = $this->instanceUrl() . '/source_transactions';
|
134 |
+
list($response, $opts) = $this->_request('get', $url, $params, $options);
|
135 |
+
$obj = Util\Util::convertToStripeObject($response, $opts);
|
136 |
+
$obj->setLastResponse($response);
|
137 |
+
return $obj;
|
138 |
Â
}
|
139 |
Â
|
140 |
Â
/**
|
141 |
Â
* @param array|null $params
|
142 |
+
* @param array|string|null $options
|
143 |
Â
*
|
144 |
+
* @return Source The verified source.
|
145 |
Â
*/
|
146 |
+
public function verify($params = null, $options = null)
|
147 |
Â
{
|
148 |
+
$url = $this->instanceUrl() . '/verify';
|
149 |
+
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
150 |
+
$this->refreshFrom($response, $opts);
|
151 |
+
return $this;
|
152 |
Â
}
|
153 |
Â
}
|
lib/stripe-gateway/lib/SourceTransaction.php
ADDED
@@ -0,0 +1,22 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class SourceTransaction
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $amount
|
11 |
+
* @property int $created
|
12 |
+
* @property string $customer_data
|
13 |
+
* @property string $currency
|
14 |
+
* @property string $type
|
15 |
+
* @property mixed $ach_credit_transfer
|
16 |
+
*
|
17 |
+
* @package Stripe
|
18 |
+
*/
|
19 |
+
class SourceTransaction extends ApiResource
|
20 |
+
{
|
21 |
+
const OBJECT_NAME = "source_transaction";
|
22 |
+
}
|
lib/stripe-gateway/lib/Stripe.php
CHANGED
@@ -12,11 +12,17 @@ class Stripe
|
|
12 |
Â
// @var string The Stripe API key to be used for requests.
|
13 |
Â
public static $apiKey;
|
14 |
Â
|
Â
|
|
Â
|
|
Â
|
|
15 |
Â
// @var string The base URL for the Stripe API.
|
16 |
Â
public static $apiBase = 'https://api.stripe.com';
|
17 |
Â
|
Â
|
|
Â
|
|
Â
|
|
18 |
Â
// @var string The base URL for the Stripe API uploads endpoint.
|
19 |
-
public static $apiUploadBase = 'https://
|
20 |
Â
|
21 |
Â
// @var string|null The version of the Stripe API to use for requests.
|
22 |
Â
public static $apiVersion = null;
|
@@ -24,10 +30,32 @@ class Stripe
|
|
24 |
Â
// @var string|null The account ID for connected accounts requests.
|
25 |
Â
public static $accountId = null;
|
26 |
Â
|
Â
|
|
Â
|
|
Â
|
|
27 |
Â
// @var boolean Defaults to true.
|
28 |
Â
public static $verifySslCerts = true;
|
29 |
Â
|
30 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
31 |
Â
|
32 |
Â
/**
|
33 |
Â
* @return string The API key used for requests.
|
@@ -37,6 +65,35 @@ class Stripe
|
|
37 |
Â
return self::$apiKey;
|
38 |
Â
}
|
39 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
40 |
Â
/**
|
41 |
Â
* Sets the API key to be used for requests.
|
42 |
Â
*
|
@@ -47,6 +104,16 @@ class Stripe
|
|
47 |
Â
self::$apiKey = $apiKey;
|
48 |
Â
}
|
49 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
50 |
Â
/**
|
51 |
Â
* @return string The API version used for requests. null if we're using the
|
52 |
Â
* latest version.
|
@@ -64,6 +131,30 @@ class Stripe
|
|
64 |
Â
self::$apiVersion = $apiVersion;
|
65 |
Â
}
|
66 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
67 |
Â
/**
|
68 |
Â
* @return boolean
|
69 |
Â
*/
|
@@ -97,4 +188,78 @@ class Stripe
|
|
97 |
Â
{
|
98 |
Â
self::$accountId = $accountId;
|
99 |
Â
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
100 |
Â
}
|
12 |
Â
// @var string The Stripe API key to be used for requests.
|
13 |
Â
public static $apiKey;
|
14 |
Â
|
15 |
+
// @var string The Stripe client_id to be used for Connect requests.
|
16 |
+
public static $clientId;
|
17 |
+
|
18 |
Â
// @var string The base URL for the Stripe API.
|
19 |
Â
public static $apiBase = 'https://api.stripe.com';
|
20 |
Â
|
21 |
+
// @var string The base URL for the OAuth API.
|
22 |
+
public static $connectBase = 'https://connect.stripe.com';
|
23 |
+
|
24 |
Â
// @var string The base URL for the Stripe API uploads endpoint.
|
25 |
+
public static $apiUploadBase = 'https://files.stripe.com';
|
26 |
Â
|
27 |
Â
// @var string|null The version of the Stripe API to use for requests.
|
28 |
Â
public static $apiVersion = null;
|
30 |
Â
// @var string|null The account ID for connected accounts requests.
|
31 |
Â
public static $accountId = null;
|
32 |
Â
|
33 |
+
// @var string Path to the CA bundle used to verify SSL certificates
|
34 |
+
public static $caBundlePath = null;
|
35 |
+
|
36 |
Â
// @var boolean Defaults to true.
|
37 |
Â
public static $verifySslCerts = true;
|
38 |
Â
|
39 |
+
// @var array The application's information (name, version, URL)
|
40 |
+
public static $appInfo = null;
|
41 |
+
|
42 |
+
// @var Util\LoggerInterface|null The logger to which the library will
|
43 |
+
// produce messages.
|
44 |
+
public static $logger = null;
|
45 |
+
|
46 |
+
// @var int Maximum number of request retries
|
47 |
+
public static $maxNetworkRetries = 0;
|
48 |
+
|
49 |
+
// @var boolean Whether client telemetry is enabled. Defaults to true.
|
50 |
+
public static $enableTelemetry = true;
|
51 |
+
|
52 |
+
// @var float Maximum delay between retries, in seconds
|
53 |
+
private static $maxNetworkRetryDelay = 2.0;
|
54 |
+
|
55 |
+
// @var float Initial delay between retries, in seconds
|
56 |
+
private static $initialNetworkRetryDelay = 0.5;
|
57 |
+
|
58 |
+
const VERSION = '6.43.1';
|
59 |
Â
|
60 |
Â
/**
|
61 |
Â
* @return string The API key used for requests.
|
65 |
Â
return self::$apiKey;
|
66 |
Â
}
|
67 |
Â
|
68 |
+
/**
|
69 |
+
* @return string The client_id used for Connect requests.
|
70 |
+
*/
|
71 |
+
public static function getClientId()
|
72 |
+
{
|
73 |
+
return self::$clientId;
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* @return Util\LoggerInterface The logger to which the library will
|
78 |
+
* produce messages.
|
79 |
+
*/
|
80 |
+
public static function getLogger()
|
81 |
+
{
|
82 |
+
if (self::$logger == null) {
|
83 |
+
return new Util\DefaultLogger();
|
84 |
+
}
|
85 |
+
return self::$logger;
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* @param Util\LoggerInterface $logger The logger to which the library
|
90 |
+
* will produce messages.
|
91 |
+
*/
|
92 |
+
public static function setLogger($logger)
|
93 |
+
{
|
94 |
+
self::$logger = $logger;
|
95 |
+
}
|
96 |
+
|
97 |
Â
/**
|
98 |
Â
* Sets the API key to be used for requests.
|
99 |
Â
*
|
104 |
Â
self::$apiKey = $apiKey;
|
105 |
Â
}
|
106 |
Â
|
107 |
+
/**
|
108 |
+
* Sets the client_id to be used for Connect requests.
|
109 |
+
*
|
110 |
+
* @param string $clientId
|
111 |
+
*/
|
112 |
+
public static function setClientId($clientId)
|
113 |
+
{
|
114 |
+
self::$clientId = $clientId;
|
115 |
+
}
|
116 |
+
|
117 |
Â
/**
|
118 |
Â
* @return string The API version used for requests. null if we're using the
|
119 |
Â
* latest version.
|
131 |
Â
self::$apiVersion = $apiVersion;
|
132 |
Â
}
|
133 |
Â
|
134 |
+
/**
|
135 |
+
* @return string
|
136 |
+
*/
|
137 |
+
private static function getDefaultCABundlePath()
|
138 |
+
{
|
139 |
+
return realpath(dirname(__FILE__) . '/../data/ca-certificates.crt');
|
140 |
+
}
|
141 |
+
|
142 |
+
/**
|
143 |
+
* @return string
|
144 |
+
*/
|
145 |
+
public static function getCABundlePath()
|
146 |
+
{
|
147 |
+
return self::$caBundlePath ?: self::getDefaultCABundlePath();
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
* @param string $caBundlePath
|
152 |
+
*/
|
153 |
+
public static function setCABundlePath($caBundlePath)
|
154 |
+
{
|
155 |
+
self::$caBundlePath = $caBundlePath;
|
156 |
+
}
|
157 |
+
|
158 |
Â
/**
|
159 |
Â
* @return boolean
|
160 |
Â
*/
|
188 |
Â
{
|
189 |
Â
self::$accountId = $accountId;
|
190 |
Â
}
|
191 |
+
|
192 |
+
/**
|
193 |
+
* @return array | null The application's information
|
194 |
+
*/
|
195 |
+
public static function getAppInfo()
|
196 |
+
{
|
197 |
+
return self::$appInfo;
|
198 |
+
}
|
199 |
+
|
200 |
+
/**
|
201 |
+
* @param string $appName The application's name
|
202 |
+
* @param string $appVersion The application's version
|
203 |
+
* @param string $appUrl The application's URL
|
204 |
+
*/
|
205 |
+
public static function setAppInfo($appName, $appVersion = null, $appUrl = null, $appPartnerId = null)
|
206 |
+
{
|
207 |
+
self::$appInfo = self::$appInfo ?: [];
|
208 |
+
self::$appInfo['name'] = $appName;
|
209 |
+
self::$appInfo['partner_id'] = $appPartnerId;
|
210 |
+
self::$appInfo['url'] = $appUrl;
|
211 |
+
self::$appInfo['version'] = $appVersion;
|
212 |
+
}
|
213 |
+
|
214 |
+
/**
|
215 |
+
* @return int Maximum number of request retries
|
216 |
+
*/
|
217 |
+
public static function getMaxNetworkRetries()
|
218 |
+
{
|
219 |
+
return self::$maxNetworkRetries;
|
220 |
+
}
|
221 |
+
|
222 |
+
/**
|
223 |
+
* @param int $maxNetworkRetries Maximum number of request retries
|
224 |
+
*/
|
225 |
+
public static function setMaxNetworkRetries($maxNetworkRetries)
|
226 |
+
{
|
227 |
+
self::$maxNetworkRetries = $maxNetworkRetries;
|
228 |
+
}
|
229 |
+
|
230 |
+
/**
|
231 |
+
* @return float Maximum delay between retries, in seconds
|
232 |
+
*/
|
233 |
+
public static function getMaxNetworkRetryDelay()
|
234 |
+
{
|
235 |
+
return self::$maxNetworkRetryDelay;
|
236 |
+
}
|
237 |
+
|
238 |
+
/**
|
239 |
+
* @return float Initial delay between retries, in seconds
|
240 |
+
*/
|
241 |
+
public static function getInitialNetworkRetryDelay()
|
242 |
+
{
|
243 |
+
return self::$initialNetworkRetryDelay;
|
244 |
+
}
|
245 |
+
|
246 |
+
/**
|
247 |
+
* @return bool Whether client telemetry is enabled
|
248 |
+
*/
|
249 |
+
public static function getEnableTelemetry()
|
250 |
+
{
|
251 |
+
return self::$enableTelemetry;
|
252 |
+
}
|
253 |
+
|
254 |
+
/**
|
255 |
+
* @param bool $enableTelemetry Enables client telemetry.
|
256 |
+
*
|
257 |
+
* Client telemetry enables timing and request metrics to be sent back to Stripe as an HTTP Header
|
258 |
+
* with the current request. This enables Stripe to do latency and metrics analysis without adding extra
|
259 |
+
* overhead (such as extra network calls) on the client.
|
260 |
+
*/
|
261 |
+
public static function setEnableTelemetry($enableTelemetry)
|
262 |
+
{
|
263 |
+
self::$enableTelemetry = $enableTelemetry;
|
264 |
+
}
|
265 |
Â
}
|
lib/stripe-gateway/lib/StripeObject.php
CHANGED
@@ -2,126 +2,158 @@
|
|
2 |
Â
|
3 |
Â
namespace Stripe;
|
4 |
Â
|
5 |
-
use ArrayAccess;
|
6 |
-
use InvalidArgumentException;
|
7 |
-
|
8 |
Â
/**
|
9 |
Â
* Class StripeObject
|
10 |
Â
*
|
11 |
Â
* @package Stripe
|
12 |
Â
*/
|
13 |
-
class StripeObject implements ArrayAccess, JsonSerializable
|
14 |
Â
{
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
* the parent class's URL (e.g. metadata).
|
23 |
-
*/
|
24 |
-
public static $nestedUpdatableAttributes;
|
25 |
-
|
26 |
-
public static function init()
|
27 |
-
{
|
28 |
-
self::$permanentAttributes = new Util\Set(array('_opts', 'id'));
|
29 |
-
self::$nestedUpdatableAttributes = new Util\Set(array(
|
30 |
-
'metadata', 'legal_entity', 'address', 'dob', 'transfer_schedule', 'verification',
|
31 |
-
'tos_acceptance', 'personal_address',
|
32 |
-
// will make the array into an AttachedObject: weird, but works for now
|
33 |
-
'additional_owners', 0, 1, 2, 3, 4, // Max 3, but leave the 4th so errors work properly
|
34 |
-
'inventory'
|
35 |
-
));
|
36 |
-
}
|
37 |
Â
|
38 |
Â
/**
|
39 |
-
* @return
|
Â
|
|
40 |
Â
*/
|
41 |
-
public function
|
42 |
Â
{
|
43 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
44 |
Â
}
|
45 |
Â
|
46 |
Â
/**
|
47 |
-
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
48 |
Â
*
|
49 |
-
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
50 |
Â
*/
|
51 |
-
public function
|
52 |
Â
{
|
53 |
-
$
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
54 |
Â
}
|
55 |
Â
|
56 |
-
protected $_opts;
|
57 |
-
protected $_values;
|
58 |
-
protected $_unsavedValues;
|
59 |
-
protected $_transientValues;
|
60 |
-
protected $_retrieveOptions;
|
61 |
-
protected $_lastResponse;
|
62 |
-
|
63 |
Â
public function __construct($id = null, $opts = null)
|
64 |
Â
{
|
65 |
-
$this->
|
66 |
-
$this->
|
Â
|
|
Â
|
|
67 |
Â
$this->_unsavedValues = new Util\Set();
|
68 |
Â
$this->_transientValues = new Util\Set();
|
69 |
-
|
70 |
-
$this->_retrieveOptions = array();
|
71 |
-
if (is_array($id)) {
|
72 |
-
foreach ($id as $key => $value) {
|
73 |
-
if ($key != 'id') {
|
74 |
-
$this->_retrieveOptions[$key] = $value;
|
75 |
-
}
|
76 |
-
}
|
77 |
-
$id = $id['id'];
|
78 |
-
}
|
79 |
-
|
80 |
Â
if ($id !== null) {
|
81 |
-
$this->id = $id;
|
82 |
Â
}
|
83 |
Â
}
|
84 |
Â
|
85 |
Â
// Standard accessor magic methods
|
86 |
Â
public function __set($k, $v)
|
87 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
88 |
Â
if ($v === "") {
|
89 |
-
throw new InvalidArgumentException(
|
90 |
Â
'You cannot set \''.$k.'\'to an empty string. '
|
91 |
Â
.'We interpret empty strings as NULL in requests. '
|
92 |
Â
.'You may set obj->'.$k.' = NULL to delete the property'
|
93 |
Â
);
|
94 |
Â
}
|
95 |
Â
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
} else {
|
100 |
-
// TODO: may want to clear from $_transientValues (Won't be user-visible).
|
101 |
-
$this->_values[$k] = $v;
|
102 |
-
}
|
103 |
-
if (!self::$permanentAttributes->includes($k)) {
|
104 |
-
$this->_unsavedValues->add($k);
|
105 |
-
}
|
106 |
Â
}
|
107 |
Â
|
108 |
Â
public function __isset($k)
|
109 |
Â
{
|
110 |
Â
return isset($this->_values[$k]);
|
111 |
Â
}
|
Â
|
|
112 |
Â
public function __unset($k)
|
113 |
Â
{
|
114 |
Â
unset($this->_values[$k]);
|
115 |
Â
$this->_transientValues->add($k);
|
116 |
Â
$this->_unsavedValues->discard($k);
|
117 |
Â
}
|
Â
|
|
118 |
Â
public function &__get($k)
|
119 |
Â
{
|
120 |
Â
// function should return a reference, using $nullval to return a reference to null
|
121 |
Â
$nullval = null;
|
122 |
Â
if (!empty($this->_values) && array_key_exists($k, $this->_values)) {
|
123 |
Â
return $this->_values[$k];
|
124 |
-
}
|
125 |
Â
$class = get_class($this);
|
126 |
Â
$attrs = join(', ', array_keys($this->_values));
|
127 |
Â
$message = "Stripe Notice: Undefined property of $class instance: $k. "
|
@@ -130,15 +162,21 @@ class StripeObject implements ArrayAccess, JsonSerializable
|
|
130 |
Â
. "with the result returned by Stripe's API, "
|
131 |
Â
. "probably as a result of a save(). The attributes currently "
|
132 |
Â
. "available on this object are: $attrs";
|
133 |
-
|
134 |
Â
return $nullval;
|
135 |
Â
} else {
|
136 |
Â
$class = get_class($this);
|
137 |
-
|
138 |
Â
return $nullval;
|
139 |
Â
}
|
140 |
Â
}
|
141 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
142 |
Â
// ArrayAccess methods
|
143 |
Â
public function offsetSet($k, $v)
|
144 |
Â
{
|
@@ -154,25 +192,37 @@ class StripeObject implements ArrayAccess, JsonSerializable
|
|
154 |
Â
{
|
155 |
Â
unset($this->$k);
|
156 |
Â
}
|
Â
|
|
157 |
Â
public function offsetGet($k)
|
158 |
Â
{
|
159 |
Â
return array_key_exists($k, $this->_values) ? $this->_values[$k] : null;
|
160 |
Â
}
|
161 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
162 |
Â
public function keys()
|
163 |
Â
{
|
164 |
Â
return array_keys($this->_values);
|
165 |
Â
}
|
166 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
167 |
Â
/**
|
168 |
Â
* This unfortunately needs to be public to be used in Util\Util
|
169 |
Â
*
|
170 |
Â
* @param array $values
|
171 |
-
* @param array $opts
|
172 |
Â
*
|
173 |
-
* @return
|
174 |
Â
*/
|
175 |
-
public static function constructFrom($values, $opts)
|
176 |
Â
{
|
177 |
Â
$obj = new static(isset($values['id']) ? $values['id'] : null);
|
178 |
Â
$obj->refreshFrom($values, $opts);
|
@@ -183,16 +233,18 @@ class StripeObject implements ArrayAccess, JsonSerializable
|
|
183 |
Â
* Refreshes this object using the provided values.
|
184 |
Â
*
|
185 |
Â
* @param array $values
|
186 |
-
* @param array|Util\RequestOptions $opts
|
187 |
Â
* @param boolean $partial Defaults to false.
|
188 |
Â
*/
|
189 |
Â
public function refreshFrom($values, $opts, $partial = false)
|
190 |
Â
{
|
191 |
-
|
192 |
-
$opts = Util\RequestOptions::parse($opts);
|
193 |
-
}
|
194 |
Â
|
195 |
-
$this->
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
196 |
Â
|
197 |
Â
// Wipe old state before setting new. This is useful for e.g. updating a
|
198 |
Â
// customer, where there is no persistent card parameter. Mark those values
|
@@ -200,30 +252,43 @@ class StripeObject implements ArrayAccess, JsonSerializable
|
|
200 |
Â
if ($partial) {
|
201 |
Â
$removed = new Util\Set();
|
202 |
Â
} else {
|
203 |
-
$removed = array_diff(array_keys($this->_values), array_keys($values));
|
204 |
Â
}
|
205 |
Â
|
206 |
-
foreach ($removed as $k) {
|
207 |
-
if (self::$permanentAttributes->includes($k)) {
|
208 |
-
continue;
|
209 |
-
}
|
210 |
-
|
211 |
Â
unset($this->$k);
|
212 |
Â
}
|
213 |
Â
|
Â
|
|
214 |
Â
foreach ($values as $k => $v) {
|
215 |
-
|
216 |
-
|
217 |
-
|
Â
|
|
218 |
Â
|
219 |
-
|
220 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
221 |
Â
} else {
|
222 |
Â
$this->_values[$k] = Util\Util::convertToStripeObject($v, $opts);
|
223 |
Â
}
|
224 |
-
|
225 |
-
|
226 |
-
|
Â
|
|
227 |
Â
}
|
228 |
Â
}
|
229 |
Â
|
@@ -231,33 +296,107 @@ class StripeObject implements ArrayAccess, JsonSerializable
|
|
231 |
Â
* @return array A recursive mapping of attributes to values for this object,
|
232 |
Â
* including the proper value for deleted attributes.
|
233 |
Â
*/
|
234 |
-
public function serializeParameters()
|
235 |
Â
{
|
236 |
-
$
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
245 |
Â
}
|
246 |
Â
}
|
247 |
Â
|
248 |
-
//
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
256 |
Â
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
257 |
Â
}
|
Â
|
|
Â
|
|
Â
|
|
258 |
Â
}
|
259 |
-
|
260 |
-
return $params;
|
261 |
Â
}
|
262 |
Â
|
263 |
Â
public function jsonSerialize()
|
@@ -267,11 +406,7 @@ class StripeObject implements ArrayAccess, JsonSerializable
|
|
267 |
Â
|
268 |
Â
public function __toJSON()
|
269 |
Â
{
|
270 |
-
|
271 |
-
return json_encode($this->__toArray(true), JSON_PRETTY_PRINT);
|
272 |
-
} else {
|
273 |
-
return json_encode($this->__toArray(true));
|
274 |
-
}
|
275 |
Â
}
|
276 |
Â
|
277 |
Â
public function __toString()
|
@@ -288,6 +423,101 @@ class StripeObject implements ArrayAccess, JsonSerializable
|
|
288 |
Â
return $this->_values;
|
289 |
Â
}
|
290 |
Â
}
|
291 |
-
}
|
292 |
Â
|
293 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
2 |
Â
|
3 |
Â
namespace Stripe;
|
4 |
Â
|
Â
|
|
Â
|
|
Â
|
|
5 |
Â
/**
|
6 |
Â
* Class StripeObject
|
7 |
Â
*
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
+
class StripeObject implements \ArrayAccess, \Countable, \JsonSerializable
|
11 |
Â
{
|
12 |
+
protected $_opts;
|
13 |
+
protected $_originalValues;
|
14 |
+
protected $_values;
|
15 |
+
protected $_unsavedValues;
|
16 |
+
protected $_transientValues;
|
17 |
+
protected $_retrieveOptions;
|
18 |
+
protected $_lastResponse;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
19 |
Â
|
20 |
Â
/**
|
21 |
+
* @return Util\Set Attributes that should not be sent to the API because
|
22 |
+
* they're not updatable (e.g. ID).
|
23 |
Â
*/
|
24 |
+
public static function getPermanentAttributes()
|
25 |
Â
{
|
26 |
+
static $permanentAttributes = null;
|
27 |
+
if ($permanentAttributes === null) {
|
28 |
+
$permanentAttributes = new Util\Set([
|
29 |
+
'id',
|
30 |
+
]);
|
31 |
+
}
|
32 |
+
return $permanentAttributes;
|
33 |
Â
}
|
34 |
Â
|
35 |
Â
/**
|
36 |
+
* Additive objects are subobjects in the API that don't have the same
|
37 |
+
* semantics as most subobjects, which are fully replaced when they're set.
|
38 |
+
* This is best illustrated by example. The `source` parameter sent when
|
39 |
+
* updating a subscription is *not* additive; if we set it:
|
40 |
+
*
|
41 |
+
* source[object]=card&source[number]=123
|
42 |
+
*
|
43 |
+
* We expect the old `source` object to have been overwritten completely. If
|
44 |
+
* the previous source had an `address_state` key associated with it and we
|
45 |
+
* didn't send one this time, that value of `address_state` is gone.
|
46 |
Â
*
|
47 |
+
* By contrast, additive objects are those that will have new data added to
|
48 |
+
* them while keeping any existing data in place. The only known case of its
|
49 |
+
* use is for `metadata`, but it could in theory be more general. As an
|
50 |
+
* example, say we have a `metadata` object that looks like this on the
|
51 |
+
* server side:
|
52 |
+
*
|
53 |
+
* metadata = ["old" => "old_value"]
|
54 |
+
*
|
55 |
+
* If we update the object with `metadata[new]=new_value`, the server side
|
56 |
+
* object now has *both* fields:
|
57 |
+
*
|
58 |
+
* metadata = ["old" => "old_value", "new" => "new_value"]
|
59 |
+
*
|
60 |
+
* This is okay in itself because usually users will want to treat it as
|
61 |
+
* additive:
|
62 |
+
*
|
63 |
+
* $obj->metadata["new"] = "new_value";
|
64 |
+
* $obj->save();
|
65 |
+
*
|
66 |
+
* However, in other cases, they may want to replace the entire existing
|
67 |
+
* contents:
|
68 |
+
*
|
69 |
+
* $obj->metadata = ["new" => "new_value"];
|
70 |
+
* $obj->save();
|
71 |
+
*
|
72 |
+
* This is where things get a little bit tricky because in order to clear
|
73 |
+
* any old keys that may have existed, we actually have to send an explicit
|
74 |
+
* empty string to the server. So the operation above would have to send
|
75 |
+
* this form to get the intended behavior:
|
76 |
+
*
|
77 |
+
* metadata[old]=&metadata[new]=new_value
|
78 |
+
*
|
79 |
+
* This method allows us to track which parameters are considered additive,
|
80 |
+
* and lets us behave correctly where appropriate when serializing
|
81 |
+
* parameters to be sent.
|
82 |
+
*
|
83 |
+
* @return Util\Set Set of additive parameters
|
84 |
Â
*/
|
85 |
+
public static function getAdditiveParams()
|
86 |
Â
{
|
87 |
+
static $additiveParams = null;
|
88 |
+
if ($additiveParams === null) {
|
89 |
+
// Set `metadata` as additive so that when it's set directly we remember
|
90 |
+
// to clear keys that may have been previously set by sending empty
|
91 |
+
// values for them.
|
92 |
+
//
|
93 |
+
// It's possible that not every object has `metadata`, but having this
|
94 |
+
// option set when there is no `metadata` field is not harmful.
|
95 |
+
$additiveParams = new Util\Set([
|
96 |
+
'metadata',
|
97 |
+
]);
|
98 |
+
}
|
99 |
+
return $additiveParams;
|
100 |
Â
}
|
101 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
102 |
Â
public function __construct($id = null, $opts = null)
|
103 |
Â
{
|
104 |
+
list($id, $this->_retrieveOptions) = Util\Util::normalizeId($id);
|
105 |
+
$this->_opts = Util\RequestOptions::parse($opts);
|
106 |
+
$this->_originalValues = [];
|
107 |
+
$this->_values = [];
|
108 |
Â
$this->_unsavedValues = new Util\Set();
|
109 |
Â
$this->_transientValues = new Util\Set();
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
110 |
Â
if ($id !== null) {
|
111 |
+
$this->_values['id'] = $id;
|
112 |
Â
}
|
113 |
Â
}
|
114 |
Â
|
115 |
Â
// Standard accessor magic methods
|
116 |
Â
public function __set($k, $v)
|
117 |
Â
{
|
118 |
+
if (static::getPermanentAttributes()->includes($k)) {
|
119 |
+
throw new \InvalidArgumentException(
|
120 |
+
"Cannot set $k on this object. HINT: you can't set: " .
|
121 |
+
join(', ', static::getPermanentAttributes()->toArray())
|
122 |
+
);
|
123 |
+
}
|
124 |
+
|
125 |
Â
if ($v === "") {
|
126 |
+
throw new \InvalidArgumentException(
|
127 |
Â
'You cannot set \''.$k.'\'to an empty string. '
|
128 |
Â
.'We interpret empty strings as NULL in requests. '
|
129 |
Â
.'You may set obj->'.$k.' = NULL to delete the property'
|
130 |
Â
);
|
131 |
Â
}
|
132 |
Â
|
133 |
+
$this->_values[$k] = Util\Util::convertToStripeObject($v, $this->_opts);
|
134 |
+
$this->dirtyValue($this->_values[$k]);
|
135 |
+
$this->_unsavedValues->add($k);
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
136 |
Â
}
|
137 |
Â
|
138 |
Â
public function __isset($k)
|
139 |
Â
{
|
140 |
Â
return isset($this->_values[$k]);
|
141 |
Â
}
|
142 |
+
|
143 |
Â
public function __unset($k)
|
144 |
Â
{
|
145 |
Â
unset($this->_values[$k]);
|
146 |
Â
$this->_transientValues->add($k);
|
147 |
Â
$this->_unsavedValues->discard($k);
|
148 |
Â
}
|
149 |
+
|
150 |
Â
public function &__get($k)
|
151 |
Â
{
|
152 |
Â
// function should return a reference, using $nullval to return a reference to null
|
153 |
Â
$nullval = null;
|
154 |
Â
if (!empty($this->_values) && array_key_exists($k, $this->_values)) {
|
155 |
Â
return $this->_values[$k];
|
156 |
+
} elseif (!empty($this->_transientValues) && $this->_transientValues->includes($k)) {
|
157 |
Â
$class = get_class($this);
|
158 |
Â
$attrs = join(', ', array_keys($this->_values));
|
159 |
Â
$message = "Stripe Notice: Undefined property of $class instance: $k. "
|
162 |
Â
. "with the result returned by Stripe's API, "
|
163 |
Â
. "probably as a result of a save(). The attributes currently "
|
164 |
Â
. "available on this object are: $attrs";
|
165 |
+
Stripe::getLogger()->error($message);
|
166 |
Â
return $nullval;
|
167 |
Â
} else {
|
168 |
Â
$class = get_class($this);
|
169 |
+
Stripe::getLogger()->error("Stripe Notice: Undefined property of $class instance: $k");
|
170 |
Â
return $nullval;
|
171 |
Â
}
|
172 |
Â
}
|
173 |
Â
|
174 |
+
// Magic method for var_dump output. Only works with PHP >= 5.6
|
175 |
+
public function __debugInfo()
|
176 |
+
{
|
177 |
+
return $this->_values;
|
178 |
+
}
|
179 |
+
|
180 |
Â
// ArrayAccess methods
|
181 |
Â
public function offsetSet($k, $v)
|
182 |
Â
{
|
192 |
Â
{
|
193 |
Â
unset($this->$k);
|
194 |
Â
}
|
195 |
+
|
196 |
Â
public function offsetGet($k)
|
197 |
Â
{
|
198 |
Â
return array_key_exists($k, $this->_values) ? $this->_values[$k] : null;
|
199 |
Â
}
|
200 |
Â
|
201 |
+
// Countable method
|
202 |
+
public function count()
|
203 |
+
{
|
204 |
+
return count($this->_values);
|
205 |
+
}
|
206 |
+
|
207 |
Â
public function keys()
|
208 |
Â
{
|
209 |
Â
return array_keys($this->_values);
|
210 |
Â
}
|
211 |
Â
|
212 |
+
public function values()
|
213 |
+
{
|
214 |
+
return array_values($this->_values);
|
215 |
+
}
|
216 |
+
|
217 |
Â
/**
|
218 |
Â
* This unfortunately needs to be public to be used in Util\Util
|
219 |
Â
*
|
220 |
Â
* @param array $values
|
221 |
+
* @param null|string|array|Util\RequestOptions $opts
|
222 |
Â
*
|
223 |
+
* @return static The object constructed from the given values.
|
224 |
Â
*/
|
225 |
+
public static function constructFrom($values, $opts = null)
|
226 |
Â
{
|
227 |
Â
$obj = new static(isset($values['id']) ? $values['id'] : null);
|
228 |
Â
$obj->refreshFrom($values, $opts);
|
233 |
Â
* Refreshes this object using the provided values.
|
234 |
Â
*
|
235 |
Â
* @param array $values
|
236 |
+
* @param null|string|array|Util\RequestOptions $opts
|
237 |
Â
* @param boolean $partial Defaults to false.
|
238 |
Â
*/
|
239 |
Â
public function refreshFrom($values, $opts, $partial = false)
|
240 |
Â
{
|
241 |
+
$this->_opts = Util\RequestOptions::parse($opts);
|
Â
|
|
Â
|
|
242 |
Â
|
243 |
+
$this->_originalValues = self::deepCopy($values);
|
244 |
+
|
245 |
+
if ($values instanceof StripeObject) {
|
246 |
+
$values = $values->__toArray(true);
|
247 |
+
}
|
248 |
Â
|
249 |
Â
// Wipe old state before setting new. This is useful for e.g. updating a
|
250 |
Â
// customer, where there is no persistent card parameter. Mark those values
|
252 |
Â
if ($partial) {
|
253 |
Â
$removed = new Util\Set();
|
254 |
Â
} else {
|
255 |
+
$removed = new Util\Set(array_diff(array_keys($this->_values), array_keys($values)));
|
256 |
Â
}
|
257 |
Â
|
258 |
+
foreach ($removed->toArray() as $k) {
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
259 |
Â
unset($this->$k);
|
260 |
Â
}
|
261 |
Â
|
262 |
+
$this->updateAttributes($values, $opts, false);
|
263 |
Â
foreach ($values as $k => $v) {
|
264 |
+
$this->_transientValues->discard($k);
|
265 |
+
$this->_unsavedValues->discard($k);
|
266 |
+
}
|
267 |
+
}
|
268 |
Â
|
269 |
+
/**
|
270 |
+
* Mass assigns attributes on the model.
|
271 |
+
*
|
272 |
+
* @param array $values
|
273 |
+
* @param null|string|array|Util\RequestOptions $opts
|
274 |
+
* @param boolean $dirty Defaults to true.
|
275 |
+
*/
|
276 |
+
public function updateAttributes($values, $opts = null, $dirty = true)
|
277 |
+
{
|
278 |
+
foreach ($values as $k => $v) {
|
279 |
+
// Special-case metadata to always be cast as a StripeObject
|
280 |
+
// This is necessary in case metadata is empty, as PHP arrays do
|
281 |
+
// not differentiate between lists and hashes, and we consider
|
282 |
+
// empty arrays to be lists.
|
283 |
+
if (($k === "metadata") && (is_array($v))) {
|
284 |
+
$this->_values[$k] = StripeObject::constructFrom($v, $opts);
|
285 |
Â
} else {
|
286 |
Â
$this->_values[$k] = Util\Util::convertToStripeObject($v, $opts);
|
287 |
Â
}
|
288 |
+
if ($dirty) {
|
289 |
+
$this->dirtyValue($this->_values[$k]);
|
290 |
+
}
|
291 |
+
$this->_unsavedValues->add($k);
|
292 |
Â
}
|
293 |
Â
}
|
294 |
Â
|
296 |
Â
* @return array A recursive mapping of attributes to values for this object,
|
297 |
Â
* including the proper value for deleted attributes.
|
298 |
Â
*/
|
299 |
+
public function serializeParameters($force = false)
|
300 |
Â
{
|
301 |
+
$updateParams = [];
|
302 |
+
|
303 |
+
foreach ($this->_values as $k => $v) {
|
304 |
+
// There are a few reasons that we may want to add in a parameter for
|
305 |
+
// update:
|
306 |
+
//
|
307 |
+
// 1. The `$force` option has been set.
|
308 |
+
// 2. We know that it was modified.
|
309 |
+
// 3. Its value is a StripeObject. A StripeObject may contain modified
|
310 |
+
// values within in that its parent StripeObject doesn't know about.
|
311 |
+
//
|
312 |
+
$original = array_key_exists($k, $this->_originalValues) ? $this->_originalValues[$k] : null;
|
313 |
+
$unsaved = $this->_unsavedValues->includes($k);
|
314 |
+
if ($force || $unsaved || $v instanceof StripeObject) {
|
315 |
+
$updateParams[$k] = $this->serializeParamsValue(
|
316 |
+
$this->_values[$k],
|
317 |
+
$original,
|
318 |
+
$unsaved,
|
319 |
+
$force,
|
320 |
+
$k
|
321 |
+
);
|
322 |
Â
}
|
323 |
Â
}
|
324 |
Â
|
325 |
+
// a `null` that makes it out of `serializeParamsValue` signals an empty
|
326 |
+
// value that we shouldn't appear in the serialized form of the object
|
327 |
+
$updateParams = array_filter(
|
328 |
+
$updateParams,
|
329 |
+
function ($v) {
|
330 |
+
return $v !== null;
|
331 |
+
}
|
332 |
+
);
|
333 |
+
|
334 |
+
return $updateParams;
|
335 |
+
}
|
336 |
+
|
337 |
+
|
338 |
+
public function serializeParamsValue($value, $original, $unsaved, $force, $key = null)
|
339 |
+
{
|
340 |
+
// The logic here is that essentially any object embedded in another
|
341 |
+
// object that had a `type` is actually an API resource of a different
|
342 |
+
// type that's been included in the response. These other resources must
|
343 |
+
// be updated from their proper endpoints, and therefore they are not
|
344 |
+
// included when serializing even if they've been modified.
|
345 |
+
//
|
346 |
+
// There are _some_ known exceptions though.
|
347 |
+
//
|
348 |
+
// For example, if the value is unsaved (meaning the user has set it), and
|
349 |
+
// it looks like the API resource is persisted with an ID, then we include
|
350 |
+
// the object so that parameters are serialized with a reference to its
|
351 |
+
// ID.
|
352 |
+
//
|
353 |
+
// Another example is that on save API calls it's sometimes desirable to
|
354 |
+
// update a customer's default source by setting a new card (or other)
|
355 |
+
// object with `->source=` and then saving the customer. The
|
356 |
+
// `saveWithParent` flag to override the default behavior allows us to
|
357 |
+
// handle these exceptions.
|
358 |
+
//
|
359 |
+
// We throw an error if a property was set explicitly but we can't do
|
360 |
+
// anything with it because the integration is probably not working as the
|
361 |
+
// user intended it to.
|
362 |
+
if ($value === null) {
|
363 |
+
return "";
|
364 |
+
} elseif (($value instanceof APIResource) && (!$value->saveWithParent)) {
|
365 |
+
if (!$unsaved) {
|
366 |
+
return null;
|
367 |
+
} elseif (isset($value->id)) {
|
368 |
+
return $value;
|
369 |
+
} else {
|
370 |
+
throw new \InvalidArgumentException(
|
371 |
+
"Cannot save property `$key` containing an API resource of type " .
|
372 |
+
get_class($value) . ". It doesn't appear to be persisted and is " .
|
373 |
+
"not marked as `saveWithParent`."
|
374 |
+
);
|
375 |
+
}
|
376 |
+
} elseif (is_array($value)) {
|
377 |
+
if (Util\Util::isList($value)) {
|
378 |
+
// Sequential array, i.e. a list
|
379 |
+
$update = [];
|
380 |
+
foreach ($value as $v) {
|
381 |
+
array_push($update, $this->serializeParamsValue($v, null, true, $force));
|
382 |
+
}
|
383 |
+
// This prevents an array that's unchanged from being resent.
|
384 |
+
if ($update !== $this->serializeParamsValue($original, null, true, $force, $key)) {
|
385 |
+
return $update;
|
386 |
Â
}
|
387 |
+
} else {
|
388 |
+
// Associative array, i.e. a map
|
389 |
+
return Util\Util::convertToStripeObject($value, $this->_opts)->serializeParameters();
|
390 |
+
}
|
391 |
+
} elseif ($value instanceof StripeObject) {
|
392 |
+
$update = $value->serializeParameters($force);
|
393 |
+
if ($original && $unsaved && $key && static::getAdditiveParams()->includes($key)) {
|
394 |
+
$update = array_merge(self::emptyValues($original), $update);
|
395 |
Â
}
|
396 |
+
return $update;
|
397 |
+
} else {
|
398 |
+
return $value;
|
399 |
Â
}
|
Â
|
|
Â
|
|
400 |
Â
}
|
401 |
Â
|
402 |
Â
public function jsonSerialize()
|
406 |
Â
|
407 |
Â
public function __toJSON()
|
408 |
Â
{
|
409 |
+
return json_encode($this->__toArray(true), JSON_PRETTY_PRINT);
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
410 |
Â
}
|
411 |
Â
|
412 |
Â
public function __toString()
|
423 |
Â
return $this->_values;
|
424 |
Â
}
|
425 |
Â
}
|
Â
|
|
426 |
Â
|
427 |
+
/**
|
428 |
+
* Sets all keys within the StripeObject as unsaved so that they will be
|
429 |
+
* included with an update when `serializeParameters` is called. This
|
430 |
+
* method is also recursive, so any StripeObjects contained as values or
|
431 |
+
* which are values in a tenant array are also marked as dirty.
|
432 |
+
*/
|
433 |
+
public function dirty()
|
434 |
+
{
|
435 |
+
$this->_unsavedValues = new Util\Set(array_keys($this->_values));
|
436 |
+
foreach ($this->_values as $k => $v) {
|
437 |
+
$this->dirtyValue($v);
|
438 |
+
}
|
439 |
+
}
|
440 |
+
|
441 |
+
protected function dirtyValue($value)
|
442 |
+
{
|
443 |
+
if (is_array($value)) {
|
444 |
+
foreach ($value as $v) {
|
445 |
+
$this->dirtyValue($v);
|
446 |
+
}
|
447 |
+
} elseif ($value instanceof StripeObject) {
|
448 |
+
$value->dirty();
|
449 |
+
}
|
450 |
+
}
|
451 |
+
|
452 |
+
/**
|
453 |
+
* Produces a deep copy of the given object including support for arrays
|
454 |
+
* and StripeObjects.
|
455 |
+
*/
|
456 |
+
protected static function deepCopy($obj)
|
457 |
+
{
|
458 |
+
if (is_array($obj)) {
|
459 |
+
$copy = [];
|
460 |
+
foreach ($obj as $k => $v) {
|
461 |
+
$copy[$k] = self::deepCopy($v);
|
462 |
+
}
|
463 |
+
return $copy;
|
464 |
+
} elseif ($obj instanceof StripeObject) {
|
465 |
+
return $obj::constructFrom(
|
466 |
+
self::deepCopy($obj->_values),
|
467 |
+
clone $obj->_opts
|
468 |
+
);
|
469 |
+
} else {
|
470 |
+
return $obj;
|
471 |
+
}
|
472 |
+
}
|
473 |
+
|
474 |
+
/**
|
475 |
+
* Returns a hash of empty values for all the values that are in the given
|
476 |
+
* StripeObject.
|
477 |
+
*/
|
478 |
+
public static function emptyValues($obj)
|
479 |
+
{
|
480 |
+
if (is_array($obj)) {
|
481 |
+
$values = $obj;
|
482 |
+
} elseif ($obj instanceof StripeObject) {
|
483 |
+
$values = $obj->_values;
|
484 |
+
} else {
|
485 |
+
throw new \InvalidArgumentException(
|
486 |
+
"empty_values got got unexpected object type: " . get_class($obj)
|
487 |
+
);
|
488 |
+
}
|
489 |
+
$update = array_fill_keys(array_keys($values), "");
|
490 |
+
return $update;
|
491 |
+
}
|
492 |
+
|
493 |
+
/**
|
494 |
+
* @return object The last response from the Stripe API
|
495 |
+
*/
|
496 |
+
public function getLastResponse()
|
497 |
+
{
|
498 |
+
return $this->_lastResponse;
|
499 |
+
}
|
500 |
+
|
501 |
+
/**
|
502 |
+
* Sets the last response from the Stripe API
|
503 |
+
*
|
504 |
+
* @param ApiResponse $resp
|
505 |
+
* @return void
|
506 |
+
*/
|
507 |
+
public function setLastResponse($resp)
|
508 |
+
{
|
509 |
+
$this->_lastResponse = $resp;
|
510 |
+
}
|
511 |
+
|
512 |
+
/**
|
513 |
+
* Indicates whether or not the resource has been deleted on the server.
|
514 |
+
* Note that some, but not all, resources can indicate whether they have
|
515 |
+
* been deleted.
|
516 |
+
*
|
517 |
+
* @return bool Whether the resource is deleted.
|
518 |
+
*/
|
519 |
+
public function isDeleted()
|
520 |
+
{
|
521 |
+
return isset($this->_values['deleted']) ? $this->_values['deleted'] : false;
|
522 |
+
}
|
523 |
+
}
|
lib/stripe-gateway/lib/Subscription.php
CHANGED
@@ -5,64 +5,76 @@ namespace Stripe;
|
|
5 |
Â
/**
|
6 |
Â
* Class Subscription
|
7 |
Â
*
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
8 |
Â
* @package Stripe
|
9 |
Â
*/
|
10 |
Â
class Subscription extends ApiResource
|
11 |
Â
{
|
12 |
-
|
13 |
-
* These constants are possible representations of the status field.
|
14 |
-
*
|
15 |
-
* @link https://stripe.com/docs/api#subscription_object-status
|
16 |
-
*/
|
17 |
-
const STATUS_ACTIVE = 'active';
|
18 |
-
const STATUS_CANCELED = 'canceled';
|
19 |
-
const STATUS_PAST_DUE = 'past_due';
|
20 |
-
const STATUS_TRIALING = 'trialing';
|
21 |
-
const STATUS_UNPAID = 'unpaid';
|
22 |
Â
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
* @return Subscription
|
28 |
-
*/
|
29 |
-
public static function retrieve($id, $opts = null)
|
30 |
-
{
|
31 |
-
return self::_retrieve($id, $opts);
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @param array|null $params
|
36 |
-
* @param array|string|null $opts
|
37 |
-
*
|
38 |
-
* @return Collection of Subscriptions
|
39 |
-
*/
|
40 |
-
public static function all($params = null, $opts = null)
|
41 |
-
{
|
42 |
-
return self::_all($params, $opts);
|
43 |
Â
}
|
Â
|
|
Â
|
|
44 |
Â
|
45 |
Â
/**
|
46 |
-
*
|
47 |
-
* @param array|string|null $opts
|
48 |
Â
*
|
49 |
-
* @
|
50 |
Â
*/
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
Â
|
|
Â
|
|
Â
|
|
55 |
Â
|
56 |
-
|
57 |
-
* @param string $id The ID of the subscription to retrieve.
|
58 |
-
* @param array|null $params
|
59 |
-
* @param array|string|null $options
|
60 |
-
*
|
61 |
-
* @return Subscription The updated subscription.
|
62 |
-
*/
|
63 |
-
public static function update($id, $params = null, $options = null)
|
64 |
Â
{
|
65 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
66 |
Â
}
|
67 |
Â
|
68 |
Â
/**
|
@@ -75,16 +87,6 @@ class Subscription extends ApiResource
|
|
75 |
Â
return $this->_delete($params, $opts);
|
76 |
Â
}
|
77 |
Â
|
78 |
-
/**
|
79 |
-
* @param array|string|null $opts
|
80 |
-
*
|
81 |
-
* @return Subscription The saved subscription.
|
82 |
-
*/
|
83 |
-
public function save($opts = null)
|
84 |
-
{
|
85 |
-
return $this->_save($opts);
|
86 |
-
}
|
87 |
-
|
88 |
Â
/**
|
89 |
Â
* @return Subscription The updated subscription.
|
90 |
Â
*/
|
@@ -92,6 +94,6 @@ class Subscription extends ApiResource
|
|
92 |
Â
{
|
93 |
Â
$url = $this->instanceUrl() . '/discount';
|
94 |
Â
list($response, $opts) = $this->_request('delete', $url);
|
95 |
-
$this->refreshFrom(
|
96 |
Â
}
|
97 |
Â
}
|
5 |
Â
/**
|
6 |
Â
* Class Subscription
|
7 |
Â
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property float $application_fee_percent
|
11 |
+
* @property string $billing
|
12 |
+
* @property int $billing_cycle_anchor
|
13 |
+
* @property mixed $billing_thresholds
|
14 |
+
* @property bool $cancel_at_period_end
|
15 |
+
* @property int $canceled_at
|
16 |
+
* @property string $collection_method
|
17 |
+
* @property int $created
|
18 |
+
* @property int $current_period_end
|
19 |
+
* @property int $current_period_start
|
20 |
+
* @property string $customer
|
21 |
+
* @property int $days_until_due
|
22 |
+
* @property string $default_payment_method
|
23 |
+
* @property string $default_source
|
24 |
+
* @property array $default_tax_rates
|
25 |
+
* @property Discount $discount
|
26 |
+
* @property int $ended_at
|
27 |
+
* @property Collection $items
|
28 |
+
* @property string $latest_invoice
|
29 |
+
* @property boolean $livemode
|
30 |
+
* @property StripeObject $metadata
|
31 |
+
* @property string $pending_setup_intent
|
32 |
+
* @property Plan $plan
|
33 |
+
* @property int $quantity
|
34 |
+
* @property SubscriptionSchedule $schedule
|
35 |
+
* @property int $start
|
36 |
+
* @property int $start_date
|
37 |
+
* @property string $status
|
38 |
+
* @property float $tax_percent
|
39 |
+
* @property int $trial_end
|
40 |
+
* @property int $trial_start
|
41 |
+
*
|
42 |
Â
* @package Stripe
|
43 |
Â
*/
|
44 |
Â
class Subscription extends ApiResource
|
45 |
Â
{
|
46 |
+
const OBJECT_NAME = "subscription";
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
47 |
Â
|
48 |
+
use ApiOperations\All;
|
49 |
+
use ApiOperations\Create;
|
50 |
+
use ApiOperations\Delete {
|
51 |
+
delete as protected _delete;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
52 |
Â
}
|
53 |
+
use ApiOperations\Retrieve;
|
54 |
+
use ApiOperations\Update;
|
55 |
Â
|
56 |
Â
/**
|
57 |
+
* These constants are possible representations of the status field.
|
Â
|
|
58 |
Â
*
|
59 |
+
* @link https://stripe.com/docs/api#subscription_object-status
|
60 |
Â
*/
|
61 |
+
const STATUS_ACTIVE = 'active';
|
62 |
+
const STATUS_CANCELED = 'canceled';
|
63 |
+
const STATUS_PAST_DUE = 'past_due';
|
64 |
+
const STATUS_TRIALING = 'trialing';
|
65 |
+
const STATUS_UNPAID = 'unpaid';
|
66 |
+
const STATUS_INCOMPLETE = 'incomplete';
|
67 |
+
const STATUS_INCOMPLETE_EXPIRED = 'incomplete_expired';
|
68 |
Â
|
69 |
+
public static function getSavedNestedResources()
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
70 |
Â
{
|
71 |
+
static $savedNestedResources = null;
|
72 |
+
if ($savedNestedResources === null) {
|
73 |
+
$savedNestedResources = new Util\Set([
|
74 |
+
'source',
|
75 |
+
]);
|
76 |
+
}
|
77 |
+
return $savedNestedResources;
|
78 |
Â
}
|
79 |
Â
|
80 |
Â
/**
|
87 |
Â
return $this->_delete($params, $opts);
|
88 |
Â
}
|
89 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
90 |
Â
/**
|
91 |
Â
* @return Subscription The updated subscription.
|
92 |
Â
*/
|
94 |
Â
{
|
95 |
Â
$url = $this->instanceUrl() . '/discount';
|
96 |
Â
list($response, $opts) = $this->_request('delete', $url);
|
97 |
+
$this->refreshFrom(['discount' => null], $opts, true);
|
98 |
Â
}
|
99 |
Â
}
|
lib/stripe-gateway/lib/SubscriptionItem.php
ADDED
@@ -0,0 +1,59 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class SubscriptionItem
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property mixed $billing_thresholds
|
11 |
+
* @property int $created
|
12 |
+
* @property StripeObject $metadata
|
13 |
+
* @property Plan $plan
|
14 |
+
* @property int $quantity
|
15 |
+
* @property string $subscription
|
16 |
+
* @property array $tax_rates
|
17 |
+
*
|
18 |
+
* @package Stripe
|
19 |
+
*/
|
20 |
+
class SubscriptionItem extends ApiResource
|
21 |
+
{
|
22 |
+
const OBJECT_NAME = "subscription_item";
|
23 |
+
|
24 |
+
const PATH_USAGE_RECORDS = '/usage_records';
|
25 |
+
|
26 |
+
use ApiOperations\All;
|
27 |
+
use ApiOperations\Create;
|
28 |
+
use ApiOperations\Delete;
|
29 |
+
use ApiOperations\NestedResource;
|
30 |
+
use ApiOperations\Retrieve;
|
31 |
+
use ApiOperations\Update;
|
32 |
+
|
33 |
+
/**
|
34 |
+
* @param string|null $id The ID of the subscription item on which to create the usage record.
|
35 |
+
* @param array|null $params
|
36 |
+
* @param array|string|null $opts
|
37 |
+
*
|
38 |
+
* @return ApiResource
|
39 |
+
*/
|
40 |
+
public static function createUsageRecord($id, $params = null, $opts = null)
|
41 |
+
{
|
42 |
+
return self::_createNestedResource($id, static::PATH_USAGE_RECORDS, $params, $opts);
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* @param array|null $params
|
47 |
+
* @param array|string|null $options
|
48 |
+
*
|
49 |
+
* @return Collection The list of usage record summaries.
|
50 |
+
*/
|
51 |
+
public function usageRecordSummaries($params = null, $options = null)
|
52 |
+
{
|
53 |
+
$url = $this->instanceUrl() . '/usage_record_summaries';
|
54 |
+
list($response, $opts) = $this->_request('get', $url, $params, $options);
|
55 |
+
$obj = Util\Util::convertToStripeObject($response, $opts);
|
56 |
+
$obj->setLastResponse($response);
|
57 |
+
return $obj;
|
58 |
+
}
|
59 |
+
}
|
lib/stripe-gateway/lib/SubscriptionSchedule.php
ADDED
@@ -0,0 +1,68 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class SubscriptionSchedule
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property string $billing
|
11 |
+
* @property mixed $billing_thresholds
|
12 |
+
* @property int $canceled_at
|
13 |
+
* @property int $completed_at
|
14 |
+
* @property int $created
|
15 |
+
* @property mixed $current_phase
|
16 |
+
* @property string $customer
|
17 |
+
* @property mixed $invoice_settings
|
18 |
+
* @property boolean $livemode
|
19 |
+
* @property StripeObject $metadata
|
20 |
+
* @property mixed $phases
|
21 |
+
* @property int $released_at
|
22 |
+
* @property string $released_subscription
|
23 |
+
* @property string $renewal_behavior
|
24 |
+
* @property mixed $renewal_interval
|
25 |
+
* @property string $revision
|
26 |
+
* @property string $status
|
27 |
+
* @property string $subscription
|
28 |
+
*
|
29 |
+
* @package Stripe
|
30 |
+
*/
|
31 |
+
class SubscriptionSchedule extends ApiResource
|
32 |
+
{
|
33 |
+
const OBJECT_NAME = "subscription_schedule";
|
34 |
+
|
35 |
+
use ApiOperations\All;
|
36 |
+
use ApiOperations\Create;
|
37 |
+
use ApiOperations\Retrieve;
|
38 |
+
use ApiOperations\Update;
|
39 |
+
use ApiOperations\NestedResource;
|
40 |
+
|
41 |
+
/**
|
42 |
+
* @param array|null $params
|
43 |
+
* @param array|string|null $opts
|
44 |
+
*
|
45 |
+
* @return SubscriptionSchedule The canceled subscription schedule.
|
46 |
+
*/
|
47 |
+
public function cancel($params = null, $opts = null)
|
48 |
+
{
|
49 |
+
$url = $this->instanceUrl() . '/cancel';
|
50 |
+
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
51 |
+
$this->refreshFrom($response, $opts);
|
52 |
+
return $this;
|
53 |
+
}
|
54 |
+
|
55 |
+
/**
|
56 |
+
* @param array|null $params
|
57 |
+
* @param array|string|null $opts
|
58 |
+
*
|
59 |
+
* @return SubscriptionSchedule The released subscription schedule.
|
60 |
+
*/
|
61 |
+
public function release($params = null, $opts = null)
|
62 |
+
{
|
63 |
+
$url = $this->instanceUrl() . '/release';
|
64 |
+
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
65 |
+
$this->refreshFrom($response, $opts);
|
66 |
+
return $this;
|
67 |
+
}
|
68 |
+
}
|
lib/stripe-gateway/lib/TaxId.php
ADDED
@@ -0,0 +1,80 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class TaxId
|
7 |
+
*
|
8 |
+
* @package Stripe
|
9 |
+
*
|
10 |
+
* @property string $id
|
11 |
+
* @property string $object
|
12 |
+
* @property string $country
|
13 |
+
* @property int $created
|
14 |
+
* @property string $customer
|
15 |
+
* @property bool $livemode
|
16 |
+
* @property string $type
|
17 |
+
* @property string $value
|
18 |
+
* @property mixed $verification
|
19 |
+
*/
|
20 |
+
class TaxId extends ApiResource
|
21 |
+
{
|
22 |
+
const OBJECT_NAME = "tax_id";
|
23 |
+
|
24 |
+
use ApiOperations\Delete;
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Possible string representations of a tax id's type.
|
28 |
+
* @link https://stripe.com/docs/api/customer_tax_ids/object#tax_id_object-type
|
29 |
+
*/
|
30 |
+
const TYPE_AU_ABN = 'au_abn';
|
31 |
+
const TYPE_EU_VAT = 'eu_vat';
|
32 |
+
const TYPE_IN_GST = 'in_gst';
|
33 |
+
const TYPE_NO_VAT = 'no_vat';
|
34 |
+
const TYPE_NZ_GST = 'nz_gst';
|
35 |
+
const TYPE_UNKNOWN = 'unknown';
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Possible string representations of the verification status.
|
39 |
+
* @link https://stripe.com/docs/api/customer_tax_ids/object#tax_id_object-verification
|
40 |
+
*/
|
41 |
+
const VERIFICATION_STATUS_PENDING = 'pending';
|
42 |
+
const VERIFICATION_STATUS_UNAVAILABLE = 'unavailable';
|
43 |
+
const VERIFICATION_STATUS_UNVERIFIED = 'unverified';
|
44 |
+
const VERIFICATION_STATUS_VERIFIED = 'verified';
|
45 |
+
|
46 |
+
/**
|
47 |
+
* @return string The API URL for this tax id.
|
48 |
+
*/
|
49 |
+
public function instanceUrl()
|
50 |
+
{
|
51 |
+
$id = $this['id'];
|
52 |
+
$customer = $this['customer'];
|
53 |
+
if (!$id) {
|
54 |
+
throw new Error\InvalidRequest(
|
55 |
+
"Could not determine which URL to request: class instance has invalid ID: $id",
|
56 |
+
null
|
57 |
+
);
|
58 |
+
}
|
59 |
+
$id = Util\Util::utf8($id);
|
60 |
+
$customer = Util\Util::utf8($customer);
|
61 |
+
|
62 |
+
$base = Customer::classUrl();
|
63 |
+
$customerExtn = urlencode($customer);
|
64 |
+
$extn = urlencode($id);
|
65 |
+
return "$base/$customerExtn/tax_ids/$extn";
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
* @param array|string $_id
|
70 |
+
* @param array|string|null $_opts
|
71 |
+
*
|
72 |
+
* @throws \Stripe\Error\InvalidRequest
|
73 |
+
*/
|
74 |
+
public static function retrieve($_id, $_opts = null)
|
75 |
+
{
|
76 |
+
$msg = "Tax Ids cannot be accessed without a customer ID. " .
|
77 |
+
"Retrieve a Tax Id using Customer::retrieveTaxId('tax_id') instead.";
|
78 |
+
throw new Error\InvalidRequest($msg, null);
|
79 |
+
}
|
80 |
+
}
|
lib/stripe-gateway/lib/TaxRate.php
ADDED
@@ -0,0 +1,30 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class TaxRate
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property bool $active
|
11 |
+
* @property int $created
|
12 |
+
* @property string $description
|
13 |
+
* @property string $display_name
|
14 |
+
* @property bool $inclusive
|
15 |
+
* @property string $jurisdiction
|
16 |
+
* @property bool $livemode
|
17 |
+
* @property StripeObject $metadata
|
18 |
+
* @property float $percentage
|
19 |
+
*
|
20 |
+
* @package Stripe
|
21 |
+
*/
|
22 |
+
class TaxRate extends ApiResource
|
23 |
+
{
|
24 |
+
const OBJECT_NAME = "tax_rate";
|
25 |
+
|
26 |
+
use ApiOperations\All;
|
27 |
+
use ApiOperations\Create;
|
28 |
+
use ApiOperations\Retrieve;
|
29 |
+
use ApiOperations\Update;
|
30 |
+
}
|
lib/stripe-gateway/lib/Terminal/ConnectionToken.php
ADDED
@@ -0,0 +1,17 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Terminal;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class ConnectionToken
|
7 |
+
*
|
8 |
+
* @property string $secret
|
9 |
+
*
|
10 |
+
* @package Stripe\Terminal
|
11 |
+
*/
|
12 |
+
class ConnectionToken extends \Stripe\ApiResource
|
13 |
+
{
|
14 |
+
const OBJECT_NAME = "terminal.connection_token";
|
15 |
+
|
16 |
+
use \Stripe\ApiOperations\Create;
|
17 |
+
}
|
lib/stripe-gateway/lib/Terminal/Location.php
ADDED
@@ -0,0 +1,25 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Terminal;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Location
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property mixed $address
|
11 |
+
* @property bool $deleted
|
12 |
+
* @property string $display_name
|
13 |
+
*
|
14 |
+
* @package Stripe\Terminal
|
15 |
+
*/
|
16 |
+
class Location extends \Stripe\ApiResource
|
17 |
+
{
|
18 |
+
const OBJECT_NAME = "terminal.location";
|
19 |
+
|
20 |
+
use \Stripe\ApiOperations\All;
|
21 |
+
use \Stripe\ApiOperations\Create;
|
22 |
+
use \Stripe\ApiOperations\Delete;
|
23 |
+
use \Stripe\ApiOperations\Retrieve;
|
24 |
+
use \Stripe\ApiOperations\Update;
|
25 |
+
}
|
lib/stripe-gateway/lib/Terminal/Reader.php
ADDED
@@ -0,0 +1,30 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Terminal;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Reader
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property bool $deleted
|
11 |
+
* @property string $device_sw_version
|
12 |
+
* @property string $device_type
|
13 |
+
* @property string $ip_address
|
14 |
+
* @property string $label
|
15 |
+
* @property string $location
|
16 |
+
* @property string $serial_number
|
17 |
+
* @property string $status
|
18 |
+
*
|
19 |
+
* @package Stripe\Terminal
|
20 |
+
*/
|
21 |
+
class Reader extends \Stripe\ApiResource
|
22 |
+
{
|
23 |
+
const OBJECT_NAME = "terminal.reader";
|
24 |
+
|
25 |
+
use \Stripe\ApiOperations\All;
|
26 |
+
use \Stripe\ApiOperations\Create;
|
27 |
+
use \Stripe\ApiOperations\Delete;
|
28 |
+
use \Stripe\ApiOperations\Retrieve;
|
29 |
+
use \Stripe\ApiOperations\Update;
|
30 |
+
}
|
lib/stripe-gateway/lib/ThreeDSecure.php
CHANGED
@@ -4,6 +4,11 @@ namespace Stripe;
|
|
4 |
Â
|
5 |
Â
class ThreeDSecure extends ApiResource
|
6 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
7 |
Â
/**
|
8 |
Â
* @return string The endpoint URL for the given class.
|
9 |
Â
*/
|
@@ -11,15 +16,4 @@ class ThreeDSecure extends ApiResource
|
|
11 |
Â
{
|
12 |
Â
return "/v1/3d_secure";
|
13 |
Â
}
|
14 |
-
|
15 |
-
/**
|
16 |
-
* @param array|null $params
|
17 |
-
* @param array|string|null $opts
|
18 |
-
*
|
19 |
-
* @return ThreeDSecure The created 3D Secure object.
|
20 |
-
*/
|
21 |
-
public static function create($params = null, $opts = null)
|
22 |
-
{
|
23 |
-
return self::_create($params, $opts);
|
24 |
-
}
|
25 |
Â
}
|
4 |
Â
|
5 |
Â
class ThreeDSecure extends ApiResource
|
6 |
Â
{
|
7 |
+
const OBJECT_NAME = "three_d_secure";
|
8 |
+
|
9 |
+
use ApiOperations\Create;
|
10 |
+
use ApiOperations\Retrieve;
|
11 |
+
|
12 |
Â
/**
|
13 |
Â
* @return string The endpoint URL for the given class.
|
14 |
Â
*/
|
16 |
Â
{
|
17 |
Â
return "/v1/3d_secure";
|
18 |
Â
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
19 |
Â
}
|
lib/stripe-gateway/lib/Token.php
CHANGED
@@ -7,9 +7,9 @@ namespace Stripe;
|
|
7 |
Â
*
|
8 |
Â
* @property string $id
|
9 |
Â
* @property string $object
|
10 |
-
* @property
|
11 |
-
* @property
|
12 |
-
* @property
|
13 |
Â
* @property int $created
|
14 |
Â
* @property bool $livemode
|
15 |
Â
* @property string $type
|
@@ -19,25 +19,17 @@ namespace Stripe;
|
|
19 |
Â
*/
|
20 |
Â
class Token extends ApiResource
|
21 |
Â
{
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
* @return Token
|
27 |
-
*/
|
28 |
-
public static function retrieve($id, $opts = null)
|
29 |
-
{
|
30 |
-
return self::_retrieve($id, $opts);
|
31 |
-
}
|
32 |
Â
|
33 |
Â
/**
|
34 |
-
*
|
35 |
-
* @
|
36 |
-
*
|
37 |
-
* @return Token The created token.
|
38 |
Â
*/
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
Â
}
|
7 |
Â
*
|
8 |
Â
* @property string $id
|
9 |
Â
* @property string $object
|
10 |
+
* @property BankAccount $bank_account
|
11 |
+
* @property Card $card
|
12 |
+
* @property string $client_ip
|
13 |
Â
* @property int $created
|
14 |
Â
* @property bool $livemode
|
15 |
Â
* @property string $type
|
19 |
Â
*/
|
20 |
Â
class Token extends ApiResource
|
21 |
Â
{
|
22 |
+
const OBJECT_NAME = "token";
|
23 |
+
|
24 |
+
use ApiOperations\Create;
|
25 |
+
use ApiOperations\Retrieve;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
26 |
Â
|
27 |
Â
/**
|
28 |
+
* Possible string representations of the token type.
|
29 |
+
* @link https://stripe.com/docs/api/tokens/object#token_object-type
|
Â
|
|
Â
|
|
30 |
Â
*/
|
31 |
+
const TYPE_ACCOUNT = 'account';
|
32 |
+
const TYPE_BANK_ACCOUNT = 'bank_account';
|
33 |
+
const TYPE_CARD = 'card';
|
34 |
+
const TYPE_PII = 'pii';
|
35 |
Â
}
|
lib/stripe-gateway/lib/Topup.php
ADDED
@@ -0,0 +1,59 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Topup
|
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 $description
|
15 |
+
* @property int $expected_availability_date
|
16 |
+
* @property string $failure_code
|
17 |
+
* @property string $failure_message
|
18 |
+
* @property bool $livemode
|
19 |
+
* @property StripeObject $metadata
|
20 |
+
* @property mixed $source
|
21 |
+
* @property string $statement_descriptor
|
22 |
+
* @property string $status
|
23 |
+
* @property string $transfer_group
|
24 |
+
*
|
25 |
+
* @package Stripe
|
26 |
+
*/
|
27 |
+
class Topup extends ApiResource
|
28 |
+
{
|
29 |
+
const OBJECT_NAME = "topup";
|
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 status of the top-up.
|
38 |
+
* @link https://stripe.com/docs/api/topups/object#topup_object-status
|
39 |
+
*/
|
40 |
+
const STATUS_CANCELED = 'canceled';
|
41 |
+
const STATUS_FAILED = 'failed';
|
42 |
+
const STATUS_PENDING = 'pending';
|
43 |
+
const STATUS_REVERSED = 'reversed';
|
44 |
+
const STATUS_SUCCEEDED = 'succeeded';
|
45 |
+
|
46 |
+
/**
|
47 |
+
* @param array|null $params
|
48 |
+
* @param array|string|null $options
|
49 |
+
*
|
50 |
+
* @return Topup The canceled topup.
|
51 |
+
*/
|
52 |
+
public function cancel($params = null, $options = null)
|
53 |
+
{
|
54 |
+
$url = $this->instanceUrl() . '/cancel';
|
55 |
+
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
56 |
+
$this->refreshFrom($response, $opts);
|
57 |
+
return $this;
|
58 |
+
}
|
59 |
+
}
|
lib/stripe-gateway/lib/Transfer.php
CHANGED
@@ -9,107 +9,112 @@ namespace Stripe;
|
|
9 |
Â
* @property string $object
|
10 |
Â
* @property int $amount
|
11 |
Â
* @property int $amount_reversed
|
12 |
-
* @property mixed $application_fee
|
13 |
Â
* @property string $balance_transaction
|
14 |
Â
* @property int $created
|
15 |
Â
* @property string $currency
|
16 |
-
* @property
|
17 |
-
* @property
|
18 |
-
* @property
|
19 |
-
* @property mixed $destination_payment
|
20 |
-
* @property mixed $failure_code
|
21 |
-
* @property mixed $failure_message
|
22 |
-
* @property mixed $fraud_details
|
23 |
-
* @property mixed $invoice
|
24 |
Â
* @property bool $livemode
|
25 |
-
* @property
|
26 |
-
* @property
|
27 |
-
* @property mixed $reversals
|
28 |
Â
* @property bool $reversed
|
29 |
-
* @property
|
30 |
Â
* @property string $source_type
|
31 |
-
* @property
|
32 |
-
* @property string $status
|
33 |
-
* @property string $type
|
34 |
Â
*
|
35 |
Â
* @package Stripe
|
36 |
Â
*/
|
37 |
Â
class Transfer extends ApiResource
|
38 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
39 |
Â
/**
|
40 |
-
*
|
41 |
-
* @
|
42 |
-
*
|
43 |
-
* @return Transfer
|
44 |
Â
*/
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
Â
|
50 |
Â
/**
|
51 |
-
* @
|
52 |
-
* @param array|string|null $opts
|
53 |
-
*
|
54 |
-
* @return Collection of Transfers
|
55 |
Â
*/
|
56 |
-
public
|
57 |
Â
{
|
58 |
-
|
Â
|
|
Â
|
|
Â
|
|
59 |
Â
}
|
60 |
Â
|
61 |
Â
/**
|
62 |
-
* @
|
63 |
-
* @param array|string|null $opts
|
64 |
-
*
|
65 |
-
* @return Transfer The created transfer.
|
66 |
Â
*/
|
67 |
-
public
|
68 |
Â
{
|
69 |
-
|
Â
|
|
Â
|
|
Â
|
|
70 |
Â
}
|
71 |
Â
|
72 |
Â
/**
|
73 |
-
* @param string $id The ID of the transfer to
|
74 |
Â
* @param array|null $params
|
75 |
-
* @param array|string|null $
|
76 |
Â
*
|
77 |
-
* @return
|
78 |
Â
*/
|
79 |
-
public static function
|
80 |
Â
{
|
81 |
-
return self::
|
82 |
Â
}
|
83 |
Â
|
84 |
Â
/**
|
85 |
-
* @
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
86 |
Â
*/
|
87 |
-
public function
|
88 |
Â
{
|
89 |
-
$
|
90 |
-
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
91 |
-
$this->refreshFrom($response, $opts);
|
92 |
-
return $this;
|
93 |
Â
}
|
94 |
Â
|
95 |
Â
/**
|
96 |
-
* @
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
97 |
Â
*/
|
98 |
-
public function
|
99 |
Â
{
|
100 |
-
$
|
101 |
-
list($response, $opts) = $this->_request('post', $url);
|
102 |
-
$this->refreshFrom($response, $opts);
|
103 |
-
return $this;
|
104 |
Â
}
|
105 |
Â
|
106 |
Â
/**
|
Â
|
|
Â
|
|
107 |
Â
* @param array|string|null $opts
|
108 |
Â
*
|
109 |
-
* @return
|
110 |
Â
*/
|
111 |
-
public function
|
112 |
Â
{
|
113 |
-
return
|
114 |
Â
}
|
115 |
Â
}
|
9 |
Â
* @property string $object
|
10 |
Â
* @property int $amount
|
11 |
Â
* @property int $amount_reversed
|
Â
|
|
12 |
Â
* @property string $balance_transaction
|
13 |
Â
* @property int $created
|
14 |
Â
* @property string $currency
|
15 |
+
* @property string $description
|
16 |
+
* @property string $destination
|
17 |
+
* @property string $destination_payment
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
18 |
Â
* @property bool $livemode
|
19 |
+
* @property StripeObject $metadata
|
20 |
+
* @property Collection $reversals
|
Â
|
|
21 |
Â
* @property bool $reversed
|
22 |
+
* @property string $source_transaction
|
23 |
Â
* @property string $source_type
|
24 |
+
* @property string $transfer_group
|
Â
|
|
Â
|
|
25 |
Â
*
|
26 |
Â
* @package Stripe
|
27 |
Â
*/
|
28 |
Â
class Transfer extends ApiResource
|
29 |
Â
{
|
30 |
+
const OBJECT_NAME = "transfer";
|
31 |
+
|
32 |
+
use ApiOperations\All;
|
33 |
+
use ApiOperations\Create;
|
34 |
+
use ApiOperations\NestedResource;
|
35 |
+
use ApiOperations\Retrieve;
|
36 |
+
use ApiOperations\Update;
|
37 |
+
|
38 |
+
const PATH_REVERSALS = '/reversals';
|
39 |
+
|
40 |
Â
/**
|
41 |
+
* Possible string representations of the source type of the transfer.
|
42 |
+
* @link https://stripe.com/docs/api/transfers/object#transfer_object-source_type
|
Â
|
|
Â
|
|
43 |
Â
*/
|
44 |
+
const SOURCE_TYPE_ALIPAY_ACCOUNT = 'alipay_account';
|
45 |
+
const SOURCE_TYPE_BANK_ACCOUNT = 'bank_account';
|
46 |
+
const SOURCE_TYPE_CARD = 'card';
|
47 |
+
const SOURCE_TYPE_FINANCING = 'financing';
|
48 |
Â
|
49 |
Â
/**
|
50 |
+
* @return TransferReversal The created transfer reversal.
|
Â
|
|
Â
|
|
Â
|
|
51 |
Â
*/
|
52 |
+
public function reverse($params = null, $opts = null)
|
53 |
Â
{
|
54 |
+
$url = $this->instanceUrl() . '/reversals';
|
55 |
+
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
56 |
+
$this->refreshFrom($response, $opts);
|
57 |
+
return $this;
|
58 |
Â
}
|
59 |
Â
|
60 |
Â
/**
|
61 |
+
* @return Transfer The canceled transfer.
|
Â
|
|
Â
|
|
Â
|
|
62 |
Â
*/
|
63 |
+
public function cancel()
|
64 |
Â
{
|
65 |
+
$url = $this->instanceUrl() . '/cancel';
|
66 |
+
list($response, $opts) = $this->_request('post', $url);
|
67 |
+
$this->refreshFrom($response, $opts);
|
68 |
+
return $this;
|
69 |
Â
}
|
70 |
Â
|
71 |
Â
/**
|
72 |
+
* @param string|null $id The ID of the transfer on which to create the reversal.
|
73 |
Â
* @param array|null $params
|
74 |
+
* @param array|string|null $opts
|
75 |
Â
*
|
76 |
+
* @return TransferReversal
|
77 |
Â
*/
|
78 |
+
public static function createReversal($id, $params = null, $opts = null)
|
79 |
Â
{
|
80 |
+
return self::_createNestedResource($id, static::PATH_REVERSALS, $params, $opts);
|
81 |
Â
}
|
82 |
Â
|
83 |
Â
/**
|
84 |
+
* @param string|null $id The ID of the transfer to which the reversal belongs.
|
85 |
+
* @param array|null $reversalId The ID of the reversal to retrieve.
|
86 |
+
* @param array|null $params
|
87 |
+
* @param array|string|null $opts
|
88 |
+
*
|
89 |
+
* @return TransferReversal
|
90 |
Â
*/
|
91 |
+
public static function retrieveReversal($id, $reversalId, $params = null, $opts = null)
|
92 |
Â
{
|
93 |
+
return self::_retrieveNestedResource($id, static::PATH_REVERSALS, $reversalId, $params, $opts);
|
Â
|
|
Â
|
|
Â
|
|
94 |
Â
}
|
95 |
Â
|
96 |
Â
/**
|
97 |
+
* @param string|null $id The ID of the transfer to which the reversal belongs.
|
98 |
+
* @param array|null $reversalId The ID of the reversal to update.
|
99 |
+
* @param array|null $params
|
100 |
+
* @param array|string|null $opts
|
101 |
+
*
|
102 |
+
* @return TransferReversal
|
103 |
Â
*/
|
104 |
+
public static function updateReversal($id, $reversalId, $params = null, $opts = null)
|
105 |
Â
{
|
106 |
+
return self::_updateNestedResource($id, static::PATH_REVERSALS, $reversalId, $params, $opts);
|
Â
|
|
Â
|
|
Â
|
|
107 |
Â
}
|
108 |
Â
|
109 |
Â
/**
|
110 |
+
* @param string|null $id The ID of the transfer on which to retrieve the reversals.
|
111 |
+
* @param array|null $params
|
112 |
Â
* @param array|string|null $opts
|
113 |
Â
*
|
114 |
+
* @return Collection The list of reversals.
|
115 |
Â
*/
|
116 |
+
public static function allReversals($id, $params = null, $opts = null)
|
117 |
Â
{
|
118 |
+
return self::_allNestedResources($id, static::PATH_REVERSALS, $params, $opts);
|
119 |
Â
}
|
120 |
Â
}
|
lib/stripe-gateway/lib/TransferReversal.php
CHANGED
@@ -11,13 +11,21 @@ namespace Stripe;
|
|
11 |
Â
* @property string $balance_transaction
|
12 |
Â
* @property int $created
|
13 |
Â
* @property string $currency
|
14 |
-
* @property
|
Â
|
|
Â
|
|
15 |
Â
* @property string $transfer
|
16 |
Â
*
|
17 |
Â
* @package Stripe
|
18 |
Â
*/
|
19 |
Â
class TransferReversal extends ApiResource
|
20 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
21 |
Â
/**
|
22 |
Â
* @return string The API URL for this Stripe transfer reversal.
|
23 |
Â
*/
|
11 |
Â
* @property string $balance_transaction
|
12 |
Â
* @property int $created
|
13 |
Â
* @property string $currency
|
14 |
+
* @property string $destination_payment_refund
|
15 |
+
* @property StripeObject $metadata
|
16 |
+
* @property string $source_refund
|
17 |
Â
* @property string $transfer
|
18 |
Â
*
|
19 |
Â
* @package Stripe
|
20 |
Â
*/
|
21 |
Â
class TransferReversal extends ApiResource
|
22 |
Â
{
|
23 |
+
const OBJECT_NAME = "transfer_reversal";
|
24 |
+
|
25 |
+
use ApiOperations\Update {
|
26 |
+
save as protected _save;
|
27 |
+
}
|
28 |
+
|
29 |
Â
/**
|
30 |
Â
* @return string The API URL for this Stripe transfer reversal.
|
31 |
Â
*/
|
lib/stripe-gateway/lib/UsageRecord.php
ADDED
@@ -0,0 +1,43 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class UsageRecord
|
7 |
+
*
|
8 |
+
* @package Stripe
|
9 |
+
*
|
10 |
+
* @property string $id
|
11 |
+
* @property string $object
|
12 |
+
* @property bool $livemode
|
13 |
+
* @property int $quantity
|
14 |
+
* @property string $subscription_item
|
15 |
+
* @property int $timestamp
|
16 |
+
*/
|
17 |
+
class UsageRecord extends ApiResource
|
18 |
+
{
|
19 |
+
const OBJECT_NAME = "usage_record";
|
20 |
+
|
21 |
+
/**
|
22 |
+
* @param array|null $params
|
23 |
+
* @param array|string|null $options
|
24 |
+
*
|
25 |
+
* @return \Stripe\ApiResource The created resource.
|
26 |
+
*/
|
27 |
+
public static function create($params = null, $options = null)
|
28 |
+
{
|
29 |
+
self::_validateParams($params);
|
30 |
+
if (!array_key_exists('subscription_item', $params)) {
|
31 |
+
throw new Error\InvalidRequest("Missing subscription_item param in request", null);
|
32 |
+
}
|
33 |
+
$subscription_item = $params['subscription_item'];
|
34 |
+
$url = "/v1/subscription_items/$subscription_item/usage_records";
|
35 |
+
$request_params = $params;
|
36 |
+
unset($request_params['subscription_item']);
|
37 |
+
|
38 |
+
list($response, $opts) = static::_staticRequest('post', $url, $request_params, $options);
|
39 |
+
$obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
|
40 |
+
$obj->setLastResponse($response);
|
41 |
+
return $obj;
|
42 |
+
}
|
43 |
+
}
|
lib/stripe-gateway/lib/UsageRecordSummary.php
ADDED
@@ -0,0 +1,21 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class UsageRecord
|
7 |
+
*
|
8 |
+
* @package Stripe
|
9 |
+
*
|
10 |
+
* @property string $id
|
11 |
+
* @property string $object
|
12 |
+
* @property string $invoice
|
13 |
+
* @property bool $livemode
|
14 |
+
* @property mixed $period
|
15 |
+
* @property string $subscription_item
|
16 |
+
* @property int $total_usage
|
17 |
+
*/
|
18 |
+
class UsageRecordSummary extends ApiResource
|
19 |
+
{
|
20 |
+
const OBJECT_NAME = "usage_record_summary";
|
21 |
+
}
|
lib/stripe-gateway/lib/Util/AutoPagingIterator.php
CHANGED
@@ -7,7 +7,7 @@ class AutoPagingIterator implements \Iterator
|
|
7 |
Â
private $lastId = null;
|
8 |
Â
private $page = null;
|
9 |
Â
private $pageOffset = 0;
|
10 |
-
private $params =
|
11 |
Â
|
12 |
Â
public function __construct($collection, $params)
|
13 |
Â
{
|
@@ -42,8 +42,8 @@ class AutoPagingIterator implements \Iterator
|
|
42 |
Â
$this->pageOffset += count($this->page->data);
|
43 |
Â
if ($this->page['has_more']) {
|
44 |
Â
$this->params = array_merge(
|
45 |
-
$this->params
|
46 |
-
|
47 |
Â
);
|
48 |
Â
$this->page = $this->page->all($this->params);
|
49 |
Â
} else {
|
7 |
Â
private $lastId = null;
|
8 |
Â
private $page = null;
|
9 |
Â
private $pageOffset = 0;
|
10 |
+
private $params = [];
|
11 |
Â
|
12 |
Â
public function __construct($collection, $params)
|
13 |
Â
{
|
42 |
Â
$this->pageOffset += count($this->page->data);
|
43 |
Â
if ($this->page['has_more']) {
|
44 |
Â
$this->params = array_merge(
|
45 |
+
$this->params ?: [],
|
46 |
+
['starting_after' => $this->lastId]
|
47 |
Â
);
|
48 |
Â
$this->page = $this->page->all($this->params);
|
49 |
Â
} else {
|
lib/stripe-gateway/lib/Util/CaseInsensitiveArray.php
ADDED
@@ -0,0 +1,62 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Util;
|
4 |
+
|
5 |
+
use ArrayAccess;
|
6 |
+
|
7 |
+
/**
|
8 |
+
* CaseInsensitiveArray is an array-like class that ignores case for keys.
|
9 |
+
*
|
10 |
+
* It is used to store HTTP headers. Per RFC 2616, section 4.2:
|
11 |
+
* Each header field consists of a name followed by a colon (":") and the field value. Field names
|
12 |
+
* are case-insensitive.
|
13 |
+
*
|
14 |
+
* In the context of stripe-php, this is useful because the API will return headers with different
|
15 |
+
* case depending on whether HTTP/2 is used or not (with HTTP/2, headers are always in lowercase).
|
16 |
+
*/
|
17 |
+
class CaseInsensitiveArray implements ArrayAccess
|
18 |
+
{
|
19 |
+
private $container = array();
|
20 |
+
|
21 |
+
public function __construct($initial_array = array())
|
22 |
+
{
|
23 |
+
$this->container = array_map("strtolower", $initial_array);
|
24 |
+
}
|
25 |
+
|
26 |
+
public function offsetSet($offset, $value)
|
27 |
+
{
|
28 |
+
$offset = static::maybeLowercase($offset);
|
29 |
+
if (is_null($offset)) {
|
30 |
+
$this->container[] = $value;
|
31 |
+
} else {
|
32 |
+
$this->container[$offset] = $value;
|
33 |
+
}
|
34 |
+
}
|
35 |
+
|
36 |
+
public function offsetExists($offset)
|
37 |
+
{
|
38 |
+
$offset = static::maybeLowercase($offset);
|
39 |
+
return isset($this->container[$offset]);
|
40 |
+
}
|
41 |
+
|
42 |
+
public function offsetUnset($offset)
|
43 |
+
{
|
44 |
+
$offset = static::maybeLowercase($offset);
|
45 |
+
unset($this->container[$offset]);
|
46 |
+
}
|
47 |
+
|
48 |
+
public function offsetGet($offset)
|
49 |
+
{
|
50 |
+
$offset = static::maybeLowercase($offset);
|
51 |
+
return isset($this->container[$offset]) ? $this->container[$offset] : null;
|
52 |
+
}
|
53 |
+
|
54 |
+
private static function maybeLowercase($v)
|
55 |
+
{
|
56 |
+
if (is_string($v)) {
|
57 |
+
return strtolower($v);
|
58 |
+
} else {
|
59 |
+
return $v;
|
60 |
+
}
|
61 |
+
}
|
62 |
+
}
|
lib/stripe-gateway/lib/Util/DefaultLogger.php
ADDED
@@ -0,0 +1,18 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Util;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* A very basic implementation of LoggerInterface that has just enough
|
7 |
+
* functionality that it can be the default for this library.
|
8 |
+
*/
|
9 |
+
class DefaultLogger implements LoggerInterface
|
10 |
+
{
|
11 |
+
public function error($message, array $context = [])
|
12 |
+
{
|
13 |
+
if (count($context) > 0) {
|
14 |
+
throw new \Exception('DefaultLogger does not currently implement context. Please implement if you need it.');
|
15 |
+
}
|
16 |
+
error_log($message);
|
17 |
+
}
|
18 |
+
}
|
lib/stripe-gateway/lib/Util/LoggerInterface.php
ADDED
@@ -0,0 +1,36 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Util;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Describes a logger instance.
|
7 |
+
*
|
8 |
+
* This is a subset of the interface of the same name in the PSR-3 logger
|
9 |
+
* interface. We guarantee to keep it compatible, but we'd redefined it here so
|
10 |
+
* that we don't have to pull in the extra dependencies for users who don't want
|
11 |
+
* it.
|
12 |
+
*
|
13 |
+
* See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
|
14 |
+
* for the full interface specification.
|
15 |
+
*
|
16 |
+
* The message MUST be a string or object implementing __toString().
|
17 |
+
*
|
18 |
+
* The message MAY contain placeholders in the form: {foo} where foo
|
19 |
+
* will be replaced by the context data in key "foo".
|
20 |
+
*
|
21 |
+
* The context array can contain arbitrary data, the only assumption that
|
22 |
+
* can be made by implementors is that if an Exception instance is given
|
23 |
+
* to produce a stack trace, it MUST be in a key named "exception".
|
24 |
+
*/
|
25 |
+
interface LoggerInterface
|
26 |
+
{
|
27 |
+
/**
|
28 |
+
* Runtime errors that do not require immediate action but should typically
|
29 |
+
* be logged and monitored.
|
30 |
+
*
|
31 |
+
* @param string $message
|
32 |
+
* @param array $context
|
33 |
+
* @return void
|
34 |
+
*/
|
35 |
+
public function error($message, array $context = []);
|
36 |
+
}
|
lib/stripe-gateway/lib/Util/RandomGenerator.php
ADDED
@@ -0,0 +1,34 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe\Util;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* A basic random generator. This is in a separate class so we the generator
|
7 |
+
* can be injected as a dependency and replaced with a mock in tests.
|
8 |
+
*/
|
9 |
+
class RandomGenerator
|
10 |
+
{
|
11 |
+
/**
|
12 |
+
* Returns a random value between 0 and $max.
|
13 |
+
*
|
14 |
+
* @param float $max (optional)
|
15 |
+
* @return float
|
16 |
+
*/
|
17 |
+
public function randFloat($max = 1.0)
|
18 |
+
{
|
19 |
+
return mt_rand() / mt_getrandmax() * $max;
|
20 |
+
}
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Returns a v4 UUID.
|
24 |
+
*
|
25 |
+
* @return string
|
26 |
+
*/
|
27 |
+
public function uuid()
|
28 |
+
{
|
29 |
+
$arr = array_values(unpack('N1a/n4b/N1c', openssl_random_pseudo_bytes(16)));
|
30 |
+
$arr[2] = ($arr[2] & 0x0fff) | 0x4000;
|
31 |
+
$arr[3] = ($arr[3] & 0x3fff) | 0x8000;
|
32 |
+
return vsprintf('%08x-%04x-%04x-%04x-%04x%08x', $arr);
|
33 |
+
}
|
34 |
+
}
|
lib/stripe-gateway/lib/Util/RequestOptions.php
CHANGED
@@ -6,13 +6,23 @@ use Stripe\Error;
|
|
6 |
Â
|
7 |
Â
class RequestOptions
|
8 |
Â
{
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
9 |
Â
public $headers;
|
10 |
Â
public $apiKey;
|
Â
|
|
11 |
Â
|
12 |
-
public function __construct($key = null, $headers =
|
13 |
Â
{
|
14 |
Â
$this->apiKey = $key;
|
15 |
Â
$this->headers = $headers;
|
Â
|
|
16 |
Â
}
|
17 |
Â
|
18 |
Â
/**
|
@@ -28,10 +38,25 @@ class RequestOptions
|
|
28 |
Â
if ($other_options->apiKey === null) {
|
29 |
Â
$other_options->apiKey = $this->apiKey;
|
30 |
Â
}
|
Â
|
|
Â
|
|
Â
|
|
31 |
Â
$other_options->headers = array_merge($this->headers, $other_options->headers);
|
32 |
Â
return $other_options;
|
33 |
Â
}
|
34 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
35 |
Â
/**
|
36 |
Â
* Unpacks an options array into an RequestOptions object
|
37 |
Â
* @param array|string|null $options a key => value array
|
@@ -45,16 +70,17 @@ class RequestOptions
|
|
45 |
Â
}
|
46 |
Â
|
47 |
Â
if (is_null($options)) {
|
48 |
-
return new RequestOptions(null,
|
49 |
Â
}
|
50 |
Â
|
51 |
Â
if (is_string($options)) {
|
52 |
-
return new RequestOptions($options,
|
53 |
Â
}
|
54 |
Â
|
55 |
Â
if (is_array($options)) {
|
56 |
-
$headers =
|
57 |
Â
$key = null;
|
Â
|
|
58 |
Â
if (array_key_exists('api_key', $options)) {
|
59 |
Â
$key = $options['api_key'];
|
60 |
Â
}
|
@@ -67,7 +93,10 @@ class RequestOptions
|
|
67 |
Â
if (array_key_exists('stripe_version', $options)) {
|
68 |
Â
$headers['Stripe-Version'] = $options['stripe_version'];
|
69 |
Â
}
|
70 |
-
|
Â
|
|
Â
|
|
Â
|
|
71 |
Â
}
|
72 |
Â
|
73 |
Â
$message = 'The second argument to Stripe API method calls is an '
|
6 |
Â
|
7 |
Â
class RequestOptions
|
8 |
Â
{
|
9 |
+
/**
|
10 |
+
* @var array A list of headers that should be persisted across requests.
|
11 |
+
*/
|
12 |
+
public static $HEADERS_TO_PERSIST = [
|
13 |
+
'Stripe-Account',
|
14 |
+
'Stripe-Version',
|
15 |
+
];
|
16 |
+
|
17 |
Â
public $headers;
|
18 |
Â
public $apiKey;
|
19 |
+
public $apiBase;
|
20 |
Â
|
21 |
+
public function __construct($key = null, $headers = [], $base = null)
|
22 |
Â
{
|
23 |
Â
$this->apiKey = $key;
|
24 |
Â
$this->headers = $headers;
|
25 |
+
$this->apiBase = $base;
|
26 |
Â
}
|
27 |
Â
|
28 |
Â
/**
|
38 |
Â
if ($other_options->apiKey === null) {
|
39 |
Â
$other_options->apiKey = $this->apiKey;
|
40 |
Â
}
|
41 |
+
if ($other_options->apiBase === null) {
|
42 |
+
$other_options->apiBase = $this->apiBase;
|
43 |
+
}
|
44 |
Â
$other_options->headers = array_merge($this->headers, $other_options->headers);
|
45 |
Â
return $other_options;
|
46 |
Â
}
|
47 |
Â
|
48 |
+
/**
|
49 |
+
* Discards all headers that we don't want to persist across requests.
|
50 |
+
*/
|
51 |
+
public function discardNonPersistentHeaders()
|
52 |
+
{
|
53 |
+
foreach ($this->headers as $k => $v) {
|
54 |
+
if (!in_array($k, self::$HEADERS_TO_PERSIST)) {
|
55 |
+
unset($this->headers[$k]);
|
56 |
+
}
|
57 |
+
}
|
58 |
+
}
|
59 |
+
|
60 |
Â
/**
|
61 |
Â
* Unpacks an options array into an RequestOptions object
|
62 |
Â
* @param array|string|null $options a key => value array
|
70 |
Â
}
|
71 |
Â
|
72 |
Â
if (is_null($options)) {
|
73 |
+
return new RequestOptions(null, [], null);
|
74 |
Â
}
|
75 |
Â
|
76 |
Â
if (is_string($options)) {
|
77 |
+
return new RequestOptions($options, [], null);
|
78 |
Â
}
|
79 |
Â
|
80 |
Â
if (is_array($options)) {
|
81 |
+
$headers = [];
|
82 |
Â
$key = null;
|
83 |
+
$base = null;
|
84 |
Â
if (array_key_exists('api_key', $options)) {
|
85 |
Â
$key = $options['api_key'];
|
86 |
Â
}
|
93 |
Â
if (array_key_exists('stripe_version', $options)) {
|
94 |
Â
$headers['Stripe-Version'] = $options['stripe_version'];
|
95 |
Â
}
|
96 |
+
if (array_key_exists('api_base', $options)) {
|
97 |
+
$base = $options['api_base'];
|
98 |
+
}
|
99 |
+
return new RequestOptions($key, $headers, $base);
|
100 |
Â
}
|
101 |
Â
|
102 |
Â
$message = 'The second argument to Stripe API method calls is an '
|
lib/stripe-gateway/lib/Util/Set.php
CHANGED
@@ -9,9 +9,9 @@ class Set implements IteratorAggregate
|
|
9 |
Â
{
|
10 |
Â
private $_elts;
|
11 |
Â
|
12 |
-
public function __construct($members =
|
13 |
Â
{
|
14 |
-
$this->_elts =
|
15 |
Â
foreach ($members as $item) {
|
16 |
Â
$this->_elts[$item] = true;
|
17 |
Â
}
|
9 |
Â
{
|
10 |
Â
private $_elts;
|
11 |
Â
|
12 |
+
public function __construct($members = [])
|
13 |
Â
{
|
14 |
+
$this->_elts = [];
|
15 |
Â
foreach ($members as $item) {
|
16 |
Â
$this->_elts[$item] = true;
|
17 |
Â
}
|
lib/stripe-gateway/lib/Util/Util.php
CHANGED
@@ -7,24 +7,26 @@ use Stripe\StripeObject;
|
|
7 |
Â
abstract class Util
|
8 |
Â
{
|
9 |
Â
private static $isMbstringAvailable = null;
|
Â
|
|
10 |
Â
|
11 |
Â
/**
|
12 |
Â
* Whether the provided array (or other) is a list rather than a dictionary.
|
Â
|
|
Â
|
|
13 |
Â
*
|
14 |
Â
* @param array|mixed $array
|
15 |
-
* @return boolean
|
16 |
Â
*/
|
17 |
Â
public static function isList($array)
|
18 |
Â
{
|
19 |
Â
if (!is_array($array)) {
|
20 |
Â
return false;
|
21 |
Â
}
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
}
|
28 |
Â
}
|
29 |
Â
return true;
|
30 |
Â
}
|
@@ -37,7 +39,7 @@ abstract class Util
|
|
37 |
Â
*/
|
38 |
Â
public static function convertStripeObjectToArray($values)
|
39 |
Â
{
|
40 |
-
$results =
|
41 |
Â
foreach ($values as $k => $v) {
|
42 |
Â
// FIXME: this is an encapsulation violation
|
43 |
Â
if ($k[0] == '_') {
|
@@ -63,40 +65,92 @@ abstract class Util
|
|
63 |
Â
*/
|
64 |
Â
public static function convertToStripeObject($resp, $opts)
|
65 |
Â
{
|
66 |
-
$types =
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
98 |
Â
if (self::isList($resp)) {
|
99 |
-
$mapped =
|
100 |
Â
foreach ($resp as $i) {
|
101 |
Â
array_push($mapped, self::convertToStripeObject($i, $opts));
|
102 |
Â
}
|
@@ -138,4 +192,169 @@ abstract class Util
|
|
138 |
Â
return $value;
|
139 |
Â
}
|
140 |
Â
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
141 |
Â
}
|
7 |
Â
abstract class Util
|
8 |
Â
{
|
9 |
Â
private static $isMbstringAvailable = null;
|
10 |
+
private static $isHashEqualsAvailable = null;
|
11 |
Â
|
12 |
Â
/**
|
13 |
Â
* Whether the provided array (or other) is a list rather than a dictionary.
|
14 |
+
* A list is defined as an array for which all the keys are consecutive
|
15 |
+
* integers starting at 0. Empty arrays are considered to be lists.
|
16 |
Â
*
|
17 |
Â
* @param array|mixed $array
|
18 |
+
* @return boolean true if the given object is a list.
|
19 |
Â
*/
|
20 |
Â
public static function isList($array)
|
21 |
Â
{
|
22 |
Â
if (!is_array($array)) {
|
23 |
Â
return false;
|
24 |
Â
}
|
25 |
+
if ($array === []) {
|
26 |
+
return true;
|
27 |
+
}
|
28 |
+
if (array_keys($array) !== range(0, count($array) - 1)) {
|
29 |
+
return false;
|
Â
|
|
30 |
Â
}
|
31 |
Â
return true;
|
32 |
Â
}
|
39 |
Â
*/
|
40 |
Â
public static function convertStripeObjectToArray($values)
|
41 |
Â
{
|
42 |
+
$results = [];
|
43 |
Â
foreach ($values as $k => $v) {
|
44 |
Â
// FIXME: this is an encapsulation violation
|
45 |
Â
if ($k[0] == '_') {
|
65 |
Â
*/
|
66 |
Â
public static function convertToStripeObject($resp, $opts)
|
67 |
Â
{
|
68 |
+
$types = [
|
69 |
+
// data structures
|
70 |
+
\Stripe\Collection::OBJECT_NAME => 'Stripe\\Collection',
|
71 |
+
|
72 |
+
// business objects
|
73 |
+
\Stripe\Account::OBJECT_NAME => 'Stripe\\Account',
|
74 |
+
\Stripe\AccountLink::OBJECT_NAME => 'Stripe\\AccountLink',
|
75 |
+
\Stripe\AlipayAccount::OBJECT_NAME => 'Stripe\\AlipayAccount',
|
76 |
+
\Stripe\ApplePayDomain::OBJECT_NAME => 'Stripe\\ApplePayDomain',
|
77 |
+
\Stripe\ApplicationFee::OBJECT_NAME => 'Stripe\\ApplicationFee',
|
78 |
+
\Stripe\Balance::OBJECT_NAME => 'Stripe\\Balance',
|
79 |
+
\Stripe\BalanceTransaction::OBJECT_NAME => 'Stripe\\BalanceTransaction',
|
80 |
+
\Stripe\BankAccount::OBJECT_NAME => 'Stripe\\BankAccount',
|
81 |
+
\Stripe\BitcoinReceiver::OBJECT_NAME => 'Stripe\\BitcoinReceiver',
|
82 |
+
\Stripe\BitcoinTransaction::OBJECT_NAME => 'Stripe\\BitcoinTransaction',
|
83 |
+
\Stripe\Capability::OBJECT_NAME => 'Stripe\\Capability',
|
84 |
+
\Stripe\Card::OBJECT_NAME => 'Stripe\\Card',
|
85 |
+
\Stripe\Charge::OBJECT_NAME => 'Stripe\\Charge',
|
86 |
+
\Stripe\Checkout\Session::OBJECT_NAME => 'Stripe\\Checkout\\Session',
|
87 |
+
\Stripe\CountrySpec::OBJECT_NAME => 'Stripe\\CountrySpec',
|
88 |
+
\Stripe\Coupon::OBJECT_NAME => 'Stripe\\Coupon',
|
89 |
+
\Stripe\CreditNote::OBJECT_NAME => 'Stripe\\CreditNote',
|
90 |
+
\Stripe\Customer::OBJECT_NAME => 'Stripe\\Customer',
|
91 |
+
\Stripe\CustomerBalanceTransaction::OBJECT_NAME => 'Stripe\\CustomerBalanceTransaction',
|
92 |
+
\Stripe\Discount::OBJECT_NAME => 'Stripe\\Discount',
|
93 |
+
\Stripe\Dispute::OBJECT_NAME => 'Stripe\\Dispute',
|
94 |
+
\Stripe\EphemeralKey::OBJECT_NAME => 'Stripe\\EphemeralKey',
|
95 |
+
\Stripe\Event::OBJECT_NAME => 'Stripe\\Event',
|
96 |
+
\Stripe\ExchangeRate::OBJECT_NAME => 'Stripe\\ExchangeRate',
|
97 |
+
\Stripe\ApplicationFeeRefund::OBJECT_NAME => 'Stripe\\ApplicationFeeRefund',
|
98 |
+
\Stripe\File::OBJECT_NAME => 'Stripe\\File',
|
99 |
+
\Stripe\File::OBJECT_NAME_ALT => 'Stripe\\File',
|
100 |
+
\Stripe\FileLink::OBJECT_NAME => 'Stripe\\FileLink',
|
101 |
+
\Stripe\Invoice::OBJECT_NAME => 'Stripe\\Invoice',
|
102 |
+
\Stripe\InvoiceItem::OBJECT_NAME => 'Stripe\\InvoiceItem',
|
103 |
+
\Stripe\InvoiceLineItem::OBJECT_NAME => 'Stripe\\InvoiceLineItem',
|
104 |
+
\Stripe\IssuerFraudRecord::OBJECT_NAME => 'Stripe\\IssuerFraudRecord',
|
105 |
+
\Stripe\Issuing\Authorization::OBJECT_NAME => 'Stripe\\Issuing\\Authorization',
|
106 |
+
\Stripe\Issuing\Card::OBJECT_NAME => 'Stripe\\Issuing\\Card',
|
107 |
+
\Stripe\Issuing\CardDetails::OBJECT_NAME => 'Stripe\\Issuing\\CardDetails',
|
108 |
+
\Stripe\Issuing\Cardholder::OBJECT_NAME => 'Stripe\\Issuing\\Cardholder',
|
109 |
+
\Stripe\Issuing\Dispute::OBJECT_NAME => 'Stripe\\Issuing\\Dispute',
|
110 |
+
\Stripe\Issuing\Transaction::OBJECT_NAME => 'Stripe\\Issuing\\Transaction',
|
111 |
+
\Stripe\LoginLink::OBJECT_NAME => 'Stripe\\LoginLink',
|
112 |
+
\Stripe\Order::OBJECT_NAME => 'Stripe\\Order',
|
113 |
+
\Stripe\OrderItem::OBJECT_NAME => 'Stripe\\OrderItem',
|
114 |
+
\Stripe\OrderReturn::OBJECT_NAME => 'Stripe\\OrderReturn',
|
115 |
+
\Stripe\PaymentIntent::OBJECT_NAME => 'Stripe\\PaymentIntent',
|
116 |
+
\Stripe\PaymentMethod::OBJECT_NAME => 'Stripe\\PaymentMethod',
|
117 |
+
\Stripe\Payout::OBJECT_NAME => 'Stripe\\Payout',
|
118 |
+
\Stripe\Person::OBJECT_NAME => 'Stripe\\Person',
|
119 |
+
\Stripe\Plan::OBJECT_NAME => 'Stripe\\Plan',
|
120 |
+
\Stripe\Product::OBJECT_NAME => 'Stripe\\Product',
|
121 |
+
\Stripe\Radar\EarlyFraudWarning::OBJECT_NAME => 'Stripe\\Radar\\EarlyFraudWarning',
|
122 |
+
\Stripe\Radar\ValueList::OBJECT_NAME => 'Stripe\\Radar\\ValueList',
|
123 |
+
\Stripe\Radar\ValueListItem::OBJECT_NAME => 'Stripe\\Radar\\ValueListItem',
|
124 |
+
\Stripe\Recipient::OBJECT_NAME => 'Stripe\\Recipient',
|
125 |
+
\Stripe\RecipientTransfer::OBJECT_NAME => 'Stripe\\RecipientTransfer',
|
126 |
+
\Stripe\Refund::OBJECT_NAME => 'Stripe\\Refund',
|
127 |
+
\Stripe\Reporting\ReportRun::OBJECT_NAME => 'Stripe\\Reporting\\ReportRun',
|
128 |
+
\Stripe\Reporting\ReportType::OBJECT_NAME => 'Stripe\\Reporting\\ReportType',
|
129 |
+
\Stripe\Review::OBJECT_NAME => 'Stripe\\Review',
|
130 |
+
\Stripe\SetupIntent::OBJECT_NAME => 'Stripe\\SetupIntent',
|
131 |
+
\Stripe\SKU::OBJECT_NAME => 'Stripe\\SKU',
|
132 |
+
\Stripe\Sigma\ScheduledQueryRun::OBJECT_NAME => 'Stripe\\Sigma\\ScheduledQueryRun',
|
133 |
+
\Stripe\Source::OBJECT_NAME => 'Stripe\\Source',
|
134 |
+
\Stripe\SourceTransaction::OBJECT_NAME => 'Stripe\\SourceTransaction',
|
135 |
+
\Stripe\Subscription::OBJECT_NAME => 'Stripe\\Subscription',
|
136 |
+
\Stripe\SubscriptionItem::OBJECT_NAME => 'Stripe\\SubscriptionItem',
|
137 |
+
\Stripe\SubscriptionSchedule::OBJECT_NAME => 'Stripe\\SubscriptionSchedule',
|
138 |
+
\Stripe\TaxId::OBJECT_NAME => 'Stripe\\TaxId',
|
139 |
+
\Stripe\TaxRate::OBJECT_NAME => 'Stripe\\TaxRate',
|
140 |
+
\Stripe\ThreeDSecure::OBJECT_NAME => 'Stripe\\ThreeDSecure',
|
141 |
+
\Stripe\Terminal\ConnectionToken::OBJECT_NAME => 'Stripe\\Terminal\\ConnectionToken',
|
142 |
+
\Stripe\Terminal\Location::OBJECT_NAME => 'Stripe\\Terminal\\Location',
|
143 |
+
\Stripe\Terminal\Reader::OBJECT_NAME => 'Stripe\\Terminal\\Reader',
|
144 |
+
\Stripe\Token::OBJECT_NAME => 'Stripe\\Token',
|
145 |
+
\Stripe\Topup::OBJECT_NAME => 'Stripe\\Topup',
|
146 |
+
\Stripe\Transfer::OBJECT_NAME => 'Stripe\\Transfer',
|
147 |
+
\Stripe\TransferReversal::OBJECT_NAME => 'Stripe\\TransferReversal',
|
148 |
+
\Stripe\UsageRecord::OBJECT_NAME => 'Stripe\\UsageRecord',
|
149 |
+
\Stripe\UsageRecordSummary::OBJECT_NAME => 'Stripe\\UsageRecordSummary',
|
150 |
+
\Stripe\WebhookEndpoint::OBJECT_NAME => 'Stripe\\WebhookEndpoint',
|
151 |
+
];
|
152 |
Â
if (self::isList($resp)) {
|
153 |
+
$mapped = [];
|
154 |
Â
foreach ($resp as $i) {
|
155 |
Â
array_push($mapped, self::convertToStripeObject($i, $opts));
|
156 |
Â
}
|
192 |
Â
return $value;
|
193 |
Â
}
|
194 |
Â
}
|
195 |
+
|
196 |
+
/**
|
197 |
+
* Compares two strings for equality. The time taken is independent of the
|
198 |
+
* number of characters that match.
|
199 |
+
*
|
200 |
+
* @param string $a one of the strings to compare.
|
201 |
+
* @param string $b the other string to compare.
|
202 |
+
* @return bool true if the strings are equal, false otherwise.
|
203 |
+
*/
|
204 |
+
public static function secureCompare($a, $b)
|
205 |
+
{
|
206 |
+
if (self::$isHashEqualsAvailable === null) {
|
207 |
+
self::$isHashEqualsAvailable = function_exists('hash_equals');
|
208 |
+
}
|
209 |
+
|
210 |
+
if (self::$isHashEqualsAvailable) {
|
211 |
+
return hash_equals($a, $b);
|
212 |
+
} else {
|
213 |
+
if (strlen($a) != strlen($b)) {
|
214 |
+
return false;
|
215 |
+
}
|
216 |
+
|
217 |
+
$result = 0;
|
218 |
+
for ($i = 0; $i < strlen($a); $i++) {
|
219 |
+
$result |= ord($a[$i]) ^ ord($b[$i]);
|
220 |
+
}
|
221 |
+
return ($result == 0);
|
222 |
+
}
|
223 |
+
}
|
224 |
+
|
225 |
+
/**
|
226 |
+
* Recursively goes through an array of parameters. If a parameter is an instance of
|
227 |
+
* ApiResource, then it is replaced by the resource's ID.
|
228 |
+
* Also clears out null values.
|
229 |
+
*
|
230 |
+
* @param mixed $h
|
231 |
+
* @return mixed
|
232 |
+
*/
|
233 |
+
public static function objectsToIds($h)
|
234 |
+
{
|
235 |
+
if ($h instanceof \Stripe\ApiResource) {
|
236 |
+
return $h->id;
|
237 |
+
} elseif (static::isList($h)) {
|
238 |
+
$results = [];
|
239 |
+
foreach ($h as $v) {
|
240 |
+
array_push($results, static::objectsToIds($v));
|
241 |
+
}
|
242 |
+
return $results;
|
243 |
+
} elseif (is_array($h)) {
|
244 |
+
$results = [];
|
245 |
+
foreach ($h as $k => $v) {
|
246 |
+
if (is_null($v)) {
|
247 |
+
continue;
|
248 |
+
}
|
249 |
+
$results[$k] = static::objectsToIds($v);
|
250 |
+
}
|
251 |
+
return $results;
|
252 |
+
} else {
|
253 |
+
return $h;
|
254 |
+
}
|
255 |
+
}
|
256 |
+
|
257 |
+
/**
|
258 |
+
* @param array $params
|
259 |
+
*
|
260 |
+
* @return string
|
261 |
+
*/
|
262 |
+
public static function encodeParameters($params)
|
263 |
+
{
|
264 |
+
$flattenedParams = self::flattenParams($params);
|
265 |
+
$pieces = [];
|
266 |
+
foreach ($flattenedParams as $param) {
|
267 |
+
list($k, $v) = $param;
|
268 |
+
array_push($pieces, self::urlEncode($k) . '=' . self::urlEncode($v));
|
269 |
+
}
|
270 |
+
return implode('&', $pieces);
|
271 |
+
}
|
272 |
+
|
273 |
+
/**
|
274 |
+
* @param array $params
|
275 |
+
* @param string|null $parentKey
|
276 |
+
*
|
277 |
+
* @return array
|
278 |
+
*/
|
279 |
+
public static function flattenParams($params, $parentKey = null)
|
280 |
+
{
|
281 |
+
$result = [];
|
282 |
+
|
283 |
+
foreach ($params as $key => $value) {
|
284 |
+
$calculatedKey = $parentKey ? "{$parentKey}[{$key}]" : $key;
|
285 |
+
|
286 |
+
if (self::isList($value)) {
|
287 |
+
$result = array_merge($result, self::flattenParamsList($value, $calculatedKey));
|
288 |
+
} elseif (is_array($value)) {
|
289 |
+
$result = array_merge($result, self::flattenParams($value, $calculatedKey));
|
290 |
+
} else {
|
291 |
+
array_push($result, [$calculatedKey, $value]);
|
292 |
+
}
|
293 |
+
}
|
294 |
+
|
295 |
+
return $result;
|
296 |
+
}
|
297 |
+
|
298 |
+
/**
|
299 |
+
* @param array $value
|
300 |
+
* @param string $calculatedKey
|
301 |
+
*
|
302 |
+
* @return array
|
303 |
+
*/
|
304 |
+
public static function flattenParamsList($value, $calculatedKey)
|
305 |
+
{
|
306 |
+
$result = [];
|
307 |
+
|
308 |
+
foreach ($value as $i => $elem) {
|
309 |
+
if (self::isList($elem)) {
|
310 |
+
$result = array_merge($result, self::flattenParamsList($elem, $calculatedKey));
|
311 |
+
} elseif (is_array($elem)) {
|
312 |
+
$result = array_merge($result, self::flattenParams($elem, "{$calculatedKey}[{$i}]"));
|
313 |
+
} else {
|
314 |
+
array_push($result, ["{$calculatedKey}[{$i}]", $elem]);
|
315 |
+
}
|
316 |
+
}
|
317 |
+
|
318 |
+
return $result;
|
319 |
+
}
|
320 |
+
|
321 |
+
/**
|
322 |
+
* @param string $key A string to URL-encode.
|
323 |
+
*
|
324 |
+
* @return string The URL-encoded string.
|
325 |
+
*/
|
326 |
+
public static function urlEncode($key)
|
327 |
+
{
|
328 |
+
$s = urlencode($key);
|
329 |
+
|
330 |
+
// Don't use strict form encoding by changing the square bracket control
|
331 |
+
// characters back to their literals. This is fine by the server, and
|
332 |
+
// makes these parameter strings easier to read.
|
333 |
+
$s = str_replace('%5B', '[', $s);
|
334 |
+
$s = str_replace('%5D', ']', $s);
|
335 |
+
|
336 |
+
return $s;
|
337 |
+
}
|
338 |
+
|
339 |
+
public static function normalizeId($id)
|
340 |
+
{
|
341 |
+
if (is_array($id)) {
|
342 |
+
$params = $id;
|
343 |
+
$id = $params['id'];
|
344 |
+
unset($params['id']);
|
345 |
+
} else {
|
346 |
+
$params = [];
|
347 |
+
}
|
348 |
+
return [$id, $params];
|
349 |
+
}
|
350 |
+
|
351 |
+
/**
|
352 |
+
* Returns UNIX timestamp in milliseconds
|
353 |
+
*
|
354 |
+
* @return integer current time in millis
|
355 |
+
*/
|
356 |
+
public static function currentTimeMillis()
|
357 |
+
{
|
358 |
+
return (int) round(microtime(true) * 1000);
|
359 |
+
}
|
360 |
Â
}
|
lib/stripe-gateway/lib/Webhook.php
ADDED
@@ -0,0 +1,40 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
abstract class Webhook
|
6 |
+
{
|
7 |
+
const DEFAULT_TOLERANCE = 300;
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Returns an Event instance using the provided JSON payload. Throws a
|
11 |
+
* \UnexpectedValueException if the payload is not valid JSON, and a
|
12 |
+
* \Stripe\SignatureVerificationException if the signature verification
|
13 |
+
* fails for any reason.
|
14 |
+
*
|
15 |
+
* @param string $payload the payload sent by Stripe.
|
16 |
+
* @param string $sigHeader the contents of the signature header sent by
|
17 |
+
* Stripe.
|
18 |
+
* @param string $secret secret used to generate the signature.
|
19 |
+
* @param int $tolerance maximum difference allowed between the header's
|
20 |
+
* timestamp and the current time
|
21 |
+
* @return \Stripe\Event the Event instance
|
22 |
+
* @throws \UnexpectedValueException if the payload is not valid JSON,
|
23 |
+
* @throws \Stripe\Error\SignatureVerification if the verification fails.
|
24 |
+
*/
|
25 |
+
public static function constructEvent($payload, $sigHeader, $secret, $tolerance = self::DEFAULT_TOLERANCE)
|
26 |
+
{
|
27 |
+
WebhookSignature::verifyHeader($payload, $sigHeader, $secret, $tolerance);
|
28 |
+
|
29 |
+
$data = json_decode($payload, true);
|
30 |
+
$jsonError = json_last_error();
|
31 |
+
if ($data === null && $jsonError !== JSON_ERROR_NONE) {
|
32 |
+
$msg = "Invalid payload: $payload "
|
33 |
+
. "(json_last_error() was $jsonError)";
|
34 |
+
throw new \UnexpectedValueException($msg);
|
35 |
+
}
|
36 |
+
$event = Event::constructFrom($data);
|
37 |
+
|
38 |
+
return $event;
|
39 |
+
}
|
40 |
+
}
|
lib/stripe-gateway/lib/WebhookEndpoint.php
ADDED
@@ -0,0 +1,28 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class WebhookEndpoint
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $created
|
11 |
+
* @property string[] $enabled_events
|
12 |
+
* @property bool $livemode
|
13 |
+
* @property string $secret
|
14 |
+
* @property string $status
|
15 |
+
* @property string $url
|
16 |
+
*
|
17 |
+
* @package Stripe
|
18 |
+
*/
|
19 |
+
class WebhookEndpoint extends ApiResource
|
20 |
+
{
|
21 |
+
const OBJECT_NAME = "webhook_endpoint";
|
22 |
+
|
23 |
+
use ApiOperations\All;
|
24 |
+
use ApiOperations\Create;
|
25 |
+
use ApiOperations\Delete;
|
26 |
+
use ApiOperations\Retrieve;
|
27 |
+
use ApiOperations\Update;
|
28 |
+
}
|
lib/stripe-gateway/lib/WebhookSignature.php
ADDED
@@ -0,0 +1,133 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
abstract class WebhookSignature
|
6 |
+
{
|
7 |
+
const EXPECTED_SCHEME = "v1";
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Verifies the signature header sent by Stripe. Throws a
|
11 |
+
* SignatureVerification exception if the verification fails for any
|
12 |
+
* reason.
|
13 |
+
*
|
14 |
+
* @param string $payload the payload sent by Stripe.
|
15 |
+
* @param string $header the contents of the signature header sent by
|
16 |
+
* Stripe.
|
17 |
+
* @param string $secret secret used to generate the signature.
|
18 |
+
* @param int $tolerance maximum difference allowed between the header's
|
19 |
+
* timestamp and the current time
|
20 |
+
* @throws \Stripe\Error\SignatureVerification if the verification fails.
|
21 |
+
* @return bool
|
22 |
+
*/
|
23 |
+
public static function verifyHeader($payload, $header, $secret, $tolerance = null)
|
24 |
+
{
|
25 |
+
// Extract timestamp and signatures from header
|
26 |
+
$timestamp = self::getTimestamp($header);
|
27 |
+
$signatures = self::getSignatures($header, self::EXPECTED_SCHEME);
|
28 |
+
if ($timestamp == -1) {
|
29 |
+
throw new Error\SignatureVerification(
|
30 |
+
"Unable to extract timestamp and signatures from header",
|
31 |
+
$header,
|
32 |
+
$payload
|
33 |
+
);
|
34 |
+
}
|
35 |
+
if (empty($signatures)) {
|
36 |
+
throw new Error\SignatureVerification(
|
37 |
+
"No signatures found with expected scheme",
|
38 |
+
$header,
|
39 |
+
$payload
|
40 |
+
);
|
41 |
+
}
|
42 |
+
|
43 |
+
// Check if expected signature is found in list of signatures from
|
44 |
+
// header
|
45 |
+
$signedPayload = "$timestamp.$payload";
|
46 |
+
$expectedSignature = self::computeSignature($signedPayload, $secret);
|
47 |
+
$signatureFound = false;
|
48 |
+
foreach ($signatures as $signature) {
|
49 |
+
if (Util\Util::secureCompare($expectedSignature, $signature)) {
|
50 |
+
$signatureFound = true;
|
51 |
+
break;
|
52 |
+
}
|
53 |
+
}
|
54 |
+
if (!$signatureFound) {
|
55 |
+
throw new Error\SignatureVerification(
|
56 |
+
"No signatures found matching the expected signature for payload",
|
57 |
+
$header,
|
58 |
+
$payload
|
59 |
+
);
|
60 |
+
}
|
61 |
+
|
62 |
+
// Check if timestamp is within tolerance
|
63 |
+
if (($tolerance > 0) && (abs(time() - $timestamp) > $tolerance)) {
|
64 |
+
throw new Error\SignatureVerification(
|
65 |
+
"Timestamp outside the tolerance zone",
|
66 |
+
$header,
|
67 |
+
$payload
|
68 |
+
);
|
69 |
+
}
|
70 |
+
|
71 |
+
return true;
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* Extracts the timestamp in a signature header.
|
76 |
+
*
|
77 |
+
* @param string $header the signature header
|
78 |
+
* @return int the timestamp contained in the header, or -1 if no valid
|
79 |
+
* timestamp is found
|
80 |
+
*/
|
81 |
+
private static function getTimestamp($header)
|
82 |
+
{
|
83 |
+
$items = explode(",", $header);
|
84 |
+
|
85 |
+
foreach ($items as $item) {
|
86 |
+
$itemParts = explode("=", $item, 2);
|
87 |
+
if ($itemParts[0] == "t") {
|
88 |
+
if (!is_numeric($itemParts[1])) {
|
89 |
+
return -1;
|
90 |
+
}
|
91 |
+
return intval($itemParts[1]);
|
92 |
+
}
|
93 |
+
}
|
94 |
+
|
95 |
+
return -1;
|
96 |
+
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Extracts the signatures matching a given scheme in a signature header.
|
100 |
+
*
|
101 |
+
* @param string $header the signature header
|
102 |
+
* @param string $scheme the signature scheme to look for.
|
103 |
+
* @return array the list of signatures matching the provided scheme.
|
104 |
+
*/
|
105 |
+
private static function getSignatures($header, $scheme)
|
106 |
+
{
|
107 |
+
$signatures = [];
|
108 |
+
$items = explode(",", $header);
|
109 |
+
|
110 |
+
foreach ($items as $item) {
|
111 |
+
$itemParts = explode("=", $item, 2);
|
112 |
+
if ($itemParts[0] == $scheme) {
|
113 |
+
array_push($signatures, $itemParts[1]);
|
114 |
+
}
|
115 |
+
}
|
116 |
+
|
117 |
+
return $signatures;
|
118 |
+
}
|
119 |
+
|
120 |
+
/**
|
121 |
+
* Computes the signature for a given payload and secret.
|
122 |
+
*
|
123 |
+
* The current scheme used by Stripe ("v1") is HMAC/SHA-256.
|
124 |
+
*
|
125 |
+
* @param string $payload the payload to sign.
|
126 |
+
* @param string $secret the secret used to generate the signature.
|
127 |
+
* @return string the signature as a string.
|
128 |
+
*/
|
129 |
+
private static function computeSignature($payload, $secret)
|
130 |
+
{
|
131 |
+
return hash_hmac("sha256", $payload, $secret);
|
132 |
+
}
|
133 |
+
}
|
lib/stripe-gateway/update_certs.php
ADDED
@@ -0,0 +1,19 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
#!/usr/bin/env php
|
2 |
+
<?php
|
3 |
+
chdir(dirname(__FILE__));
|
4 |
+
|
5 |
+
set_time_limit(0); // unlimited max execution time
|
6 |
+
|
7 |
+
$fp = fopen(dirname(__FILE__) . '/data/ca-certificates.crt', 'w+');
|
8 |
+
|
9 |
+
$options = array(
|
10 |
+
CURLOPT_FILE => $fp,
|
11 |
+
CURLOPT_TIMEOUT => 3600,
|
12 |
+
CURLOPT_URL => 'https://curl.haxx.se/ca/cacert.pem',
|
13 |
+
);
|
14 |
+
|
15 |
+
$ch = curl_init();
|
16 |
+
curl_setopt_array($ch, $options);
|
17 |
+
curl_exec($ch);
|
18 |
+
curl_close($ch);
|
19 |
+
fclose($fp);
|
lib/stripe-util-functions.php
CHANGED
@@ -5,10 +5,8 @@
|
|
5 |
Â
class StripeUtilFunctions {
|
6 |
Â
|
7 |
Â
public static function get_stripe_plan_info($api_key, $plan_id) {
|
8 |
-
|
9 |
-
|
10 |
-
}
|
11 |
-
|
12 |
Â
$stripe_err = '';
|
13 |
Â
|
14 |
Â
try {
|
5 |
Â
class StripeUtilFunctions {
|
6 |
Â
|
7 |
Â
public static function get_stripe_plan_info($api_key, $plan_id) {
|
8 |
+
SwpmMiscUtils::load_stripe_lib();
|
9 |
+
|
Â
|
|
Â
|
|
10 |
Â
$stripe_err = '';
|
11 |
Â
|
12 |
Â
try {
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: smp7, wp.insider
|
|
3 |
Â
Donate link: https://simple-membership-plugin.com/
|
4 |
Â
Tags: member, members, members only, membership, memberships, register, WordPress membership plugin, content, content protection, paypal, restrict, restrict access, Restrict content, admin, access control, subscription, teaser, protection, profile, login, login page, bbpress, stripe, braintree
|
5 |
Â
Requires at least: 4.0
|
6 |
-
Tested up to: 5.
|
7 |
-
Stable tag: 3.
|
8 |
Â
License: GPLv2 or later
|
9 |
Â
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
Â
|
@@ -158,6 +158,19 @@ https://simple-membership-plugin.com/
|
|
158 |
Â
|
159 |
Â
== Changelog ==
|
160 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
161 |
Â
= 3.8.9 =
|
162 |
Â
- Added a new feature in the email settings menu to allow disabling of the "Account Upgraded" email notification.
|
163 |
Â
|
3 |
Â
Donate link: https://simple-membership-plugin.com/
|
4 |
Â
Tags: member, members, members only, membership, memberships, register, WordPress membership plugin, content, content protection, paypal, restrict, restrict access, Restrict content, admin, access control, subscription, teaser, protection, profile, login, login page, bbpress, stripe, braintree
|
5 |
Â
Requires at least: 4.0
|
6 |
+
Tested up to: 5.3
|
7 |
+
Stable tag: 3.9.2
|
8 |
Â
License: GPLv2 or later
|
9 |
Â
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
Â
|
158 |
Â
|
159 |
Â
== Changelog ==
|
160 |
Â
|
161 |
+
= 3.9.2 =
|
162 |
+
- Spanish translation language files updated.
|
163 |
+
- Added more debug logging statement in the IPN handling script for easier troubleshooting.
|
164 |
+
- Fixed an issue with the new SCA stripe subscription cancellation webhook.
|
165 |
+
|
166 |
+
= 3.9.1 =
|
167 |
+
- Fixed excessive debug log output in the log file when the New SCA compatible Stripe subscription button is used.
|
168 |
+
- Stripe library is only loaded if another plugin hasn't loaded it already.
|
169 |
+
|
170 |
+
= 3.9.0 =
|
171 |
+
- Added new Stripe SCA button types. You can now go to the Payments -> Create New Button interface to create SCA compatible Stripe payment buttons.
|
172 |
+
- Please note that we have tested the new SCA compatible buttons. However, it may have some compatibility issues that we will be addressing over the next few days as we receive feedback from the users.
|
173 |
+
|
174 |
Â
= 3.8.9 =
|
175 |
Â
- Added a new feature in the email settings menu to allow disabling of the "Account Upgraded" email notification.
|
176 |
Â
|
simple-wp-membership.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
Â
<?php
|
2 |
Â
/*
|
3 |
Â
Plugin Name: Simple WordPress Membership
|
4 |
-
Version: 3.
|
5 |
Â
Plugin URI: https://simple-membership-plugin.com/
|
6 |
Â
Author: smp7, wp.insider
|
7 |
Â
Author URI: https://simple-membership-plugin.com/
|
@@ -19,7 +19,7 @@ include_once('classes/class.simple-wp-membership.php');
|
|
19 |
Â
include_once('classes/class.swpm-cronjob.php');
|
20 |
Â
include_once('swpm-compat.php');
|
21 |
Â
|
22 |
-
define('SIMPLE_WP_MEMBERSHIP_VER', '3.
|
23 |
Â
define('SIMPLE_WP_MEMBERSHIP_DB_VER', '1.3');
|
24 |
Â
define('SIMPLE_WP_MEMBERSHIP_SITE_HOME_URL', home_url());
|
25 |
Â
define('SIMPLE_WP_MEMBERSHIP_PATH', dirname(__FILE__) . '/');
|
1 |
Â
<?php
|
2 |
Â
/*
|
3 |
Â
Plugin Name: Simple WordPress Membership
|
4 |
+
Version: 3.9.2
|
5 |
Â
Plugin URI: https://simple-membership-plugin.com/
|
6 |
Â
Author: smp7, wp.insider
|
7 |
Â
Author URI: https://simple-membership-plugin.com/
|
19 |
Â
include_once('classes/class.swpm-cronjob.php');
|
20 |
Â
include_once('swpm-compat.php');
|
21 |
Â
|
22 |
+
define('SIMPLE_WP_MEMBERSHIP_VER', '3.9.2');
|
23 |
Â
define('SIMPLE_WP_MEMBERSHIP_DB_VER', '1.3');
|
24 |
Â
define('SIMPLE_WP_MEMBERSHIP_SITE_HOME_URL', home_url());
|
25 |
Â
define('SIMPLE_WP_MEMBERSHIP_PATH', dirname(__FILE__) . '/');
|
views/payments/admin_create_payment_buttons.php
CHANGED
@@ -1,59 +1,65 @@
|
|
1 |
-
<?php
|
2 |
-
//Render the create new payment button tab
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
//Render the create new payment button tab
|
3 |
+
|
4 |
+
require_once SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/admin_paypal_buy_now_button.php';
|
5 |
+
require_once SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/admin_paypal_subscription_button.php';
|
6 |
+
require_once SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/admin_paypal_smart_checkout_button.php';
|
7 |
+
require_once SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/admin_stripe_buy_now_button.php';
|
8 |
+
require_once SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php';
|
9 |
+
require_once SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/admin_stripe_subscription_button.php';
|
10 |
+
require_once SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/admin_stripe_sca_subscription_button.php';
|
11 |
+
require_once SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/admin_braintree_buy_now_button.php';
|
12 |
+
|
13 |
+
do_action( 'swpm_create_new_button_process_submission' ); //Addons can use this hook to save the data after the form submit then redirect to the "edit" interface of that newly created button.
|
14 |
+
?>
|
15 |
+
|
16 |
+
<div class="swpm-grey-box">
|
17 |
+
<?php echo SwpmUtils::_( 'You can create new payment button for your memberships using this interface.' ); ?>
|
18 |
+
</div>
|
19 |
+
|
20 |
+
<?php
|
21 |
+
if ( ! isset( $_REQUEST['swpm_button_type_selected'] ) ) {
|
22 |
+
//Button type hasn't been selected. Show the selection option.
|
23 |
+
?>
|
24 |
+
<div class="postbox">
|
25 |
+
<h3 class="hndle"><label for="title"><?php echo SwpmUtils::_( 'Select Payment Button Type' ); ?></label></h3>
|
26 |
+
<div class="inside">
|
27 |
+
<form action="" method="post">
|
28 |
+
<label><input type="radio" name="button_type" value="pp_buy_now" checked> <?php SwpmUtils::e( 'PayPal Buy Now' ); ?></label>
|
29 |
+
<br />
|
30 |
+
<label><input type="radio" name="button_type" value="pp_subscription"> <?php SwpmUtils::e( 'PayPal Subscription' ); ?></label>
|
31 |
+
<br />
|
32 |
+
<label><input type="radio" name="button_type" value="pp_smart_checkout"> <?php SwpmUtils::e( 'PayPal Smart Checkout' ); ?></label>
|
33 |
+
<br />
|
34 |
+
<label><input type="radio" name="button_type" value="stripe_buy_now"> <?php SwpmUtils::e( 'Stripe Buy Now' ); ?></label>
|
35 |
+
<br />
|
36 |
+
<label><input type="radio" name="button_type" value="stripe_subscription"> <?php SwpmUtils::e( 'Stripe Subscription' ); ?></label>
|
37 |
+
<br />
|
38 |
+
<label><input type="radio" name="button_type" value="stripe_sca_buy_now"> <?php SwpmUtils::e( 'Stripe SCA Buy Now' ); ?></label>
|
39 |
+
<br />
|
40 |
+
<label><input type="radio" name="button_type" value="stripe_sca_subscription"> <?php SwpmUtils::e( 'Stripe SCA Subscription' ); ?></label>
|
41 |
+
<br />
|
42 |
+
<label><input type="radio" name="button_type" value="braintree_buy_now"> <?php SwpmUtils::e( 'Braintree Buy Now' ); ?></label>
|
43 |
+
<br />
|
44 |
+
<?php
|
45 |
+
apply_filters( 'swpm_new_button_select_button_type', '' );
|
46 |
+
wp_nonce_field( 'swpm_admin_create_btns', 'swpm_admin_create_btns' );
|
47 |
+
?>
|
48 |
+
|
49 |
+
<br />
|
50 |
+
<input type="submit" name="swpm_button_type_selected" class="button-primary" value="<?php echo SwpmUtils::_( 'Next' ); ?>" />
|
51 |
+
</form>
|
52 |
+
|
53 |
+
</div>
|
54 |
+
</div><!-- end of .postbox -->
|
55 |
+
<?php
|
56 |
+
} else {
|
57 |
+
//Button type has been selected. Show the payment button configuration option.
|
58 |
+
//check the nonce first
|
59 |
+
check_admin_referer( 'swpm_admin_create_btns', 'swpm_admin_create_btns' );
|
60 |
+
//Fire the action hook. The addons can render the payment button configuration option as appropriate.
|
61 |
+
$button_type = sanitize_text_field( $_REQUEST['button_type'] );
|
62 |
+
do_action( 'swpm_create_new_button_for_' . $button_type );
|
63 |
+
//The payment addons will create the button from then redirect to the "edit" interface of that button after save.
|
64 |
+
}
|
65 |
+
?>
|
views/payments/admin_edit_payment_buttons.php
CHANGED
@@ -1,25 +1,27 @@
|
|
1 |
-
<?php
|
2 |
-
//Render the edit payment button tab
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
$
|
24 |
-
|
25 |
-
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
//Render the edit payment button tab
|
3 |
+
|
4 |
+
require_once SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/admin_paypal_buy_now_button.php';
|
5 |
+
require_once SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/admin_paypal_subscription_button.php';
|
6 |
+
require_once SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/admin_paypal_smart_checkout_button.php';
|
7 |
+
require_once SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/admin_stripe_buy_now_button.php';
|
8 |
+
require_once SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/admin_stripe_subscription_button.php';
|
9 |
+
require_once SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php';
|
10 |
+
require_once SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/admin_stripe_sca_subscription_button.php';
|
11 |
+
require_once SIMPLE_WP_MEMBERSHIP_PATH . 'views/payments/payment-gateway/admin_braintree_buy_now_button.php';
|
12 |
+
|
13 |
+
do_action( 'swpm_edit_payment_button_process_submission' ); //Addons can use this hook to save the data after the form submit.
|
14 |
+
?>
|
15 |
+
|
16 |
+
<div class="swpm-grey-box">
|
17 |
+
<?php echo SwpmUtils::_( 'You can edit a payment button using this interface.' ); ?>
|
18 |
+
</div>
|
19 |
+
|
20 |
+
<?php
|
21 |
+
//Trigger the action hook. The addons can render the payment button edit interface using this hook
|
22 |
+
//Button type (button_type) and Button id (button_id) must be present in the REQUEST
|
23 |
+
$button_type = sanitize_text_field( $_REQUEST['button_type'] );
|
24 |
+
$button_id = sanitize_text_field( $_REQUEST['button_id'] );
|
25 |
+
$button_id = absint( $button_id );
|
26 |
+
do_action( 'swpm_edit_payment_button_for_' . $button_type, $button_id );
|
27 |
+
|
views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php
ADDED
@@ -0,0 +1,440 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/* * ***************************************************************
|
3 |
+
* Render the new Stripe Buy Now payment button creation interface
|
4 |
+
* ************************************************************** */
|
5 |
+
add_action( 'swpm_create_new_button_for_stripe_sca_buy_now', 'swpm_create_new_stripe_sca_buy_now_button' );
|
6 |
+
|
7 |
+
function swpm_create_new_stripe_sca_buy_now_button() {
|
8 |
+
|
9 |
+
//Test for PHP v5.3.3 or show error and don't show the remaining interface.
|
10 |
+
if ( version_compare( PHP_VERSION, '5.4.0' ) >= 0 ) {
|
11 |
+
//The server is using at least PHP version 5.4.0
|
12 |
+
//Can use Stripe gateway library
|
13 |
+
} else {
|
14 |
+
//This server can't handle Stripe library
|
15 |
+
echo '<div class="swpm-red-box">';
|
16 |
+
echo '<p>The Stripe payment gateway libary requires at least PHP 5.4.0. Your server is using a very old version of PHP that Stripe does not support.</p>';
|
17 |
+
echo '<p>Request your hosting provider to upgrade your PHP to a more recent version then you will be able to use the Stripe gateway.<p>';
|
18 |
+
echo '</div>';
|
19 |
+
return;
|
20 |
+
}
|
21 |
+
?>
|
22 |
+
|
23 |
+
<div class="swpm-orange-box">
|
24 |
+
View the <a target="_blank" href="https://simple-membership-plugin.com/create-stripe-buy-now-button-for-membership-payment/">documentation</a>
|
25 |
+
to learn how to create a Stripe Buy Now payment button and use it.
|
26 |
+
</div>
|
27 |
+
|
28 |
+
<div class="postbox">
|
29 |
+
<h3 class="hndle"><label for="title"><?php echo SwpmUtils::_( 'Stripe SCA Buy Now Button Configuration' ); ?></label></h3>
|
30 |
+
<div class="inside">
|
31 |
+
|
32 |
+
<form id="stripe_button_config_form" method="post">
|
33 |
+
<input type="hidden" name="button_type" value="<?php echo sanitize_text_field( $_REQUEST['button_type'] ); ?>">
|
34 |
+
<input type="hidden" name="swpm_button_type_selected" value="1">
|
35 |
+
|
36 |
+
<table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6">
|
37 |
+
|
38 |
+
<tr valign="top">
|
39 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Button Title' ); ?></th>
|
40 |
+
<td>
|
41 |
+
<input type="text" size="50" name="button_name" value="" required />
|
42 |
+
<p class="description">Give this membership payment button a name. Example: Gold membership payment</p>
|
43 |
+
</td>
|
44 |
+
</tr>
|
45 |
+
|
46 |
+
<tr valign="top">
|
47 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Membership Level' ); ?></th>
|
48 |
+
<td>
|
49 |
+
<select id="membership_level_id" name="membership_level_id">
|
50 |
+
<?php echo SwpmUtils::membership_level_dropdown(); ?>
|
51 |
+
</select>
|
52 |
+
<p class="description">Select the membership level this payment button is for.</p>
|
53 |
+
</td>
|
54 |
+
</tr>
|
55 |
+
|
56 |
+
<tr valign="top">
|
57 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Payment Amount' ); ?></th>
|
58 |
+
<td>
|
59 |
+
<input type="text" size="6" name="payment_amount" value="" required />
|
60 |
+
<p class="description">Enter payment amount. Example values: 10.00 or 19.50 or 299.95 etc (do not put currency symbol).</p>
|
61 |
+
</td>
|
62 |
+
</tr>
|
63 |
+
|
64 |
+
<tr valign="top">
|
65 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Payment Currency' ); ?></th>
|
66 |
+
<td>
|
67 |
+
<select id="payment_currency" name="payment_currency">
|
68 |
+
<option selected="selected" value="USD">US Dollars ($)</option>
|
69 |
+
<option value="EUR">Euros (€)</option>
|
70 |
+
<option value="GBP">Pounds Sterling (£)</option>
|
71 |
+
<option value="AUD">Australian Dollars ($)</option>
|
72 |
+
<option value="BRL">Brazilian Real (R$)</option>
|
73 |
+
<option value="CAD">Canadian Dollars ($)</option>
|
74 |
+
<option value="CNY">Chinese Yuan</option>
|
75 |
+
<option value="CZK">Czech Koruna</option>
|
76 |
+
<option value="DKK">Danish Krone</option>
|
77 |
+
<option value="HKD">Hong Kong Dollar ($)</option>
|
78 |
+
<option value="HUF">Hungarian Forint</option>
|
79 |
+
<option value="INR">Indian Rupee</option>
|
80 |
+
<option value="IDR">Indonesia Rupiah</option>
|
81 |
+
<option value="ILS">Israeli Shekel</option>
|
82 |
+
<option value="JPY">Japanese Yen (Â¥)</option>
|
83 |
+
<option value="MYR">Malaysian Ringgits</option>
|
84 |
+
<option value="MXN">Mexican Peso ($)</option>
|
85 |
+
<option value="NZD">New Zealand Dollar ($)</option>
|
86 |
+
<option value="NOK">Norwegian Krone</option>
|
87 |
+
<option value="PHP">Philippine Pesos</option>
|
88 |
+
<option value="PLN">Polish Zloty</option>
|
89 |
+
<option value="SGD">Singapore Dollar ($)</option>
|
90 |
+
<option value="ZAR">South African Rand (R)</option>
|
91 |
+
<option value="KRW">South Korean Won</option>
|
92 |
+
<option value="SEK">Swedish Krona</option>
|
93 |
+
<option value="CHF">Swiss Franc</option>
|
94 |
+
<option value="TWD">Taiwan New Dollars</option>
|
95 |
+
<option value="THB">Thai Baht</option>
|
96 |
+
<option value="TRY">Turkish Lira</option>
|
97 |
+
<option value="VND">Vietnamese Dong</option>
|
98 |
+
</select>
|
99 |
+
<p class="description">Select the currency for this payment button.</p>
|
100 |
+
</td>
|
101 |
+
</tr>
|
102 |
+
|
103 |
+
<tr valign="top">
|
104 |
+
<th colspan="2"><div class="swpm-grey-box"><?php echo SwpmUtils::_( 'Stripe API keys. You can get this from your Stripe account.' ); ?></div></th>
|
105 |
+
</tr>
|
106 |
+
|
107 |
+
<tr valign="top">
|
108 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Test Publishable Key' ); ?></th>
|
109 |
+
<td>
|
110 |
+
<input type="text" size="50" name="stripe_test_publishable_key" value="" required />
|
111 |
+
<p class="description">Enter your Stripe test publishable key.</p>
|
112 |
+
</td>
|
113 |
+
</tr>
|
114 |
+
<tr valign="top">
|
115 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Test Secret Key' ); ?></th>
|
116 |
+
<td>
|
117 |
+
<input type="text" size="50" name="stripe_test_secret_key" value="" required />
|
118 |
+
<p class="description">Enter your Stripe test secret key.</p>
|
119 |
+
</td>
|
120 |
+
</tr>
|
121 |
+
<tr valign="top">
|
122 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Live Publishable Key' ); ?></th>
|
123 |
+
<td>
|
124 |
+
<input type="text" size="50" name="stripe_live_publishable_key" value="" required />
|
125 |
+
<p class="description">Enter your Stripe live publishable key.</p>
|
126 |
+
</td>
|
127 |
+
</tr>
|
128 |
+
<tr valign="top">
|
129 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Live Secret Key' ); ?></th>
|
130 |
+
<td>
|
131 |
+
<input type="text" size="50" name="stripe_live_secret_key" value="" required />
|
132 |
+
<p class="description">Enter your Stripe live secret key.</p>
|
133 |
+
</td>
|
134 |
+
</tr>
|
135 |
+
|
136 |
+
<tr valign="top">
|
137 |
+
<th colspan="2"><div class="swpm-grey-box"><?php echo SwpmUtils::_( 'The following details are optional.' ); ?></div></th>
|
138 |
+
</tr>
|
139 |
+
|
140 |
+
<tr valign="top">
|
141 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Collect Customer Address' ); ?></th>
|
142 |
+
<td>
|
143 |
+
<input type="checkbox" name="collect_address" value="1"/>
|
144 |
+
<p class="description">Enable this option if you want to collect customer address during Stripe checkout.</p>
|
145 |
+
</td>
|
146 |
+
</tr>
|
147 |
+
|
148 |
+
<tr valign="top">
|
149 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Return URL' ); ?></th>
|
150 |
+
<td>
|
151 |
+
<input type="text" size="100" name="return_url" value="" />
|
152 |
+
<p class="description">This is the URL the user will be redirected to after a successful payment. Enter the URL of your Thank You page here.</p>
|
153 |
+
</td>
|
154 |
+
</tr>
|
155 |
+
|
156 |
+
</table>
|
157 |
+
|
158 |
+
<p class="submit">
|
159 |
+
<?php wp_nonce_field( 'swpm_admin_add_edit_stripe_sca_buy_now_btn', 'swpm_admin_create_stripe_sca_buy_now_btn' ); ?>
|
160 |
+
<input type="submit" name="swpm_stripe_sca_buy_now_save_submit" class="button-primary" value="<?php echo SwpmUtils::_( 'Save Payment Data' ); ?>" >
|
161 |
+
</p>
|
162 |
+
|
163 |
+
</form>
|
164 |
+
|
165 |
+
</div>
|
166 |
+
</div>
|
167 |
+
<?php
|
168 |
+
}
|
169 |
+
|
170 |
+
/*
|
171 |
+
* Process submission and save the new Stripe Buy now payment button data
|
172 |
+
*/
|
173 |
+
add_action( 'swpm_create_new_button_process_submission', 'swpm_save_new_stripe_sca_buy_now_button_data' );
|
174 |
+
|
175 |
+
function swpm_save_new_stripe_sca_buy_now_button_data() {
|
176 |
+
if ( isset( $_REQUEST['swpm_stripe_sca_buy_now_save_submit'] ) ) {
|
177 |
+
//This is a Stripe buy now button save event. Process the submission.
|
178 |
+
check_admin_referer( 'swpm_admin_add_edit_stripe_sca_buy_now_btn', 'swpm_admin_create_stripe_sca_buy_now_btn' );
|
179 |
+
|
180 |
+
//Save the button data
|
181 |
+
$button_id = wp_insert_post(
|
182 |
+
array(
|
183 |
+
'post_title' => sanitize_text_field( $_REQUEST['button_name'] ),
|
184 |
+
'post_type' => 'swpm_payment_button',
|
185 |
+
'post_content' => '',
|
186 |
+
'post_status' => 'publish',
|
187 |
+
)
|
188 |
+
);
|
189 |
+
|
190 |
+
$button_type = sanitize_text_field( $_REQUEST['button_type'] );
|
191 |
+
add_post_meta( $button_id, 'button_type', $button_type );
|
192 |
+
add_post_meta( $button_id, 'membership_level_id', sanitize_text_field( $_REQUEST['membership_level_id'] ) );
|
193 |
+
add_post_meta( $button_id, 'payment_amount', trim( sanitize_text_field( $_REQUEST['payment_amount'] ) ) );
|
194 |
+
add_post_meta( $button_id, 'payment_currency', sanitize_text_field( $_REQUEST['payment_currency'] ) );
|
195 |
+
|
196 |
+
add_post_meta( $button_id, 'stripe_test_secret_key', trim( sanitize_text_field( $_REQUEST['stripe_test_secret_key'] ) ) );
|
197 |
+
add_post_meta( $button_id, 'stripe_test_publishable_key', trim( sanitize_text_field( $_REQUEST['stripe_test_publishable_key'] ) ) );
|
198 |
+
add_post_meta( $button_id, 'stripe_live_secret_key', trim( sanitize_text_field( $_REQUEST['stripe_live_secret_key'] ) ) );
|
199 |
+
add_post_meta( $button_id, 'stripe_live_publishable_key', trim( sanitize_text_field( $_REQUEST['stripe_live_publishable_key'] ) ) );
|
200 |
+
|
201 |
+
add_post_meta( $button_id, 'stripe_collect_address', isset( $_POST['collect_address'] ) ? '1' : '' );
|
202 |
+
|
203 |
+
add_post_meta( $button_id, 'return_url', trim( sanitize_text_field( $_REQUEST['return_url'] ) ) );
|
204 |
+
//add_post_meta($button_id, 'button_image_url', trim(sanitize_text_field($_REQUEST['button_image_url'])));
|
205 |
+
//Redirect to the edit interface of this button with $button_id
|
206 |
+
//$url = admin_url() . 'admin.php?page=simple_wp_membership_payments&tab=edit_button&button_id=' . $button_id . '&button_type=' . $button_type;
|
207 |
+
//Redirect to the manage payment buttons interface
|
208 |
+
$url = admin_url() . 'admin.php?page=simple_wp_membership_payments&tab=payment_buttons';
|
209 |
+
SwpmMiscUtils::redirect_to_url( $url );
|
210 |
+
}
|
211 |
+
}
|
212 |
+
|
213 |
+
/* * **********************************************************************
|
214 |
+
* End of new Stripe Buy now payment button stuff
|
215 |
+
* ********************************************************************** */
|
216 |
+
|
217 |
+
|
218 |
+
/* * ***************************************************************
|
219 |
+
* Render edit Stripe Buy now payment button interface
|
220 |
+
* ************************************************************** */
|
221 |
+
add_action( 'swpm_edit_payment_button_for_stripe_sca_buy_now', 'swpm_edit_stripe_sca_buy_now_button' );
|
222 |
+
|
223 |
+
function swpm_edit_stripe_sca_buy_now_button() {
|
224 |
+
|
225 |
+
//Retrieve the payment button data and present it for editing.
|
226 |
+
|
227 |
+
$button_id = sanitize_text_field( $_REQUEST['button_id'] );
|
228 |
+
$button_id = absint( $button_id );
|
229 |
+
$button_type = sanitize_text_field( $_REQUEST['button_type'] );
|
230 |
+
|
231 |
+
$button = get_post( $button_id ); //Retrieve the CPT for this button
|
232 |
+
|
233 |
+
$membership_level_id = get_post_meta( $button_id, 'membership_level_id', true );
|
234 |
+
$payment_amount = get_post_meta( $button_id, 'payment_amount', true );
|
235 |
+
$payment_currency = get_post_meta( $button_id, 'payment_currency', true );
|
236 |
+
|
237 |
+
$stripe_test_secret_key = get_post_meta( $button_id, 'stripe_test_secret_key', true );
|
238 |
+
$stripe_test_publishable_key = get_post_meta( $button_id, 'stripe_test_publishable_key', true );
|
239 |
+
$stripe_live_secret_key = get_post_meta( $button_id, 'stripe_live_secret_key', true );
|
240 |
+
$stripe_live_publishable_key = get_post_meta( $button_id, 'stripe_live_publishable_key', true );
|
241 |
+
|
242 |
+
$collect_address = get_post_meta( $button_id, 'stripe_collect_address', true );
|
243 |
+
if ( $collect_address == '1' ) {
|
244 |
+
$collect_address = ' checked';
|
245 |
+
} else {
|
246 |
+
$collect_address = '';
|
247 |
+
}
|
248 |
+
|
249 |
+
$return_url = get_post_meta( $button_id, 'return_url', true );
|
250 |
+
//$button_image_url = get_post_meta($button_id, 'button_image_url', true);
|
251 |
+
?>
|
252 |
+
<div class="postbox">
|
253 |
+
<h3 class="hndle"><label for="title"><?php echo SwpmUtils::_( 'Stripe Buy Now Button Configuration' ); ?></label></h3>
|
254 |
+
<div class="inside">
|
255 |
+
|
256 |
+
<form id="stripe_button_config_form" method="post">
|
257 |
+
<input type="hidden" name="button_type" value="<?php echo $button_type; ?>">
|
258 |
+
|
259 |
+
<table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6">
|
260 |
+
|
261 |
+
<tr valign="top">
|
262 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Button ID' ); ?></th>
|
263 |
+
<td>
|
264 |
+
<input type="text" size="10" name="button_id" value="<?php echo $button_id; ?>" readonly required />
|
265 |
+
<p class="description">This is the ID of this payment button. It is automatically generated for you and it cannot be changed.</p>
|
266 |
+
</td>
|
267 |
+
</tr>
|
268 |
+
<tr valign="top">
|
269 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Button Title' ); ?></th>
|
270 |
+
<td>
|
271 |
+
<input type="text" size="50" name="button_name" value="<?php echo $button->post_title; ?>" required />
|
272 |
+
<p class="description">Give this membership payment button a name. Example: Gold membership payment</p>
|
273 |
+
</td>
|
274 |
+
</tr>
|
275 |
+
<tr valign="top">
|
276 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Membership Level' ); ?></th>
|
277 |
+
<td>
|
278 |
+
<select id="membership_level_id" name="membership_level_id">
|
279 |
+
<?php echo SwpmUtils::membership_level_dropdown( $membership_level_id ); ?>
|
280 |
+
</select>
|
281 |
+
<p class="description">Select the membership level this payment button is for.</p>
|
282 |
+
</td>
|
283 |
+
</tr>
|
284 |
+
<tr valign="top">
|
285 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Payment Amount' ); ?></th>
|
286 |
+
<td>
|
287 |
+
<input type="text" size="6" name="payment_amount" value="<?php echo $payment_amount; ?>" required />
|
288 |
+
<p class="description">Enter payment amount. Example values: 10.00 or 19.50 or 299.95 etc (do not put currency symbol).</p>
|
289 |
+
</td>
|
290 |
+
</tr>
|
291 |
+
<tr valign="top">
|
292 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Payment Currency' ); ?></th>
|
293 |
+
<td>
|
294 |
+
<select id="payment_currency" name="payment_currency">
|
295 |
+
<option value="USD" <?php echo ( $payment_currency == 'USD' ) ? 'selected="selected"' : ''; ?>>US Dollars ($)</option>
|
296 |
+
<option value="EUR" <?php echo ( $payment_currency == 'EUR' ) ? 'selected="selected"' : ''; ?>>Euros (€)</option>
|
297 |
+
<option value="GBP" <?php echo ( $payment_currency == 'GBP' ) ? 'selected="selected"' : ''; ?>>Pounds Sterling (£)</option>
|
298 |
+
<option value="AUD" <?php echo ( $payment_currency == 'AUD' ) ? 'selected="selected"' : ''; ?>>Australian Dollars ($)</option>
|
299 |
+
<option value="BRL" <?php echo ( $payment_currency == 'BRL' ) ? 'selected="selected"' : ''; ?>>Brazilian Real (R$)</option>
|
300 |
+
<option value="CAD" <?php echo ( $payment_currency == 'CAD' ) ? 'selected="selected"' : ''; ?>>Canadian Dollars ($)</option>
|
301 |
+
<option value="CNY" <?php echo ( $payment_currency == 'CNY' ) ? 'selected="selected"' : ''; ?>>Chinese Yuan</option>
|
302 |
+
<option value="CZK" <?php echo ( $payment_currency == 'CZK' ) ? 'selected="selected"' : ''; ?>>Czech Koruna</option>
|
303 |
+
<option value="DKK" <?php echo ( $payment_currency == 'DKK' ) ? 'selected="selected"' : ''; ?>>Danish Krone</option>
|
304 |
+
<option value="HKD" <?php echo ( $payment_currency == 'HKD' ) ? 'selected="selected"' : ''; ?>>Hong Kong Dollar ($)</option>
|
305 |
+
<option value="HUF" <?php echo ( $payment_currency == 'HUF' ) ? 'selected="selected"' : ''; ?>>Hungarian Forint</option>
|
306 |
+
<option value="INR" <?php echo ( $payment_currency == 'INR' ) ? 'selected="selected"' : ''; ?>>Indian Rupee</option>
|
307 |
+
<option value="IDR" <?php echo ( $payment_currency == 'IDR' ) ? 'selected="selected"' : ''; ?>>Indonesia Rupiah</option>
|
308 |
+
<option value="ILS" <?php echo ( $payment_currency == 'ILS' ) ? 'selected="selected"' : ''; ?>>Israeli Shekel</option>
|
309 |
+
<option value="JPY" <?php echo ( $payment_currency == 'JPY' ) ? 'selected="selected"' : ''; ?>>Japanese Yen (Â¥)</option>
|
310 |
+
<option value="MYR" <?php echo ( $payment_currency == 'MYR' ) ? 'selected="selected"' : ''; ?>>Malaysian Ringgits</option>
|
311 |
+
<option value="MXN" <?php echo ( $payment_currency == 'MXN' ) ? 'selected="selected"' : ''; ?>>Mexican Peso ($)</option>
|
312 |
+
<option value="NZD" <?php echo ( $payment_currency == 'NZD' ) ? 'selected="selected"' : ''; ?>>New Zealand Dollar ($)</option>
|
313 |
+
<option value="NOK" <?php echo ( $payment_currency == 'NOK' ) ? 'selected="selected"' : ''; ?>>Norwegian Krone</option>
|
314 |
+
<option value="PHP" <?php echo ( $payment_currency == 'PHP' ) ? 'selected="selected"' : ''; ?>>Philippine Pesos</option>
|
315 |
+
<option value="PLN" <?php echo ( $payment_currency == 'PLN' ) ? 'selected="selected"' : ''; ?>>Polish Zloty</option>
|
316 |
+
<option value="SGD" <?php echo ( $payment_currency == 'SGD' ) ? 'selected="selected"' : ''; ?>>Singapore Dollar ($)</option>
|
317 |
+
<option value="ZAR" <?php echo ( $payment_currency == 'ZAR' ) ? 'selected="selected"' : ''; ?>>South African Rand (R)</option>
|
318 |
+
<option value="KRW" <?php echo ( $payment_currency == 'KRW' ) ? 'selected="selected"' : ''; ?>>South Korean Won</option>
|
319 |
+
<option value="SEK" <?php echo ( $payment_currency == 'SEK' ) ? 'selected="selected"' : ''; ?>>Swedish Krona</option>
|
320 |
+
<option value="CHF" <?php echo ( $payment_currency == 'CHF' ) ? 'selected="selected"' : ''; ?>>Swiss Franc</option>
|
321 |
+
<option value="TWD" <?php echo ( $payment_currency == 'TWD' ) ? 'selected="selected"' : ''; ?>>Taiwan New Dollars</option>
|
322 |
+
<option value="THB" <?php echo ( $payment_currency == 'THB' ) ? 'selected="selected"' : ''; ?>>Thai Baht</option>
|
323 |
+
<option value="TRY" <?php echo ( $payment_currency == 'TRY' ) ? 'selected="selected"' : ''; ?>>Turkish Lira</option>
|
324 |
+
<option value="VND" <?php echo ( $payment_currency == 'VND' ) ? 'selected="selected"' : ''; ?>>Vietnamese Dong</option>
|
325 |
+
</select>
|
326 |
+
<p class="description">Select the currency for this payment button.</p>
|
327 |
+
</td>
|
328 |
+
</tr>
|
329 |
+
|
330 |
+
<tr valign="top">
|
331 |
+
<th colspan="2"><div class="swpm-grey-box"><?php echo SwpmUtils::_( 'Stripe API keys. You can get this from your Stripe account.' ); ?></div></th>
|
332 |
+
</tr>
|
333 |
+
|
334 |
+
<tr valign="top">
|
335 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Test Publishable Key' ); ?></th>
|
336 |
+
<td>
|
337 |
+
<input type="text" size="50" name="stripe_test_publishable_key" value="<?php echo $stripe_test_publishable_key; ?>" required />
|
338 |
+
<p class="description">Enter your Stripe test publishable key.</p>
|
339 |
+
</td>
|
340 |
+
</tr>
|
341 |
+
<tr valign="top">
|
342 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Test Secret Key' ); ?></th>
|
343 |
+
<td>
|
344 |
+
<input type="text" size="50" name="stripe_test_secret_key" value="<?php echo $stripe_test_secret_key; ?>" required />
|
345 |
+
<p class="description">Enter your Stripe test secret key.</p>
|
346 |
+
</td>
|
347 |
+
</tr>
|
348 |
+
<tr valign="top">
|
349 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Live Publishable Key' ); ?></th>
|
350 |
+
<td>
|
351 |
+
<input type="text" size="50" name="stripe_live_publishable_key" value="<?php echo $stripe_live_publishable_key; ?>" required />
|
352 |
+
<p class="description">Enter your Stripe live publishable key.</p>
|
353 |
+
</td>
|
354 |
+
</tr>
|
355 |
+
<tr valign="top">
|
356 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Live Secret Key' ); ?></th>
|
357 |
+
<td>
|
358 |
+
<input type="text" size="50" name="stripe_live_secret_key" value="<?php echo $stripe_live_secret_key; ?>" required />
|
359 |
+
<p class="description">Enter your Stripe live secret key.</p>
|
360 |
+
</td>
|
361 |
+
</tr>
|
362 |
+
|
363 |
+
<tr valign="top">
|
364 |
+
<th colspan="2"><div class="swpm-grey-box"><?php echo SwpmUtils::_( 'The following details are optional.' ); ?></div></th>
|
365 |
+
</tr>
|
366 |
+
|
367 |
+
<tr valign="top">
|
368 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Collect Customer Address' ); ?></th>
|
369 |
+
<td>
|
370 |
+
<input type="checkbox" name="collect_address" value="1"<?php echo $collect_address; ?>/>
|
371 |
+
<p class="description">Enable this option if you want to collect customer address during Stripe checkout.</p>
|
372 |
+
</td>
|
373 |
+
</tr>
|
374 |
+
|
375 |
+
<tr valign="top">
|
376 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Return URL' ); ?></th>
|
377 |
+
<td>
|
378 |
+
<input type="text" size="100" name="return_url" value="<?php echo $return_url; ?>" />
|
379 |
+
<p class="description">This is the URL the user will be redirected to after a successful payment. Enter the URL of your Thank You page here.</p>
|
380 |
+
</td>
|
381 |
+
</tr>
|
382 |
+
|
383 |
+
</table>
|
384 |
+
|
385 |
+
<p class="submit">
|
386 |
+
<?php wp_nonce_field( 'swpm_admin_add_edit_stripe_sca_buy_now_btn', 'swpm_admin_edit_stripe_sca_buy_now_btn' ); ?>
|
387 |
+
<input type="submit" name="swpm_stripe_sca_buy_now_edit_submit" class="button-primary" value="<?php echo SwpmUtils::_( 'Save Payment Data' ); ?>" >
|
388 |
+
</p>
|
389 |
+
|
390 |
+
</form>
|
391 |
+
|
392 |
+
</div>
|
393 |
+
</div>
|
394 |
+
<?php
|
395 |
+
}
|
396 |
+
|
397 |
+
/*
|
398 |
+
* Process submission and save the edited Stripe Buy now payment button data
|
399 |
+
*/
|
400 |
+
add_action( 'swpm_edit_payment_button_process_submission', 'swpm_edit_stripe_sca_buy_now_button_data' );
|
401 |
+
|
402 |
+
function swpm_edit_stripe_sca_buy_now_button_data() {
|
403 |
+
if ( isset( $_REQUEST['swpm_stripe_sca_buy_now_edit_submit'] ) ) {
|
404 |
+
//This is a Stripe buy now button edit event. Process the submission.
|
405 |
+
check_admin_referer( 'swpm_admin_add_edit_stripe_sca_buy_now_btn', 'swpm_admin_edit_stripe_sca_buy_now_btn' );
|
406 |
+
//Update and Save the edited payment button data
|
407 |
+
$button_id = sanitize_text_field( $_REQUEST['button_id'] );
|
408 |
+
$button_id = absint( $button_id );
|
409 |
+
$button_type = sanitize_text_field( $_REQUEST['button_type'] );
|
410 |
+
$button_name = sanitize_text_field( $_REQUEST['button_name'] );
|
411 |
+
|
412 |
+
$button_post = array(
|
413 |
+
'ID' => $button_id,
|
414 |
+
'post_title' => $button_name,
|
415 |
+
'post_type' => 'swpm_payment_button',
|
416 |
+
);
|
417 |
+
wp_update_post( $button_post );
|
418 |
+
|
419 |
+
update_post_meta( $button_id, 'button_type', $button_type );
|
420 |
+
update_post_meta( $button_id, 'membership_level_id', sanitize_text_field( $_REQUEST['membership_level_id'] ) );
|
421 |
+
update_post_meta( $button_id, 'payment_amount', trim( sanitize_text_field( $_REQUEST['payment_amount'] ) ) );
|
422 |
+
update_post_meta( $button_id, 'payment_currency', sanitize_text_field( $_REQUEST['payment_currency'] ) );
|
423 |
+
|
424 |
+
update_post_meta( $button_id, 'stripe_test_secret_key', trim( sanitize_text_field( $_REQUEST['stripe_test_secret_key'] ) ) );
|
425 |
+
update_post_meta( $button_id, 'stripe_test_publishable_key', trim( sanitize_text_field( $_REQUEST['stripe_test_publishable_key'] ) ) );
|
426 |
+
update_post_meta( $button_id, 'stripe_live_secret_key', trim( sanitize_text_field( $_REQUEST['stripe_live_secret_key'] ) ) );
|
427 |
+
update_post_meta( $button_id, 'stripe_live_publishable_key', trim( sanitize_text_field( $_REQUEST['stripe_live_publishable_key'] ) ) );
|
428 |
+
|
429 |
+
update_post_meta( $button_id, 'stripe_collect_address', isset( $_POST['collect_address'] ) ? '1' : '' );
|
430 |
+
|
431 |
+
update_post_meta( $button_id, 'return_url', trim( sanitize_text_field( $_REQUEST['return_url'] ) ) );
|
432 |
+
//update_post_meta($button_id, 'button_image_url', trim(sanitize_text_field($_REQUEST['button_image_url'])));
|
433 |
+
|
434 |
+
echo '<div id="message" class="updated fade"><p>Payment button data successfully updated!</p></div>';
|
435 |
+
}
|
436 |
+
}
|
437 |
+
|
438 |
+
/************************************************************************
|
439 |
+
* End of edit Stripe Buy now payment button stuff
|
440 |
+
************************************************************************/
|
views/payments/payment-gateway/admin_stripe_sca_subscription_button.php
ADDED
@@ -0,0 +1,339 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/* * ***************************************************************
|
3 |
+
* Render the new Stripe Subscription payment button creation interface
|
4 |
+
* ************************************************************** */
|
5 |
+
|
6 |
+
function swpm_render_new_edit_stripe_sca_subscription_button_interface( $opts, $edit = false ) {
|
7 |
+
|
8 |
+
//Test for PHP v5.4.0 or show error and don't show the remaining interface.
|
9 |
+
if ( version_compare( PHP_VERSION, '5.4.0' ) >= 0 ) {
|
10 |
+
//The server is using at least PHP version 5.4.0
|
11 |
+
//Can use Braintree gateway library
|
12 |
+
} else {
|
13 |
+
//This server can't handle Braintree library
|
14 |
+
echo '<div class="swpm-red-box">';
|
15 |
+
echo '<p>The Stripe subscription gateway library requires at least PHP 5.4.0. Your server is using a very old version of PHP.</p>';
|
16 |
+
echo '<p>Request your hosting provider to upgrade your PHP to a more recent version then you will be able to use the Stripe subscription buttons.<p>';
|
17 |
+
echo '</div>';
|
18 |
+
return;
|
19 |
+
}
|
20 |
+
|
21 |
+
function swpm_stripe_sca_subscr_gen_curr_opts( $selected = false ) {
|
22 |
+
$curr_arr = array(
|
23 |
+
'USD' => 'US Dollars ($)',
|
24 |
+
'EUR' => 'Euros (€)',
|
25 |
+
'GBP' => 'Pounds Sterling (£)',
|
26 |
+
'AUD' => 'Australian Dollars ($)',
|
27 |
+
'BRL' => 'Brazilian Real (R$)',
|
28 |
+
'CAD' => 'Canadian Dollars ($)',
|
29 |
+
'CNY' => 'Chinese Yuan',
|
30 |
+
'CZK' => 'Czech Koruna',
|
31 |
+
'DKK' => 'Danish Krone',
|
32 |
+
'HKD' => 'Hong Kong Dollar ($)',
|
33 |
+
'HUF' => 'Hungarian Forint',
|
34 |
+
'INR' => 'Indian Rupee',
|
35 |
+
'IDR' => 'Indonesia Rupiah',
|
36 |
+
'ILS' => 'Israeli Shekel',
|
37 |
+
'JPY' => 'Japanese Yen (Â¥)',
|
38 |
+
'MYR' => 'Malaysian Ringgits',
|
39 |
+
'MXN' => 'Mexican Peso ($)',
|
40 |
+
'NZD' => 'New Zealand Dollar ($)',
|
41 |
+
'NOK' => 'Norwegian Krone',
|
42 |
+
'PHP' => 'Philippine Pesos',
|
43 |
+
'PLN' => 'Polish Zloty',
|
44 |
+
'SGD' => 'Singapore Dollar ($)',
|
45 |
+
'ZAR' => 'South African Rand (R)',
|
46 |
+
'KRW' => 'South Korean Won',
|
47 |
+
'SEK' => 'Swedish Krona',
|
48 |
+
'CHF' => 'Swiss Franc',
|
49 |
+
'TWD' => 'Taiwan New Dollars',
|
50 |
+
'THB' => 'Thai Baht',
|
51 |
+
'TRY' => 'Turkish Lira',
|
52 |
+
'VND' => 'Vietnamese Dong',
|
53 |
+
);
|
54 |
+
$out = '';
|
55 |
+
foreach ( $curr_arr as $key => $value ) {
|
56 |
+
if ( $selected !== false && $selected == $key ) {
|
57 |
+
$sel = ' selected';
|
58 |
+
} else {
|
59 |
+
$sel = '';
|
60 |
+
}
|
61 |
+
$out .= '<option value="' . $key . '"' . $sel . '>' . $value . '</option>';
|
62 |
+
}
|
63 |
+
return $out;
|
64 |
+
}
|
65 |
+
?>
|
66 |
+
|
67 |
+
<div class="swpm-orange-box">
|
68 |
+
View the <a target="_blank" href="https://simple-membership-plugin.com/create-stripe-subscription-button-membership-payment/">documentation</a>
|
69 |
+
to learn how to create a Stripe Subscription payment button and use it.
|
70 |
+
</div>
|
71 |
+
|
72 |
+
<form id="stripe_sca_subsciption_button_config_form" method="post">
|
73 |
+
|
74 |
+
<div class="postbox">
|
75 |
+
<h3 class="hndle"><label for="title"><?php echo SwpmUtils::_( 'Stripe Subscription Button Configuration' ); ?></label></h3>
|
76 |
+
<div class="inside">
|
77 |
+
<table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6">
|
78 |
+
<?php if ( ! $edit ) { ?>
|
79 |
+
<input type="hidden" name="button_type" value="<?php echo sanitize_text_field( $_REQUEST['button_type'] ); ?>">
|
80 |
+
<input type="hidden" name="swpm_button_type_selected" value="1">
|
81 |
+
<?php } else { ?>
|
82 |
+
<tr valign="top">
|
83 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Button ID' ); ?></th>
|
84 |
+
<td>
|
85 |
+
<input type="text" size="10" name="button_id" value="<?php echo $opts['button_id']; ?>" readonly required />
|
86 |
+
<p class="description">This is the ID of this payment button. It is automatically generated for you and it cannot be changed.</p>
|
87 |
+
</td>
|
88 |
+
</tr>
|
89 |
+
<?php } ?>
|
90 |
+
<tr valign="top">
|
91 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Button Title' ); ?></th>
|
92 |
+
<td>
|
93 |
+
<input type="text" size="50" name="button_name" value="<?php echo ( $edit ? $opts['button_title'] : '' ); ?>" required />
|
94 |
+
<p class="description">Give this membership payment button a name. Example: Gold membership payment</p>
|
95 |
+
</td>
|
96 |
+
</tr>
|
97 |
+
|
98 |
+
<tr valign="top">
|
99 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Membership Level' ); ?></th>
|
100 |
+
<td>
|
101 |
+
<select id="membership_level_id" name="membership_level_id">
|
102 |
+
<?php echo ( $edit ? SwpmUtils::membership_level_dropdown( $opts['membership_level_id'][0] ) : SwpmUtils::membership_level_dropdown() ); ?>
|
103 |
+
</select>
|
104 |
+
<p class="description">Select the membership level this payment button is for.</p>
|
105 |
+
</td>
|
106 |
+
</tr>
|
107 |
+
|
108 |
+
<tr valign="top">
|
109 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Stripe Plan ID' ); ?></th>
|
110 |
+
<td>
|
111 |
+
<input type="text" name="stripe_plan_id" value="<?php echo ( $edit ? $opts['stripe_plan_id'][0] : '' ); ?>" required />
|
112 |
+
<p class="description">
|
113 |
+
ID of the plan that you want subscribers to be assigned to. You can get more details in the
|
114 |
+
<a href="https://simple-membership-plugin.com/create-stripe-subscription-button-membership-payment/" target="_blank">documentation</a>.
|
115 |
+
</p>
|
116 |
+
</td>
|
117 |
+
</tr>
|
118 |
+
|
119 |
+
<tr valign="top">
|
120 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Trial Period' ); ?></th>
|
121 |
+
<td>
|
122 |
+
<input type="number" min="0" name="stripe_trial_period" value="<?php echo $edit ? esc_attr( $opts['stripe_trial_period'][0] ) : ''; ?>" /> days
|
123 |
+
<p class="description">If you want to use a trial period then enter the number of days in this field. Subscriptions to this plan will automatically start after that. If left blank or 0, trial period is disabled.</p>
|
124 |
+
</td>
|
125 |
+
</tr>
|
126 |
+
|
127 |
+
</table>
|
128 |
+
|
129 |
+
</div>
|
130 |
+
</div><!-- end of main button configuration box -->
|
131 |
+
|
132 |
+
<div class="postbox">
|
133 |
+
<h3 class="hndle"><label for="title"><?php echo SwpmUtils::_( 'Stripe API Settings' ); ?></label></h3>
|
134 |
+
<div class="inside">
|
135 |
+
|
136 |
+
<table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6">
|
137 |
+
|
138 |
+
<tr valign="top">
|
139 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Test Publishable Key' ); ?></th>
|
140 |
+
<td>
|
141 |
+
<input type="text" size="100" name="stripe_test_publishable_key" value="<?php echo ( $edit ? $opts['stripe_test_publishable_key'][0] : '' ); ?>" />
|
142 |
+
<p class="description">Enter your Stripe test publishable key.</p>
|
143 |
+
</td>
|
144 |
+
</tr>
|
145 |
+
|
146 |
+
<tr valign="top">
|
147 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Test Secret Key' ); ?></th>
|
148 |
+
<td>
|
149 |
+
<input type="text" size="100" name="stripe_test_secret_key" value="<?php echo ( $edit ? $opts['stripe_test_secret_key'][0] : '' ); ?>" />
|
150 |
+
<p class="description">Enter your Stripe test secret key.</p>
|
151 |
+
</td>
|
152 |
+
</tr>
|
153 |
+
|
154 |
+
<tr valign="top">
|
155 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Live Publishable Key' ); ?></th>
|
156 |
+
<td>
|
157 |
+
<input type="text" size="100" name="stripe_live_publishable_key" value="<?php echo ( $edit ? $opts['stripe_live_publishable_key'][0] : '' ); ?>" />
|
158 |
+
<p class="description">Enter your Stripe live publishable key.</p>
|
159 |
+
</td>
|
160 |
+
</tr>
|
161 |
+
|
162 |
+
<tr valign="top">
|
163 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Live Secret Key' ); ?></th>
|
164 |
+
<td>
|
165 |
+
<input type="text" size="100" name="stripe_live_secret_key" value="<?php echo ( $edit ? $opts['stripe_live_secret_key'][0] : '' ); ?>" />
|
166 |
+
<p class="description">Enter your Stripe live secret key.</p>
|
167 |
+
</td>
|
168 |
+
</tr>
|
169 |
+
|
170 |
+
<tr valign="top">
|
171 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Webook Endpoint URL' ); ?></th>
|
172 |
+
<td>
|
173 |
+
<kbd><?php echo SIMPLE_WP_MEMBERSHIP_SITE_HOME_URL . '/?swpm_process_stripe_subscription=1&hook=1'; ?></kbd>
|
174 |
+
<p class="description">You should create a new Webhook in your Stripe account and put this URL there if you want the plugin to handle subscription expiration automatically.<br />
|
175 |
+
You can get more info in the <a href="https://simple-membership-plugin.com/create-stripe-subscription-button-membership-payment/" target="_blank">documentation</a>.
|
176 |
+
</p>
|
177 |
+
</td>
|
178 |
+
</tr>
|
179 |
+
|
180 |
+
</table>
|
181 |
+
</div>
|
182 |
+
</div><!-- end of Stripe API Keys box -->
|
183 |
+
|
184 |
+
<div class="postbox">
|
185 |
+
<h3 class="hndle"><label for="title"><?php echo SwpmUtils::_( 'Optional Details' ); ?></label></h3>
|
186 |
+
<div class="inside">
|
187 |
+
|
188 |
+
<table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6">
|
189 |
+
|
190 |
+
<tr valign="top">
|
191 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Collect Customer Address' ); ?></th>
|
192 |
+
<td>
|
193 |
+
<input type="checkbox" name="collect_address" value="1"<?php echo ( $edit ? ( ( isset( $opts['stripe_collect_address'][0] ) && $opts['stripe_collect_address'][0] === '1' ) ? ' checked' : '' ) : '' ); ?>/>
|
194 |
+
<p class="description">Enable this option if you want to collect customer address during Stripe checkout.</p>
|
195 |
+
</td>
|
196 |
+
</tr>
|
197 |
+
|
198 |
+
<tr valign="top">
|
199 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Return URL' ); ?></th>
|
200 |
+
<td>
|
201 |
+
<input type="text" size="100" name="return_url" value="<?php echo ( $edit ? $opts['return_url'][0] : '' ); ?>" />
|
202 |
+
<p class="description">This is the URL the user will be redirected to after a successful payment. Enter the URL of your Thank You page here.</p>
|
203 |
+
</td>
|
204 |
+
</tr>
|
205 |
+
|
206 |
+
<tr valign="top">
|
207 |
+
<th scope="row"><?php echo SwpmUtils::_( 'Button Image URL' ); ?></th>
|
208 |
+
<td>
|
209 |
+
<input type="text" size="100" name="button_image_url" value="<?php echo ( $edit ? $opts['button_image_url'][0] : '' ); ?>" />
|
210 |
+
<p class="description">If you want to customize the look of the button using an image then enter the URL of the image.</p>
|
211 |
+
</td>
|
212 |
+
</tr>
|
213 |
+
|
214 |
+
</table>
|
215 |
+
</div>
|
216 |
+
</div><!-- end of optional details box -->
|
217 |
+
|
218 |
+
<p class="submit">
|
219 |
+
<?php wp_nonce_field( 'swpm_admin_add_edit_stripe_sca_subs_btn', 'swpm_admin_add_edit_stripe_sca_subs_btn' ); ?>
|
220 |
+
<input type="submit" name="swpm_stripe_sca_subscription_<?php echo ( $edit ? 'edit' : 'save' ); ?>_submit" class="button-primary" value="<?php echo SwpmUtils::_( 'Save Payment Data' ); ?>" >
|
221 |
+
</p>
|
222 |
+
|
223 |
+
</form>
|
224 |
+
|
225 |
+
<?php
|
226 |
+
}
|
227 |
+
|
228 |
+
add_action( 'swpm_create_new_button_for_stripe_sca_subscription', 'swpm_create_new_stripe_sca_subscription_button' );
|
229 |
+
|
230 |
+
function swpm_create_new_stripe_sca_subscription_button() {
|
231 |
+
swpm_render_new_edit_stripe_sca_subscription_button_interface( '' );
|
232 |
+
}
|
233 |
+
|
234 |
+
add_action( 'swpm_edit_payment_button_for_stripe_sca_subscription', 'swpm_edit_stripe_sca_subscription_button' );
|
235 |
+
|
236 |
+
function swpm_edit_stripe_sca_subscription_button() {
|
237 |
+
//Retrieve the payment button data and present it for editing.
|
238 |
+
|
239 |
+
$button_id = sanitize_text_field( $_REQUEST['button_id'] );
|
240 |
+
$button_id = absint( $button_id );
|
241 |
+
|
242 |
+
$button = get_post( $button_id ); //Retrieve the CPT for this button
|
243 |
+
|
244 |
+
$post_meta = get_post_meta( $button_id );
|
245 |
+
$post_meta['button_title'] = $button->post_title;
|
246 |
+
$post_meta['button_id'] = $button_id;
|
247 |
+
|
248 |
+
swpm_render_new_edit_stripe_sca_subscription_button_interface( $post_meta, true );
|
249 |
+
}
|
250 |
+
|
251 |
+
/*
|
252 |
+
* Process submission and save the new PayPal Subscription payment button data
|
253 |
+
*/
|
254 |
+
add_action( 'swpm_create_new_button_process_submission', 'swpm_save_edit_stripe_sca_subscription_button_data' );
|
255 |
+
add_action( 'swpm_edit_payment_button_process_submission', 'swpm_save_edit_stripe_sca_subscription_button_data' );
|
256 |
+
|
257 |
+
function swpm_save_edit_stripe_sca_subscription_button_data() {
|
258 |
+
if ( isset( $_REQUEST['swpm_stripe_sca_subscription_save_submit'] ) ) {
|
259 |
+
$edit = false;
|
260 |
+
}
|
261 |
+
if ( isset( $_REQUEST['swpm_stripe_sca_subscription_edit_submit'] ) ) {
|
262 |
+
$edit = true;
|
263 |
+
}
|
264 |
+
if ( isset( $edit ) ) {
|
265 |
+
//This is a Stripe subscription button save or edit event. Process the submission.
|
266 |
+
check_admin_referer( 'swpm_admin_add_edit_stripe_sca_subs_btn', 'swpm_admin_add_edit_stripe_sca_subs_btn' );
|
267 |
+
if ( $edit ) {
|
268 |
+
$button_id = sanitize_text_field( $_REQUEST['button_id'] );
|
269 |
+
$button_id = absint( $button_id );
|
270 |
+
$button_type = sanitize_text_field( $_REQUEST['button_type'] );
|
271 |
+
$button_name = sanitize_text_field( $_REQUEST['button_name'] );
|
272 |
+
|
273 |
+
$button_post = array(
|
274 |
+
'ID' => $button_id,
|
275 |
+
'post_title' => $button_name,
|
276 |
+
'post_type' => 'swpm_payment_button',
|
277 |
+
);
|
278 |
+
wp_update_post( $button_post );
|
279 |
+
} else {
|
280 |
+
$button_id = wp_insert_post(
|
281 |
+
array(
|
282 |
+
'post_title' => sanitize_text_field( $_REQUEST['button_name'] ),
|
283 |
+
'post_type' => 'swpm_payment_button',
|
284 |
+
'post_content' => '',
|
285 |
+
'post_status' => 'publish',
|
286 |
+
)
|
287 |
+
);
|
288 |
+
$button_type = sanitize_text_field( $_REQUEST['button_type'] );
|
289 |
+
}
|
290 |
+
|
291 |
+
update_post_meta( $button_id, 'button_type', $button_type );
|
292 |
+
update_post_meta( $button_id, 'membership_level_id', sanitize_text_field( $_REQUEST['membership_level_id'] ) );
|
293 |
+
update_post_meta( $button_id, 'return_url', trim( sanitize_text_field( $_REQUEST['return_url'] ) ) );
|
294 |
+
update_post_meta( $button_id, 'button_image_url', trim( sanitize_text_field( $_REQUEST['button_image_url'] ) ) );
|
295 |
+
update_post_meta( $button_id, 'stripe_collect_address', isset( $_POST['collect_address'] ) ? '1' : '' );
|
296 |
+
|
297 |
+
if ( $edit ) {
|
298 |
+
// let's see if Stripe details (plan ID and Secret Key) are valid
|
299 |
+
$stripe_error_msg = '';
|
300 |
+
$settings = SwpmSettings::get_instance();
|
301 |
+
$sandbox_enabled = $settings->get_value( 'enable-sandbox-testing' );
|
302 |
+
if ( $sandbox_enabled ) {
|
303 |
+
$secret_key = sanitize_text_field( $_REQUEST['stripe_test_secret_key'] );
|
304 |
+
} else {
|
305 |
+
$secret_key = sanitize_text_field( $_REQUEST['stripe_live_secret_key'] );
|
306 |
+
}
|
307 |
+
|
308 |
+
require_once SIMPLE_WP_MEMBERSHIP_PATH . 'lib/stripe-util-functions.php';
|
309 |
+
$result = StripeUtilFunctions::get_stripe_plan_info( $secret_key, sanitize_text_field( $_REQUEST['stripe_plan_id'] ) );
|
310 |
+
if ( $result['success'] ) {
|
311 |
+
$plan_data = $result['plan_data'];
|
312 |
+
} else {
|
313 |
+
$stripe_error_msg = $result['error_msg'];
|
314 |
+
}
|
315 |
+
}
|
316 |
+
//API details
|
317 |
+
update_post_meta( $button_id, 'stripe_test_secret_key', sanitize_text_field( $_REQUEST['stripe_test_secret_key'] ) );
|
318 |
+
update_post_meta( $button_id, 'stripe_test_publishable_key', sanitize_text_field( $_REQUEST['stripe_test_publishable_key'] ) );
|
319 |
+
update_post_meta( $button_id, 'stripe_live_secret_key', sanitize_text_field( $_REQUEST['stripe_live_secret_key'] ) );
|
320 |
+
update_post_meta( $button_id, 'stripe_live_publishable_key', sanitize_text_field( $_REQUEST['stripe_live_publishable_key'] ) );
|
321 |
+
|
322 |
+
//Subscription billing details
|
323 |
+
update_post_meta( $button_id, 'stripe_plan_id', sanitize_text_field( $_REQUEST['stripe_plan_id'] ) );
|
324 |
+
update_post_meta( $button_id, 'stripe_trial_period', sanitize_text_field( $_REQUEST['stripe_trial_period'] ) );
|
325 |
+
update_post_meta( $button_id, 'stripe_plan_data', ( isset( $plan_data ) ? $plan_data : false ) );
|
326 |
+
|
327 |
+
if ( $edit ) {
|
328 |
+
if ( empty( $stripe_error_msg ) ) {
|
329 |
+
echo '<div id="message" class="updated fade"><p>Payment button data successfully updated!</p></div>';
|
330 |
+
} else {
|
331 |
+
echo '<div id="message" class="error"><p>' . $stripe_error_msg . '</p></div>';
|
332 |
+
}
|
333 |
+
} else {
|
334 |
+
//Redirect to the edit interface of this button with $button_id
|
335 |
+
$url = admin_url() . 'admin.php?page=simple_wp_membership_payments&tab=edit_button&button_id=' . $button_id . '&button_type=' . $button_type;
|
336 |
+
SwpmMiscUtils::redirect_to_url( $url );
|
337 |
+
}
|
338 |
+
}
|
339 |
+
}
|
views/payments/payment-gateway/stripe_sca_button_shortcode_view.php
ADDED
@@ -0,0 +1,327 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/* * ************************************************
|
4 |
+
* Stripe Buy Now button shortcode handler
|
5 |
+
* *********************************************** */
|
6 |
+
add_filter( 'swpm_payment_button_shortcode_for_stripe_sca_buy_now', 'swpm_render_stripe_sca_buy_now_button_sc_output', 10, 2 );
|
7 |
+
|
8 |
+
function swpm_render_stripe_sca_buy_now_button_sc_output( $button_code, $args ) {
|
9 |
+
|
10 |
+
$button_id = isset( $args['id'] ) ? $args['id'] : '';
|
11 |
+
if ( empty( $button_id ) ) {
|
12 |
+
return '<p class="swpm-red-box">Error! swpm_render_stripe_sca_buy_now_button_sc_output() function requires the button ID value to be passed to it.</p>';
|
13 |
+
}
|
14 |
+
|
15 |
+
//Get class option for button styling, set Stripe's default if none specified
|
16 |
+
$class = isset( $args['class'] ) ? $args['class'] : 'stripe-button-el';
|
17 |
+
|
18 |
+
//Check new_window parameter
|
19 |
+
$window_target = isset( $args['new_window'] ) ? 'target="_blank"' : '';
|
20 |
+
$button_text = ( isset( $args['button_text'] ) ) ? esc_attr( $args['button_text'] ) : SwpmUtils::_( 'Buy Now' );
|
21 |
+
|
22 |
+
$item_logo = ''; //Can be used to show an item logo or thumbnail in the checkout form.
|
23 |
+
|
24 |
+
$settings = SwpmSettings::get_instance();
|
25 |
+
$button_cpt = get_post( $button_id ); //Retrieve the CPT for this button
|
26 |
+
$item_name = htmlspecialchars( $button_cpt->post_title );
|
27 |
+
|
28 |
+
$membership_level_id = get_post_meta( $button_id, 'membership_level_id', true );
|
29 |
+
//Verify that this membership level exists (to prevent user paying for a level that has been deleted)
|
30 |
+
if ( ! \SwpmUtils::membership_level_id_exists( $membership_level_id ) ) {
|
31 |
+
return '<p class="swpm-red-box">Error! The membership level specified in this button does not exist. You may have deleted this membership level. Edit the button and use the correct membership level.</p>';
|
32 |
+
}
|
33 |
+
|
34 |
+
//Payment amount and currency
|
35 |
+
$payment_amount = get_post_meta( $button_id, 'payment_amount', true );
|
36 |
+
if ( ! is_numeric( $payment_amount ) ) {
|
37 |
+
return '<p class="swpm-red-box">Error! The payment amount value of the button must be a numeric number. Example: 49.50 </p>';
|
38 |
+
}
|
39 |
+
$payment_currency = get_post_meta( $button_id, 'payment_currency', true );
|
40 |
+
$payment_amount = round( $payment_amount, 2 ); //round the amount to 2 decimal place.
|
41 |
+
$zero_cents = unserialize( SIMPLE_WP_MEMBERSHIP_STRIPE_ZERO_CENTS );
|
42 |
+
if ( in_array( $payment_currency, $zero_cents ) ) {
|
43 |
+
//this is zero-cents currency, amount shouldn't be multiplied by 100
|
44 |
+
$price_in_cents = $payment_amount;
|
45 |
+
} else {
|
46 |
+
$price_in_cents = $payment_amount * 100; //The amount (in cents). This value is passed to Stripe API.
|
47 |
+
}
|
48 |
+
$payment_amount_formatted = SwpmMiscUtils::format_money( $payment_amount, $payment_currency );
|
49 |
+
|
50 |
+
//$button_image_url = get_post_meta($button_id, 'button_image_url', true);//Stripe doesn't currenty support button image for their standard checkout.
|
51 |
+
//User's IP address
|
52 |
+
$user_ip = SwpmUtils::get_user_ip_address();
|
53 |
+
$_SESSION['swpm_payment_button_interaction'] = $user_ip;
|
54 |
+
|
55 |
+
//Custom field data
|
56 |
+
$custom_field_value = 'subsc_ref=' . $membership_level_id;
|
57 |
+
$custom_field_value .= '&user_ip=' . $user_ip;
|
58 |
+
if ( SwpmMemberUtils::is_member_logged_in() ) {
|
59 |
+
$custom_field_value .= '&swpm_id=' . SwpmMemberUtils::get_logged_in_members_id();
|
60 |
+
}
|
61 |
+
$custom_field_value = apply_filters( 'swpm_custom_field_value_filter', $custom_field_value );
|
62 |
+
|
63 |
+
//Sandbox settings
|
64 |
+
$sandbox_enabled = $settings->get_value( 'enable-sandbox-testing' );
|
65 |
+
|
66 |
+
//API keys
|
67 |
+
$stripe_test_secret_key = get_post_meta( $button_id, 'stripe_test_secret_key', true );
|
68 |
+
$stripe_test_publishable_key = get_post_meta( $button_id, 'stripe_test_publishable_key', true );
|
69 |
+
$stripe_live_secret_key = get_post_meta( $button_id, 'stripe_live_secret_key', true );
|
70 |
+
$stripe_live_publishable_key = get_post_meta( $button_id, 'stripe_live_publishable_key', true );
|
71 |
+
if ( $sandbox_enabled ) {
|
72 |
+
$publishable_key = $stripe_test_publishable_key; //Use sandbox API key
|
73 |
+
$secret_key = $stripe_test_secret_key;
|
74 |
+
} else {
|
75 |
+
$publishable_key = $stripe_live_publishable_key; //Use live API key
|
76 |
+
$secret_key = $stripe_live_secret_key;
|
77 |
+
}
|
78 |
+
|
79 |
+
//Billing address
|
80 |
+
$billing_address = isset( $args['billing_address'] ) ? '1' : '';
|
81 |
+
//By default don't show the billing address in the checkout form.
|
82 |
+
//if billing_address parameter is not present in the shortcode, let's check button option
|
83 |
+
if ( $billing_address === '' ) {
|
84 |
+
$collect_address = get_post_meta( $button_id, 'stripe_collect_address', true );
|
85 |
+
if ( $collect_address === '1' ) {
|
86 |
+
//Collect Address enabled in button settings
|
87 |
+
$billing_address = 1;
|
88 |
+
}
|
89 |
+
}
|
90 |
+
|
91 |
+
$uniqid = md5( uniqid() );
|
92 |
+
$ref_id = 'swpm_' . $uniqid . '|' . $button_id;
|
93 |
+
|
94 |
+
//Return, cancel, notifiy URLs
|
95 |
+
$notify_url = SIMPLE_WP_MEMBERSHIP_SITE_HOME_URL . '/?swpm_process_stripe_sca_buy_now=1&ref_id=' . $ref_id; //We are going to use it to do post payment processing.
|
96 |
+
|
97 |
+
$current_url = ( isset( $_SERVER['HTTPS'] ) ? 'https' : 'http' ) . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
|
98 |
+
|
99 |
+
SwpmMiscUtils::load_stripe_lib();
|
100 |
+
|
101 |
+
try {
|
102 |
+
\Stripe\Stripe::setApiKey( $secret_key );
|
103 |
+
|
104 |
+
$opts = array(
|
105 |
+
'payment_method_types' => array( 'card' ),
|
106 |
+
'client_reference_id' => $ref_id,
|
107 |
+
'billing_address_collection' => $billing_address ? 'required' : 'auto',
|
108 |
+
'line_items' => array(
|
109 |
+
array(
|
110 |
+
'name' => $item_name,
|
111 |
+
'description' => $payment_amount_formatted,
|
112 |
+
'amount' => $price_in_cents,
|
113 |
+
'currency' => $payment_currency,
|
114 |
+
'quantity' => 1,
|
115 |
+
),
|
116 |
+
),
|
117 |
+
'success_url' => $notify_url,
|
118 |
+
'cancel_url' => $current_url,
|
119 |
+
);
|
120 |
+
|
121 |
+
if ( ! empty( $item_logo ) ) {
|
122 |
+
$opts['line_items'][0]['images'] = array( $item_logo );
|
123 |
+
}
|
124 |
+
|
125 |
+
$session = \Stripe\Checkout\Session::create( $opts );
|
126 |
+
} catch ( Exception $e ) {
|
127 |
+
$err = $e->getMessage();
|
128 |
+
return '<p class="swpm-red-box">' . $err . '</p>';
|
129 |
+
}
|
130 |
+
|
131 |
+
/* === Stripe Buy Now Button Form === */
|
132 |
+
$output = '';
|
133 |
+
$output .= '<div class="swpm-button-wrapper swpm-stripe-buy-now-wrapper">';
|
134 |
+
$output .= "<form id='swpm-stripe-payment-form-" . $uniqid . "' action='" . $notify_url . "' METHOD='POST'> ";
|
135 |
+
$output .= "<div style='display: none !important'>";
|
136 |
+
$output .= '<script src="https://js.stripe.com/v3/"></script>';
|
137 |
+
$output .= "<link rel='stylesheet' href='https://checkout.stripe.com/v3/checkout/button.css' type='text/css' media='all' />";
|
138 |
+
ob_start();
|
139 |
+
?>
|
140 |
+
<script>
|
141 |
+
var stripe = Stripe('<?php echo esc_js( $publishable_key ); ?>');
|
142 |
+
jQuery('#swpm-stripe-payment-form-<?php echo esc_js( $uniqid ); ?>').on('submit',function(e) {
|
143 |
+
e.preventDefault();
|
144 |
+
stripe.redirectToCheckout({
|
145 |
+
sessionId: '<?php echo esc_js( $session->id ); ?>'
|
146 |
+
}).then(function (result) {
|
147 |
+
});
|
148 |
+
});
|
149 |
+
</script>
|
150 |
+
<?php
|
151 |
+
$output .= ob_get_clean();
|
152 |
+
$output .= '</div>';
|
153 |
+
|
154 |
+
//apply filter to output additional form fields
|
155 |
+
$coupon_input = '';
|
156 |
+
$coupon_input = apply_filters( 'swpm_payment_form_additional_fields', $coupon_input, $button_id, $uniqid );
|
157 |
+
if ( ! empty( $coupon_input ) ) {
|
158 |
+
$output .= $coupon_input;
|
159 |
+
}
|
160 |
+
|
161 |
+
$button_image_url = get_post_meta( $button_id, 'button_image_url', true );
|
162 |
+
if ( ! empty( $button_image_url ) ) {
|
163 |
+
$output .= '<input type="image" src="' . $button_image_url . '" class="' . $class . '" alt="' . $button_text . '" title="' . $button_text . '" />';
|
164 |
+
} else {
|
165 |
+
$output .= "<button id='{$button_id}' type='submit' class='{$class}'><span>{$button_text}</span></button>";
|
166 |
+
}
|
167 |
+
|
168 |
+
//Filter to add additional payment input fields to the form.
|
169 |
+
$output .= apply_filters( 'swpm_stripe_payment_form_additional_fields', '' );
|
170 |
+
|
171 |
+
$output .= '</form>';
|
172 |
+
$output .= '</div>'; //End .swpm_button_wrapper
|
173 |
+
|
174 |
+
return $output;
|
175 |
+
}
|
176 |
+
|
177 |
+
add_filter( 'swpm_payment_button_shortcode_for_stripe_sca_subscription', 'swpm_render_stripe_sca_subscription_button_sc_output', 10, 2 );
|
178 |
+
|
179 |
+
function swpm_render_stripe_sca_subscription_button_sc_output( $button_code, $args ) {
|
180 |
+
|
181 |
+
$button_id = isset( $args['id'] ) ? $args['id'] : '';
|
182 |
+
if ( empty( $button_id ) ) {
|
183 |
+
return '<p class="swpm-red-box">Error! swpm_render_stripe_sca_buy_now_button_sc_output() function requires the button ID value to be passed to it.</p>';
|
184 |
+
}
|
185 |
+
|
186 |
+
//Get class option for button styling, set Stripe's default if none specified
|
187 |
+
$class = isset( $args['class'] ) ? $args['class'] : 'stripe-button-el';
|
188 |
+
|
189 |
+
//Check new_window parameter
|
190 |
+
$window_target = isset( $args['new_window'] ) ? 'target="_blank"' : '';
|
191 |
+
$button_text = ( isset( $args['button_text'] ) ) ? esc_attr( $args['button_text'] ) : SwpmUtils::_( 'Buy Now' );
|
192 |
+
|
193 |
+
$item_logo = ''; //Can be used to show an item logo or thumbnail in the checkout form.
|
194 |
+
|
195 |
+
$settings = SwpmSettings::get_instance();
|
196 |
+
$button_cpt = get_post( $button_id ); //Retrieve the CPT for this button
|
197 |
+
$item_name = htmlspecialchars( $button_cpt->post_title );
|
198 |
+
|
199 |
+
$membership_level_id = get_post_meta( $button_id, 'membership_level_id', true );
|
200 |
+
//Verify that this membership level exists (to prevent user paying for a level that has been deleted)
|
201 |
+
if ( ! \SwpmUtils::membership_level_id_exists( $membership_level_id ) ) {
|
202 |
+
return '<p class="swpm-red-box">Error! The membership level specified in this button does not exist. You may have deleted this membership level. Edit the button and use the correct membership level.</p>';
|
203 |
+
}
|
204 |
+
|
205 |
+
//$button_image_url = get_post_meta($button_id, 'button_image_url', true);//Stripe doesn't currenty support button image for their standard checkout.
|
206 |
+
//User's IP address
|
207 |
+
$user_ip = SwpmUtils::get_user_ip_address();
|
208 |
+
$_SESSION['swpm_payment_button_interaction'] = $user_ip;
|
209 |
+
|
210 |
+
//Custom field data
|
211 |
+
$custom_field_value = 'subsc_ref=' . $membership_level_id;
|
212 |
+
$custom_field_value .= '&user_ip=' . $user_ip;
|
213 |
+
if ( SwpmMemberUtils::is_member_logged_in() ) {
|
214 |
+
$custom_field_value .= '&swpm_id=' . SwpmMemberUtils::get_logged_in_members_id();
|
215 |
+
}
|
216 |
+
$custom_field_value = apply_filters( 'swpm_custom_field_value_filter', $custom_field_value );
|
217 |
+
|
218 |
+
//Sandbox settings
|
219 |
+
$sandbox_enabled = $settings->get_value( 'enable-sandbox-testing' );
|
220 |
+
|
221 |
+
//API keys
|
222 |
+
$stripe_test_secret_key = get_post_meta( $button_id, 'stripe_test_secret_key', true );
|
223 |
+
$stripe_test_publishable_key = get_post_meta( $button_id, 'stripe_test_publishable_key', true );
|
224 |
+
$stripe_live_secret_key = get_post_meta( $button_id, 'stripe_live_secret_key', true );
|
225 |
+
$stripe_live_publishable_key = get_post_meta( $button_id, 'stripe_live_publishable_key', true );
|
226 |
+
if ( $sandbox_enabled ) {
|
227 |
+
$publishable_key = $stripe_test_publishable_key; //Use sandbox API key
|
228 |
+
$secret_key = $stripe_test_secret_key;
|
229 |
+
} else {
|
230 |
+
$publishable_key = $stripe_live_publishable_key; //Use live API key
|
231 |
+
$secret_key = $stripe_live_secret_key;
|
232 |
+
}
|
233 |
+
|
234 |
+
//Billing address
|
235 |
+
$billing_address = isset( $args['billing_address'] ) ? '1' : '';
|
236 |
+
//By default don't show the billing address in the checkout form.
|
237 |
+
//if billing_address parameter is not present in the shortcode, let's check button option
|
238 |
+
if ( $billing_address === '' ) {
|
239 |
+
$collect_address = get_post_meta( $button_id, 'stripe_collect_address', true );
|
240 |
+
if ( $collect_address === '1' ) {
|
241 |
+
//Collect Address enabled in button settings
|
242 |
+
$billing_address = 1;
|
243 |
+
}
|
244 |
+
}
|
245 |
+
|
246 |
+
$uniqid = md5( uniqid() );
|
247 |
+
$ref_id = 'swpm_' . $uniqid . '|' . $button_id;
|
248 |
+
|
249 |
+
//Return, cancel, notifiy URLs
|
250 |
+
$notify_url = SIMPLE_WP_MEMBERSHIP_SITE_HOME_URL . '/?swpm_process_stripe_sca_subscription=1&ref_id=' . $ref_id; //We are going to use it to do post payment processing.
|
251 |
+
|
252 |
+
$current_url = ( isset( $_SERVER['HTTPS'] ) ? 'https' : 'http' ) . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
|
253 |
+
|
254 |
+
$plan_id = get_post_meta( $button_id, 'stripe_plan_id', true );
|
255 |
+
|
256 |
+
SwpmMiscUtils::load_stripe_lib();
|
257 |
+
|
258 |
+
try {
|
259 |
+
\Stripe\Stripe::setApiKey( $secret_key );
|
260 |
+
|
261 |
+
$opts = array(
|
262 |
+
'payment_method_types' => array( 'card' ),
|
263 |
+
'client_reference_id' => $ref_id,
|
264 |
+
'billing_address_collection' => $billing_address ? 'required' : 'auto',
|
265 |
+
'subscription_data' => array(
|
266 |
+
'items' => array( array( 'plan' => $plan_id ) ),
|
267 |
+
),
|
268 |
+
'success_url' => $notify_url,
|
269 |
+
'cancel_url' => $current_url,
|
270 |
+
);
|
271 |
+
|
272 |
+
$trial_period = get_post_meta( $button_id, 'stripe_trial_period', true );
|
273 |
+
$trial_period = absint( $trial_period );
|
274 |
+
if ( $trial_period ) {
|
275 |
+
$opts['subscription_data']['trial_period_days'] = $trial_period;
|
276 |
+
}
|
277 |
+
|
278 |
+
$session = \Stripe\Checkout\Session::create( $opts );
|
279 |
+
} catch ( Exception $e ) {
|
280 |
+
$err = $e->getMessage();
|
281 |
+
return '<p class="swpm-red-box">' . $err . '</p>';
|
282 |
+
}
|
283 |
+
|
284 |
+
/* === Stripe SCA Subscription Button Form === */
|
285 |
+
$output = '';
|
286 |
+
$output .= '<div class="swpm-button-wrapper swpm-stripe-buy-now-wrapper">';
|
287 |
+
$output .= "<form id='swpm-stripe-payment-form-" . $uniqid . "' action='" . $notify_url . "' METHOD='POST'> ";
|
288 |
+
$output .= "<div style='display: none !important'>";
|
289 |
+
$output .= '<script src="https://js.stripe.com/v3/"></script>';
|
290 |
+
$output .= "<link rel='stylesheet' href='https://checkout.stripe.com/v3/checkout/button.css' type='text/css' media='all' />";
|
291 |
+
ob_start();
|
292 |
+
?>
|
293 |
+
<script>
|
294 |
+
var stripe = Stripe('<?php echo esc_js( $publishable_key ); ?>');
|
295 |
+
jQuery('#swpm-stripe-payment-form-<?php echo esc_js( $uniqid ); ?>').on('submit',function(e) {
|
296 |
+
e.preventDefault();
|
297 |
+
stripe.redirectToCheckout({
|
298 |
+
sessionId: '<?php echo esc_js( $session->id ); ?>'
|
299 |
+
}).then(function (result) {
|
300 |
+
});
|
301 |
+
});
|
302 |
+
</script>
|
303 |
+
<?php
|
304 |
+
$output .= ob_get_clean();
|
305 |
+
$output .= '</div>';
|
306 |
+
|
307 |
+
//apply filter to output additional form fields
|
308 |
+
$coupon_input = '';
|
309 |
+
$coupon_input = apply_filters( 'swpm_payment_form_additional_fields', $coupon_input, $button_id, $uniqid );
|
310 |
+
if ( ! empty( $coupon_input ) ) {
|
311 |
+
$output .= $coupon_input;
|
312 |
+
}
|
313 |
+
|
314 |
+
$button_image_url = get_post_meta( $button_id, 'button_image_url', true );
|
315 |
+
if ( ! empty( $button_image_url ) ) {
|
316 |
+
$output .= '<input type="image" src="' . $button_image_url . '" class="' . $class . '" alt="' . $button_text . '" title="' . $button_text . '" />';
|
317 |
+
} else {
|
318 |
+
$output .= "<button id='{$button_id}' type='submit' class='{$class}'><span>{$button_text}</span></button>";
|
319 |
+
}
|
320 |
+
|
321 |
+
//Filter to add additional payment input fields to the form.
|
322 |
+
$output .= apply_filters( 'swpm_stripe_payment_form_additional_fields', '' );
|
323 |
+
|
324 |
+
$output .= '</form>';
|
325 |
+
$output .= '</div>'; //End .swpm_button_wrapper
|
326 |
+
|
327 |
+
return $output;}
|