Version Description
Download this release
Release Info
Developer | mr.clayton |
Plugin | Payment Plugins for Stripe WooCommerce |
Version | 3.0.0 |
Comparing to | |
See all releases |
Version 3.0.0
- apple-developer-merchantid-domain-association +1 -0
- assets/css/admin/admin.css +138 -0
- assets/css/stripe.css +383 -0
- assets/img/alipay.svg +1 -0
- assets/img/applepay.svg +76 -0
- assets/img/bancontact.svg +1 -0
- assets/img/card_brand.svg +3 -0
- assets/img/card_brand2.svg +3 -0
- assets/img/cards/amex.svg +1 -0
- assets/img/cards/china_union_pay.svg +13 -0
- assets/img/cards/diners.svg +1 -0
- assets/img/cards/discover.svg +1 -0
- assets/img/cards/jcb.svg +1 -0
- assets/img/cards/laser.svg +1 -0
- assets/img/cards/maestro.svg +1 -0
- assets/img/cards/mastercard.svg +1 -0
- assets/img/cards/visa.svg +1 -0
- assets/img/chrome.svg +105 -0
- assets/img/edge.svg +1 -0
- assets/img/eps.svg +86 -0
- assets/img/giropay.svg +1 -0
- assets/img/googlepay_outline.svg +27 -0
- assets/img/googlepay_standard.svg +12 -0
- assets/img/ideal.svg +1 -0
- assets/img/klarna.svg +25 -0
- assets/img/logo.svg +122 -0
- assets/img/multibanco.svg +91 -0
- assets/img/p24.svg +63 -0
- assets/img/sepa.svg +39 -0
- assets/img/sofort.svg +1 -0
- assets/img/stripe_logo.svg +121 -0
- assets/img/wechat.svg +1 -0
- assets/js/admin/admin-settings.js +123 -0
- assets/js/admin/googlepay.js +37 -0
- assets/js/admin/help-widget.js +26 -0
- assets/js/admin/meta-boxes-order.js +145 -0
- assets/js/admin/modals.js +126 -0
- assets/js/frontend/applepay-cart.js +40 -0
- assets/js/frontend/applepay-checkout.js +56 -0
- assets/js/frontend/applepay-product.js +47 -0
- assets/js/frontend/credit-card.js +296 -0
- assets/js/frontend/form-handler.js +114 -0
- assets/js/frontend/googlepay-cart.js +57 -0
- assets/js/frontend/googlepay-checkout.js +68 -0
- assets/js/frontend/googlepay-product.js +64 -0
- assets/js/frontend/local-payment.js +139 -0
- assets/js/frontend/notices.js +25 -0
- assets/js/frontend/payment-request.js +210 -0
- assets/js/frontend/wc-stripe.js +1530 -0
- assets/js/frontend/wc-stripe.min.js +1 -0
- i18n/languages/woo-stripe.pot +1466 -0
- includes/abstract/abstract-wc-payment-gateway-stripe-charge.php +180 -0
- includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php +218 -0
- includes/abstract/abstract-wc-payment-gateway-stripe-payment-intent.php +272 -0
- includes/abstract/abstract-wc-payment-gateway-stripe.php +973 -0
- includes/abstract/abstract-wc-payment-token-stripe.php +129 -0
- includes/abstract/abstract-wc-stripe-rest-controller.php +102 -0
- includes/abstract/abstract-wc-stripe-settings.php +90 -0
- includes/admin/class-wc-stripe-admin-assets.php +78 -0
- includes/admin/class-wc-stripe-admin-menus.php +48 -0
- includes/admin/class-wc-stripe-admin-settings.php +82 -0
- includes/admin/class-wc-stripe-admin-user-edit.php +132 -0
- includes/admin/meta-boxes/class-wc-stripe-admin-order-metaboxes.php +99 -0
- includes/admin/meta-boxes/views/html-charge-data-subview.php +88 -0
- includes/admin/meta-boxes/views/html-order-actions.php +47 -0
- includes/admin/meta-boxes/views/html-order-charge-data.php +40 -0
- includes/admin/meta-boxes/views/html-order-pay.php +59 -0
- includes/admin/settings/class-wc-stripe-api-settings.php +103 -0
- includes/admin/views/html-button-demo.php +13 -0
- includes/admin/views/html-description.php +1 -0
- includes/admin/views/html-paragraph.php +14 -0
- includes/admin/views/html-settings-local-payments-nav.php +12 -0
- includes/admin/views/html-settings-nav.php +18 -0
- includes/admin/views/html-user-profile.php +95 -0
- includes/class-stripe.php +246 -0
- includes/class-wc-stripe-customer-manager.php +126 -0
- includes/class-wc-stripe-field-manager.php +163 -0
- includes/class-wc-stripe-frontend-notices.php +56 -0
- includes/class-wc-stripe-frontend-scripts.php +101 -0
- includes/class-wc-stripe-gateway.php +368 -0
- includes/class-wc-stripe-install.php +26 -0
- includes/class-wc-stripe-redirect-handler.php +74 -0
- includes/class-wc-stripe-rest-api.php +114 -0
- includes/controllers/class-wc-stripe-controller-cart.php +237 -0
- includes/controllers/class-wc-stripe-controller-checkout.php +134 -0
- includes/controllers/class-wc-stripe-controller-gateway-settings.php +69 -0
- includes/controllers/class-wc-stripe-controller-googlepay.php +141 -0
- includes/controllers/class-wc-stripe-controller-order-actions.php +285 -0
- includes/controllers/class-wc-stripe-controller-payment-intent.php +45 -0
- includes/controllers/class-wc-stripe-controller-payment-method.php +47 -0
- includes/controllers/class-wc-stripe-controller-webhook.php +53 -0
- includes/gateways/class-wc-payment-gateway-stripe-applepay.php +82 -0
- includes/gateways/class-wc-payment-gateway-stripe-cc.php +127 -0
- includes/gateways/class-wc-payment-gateway-stripe-eps.php +57 -0
- includes/gateways/class-wc-payment-gateway-stripe-giropay.php +59 -0
- includes/gateways/class-wc-payment-gateway-stripe-googlepay.php +173 -0
- includes/gateways/class-wc-payment-gateway-stripe-ideal.php +55 -0
- includes/gateways/class-wc-payment-gateway-stripe-klarna.php +105 -0
- includes/gateways/class-wc-payment-gateway-stripe-multibanco.php +58 -0
- includes/gateways/class-wc-payment-gateway-stripe-p24.php +57 -0
- includes/gateways/class-wc-payment-gateway-stripe-payment-request.php +80 -0
- includes/gateways/class-wc-payment-gateway-stripe-sepa.php +66 -0
- includes/gateways/class-wc-payment-gateway-stripe-sofort.php +70 -0
- includes/gateways/class-wc-payment-gateway-stripe-wechat.php +63 -0
- includes/gateways/settings/applepay-settings.php +126 -0
- includes/gateways/settings/cc-settings.php +127 -0
- includes/gateways/settings/googlepay-settings.php +144 -0
- includes/gateways/settings/payment-request-settings.php +109 -0
- includes/tokens/class-wc-payment-token-stripe-applepay.php +24 -0
- includes/tokens/class-wc-payment-token-stripe-cc.php +126 -0
- includes/tokens/class-wc-payment-token-stripe-googlepay.php +24 -0
- includes/tokens/class-wc-payment-token-stripe-local-payment.php +34 -0
- includes/wc-stripe-functions.php +771 -0
- includes/wc-stripe-hooks.php +21 -0
- includes/wc-stripe-webhook-functions.php +45 -0
- readme.txt +55 -0
- stripe-payments.php +32 -0
- stripe-php-6.40.0/.gitignore +17 -0
- stripe-php-6.40.0/CHANGELOG.md +715 -0
- stripe-php-6.40.0/LICENSE +21 -0
- stripe-php-6.40.0/README.md +257 -0
- stripe-php-6.40.0/VERSION +1 -0
- stripe-php-6.40.0/build.php +36 -0
- stripe-php-6.40.0/composer.json +37 -0
- stripe-php-6.40.0/data/ca-certificates.crt +3646 -0
- stripe-php-6.40.0/init.php +145 -0
- stripe-php-6.40.0/lib/Account.php +393 -0
- stripe-php-6.40.0/lib/AccountLink.php +21 -0
- stripe-php-6.40.0/lib/AlipayAccount.php +72 -0
- stripe-php-6.40.0/lib/ApiOperations/All.php +34 -0
- stripe-php-6.40.0/lib/ApiOperations/Create.php +28 -0
- stripe-php-6.40.0/lib/ApiOperations/Delete.php +27 -0
- stripe-php-6.40.0/lib/ApiOperations/NestedResource.php +118 -0
- stripe-php-6.40.0/lib/ApiOperations/Request.php +61 -0
- stripe-php-6.40.0/lib/ApiOperations/Retrieve.php +27 -0
- stripe-php-6.40.0/lib/ApiOperations/Update.php +46 -0
- stripe-php-6.40.0/lib/ApiRequestor.php +508 -0
- stripe-php-6.40.0/lib/ApiResource.php +112 -0
- stripe-php-6.40.0/lib/ApiResponse.php +32 -0
- stripe-php-6.40.0/lib/ApplePayDomain.php +28 -0
- stripe-php-6.40.0/lib/ApplicationFee.php +98 -0
- stripe-php-6.40.0/lib/ApplicationFeeRefund.php +60 -0
- stripe-php-6.40.0/lib/Balance.php +30 -0
- stripe-php-6.40.0/lib/BalanceTransaction.php +75 -0
- stripe-php-6.40.0/lib/BankAccount.php +109 -0
- stripe-php-6.40.0/lib/BitcoinReceiver.php +49 -0
- stripe-php-6.40.0/lib/BitcoinTransaction.php +14 -0
- stripe-php-6.40.0/lib/Capability.php +83 -0
- stripe-php-6.40.0/lib/Card.php +130 -0
- stripe-php-6.40.0/lib/Charge.php +207 -0
- stripe-php-6.40.0/lib/Checkout/Session.php +40 -0
- stripe-php-6.40.0/lib/Collection.php +108 -0
- stripe-php-6.40.0/lib/CountrySpec.php +26 -0
- stripe-php-6.40.0/lib/Coupon.php +36 -0
- stripe-php-6.40.0/lib/CreditNote.php +74 -0
- stripe-php-6.40.0/lib/Customer.php +235 -0
apple-developer-merchantid-domain-association
ADDED
@@ -0,0 +1 @@
|
|
Â
|
1 |
+
7B227073704964223A2239373943394538343346343131343044463144313834343232393232313734313034353044314339464446394437384337313531303944334643463542433731222C2276657273696F6E223A312C22637265617465644F6E223A313437313435343137313137362C227369676E6174757265223A2233303830303630393261383634383836663730643031303730326130383033303830303230313031333130663330306430363039363038363438303136353033303430323031303530303330383030363039326138363438383666373064303130373031303030306130383033303832303365363330383230333862613030333032303130323032303836383630663639396439636361373066333030613036303832613836343863653364303430333032333037613331326533303263303630333535303430333063323534313730373036633635323034313730373036633639363336313734363936663665323034393665373436353637373236313734363936663665323034333431323032643230343733333331323633303234303630333535303430623063316434313730373036633635323034333635373237343639363636393633363137343639366636653230343137353734363836663732363937343739333131333330313130363033353530343061306330613431373037303663363532303439366536333265333130623330303930363033353530343036313330323535353333303165313730643331333633303336333033333331333833313336333433303561313730643332333133303336333033323331333833313336333433303561333036323331323833303236303630333535303430333063316636353633363332643733366437303264363237323666366236353732326437333639363736653566353534333334326435333431346534343432346635383331313433303132303630333535303430623063306236393466353332303533373937333734363536643733333131333330313130363033353530343061306330613431373037303663363532303439366536333265333130623330303930363033353530343036313330323535353333303539333031333036303732613836343863653364303230313036303832613836343863653364303330313037303334323030303438323330666461626333396366373565323032633530643939623435313265363337653261393031646436636233653062316364346235323637393866386366346562646538316132356138633231653463333364646365386532613936633266366166613139333033343563346538376134343236636539353162313239356133383230323131333038323032306433303435303630383262303630313035303530373031303130343339333033373330333530363038326230363031303530353037333030313836323936383734373437303361326632663666363337333730326536313730373036633635326536333666366432663666363337333730333033343264363137303730366336353631363936333631333333303332333031643036303335353164306530343136303431343032323433303062396165656564343633313937613461363561323939653432373138323163343533303063303630333535316431333031303166663034303233303030333031663036303335353164323330343138333031363830313432336632343963343466393365346566323765366334663632383663336661326262666432653462333038323031316430363033353531643230303438323031313433303832303131303330383230313063303630393261383634383836663736333634303530313330383166653330383163333036303832623036303130353035303730323032333038316236306338316233353236353663363936313665363336353230366636653230373436383639373332303633363537323734363936363639363336313734363532303632373932303631366537393230373036313732373437393230363137333733373536643635373332303631363336333635373037343631366536333635323036663636323037343638363532303734363836353665323036313730373036633639363336313632366336353230373337343631366536343631373236343230373436353732366437333230363136653634323036333666366536343639373436393666366537333230366636363230373537333635326332303633363537323734363936363639363336313734363532303730366636633639363337393230363136653634323036333635373237343639363636393633363137343639366636653230373037323631363337343639363336353230373337343631373436353664363536653734373332653330333630363038326230363031303530353037303230313136326136383734373437303361326632663737373737373265363137303730366336353265363336663664326636333635373237343639363636393633363137343635363137353734363836663732363937343739326633303334303630333535316431663034326433303262333032396130323761303235383632333638373437343730336132663266363337323663326536313730373036633635326536333666366432663631373037303663363536313639363336313333326536333732366333303065303630333535316430663031303166663034303430333032303738303330306630363039326138363438383666373633363430363164303430323035303033303061303630383261383634386365336430343033303230333439303033303436303232313030646131633633616538626535663634663865313165383635363933376239623639633437326265393365616333323333613136373933366534613864356538333032323130306264356166626638363966336330636132373462326664646534663731373135396362336264373139396232636130666634303964653635396138326232346433303832303265653330383230323735613030333032303130323032303834393664326662663361393864613937333030613036303832613836343863653364303430333032333036373331316233303139303630333535303430333063313234313730373036633635323035323666366637343230343334313230326432303437333333313236333032343036303335353034306230633164343137303730366336353230343336353732373436393636363936333631373436393666366532303431373537343638366637323639373437393331313333303131303630333535303430613063306134313730373036633635323034393665363332653331306233303039303630333535303430363133303235353533333031653137306433313334333033353330333633323333333433363333333035613137306433323339333033353330333633323333333433363333333035613330376133313265333032633036303335353034303330633235343137303730366336353230343137303730366336393633363137343639366636653230343936653734363536373732363137343639366636653230343334313230326432303437333333313236333032343036303335353034306230633164343137303730366336353230343336353732373436393636363936333631373436393666366532303431373537343638366637323639373437393331313333303131303630333535303430613063306134313730373036633635323034393665363332653331306233303039303630333535303430363133303235353533333035393330313330363037326138363438636533643032303130363038326138363438636533643033303130373033343230303034663031373131383431396437363438356435316135653235383130373736653838306132656664653762616534646530386466633462393365313333353664353636356233356165323264303937373630643232346537626261303866643736313763653838636237366262363637306265633865383239383466663534343561333831663733303831663433303436303630383262303630313035303530373031303130343361333033383330333630363038326230363031303530353037333030313836326136383734373437303361326632663666363337333730326536313730373036633635326536333666366432663666363337333730333033343264363137303730366336353732366636663734363336313637333333303164303630333535316430653034313630343134323366323439633434663933653465663237653663346636323836633366613262626664326534623330306630363033353531643133303130316666303430353330303330313031666633303166303630333535316432333034313833303136383031346262623064656131353833333838396161343861393964656265626465626166646163623234616233303337303630333535316431663034333033303265333032636130326161303238383632363638373437343730336132663266363337323663326536313730373036633635326536333666366432663631373037303663363537323666366637343633363136373333326536333732366333303065303630333535316430663031303166663034303430333032303130363330313030363061326138363438383666373633363430363032306530343032303530303330306130363038326138363438636533643034303330323033363730303330363430323330336163663732383335313136393962313836666233356333353663613632626666343137656464393066373534646132386562656631396338313565343262373839663839386637396235393966393864353431306438663964653963326665303233303332326464353434323162306133303537373663356466333338336239303637666431373763326332313664393634666336373236393832313236663534663837613764316239396362396230393839323136313036393930663039393231643030303033313832303136303330383230313563303230313031333038313836333037613331326533303263303630333535303430333063323534313730373036633635323034313730373036633639363336313734363936663665323034393665373436353637373236313734363936663665323034333431323032643230343733333331323633303234303630333535303430623063316434313730373036633635323034333635373237343639363636393633363137343639366636653230343137353734363836663732363937343739333131333330313130363033353530343061306330613431373037303663363532303439366536333265333130623330303930363033353530343036313330323535353330323038363836306636393964396363613730663330306430363039363038363438303136353033303430323031303530306130363933303138303630393261383634383836663730643031303930333331306230363039326138363438383666373064303130373031333031633036303932613836343838366637306430313039303533313066313730643331333633303338333133373331333733313336333133313561333032663036303932613836343838366637306430313039303433313232303432303733343832623432653665366332323264616536643963303961346336663332316534656136653666326661626631356430376562333338643264613435646233303061303630383261383634386365336430343033303230343438333034363032323130306564333264376438616131623536623036626164623162396639396264643063653662363931316530623032393232633934333362663564326130656135353830323231303066393433353637663030323361643061343561373236663238376636303062656334666566373335383832383935633733313531383337336163383934383137303030303030303030303030227D
|
assets/css/admin/admin.css
ADDED
@@ -0,0 +1,138 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
.wc-stripe-settings-container{
|
2 |
+
padding: 0 0.5em;
|
3 |
+
}
|
4 |
+
.wc-stripe-cc-desc{
|
5 |
+
margin: 0;
|
6 |
+
}
|
7 |
+
.wc-stripe-settings-logo {
|
8 |
+
margin: 1.5em 1em 0.5em 0;
|
9 |
+
}
|
10 |
+
.wc-stripe-settings-logo img{
|
11 |
+
width: 150px;
|
12 |
+
max-width: 150px;
|
13 |
+
margin-left: 0.5em;
|
14 |
+
}
|
15 |
+
.wc-stripe-advanced-settings-nav{
|
16 |
+
margin-top: 1em;
|
17 |
+
}
|
18 |
+
.nav-tab-wrapper.woo-nav-tab-wrapper{
|
19 |
+
min-height:35px;
|
20 |
+
}
|
21 |
+
@media(max-width: 690px){
|
22 |
+
.nav-tab-wrapper.woo-nav-tab-wrapper{
|
23 |
+
min-height:70px;
|
24 |
+
}
|
25 |
+
}
|
26 |
+
.wc-stripe-advanced-settings-nav .nav-link:nth-child(n+2){
|
27 |
+
margin-left: 0.5em;
|
28 |
+
}
|
29 |
+
.wc-stripe-advanced-settings-nav .nav-link-active{
|
30 |
+
color: #555;
|
31 |
+
font-weight: 500;
|
32 |
+
}
|
33 |
+
.stripe_cc .wc-stripe-card-icon{
|
34 |
+
width: 36px;
|
35 |
+
vertical-align: middle;
|
36 |
+
}
|
37 |
+
#order_data .order_data_column .transaction-data {
|
38 |
+
|
39 |
+
}
|
40 |
+
#order_data .order_data_column .transaction-data h3{
|
41 |
+
margin-bottom: 5px;
|
42 |
+
}
|
43 |
+
#order_data .order_data_column .transaction-data a{
|
44 |
+
text-decoration: none;
|
45 |
+
border: 2px solid transparent;
|
46 |
+
border-radius: 4px;
|
47 |
+
}
|
48 |
+
#order_data .order_data_column .transaction-data a:before{
|
49 |
+
font-family: WooCommerce;
|
50 |
+
content: "\e010";
|
51 |
+
font-size: 18px;
|
52 |
+
width: 16px;
|
53 |
+
}
|
54 |
+
#order_data .order_data_column .transaction-data .do-transaction-view:hover{
|
55 |
+
border: 2px solid #00a0d2;
|
56 |
+
}
|
57 |
+
.wc-transaction-data .data-container{
|
58 |
+
display: flex;
|
59 |
+
flex-wrap: wrap;
|
60 |
+
}
|
61 |
+
.wc-transaction-data h2{
|
62 |
+
margin: 0 0 1em 0;
|
63 |
+
}
|
64 |
+
.wc-transaction-data .charge-actions{
|
65 |
+
margin-bottom: 0.5em;
|
66 |
+
}
|
67 |
+
.wc-transaction-data .data-container .column-6{
|
68 |
+
width: 50%;
|
69 |
+
margin-bottom: 0.5em;
|
70 |
+
}
|
71 |
+
.wc-transaction-data .data-container .column-6 label{
|
72 |
+
display: inline-block;
|
73 |
+
font-weight: 600;
|
74 |
+
vertical-align: bottom;
|
75 |
+
}
|
76 |
+
.wc-transaction-data .data-container .metadata{
|
77 |
+
margin-bottom: 0.5em;
|
78 |
+
}
|
79 |
+
#wc-stripe-card-container{
|
80 |
+
margin: 1em 0;
|
81 |
+
border: 1px solid #e8e8e8;
|
82 |
+
}
|
83 |
+
#wc-stripe-card-container #card-element{
|
84 |
+
background-color: #fff;
|
85 |
+
padding: 12px 6px;
|
86 |
+
}
|
87 |
+
#wc-stripe-pay-order-form .modal-wide{
|
88 |
+
width: 100%;
|
89 |
+
margin-bottom: 1.5em;
|
90 |
+
}
|
91 |
+
#wc-stripe-pay-order-form .modal-wide label{
|
92 |
+
font-weight: 500;
|
93 |
+
}
|
94 |
+
#wc-stripe-pay-order-form .modal-wide.option label{
|
95 |
+
display: block;
|
96 |
+
margin-bottom: 0.5em;
|
97 |
+
}
|
98 |
+
#wc-stripe-pay-order-form .token-container{
|
99 |
+
margin: 1em 0em;
|
100 |
+
}
|
101 |
+
#wc-stripe-pay-order-form .woocommerce-error{
|
102 |
+
background: #b22222;
|
103 |
+
color: #fff;
|
104 |
+
padding: 1em;
|
105 |
+
margin-bottom: 1em;
|
106 |
+
}
|
107 |
+
.wc-stripe-docs{
|
108 |
+
padding: 0 6px;
|
109 |
+
margin-top: 1em;
|
110 |
+
}
|
111 |
+
.wc-stripe-advanced-settings-nav.local-gateways{
|
112 |
+
margin-left: 0.5em;
|
113 |
+
}
|
114 |
+
.wc-stripe-webhook{
|
115 |
+
font-weight: 500;
|
116 |
+
margin-bottom: 0.75em;
|
117 |
+
}
|
118 |
+
.profile-php .wc-stripe-payment-methods th,
|
119 |
+
.user-edit-php .wc-stripe-payment-methods th{
|
120 |
+
padding: 10px 0;
|
121 |
+
}
|
122 |
+
.profile-php .wc-stripe-payment-methods th,
|
123 |
+
.profile-php .wc-stripe-payment-methods td,
|
124 |
+
.user-edit-php .wc-stripe-payment-methods th,
|
125 |
+
.user-edit-php .wc-stripe-payment-methods td{
|
126 |
+
text-align: left;
|
127 |
+
}
|
128 |
+
.profile-php .wc-stripe-payment-methods th:nth-child(n+2),
|
129 |
+
.user-edit-php .wc-stripe-payment-methods th:nth-child(n+2){
|
130 |
+
padding: 5px 10px;
|
131 |
+
}
|
132 |
+
.profile-php .wc-stripe-payment-methods td:nth-child(n+2),
|
133 |
+
.user-edit-php .wc-stripe-payment-methods td:nth-child(n+2){
|
134 |
+
padding: 5px 10px;
|
135 |
+
}
|
136 |
+
.wc-stripe-user-info{
|
137 |
+
padding: 10px 0;
|
138 |
+
}
|
assets/css/stripe.css
ADDED
@@ -0,0 +1,383 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
.wc-stripe-card-icons-container,
|
2 |
+
.wc-stripe-paymentRequest-icons-container{
|
3 |
+
float: right;
|
4 |
+
display: inline-block;
|
5 |
+
}
|
6 |
+
.wc-stripe-gateway-desc{
|
7 |
+
margin-bottom: 10px;
|
8 |
+
}
|
9 |
+
li.payment_method_stripe_cc .wc-stripe-card-icons-container img.wc-stripe-card-icon,
|
10 |
+
li.payment_method_stripe_payment_request .wc-stripe-paymentRequest-icons-container img{
|
11 |
+
max-width: 44px;
|
12 |
+
max-height: 27px;
|
13 |
+
width: 44px;
|
14 |
+
height: 27px;
|
15 |
+
float: none;
|
16 |
+
display: inline;
|
17 |
+
}
|
18 |
+
li.payment_method_stripe_payment_request .wc-stripe-paymentRequest-icons-container img{
|
19 |
+
width: 25px;
|
20 |
+
height: 25px;
|
21 |
+
max-width: 25px;
|
22 |
+
max-height: 25px;
|
23 |
+
}
|
24 |
+
ul.payment_methods label[for*="payment_method_stripe"]:after{
|
25 |
+
clear: right;
|
26 |
+
content: "";
|
27 |
+
display: block;
|
28 |
+
}
|
29 |
+
li.payment_method_stripe_cc .wc-stripe-card-icons-container img.wc-stripe-card-icon:nth-child(2n+2) {
|
30 |
+
margin: 0px 2px;
|
31 |
+
}
|
32 |
+
li.payment_method_stripe_cc .wc-stripe-card-icons-container img.wc-stripe-card-icon.open.visa{
|
33 |
+
padding-top: 2px;
|
34 |
+
}
|
35 |
+
ul.payment_methods li[class*=payment_method_stripe_] label>img:first-of-type{
|
36 |
+
float: right;
|
37 |
+
}
|
38 |
+
.wc-stripe_cc-new-method-container{
|
39 |
+
margin-bottom: 1em;
|
40 |
+
}
|
41 |
+
.StripeElement {
|
42 |
+
box-sizing: border-box;
|
43 |
+
height: 40px;
|
44 |
+
padding: 10px 12px;
|
45 |
+
border: 1px solid transparent;
|
46 |
+
border-radius: 4px;
|
47 |
+
background-color: white;
|
48 |
+
box-shadow: 0 1px 3px 0 #e6ebf1;
|
49 |
+
-webkit-transition: box-shadow 150ms ease;
|
50 |
+
transition: box-shadow 150ms ease;
|
51 |
+
}
|
52 |
+
input.wc-stripe-payment-type{
|
53 |
+
display: none;
|
54 |
+
}
|
55 |
+
label.wc-stripe-label-payment-type{
|
56 |
+
margin-bottom: 1em;
|
57 |
+
display: block;
|
58 |
+
}
|
59 |
+
label.wc-stripe-label-payment-type:before{
|
60 |
+
content: "";
|
61 |
+
display: inline-block;
|
62 |
+
width: 14px;
|
63 |
+
height: 14px;
|
64 |
+
border: 2px solid #fff;
|
65 |
+
box-shadow: 0 0 0 2px #000;
|
66 |
+
background: #fff;
|
67 |
+
margin-left: 4px;
|
68 |
+
margin-right: .5em;
|
69 |
+
border-radius: 100%;
|
70 |
+
-webkit-transform: translateY(2px);
|
71 |
+
-ms-transform: translateY(2px);
|
72 |
+
transform: translateY(2px);
|
73 |
+
}
|
74 |
+
input.wc-stripe-payment-type:checked+label.wc-stripe-label-payment-type:before{
|
75 |
+
background: #000;
|
76 |
+
}
|
77 |
+
.select2-container .select2-selection--single .wc-stripe-select2-container,
|
78 |
+
.select2-results__options li.wc-stripe-select2-container{
|
79 |
+
display: flex;
|
80 |
+
align-items: center;
|
81 |
+
line-height: 42px !important;
|
82 |
+
}
|
83 |
+
.select2-container .select2-selection--single .wc-stripe-select2-container:before,
|
84 |
+
.select2-results__options li.wc-stripe-select2-container:before{
|
85 |
+
content: '';
|
86 |
+
background-repeat: no-repeat;
|
87 |
+
background-size: 40px 24px;
|
88 |
+
width: 40px;
|
89 |
+
height: 42px;
|
90 |
+
display: inline-block;
|
91 |
+
margin-right: 8px;
|
92 |
+
background-position: center;
|
93 |
+
}
|
94 |
+
.select2-container .select2-selection--single .wc-stripe-select2-container.Visa:before,
|
95 |
+
.select2-results__options li.wc-stripe-select2-container.Visa:before,
|
96 |
+
.select2-results__options li.wc-stripe-select2-container.Visa:before{
|
97 |
+
background-image: url(../img/cards/visa.svg);
|
98 |
+
}
|
99 |
+
.select2-container .select2-selection--single .wc-stripe-select2-container.MasterCard:before,
|
100 |
+
.select2-results__options li.wc-stripe-select2-container.MasterCard:before,
|
101 |
+
.select2-results__options li.wc-stripe-select2-container.MasterCard:before{
|
102 |
+
background-image: url(../img/cards/mastercard.svg);
|
103 |
+
}
|
104 |
+
.select2-container .select2-selection--single .wc-stripe-select2-container.AmericanExpress:before,
|
105 |
+
.select2-results__options li.wc-stripe-select2-container.AmericanExpress:before,
|
106 |
+
.select2-results__options li.wc-stripe-select2-container.AmericanExpress:before{
|
107 |
+
background-image: url(../img/cards/amex.svg);
|
108 |
+
}
|
109 |
+
.select2-container .select2-selection--single .wc-stripe-select2-container.Discover:before,
|
110 |
+
.select2-results__options li.wc-stripe-select2-container.Discover:before,
|
111 |
+
.select2-results__options li.wc-stripe-select2-container.Discover:before{
|
112 |
+
background-image: url(../img/cards/discover.svg);
|
113 |
+
}
|
114 |
+
.select2-container .select2-selection--single .wc-stripe-select2-container.MasterCard:before,
|
115 |
+
.select2-results__options li.wc-stripe-select2-container.MasterCard:before,
|
116 |
+
.select2-results__options li.wc-stripe-select2-container.MasterCard:before{
|
117 |
+
background-image: url(../img/cards/mastercard.svg);
|
118 |
+
}
|
119 |
+
.select2-container .select2-selection--single .wc-stripe-select2-container.DinersClub:before,
|
120 |
+
.select2-results__options li.wc-stripe-select2-container.DinersClub:before,
|
121 |
+
.select2-results__options li.wc-stripe-select2-container.DinersClub:before{
|
122 |
+
background-image: url(../img/cards/diners.svg);
|
123 |
+
}
|
124 |
+
.select2-container .select2-selection--single .wc-stripe-select2-container.JCB:before,
|
125 |
+
.select2-results__options li.wc-stripe-select2-container.JCB:before,
|
126 |
+
.select2-results__options li.wc-stripe-select2-container.JCB:before{
|
127 |
+
background-image: url(../img/cards/jcb.svg);
|
128 |
+
}
|
129 |
+
#wc-stripe-card-element{
|
130 |
+
margin-bottom: 1em;
|
131 |
+
}
|
132 |
+
.wc-stripe_cc-container .wc-stripe-save-source .save-source-label{
|
133 |
+
display: block;
|
134 |
+
margin-top: 10px;
|
135 |
+
}
|
136 |
+
.wc-stripe_cc-container .wc-stripe-save-source input[type="checkbox"]{
|
137 |
+
opacity: 0;
|
138 |
+
position: absolute;
|
139 |
+
width: 20px;
|
140 |
+
height: 20px;
|
141 |
+
}
|
142 |
+
.wc-stripe_cc-container .wc-stripe-save-source label.checkbox{
|
143 |
+
position: relative;
|
144 |
+
}
|
145 |
+
.wc-stripe_cc-container .save-source-checkbox{
|
146 |
+
height: 20px;
|
147 |
+
width: 20px;
|
148 |
+
position: relative;
|
149 |
+
background-color: white;
|
150 |
+
display: block;
|
151 |
+
border-radius: 3px;
|
152 |
+
}
|
153 |
+
.wc-stripe_cc-container .save-source-checkbox:after{
|
154 |
+
content: "";
|
155 |
+
position: absolute;
|
156 |
+
top: 0;
|
157 |
+
left: 0;
|
158 |
+
}
|
159 |
+
.wc-stripe_cc-container .wc-stripe-save-source input[type="checkbox"]:checked + .save-source-checkbox:after{
|
160 |
+
left: 6px;
|
161 |
+
top: 3px;
|
162 |
+
width: 7px;
|
163 |
+
height: 12px;
|
164 |
+
border: solid #2196F3;
|
165 |
+
border-width: 0 3px 3px 0;
|
166 |
+
-webkit-transform: rotate(45deg);
|
167 |
+
-ms-transform: rotate(45deg);
|
168 |
+
transform: rotate(45deg);
|
169 |
+
}
|
170 |
+
li.payment_method_stripe_googlepay,
|
171 |
+
li.payment_method_stripe_applepay,
|
172 |
+
li.payment_method_stripe_payment_request{
|
173 |
+
display: none;
|
174 |
+
}
|
175 |
+
|
176 |
+
#place_order.wc-stripe-hide{
|
177 |
+
display: none !important;
|
178 |
+
}
|
179 |
+
.wc-stripe-product-checkout-container{
|
180 |
+
width: 100%;
|
181 |
+
margin-top: 1em;
|
182 |
+
}
|
183 |
+
.wc-stripe-product-checkout-container ul.wc_stripe_product_payment_methods,
|
184 |
+
.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods{
|
185 |
+
list-style: none;
|
186 |
+
margin: 0px;
|
187 |
+
padding: 0px;
|
188 |
+
}
|
189 |
+
.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods{
|
190 |
+
margin-bottom: 1.5em;
|
191 |
+
}
|
192 |
+
.wc-stripe-product-checkout-container ul.wc_stripe_product_payment_methods li[class*=payment_method_stripe_],
|
193 |
+
.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods li[class*=payment_method_stripe_]{
|
194 |
+
margin-bottom: 1em;
|
195 |
+
}
|
196 |
+
.wc_stripe_product_payment_methods .gpay-button,
|
197 |
+
.wc_stripe_cart_payment_methods .gpay-button{
|
198 |
+
width: 100%;
|
199 |
+
}
|
200 |
+
.wc_stripe_product_payment_methods .disabled{
|
201 |
+
opacity: 0.45;
|
202 |
+
}
|
203 |
+
.wc-stripe-cart-or{
|
204 |
+
margin: 1em 0;
|
205 |
+
text-align: center;
|
206 |
+
}
|
207 |
+
li.wc-stripe-payment-method.or{
|
208 |
+
display: none;
|
209 |
+
}
|
210 |
+
li[class*=payment_method_stripe_].active ~ li.wc-stripe-payment-method.or{
|
211 |
+
display: block;
|
212 |
+
}
|
213 |
+
li.payment_method_stripe_applepay label:first-of-type img{
|
214 |
+
width: 49px;
|
215 |
+
max-height: 32px;
|
216 |
+
}
|
217 |
+
li.payment_method_stripe_googlepay label:first-of-type img{
|
218 |
+
width: 48px;
|
219 |
+
max-height: 35px;
|
220 |
+
}
|
221 |
+
li.payment_method_stripe_googlepay label:first-of-type img[src*=googlepay_standard]{
|
222 |
+
width: 60px;
|
223 |
+
max-height: 35px;
|
224 |
+
}
|
225 |
+
.gpay-button:hover{
|
226 |
+
background-origin: content-box;
|
227 |
+
background-position: center center;
|
228 |
+
background-repeat: no-repeat;
|
229 |
+
background-size: contain;
|
230 |
+
}
|
231 |
+
.gpay-button:active{
|
232 |
+
background-origin: content-box;
|
233 |
+
background-position: center center;
|
234 |
+
background-repeat: no-repeat;
|
235 |
+
background-size: contain;
|
236 |
+
}
|
237 |
+
.gpay-button:focus{
|
238 |
+
background-origin: content-box;
|
239 |
+
background-position: center center;
|
240 |
+
background-repeat: no-repeat;
|
241 |
+
background-size: contain;
|
242 |
+
}
|
243 |
+
@supports (-webkit-appearance: -apple-pay-button) {
|
244 |
+
.apple-pay-button {
|
245 |
+
display: inline-block;
|
246 |
+
-webkit-appearance: -apple-pay-button;
|
247 |
+
width: 100%;
|
248 |
+
min-width: 200px;
|
249 |
+
height: 40px;
|
250 |
+
max-height: 40px;
|
251 |
+
}
|
252 |
+
.apple-pay-button-black {
|
253 |
+
-apple-pay-button-style: black;
|
254 |
+
}
|
255 |
+
.apple-pay-button-white {
|
256 |
+
-apple-pay-button-style: white;
|
257 |
+
}
|
258 |
+
.apple-pay-button-white-with-line {
|
259 |
+
-apple-pay-button-style: white-outline;
|
260 |
+
}
|
261 |
+
.applepay-top-container .apple-pay-button{
|
262 |
+
max-width: 240px;
|
263 |
+
}
|
264 |
+
}
|
265 |
+
.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways{
|
266 |
+
list-style: none;
|
267 |
+
margin: 0 0 1.5em 0;
|
268 |
+
padding: 0;
|
269 |
+
}
|
270 |
+
.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways li.wc-stripe-checkout-banner-gateway{
|
271 |
+
margin-bottom: 1em;
|
272 |
+
}
|
273 |
+
.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways .gpay-button{
|
274 |
+
width: 100%;
|
275 |
+
}
|
276 |
+
|
277 |
+
.wc_stripe_product_payment_methods .payment_method_stripe_payment_request .StripeElement,
|
278 |
+
.wc_stripe_cart_payment_methods .payment_method_stripe_payment_request .StripeElement{
|
279 |
+
padding: 0px;
|
280 |
+
width: 100%;
|
281 |
+
}
|
282 |
+
.woocommerce-checkout #wc-stripe-payment-request-container.StripeElement{
|
283 |
+
width: 240px;
|
284 |
+
padding: 0px;
|
285 |
+
}
|
286 |
+
#wc_stripe_local_payment_stripe_ideal{
|
287 |
+
padding: 0px;
|
288 |
+
}
|
289 |
+
.wc-stripe-checkout-banner-gateway #wc-stripe-payment-request-banner.StripeElement{
|
290 |
+
width: 100%;
|
291 |
+
}
|
292 |
+
ul.payment_methods li.payment_method_stripe_p24 img{
|
293 |
+
max-width: 90px;
|
294 |
+
width: 90px;
|
295 |
+
max-height: 45px;
|
296 |
+
}
|
297 |
+
ul.payment_methods li.payment_method_stripe_ideal img{
|
298 |
+
max-width: 38px;
|
299 |
+
width: 38px;
|
300 |
+
max-height: 35px;
|
301 |
+
}
|
302 |
+
ul.payment_methods li.payment_method_stripe_klarna img{
|
303 |
+
max-width: 72px;
|
304 |
+
width: 72px;
|
305 |
+
max-height: 20px;
|
306 |
+
}
|
307 |
+
ul.payment_methods li.payment_method_stripe_giropay img{
|
308 |
+
max-width: 65px;
|
309 |
+
width: 65px;
|
310 |
+
max-height: 28px;
|
311 |
+
}
|
312 |
+
ul.payment_methods li.payment_method_stripe_eps img{
|
313 |
+
max-width: 70px;
|
314 |
+
width: 70px;
|
315 |
+
max-height: 46px;
|
316 |
+
}
|
317 |
+
ul.payment_methods li.payment_method_stripe_multibanco img{
|
318 |
+
max-width: 48px;
|
319 |
+
width: 48px;
|
320 |
+
max-height: 48px;
|
321 |
+
}
|
322 |
+
ul.payment_methods li.payment_method_stripe_sepa img{
|
323 |
+
max-width: 67px;
|
324 |
+
width: 67px;
|
325 |
+
max-height: 18px;
|
326 |
+
}
|
327 |
+
ul.payment_methods li.payment_method_stripe_sofort img{
|
328 |
+
max-width: 70px;
|
329 |
+
width: 70px;
|
330 |
+
max-height: 21px;
|
331 |
+
}
|
332 |
+
ul.payment_methods li.payment_method_stripe_wechat img{
|
333 |
+
max-width: 82px;
|
334 |
+
width: 82px;
|
335 |
+
max-height: 23px;
|
336 |
+
}
|
337 |
+
#wc-stripe-card-element{
|
338 |
+
width: 100%;
|
339 |
+
}
|
340 |
+
li.banner_payment_method_stripe_payment_request .StripeElement{
|
341 |
+
padding: 0px;
|
342 |
+
}
|
343 |
+
.single-product .blockMsg {
|
344 |
+
border: none !important;
|
345 |
+
background-color: transparent !important;
|
346 |
+
}
|
347 |
+
#wc-stripe-card{
|
348 |
+
position: absolute;
|
349 |
+
top: 50%;
|
350 |
+
right: 8px;
|
351 |
+
transform: translatey(-50%);
|
352 |
+
width: 23px;
|
353 |
+
height: 15px;
|
354 |
+
}
|
355 |
+
#wc-stripe-card.active{
|
356 |
+
width: 32px;
|
357 |
+
height: 20px;
|
358 |
+
}
|
359 |
+
input[id=stripe-postal-code]:focus{
|
360 |
+
outline: none;
|
361 |
+
background: transparent;
|
362 |
+
border: none;
|
363 |
+
}
|
364 |
+
div.postalCode:focus{
|
365 |
+
outline: none;
|
366 |
+
border: none;
|
367 |
+
}
|
368 |
+
li[class*="payment_method_stripe"] .select2-container .select2-selection--single{
|
369 |
+
height: 42px;
|
370 |
+
}
|
371 |
+
li[class*="payment_method_stripe"] .select2-container--default .select2-selection--single .select2-selection__arrow{
|
372 |
+
height: 42px;
|
373 |
+
}
|
374 |
+
.blockUI.blockMsg{
|
375 |
+
font-size: 20px;
|
376 |
+
white-space: nowrap;
|
377 |
+
}
|
378 |
+
#wc-stripe-payment-request-container.disabled{
|
379 |
+
opactity: 0.45;
|
380 |
+
}
|
381 |
+
.wc-stripe-paymentRequest-icons-container img{
|
382 |
+
float: none;
|
383 |
+
}
|
assets/img/alipay.svg
ADDED
@@ -0,0 +1 @@
|
|
Â
|
1 |
+
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 374.01" preserveAspectRatio="xMidYMid meet"><defs><style>.cls-1{fill:#ec6c00;}.cls-2{fill:#003f96;}</style></defs><title>alipay</title><path class="cls-1" d="M325.82,287.4l-7.34,1.4-7.33,2.79-5.59,4.2a10.21,10.21,0,0,0-2.09,5.58l1.74,4.54c1.4,2.1,4.54,2.1,4.54,2.1l5.94-1.75,2.1-3.84-1.4-7.68,3.84-2.1,5.59-.7,6.63,1.75,3.49,3.84,1.4,3.84.7,3.15v5.58l-12.22,4.19-11.88,3.85-5.23,2.44-4.19,3.14a16.37,16.37,0,0,0-3.15,4.54l-1.05,6.29c0,6.28,4.89,10.48,4.89,10.48,4.54,4.19,11.88,4.19,11.88,4.19l8.73-1.4,2.79-1.05,9.43-6.29a9.73,9.73,0,0,0,4.19,5.94c2.79,2.45,8,2.45,8,2.45l5.24-.7,5.24-1.75v-3.49h-4.19l-3.15-1.05-2.79-2.09L349.56,336l.7-29.34-1.74-9.43-5.24-5.93-7.34-3.15-10.12-.7ZM338,315l-.35,20.61-5.94,4.88-5.93,2.1h-2.45a10.25,10.25,0,0,1-7-2.45c-2.79-2.44-2.79-7.33-2.79-7.33a13.21,13.21,0,0,1,1.74-6.29l5.24-4.88,7.68-3.5L338,315Zm23-25.84h29.33v4.19l-4.54.7s-2.79.7-2.79,1.74l.35,1.05,16.06,34.92,15.37-34.22-2.8-2.79L406.14,293v-3.84h23.74V293L425,294.74a13.64,13.64,0,0,0-4.88,5.24l-13.62,29.68-16.77,32.83-6.28,7.33-5.24,3.49L373,374s-4.54,0-7.68-2.44a6.27,6.27,0,0,1-2.79-4.89l1.39-4.54a7.72,7.72,0,0,1,4.89-2.1l3.49.7,2.45,1.75,3.84,4.89,8-8s6.64-10.13,4.19-18.16l-19.21-41.9L367,295.09l-5.93-2.1v-3.84m-99.88-1.4-8.38,2.1-8.38,5.93h-.7v-6.63l-1.05-.7-21.65,1.4v3.84l4.19.7,3.15,1.05,2.44,2.44,1,3.49v62.16l-.7,3.49-2.79,2.1-3.49.7h-3.85V374h36v-4.19l-9.43-1.4-2.44-2.09-1.4-3.5V345.37h.7l6.29,2.45,9.43,1.39h1l10.48-2.09,9.43-6.64,7-9.42,2.45-12.93-2.1-12.22a32.94,32.94,0,0,0-6.28-9.78,27.47,27.47,0,0,0-8.38-6.28L263,287.75Zm-.35,8.72h.35c8.38.7,13.27,7.34,13.27,7.34,4.19,5.58,3.84,14,3.84,14a25.61,25.61,0,0,1-4.53,14.31c-4.55,6.64-12.58,7.69-12.58,7.69-7.68.69-17.46-4.54-17.46-4.54V300.67a42.55,42.55,0,0,1,17.11-4.2ZM95,262.26,64.61,332.8l-2.8,4.89-4.19,3.49-4.19,1.75-4.19.35v4.19H84.16v-4.19l-9.08-1.4c-4.54-1.4-4.54-3.84-4.54-3.84l.35-2.44,6.29-17.47h32.47l7.69,19.21.35,1.4v1.4c0,1.39-3.15,1.74-3.15,1.74l-8.38,1.4v4.19h38.42v-4.19l-3.85-.35-4.19-1.4-3.14-3.14A6.74,6.74,0,0,1,131,334.9l-30.73-72.64Zm-1.75,18.51h.35l13.62,32.48H79.62Zm101.27,0a8,8,0,0,1-5.58-2.45,7.81,7.81,0,0,1-2.45-5.58,9.26,9.26,0,0,1,2.45-5.59,8.9,8.9,0,0,1,5.58-2.44,9.9,9.9,0,0,1,6.29,2.44l2.09,5.24-2.09,5.93a9.53,9.53,0,0,1-6.29,2.45M206,289.5V337l1,3.49,2.8,1.75,5.94,1.4v3.84H184.74v-3.84l5.58-.7,2.8-1.75,1-3.49v-36l-1-3.84-2.8-2.44-3.49-1.05-4.19-.7v-3.84l22.7-1.4.7,1.05m-40.16-33.87L143.18,257l-1.4.35v3.49h1.4l3.49.7,4.19,1.4,2.8,2.79,1,4.19v67.75l-1,3.49-2.8,1.75-5.93.7v3.84h31.42v-3.84l-3.14-.35-2.79-1-2.8-1.74-.69-3.5V256.67l-1.05-1m424.29,34.22,21.65-1.4,1,1.05v8h.35l3.84-3.49,4.54-3.14a22.8,22.8,0,0,1,5.59-2.45l7.33-.7,10.83,2.8,6.64,7.33,3.84-3.49,4.89-3.15a23.68,23.68,0,0,1,5.58-2.79l7.69-.7s8.38,0,12.92,4.89c0,0,4.89,4.89,4.89,14.67V337l.69,3.49,2.45,2.1,3.14.7,3.49.35v3.84H670.14v-3.84l5.59-.7,2.79-1.75.7-3.49v-30s0-6.29-2.79-9.78a11.86,11.86,0,0,0-7.68-3.14l-6.29.7-5.24,2.44-3.14,2.79-1.75,2.8V337l.7,3.49,2.8,2.1,2.79.7,3.14.35v3.84H631v-3.84l5.24-.7,2.79-1.75.7-3.49v-30s0-6.29-2.79-9.78a10.83,10.83,0,0,0-7.68-3.14l-5.94.7-5.24,2.44L615,301l-2.1,2.45V337l.7,3.49,2.79,1.75,2.8,1,3.14.35v3.84H591.22v-3.84l5.94-.7,2.79-1.75.7-3.49V301.37l-1-3.49-2.44-2.44L594,294.39l-3.85-.7v-3.84M464.46,320.58s0,11.87,5.93,18.86c0,0,5.59,7.33,15,7.33l11.52-3.14,8.73-8.73,4.19,2.79A37.3,37.3,0,0,1,498,349.21a36.08,36.08,0,0,1-16.06,4.2s-14.67,0-23.4-8.73a35.36,35.36,0,0,1-8.73-23.75,35,35,0,0,1,2.44-11.87,35.81,35.81,0,0,1,6.64-10.48,38.47,38.47,0,0,1,10.47-7A40.08,40.08,0,0,1,483,288.8s10.13,0,16.77,4.19c0,0,6.28,4.89,6.28,11.88l-1.74,5.58-5.24,2.1-6.64-1.75S490,309.4,490,307l1.05-5.59,1.05-4.54-3.85-2.44-5.58-.7-6.29,1.05-5.94,4.89L466.2,308a43.84,43.84,0,0,0-1.74,12.57m84.85-31.78a39.82,39.82,0,0,0-24.44,9.08c-9.08,9.08-9.08,23.4-9.08,23.4a37.05,37.05,0,0,0,2.45,13.62l7.33,10.47a38.66,38.66,0,0,0,10.82,6.29L549,353.75h.35l14.31-2.44A34.13,34.13,0,0,0,574.46,344l7-10.48,2.1-12.92a33.44,33.44,0,0,0-9.43-23.05C564.68,288.8,550,288.8,550,288.8h-.71Zm-.21,4.89h.56l9.08,2.09,5.94,6.29,3.14,8.73,1,10.13c0,12.92-4.89,20.6-4.89,20.6a19,19,0,0,1-14.31,7.68h-.35l-8.73-2.44-5.94-6.29-3.49-9.08a61.31,61.31,0,0,1-1-11.17l.7-9.43,3.14-8.38a26.07,26.07,0,0,1,6.64-6.63,20.6,20.6,0,0,1,8.51-2.1ZM430.93,349.21a5.24,5.24,0,0,0,5.24-5.58s0-5.24-5.24-5.24c0,0-5.59,0-5.59,5.24,0,0,0,5.58,5.59,5.58"/><path d="M700.53,0V2.44h5.93V18.16h2.1V2.44h5.93V0Zm16.41,0V18.16h2.44v-15l5.24,15h2.1L731.6,3.49V18.16h2.45V0h-3.14l-5.24,15.37L720.43,0Z"/><path class="cls-2" d="M585.63,0l-9.08.7S567.12,2.79,567.12,7V21l-40.85,1.4V14.67H507.41s-18.86,1.39-18.86,7v51h78.57v34.92H513v14h54.12v80l40.16-4.19V121.53H664.9v-14H607.28V72.64H675v-7h1.75s5.24,0,8.38-8.38l3.14-23.05S688,17.46,670.14,17.46l-62.86,2.1V0Zm62.16,32.13a5.58,5.58,0,0,1,5.94,5.59L650.94,59H526.27V36l40.85-1v.35l40.16-1.75Z"/><path class="cls-1" d="M341.53,107.56l12.92,15,15,13.28s4.19,4.19,8.38,0l14.67-13.28,12.92-15s4.54-3.84,0-8.73L392.52,84.16,377.85,71.24s-4.19-4.19-8.38,0L354.8,84.16,341.53,98.83s-3.84,4.89,0,8.73m335.25,46.09a5.68,5.68,0,0,0,0-6.63l-10.13-11.18-11.17-9.77a4.72,4.72,0,0,0-6.64,0l-11.17,9.77L627.89,147s-2.8,3.49,0,6.63l9.78,11.18,11.17,9.78s3.49,3.49,6.64,0l11.17-9.78,10.13-11.18"/><path class="cls-2" d="M77.88,90.8H197.66a166.4,166.4,0,0,1-12.23,30.73s-15,29.33-38.06,51.33c0,0-43.3,40.51-71.24,40.51,0,0-20.6,0-33.87-7.68,0,0-16.42-10.13-16.42-31.08,0,0,0-27.59,42.26-35.62,0,0-27.24-1.75-41.56,12.57,0,0-13.27,12.57-13.27,34.57,0,0,0,21,19.21,33.53A78.57,78.57,0,0,0,74,230.83l5.59.35s47.5-2.44,91.5-39.11c0,0,37.71-31.43,56.57-76.48a187.78,187.78,0,0,0,9.08-27.94l2.09-10.82v.35h-64.6V46.45h81.37V32.83H174.26V1.05H153l-9.08.7S134.45,3.84,134.45,8v24.8H55.88V46.45h78.57V77.18H77.88V90.8M346.42,0l-.7,6.64-4.54,16.41A94.53,94.53,0,0,1,329,43v157.5l-40.16-4.89v-125s-15,7.68-27.94,12.57l-5.23-8.38A238.27,238.27,0,0,0,282.86,52s26.89-26.89,26.89-45c0,0,0-4.2,9.43-6.29l9.08-.7h18.16"/><path class="cls-2" d="M335.25,60.41h75.43V205.69l40.16.7v-146h21v-14h-21V0H429.19l-9.08.7S410.68,2.79,410.68,7V46.45H335.25v14"/><path class="cls-1" d="M152.61,144.92s-51-22.35-82.42-23.39c0,0-25.84-1.4-47.14,13.62,0,0-22.35,15.71-23,39.11,0,0,0,27.24,21.65,42.6,0,0,19.91,14.32,52,14.32h3.15l-5.24-.35s-23.4,0-39.81-11.52c0,0-18.16-12.92-18.16-34.23,0,0,0-23,16.06-34.92,0,0,13.62-9.77,35.62-10.12l31.08,3.49,24.1,9.43,57.62,29.33s39.46,20.6,77.18,33.18c0,0,131.3,43.65,425,15L696,227.34s5.58-2.45,10.12-9.78c0,0,3.85-5.94,30-29.33,0,0,18.85-17.12,12.57-22.7l-9.08,1.39s-96,21.66-242.36,27.59c0,0-164.48,6.64-245.84-16.76,0,0-56.23-16.06-98.83-32.83"/></svg>
|
assets/img/applepay.svg
ADDED
@@ -0,0 +1,76 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2 |
+
<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
4 |
+
width="165.5211px" height="105.9651px" viewBox="0 0 165.5211 105.9651" enable-background="new 0 0 165.5211 105.9651"
|
5 |
+
xml:space="preserve">
|
6 |
+
<g>
|
7 |
+
<path id="XMLID_96_" d="M150.6981,0H14.8232c-0.5659,0-1.1328,0-1.6977,0.0033C12.648,0.0067,12.1716,0.012,11.6952,0.025
|
8 |
+
c-1.039,0.0281-2.0869,0.0894-3.1129,0.2738C7.5399,0.4864,6.5699,0.7924,5.6236,1.2742c-0.9303,0.4731-1.782,1.0919-2.5201,1.8303
|
9 |
+
c-0.7384,0.7384-1.3572,1.5887-1.8302,2.52C0.7914,6.5708,0.4852,7.5411,0.2989,8.5843c-0.1854,1.0263-0.2471,2.074-0.2751,3.1119
|
10 |
+
c-0.0128,0.4764-0.0183,0.9528-0.0214,1.4291c-0.0033,0.5661-0.0022,1.1318-0.0022,1.6989V91.142
|
11 |
+
c0,0.5671-0.0011,1.1318,0.0022,1.699c0.0031,0.4763,0.0086,0.9527,0.0214,1.4291c0.028,1.037,0.0897,2.0847,0.2751,3.1107
|
12 |
+
c0.1863,1.0436,0.4925,2.0135,0.9744,2.9599c0.473,0.9313,1.0918,1.7827,1.8302,2.52c0.7381,0.7396,1.5898,1.3583,2.5201,1.8302
|
13 |
+
c0.9463,0.4831,1.9163,0.7892,2.9587,0.9767c1.026,0.1832,2.0739,0.2456,3.1129,0.2737c0.4764,0.0108,0.9528,0.0172,1.4303,0.0194
|
14 |
+
c0.5649,0.0044,1.1318,0.0044,1.6977,0.0044h135.8749c0.5649,0,1.1318,0,1.6966-0.0044c0.4764-0.0022,0.9528-0.0086,1.4314-0.0194
|
15 |
+
c1.0368-0.0281,2.0845-0.0905,3.113-0.2737c1.041-0.1875,2.0112-0.4936,2.9576-0.9767c0.9313-0.4719,1.7805-1.0906,2.5201-1.8302
|
16 |
+
c0.7372-0.7373,1.356-1.5887,1.8302-2.52c0.483-0.9464,0.7889-1.9163,0.9743-2.9599c0.1855-1.026,0.2457-2.0737,0.2738-3.1107
|
17 |
+
c0.013-0.4764,0.0194-0.9528,0.0216-1.4291c0.0044-0.5672,0.0044-1.1319,0.0044-1.699V14.8242c0-0.5671,0-1.1328-0.0044-1.6989
|
18 |
+
c-0.0022-0.4763-0.0086-0.9527-0.0216-1.4291c-0.0281-1.0379-0.0883-2.0856-0.2738-3.1119
|
19 |
+
c-0.1854-1.0432-0.4913-2.0135-0.9743-2.9598c-0.4742-0.9313-1.093-1.7816-1.8302-2.52c-0.7396-0.7384-1.5888-1.3572-2.5201-1.8303
|
20 |
+
c-0.9464-0.4818-1.9166-0.7878-2.9576-0.9754c-1.0285-0.1844-2.0762-0.2457-3.113-0.2738c-0.4786-0.013-0.955-0.0183-1.4314-0.0217
|
21 |
+
C151.8299,0,151.263,0,150.6981,0L150.6981,0z"/>
|
22 |
+
<path id="XMLID_227_" fill="#FFFFFF" d="M150.6981,3.532l1.6715,0.0032c0.4528,0.0032,0.9056,0.0081,1.3609,0.0205
|
23 |
+
c0.792,0.0214,1.7185,0.0643,2.5821,0.2191c0.7507,0.1352,1.3803,0.3408,1.9845,0.6484c0.5965,0.3031,1.143,0.7003,1.6202,1.1768
|
24 |
+
c0.479,0.4797,0.8767,1.0271,1.1838,1.6302c0.3059,0.5995,0.5102,1.2261,0.6446,1.9823c0.1544,0.8542,0.1971,1.7832,0.2188,2.5801
|
25 |
+
c0.0122,0.4498,0.0182,0.8996,0.0204,1.3601c0.0043,0.5569,0.0042,1.1135,0.0042,1.6715V91.142
|
26 |
+
c0,0.558,0.0001,1.1136-0.0043,1.6824c-0.0021,0.4497-0.0081,0.8995-0.0204,1.3501c-0.0216,0.7957-0.0643,1.7242-0.2206,2.5885
|
27 |
+
c-0.1325,0.7458-0.3367,1.3725-0.6443,1.975c-0.3062,0.6016-0.7033,1.1484-1.1802,1.6251c-0.4799,0.48-1.0246,0.876-1.6282,1.1819
|
28 |
+
c-0.5997,0.3061-1.2282,0.5115-1.9715,0.6453c-0.8811,0.157-1.8464,0.2002-2.5734,0.2199
|
29 |
+
c-0.4574,0.0103-0.9126,0.0165-1.3789,0.0187c-0.5557,0.0043-1.1134,0.0042-1.6692,0.0042H14.8232c-0.0074,0-0.0146,0-0.0221,0
|
30 |
+
c-0.5494,0-1.0999,0-1.6593-0.0043c-0.4561-0.0021-0.9112-0.0082-1.3512-0.0182c-0.7436-0.0201-1.7095-0.0632-2.5834-0.2193
|
31 |
+
c-0.7497-0.1348-1.3782-0.3402-1.9858-0.6503c-0.5979-0.3032-1.1422-0.6988-1.6223-1.1797
|
32 |
+
c-0.4764-0.4756-0.8723-1.0207-1.1784-1.6232c-0.3064-0.6019-0.5114-1.2305-0.6462-1.9852
|
33 |
+
c-0.1558-0.8626-0.1986-1.7874-0.22-2.5777c-0.0122-0.4525-0.0173-0.9049-0.0202-1.3547l-0.0022-1.3279l0.0001-0.3506V14.8242
|
34 |
+
l-0.0001-0.3506l0.0021-1.3251c0.003-0.4525,0.0081-0.9049,0.0203-1.357c0.0214-0.7911,0.0642-1.7163,0.2213-2.5861
|
35 |
+
C3.9094,8.4575,4.1143,7.8289,4.4223,7.224C4.726,6.6261,5.1226,6.0803,5.6015,5.6015c0.477-0.4772,1.0231-0.8739,1.6248-1.1799
|
36 |
+
C7.8274,4.1155,8.4571,3.91,9.2068,3.7751c0.8638-0.1552,1.7909-0.198,2.5849-0.2195c0.4526-0.0123,0.9052-0.0172,1.3544-0.0203
|
37 |
+
l1.6771-0.0033H150.6981"/>
|
38 |
+
<g id="XMLID_34_">
|
39 |
+
<g id="XMLID_44_">
|
40 |
+
<path id="XMLID_46_" d="M43.5084,35.7697c1.4032-1.755,2.3554-4.1116,2.1043-6.5197c-2.0541,0.1022-4.5606,1.3551-6.0118,3.1116
|
41 |
+
c-1.303,1.5041-2.4563,3.9593-2.1557,6.2665C39.751,38.8281,42.0547,37.4756,43.5084,35.7697"/>
|
42 |
+
<path id="XMLID_45_" d="M45.5865,39.0786c-3.3486-0.1995-6.1956,1.9004-7.7948,1.9004c-1.5999,0-4.0487-1.7999-6.6972-1.7514
|
43 |
+
c-3.4472,0.0506-6.6458,1.9997-8.3952,5.0996c-3.598,6.2015-0.9495,15.4004,2.5494,20.4511
|
44 |
+
c1.6992,2.4988,3.7469,5.2501,6.4452,5.1512c2.5494-0.1,3.5486-1.6507,6.6475-1.6507c3.0966,0,3.9967,1.6507,6.6954,1.6007
|
45 |
+
c2.7986-0.05,4.5482-2.5,6.2474-5.0011c1.9492-2.8485,2.7471-5.5989,2.7973-5.7499c-0.0502-0.05-5.3964-2.101-5.446-8.2509
|
46 |
+
c-0.0505-5.1494,4.1974-7.5987,4.3973-7.7506C50.634,39.5791,46.8859,39.1791,45.5865,39.0786"/>
|
47 |
+
</g>
|
48 |
+
<g id="XMLID_35_">
|
49 |
+
<path id="XMLID_41_" d="M78.9732,32.1102c7.278,0,12.3464,5.0168,12.3464,12.3209c0,7.3302-5.1722,12.3733-12.5284,12.3733
|
50 |
+
H70.733v12.8142h-5.8225V32.1102H78.9732z M70.733,51.9172h6.6804c5.0689,0,7.9538-2.729,7.9538-7.46
|
51 |
+
c0-4.7305-2.8849-7.434-7.9278-7.434H70.733V51.9172z"/>
|
52 |
+
<path id="XMLID_38_" d="M92.7641,61.8472c0-4.8092,3.6651-7.5645,10.4231-7.9801l7.252-0.4423v-2.0792
|
53 |
+
c0-3.0413-2.0015-4.7049-5.5623-4.7049c-2.9376,0-5.069,1.5076-5.5107,3.821h-5.2509c0.1564-4.8609,4.731-8.3956,10.9175-8.3956
|
54 |
+
c6.6543,0,10.9952,3.4831,10.9952,8.8894v18.6631h-5.3808v-4.4964h-0.1298c-1.5337,2.9371-4.913,4.7822-8.5781,4.7822
|
55 |
+
C96.5329,69.9044,92.7641,66.6815,92.7641,61.8472z M110.4392,59.4296v-2.1058l-6.4723,0.4161
|
56 |
+
c-3.639,0.2337-5.5362,1.5854-5.5362,3.9509c0,2.2873,1.9754,3.7694,5.0684,3.7694
|
57 |
+
C107.4499,65.4602,110.4392,62.9382,110.4392,59.4296z"/>
|
58 |
+
<path id="XMLID_36_" d="M120.9746,79.6522v-4.4964c0.364,0.0512,1.2475,0.1033,1.7152,0.1033
|
59 |
+
c2.5736,0,4.0291-1.091,4.9131-3.8987l0.5199-1.6636l-9.8516-27.2928h6.0822l6.8624,22.1457h0.1298l6.8624-22.1457h5.9268
|
60 |
+
l-10.2156,28.6706c-2.3394,6.5761-5.0168,8.734-10.6834,8.734C122.7941,79.8086,121.3642,79.7565,120.9746,79.6522z"/>
|
61 |
+
</g>
|
62 |
+
</g>
|
63 |
+
</g>
|
64 |
+
<g>
|
65 |
+
</g>
|
66 |
+
<g>
|
67 |
+
</g>
|
68 |
+
<g>
|
69 |
+
</g>
|
70 |
+
<g>
|
71 |
+
</g>
|
72 |
+
<g>
|
73 |
+
</g>
|
74 |
+
<g>
|
75 |
+
</g>
|
76 |
+
</svg>
|
assets/img/bancontact.svg
ADDED
@@ -0,0 +1 @@
|
|
Â
|
1 |
+
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 530.13" preserveAspectRatio="xMidYMid meet"><defs><style>.cls-1{fill:#fff;}.cls-2{fill:#005498;}.cls-3{fill:#ffd800;}.cls-4{fill:none;}</style></defs><title>bancontact</title><path class="cls-1" d="M750,484.59a45.64,45.64,0,0,1-45.54,45.54H45.77A45.64,45.64,0,0,1,.23,484.59v-439A45.64,45.64,0,0,1,45.77,0H704.46A45.64,45.64,0,0,1,750,45.54V484.59Z"/><path class="cls-2" d="M602.58,148.11H422.49l-18.4,20.7-59.33,66.93h0l-18.4,20.7H148.8l17.94-20.93,8.51-9.89,17.94-20.93H111.55c-15,0-27.14,12.65-27.14,27.83h0V291.4c0,15.41,12.19,27.83,27.14,27.83H424.79c14.95,0,35.42-9.2,45.31-20.7l47.38-53.82Z"/><path class="cls-3" d="M638.68,85.33c15,0,27.14,12.65,27.14,27.83V171.8c0,15.41-12.19,27.83-27.14,27.83H557.27l18.17-20.7h0l9-10.35,18.17-20.7H422.49L326.59,256H147.88L276,111.09l4.83-5.52c10.12-11.27,30.59-20.7,45.54-20.7H638.68Z"/><path class="cls-2" d="M665.82,442.5V434c0-1.15-.69-1.84-2.3-1.84H658c-1.61,0-2.76-.23-3-.92-.46-.69-.46-2.07-.46-4.37v-32.2h9a2.36,2.36,0,0,0,2.3-2.3v-9a2.36,2.36,0,0,0-2.3-2.3h-9V369.37a1.94,1.94,0,0,0-.46-1.38,3.27,3.27,0,0,0-1.38-.46h-.23l-13.34,2.3a11.21,11.21,0,0,0-1.61.69,2,2,0,0,0-.69,1.38v9h-9a2.36,2.36,0,0,0-2.3,2.3v7.36a1.39,1.39,0,0,0,.69,1.38,3.71,3.71,0,0,0,1.61.92l9,1.38v32.2a37,37,0,0,0,1.15,9.66,15.28,15.28,0,0,0,3.45,5.75,12.22,12.22,0,0,0,5.75,2.76,42,42,0,0,0,8,.69,26.41,26.41,0,0,0,4.37-.23c1.15-.23,2.76-.46,4.37-.69a1.69,1.69,0,0,0,1.84-1.84M618,441.35v-9.89a1.39,1.39,0,0,0-.69-1.38,3.27,3.27,0,0,0-1.38-.46h-.23a56.63,56.63,0,0,1-6,.46,69.5,69.5,0,0,1-7.59.23,8.4,8.4,0,0,1-3.45-.69,8.75,8.75,0,0,1-3-2.07,8.85,8.85,0,0,1-1.84-3.91,23.15,23.15,0,0,1-.69-6.21v-9.2a23.15,23.15,0,0,1,.69-6.21,12.39,12.39,0,0,1,1.84-3.91,8.75,8.75,0,0,1,3-2.07,9.23,9.23,0,0,1,3.45-.69,69.5,69.5,0,0,1,7.59.23c1.84.23,3.91.23,6,.46h.23a1.94,1.94,0,0,0,1.38-.46,1.39,1.39,0,0,0,.69-1.38v-9.89a2.2,2.2,0,0,0-.46-1.61,6.74,6.74,0,0,0-1.84-.92c-1.61-.46-3.45-.69-6-1.15a50.09,50.09,0,0,0-8.74-.46c-7.82,0-14,2.3-18.86,7.13-4.6,4.83-7.13,11.73-7.13,20.93v9.2c0,9,2.3,16.1,7.13,20.93,4.6,4.83,11,7.13,18.86,7.13,3.22,0,6.21-.23,8.74-.46a55.86,55.86,0,0,0,6-1.15,3.46,3.46,0,0,0,1.84-.92c.46-.23.46-.92.46-1.61m-72-11.73a24.52,24.52,0,0,1-4.37,1.61,17.51,17.51,0,0,1-4.83.69c-2.3,0-4.14-.23-5.29-.92s-1.61-2.07-1.61-4.6v-.92a13.92,13.92,0,0,1,.46-3.45A6,6,0,0,1,532,419.5a6,6,0,0,1,3-1.38,24.4,24.4,0,0,1,4.83-.46H546v12Zm17.48-26.91a26.89,26.89,0,0,0-1.84-10.35,19.21,19.21,0,0,0-5.06-6.9,18.84,18.84,0,0,0-8.05-3.91,39.72,39.72,0,0,0-10.81-1.38,82.63,82.63,0,0,0-10.81.69,47.92,47.92,0,0,0-8.28,1.61c-1.38.46-2.07,1.15-2.07,2.53v9a3.32,3.32,0,0,0,.46,1.61,3.27,3.27,0,0,0,1.38.46h.46c.92,0,2.07-.23,3.22-.23,1.38,0,2.76-.23,4.37-.23s3.45-.23,5.29-.23H537a11,11,0,0,1,6,1.38c1.38.92,2.3,3,2.3,6.21v3.91h-6c-9.43,0-16.56,1.38-20.7,4.37-4.37,3-6.44,7.82-6.44,14.26v.92c0,3.68.46,6.67,1.61,9a16.81,16.81,0,0,0,4.37,6,18.78,18.78,0,0,0,6,3.22,24.27,24.27,0,0,0,7.13.92,23.57,23.57,0,0,0,8.51-1.38,33.56,33.56,0,0,0,6.9-3.68v1.84a2.36,2.36,0,0,0,2.3,2.3h12.42a2.36,2.36,0,0,0,2.3-2.3V402.71ZM504.37,442.5V434c0-1.15-.69-1.84-2.3-1.84h-5.52c-1.61,0-2.76-.23-3-.92-.46-.69-.46-2.07-.46-4.37v-32.2h9a2.36,2.36,0,0,0,2.3-2.3v-9a2.36,2.36,0,0,0-2.3-2.3h-9V369.37a1.94,1.94,0,0,0-.46-1.38,3.27,3.27,0,0,0-1.38-.46H491l-13.34,2.3a11.21,11.21,0,0,0-1.61.69,2,2,0,0,0-.69,1.38v9h-9.2a2.36,2.36,0,0,0-2.3,2.3v7.36a1.39,1.39,0,0,0,.69,1.38,3.71,3.71,0,0,0,1.61.92l9,1.38v32.2a37,37,0,0,0,1.15,9.66,15.28,15.28,0,0,0,3.45,5.75,12.22,12.22,0,0,0,5.75,2.76,42,42,0,0,0,8.05.69,26.41,26.41,0,0,0,4.37-.23c1.15-.23,2.76-.46,4.37-.69,1.38,0,2.07-.69,2.07-1.84m-48.3-.23v-36.8a46.55,46.55,0,0,0-.92-9.89,22.48,22.48,0,0,0-3-8.05,13.39,13.39,0,0,0-6-5.29,20.38,20.38,0,0,0-9.89-2.07,30.1,30.1,0,0,0-9.43,1.38,32.28,32.28,0,0,0-8.74,4.6v-2.76a2.36,2.36,0,0,0-2.3-2.3H403.4a2.36,2.36,0,0,0-2.3,2.3v58.88a2.36,2.36,0,0,0,2.3,2.3h13.34a2.36,2.36,0,0,0,2.3-2.3V398.8a58.81,58.81,0,0,1,5.52-2.53,13.11,13.11,0,0,1,5.06-.92,20.63,20.63,0,0,1,4.14.46,4.83,4.83,0,0,1,2.53,1.61,6.71,6.71,0,0,1,1.15,3.22,30.87,30.87,0,0,1,.23,4.83v36.8a2.36,2.36,0,0,0,2.3,2.3h13.34a2.09,2.09,0,0,0,1.61-.69,1.82,1.82,0,0,0,1.15-1.61m-83.71-25.53c0,9-3.22,13.57-9.89,13.57-3.22,0-5.75-1.15-7.36-3.45s-2.53-5.75-2.53-10.12v-7.82c0-4.6.92-7.82,2.53-10.12s4.14-3.45,7.36-3.45c6.44,0,9.89,4.6,9.89,13.57Zm17.93-7.82a38.4,38.4,0,0,0-1.84-12,25.06,25.06,0,0,0-5.29-9,23.19,23.19,0,0,0-8.74-5.75,35.56,35.56,0,0,0-23.91,0,23.19,23.19,0,0,0-8.74,5.75,25.06,25.06,0,0,0-5.29,9,38.4,38.4,0,0,0-1.84,12v7.82a38.4,38.4,0,0,0,1.84,12,25.06,25.06,0,0,0,5.29,9,23.19,23.19,0,0,0,8.74,5.75,35.56,35.56,0,0,0,23.91,0,23.19,23.19,0,0,0,8.74-5.75,25.06,25.06,0,0,0,5.29-9,38.4,38.4,0,0,0,1.84-12Zm-61.4,32.43v-9.89a1.39,1.39,0,0,0-.69-1.38,3.32,3.32,0,0,0-1.61-.46h-.23a56.63,56.63,0,0,1-6,.46,69.5,69.5,0,0,1-7.59.23,8.4,8.4,0,0,1-3.45-.69,8.75,8.75,0,0,1-3-2.07,8.85,8.85,0,0,1-1.84-3.91,23.15,23.15,0,0,1-.69-6.21v-9.2a23.15,23.15,0,0,1,.69-6.21,12.39,12.39,0,0,1,1.84-3.91,8.75,8.75,0,0,1,3-2.07,9.23,9.23,0,0,1,3.45-.69,69.5,69.5,0,0,1,7.59.23c1.84.23,3.91.23,6,.46h.23a3.32,3.32,0,0,0,1.61-.46,1.39,1.39,0,0,0,.69-1.38v-9.89a2.2,2.2,0,0,0-.46-1.61,6.74,6.74,0,0,0-1.84-.92c-1.61-.46-3.45-.69-6-1.15a50.09,50.09,0,0,0-8.74-.46c-7.82,0-14,2.3-18.86,7.13-4.6,4.83-7.13,11.73-7.13,20.93v9.2c0,9,2.3,16.1,7.13,20.93,4.6,4.83,11,7.13,18.86,7.13,3.22,0,6.21-.23,8.74-.46,2.53-.46,4.37-.69,6-1.15a3.46,3.46,0,0,0,1.84-.92,2.68,2.68,0,0,0,.46-1.61m-54.51.92v-36.8a46.55,46.55,0,0,0-.92-9.89,22.48,22.48,0,0,0-3-8.05,13.39,13.39,0,0,0-6-5.29,20.38,20.38,0,0,0-9.89-2.07,30.1,30.1,0,0,0-9.43,1.38,32.28,32.28,0,0,0-8.74,4.6v-2.76a2.36,2.36,0,0,0-2.3-2.3H221.71a2.36,2.36,0,0,0-2.3,2.3v58.88a2.36,2.36,0,0,0,2.3,2.3h13.34a2.36,2.36,0,0,0,2.3-2.3V398.8a58.81,58.81,0,0,1,5.52-2.53,13.11,13.11,0,0,1,5.06-.92,20.63,20.63,0,0,1,4.14.46,4.83,4.83,0,0,1,2.53,1.61,6.71,6.71,0,0,1,1.15,3.22,30.87,30.87,0,0,1,.23,4.83v36.8a2.36,2.36,0,0,0,2.3,2.3h13.34a2.09,2.09,0,0,0,1.61-.69,1.82,1.82,0,0,0,1.15-1.61m-85.56-12.65a24.52,24.52,0,0,1-4.37,1.61,17.51,17.51,0,0,1-4.83.69c-2.3,0-4.14-.23-5.29-.92s-1.61-2.07-1.61-4.6v-.92a13.92,13.92,0,0,1,.46-3.45,6,6,0,0,1,1.61-2.53,6,6,0,0,1,3-1.38,24.4,24.4,0,0,1,4.83-.46h6.21Zm17.71-26.91a26.89,26.89,0,0,0-1.84-10.35,19.21,19.21,0,0,0-5.06-6.9,18.84,18.84,0,0,0-8-3.91,39.72,39.72,0,0,0-10.81-1.38,82.63,82.63,0,0,0-10.81.69,47.92,47.92,0,0,0-8.28,1.61c-1.38.46-2.07,1.15-2.07,2.53v9a3.32,3.32,0,0,0,.46,1.61,3.27,3.27,0,0,0,1.38.46h.46c.92,0,2.07-.23,3.22-.23,1.38,0,2.76-.23,4.6-.23,1.61,0,3.45-.23,5.29-.23h5.29a11,11,0,0,1,6,1.38c1.38.92,2.3,3,2.3,6.21v3.91h-6c-9.43,0-16.56,1.38-20.7,4.37-4.37,3-6.44,7.82-6.44,14.26v.92c0,3.68.46,6.67,1.61,9a16.81,16.81,0,0,0,4.37,6,18.78,18.78,0,0,0,6,3.22,24.27,24.27,0,0,0,7.13.92,23.57,23.57,0,0,0,8.51-1.38,33.56,33.56,0,0,0,6.9-3.68v1.84a2.36,2.36,0,0,0,2.3,2.3h12.42a2.36,2.36,0,0,0,2.3-2.3V402.71Zm-79.12,17.48a8.78,8.78,0,0,1-3.21,7.13c-2.07,1.61-6.21,2.53-11.73,2.53h-9.2v-20.7h12.42c4.37,0,7.59.92,9.2,3a11.14,11.14,0,0,1,2.52,6.9ZM127,387.3a17.75,17.75,0,0,1-.46,3.45,5.92,5.92,0,0,1-1.83,2.76,12.19,12.19,0,0,1-3.45,1.84,18,18,0,0,1-5.52.69H103.27V377h8.51c5.75,0,9.66.69,12,2.07a7.28,7.28,0,0,1,3.44,6.67L127,387.3ZM145.81,419a17.24,17.24,0,0,0-2.76-9.89,17.48,17.48,0,0,0-7.13-6.44,15.59,15.59,0,0,0,6.9-6.44,20.17,20.17,0,0,0,2.53-9.66v-2.07a23,23,0,0,0-2.53-11,19.28,19.28,0,0,0-7.13-7.13,34.57,34.57,0,0,0-11-3.91,89.53,89.53,0,0,0-14.26-1.15h-5.52c-1.84,0-3.68.23-5.52.23a34.45,34.45,0,0,0-5.06.46c-1.61.23-2.76.23-3.68.46-2.07.46-3.68.92-4.6,2.07-.92.92-1.38,2.76-1.38,5.29v67.38c0,2.53.46,4.14,1.38,5.29a9.53,9.53,0,0,0,4.6,2.07,20.26,20.26,0,0,0,3.91.46c1.61.23,3.22.23,5.06.46a44.32,44.32,0,0,0,5.52.23h5.75a82.93,82.93,0,0,0,13.57-1.15,33.12,33.12,0,0,0,11-3.91,21.8,21.8,0,0,0,7.59-7.59,24.51,24.51,0,0,0,2.76-12.19V419Z"/><rect class="cls-4" width="749.77" height="530.13"/></svg>
|
assets/img/card_brand.svg
ADDED
@@ -0,0 +1,3 @@
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3 |
+
<svg focusable="false" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 21"><g fill="#fff" fill-rule="evenodd"><g id="unknown" class="Icon-fill"><path id="shape" d="M26.58 21H2.42A2.4 2.4 0 0 1 0 18.62V4.38A2.4 2.4 0 0 1 2.42 2h24.16A2.4 2.4 0 0 1 29 4.38v14.25A2.4 2.4 0 0 1 26.58 21zM10 7.83c0-.46-.35-.83-.78-.83H3.78c-.43 0-.78.37-.78.83v3.34c0 .46.35.83.78.83h5.44c.43 0 .78-.37.78-.83V7.83zM25 17c.65 0 1-.3 1-1s-.35-1-1-1h-3c-.65 0-1 .3-1 1s.35 1 1 1h3zm-6 0c.65 0 1-.3 1-1s-.35-1-1-1h-3c-.65 0-1 .3-1 1s.35 1 1 1h3zm-6 0c.65 0 1-.3 1-1s-.35-1-1-1h-3c-.65 0-1 .3-1 1s.35 1 1 1h3zm-6 0c.65 0 1-.3 1-1s-.35-1-1-1H4c-.65 0-1 .3-1 1s.35 1 1 1h3z"></path></g></g></svg>
|
assets/img/card_brand2.svg
ADDED
@@ -0,0 +1,3 @@
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3 |
+
<svg focusable="false" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 21"><g fill="#cccccc" fill-rule="evenodd"><g id="unknown" class="Icon-fill"><path id="shape" d="M26.58 21H2.42A2.4 2.4 0 0 1 0 18.62V4.38A2.4 2.4 0 0 1 2.42 2h24.16A2.4 2.4 0 0 1 29 4.38v14.25A2.4 2.4 0 0 1 26.58 21zM10 7.83c0-.46-.35-.83-.78-.83H3.78c-.43 0-.78.37-.78.83v3.34c0 .46.35.83.78.83h5.44c.43 0 .78-.37.78-.83V7.83zM25 17c.65 0 1-.3 1-1s-.35-1-1-1h-3c-.65 0-1 .3-1 1s.35 1 1 1h3zm-6 0c.65 0 1-.3 1-1s-.35-1-1-1h-3c-.65 0-1 .3-1 1s.35 1 1 1h3zm-6 0c.65 0 1-.3 1-1s-.35-1-1-1h-3c-.65 0-1 .3-1 1s.35 1 1 1h3zm-6 0c.65 0 1-.3 1-1s-.35-1-1-1H4c-.65 0-1 .3-1 1s.35 1 1 1h3z"></path></g></g></svg>
|
assets/img/cards/amex.svg
ADDED
@@ -0,0 +1 @@
|
|
Â
|
1 |
+
<svg height="471" width="752" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><rect fill="#2557d6" height="471" rx="40" width="750" x="1"/><path d="M1.003 221.185h36.024l8.123-19.51h18.185l8.101 19.51h70.88V206.27l6.327 14.98h36.796l6.327-15.202v15.138h176.151l-.082-32.026h3.408c2.386.083 3.083.302 3.083 4.226v27.8h91.106v-7.455c7.349 3.92 18.779 7.455 33.819 7.455h38.328l8.203-19.51h18.185l8.021 19.51h73.86v-18.532l11.186 18.532h59.187V98.678h-58.576v14.468l-8.202-14.468h-60.105v14.468l-7.532-14.468h-81.188c-13.59 0-25.536 1.889-35.186 7.153v-7.153h-56.026v7.153c-6.14-5.426-14.508-7.153-23.812-7.153H180.908l-13.734 31.641-14.104-31.641H88.6v14.468l-7.083-14.468H26.534L1 156.924v64.261zm227.396-17.67h-21.614l-.08-68.794-30.573 68.793H157.62l-30.652-68.854v68.854H84.084l-8.101-19.592h-43.9L23.9 203.514H1l37.756-87.837h31.326l35.859 83.164v-83.164h34.412l27.593 59.587 25.347-59.587h35.104v87.837h.003zM68.777 165.692l-14.43-35.017-14.35 35.017zm245.642 37.821h-70.433v-87.837h70.433v18.291h-49.348V149.8h48.165v18.005H265.07v17.542h49.348v18.166zm99.256-64.18c0 14.004-9.386 21.24-14.856 23.412 4.613 1.748 8.553 4.838 10.43 7.397 2.976 4.369 3.49 8.271 3.49 16.116v17.255h-21.266l-.08-11.077c0-5.285.508-12.886-3.328-17.112-3.081-3.09-7.777-3.76-15.368-3.76h-22.633v31.95H328.98v-87.838h48.495c10.775 0 18.714.283 25.53 4.207 6.67 3.924 10.67 9.652 10.67 19.45zm-26.652 13.042c-2.898 1.752-6.324 1.81-10.43 1.81H350.98v-19.51h25.962c3.674 0 7.508.164 9.998 1.584 2.735 1.28 4.427 4.003 4.427 7.765 0 3.84-1.61 6.929-4.344 8.351zm60.466 51.138h-21.513v-87.837h21.513zm249.74 0H667.35l-39.964-65.927v65.927h-42.94l-8.204-19.592h-43.799l-7.96 19.592H499.81c-10.248 0-23.224-2.257-30.572-9.715-7.41-7.458-11.265-17.56-11.265-33.533 0-13.027 2.304-24.936 11.366-34.347 6.816-7.01 17.49-10.242 32.02-10.242h20.412v18.821h-19.984c-7.694 0-12.039 1.14-16.224 5.203-3.594 3.699-6.06 10.69-6.06 19.897 0 9.41 1.878 16.196 5.797 20.628 3.245 3.476 9.144 4.53 14.694 4.53h9.469l29.716-69.076h31.592l35.696 83.081v-83.08h32.103l37.062 61.174V115.68h21.596v87.834zm-128.159-37.82l-14.591-35.017-14.51 35.017h29.1zm181.885 178.074c-5.121 7.458-15.101 11.239-28.611 11.239h-40.718v-18.84h40.553c4.022 0 6.837-.527 8.532-2.175a7.71 7.71 0 0 0 2.493-5.73c0-2.56-1.024-4.592-2.575-5.81-1.53-1.341-3.757-1.95-7.429-1.95-19.797-.67-44.495.609-44.495-27.194 0-12.743 8.125-26.157 30.25-26.157h41.998v-17.48h-39.02c-11.776 0-20.33 2.808-26.388 7.174v-7.175H627.83c-9.23 0-20.063 2.279-25.187 7.175v-7.175H499.578v7.175c-8.203-5.892-22.043-7.175-28.431-7.175h-67.983v7.175c-6.49-6.258-20.92-7.175-29.716-7.175h-76.085l-17.41 18.763-16.307-18.763H149.99v122.592h111.516l17.94-19.06 16.9 19.06 68.739.061v-28.838h6.757c9.12.14 19.878-.226 29.368-4.31v33.085h56.697v-31.952h2.735c3.49 0 3.834.143 3.834 3.616v28.333H636.71c10.935 0 22.365-2.787 28.695-7.845v7.845h54.632c11.369 0 22.471-1.587 30.918-5.651zm-341.503-47.154c0 24.406-18.286 29.445-36.716 29.445H346.43v29.469h-40.98l-25.962-29.085-26.981 29.085H168.99v-87.859h84.8l25.941 28.799 26.819-28.799h67.371c16.732 0 35.532 4.613 35.532 28.945zm-167.625 40.434h-51.839v-17.481h46.289V301.64h-46.289v-15.973h52.86l23.062 25.604zm83.526 10.06l-32.37-35.788 32.37-34.651zm47.873-39.066H345.98v-22.374h27.492c7.612 0 12.896 3.09 12.896 10.773 0 7.598-5.04 11.601-13.14 11.601zm142.744-40.373h70.369v18.17h-49.372v15.973h48.167v17.925h-48.167v17.481l49.372.08v18.23h-70.37v-87.859zm-27.054 47.03c4.693 1.724 8.53 4.816 10.329 7.375 2.977 4.29 3.408 8.293 3.493 16.037v17.417H481.57v-10.992c0-5.286.511-13.112-3.408-17.198-3.08-3.147-7.777-3.9-15.468-3.9h-22.533v32.09h-21.186v-87.859h48.678c10.674 0 18.448.47 25.369 4.146 6.654 4.004 10.839 9.488 10.839 19.51-.003 14.024-9.395 21.18-14.945 23.373zM477 303.59c-2.82 1.667-6.308 1.81-10.41 1.81h-25.614v-19.733h25.962c3.754 0 7.51.08 10.062 1.587 2.732 1.423 4.366 4.144 4.366 7.903 0 3.76-1.634 6.788-4.366 8.433zm190.336 5.597c4.106 4.23 6.306 9.572 6.306 18.614 0 18.9-11.858 27.723-33.122 27.723h-41.065v-18.84h40.9c4 0 6.836-.527 8.613-2.175 1.45-1.359 2.49-3.333 2.49-5.73 0-2.56-1.125-4.592-2.573-5.81-1.612-1.34-3.836-1.95-7.508-1.95-19.717-.67-44.41.61-44.41-27.193 0-12.744 8.04-26.158 30.144-26.158h42.269v18.7h-38.677c-3.834 0-6.327.143-8.447 1.587-2.31 1.422-3.166 3.534-3.166 6.32 0 3.315 1.96 5.57 4.613 6.545 2.224.77 4.613.996 8.205.996l11.35.305c11.446.278 19.303 2.249 24.078 7.066zM751 285.667h-38.427c-3.836 0-6.385.143-8.532 1.587-2.224 1.423-3.081 3.534-3.081 6.322 0 3.314 1.878 5.569 4.61 6.544 2.225.77 4.614.996 8.126.996l11.427.304c11.531.284 19.228 2.258 23.921 7.072.855.67 1.368 1.422 1.956 2.175z" fill="#fff"/></g></svg>
|
assets/img/cards/china_union_pay.svg
ADDED
@@ -0,0 +1,13 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3 |
+
<svg id="icon-unionpay" width="40" height="24" viewBox="0 0 40 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
4 |
+
<title>Union Pay</title>
|
5 |
+
<path d="M9.877 2h8.126c1.135 0 1.84.93 1.575 2.077l-3.783 16.35c-.267 1.142-1.403 2.073-2.538 2.073H5.13c-1.134 0-1.84-.93-1.574-2.073L7.34 4.076C7.607 2.93 8.74 2 9.878 2z" style="fill: #E21836" />
|
6 |
+
<path d="M17.325 2h9.345c1.134 0 .623.93.356 2.077l-3.783 16.35c-.265 1.142-.182 2.073-1.32 2.073H12.58c-1.137 0-1.84-.93-1.574-2.073l3.783-16.35C15.056 2.93 16.19 2 17.324 2z" style="fill: #00447B" />
|
7 |
+
<path d="M26.3 2h8.126c1.136 0 1.84.93 1.575 2.077l-3.782 16.35c-.266 1.142-1.402 2.073-2.54 2.073h-8.122c-1.137 0-1.842-.93-1.574-2.073l3.78-16.35C24.03 2.93 25.166 2 26.303 2z" style="fill: #007B84" />
|
8 |
+
<path d="M27.633 14.072l-.99 3.3h.266l-.208.68h-.266l-.062.212h-.942l.064-.21H23.58l.193-.632h.194l1.005-3.35.2-.676h.962l-.1.34s.255-.184.498-.248c.242-.064 1.636-.088 1.636-.088l-.206.672h-.33zm-1.695 0l-.254.843s.285-.13.44-.172c.16-.04.395-.057.395-.057l.182-.614h-.764zm-.38 1.262l-.263.877s.29-.15.447-.196c.157-.037.396-.066.396-.066l.185-.614h-.766zm-.614 2.046h.767l.222-.74h-.765l-.223.74z" style="fill: #FEFEFE" />
|
9 |
+
<path d="M28.055 13.4h1.027l.01.385c-.005.065.05.096.17.096h.208l-.19.637h-.555c-.48.035-.662-.172-.65-.406l-.02-.71zM28.193 16.415h-.978l.167-.566H28.5l.16-.517h-1.104l.19-.638h3.072l-.193.638h-1.03l-.16.516h1.032l-.17.565H29.18l-.2.24h.454l.11.712c.013.07.014.116.036.147.023.026.158.038.238.038h.137l-.21.694h-.348c-.054 0-.133-.004-.243-.01-.105-.008-.18-.07-.25-.105-.064-.03-.16-.11-.182-.24l-.11-.712-.507.7c-.162.222-.38.39-.748.39h-.712l.186-.62h.273c.078 0 .15-.03.2-.056.052-.023.098-.05.15-.126l.74-1.05zM17.478 14.867h2.59l-.19.622H18.84l-.16.53h1.06l-.194.64h-1.06l-.256.863c-.03.095.25.108.353.108l.53-.072-.212.71h-1.193c-.096 0-.168-.013-.272-.037-.1-.023-.145-.07-.19-.138-.043-.07-.11-.128-.064-.278l.343-1.143h-.588l.195-.65h.592l.156-.53h-.588l.188-.623zM19.223 13.75h1.063l-.194.65H18.64l-.157.136c-.067.066-.09.038-.18.087-.08.04-.254.123-.477.123h-.466l.19-.625h.14c.118 0 .198-.01.238-.036.046-.03.098-.096.157-.203l.267-.487h1.057l-.187.356zM20.74 13.4h.905l-.132.46s.286-.23.487-.313c.2-.075.65-.143.65-.143l1.464-.007-.498 1.672c-.085.286-.183.472-.244.555-.055.087-.12.16-.248.23-.124.066-.236.104-.34.115-.096.007-.244.01-.45.012h-1.41l-.4 1.324c-.037.13-.055.194-.03.23.02.03.068.066.135.066l.62-.06-.21.726h-.698c-.22 0-.383-.004-.495-.013-.108-.01-.22 0-.295-.058-.065-.058-.164-.133-.162-.21.007-.073.037-.192.082-.356l1.268-4.23zm1.922 1.69h-1.484l-.09.3h1.283c.152-.018.184.004.196-.003l.096-.297zm-1.402-.272s.29-.266.786-.353c.112-.022.82-.015.82-.015l.106-.357h-1.496l-.216.725z" style="fill: #FEFEFE" />
|
10 |
+
<path d="M23.382 16.1l-.084.402c-.036.125-.067.22-.16.302-.1.084-.216.172-.488.172l-.502.02-.004.455c-.006.13.028.117.048.138.024.022.045.032.067.04l.157-.008.48-.028-.198.663h-.552c-.385 0-.67-.008-.765-.084-.092-.057-.105-.132-.103-.26l.035-1.77h.88l-.013.362h.212c.072 0 .12-.007.15-.026.027-.02.047-.048.06-.093l.087-.282h.692zM10.84 7.222c-.032.143-.596 2.763-.598 2.764-.12.53-.21.91-.508 1.152-.172.14-.37.21-.6.21-.37 0-.587-.185-.624-.537l-.007-.12.113-.712s.593-2.388.7-2.703c.002-.017.005-.026.007-.035-1.152.01-1.357 0-1.37-.018-.007.024-.037.173-.037.173l-.605 2.688-.05.23-.1.746c0 .22.042.4.13.553.275.485 1.06.557 1.504.557.573 0 1.11-.123 1.47-.345.63-.375.797-.962.944-1.48l.067-.267s.61-2.48.716-2.803c.003-.017.006-.026.01-.035-.835.01-1.08 0-1.16-.018zM14.21 12.144c-.407-.006-.55-.006-1.03.018l-.018-.036c.042-.182.087-.363.127-.548l.06-.25c.086-.39.173-.843.184-.98.007-.084.036-.29-.2-.29-.1 0-.203.048-.307.096-.058.207-.174.79-.23 1.055-.118.558-.126.62-.178.897l-.036.037c-.42-.006-.566-.006-1.05.018l-.024-.04c.08-.332.162-.668.24-.998.203-.9.25-1.245.307-1.702l.04-.028c.47-.067.585-.08 1.097-.185l.043.047-.077.287c.086-.052.168-.104.257-.15.242-.12.51-.155.658-.155.223 0 .468.062.57.323.098.232.034.52-.094 1.084l-.066.287c-.13.627-.152.743-.225 1.174l-.05.036zM15.87 12.144c-.245 0-.405-.006-.56 0-.153 0-.303.008-.532.018l-.013-.02-.015-.02c.062-.238.097-.322.128-.406.03-.084.06-.17.115-.41.072-.315.116-.535.147-.728.033-.187.052-.346.075-.53l.02-.014.02-.018c.244-.036.4-.057.56-.082.16-.024.32-.055.574-.103l.008.023.008.022c-.047.195-.094.39-.14.588-.047.197-.094.392-.137.587-.093.414-.13.57-.152.68-.02.105-.026.163-.063.377l-.022.02-.023.017zM19.542 10.728c.143-.633.033-.928-.108-1.11-.213-.273-.59-.36-.978-.36-.235 0-.793.023-1.23.43-.312.29-.458.687-.546 1.066-.088.387-.19 1.086.447 1.344.198.085.48.108.662.108.466 0 .945-.13 1.304-.513.278-.312.405-.775.448-.965zm-1.07-.046c-.02.106-.113.503-.24.673-.086.123-.19.198-.305.198-.033 0-.235 0-.238-.3-.003-.15.027-.304.063-.47.108-.478.236-.88.56-.88.255 0 .27.298.16.78zM29.536 12.187c-.493-.004-.635-.004-1.09.015l-.03-.037c.124-.472.248-.943.358-1.42.142-.62.175-.882.223-1.244l.037-.03c.49-.07.625-.09 1.135-.186l.015.044c-.093.388-.186.777-.275 1.166-.19.816-.258 1.23-.33 1.658l-.044.035z" style="fill: #FEFEFE" />
|
11 |
+
<path d="M29.77 10.784c.144-.63-.432-.056-.525-.264-.14-.323-.052-.98-.62-1.2-.22-.085-.732.025-1.17.428-.31.29-.458.683-.544 1.062-.088.38-.19 1.078.444 1.328.2.085.384.11.567.103.638-.034 1.124-1.002 1.483-1.386.277-.303.326.115.368-.07zm-.974-.047c-.024.1-.117.503-.244.67-.083.117-.283.192-.397.192-.032 0-.232 0-.24-.3 0-.146.03-.3.067-.467.11-.47.235-.87.56-.87.254 0 .363.293.254.774zM22.332 12.144c-.41-.006-.55-.006-1.03.018l-.018-.036c.04-.182.087-.363.13-.548l.057-.25c.09-.39.176-.843.186-.98.008-.084.036-.29-.198-.29-.1 0-.203.048-.308.096-.057.207-.175.79-.232 1.055-.115.558-.124.62-.176.897l-.035.037c-.42-.006-.566-.006-1.05.018l-.022-.04.238-.998c.203-.9.25-1.245.307-1.702l.038-.028c.472-.067.587-.08 1.098-.185l.04.047-.073.287c.084-.052.17-.104.257-.15.24-.12.51-.155.655-.155.224 0 .47.062.575.323.095.232.03.52-.098 1.084l-.065.287c-.133.627-.154.743-.225 1.174l-.05.036zM26.32 8.756c-.07.326-.282.603-.554.736-.225.114-.498.123-.78.123h-.183l.013-.074.336-1.468.01-.076.007-.058.132.015.71.062c.275.105.388.38.31.74zM25.88 7.22l-.34.003c-.883.01-1.238.006-1.383-.012l-.037.182-.315 1.478-.793 3.288c.77-.01 1.088-.01 1.22.004l.21-1.024s.153-.644.163-.667c0 0 .047-.066.096-.092h.07c.665 0 1.417 0 2.005-.437.4-.298.675-.74.797-1.274.03-.132.054-.29.054-.446 0-.205-.04-.41-.16-.568-.3-.423-.896-.43-1.588-.433zM33.572 9.28l-.04-.043c-.502.1-.594.118-1.058.18l-.034.034-.005.023-.003-.007c-.345.803-.334.63-.615 1.26-.003-.03-.003-.048-.004-.077l-.07-1.37-.044-.043c-.53.1-.542.118-1.03.18l-.04.034-.006.056.003.007c.06.315.047.244.108.738.03.244.065.49.093.73.05.4.077.6.134 1.21-.328.55-.408.757-.722 1.238l.017.044c.478-.018.587-.018.94-.018l.08-.088c.265-.578 2.295-4.085 2.295-4.085zM16.318 9.62c.27-.19.304-.45.076-.586-.23-.137-.634-.094-.906.095-.273.186-.304.45-.075.586.228.134.633.094.905-.096z" style="fill: #FEFEFE" />
|
12 |
+
<path d="M31.238 13.415l-.397.684c-.124.232-.357.407-.728.41l-.632-.01.184-.618h.124c.064 0 .11-.004.148-.022.03-.01.054-.035.08-.072l.233-.373h.988z" style="fill: #FEFEFE" />
|
13 |
+
</svg>
|
assets/img/cards/diners.svg
ADDED
@@ -0,0 +1 @@
|
|
Â
|
1 |
+
<svg width="750" height="471" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><rect fill="#0079BE" width="750" height="471" rx="40"/><path d="M584.934 237.947c0-99.415-82.981-168.133-173.895-168.1h-78.242c-92.003-.033-167.73 68.705-167.73 168.1 0 90.93 75.727 165.64 167.73 165.204h78.242c90.914.436 173.895-74.293 173.895-165.204z" fill="#FFF"/><path d="M333.28 83.93c-84.07.027-152.194 68.308-152.214 152.58.02 84.258 68.144 152.533 152.214 152.56 84.09-.027 152.228-68.302 152.24-152.56-.012-84.272-68.15-152.553-152.24-152.58z" fill="#0079BE"/><path d="M237.066 236.098c.08-41.18 25.746-76.296 61.94-90.25v180.48c-36.194-13.947-61.861-49.044-61.94-90.23zm131 90.275V145.847c36.207 13.92 61.914 49.057 61.98 90.257-.066 41.212-25.773 76.322-61.98 90.269z" fill="#FFF"/></g></svg>
|
assets/img/cards/discover.svg
ADDED
@@ -0,0 +1 @@
|
|
Â
|
1 |
+
<svg height="501" width="780" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="M54.992 0C24.627 0 0 24.63 0 55.004v390.992C0 476.376 24.619 501 54.992 501h670.016C755.373 501 780 476.37 780 445.996V55.004C780 24.624 755.381 0 725.008 0z" fill="#4d4d4d"/><path d="M415.13 161.213c30.941 0 56.022 23.58 56.022 52.709v.033c0 29.13-25.081 52.742-56.021 52.742s-56.022-23.613-56.022-52.742v-.033c0-29.13 25.082-52.71 56.022-52.71zm-87.978.68c8.837 0 16.248 1.784 25.268 6.09v22.751c-8.544-7.863-15.955-11.154-25.756-11.154-19.264 0-34.414 15.015-34.414 34.05 0 20.075 14.681 34.196 35.37 34.196 9.312 0 16.586-3.12 24.8-10.857v22.763c-9.341 4.14-16.911 5.776-25.756 5.776-31.278 0-55.582-22.596-55.582-51.737 0-28.826 24.951-51.878 56.07-51.878zm-97.113.627c11.546 0 22.11 3.72 30.943 10.994l-10.748 13.248c-5.35-5.646-10.41-8.028-16.564-8.028-8.853 0-15.3 4.745-15.3 10.989 0 5.354 3.619 8.188 15.944 12.482 23.365 8.044 30.29 15.176 30.29 30.926 0 19.193-14.976 32.553-36.32 32.553-15.63 0-26.994-5.795-36.458-18.872l13.268-12.03c4.73 8.61 12.622 13.222 22.42 13.222 9.163 0 15.947-5.952 15.947-13.984 0-4.164-2.055-7.734-6.158-10.258-2.066-1.195-6.158-2.977-14.2-5.647-19.291-6.538-25.91-13.527-25.91-27.185 0-16.225 14.214-28.41 32.846-28.41zm234.723 1.728h22.437l28.084 66.592 28.446-66.592h22.267l-45.494 101.686h-11.053zm-397.348.152h30.15c33.312 0 56.534 20.382 56.534 49.641 0 14.59-7.104 28.696-19.118 38.057-10.108 7.901-21.626 11.445-37.574 11.445H67.414zm96.135 0h20.54v99.143h-20.54zm411.734 0h58.252v16.8H595.81v22.005h36.336v16.791H595.81v26.762h37.726v16.785h-58.252V164.4zm71.858 0h30.455c23.69 0 37.265 10.71 37.265 29.272 0 15.18-8.514 25.14-23.986 28.105l33.148 41.766h-25.26l-28.429-39.828h-2.678v39.828h-20.515zm20.515 15.616v30.025h6.002c13.117 0 20.069-5.362 20.069-15.328 0-9.648-6.954-14.697-19.745-14.697zM87.94 181.199v65.559h5.512c13.273 0 21.656-2.394 28.11-7.88 7.103-5.955 11.376-15.465 11.376-24.98 0-9.499-4.273-18.725-11.376-24.681-6.785-5.78-14.837-8.018-28.11-8.018z" fill="#fff"/><path d="M779.982 288.361c-26.05 18.33-221.077 149.34-558.754 212.623H724.99c30.365 0 54.992-24.63 54.992-55.004z" fill="#f47216"/></g></svg>
|
assets/img/cards/jcb.svg
ADDED
@@ -0,0 +1 @@
|
|
Â
|
1 |
+
<svg width="750" height="471" xmlns="http://www.w3.org/2000/svg"><defs><linearGradient x1=".032%" y1="50%" x2="99.974%" y2="50%" id="a"><stop stop-color="#007B40" offset="0%"/><stop stop-color="#55B330" offset="100%"/></linearGradient><linearGradient x1=".472%" y1="50%" x2="99.986%" y2="50%" id="b"><stop stop-color="#1D2970" offset="0%"/><stop stop-color="#006DBA" offset="100%"/></linearGradient><linearGradient x1=".114%" y1="50.001%" x2="99.986%" y2="50.001%" id="c"><stop stop-color="#6E2B2F" offset="0%"/><stop stop-color="#E30138" offset="100%"/></linearGradient></defs><g fill="none" fill-rule="evenodd"><rect fill="#0E4C96" width="750" height="471" rx="40"/><path d="M617.243 346.766c0 41.615-33.728 75.36-75.36 75.36H132.757V124.245c0-41.626 33.733-75.37 75.365-75.37l409.12-.001v297.892h.001z" fill="#FFF"/><path d="M483.859 242.045c11.684.253 23.437-.516 35.077.4 11.787 2.2 14.628 20.043 4.156 25.888-7.141 3.85-15.633 1.432-23.379 2.113H483.86v-28.401zm41.833-32.145c2.596 9.165-6.238 17.392-15.066 16.13h-26.767c.185-8.642-.368-18.021.272-26.208 10.724.301 21.549-.616 32.21.48 4.58 1.15 8.413 4.916 9.35 9.598zM590.12 73.997c.498 17.501.071 35.927.214 53.783-.035 72.596.072 145.194-.055 217.79-.469 27.207-24.582 50.844-51.6 51.387-27.046.111-54.095.016-81.142.047v-109.75c29.47-.154 58.959.307 88.417-.232 13.667-.86 28.632-9.876 29.27-24.915 1.61-15.102-12.632-25.55-26.153-27.201-5.198-.135-5.044-1.515 0-2.117 12.892-2.787 23.02-16.133 19.226-29.499-3.236-14.058-18.773-19.499-31.697-19.472-26.351-.18-52.709-.026-79.063-.077.172-20.489-.354-41 .286-61.474 2.087-26.716 26.806-48.747 53.447-48.27h78.85z" fill="url(#a)"/><path d="M159.74 125.04c.674-27.163 24.889-50.611 51.875-51.007 26.944-.083 53.891-.012 80.837-.036-.074 90.885.148 181.777-.112 272.658-1.038 26.834-24.99 49.834-51.679 50.307-26.996.099-53.995.014-80.992.042V283.551c26.223 6.194 53.722 8.832 80.473 4.721 15.993-2.575 33.488-10.424 38.902-27.014 3.986-14.192 1.742-29.126 2.334-43.692v-33.824h-46.297c-.208 22.37.426 44.78-.335 67.125-1.248 13.734-14.846 22.46-27.8 21.995-16.066.169-47.898-11.64-47.898-11.64-.08-41.917.466-94.408.692-136.182z" fill="url(#b)"/><path d="M309.72 197.39c-2.434.517-.49-8.3-1.114-11.646.166-21.15-.346-42.323.284-63.458 2.083-26.829 26.991-48.916 53.739-48.288h78.766c-.074 90.884.147 181.775-.112 272.656-1.039 26.834-24.992 49.833-51.68 50.308-26.998.1-53.998.015-80.997.043V272.708c18.44 15.128 43.5 17.484 66.472 17.525 17.317-.006 34.534-2.675 51.35-6.67V260.79c-18.953 9.447-41.233 15.446-62.243 10.018-14.656-3.65-25.294-17.811-25.056-32.936-1.699-15.728 7.524-32.335 22.981-37.011 19.19-6.008 40.108-1.413 58.096 6.398 3.855 2.018 7.765 4.521 6.222-1.921v-17.9c-30.084-7.157-62.101-9.792-92.329-2.004-8.748 2.468-17.27 6.21-24.379 11.956z" fill="url(#c)"/></g></svg>
|
assets/img/cards/laser.svg
ADDED
@@ -0,0 +1 @@
|
|
Â
|
1 |
+
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="-45 62.3 750 471"><style>.st0{fill:#283a97}.st1{fill:#ee4799}.st2{fill:none;stroke:#ee4799;stroke-width:1.0006;stroke-miterlimit:2.6131}.st3{fill:#fff}</style><path id="Rectangle-1" class="st0" d="M-5 62.3h670c22.1 0 40 17.9 40 40v391c0 22.1-17.9 40-40 40H-5c-22.1 0-40-17.9-40-40v-391c0-22.1 17.9-40 40-40z"/><path class="st0" d="M160.2 477.3h340v-359h-340z"/><path class="st1" d="M500.3 127.6l-10.1 17.1-330.5-7.6v-1.7zm-11.2 19.3l-10.4 17-313.2-7.9-.8-1.2zm-11.7 19.4l-10.2 16.9-290.2-7.9-.7-1.1zm-11.7 19.3l-9.9 17-266.6-7.9-.8-1.2zm-11.2 19.2l-10.1 17.1-243.7-7.9-.8-1.3zm-11.7 19.5l-10.1 16.9-220-7.9-.7-1.1zm-11.5 19.2l-10.1 17.1-196.1-7.9-.8-1.3zm-11.4 19.3l-10.2 17.1-173.1-7.9-.8-1.3zm-11.3 19.3l-10.5 17-150-7.9-.8-1.1zM397 301.5l-10.2 17-126.5-8-.8-1.1zm-11.5 19.3l-10.3 17-102.9-7.9-.8-1.2zM374 340l-10.3 17.1-79.4-7.9-.8-1.3zm-11.5 19.5l-10.2 16.8-56.3-7.8-.8-1.2zm-11.4 19.2l-10.4 17.1-33.2-7.9-.8-1.3zm-12 19.9l-10.4 17.7-11.1-9.2-.3-1.2zm-179.4 7.9h340.6-340.6z"/><path class="st2" d="M159.7 406.5h340.6"/><path class="st1" d="M159.7 387.2h340.6-340.6z"/><path class="st2" d="M159.7 387.2h340.6"/><path class="st1" d="M159.7 368h340.6-340.6z"/><path class="st2" d="M159.7 368h340.6"/><path class="st1" d="M159.7 348.6h340.6-340.6z"/><path class="st2" d="M159.7 348.6h340.6"/><path class="st1" d="M159.7 329.3h340.6-340.6z"/><path class="st2" d="M159.7 329.3h340.6"/><path class="st1" d="M159.7 310h340.6-340.6z"/><path class="st2" d="M159.7 310h340.6"/><path class="st1" d="M159.7 290.8h340.6-340.6z"/><path class="st2" d="M159.7 290.8h340.6"/><path class="st1" d="M159.7 271.3h340.6-340.6z"/><path class="st2" d="M159.7 271.3h340.6"/><path class="st1" d="M159.7 252.1h340.6-340.6z"/><path class="st2" d="M159.7 252.1h340.6"/><path class="st1" d="M159.7 232.8h340.6-340.6z"/><path class="st2" d="M159.7 232.8h340.6"/><path class="st1" d="M159.7 213.5h340.6-340.6z"/><path class="st2" d="M159.7 213.5h340.6"/><path class="st1" d="M159.7 194.1h340.6-340.6z"/><path class="st2" d="M159.7 194.1h340.6"/><path class="st1" d="M159.7 174.8h340.6-340.6z"/><path class="st2" d="M159.7 174.8h340.6"/><path class="st1" d="M159.7 155.6h340.6-340.6z"/><path class="st2" d="M159.7 155.6h340.6"/><path class="st3" d="M364.5 427.4v37.4h25.4l3.2-7.1c-4.6.2-7.9.3-12.6.3h-5.4v-9.3h.6c2.7 0 5.7.2 8.8.3l3.2-7.3c-1.6.2-1.9.2-4.1.2-3.9.2-4.9.2-8.5.2v-7.7h1.3c3.2 0 7.3.2 12.8.3l3-7.3h-27.7zm-97.1 0l2.7 4-14.4 33.5h10.4l2.4-5.7h14.8l2.4 5.7h10.9l-16.4-37.4-12.8-.1zm12.9 24.9h-9l4.4-10.7 4.6 10.7zM221.4 425h-10.6v39.8h25.6l3-7.1c-3.3.2-7.6.3-12.2.3h-5.8v-33zm118.5 4.3c-4.1-1.9-7.7-2.7-11.4-2.7-8.1 0-13.6 4.4-13.6 10.7 0 4 1.7 6.6 6.3 9.6l5.4 3.6c2.5 1.7 3.5 3 3.5 4.9 0 2.4-2.2 3.8-5.5 3.8-2.8 0-4.6-.8-7.7-3.3l-2.8 6.6c4.7 2.5 7.1 3.2 11.2 3.2 9.3 0 15.2-4.6 15.2-11.7 0-4.1-1.9-6.8-6.6-10.1l-5.5-4c-2.4-1.6-3-2.4-3-3.6 0-2.1 1.6-3.3 4.3-3.3 2.4 0 4.4.8 7.6 2.8l2.6-6.5zm75.6-1.9v37.4h10.6v-30.5h2.3c4.7 0 7.3 1.9 7.3 5.4 0 3.6-3 6-7.7 6-.5 0-.8 0-1.6-.2l12.8 19.3h11.7l-10.6-15.5c4.6-2.7 6.5-5.7 6.5-10.3 0-7.9-5.5-11.7-16.7-11.7l-14.6.1z"/></svg>
|
assets/img/cards/maestro.svg
ADDED
@@ -0,0 +1 @@
|
|
Â
|
1 |
+
<svg height="471" width="750" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><rect fill="#000" height="471" rx="40" width="750"/><path d="M675 235.506c0 99.134-80.35 179.496-179.483 179.496-99.121 0-179.48-80.362-179.48-179.496 0-99.141 80.359-179.508 179.48-179.508C594.65 55.998 675 136.365 675 235.506" fill="#d9222a"/><path d="M356.87 349.49a177.907 177.907 0 0 1-13.674-19.009h63.612a178.646 178.646 0 0 0 10.342-19.012h-84.292a178.39 178.39 0 0 1-7.596-19h99.476c5.987-17.904 9.229-37.05 9.229-56.963 0-13.046-1.392-25.762-4.03-38.012H320.076a178.242 178.242 0 0 1 5.208-19.009h99.442a181.479 181.479 0 0 0-7.592-19.004H332.88a180.954 180.954 0 0 1 10.338-19.008h63.57a181.425 181.425 0 0 0-13.67-18.992h-36.225a181.098 181.098 0 0 1 18.112-19c-31.854-28.883-74.137-46.483-120.517-46.483C155.358 55.998 75 136.365 75 235.506c0 99.134 80.358 179.496 179.487 179.496 46.388 0 88.667-17.596 120.517-46.475a180.409 180.409 0 0 0 18.134-19.037z" fill="#0097d0"/><path d="M651.075 335.544c0-3.2 2.596-5.796 5.8-5.796 3.2 0 5.792 2.596 5.792 5.796 0 3.204-2.592 5.8-5.792 5.8a5.799 5.799 0 0 1-5.8-5.8zm5.8 4.408a4.401 4.401 0 0 0 4.404-4.408 4.396 4.396 0 0 0-4.404-4.396 4.4 4.4 0 0 0-4.408 4.396 4.405 4.405 0 0 0 4.408 4.408zm-.787-1.862h-1.184v-5.092h2.15c.446 0 .904.004 1.3.258.417.284.646.775.646 1.271 0 .583-.337 1.113-.88 1.317l.934 2.246h-1.316l-.775-2.009h-.875zm0-2.88h.658c.246 0 .504.017.725-.1a.712.712 0 0 0 .3-.591.652.652 0 0 0-.288-.513c-.212-.125-.541-.1-.762-.1h-.633zm-283.642-51.204c-7.671 2.034-15.088 3.025-22.93 3.009-25.016-.025-38.045-11.417-38.045-33.2 0-25.459 16.587-44.184 39.1-44.184 18.416 0 30.175 10.5 30.175 26.946 0 5.458-.796 10.77-2.746 18.296h-44.488c-1.583 10.633 6.188 15.304 19.413 15.304 7.925 0 15.092-1.425 23.025-4.612zm-11.963-44.15c0-1.608 2.475-13.033-10.4-13.283-7.108 0-12.208 4.725-14.27 13.283zm27.034-4.991c0 9.404 5.296 15.9 17.329 20.737 9.2 3.77 10.65 4.858 10.65 8.22 0 4.663-4.067 6.805-13.092 6.747-6.779-.05-12.962-.871-20.262-2.896l-3.23 17.154c6.488 1.504 15.588 2 23.65 2.188 24.026 0 35.117-7.867 35.117-24.867 0-10.217-4.625-16.233-16.033-20.713-9.538-3.808-10.658-4.637-10.658-8.083 0-4.05 3.779-6.1 11.15-6.1 4.462 0 10.579.413 16.379 1.108l3.258-17.241c-5.912-.825-14.883-1.484-20.075-1.484-25.45 0-34.258 11.459-34.183 25.23m-88.242 50.92h-18.662l.445-7.82c-5.691 6.17-13.27 9.041-23.558 9.041-12.175 0-20.517-8.325-20.517-20.296 0-18.195 14.5-28.691 39.43-28.691 2.562 0 5.82.191 9.166.562.692-2.433.88-3.479.88-4.808 0-4.98-3.921-6.813-14.413-6.813-10.342.042-17.321 1.571-23.796 3.313l3.187-16.7c11.196-2.846 18.53-3.942 26.825-3.942 19.305 0 29.5 7.567 29.5 21.796.167 3.796-1.158 11.413-1.82 14.746-.759 4.854-6.109 32.975-6.667 39.612zm-16.38-33.191c-2.366-.242-3.395-.313-5.012-.313-12.729 0-19.183 3.788-19.183 11.267 0 4.692 3.15 7.633 8.058 7.633 9.146 0 15.75-7.65 16.138-18.587zm194.11 32.012c-6.126 1.68-10.897 2.409-16.06 2.409-11.432 0-17.674-5.842-17.674-16.25-.358-2.859 2.433-16.059 3.067-19.738.633-3.692 10.537-57.492 10.537-57.492h22.213l-3.363 17.8h11.392l-3.096 18.171h-11.442s-6.279 31.53-6.279 33.934c0 3.825 2.317 5.487 7.633 5.487 2.546 0 4.509-.237 6.03-.692l-2.959 16.371m99.246-74.975c-16.28 0-29 6.7-36.387 17.892l6.412-16.596c-11.817-4.337-19.433 1.85-26.325 10.65 0 0-1.154 1.463-2.3 2.8v-13.05h-20.858c-2.825 23.03-7.821 46.38-11.73 69.446l-.941 5.02h22.437c2.125-11.708 3.875-21.212 5.617-28.787 4.767-20.787 12.788-27.141 24.83-24.333-2.78 5.98-4.305 12.892-4.305 20.554 0 18.58 10.092 33.788 35.15 33.788 25.288 0 43.596-13.509 43.596-44.309 0-18.579-12.2-33.075-35.196-33.075zm-6.53 59.317c-7.924.125-12.728-6.525-12.728-16.47 0-11.793 7.012-25.113 18.275-25.113 9.087 0 12.2 7.204 12.2 14.879 0 16.779-6.875 26.704-17.746 26.704zm-343.19 16.846h-22.343l13.28-69.954-30.571 69.954h-20.367l-3.725-69.55-13.32 69.55h-20.272l17.267-90.996h34.913l2.912 50.725 22.117-50.725h37.72l-17.612 90.996" fill="#000"/><path d="M613.15 274.385a5.8 5.8 0 0 1 5.796-5.795c3.204 0 5.796 2.6 5.796 5.795a5.796 5.796 0 1 1-11.592 0zm5.796 4.413a4.414 4.414 0 0 0 4.408-4.413 4.406 4.406 0 0 0-4.408-4.404 4.406 4.406 0 0 0-4.408 4.404 4.414 4.414 0 0 0 4.408 4.413zm-.783-1.867h-1.188v-5.083h2.15c.45 0 .908 0 1.304.25.409.28.646.767.646 1.27 0 .58-.337 1.117-.883 1.317l.933 2.246h-1.317l-.77-2.008h-.875zm0-2.887h.658c.242 0 .504.016.725-.096a.702.702 0 0 0 .296-.588.635.635 0 0 0-.284-.512c-.212-.13-.541-.096-.762-.096h-.633zm-240.109 4.354c-7.666 2.033-15.087 3.03-22.925 3.012-25.017-.025-38.046-11.42-38.046-33.208 0-25.45 16.58-44.18 39.096-44.18 18.421 0 30.175 10.497 30.175 26.943 0 5.466-.8 10.77-2.741 18.3h-44.488c-1.583 10.629 6.18 15.308 19.408 15.308 7.925 0 15.088-1.425 23.03-4.617zm-11.962-44.15c0-1.604 2.47-13.033-10.4-13.28-7.109 0-12.204 4.73-14.271 13.28h24.67zm27.037-4.996c0 9.408 5.288 15.9 17.325 20.746 9.204 3.767 10.65 4.858 10.65 8.212 0 4.667-4.066 6.809-13.087 6.75-6.784-.045-12.967-.87-20.263-2.895l-3.237 17.145c6.491 1.517 15.596 2.013 23.654 2.2 24.025 0 35.12-7.87 35.12-24.87 0-10.217-4.628-16.238-16.041-20.713-9.537-3.808-10.654-4.637-10.654-8.083 0-4.05 3.783-6.1 11.146-6.1 4.47 0 10.583.416 16.387 1.112l3.25-17.246c-5.912-.825-14.879-1.483-20.066-1.483-25.459 0-34.263 11.454-34.184 25.225m-88.242 50.93h-18.666l.45-7.822c-5.696 6.159-13.275 9.034-23.558 9.034-12.176 0-20.521-8.325-20.521-20.288 0-18.204 14.495-28.696 39.429-28.696 2.562 0 5.816.192 9.17.563.692-2.433.876-3.475.876-4.808 0-4.984-3.917-6.813-14.409-6.813-10.341.042-17.32 1.575-23.796 3.313l3.184-16.696c11.2-2.85 18.529-3.946 26.829-3.946 19.304 0 29.496 7.567 29.496 21.792.167 3.8-1.159 11.412-1.817 14.754-.762 4.85-6.112 32.97-6.666 39.612zM288.5 246.984c-2.358-.245-3.392-.312-5.012-.312-12.721 0-19.18 3.787-19.18 11.267 0 4.695 3.154 7.633 8.055 7.633 9.154 0 15.758-7.654 16.137-18.588zm194.108 32.017c-6.12 1.675-10.895 2.408-16.054 2.408-11.433 0-17.67-5.845-17.67-16.254-.363-2.854 2.433-16.058 3.062-19.737.633-3.692 10.537-57.492 10.537-57.492h22.209l-3.354 17.8h11.391l-3.096 18.17h-11.441s-6.284 31.53-6.284 33.934c0 3.825 2.321 5.48 7.634 5.48 2.541 0 4.508-.23 6.029-.692zm110.471-42.367c0 16.775-6.879 26.709-17.754 26.709-7.92.112-12.725-6.525-12.725-16.475 0-11.792 7.008-25.113 18.27-25.113 9.093 0 12.21 7.213 12.21 14.88zm23.98.467c0-18.58-12.209-33.08-35.196-33.08-26.45 0-43.55 17.626-43.55 43.597 0 18.579 10.083 33.791 35.15 33.791 25.287 0 43.595-13.512 43.595-44.308zM502.395 205.72c-2.821 23.029-7.817 46.375-11.721 69.45l-.946 5.02h22.434c8.087-44.558 10.8-57.254 27.741-52.783l8.15-21.087c-11.816-4.338-19.425 1.854-26.308 10.658.62-3.962 1.792-7.783 1.508-11.258zm-270.259 74.47H209.8l13.275-69.958L192.5 280.19h-20.363l-3.725-69.555-13.32 69.555H134.82l17.262-91h34.921l1.846 56.333 24.575-56.333h36.325z" fill="#fff"/></g></svg>
|
assets/img/cards/mastercard.svg
ADDED
@@ -0,0 +1 @@
|
|
Â
|
1 |
+
<svg height="471" width="750" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><rect fill="#f4f4f4" height="471" rx="40" width="750"/><path d="M618.579 422.143c-1.213.03-2.213.432-2.998 1.207-.785.776-1.192 1.746-1.22 2.911.028 1.157.435 2.125 1.22 2.904.785.78 1.785 1.184 2.998 1.215 1.185-.03 2.171-.436 2.96-1.215.787-.78 1.196-1.747 1.226-2.904-.03-1.165-.437-2.135-1.223-2.91-.786-.776-1.774-1.179-2.963-1.208zm0 7.329c-.925-.023-1.687-.336-2.287-.94-.6-.602-.91-1.36-.932-2.27.021-.916.332-1.672.932-2.27.6-.599 1.362-.909 2.287-.93.904.021 1.655.331 2.25.93.596.598.905 1.354.927 2.27-.022.91-.33 1.668-.926 2.27-.596.604-1.347.917-2.251.94zm.242-5.139h-1.766v3.826h.817v-1.433h.374l1.16 1.433h.978l-1.25-1.443c.39-.05.69-.176.901-.38.21-.204.317-.465.32-.781-.004-.378-.137-.675-.4-.891-.264-.216-.642-.326-1.134-.33zm-.01.717c.219 0 .39.043.515.127a.434.434 0 0 1 .19.378.446.446 0 0 1-.19.386c-.124.086-.296.129-.515.129h-.939v-1.02zm-458.605 2.703h-8.755V386.87h8.584v4.982s7.539-6.089 12.017-6.013c8.706.148 13.905 7.559 13.905 7.559s4.217-7.559 13.733-7.559c14.073 0 16.137 12.884 16.137 12.884v28.857h-8.412v-25.422s.03-7.73-9.098-7.73c-9.44 0-10.3 7.73-10.3 7.73v25.423h-8.755v-25.595s-.841-8.073-8.756-8.073c-10.278 0-10.471 8.245-10.471 8.245zm266.254-41.92c-4.478-.075-12.016 6.013-12.016 6.013v-4.971h-8.593v40.874h8.76l-.167-25.593s.193-8.228 10.472-8.228c1.909 0 3.391.463 4.565 1.175v-.033l2.853-7.96c-1.722-.725-3.68-1.239-5.874-1.276zm123.33 0c-4.477-.075-12.015 6.013-12.015 6.013v-4.971h-8.593v40.874h8.76l-.167-25.593s.193-8.228 10.472-8.228c1.909 0 3.391.463 4.565 1.175v-.033l2.853-7.96c-1.722-.725-3.68-1.239-5.874-1.276zm-305.653-.167c-13.103 0-20.037 11.784-20.072 21.629-.036 10.091 7.894 21.73 20.44 21.73 7.32 0 13.334-5.407 13.334-5.407l-.016 4.164h8.618V386.86h-8.648v5.155s-5.647-6.348-13.656-6.348zm1.678 8.33c7.04 0 12.754 6.126 12.754 13.668 0 7.543-5.715 13.636-12.754 13.636-7.04 0-12.721-6.093-12.721-13.636 0-7.542 5.681-13.669 12.72-13.669zm249.646-8.33c-13.103 0-20.037 11.784-20.072 21.629-.036 10.091 7.894 21.73 20.44 21.73 7.32 0 13.334-5.407 13.334-5.407l-.016 4.164h8.618V386.86h-8.648v5.155s-5.647-6.348-13.656-6.348zm1.678 8.33c7.04 0 12.754 6.126 12.754 13.668 0 7.543-5.715 13.636-12.754 13.636-7.04 0-12.721-6.093-12.721-13.636 0-7.542 5.681-13.669 12.72-13.669zm81.066-8.33c-13.102 0-20.036 11.784-20.071 21.629-.036 10.091 7.893 21.73 20.44 21.73 7.32 0 13.334-5.407 13.334-5.407l-.016 4.164h8.618v-57.078h-8.648v21.31s-5.648-6.348-13.657-6.348zm1.678 8.33c7.04 0 12.755 6.126 12.755 13.668 0 7.543-5.715 13.636-12.755 13.636s-12.72-6.093-12.72-13.636c0-7.542 5.68-13.669 12.72-13.669zm-287.148 35.13c-8.926 0-17.167-5.497-17.167-5.497l3.777-5.84s7.797 3.607 13.39 3.607c3.634 0 9.712-1.174 9.785-4.81.078-3.842-10.214-4.981-10.214-4.981s-15.364-.21-15.364-12.883c0-7.97 7.673-13.055 17.51-13.055 5.684 0 16.308 4.981 16.308 4.981l-4.291 6.7s-8.204-3.28-12.532-3.436c-3.655-.132-8.069 1.62-8.069 4.81 0 8.668 25.58-.676 25.58 16.834 0 11.487-10.418 13.57-18.713 13.57zm32.93-54.108v11.892h-7.619v8.597h7.62v20.555s-.675 13.904 14.264 13.904c4.13 0 12.218-3.056 12.218-3.056l-3.457-8.934s-3.217 2.745-6.848 2.653c-6.904-.174-6.713-4.6-6.713-4.6v-20.524h14.233v-8.595h-14.232v-11.891h-9.465zm51.858 11.15c-14.05 0-21.07 11.58-21.012 21.63.06 10.335 6.392 21.965 21.85 21.965 6.617 0 15.91-5.81 15.91-5.81L390.277 417s-6.341 4.5-11.915 4.5c-11.16 0-11.882-10.915-11.882-10.915h29.872s2.229-24.416-18.83-24.416zm-1.276 8.028c.331-.02.687 0 1.04 0 10.514 0 10.44 9.94 10.44 9.94H366.48s-.503-9.356 9.767-9.94zm90.132 22.699l4.006 8.017s-6.349 4.13-13.474 4.13c-14.751 0-22.943-11.11-22.943-21.621 0-16.52 13.036-21.378 21.85-21.378 8.001 0 14.931 4.616 14.931 4.616l-4.491 8.016s-2.723-4.25-10.682-4.25c-7.946 0-12.14 6.854-12.14 13.36 0 7.291 4.881 13.483 12.261 13.483 5.79 0 10.682-4.373 10.682-4.373z" fill="#000"/><path d="M624.508 278.631v-5.52h-1.44l-1.658 3.796-1.657-3.796h-1.44v5.52h1.017v-4.164l1.553 3.59h1.055l1.553-3.6v4.174zm-9.123 0v-4.578h1.845v-.933h-4.698v.933h1.845v4.578zm9.412-82.071c0 85.425-69.077 154.676-154.288 154.676-85.21 0-154.288-69.25-154.288-154.676S385.298 41.883 470.51 41.883c85.21 0 154.288 69.251 154.288 154.677z" fill="#f79f1a"/><path d="M434.46 196.56c0 85.425-69.078 154.676-154.288 154.676-85.212 0-154.288-69.25-154.288-154.676S194.96 41.883 280.172 41.883c85.21 0 154.287 69.251 154.287 154.677z" fill="#ea001b"/><path d="M375.34 74.797c-35.999 28.317-59.107 72.318-59.107 121.748s23.108 93.466 59.108 121.782c35.999-28.316 59.107-72.352 59.107-121.782s-23.108-93.431-59.107-121.748z" fill="#ff5f01"/></g></svg>
|
assets/img/cards/visa.svg
ADDED
@@ -0,0 +1 @@
|
|
Â
|
1 |
+
<svg height="471" width="750" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><rect fill="#0e4595" height="471" rx="40" width="750"/><path d="M278.197 334.228l33.361-195.763h53.36l-33.385 195.763zm246.11-191.54c-10.572-3.966-27.136-8.222-47.822-8.222-52.725 0-89.865 26.55-90.18 64.603-.298 28.13 26.513 43.822 46.753 53.186 20.77 9.594 27.752 15.714 27.654 24.283-.132 13.121-16.587 19.116-31.923 19.116-21.357 0-32.703-2.966-50.226-10.276l-6.876-3.111-7.49 43.824c12.464 5.464 35.51 10.198 59.438 10.443 56.09 0 92.501-26.246 92.916-66.882.2-22.268-14.016-39.216-44.8-53.188-18.65-9.055-30.072-15.099-29.951-24.268 0-8.137 9.667-16.839 30.556-16.839 17.45-.27 30.089 3.535 39.937 7.5l4.781 2.26 7.234-42.43m137.307-4.222h-41.231c-12.774 0-22.332 3.487-27.942 16.234l-79.245 179.404h56.032s9.161-24.123 11.233-29.418c6.124 0 60.554.084 68.337.084 1.596 6.853 6.491 29.334 6.491 29.334h49.513zm-65.418 126.407c4.413-11.279 21.26-54.723 21.26-54.723-.316.522 4.38-11.334 7.075-18.684l3.606 16.879s10.217 46.728 12.352 56.528zM232.904 138.466l-52.24 133.496-5.567-27.13c-9.725-31.273-40.025-65.155-73.898-82.118l47.766 171.203 56.456-.065 84.004-195.386z" fill="#fff"/><path d="M131.92 138.465H45.879l-.681 4.073c66.938 16.204 111.231 55.363 129.618 102.414l-18.71-89.96c-3.23-12.395-12.597-16.094-24.186-16.526" fill="#f2ae14"/></g></svg>
|
assets/img/chrome.svg
ADDED
@@ -0,0 +1,105 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="1 1 176 176">
|
3 |
+
<defs>
|
4 |
+
<circle id="a" cy="96" cx="96" r="88"/>
|
5 |
+
</defs>
|
6 |
+
<clipPath id="b">
|
7 |
+
<use width="100%" overflow="visible" xlink:href="#a" height="100%"/>
|
8 |
+
</clipPath>
|
9 |
+
<g transform="translate(-7 -7)" clip-path="url(#b)">
|
10 |
+
<path d="m21.97 8v108h39.39l34.64-60h88v-48z" fill="#db4437"/>
|
11 |
+
<linearGradient id="c" y2="44.354" gradientUnits="userSpaceOnUse" y1="75.021" x2="81.837" x1="29.337">
|
12 |
+
<stop stop-color="#A52714" stop-opacity=".6" offset="0"/>
|
13 |
+
<stop stop-color="#A52714" stop-opacity="0" offset=".66"/>
|
14 |
+
</linearGradient>
|
15 |
+
<path d="m21.97 8v108h39.39l34.64-60h88v-48z" fill="url(#c)"/>
|
16 |
+
</g>
|
17 |
+
<path clip-path="url(#b)" fill-opacity=".15" d="m62.31 115.65l-39.83-68.31-0.58 1 39.54 67.8z" transform="translate(-7 -7)" fill="#3e2723"/>
|
18 |
+
<g transform="translate(-7 -7)" clip-path="url(#b)">
|
19 |
+
<path d="m8 184h83.77l38.88-38.88v-29.12h-69.29l-53.36-91.52z" fill="#0f9d58"/>
|
20 |
+
<linearGradient id="d" y2="130.33" gradientUnits="userSpaceOnUse" y1="164.5" x2="52.538" x1="110.87">
|
21 |
+
<stop stop-color="#055524" stop-opacity=".4" offset="0"/>
|
22 |
+
<stop stop-color="#055524" stop-opacity="0" offset=".33"/>
|
23 |
+
</linearGradient>
|
24 |
+
<path d="m8 184h83.77l38.88-38.88v-29.12h-69.29l-53.36-91.52z" fill="url(#d)"/>
|
25 |
+
</g>
|
26 |
+
<path clip-path="url(#b)" fill-opacity=".15" d="m129.84 117.33l-0.83-0.48-38.39 67.15h1.15l38.1-66.64z" transform="translate(-7 -7)" fill="#263238"/>
|
27 |
+
<g transform="translate(-7 -7)" clip-path="url(#b)">
|
28 |
+
<defs>
|
29 |
+
<path id="e" d="m8 184h83.77l38.88-38.88v-29.12h-69.29l-53.36-91.52z"/>
|
30 |
+
</defs>
|
31 |
+
<clipPath id="f">
|
32 |
+
<use width="100%" overflow="visible" xlink:href="#e" height="100%"/>
|
33 |
+
</clipPath>
|
34 |
+
<g clip-path="url(#f)">
|
35 |
+
<path d="m96 56l34.65 60-38.88 68h92.23v-128z" fill="#ffcd40"/>
|
36 |
+
<linearGradient id="g" y2="114.13" gradientUnits="userSpaceOnUse" y1="49.804" x2="136.55" x1="121.86">
|
37 |
+
<stop stop-color="#EA6100" stop-opacity=".3" offset="0"/>
|
38 |
+
<stop stop-color="#EA6100" stop-opacity="0" offset=".66"/>
|
39 |
+
</linearGradient>
|
40 |
+
<path d="m96 56l34.65 60-38.88 68h92.23v-128z" fill="url(#g)"/>
|
41 |
+
</g>
|
42 |
+
</g>
|
43 |
+
<g transform="translate(-7 -7)" clip-path="url(#b)">
|
44 |
+
<path d="m96 56l34.65 60-38.88 68h92.23v-128z" fill="#ffcd40"/>
|
45 |
+
<path d="m96 56l34.65 60-38.88 68h92.23v-128z" fill="url(#g)"/>
|
46 |
+
</g>
|
47 |
+
<g transform="translate(-7 -7)" clip-path="url(#b)">
|
48 |
+
<defs>
|
49 |
+
<path id="i" d="m96 56l34.65 60-38.88 68h92.23v-128z"/>
|
50 |
+
</defs>
|
51 |
+
<clipPath id="j">
|
52 |
+
<use width="100%" overflow="visible" xlink:href="#i" height="100%"/>
|
53 |
+
</clipPath>
|
54 |
+
<g clip-path="url(#j)">
|
55 |
+
<path d="m21.97 8v108h39.39l34.64-60h88v-48z" fill="#db4437"/>
|
56 |
+
<path d="m21.97 8v108h39.39l34.64-60h88v-48z" fill="url(#c)"/>
|
57 |
+
</g>
|
58 |
+
</g>
|
59 |
+
<radialGradient id="l" gradientUnits="userSpaceOnUse" cy="55.948" cx="668.18" gradientTransform="translate(-576)" r="84.078">
|
60 |
+
<stop stop-color="#3E2723" stop-opacity=".2" offset="0"/>
|
61 |
+
<stop stop-color="#3E2723" stop-opacity="0" offset="1"/>
|
62 |
+
</radialGradient>
|
63 |
+
<path clip-path="url(#b)" d="m96 56v20.95l78.4-20.95z" transform="translate(-7 -7)" fill="url(#l)"/>
|
64 |
+
<g transform="translate(-7 -7)" clip-path="url(#b)">
|
65 |
+
<defs>
|
66 |
+
<path id="m" d="m21.97 8v40.34l39.39 67.66 34.64-60h88v-48z"/>
|
67 |
+
</defs>
|
68 |
+
<clipPath id="n">
|
69 |
+
<use width="100%" overflow="visible" xlink:href="#m" height="100%"/>
|
70 |
+
</clipPath>
|
71 |
+
<g clip-path="url(#n)">
|
72 |
+
<path d="m8 184h83.77l38.88-38.88v-29.12h-69.29l-53.36-91.52z" fill="#0f9d58"/>
|
73 |
+
<path d="m8 184h83.77l38.88-38.88v-29.12h-69.29l-53.36-91.52z" fill="url(#d)"/>
|
74 |
+
</g>
|
75 |
+
</g>
|
76 |
+
<radialGradient id="p" gradientUnits="userSpaceOnUse" cy="48.52" cx="597.88" gradientTransform="translate(-576)" r="78.044">
|
77 |
+
<stop stop-color="#3E2723" stop-opacity=".2" offset="0"/>
|
78 |
+
<stop stop-color="#3E2723" stop-opacity="0" offset="1"/>
|
79 |
+
</radialGradient>
|
80 |
+
<path clip-path="url(#b)" d="m21.97 48.45l57.25 57.24-17.86 10.31z" transform="translate(-7 -7)" fill="url(#p)"/>
|
81 |
+
<radialGradient id="q" gradientUnits="userSpaceOnUse" cy="96.138" cx="671.84" gradientTransform="translate(-576)" r="87.87">
|
82 |
+
<stop stop-color="#263238" stop-opacity=".2" offset="0"/>
|
83 |
+
<stop stop-color="#263238" stop-opacity="0" offset="1"/>
|
84 |
+
</radialGradient>
|
85 |
+
<path clip-path="url(#b)" d="m91.83 183.89l20.96-78.2 17.86 10.31z" transform="translate(-7 -7)" fill="url(#q)"/>
|
86 |
+
<g transform="translate(-7 -7)" clip-path="url(#b)">
|
87 |
+
<circle cy="96" cx="96" r="40" fill="#f1f1f1"/>
|
88 |
+
<circle cy="96" cx="96" r="32" fill="#4285f4"/>
|
89 |
+
</g>
|
90 |
+
<g transform="translate(-7 -7)" clip-path="url(#b)">
|
91 |
+
<path fill-opacity=".2" d="m96 55c-22.09 0-40 17.91-40 40v1c0-22.09 17.91-40 40-40h88v-1h-88z" fill="#3e2723"/>
|
92 |
+
<path fill-opacity=".1" d="m130.6 116c-6.92 11.94-19.81 20-34.6 20-14.8 0-27.69-8.06-34.61-20h-0.04l-53.35-91.52v1l53.36 91.52h0.04c6.92 11.94 19.81 20 34.61 20 14.79 0 27.68-8.05 34.6-20h0.05v-1h-0.06z" fill="#fff"/>
|
93 |
+
<path opacity=".1" d="m97 56c-0.17 0-0.33 0.02-0.5 0.03 21.86 0.27 39.5 18.05 39.5 39.97s-17.64 39.7-39.5 39.97c0.17 0 0.33 0.03 0.5 0.03 22.09 0 40-17.91 40-40s-17.91-40-40-40z" fill="#3e2723"/>
|
94 |
+
<path fill-opacity=".2" d="m131 117.33c3.4-5.88 5.37-12.68 5.37-19.96 0-4.22-0.66-8.28-1.87-12.09 0.95 3.42 1.5 7.01 1.5 10.73 0 7.28-1.97 14.08-5.37 19.96l0.02 0.04-38.88 68h1.16l38.09-66.64-0.02-0.04z" fill="#fff"/>
|
95 |
+
</g>
|
96 |
+
<g transform="translate(-7 -7)" clip-path="url(#b)">
|
97 |
+
<path fill-opacity=".2" d="m96 9c48.43 0 87.72 39.13 87.99 87.5 0-0.17 0.01-0.33 0.01-0.5 0-48.6-39.4-88-88-88s-88 39.4-88 88c0 0.17 0.01 0.33 0.01 0.5 0.27-48.37 39.56-87.5 87.99-87.5z" fill="#fff"/>
|
98 |
+
<path fill-opacity=".15" d="m96 183c48.43 0 87.72-39.13 87.99-87.5 0 0.17 0.01 0.33 0.01 0.5 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-0.17 0.01-0.33 0.01-0.5 0.27 48.37 39.56 87.5 87.99 87.5z" fill="#3e2723"/>
|
99 |
+
</g>
|
100 |
+
<radialGradient id="r" gradientUnits="userSpaceOnUse" cy="32.014" cx="34.286" gradientTransform="translate(-7 -7)" r="176.75">
|
101 |
+
<stop stop-color="#fff" stop-opacity=".1" offset="0"/>
|
102 |
+
<stop stop-color="#fff" stop-opacity="0" offset="1"/>
|
103 |
+
</radialGradient>
|
104 |
+
<circle cy="89" cx="89" r="88" fill="url(#r)"/>
|
105 |
+
</svg>
|
assets/img/edge.svg
ADDED
@@ -0,0 +1 @@
|
|
Â
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" viewBox="0 0 60 64" xmlns="http://www.w3.org/2000/svg"><path d="m18.87 38c0 1.54 0.23 2.94 0.7 4.2 0.5 1.24 1.15 2.35 1.98 3.32s1.8 1.8 2.94 2.5c1.1 0.7 2.3 1.28 3.58 1.73 1.27 0.46 2.6 0.8 3.95 1.02 1.37 0.22 2.7 0.33 4.05 0.33 1.7 0 3.28-0.13 4.78-0.4 1.5-0.28 2.96-0.65 4.4-1.12s2.83-1.03 4.22-1.67c1.4-0.64 2.82-1.34 4.28-2.12v13.56c-1.63 0.8-3.23 1.47-4.83 2.05-1.6 0.56-3.2 1.05-4.83 1.44-1.63 0.4-3.28 0.7-4.97 0.88s-3.42 0.28-5.22 0.28c-2.4 0-4.72-0.28-6.95-0.83s-4.32-1.34-6.28-2.38-3.75-2.3-5.38-3.78c-1.64-1.48-3.03-3.15-4.2-5s-2.07-3.88-2.72-6.06c-0.63-2.18-0.95-4.5-0.95-6.96 0-2.63 0.36-5.13 1.08-7.52 0.73-2.4 1.76-4.58 3.12-6.58 1.35-2 3-3.78 4.95-5.33s4.14-2.82 6.58-3.8c-1.33 1.33-2.37 2.9-3.1 4.73-0.75 1.82-1.22 3.65-1.43 5.48h22.78c0-2.3-0.23-4.3-0.7-6.02s-1.22-3.15-2.27-4.28c-1.04-1.14-2.38-2-4.03-2.56-1.65-0.57-3.64-0.86-5.97-0.86-2.75 0-5.5 0.4-8.25 1.23-2.75 0.8-5.36 1.95-7.84 3.4-2.48 1.47-4.76 3.2-6.84 5.18-2.08 2-3.83 4.15-5.25 6.48 0.3-2.7 0.9-5.3 1.73-7.77s1.93-4.77 3.25-6.9c1.32-2.1 2.87-4.02 4.64-5.74s3.73-3.2 5.9-4.4 4.47-2.17 6.97-2.82c2.5-0.57 5.16-0.91 7.96-0.91 1.64 0 3.27 0.15 4.9 0.44 1.63 0.3 3.22 0.7 4.77 1.22 3.08 1.06 5.83 2.54 8.25 4.42 2.42 1.9 4.45 4.06 6.1 6.53s2.9 5.2 3.76 8.17 1.3 6.06 1.3 9.27v7.95h-40.91z" fill="#0078D7"/></svg>
|
assets/img/eps.svg
ADDED
@@ -0,0 +1,86 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4 |
+
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="300px"
|
5 |
+
height="200px" viewBox="0 0 300 200" enable-background="new 0 0 300 200" xml:space="preserve">
|
6 |
+
<g id="Ebene_1">
|
7 |
+
</g>
|
8 |
+
<g id="E">
|
9 |
+
</g>
|
10 |
+
<g id="EPS-Logo">
|
11 |
+
</g>
|
12 |
+
<g id="EPS-Logo_1_">
|
13 |
+
</g>
|
14 |
+
<g id="E_1_">
|
15 |
+
<path fill="#71706F" d="M226.672,106.451L226.672,106.451H205.16c-2.392,0-4.338-1.906-4.338-4.292
|
16 |
+
c0-2.387,1.946-4.488,4.338-4.488h32.75V81.516h-32.75c-11.43,0-20.73,9.318-20.73,20.721c0,11.401,9.301,20.72,20.73,20.72h21.22
|
17 |
+
c2.393,0,4.34,1.898,4.34,4.284c0,2.388-1.947,4.145-4.34,4.145h-45.502c-3.862,7.375-7.619,13.697-15.244,16.857h61.038l0,0
|
18 |
+
c11.238-0.162,20.432-9.672,20.432-20.974C247.104,115.969,237.91,106.613,226.672,106.451z"/>
|
19 |
+
<g>
|
20 |
+
<g>
|
21 |
+
<path fill="none" stroke="#706F6F" stroke-width="4.5655" stroke-miterlimit="10" d="M119.351,184.972"/>
|
22 |
+
</g>
|
23 |
+
</g>
|
24 |
+
<path fill="#71706F" d="M144.21,81.516c-18.232,0-33.082,14.938-33.082,33.293c0,0.217,0,0.702,0,0.702v68.553h16.506v-35.821
|
25 |
+
h16.541c18.232,0,33.029-15.137,33.029-33.493C177.205,96.396,162.442,81.516,144.21,81.516z M144.21,131.386h-16.575V114.75
|
26 |
+
c0-9.295,7.4-16.857,16.575-16.857c9.175,0,16.639,7.563,16.639,16.857C160.85,124.047,153.386,131.386,144.21,131.386z"/>
|
27 |
+
<g>
|
28 |
+
<g>
|
29 |
+
<path fill="#C8036F" d="M58.872,148.243c-15.607,0-28.729-11.121-32.279-25.649c0,0-1.026-4.805-1.026-7.968
|
30 |
+
s0.972-8.017,0.972-8.017c3.576-14.493,16.681-25.285,32.262-25.285c18.326,0,33.363,14.897,33.363,33.223v8.06H43.477
|
31 |
+
c2.875,5.618,8.689,8.779,15.396,8.779h43.769l0.06-47.523c0-7.085-5.797-12.882-12.882-12.882H27.784
|
32 |
+
c-7.085,0-12.883,5.622-12.883,12.707v62.035c0,7.085,5.797,13.058,12.883,13.058h62.034c6.359,0,11.663-4.565,12.688-10.536
|
33 |
+
H58.872z"/>
|
34 |
+
<path fill="#C8036F" d="M58.801,97.094c-6.679,0-12.489,4.09-15.375,9.357h30.752C71.291,101.184,65.481,97.094,58.801,97.094z"
|
35 |
+
/>
|
36 |
+
</g>
|
37 |
+
<path fill="#C8036F" d="M86.896,50.807c0-15.141-12.583-27.414-28.104-27.414c-15.264,0-27.679,11.873-28.086,26.666
|
38 |
+
c-0.007,0.063-0.001,0.123-0.001,0.188v8.239c0,0.985,0.802,1.959,1.813,1.959h10.339c1.01,0,1.896-0.974,1.896-1.959v-7.678l0,0
|
39 |
+
c0-7.561,6.297-13.711,14.048-13.711c7.75,0,14.048,6.15,14.048,13.711v7.678c0,0.985,0.819,1.959,1.83,1.959h10.34
|
40 |
+
c1.01,0,1.878-0.974,1.878-1.959V50.807L86.896,50.807z"/>
|
41 |
+
</g>
|
42 |
+
<g>
|
43 |
+
<path fill="#71706F" d="M162.729,169.666l-1.494,8.464c-0.747,4.277-3.55,6.236-7.349,6.236c-3.219,0-5.709-2.098-4.983-6.23
|
44 |
+
l1.495-8.47h2.306l-1.496,8.464c-0.456,2.637,0.728,4.14,2.969,4.14c2.305,0,4.276-1.371,4.755-4.134l1.494-8.47H162.729z
|
45 |
+
M153.678,167.017c0,0.705,0.54,1.038,1.121,1.038c0.727,0,1.517-0.52,1.517-1.495c0-0.685-0.458-1.037-1.06-1.037
|
46 |
+
C154.509,165.522,153.678,165.999,153.678,167.017z M158.661,166.996c0,0.726,0.56,1.059,1.162,1.059
|
47 |
+
c0.644,0,1.494-0.52,1.494-1.474c0-0.686-0.498-1.059-1.059-1.059C159.512,165.522,158.661,165.999,158.661,166.996z"/>
|
48 |
+
<path fill="#71706F" d="M168.299,169.666l-1.037,5.848c0.893-1.203,2.677-1.84,3.923-1.84c2.574,0,4.359,1.509,4.359,4.311
|
49 |
+
c0,3.966-2.762,6.35-6.29,6.35c-1.37,0-2.533-0.509-3.238-1.795l-0.395,1.525h-2.015l2.554-14.398H168.299z M166.68,179.534
|
50 |
+
c-0.082,1.704,1.017,2.804,2.615,2.804c2.014,0,3.965-1.558,4.09-3.924c0.083-1.724-1.037-2.74-2.594-2.74
|
51 |
+
C168.797,175.674,166.804,177.272,166.68,179.534z"/>
|
52 |
+
<path fill="#71706F" d="M179.742,179.85c-0.083,1.406,1.017,2.553,2.887,2.553c1.037,0,2.406-0.405,3.154-1.111l1.163,1.344
|
53 |
+
c-1.267,1.162-3.135,1.74-4.712,1.74c-2.948,0-4.672-1.766-4.672-4.465c0-3.592,2.823-6.269,6.436-6.269
|
54 |
+
c3.302,0,5.17,1.994,4.049,6.208H179.742z M186.302,178.096c0.166-1.757-0.87-2.471-2.594-2.471c-1.557,0-2.99,0.714-3.612,2.471
|
55 |
+
H186.302z"/>
|
56 |
+
<path fill="#71706F" d="M193.76,173.881l-0.104,1.354c0.997-1.31,2.2-1.577,3.301-1.577c0.997,0,1.89,0.354,2.367,0.873
|
57 |
+
l-1.288,1.868c-0.455-0.413-0.913-0.621-1.701-0.621c-1.475,0-2.928,0.884-3.26,2.774l-0.976,5.513h-2.139l1.806-10.184H193.76z"
|
58 |
+
/>
|
59 |
+
<path fill="#71706F" d="M209.623,173.881l1.079,8.054l3.903-8.054h2.387l-5.354,10.184h-2.513l-1.018-6.719l-1.64,3.339
|
60 |
+
l-1.785,3.38h-2.491l-1.807-10.184h2.408l1.06,8.054l3.923-8.054H209.623z"/>
|
61 |
+
<path fill="#71706F" d="M219.739,179.85c-0.083,1.406,1.018,2.553,2.886,2.553c1.038,0,2.408-0.405,3.154-1.111l1.163,1.344
|
62 |
+
c-1.266,1.162-3.135,1.74-4.712,1.74c-2.948,0-4.671-1.766-4.671-4.465c0-3.592,2.823-6.269,6.436-6.269
|
63 |
+
c3.301,0,5.17,1.994,4.049,6.208H219.739z M226.3,178.096c0.165-1.757-0.872-2.471-2.596-2.471c-1.557,0-2.989,0.714-3.612,2.471
|
64 |
+
H226.3z"/>
|
65 |
+
<path fill="#71706F" d="M233.901,173.881l-1.806,10.184h-2.138l1.806-10.184H233.901z M232.013,171.106
|
66 |
+
c0,0.726,0.54,1.101,1.121,1.101c0.831,0,1.599-0.541,1.599-1.558c0-0.686-0.52-1.08-1.08-1.08
|
67 |
+
C232.886,169.569,232.013,170.068,232.013,171.106z"/>
|
68 |
+
<path fill="#71706F" d="M243.391,176.399c-0.664-0.747-1.515-0.955-2.532-0.955c-1.412,0-2.408,0.478-2.408,1.371
|
69 |
+
c0,0.747,0.81,1.059,2.014,1.162c1.868,0.166,4.256,0.789,3.758,3.426c-0.354,1.91-2.263,3.031-4.921,3.031
|
70 |
+
c-1.66,0-3.259-0.373-4.339-1.89l1.391-1.515c0.769,1.058,2.118,1.495,3.322,1.515c1.017,0,2.222-0.374,2.409-1.328
|
71 |
+
c0.187-0.913-0.623-1.267-2.119-1.412c-1.744-0.166-3.652-0.809-3.652-2.739c0-2.555,2.76-3.447,4.837-3.447
|
72 |
+
c1.577,0,2.739,0.353,3.694,1.371L243.391,176.399z"/>
|
73 |
+
<path fill="#71706F" d="M250.141,173.881l-0.975,5.484c-0.313,1.744,0.477,2.95,2.262,2.95c1.682,0,3.114-1.394,3.404-3.097
|
74 |
+
l0.935-5.338h2.139l-1.806,10.184h-1.931l0.145-1.476c-1.204,1.142-2.388,1.681-3.819,1.681c-2.513,0-4.007-1.801-3.468-4.895
|
75 |
+
l0.976-5.494H250.141z"/>
|
76 |
+
<path fill="#71706F" d="M267.294,184.064l0.976-5.451c0.311-1.765-0.29-2.934-2.242-2.934c-1.702,0-3.136,1.369-3.426,3.051
|
77 |
+
l-0.935,5.334h-2.138l1.807-10.184h1.951l-0.146,1.487c1.185-1.1,2.408-1.642,3.737-1.642c2.491,0,4.111,1.732,3.551,4.868
|
78 |
+
l-0.976,5.47H267.294z"/>
|
79 |
+
<path fill="#71706F" d="M274.541,185.47c-0.145,1.405,0.934,1.974,2.741,1.974c1.578,0,3.281-0.882,3.676-3.124l0.311-1.748
|
80 |
+
c-0.936,1.308-2.637,1.824-3.902,1.824c-2.617,0-4.443-1.558-4.443-4.383c0-4.025,2.989-6.353,6.373-6.353
|
81 |
+
c1.433,0,2.72,0.68,3.177,1.843l0.353-1.622h2.076l-1.786,10.487c-0.663,3.883-3.55,5.087-6.186,5.087
|
82 |
+
c-3.156,0-4.899-1.526-4.465-3.985H274.541z M275.144,179.599c0,1.742,1.143,2.802,2.783,2.802c4.421,0,5.604-6.789,1.182-6.789
|
83 |
+
C277.011,175.611,275.144,177.168,275.144,179.599z"/>
|
84 |
+
</g>
|
85 |
+
</g>
|
86 |
+
</svg>
|
assets/img/giropay.svg
ADDED
@@ -0,0 +1 @@
|
|
Â
|
1 |
+
<svg id="svg2226" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 885.8 380.9" width="2500" height="1075"><style>.st0{fill:#000268}.st1{fill:#fff}.st2{fill:#ff0007}</style><g id="layer1"><path id="_92653320" class="st0" d="M0 68.3C0 30.6 30.8 0 68.7 0h748.5c37.9 0 68.7 30.6 68.7 68.3v244.2c0 37.7-30.7 68.3-68.7 68.3H68.7C30.8 380.9 0 350.3 0 312.6V68.3z"/><path id="_92186184" class="st1" d="M28.2 70.7v239.6c0 23.6 19.2 42.7 42.9 42.7h392.1V28H71.1c-23.7 0-42.9 19.1-42.9 42.7zm536.4 118.6c0 15.3-7.5 25.7-20 25.7-11 0-20.2-10.5-20.2-24.5 0-14.3 8.1-25 20.2-25 12.8.1 20 11.1 20 23.8zm-73.4 87.5h33.1v-52h.4c6.3 11.4 18.8 15.6 30.3 15.6 28.5 0 43.7-23.5 43.7-51.8 0-23.2-14.5-48.3-41-48.3-15.1 0-29 6.1-35.7 19.5h-.4v-17.3h-30.5v134.3zm152.7-69c0-9.2 8.8-12.7 20-12.7 5 0 9.7.3 14 .5 0 11.2-7.9 22.6-20.4 22.6-7.7.1-13.6-3.7-13.6-10.4zm66.8 30.4c-1.5-7.5-1.8-15.1-1.8-22.6v-35.7c0-29.2-21.1-39.7-45.6-39.7-14.1 0-26.5 2-38.2 6.8l.6 22.4c9.2-5.2 19.8-7.2 30.5-7.2 11.9 0 21.7 3.5 21.9 16.6-4.2-.7-10.1-1.3-15.4-1.3-17.6 0-49.4 3.5-49.4 32.7 0 20.8 16.9 30.1 35.8 30.1 13.6 0 22.8-5.3 30.3-17.3h.4c0 5 .5 9.9.7 15.1h30.2zm14.8 38.6c6.8 1.5 13.6 2.2 20.6 2.2 30.3 0 37.5-23.4 46.9-47.4l35.1-89.1H795L775.3 205h-.3l-20.6-62.5h-35.6l38.8 98c-2.4 8.5-8.6 13.2-16.7 13.2-4.6 0-8.6-.6-13.1-2l-2.3 25.1z"/><path id="_47303032" class="st2" d="M109 189.5c0-13.1 6.4-23.9 18.8-23.9 14.9 0 21.1 11.9 21.1 22.6 0 14.7-9.4 24.6-21.1 24.6-10 0-18.8-8.4-18.8-23.3zm71.9-47.1h-30v17.3h-.3c-7-11.8-18.4-19.5-32.5-19.5-29.8 0-43.2 21.3-43.2 49.8 0 28.3 16.4 48.2 42.6 48.2 13.3 0 24.3-5.2 32.2-16.4h.4v5.2c0 18.7-10.3 27.7-29.4 27.7-13.8 0-22.3-2.9-32.4-7.9l-1.7 26.1c7.7 2.8 20.8 6.1 36.6 6.1 38.6 0 57.7-12.7 57.7-52v-84.6zm55.9-39.9h-33.1v24.3h33.1v-24.3zm-33.1 135.7h33.1v-95.8h-33.1v95.8zm125.2-96.9c-3.3-.5-7.4-1.1-11.2-1.1-14.3 0-22.6 7.7-28.3 19.9h-.4v-17.6h-30.1v95.8H292v-40.4c0-18.8 8.7-30 24.1-30 3.9 0 7.5 0 11.2 1.1l1.6-27.7zm57 75.9c-15.3 0-21.5-12.7-21.5-26.8 0-14.3 6.2-27 21.5-27s21.5 12.7 21.5 27c0 14.1-6.3 26.8-21.5 26.8zm0 23.2c31.6 0 55.7-18.4 55.7-50 0-31.8-24.1-50.2-55.7-50.2s-55.7 18.4-55.7 50.2c0 31.6 24 50 55.7 50z"/></g></svg>
|
assets/img/googlepay_outline.svg
ADDED
@@ -0,0 +1,27 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<svg width="425px" height="272px" viewBox="0 0 425 272" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
3 |
+
<!-- Generator: Sketch 52.1 (67048) - http://www.bohemiancoding.com/sketch -->
|
4 |
+
<title>GooglePay_mark_800_gray</title>
|
5 |
+
<desc>Created with Sketch.</desc>
|
6 |
+
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
7 |
+
<g id="GooglePay_mark_800_gray">
|
8 |
+
<g id="border">
|
9 |
+
<path d="M386.731012,0.0897642745 L38.039747,0.0897642745 C36.587241,0.0897642745 35.1321687,0.0897642745 33.6822289,0.0974583552 C32.4581205,0.107717129 31.2365783,0.120540597 30.0124699,0.153881613 C27.3461205,0.225693033 24.6566747,0.38213934 22.0236867,0.856607648 C19.3496386,1.33620534 16.8603614,2.12100157 14.4326747,3.35718387 C12.0434819,4.57028392 9.85959036,6.15782923 7.96312048,8.05057307 C6.06921687,9.94588161 4.4806988,12.1258711 3.26685542,14.5161655 C2.02991566,16.9423656 1.24463855,19.4301184 0.767313253,22.1050938 C0.289987952,24.739034 0.133445783,27.4242682 0.0615903614,30.0864201 C0.0282289157,31.3097789 0.0128313253,32.5305731 0.00513253012,33.7513672 C-0.00256626506,35.2029838 1.08420217e-19,36.6546003 1.08420217e-19,38.1087816 L1.08420217e-19,233.841064 C1.08420217e-19,235.295246 -0.00256626506,236.744298 0.00513253012,238.198479 C0.0128313253,239.419273 0.0282289157,240.642632 0.0615903614,241.863426 C0.133445783,244.523013 0.289987952,247.210812 0.767313253,249.842188 C1.24463855,252.517163 2.02991566,255.004916 3.26685542,257.43368 C4.4806988,259.82141 6.06921687,262.003964 7.96312048,263.896708 C9.85959036,265.792017 12.0434819,267.379562 14.4326747,268.590097 C16.8603614,269.828844 19.3496386,270.613641 22.0236867,271.095803 C24.6566747,271.565142 27.3461205,271.724153 30.0124699,271.795964 C31.2365783,271.824176 32.4581205,271.842129 33.6822289,271.847258 C35.1321687,271.857517 36.587241,271.857517 38.039747,271.857517 L386.731012,271.857517 C388.180952,271.857517 389.636024,271.857517 391.085964,271.847258 C392.307506,271.842129 393.529048,271.824176 394.758289,271.795964 C397.419506,271.724153 400.108952,271.565142 402.747072,271.095803 C405.418554,270.613641 407.907831,269.828844 410.338084,268.590097 C412.727277,267.379562 414.906036,265.792017 416.805072,263.896708 C418.69641,262.003964 420.284928,259.82141 421.501337,257.43368 C422.740843,255.004916 423.52612,252.517163 424.00088,249.842188 C424.478205,247.210812 424.632181,244.523013 424.704036,241.863426 C424.737398,240.642632 424.752795,239.419273 424.760494,238.198479 C424.770759,236.744298 424.770759,235.295246 424.770759,233.841064 L424.770759,38.1087816 C424.770759,36.6546003 424.770759,35.2029838 424.760494,33.7513672 C424.752795,32.5305731 424.737398,31.3097789 424.704036,30.0864201 C424.632181,27.4242682 424.478205,24.739034 424.00088,22.1050938 C423.52612,19.4301184 422.740843,16.9423656 421.501337,14.5161655 C420.284928,12.1258711 418.69641,9.94588161 416.805072,8.05057307 C414.906036,6.15782923 412.727277,4.57028392 410.338084,3.35718387 C407.907831,2.12100157 405.418554,1.33620534 402.747072,0.856607648 C400.108952,0.38213934 397.419506,0.225693033 394.758289,0.153881613 C393.529048,0.120540597 392.307506,0.107717129 391.085964,0.0974583552 C389.636024,0.0897642745 388.180952,0.0897642745 386.731012,0.0897642745" id="Fill-1" fill="#3C4043"></path>
|
10 |
+
<path d="M386.731012,9.14826192 L391.021807,9.155956 C392.181759,9.16365008 393.344277,9.17647355 394.511928,9.20981456 C396.54441,9.26367313 398.923337,9.37395495 401.14059,9.77148245 C403.065289,10.1177161 404.682036,10.646043 406.23206,11.4334039 C407.76412,12.210506 409.165301,13.2312541 410.38941,14.4520482 C411.618651,15.6831011 412.640024,17.0859885 413.427867,18.6324987 C414.213145,20.1713148 414.736663,21.776813 415.083108,23.7157213 C415.478313,25.9085343 415.588663,28.2911346 415.642554,30.3351954 C415.675916,31.4867428 415.691313,32.6408549 415.696446,33.8231786 C415.706711,35.2517129 415.706711,36.6776826 415.706711,38.1087816 L415.706711,233.841064 C415.706711,235.272163 415.706711,236.698133 415.696446,238.154879 C415.691313,239.308991 415.675916,240.463103 415.642554,241.61978 C415.588663,243.658711 415.478313,246.041312 415.077976,248.257207 C414.736663,250.170468 414.213145,251.775966 413.422735,253.322477 C412.637458,254.866422 411.618651,256.266745 410.394542,257.490104 C409.162735,258.721157 407.766687,259.736775 406.216663,260.521572 C404.676904,261.306368 403.065289,261.834695 401.158554,262.175799 C398.895108,262.578456 396.418663,262.691302 394.552988,262.740031 C393.380205,262.768243 392.212554,262.783631 391.014108,262.788761 C389.589831,262.799019 388.157855,262.799019 386.731012,262.799019 L38.039747,262.799019 C38.0217831,262.799019 38.0038193,262.799019 37.9832892,262.799019 C36.5744096,262.799019 35.1603976,262.799019 33.7258554,262.788761 C32.5556386,262.783631 31.387988,262.768243 30.2588313,262.742596 C28.3495301,262.691302 25.8705181,262.578456 23.6276024,262.178364 C21.7029036,261.834695 20.0912892,261.306368 18.531,260.511313 C16.9963735,259.734211 15.6003253,258.718592 14.3685181,257.484974 C13.1469759,256.266745 12.1307349,254.868987 11.3454578,253.322477 C10.5576145,251.778531 10.0315301,250.167904 9.68508434,248.23156 C9.28731325,246.018229 9.17696386,243.648453 9.12050602,241.61978 C9.08971084,240.460539 9.07687952,239.298732 9.06918072,238.147185 L9.06404819,234.741272 L9.06404819,37.2111388 L9.06918072,33.8129199 C9.07687952,32.6511137 9.08971084,31.4918722 9.12050602,30.3326307 C9.17696386,28.3013934 9.28731325,25.9290519 9.69021687,23.6977685 C10.0315301,21.7819424 10.5576145,20.1687501 11.3480241,18.6171105 C12.1281687,17.0834238 13.1469759,15.6831011 14.3736506,14.4571776 C15.597759,13.2312541 17.001506,12.2156354 18.5438313,11.4308392 C20.0861566,10.6434783 21.7029036,10.1177161 23.6276024,9.77148245 C25.8448554,9.37395495 28.2237831,9.26367313 30.2613976,9.20981456 C31.4213494,9.17647355 32.5838675,9.16365008 33.7361205,9.155956 L38.039747,9.14826192 L386.731012,9.14826192" id="wihit-fill" fill="#FFFFFE"></path>
|
11 |
+
</g>
|
12 |
+
<g id="GPay-logo" transform="translate(48.759036, 76.981132)">
|
13 |
+
<g id="Pay" transform="translate(143.569904, 7.624798)" fill="#3C4043">
|
14 |
+
<path d="M12.1771332,57.6434717 L12.1771332,96.3774447 L0.0751674892,96.3774447 L0.0751674892,0.762479784 L32.1716854,0.762479784 C39.9139368,0.609983827 47.4306857,3.58365499 52.9179124,9.07350943 C63.8923658,19.4432345 64.5688732,36.9040216 54.2709272,48.1124744 C53.8199223,48.5699623 53.3689173,49.0274501 52.9179124,49.484938 C47.2803507,54.8985445 40.3649417,57.6434717 32.1716854,57.6434717 L12.1771332,57.6434717 Z M12.1771332,12.5046685 L12.1771332,45.901283 L32.4723553,45.901283 C36.9824047,46.053779 41.342119,44.2238275 44.4239861,40.9451644 C50.7380552,34.3115903 50.5877202,23.6368733 44.0481487,17.2320431 C40.9662816,14.182124 36.8320697,12.5046685 32.4723553,12.5046685 L12.1771332,12.5046685 Z" id="Shape" fill-rule="nonzero"></path>
|
15 |
+
<path d="M89.5244796,28.8217358 C98.4694108,28.8217358 105.535155,31.2616712 110.721712,36.0652938 C115.908268,40.8689164 118.463963,47.5787385 118.463963,56.0422642 L118.463963,96.3774447 L106.88817,96.3774447 L106.88817,87.3039353 L106.361997,87.3039353 C101.325775,94.7762372 94.7110364,98.5123881 86.3674451,98.5123881 C79.3017011,98.5123881 73.2883019,96.3774447 68.5527501,92.107558 C63.8923658,88.1426631 61.2615037,82.2715687 61.4118387,76.0954825 C61.4118387,69.3094124 63.9675333,63.9720539 69.0037551,59.9309111 C74.0399768,55.8897682 80.8050509,53.9073208 89.2238097,53.9073208 C96.4398886,53.9073208 102.302953,55.2797844 106.963337,57.8722156 L106.963337,55.0510404 C106.963337,50.8574016 105.159317,46.8925067 102.002283,44.1475795 C98.7700808,41.2501563 94.6358689,39.6489488 90.351322,39.6489488 C83.586248,39.6489488 78.2493562,42.546372 74.3406468,48.3412183 L63.6668633,41.5551482 C69.3795925,33.0916226 78.0238538,28.8217358 89.5244796,28.8217358 Z M73.8896419,76.3242264 C73.8896419,79.5266415 75.3929916,82.5003127 77.8735188,84.3302642 C80.5795484,86.4652075 83.8869179,87.6089272 87.2694549,87.5326792 C92.3808442,87.5326792 97.266731,85.4739838 100.87477,81.8140809 C104.858647,78.0016819 106.88817,73.5030512 106.88817,68.3181887 C103.129795,65.2682695 97.8680709,63.74331 91.1029969,63.819558 C86.2171101,63.819558 82.0828982,65.0395256 78.7755287,67.4032129 C75.5433266,69.7669003 73.8896419,72.7405714 73.8896419,76.3242264 Z" id="Shape" fill-rule="nonzero"></path>
|
16 |
+
<polygon id="Path" points="184.912023 30.9566792 144.471914 125.122933 131.994111 125.122933 147.027609 92.1838059 120.493485 30.9566792 133.647796 30.9566792 152.815506 77.925434 153.041008 77.925434 171.757713 30.9566792"></polygon>
|
17 |
+
</g>
|
18 |
+
<g id="Super-G">
|
19 |
+
<path d="M106.813002,56.8809919 C106.813002,53.144841 106.512332,49.40869 105.910992,45.7487871 L54.8722671,45.7487871 L54.8722671,66.8694771 L84.1124204,66.8694771 C82.9097406,73.6555472 79.0010311,79.7553854 73.2883019,83.5677844 L73.2883019,97.2924205 L90.7271594,97.2924205 C100.949938,87.7614232 106.813002,73.6555472 106.813002,56.8809919 Z" id="Path" fill="#4285F4"></path>
|
20 |
+
<path d="M54.8722671,110.559569 C69.45476,110.559569 81.7822282,105.679698 90.7271594,97.2924205 L73.2883019,83.5677844 C68.4024152,86.9226954 62.1635136,88.8288949 54.8722671,88.8288949 C40.7407791,88.8288949 28.7891484,79.1454016 24.5046015,66.1832453 L6.53957156,66.1832453 L6.53957156,80.3653693 C15.7100052,98.893628 34.42671,110.559569 54.8722671,110.559569 Z" id="Path" fill="#34A853"></path>
|
21 |
+
<path d="M24.5046015,66.1832453 C22.2495768,59.3971752 22.2495768,52.0011213 24.5046015,45.1388032 L24.5046015,31.0329272 L6.53957156,31.0329272 C-1.20267983,46.5112668 -1.20267983,64.8107817 6.53957156,80.2891213 L24.5046015,66.1832453 Z" id="Path" fill="#FBBC04"></path>
|
22 |
+
<path d="M54.8722671,22.4931536 C62.6145185,22.3406577 70.0560999,25.3143288 75.6184941,30.7279353 L91.1029969,15.0208518 C81.2560558,5.71859838 68.3272477,0.609983827 54.8722671,0.762479784 C34.42671,0.762479784 15.7100052,12.5046685 6.53957156,31.0329272 L24.5046015,45.2150512 C28.7891484,32.1766469 40.7407791,22.4931536 54.8722671,22.4931536 Z" id="Path" fill="#EA4335"></path>
|
23 |
+
</g>
|
24 |
+
</g>
|
25 |
+
</g>
|
26 |
+
</g>
|
27 |
+
</svg>
|
assets/img/googlepay_standard.svg
ADDED
@@ -0,0 +1,12 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="60" height="24" id="svgcontent"><rect id="backgroundrect" width="100%" height="100%" x="0" y="0" fill="none" stroke="none"></rect>
|
4 |
+
<title>GooglePay_AcceptanceMark_RGB_60x24pt</title>
|
5 |
+
|
6 |
+
|
7 |
+
|
8 |
+
|
9 |
+
|
10 |
+
|
11 |
+
|
12 |
+
<g class="currentLayer" style="pointer-events:all"><title>Layer 1</title><path d="M28.58971460372696,11.760222498323467 v7 H26.34971460372696 V1.4202224983234668 h5.92 a5.39,5.39 0 0 1 3.84,1.51 A5,5 0 0 1 36.35971460372696,10.000222498323467 l-0.25,0.26 a5.35,5.35 0 0 1 -3.84,1.48 zm0,-8.2 V9.620222498323468 H32.31971460372696 a2.93,2.93 0 0 0 2.21,-0.9 A3,3 0 0 0 32.31971460372696,3.5602224983234674 z" fill="#5f6368" id="svg_1" class=""></path><path d="M42.84971460372696,6.5202224983234665 a5.5600000000000005,5.5600000000000005 0 0 1 3.91,1.32 a4.71,4.71 0 0 1 1.4300000000000002,3.63 v7.32 H46.04971460372696 V17.140222498323467 H45.91971460372696 a4.28,4.28 0 0 1 -3.6900000000000004,2 A4.83,4.83 0 0 1 38.97971460372696,18.000222498323467 a3.74,3.74 0 0 1 -1.32,-2.92 a3.52,3.52 0 0 1 1.3900000000000001,-2.93 a5.87,5.87 0 0 1 3.73,-1.09 a6.65,6.65 0 0 1 3.27,0.7200000000000002 v-0.51 a2.5,2.5 0 0 0 -0.92,-2 a3.17,3.17 0 0 0 -2.16,-0.81 a3.4,3.4 0 0 0 -2.95,1.57 l-2,-1.23 A5.45,5.45 0 0 1 42.84971460372696,6.5202224983234665 zM39.91971460372696,15.150222498323467 a1.82,1.82 0 0 0 0.7400000000000002,1.46 a2.74,2.74 0 0 0 1.7400000000000002,0.5800000000000002 a3.58,3.58 0 0 0 2.51,-1 a3.26,3.26 0 0 0 1.11,-2.45 a4.54,4.54 0 0 0 -2.91,-0.8300000000000002 a3.74,3.74 0 0 0 -2.27,0.6600000000000003 A2,2 0 0 0 39.91971460372696,15.150222498323467 z" fill="#5f6368" id="svg_2" class=""></path><path d="M60.43971460372697,6.900222498323468 L52.98971460372696,24.000222498323467 H50.67971460372696 l2.77,-6 L48.54971460372696,6.910222498323467 h2.43 l3.54,8.54 h0 l3.44,-8.54 z" fill="#5f6368" id="svg_3" class=""></path><path d="M19.569714603726958,10.240222498323467 a12.54,12.54 0 0 0 -0.17,-2 H9.97971460372696 v3.84 h5.39 a4.61,4.61 0 0 1 -2,3 v2.49 h3.22 A9.75,9.75 0 0 0 19.569714603726958,10.240222498323467 z" fill="#4285f4" id="svg_4" class=""></path><path d="M9.97971460372696,20.000222498323467 a9.54,9.54 0 0 0 6.62,-2.41 l-3.22,-2.49 a6,6 0 0 1 -3.4,0.9500000000000002 a6,6 0 0 1 -5.6,-4.12 H1.069714603726959 V14.500222498323467 A10,10 0 0 0 9.97971460372696,20.000222498323467 z" fill="#34a853" id="svg_5" class=""></path><path d="M4.379714603726959,11.920222498323467 a6,6 0 0 1 0,-3.8200000000000003 V5.530222498323467 H1.069714603726959 a10,10 0 0 0 0,9 z" fill="#fbbc04" id="svg_6" class=""></path><path d="M9.97971460372696,4.000222498323467 a5.44,5.44 0 0 1 3.83,1.5 h0 l2.85,-2.85 A9.58,9.58 0 0 0 9.97971460372696,0.0002224983234668799 a10,10 0 0 0 -8.91,5.5 L4.379714603726959,8.100222498323467 A6,6 0 0 1 9.97971460372696,4.000222498323467 z" fill="#ea4335" id="svg_7" class=""></path></g></svg>
|
assets/img/ideal.svg
ADDED
@@ -0,0 +1 @@
|
|
Â
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="65px" height="56px" viewBox="11 10 68 59"><path d="M11.463 11.472h33.741c22.901 0 31.679 12.506 31.679 28.282 0 18.917-12.258 28.409-31.679 28.409H11.463V11.472zm3.271 3.271v50.151h30.47c18.396 0 28.405-8.572 28.405-25.14 0-17.027-10.85-25.012-28.405-25.012h-30.47z"/><path d="M18.822 43.442h9.754v17.36h-9.754z"/><circle cx="23.698" cy="34.695" r="6.062"/><path d="M49.031 37.531v2.811h-6.95v-11.28h6.728v2.81h-3.918v1.306h3.705v2.811h-3.705v1.543l4.14-.001zm1.216 2.813l3.401-11.286h3.998l3.4 11.286h-2.925l-.638-2.183h-3.676l-.639 2.183h-2.921zm4.384-4.991h2.034l-.933-3.188h-.17l-.931 3.188zm7.828-6.294h2.812v8.473h4.162c-1.142-15.374-13.234-18.696-24.228-18.696H33.488v10.229h1.734c3.162 0 5.125 2.144 5.125 5.594 0 3.56-1.916 5.685-5.125 5.685h-1.734V60.81h11.718c17.866 0 24.088-8.298 24.308-20.468h-7.055V29.059zm-28.973 2.816v5.657h1.736c1.203 0 2.315-.348 2.315-2.874 0-2.467-1.237-2.783-2.315-2.783h-1.736z" fill="#d50072"/></svg>
|
assets/img/klarna.svg
ADDED
@@ -0,0 +1,25 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
4 |
+
viewBox="0 0 452.9 101.1" style="enable-background:new 0 0 452.9 101.1;" xml:space="preserve">
|
5 |
+
<path d="M79.7,0H57.4c0,18.3-8.4,35-23,46l-8.8,6.6l34.2,46.6h28.1L56.4,56.3C71.3,41.5,79.7,21.5,79.7,0z"/>
|
6 |
+
<rect width="22.8" height="99.2"/>
|
7 |
+
<rect x="94.5" width="21.5" height="99.2"/>
|
8 |
+
<path d="M304.6,28.7c-8.2,0-16,2.5-21.2,9.6v-7.7H263v68.6h20.7v-36c0-10.4,7-15.5,15.4-15.5c9,0,14.2,5.4,14.2,15.4v36.2h20.5V55.6
|
9 |
+
C333.8,39.6,321.1,28.7,304.6,28.7z"/>
|
10 |
+
<path d="M181,30.6V35c-5.8-4-12.8-6.3-20.4-6.3c-20,0-36.2,16.2-36.2,36.2s16.2,36.2,36.2,36.2c7.6,0,14.6-2.3,20.4-6.3v4.4h20.5
|
11 |
+
V30.6H181z M162.3,82.5c-10.3,0-18.6-7.9-18.6-17.6s8.3-17.6,18.6-17.6c10.3,0,18.6,7.9,18.6,17.6S172.6,82.5,162.3,82.5z"/>
|
12 |
+
<path d="M233.3,39.5v-8.9h-21v68.6h21.1v-32c0-10.8,11.7-16.6,19.8-16.6c0.1,0,0.2,0,0.2,0v-20C245.1,30.6,237.4,34.2,233.3,39.5z"
|
13 |
+
/>
|
14 |
+
<path d="M397.6,30.6V35c-5.8-4-12.8-6.3-20.4-6.3c-20,0-36.2,16.2-36.2,36.2s16.2,36.2,36.2,36.2c7.6,0,14.6-2.3,20.4-6.3v4.4h20.5
|
15 |
+
V30.6H397.6z M378.9,82.5c-10.3,0-18.6-7.9-18.6-17.6s8.3-17.6,18.6-17.6c10.3,0,18.6,7.9,18.6,17.6
|
16 |
+
C397.6,74.6,389.2,82.5,378.9,82.5z"/>
|
17 |
+
<g>
|
18 |
+
<path d="M434,32.6c0-1-0.7-1.6-1.8-1.6h-1.9v5.2h0.9v-1.9h1l0.8,1.9h1l-0.9-2.1C433.7,33.8,434,33.3,434,32.6z M432.2,33.4h-1v-1.6
|
19 |
+
h1c0.6,0,0.9,0.3,0.9,0.8S432.9,33.4,432.2,33.4z"/>
|
20 |
+
<path d="M431.9,28.8c-2.7,0-4.9,2.2-4.9,4.9c0.1,2.7,2.2,4.9,4.9,4.9s4.9-2.2,4.9-4.9C436.8,31,434.6,28.8,431.9,28.8z M431.9,37.7
|
21 |
+
c-2.2,0-3.9-1.8-3.9-4c0-2.2,1.8-4,3.9-4c2.2,0,3.9,1.8,3.9,4C435.8,35.9,434,37.7,431.9,37.7z"/>
|
22 |
+
</g>
|
23 |
+
<path d="M440,74.9c-7.1,0-12.9,5.8-12.9,12.9c0,7.1,5.8,12.9,12.9,12.9c7.1,0,12.9-5.8,12.9-12.9C452.9,80.6,447.1,74.9,440,74.9z"
|
24 |
+
/>
|
25 |
+
</svg>
|
assets/img/logo.svg
ADDED
@@ -0,0 +1,122 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="220" height="100" viewBox="120 160 140 84" version="1.1">
|
3 |
+
<defs>
|
4 |
+
<g>
|
5 |
+
<symbol overflow="visible" id="glyph0-0">
|
6 |
+
<path style="stroke:none;" d=""/>
|
7 |
+
</symbol>
|
8 |
+
<symbol overflow="visible" id="glyph0-1">
|
9 |
+
<path style="stroke:none;" d="M 14.828125 -29.78125 C 16.003906 -29.78125 17.109375 -29.542969 18.140625 -29.078125 C 19.179688 -28.617188 20.085938 -27.988281 20.859375 -27.1875 C 21.628906 -26.394531 22.238281 -25.457031 22.6875 -24.375 C 23.132813 -23.300781 23.359375 -22.148438 23.359375 -20.921875 C 23.359375 -19.679688 23.132813 -18.519531 22.6875 -17.4375 C 22.238281 -16.363281 21.628906 -15.417969 20.859375 -14.609375 C 20.085938 -13.796875 19.179688 -13.160156 18.140625 -12.703125 C 17.109375 -12.242188 16.003906 -12.015625 14.828125 -12.015625 L 8.3125 -12.015625 L 8.3125 0 L 1.96875 0 L 1.96875 -29.78125 Z M 13.984375 -17.8125 C 14.792969 -17.8125 15.503906 -18.109375 16.109375 -18.703125 C 16.710938 -19.304688 17.015625 -20.046875 17.015625 -20.921875 C 17.015625 -21.753906 16.710938 -22.472656 16.109375 -23.078125 C 15.503906 -23.679688 14.792969 -23.984375 13.984375 -23.984375 L 8.3125 -23.984375 L 8.3125 -17.8125 Z M 13.984375 -17.8125 "/>
|
10 |
+
</symbol>
|
11 |
+
<symbol overflow="visible" id="glyph0-2">
|
12 |
+
<path style="stroke:none;" d="M 23.6875 -20.828125 L 23.6875 0 L 18.6875 0 L 18.109375 -2.21875 C 17.296875 -1.132813 16.320313 -0.410156 15.1875 -0.046875 C 14.050781 0.316406 12.867188 0.5 11.640625 0.5 C 10.148438 0.5 8.777344 0.210938 7.53125 -0.359375 C 6.289063 -0.929688 5.207031 -1.710938 4.28125 -2.703125 C 3.351563 -3.699219 2.628906 -4.863281 2.109375 -6.1875 C 1.597656 -7.519531 1.34375 -8.941406 1.34375 -10.453125 C 1.34375 -11.960938 1.597656 -13.382813 2.109375 -14.71875 C 2.628906 -16.050781 3.351563 -17.210938 4.28125 -18.203125 C 5.207031 -19.199219 6.289063 -19.988281 7.53125 -20.5625 C 8.777344 -21.132813 10.148438 -21.421875 11.640625 -21.421875 C 12.980469 -21.421875 14.210938 -21.207031 15.328125 -20.78125 C 16.449219 -20.363281 17.378906 -19.695313 18.109375 -18.78125 L 18.6875 -20.828125 Z M 17.890625 -10.375 C 17.890625 -11.464844 17.742188 -12.382813 17.453125 -13.125 C 17.160156 -13.863281 16.769531 -14.460938 16.28125 -14.921875 C 15.789063 -15.386719 15.210938 -15.726563 14.546875 -15.9375 C 13.890625 -16.144531 13.183594 -16.25 12.4375 -16.25 C 11.675781 -16.25 10.964844 -16.089844 10.3125 -15.78125 C 9.65625 -15.476563 9.070313 -15.066406 8.5625 -14.546875 C 8.0625 -14.035156 7.667969 -13.417969 7.390625 -12.703125 C 7.109375 -11.992188 6.96875 -11.242188 6.96875 -10.453125 C 6.96875 -9.640625 7.109375 -8.882813 7.390625 -8.1875 C 7.667969 -7.488281 8.0625 -6.878906 8.5625 -6.359375 C 9.070313 -5.847656 9.65625 -5.433594 10.3125 -5.125 C 10.964844 -4.8125 11.675781 -4.65625 12.4375 -4.65625 C 13.945313 -4.65625 15.222656 -5.125 16.265625 -6.0625 C 17.316406 -6.996094 17.859375 -8.4375 17.890625 -10.375 Z M 17.890625 -10.375 "/>
|
13 |
+
</symbol>
|
14 |
+
<symbol overflow="visible" id="glyph0-3">
|
15 |
+
<path style="stroke:none;" d="M 17.96875 -20.828125 L 24.3125 -20.828125 L 11.171875 8.3125 L 4.828125 8.3125 L 10 -3.15625 L 1.171875 -20.828125 L 7.640625 -20.828125 L 13.0625 -9.953125 Z M 17.96875 -20.828125 "/>
|
16 |
+
</symbol>
|
17 |
+
<symbol overflow="visible" id="glyph0-4">
|
18 |
+
<path style="stroke:none;" d="M 25.078125 -20.828125 C 25.824219 -20.828125 26.632813 -20.699219 27.5 -20.453125 C 28.371094 -20.203125 29.179688 -19.753906 29.921875 -19.109375 C 30.660156 -18.460938 31.269531 -17.574219 31.75 -16.453125 C 32.226563 -15.335938 32.46875 -13.914063 32.46875 -12.1875 L 32.46875 0 L 26.671875 0 L 26.671875 -11.125 C 26.671875 -11.964844 26.574219 -12.679688 26.390625 -13.265625 C 26.210938 -13.855469 25.964844 -14.335938 25.65625 -14.703125 C 25.351563 -15.066406 24.996094 -15.320313 24.59375 -15.46875 C 24.1875 -15.621094 23.773438 -15.703125 23.359375 -15.703125 C 22.960938 -15.703125 22.566406 -15.628906 22.171875 -15.484375 C 21.785156 -15.347656 21.433594 -15.113281 21.125 -14.78125 C 20.8125 -14.445313 20.566406 -13.980469 20.390625 -13.390625 C 20.210938 -12.804688 20.125 -12.066406 20.125 -11.171875 L 20.125 0 L 14.328125 0 L 14.328125 -11.125 C 14.328125 -12.832031 14.027344 -14.019531 13.4375 -14.6875 C 12.851563 -15.363281 11.996094 -15.703125 10.875 -15.703125 C 10.0625 -15.703125 9.332031 -15.320313 8.6875 -14.5625 C 8.050781 -13.8125 7.734375 -12.636719 7.734375 -11.046875 L 7.734375 0 L 1.9375 0 L 1.9375 -20.828125 L 6.890625 -20.828125 L 7.734375 -18.90625 C 8.367188 -19.519531 9.113281 -19.992188 9.96875 -20.328125 C 10.820313 -20.660156 11.738281 -20.828125 12.71875 -20.828125 C 13.226563 -20.828125 13.757813 -20.773438 14.3125 -20.671875 C 14.871094 -20.578125 15.421875 -20.402344 15.953125 -20.15625 C 16.492188 -19.90625 17.007813 -19.574219 17.5 -19.171875 C 17.988281 -18.765625 18.425781 -18.253906 18.8125 -17.640625 C 19.144531 -18.167969 19.550781 -18.640625 20.03125 -19.046875 C 20.507813 -19.449219 21.023438 -19.785156 21.578125 -20.046875 C 22.136719 -20.316406 22.722656 -20.515625 23.328125 -20.640625 C 23.929688 -20.761719 24.515625 -20.828125 25.078125 -20.828125 Z M 25.078125 -20.828125 "/>
|
19 |
+
</symbol>
|
20 |
+
<symbol overflow="visible" id="glyph0-5">
|
21 |
+
<path style="stroke:none;" d="M 12.1875 -21.421875 C 13.746094 -21.421875 15.171875 -21.101563 16.453125 -20.46875 C 17.742188 -19.84375 18.851563 -19.019531 19.78125 -18 C 20.707031 -16.976563 21.421875 -15.800781 21.921875 -14.46875 C 22.429688 -13.132813 22.6875 -11.769531 22.6875 -10.375 C 22.6875 -9.53125 22.570313 -8.632813 22.34375 -7.6875 L 7.46875 -7.6875 C 8.027344 -6.738281 8.828125 -5.929688 9.859375 -5.265625 C 10.898438 -4.609375 12.023438 -4.28125 13.234375 -4.28125 C 14.429688 -4.28125 15.484375 -4.378906 16.390625 -4.578125 C 17.304688 -4.773438 18.171875 -5.023438 18.984375 -5.328125 L 20.921875 -1.765625 C 19.878906 -1.035156 18.691406 -0.472656 17.359375 -0.078125 C 16.035156 0.304688 14.617188 0.5 13.109375 0.5 C 11.453125 0.5 9.910156 0.210938 8.484375 -0.359375 C 7.054688 -0.929688 5.808594 -1.707031 4.75 -2.6875 C 3.6875 -3.664063 2.839844 -4.828125 2.21875 -6.171875 C 1.601563 -7.511719 1.296875 -8.941406 1.296875 -10.453125 C 1.296875 -11.941406 1.578125 -13.347656 2.140625 -14.671875 C 2.699219 -16.003906 3.476563 -17.164063 4.46875 -18.15625 C 5.464844 -19.152344 6.625 -19.945313 7.9375 -20.53125 C 9.246094 -21.121094 10.664063 -21.421875 12.1875 -21.421875 Z M 16.921875 -12.1875 C 16.585938 -13.382813 15.980469 -14.359375 15.109375 -15.109375 C 14.242188 -15.867188 13.269531 -16.25 12.1875 -16.25 C 11.0625 -16.25 10.039063 -15.867188 9.125 -15.109375 C 8.21875 -14.359375 7.597656 -13.382813 7.265625 -12.1875 Z M 16.921875 -12.1875 "/>
|
22 |
+
</symbol>
|
23 |
+
<symbol overflow="visible" id="glyph0-6">
|
24 |
+
<path style="stroke:none;" d="M 12.71875 -20.828125 C 13.507813 -20.828125 14.378906 -20.710938 15.328125 -20.484375 C 16.285156 -20.265625 17.179688 -19.847656 18.015625 -19.234375 C 18.855469 -18.617188 19.566406 -17.761719 20.140625 -16.671875 C 20.710938 -15.578125 21 -14.164063 21 -12.4375 L 21 0 L 15.15625 0 L 15.15625 -12.21875 C 15.15625 -12.863281 15.050781 -13.410156 14.84375 -13.859375 C 14.632813 -14.304688 14.351563 -14.660156 14 -14.921875 C 13.65625 -15.191406 13.257813 -15.390625 12.8125 -15.515625 C 12.363281 -15.636719 11.914063 -15.703125 11.46875 -15.703125 C 11.101563 -15.703125 10.699219 -15.636719 10.265625 -15.515625 C 9.835938 -15.390625 9.429688 -15.183594 9.046875 -14.90625 C 8.671875 -14.625 8.355469 -14.257813 8.109375 -13.8125 C 7.859375 -13.363281 7.734375 -12.832031 7.734375 -12.21875 L 7.734375 0 L 1.9375 0 L 1.9375 -20.828125 L 6.890625 -20.828125 L 7.734375 -19.234375 C 8.398438 -19.710938 9.148438 -20.097656 9.984375 -20.390625 C 10.824219 -20.679688 11.738281 -20.828125 12.71875 -20.828125 Z M 12.71875 -20.828125 "/>
|
25 |
+
</symbol>
|
26 |
+
<symbol overflow="visible" id="glyph0-7">
|
27 |
+
<path style="stroke:none;" d="M 9.578125 -7.46875 C 9.578125 -6.488281 9.875 -5.730469 10.46875 -5.203125 C 11.070313 -4.671875 11.867188 -4.40625 12.859375 -4.40625 C 13.636719 -4.40625 14.421875 -4.5625 15.203125 -4.875 L 15.203125 0 C 14.503906 0.226563 13.757813 0.414063 12.96875 0.5625 C 12.1875 0.714844 11.402344 0.796875 10.625 0.796875 C 9.726563 0.796875 8.871094 0.679688 8.0625 0.453125 C 7.25 0.234375 6.519531 -0.144531 5.875 -0.6875 C 5.226563 -1.238281 4.714844 -1.96875 4.34375 -2.875 C 3.96875 -3.777344 3.78125 -4.910156 3.78125 -6.265625 L 3.78125 -15.671875 L 0.796875 -15.671875 L 0.796875 -19.578125 L 3.78125 -20.828125 L 3.78125 -25.5 L 9.578125 -25.5 L 9.578125 -20.828125 L 15.203125 -20.828125 L 15.203125 -15.671875 L 9.578125 -15.671875 Z M 9.578125 -7.46875 "/>
|
28 |
+
</symbol>
|
29 |
+
<symbol overflow="visible" id="glyph1-0">
|
30 |
+
<path style="stroke:none;" d="M 8.078125 -13.714844 C 7.457031 -13.796875 6.976563 -13.796875 6.277344 -13.796875 L 2 -13.796875 L 2 0 L 3.71875 0 L 3.71875 -5.636719 L 6.277344 -5.636719 C 6.976563 -5.636719 7.457031 -5.636719 8.078125 -5.71875 C 10.078125 -5.976563 11.65625 -7.378906 11.65625 -9.71875 C 11.65625 -12.058594 10.277344 -13.4375 8.078125 -13.714844 Z M 7.976563 -7.179688 C 7.597656 -7.097656 7.058594 -7.078125 6.4375 -7.078125 L 3.71875 -7.078125 L 3.71875 -12.355469 L 6.4375 -12.355469 C 7.058594 -12.355469 7.597656 -12.335938 7.976563 -12.257813 C 8.957031 -12.035156 9.816406 -11.316406 9.816406 -9.71875 C 9.816406 -8.117188 8.957031 -7.398438 7.976563 -7.179688 Z M 7.976563 -7.179688 "/>
|
31 |
+
</symbol>
|
32 |
+
<symbol overflow="visible" id="glyph1-1">
|
33 |
+
<path style="stroke:none;" d="M 11.175781 -1.398438 L 3.71875 -1.398438 L 3.71875 -13.796875 L 2 -13.796875 L 2 0 L 11.175781 0 Z M 11.175781 -1.398438 "/>
|
34 |
+
</symbol>
|
35 |
+
<symbol overflow="visible" id="glyph1-2">
|
36 |
+
<path style="stroke:none;" d="M 12.238281 -13.796875 L 10.515625 -13.796875 L 10.515625 -5.257813 C 10.515625 -4.820313 10.515625 -4.398438 10.476563 -4.039063 C 10.316406 -2.300781 9.175781 -1.078125 7.058594 -1.078125 C 4.9375 -1.078125 3.800781 -2.300781 3.640625 -4.039063 C 3.597656 -4.398438 3.597656 -4.820313 3.597656 -5.257813 L 3.597656 -13.796875 L 1.878906 -13.796875 L 1.878906 -5.097656 C 1.878906 -4.660156 1.878906 -4.257813 1.917969 -3.859375 C 2.121094 -1.558594 3.679688 0.28125 7.058594 0.28125 C 10.4375 0.28125 11.996094 -1.558594 12.195313 -3.859375 C 12.238281 -4.257813 12.238281 -4.660156 12.238281 -5.097656 Z M 12.238281 -13.796875 "/>
|
37 |
+
</symbol>
|
38 |
+
<symbol overflow="visible" id="glyph1-3">
|
39 |
+
<path style="stroke:none;" d="M 7.976563 -6.660156 L 7.976563 -5.257813 L 11.195313 -5.257813 C 11.195313 -2.800781 9.539063 -1.078125 7.296875 -1.078125 C 4.578125 -1.078125 2.859375 -3.519531 2.859375 -6.917969 C 2.859375 -10.257813 4.597656 -12.71875 7.417969 -12.71875 C 9.71875 -12.71875 10.9375 -11.378906 11.335938 -9.398438 L 11.378906 -9.199219 L 13.097656 -9.199219 L 13.078125 -9.398438 C 12.796875 -12.097656 10.957031 -14.078125 7.457031 -14.078125 C 3.539063 -14.078125 0.941406 -11.039063 0.941406 -6.839844 C 0.941406 -2.800781 3.179688 0.28125 7.199219 0.28125 C 8.777344 0.28125 9.996094 -0.238281 10.777344 -1.121094 L 11.398438 -2.398438 L 11.398438 0 L 12.917969 0 L 12.917969 -6.660156 Z M 7.976563 -6.660156 "/>
|
40 |
+
</symbol>
|
41 |
+
<symbol overflow="visible" id="glyph1-4">
|
42 |
+
<path style="stroke:none;" d="M 3.71875 0 L 3.71875 -13.796875 L 2 -13.796875 L 2 0 Z M 3.71875 0 "/>
|
43 |
+
</symbol>
|
44 |
+
<symbol overflow="visible" id="glyph1-5">
|
45 |
+
<path style="stroke:none;" d="M 12.796875 0 L 12.757813 -13.796875 L 11.078125 -13.796875 L 11.078125 -6.898438 C 11.078125 -5.277344 11.097656 -3.300781 11.136719 -1.679688 L 4.640625 -13.796875 L 2 -13.796875 L 2 0 L 3.71875 0 L 3.71875 -6.898438 C 3.71875 -8.519531 3.699219 -10.496094 3.660156 -12.117188 L 10.15625 0 Z M 12.796875 0 "/>
|
46 |
+
</symbol>
|
47 |
+
<symbol overflow="visible" id="glyph1-6">
|
48 |
+
<path style="stroke:none;" d="M 6.277344 -14.078125 C 3.738281 -14.078125 1.679688 -12.578125 1.679688 -10.199219 C 1.679688 -7.917969 3.378906 -6.9375 5.820313 -6.378906 C 8.238281 -5.820313 9.199219 -5.058594 9.199219 -3.378906 C 9.199219 -1.941406 7.917969 -1.078125 6.339844 -1.078125 C 4.539063 -1.078125 3.277344 -2.097656 2.878906 -3.917969 L 1.039063 -3.917969 C 1.339844 -1.257813 3.257813 0.28125 6.296875 0.28125 C 8.957031 0.28125 11.039063 -1.28125 11.039063 -3.699219 C 11.039063 -6.039063 9.519531 -7.277344 6.476563 -7.976563 C 4.378906 -8.457031 3.519531 -9.097656 3.519531 -10.597656 C 3.519531 -12.035156 4.679688 -12.71875 6.136719 -12.71875 C 7.878906 -12.71875 8.898438 -11.71875 9.058594 -9.976563 L 10.898438 -9.976563 C 10.636719 -12.335938 9.136719 -14.078125 6.277344 -14.078125 Z M 6.277344 -14.078125 "/>
|
49 |
+
</symbol>
|
50 |
+
</g>
|
51 |
+
<filter id="alpha" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
|
52 |
+
<feColorMatrix type="matrix" in="SourceGraphic" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
|
53 |
+
</filter>
|
54 |
+
<mask id="mask0">
|
55 |
+
<g filter="url(#alpha)">
|
56 |
+
<rect x="0" y="0" width="375" height="374.999989" style="fill:rgb(0%,0%,0%);fill-opacity:0.619608;stroke:none;"/>
|
57 |
+
</g>
|
58 |
+
</mask>
|
59 |
+
<clipPath id="clip2">
|
60 |
+
<path d="M 0.535156 18 L 46.285156 18 L 46.285156 40 L 0.535156 40 Z M 0.535156 18 "/>
|
61 |
+
</clipPath>
|
62 |
+
<clipPath id="clip3">
|
63 |
+
<path d="M 0.535156 7 L 46.285156 7 L 46.285156 16 L 0.535156 16 Z M 0.535156 7 "/>
|
64 |
+
</clipPath>
|
65 |
+
<clipPath id="clip1">
|
66 |
+
<rect width="47" height="40"/>
|
67 |
+
</clipPath>
|
68 |
+
<g id="surface12" clip-path="url(#clip1)">
|
69 |
+
<g clip-path="url(#clip2)" clip-rule="nonzero">
|
70 |
+
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(32.199097%,44.299316%,100%);fill-opacity:1;" d="M 0.535156 18.351563 L 0.535156 31.695313 C 0.535156 35.898438 3.957031 39.703125 8.160156 39.703125 L 38.660156 39.703125 C 42.863281 39.703125 46.285156 35.898438 46.285156 31.695313 L 46.285156 18.351563 Z M 6.632813 24.453125 L 14.257813 24.453125 L 14.257813 25.976563 L 6.632813 25.976563 Z M 21.882813 30.550781 L 6.632813 30.550781 L 6.632813 27.503906 L 21.882813 27.503906 Z M 21.882813 30.550781 "/>
|
71 |
+
</g>
|
72 |
+
<g clip-path="url(#clip3)" clip-rule="nonzero">
|
73 |
+
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(32.199097%,44.299316%,100%);fill-opacity:1;" d="M 38.660156 7.675781 L 8.160156 7.675781 C 3.957031 7.675781 0.535156 10.726563 0.535156 15.300781 L 46.285156 15.300781 C 46.285156 10.726563 42.863281 7.675781 38.660156 7.675781 Z M 38.660156 7.675781 "/>
|
74 |
+
</g>
|
75 |
+
</g>
|
76 |
+
</defs>
|
77 |
+
<g id="surface1" style="fill: none;">
|
78 |
+
<g style="fill:rgb(39.99939%,39.99939%,39.99939%);fill-opacity:1;">
|
79 |
+
<use xlink:href="#glyph0-1" x="101.317627" y="191.696365"/>
|
80 |
+
</g>
|
81 |
+
<g style="fill:rgb(39.99939%,39.99939%,39.99939%);fill-opacity:1;">
|
82 |
+
<use xlink:href="#glyph0-2" x="123.913626" y="191.696365"/>
|
83 |
+
</g>
|
84 |
+
<g style="fill:rgb(39.99939%,39.99939%,39.99939%);fill-opacity:1;">
|
85 |
+
<use xlink:href="#glyph0-3" x="148.189629" y="191.696365"/>
|
86 |
+
</g>
|
87 |
+
<g style="fill:rgb(39.99939%,39.99939%,39.99939%);fill-opacity:1;">
|
88 |
+
<use xlink:href="#glyph0-4" x="171.751623" y="191.696365"/>
|
89 |
+
</g>
|
90 |
+
<g style="fill:rgb(39.99939%,39.99939%,39.99939%);fill-opacity:1;">
|
91 |
+
<use xlink:href="#glyph0-5" x="204.763623" y="191.696365"/>
|
92 |
+
</g>
|
93 |
+
<g style="fill:rgb(39.99939%,39.99939%,39.99939%);fill-opacity:1;">
|
94 |
+
<use xlink:href="#glyph0-6" x="228.493622" y="191.696365"/>
|
95 |
+
</g>
|
96 |
+
<g style="fill:rgb(39.99939%,39.99939%,39.99939%);fill-opacity:1;">
|
97 |
+
<use xlink:href="#glyph0-7" x="249.95562" y="191.696365"/>
|
98 |
+
</g>
|
99 |
+
<g style="fill:rgb(39.99939%,39.99939%,39.99939%);fill-opacity:1;">
|
100 |
+
<use xlink:href="#glyph1-0" x="101.317627" y="231.0585"/>
|
101 |
+
</g>
|
102 |
+
<g style="fill:rgb(39.99939%,39.99939%,39.99939%);fill-opacity:1;">
|
103 |
+
<use xlink:href="#glyph1-1" x="118.672916" y="231.0585"/>
|
104 |
+
</g>
|
105 |
+
<g style="fill:rgb(39.99939%,39.99939%,39.99939%);fill-opacity:1;">
|
106 |
+
<use xlink:href="#glyph1-2" x="135.568381" y="231.0585"/>
|
107 |
+
</g>
|
108 |
+
<g style="fill:rgb(39.99939%,39.99939%,39.99939%);fill-opacity:1;">
|
109 |
+
<use xlink:href="#glyph1-3" x="154.603002" y="231.0585"/>
|
110 |
+
</g>
|
111 |
+
<g style="fill:rgb(39.99939%,39.99939%,39.99939%);fill-opacity:1;">
|
112 |
+
<use xlink:href="#glyph1-4" x="174.197404" y="231.0585"/>
|
113 |
+
</g>
|
114 |
+
<g style="fill:rgb(39.99939%,39.99939%,39.99939%);fill-opacity:1;">
|
115 |
+
<use xlink:href="#glyph1-5" x="184.875325" y="231.0585"/>
|
116 |
+
</g>
|
117 |
+
<g style="fill:rgb(39.99939%,39.99939%,39.99939%);fill-opacity:1;">
|
118 |
+
<use xlink:href="#glyph1-6" x="204.629659" y="231.0585"/>
|
119 |
+
</g>
|
120 |
+
<use xlink:href="#surface12" transform="matrix(1,0,0,1,225,197)" mask="url(#mask0)"/>
|
121 |
+
</g>
|
122 |
+
</svg>
|
assets/img/multibanco.svg
ADDED
@@ -0,0 +1,91 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2 |
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3 |
+
|
4 |
+
<svg
|
5 |
+
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
6 |
+
xmlns:cc="http://creativecommons.org/ns#"
|
7 |
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
8 |
+
xmlns:svg="http://www.w3.org/2000/svg"
|
9 |
+
xmlns="http://www.w3.org/2000/svg"
|
10 |
+
version="1.1"
|
11 |
+
width="240.94501"
|
12 |
+
height="240.94501"
|
13 |
+
id="svg2"
|
14 |
+
xml:space="preserve"><metadata
|
15 |
+
id="metadata8"><rdf:RDF><cc:Work
|
16 |
+
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
17 |
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
18 |
+
id="defs6"><clipPath
|
19 |
+
id="clipPath16"><path
|
20 |
+
d="m 0,192.756 192.756,0 L 192.756,0 0,0 0,192.756 z"
|
21 |
+
id="path18" /></clipPath></defs><g
|
22 |
+
transform="matrix(1.25,0,0,-1.25,0,240.945)"
|
23 |
+
id="g10"><g
|
24 |
+
id="g12"><g
|
25 |
+
clip-path="url(#clipPath16)"
|
26 |
+
id="g14"><g
|
27 |
+
transform="translate(95.7476,51.8721)"
|
28 |
+
id="g20"><path
|
29 |
+
d="m 0,0 50.442,0 c 11.518,0 11.633,12.242 10.46,18.286 -0.641,4.062 -7.544,4.028 -8.304,0 l 0,-4.716 c 0,-2.154 -1.764,-3.918 -3.919,-3.918 l -48.679,0 -3.893,0 -44.137,0 c -2.155,0 -3.918,1.764 -3.918,3.918 l 0,4.716 c -0.76,4.028 -7.663,4.062 -8.304,0 C -61.424,12.242 -61.311,0 -49.792,0 L -3.893,0 0,0 z m -35.662,117.256 73.875,0 3.903,0 c 5.465,0 9.935,-4.731 9.935,-10.514 l 0,-5.025 c 0,-7.104 -9.624,-7.077 -9.624,-0.048 l 0,2.745 c 0,1.746 -1.428,3.174 -3.175,3.174 l -77.937,0 c -1.746,0 -3.174,-1.428 -3.174,-3.174 l 0,-2.689 c 0,-7.065 -9.172,-7.015 -9.172,-0.153 l 0,5.17 c 0,5.783 4.471,10.514 9.935,10.514 l 5.434,0 z"
|
30 |
+
id="path22"
|
31 |
+
style="fill:#2a6bae;fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><g
|
32 |
+
transform="translate(145.8359,111.3682)"
|
33 |
+
id="g24"><path
|
34 |
+
d="m 0,0 c 5.387,-2.534 9.106,-7.765 9.106,-13.771 0,-8.468 -7.393,-15.396 -16.431,-15.396 l -25.329,0 c -2.369,0 -4.308,1.816 -4.308,4.036 l 0,48.191 c 0,2.324 1.904,4.227 4.232,4.227 l 21.097,0 c 8.881,0 16.147,-7.259 16.147,-16.13 C 4.514,6.838 2.791,2.903 0,0 m -18.905,3.925 8.042,0 0,0.089 c 3.662,0.562 6.49,3.746 6.49,7.559 l 0,0 c 0,4.206 -3.442,7.648 -7.648,7.648 l -16.199,0 0,-39.99 20.542,0 c 4.344,0 7.898,3.554 7.898,7.898 0,4.344 -3.554,7.898 -7.898,7.898 l -3.185,0 0,0.019 -8.042,0 c -2.442,0 -4.44,1.997 -4.44,4.439 0,2.442 1.998,4.44 4.44,4.44"
|
35 |
+
id="path26"
|
36 |
+
style="fill:#424041;fill-opacity:1;fill-rule:evenodd;stroke:none" /></g><g
|
37 |
+
transform="translate(63.2998,37.0771)"
|
38 |
+
id="g28"><path
|
39 |
+
d="M 0,0 C 0,0.75 0.608,1.358 1.358,1.358 2.108,1.358 2.717,0.75 2.717,0 l 0,-7.346 0,-0.002 -0.006,0 c 0,-1.679 -0.687,-3.205 -1.792,-4.31 -1.101,-1.101 -2.624,-1.784 -4.302,-1.785 l 0,-0.006 -0.003,0 -0.002,0 0,0.006 c -1.679,0 -3.205,0.686 -4.31,1.792 -1.101,1.101 -1.784,2.624 -1.785,4.301 l -0.006,0 0,0.004 0,7.346 c 0,0.75 0.609,1.358 1.359,1.358 0.75,0 1.358,-0.608 1.358,-1.358 l 0,-7.346 0,-0.004 -0.005,0 c 0,-0.927 0.383,-1.774 1,-2.391 0.614,-0.613 1.46,-0.996 2.389,-0.996 l 0,0.005 0.002,0 0.003,0 0,-0.005 c 0.928,0 1.776,0.383 2.392,1 0.614,0.614 0.996,1.46 0.996,2.389 L 0,-7.348 0,-7.346 0,0 z"
|
40 |
+
id="path30"
|
41 |
+
style="fill:#424041;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
|
42 |
+
transform="translate(76.1362,26.3447)"
|
43 |
+
id="g32"><path
|
44 |
+
d="M 0,0 C 0.75,0 1.358,-0.608 1.358,-1.358 1.358,-2.108 0.75,-2.717 0,-2.717 l -3.75,0 -10e-4,0 0,0.006 c -1.406,0 -2.683,0.575 -3.608,1.499 -0.92,0.922 -1.492,2.195 -1.493,3.6 l -0.005,0 0,0.004 0,8.34 c 0,0.75 0.608,1.359 1.358,1.359 0.75,0 1.358,-0.609 1.358,-1.359 l 0,-8.34 0,-0.004 -0.005,0 c 0,-0.654 0.271,-1.252 0.708,-1.689 0.434,-0.433 1.031,-0.704 1.687,-0.704 L -3.751,0 -3.75,0 0,0 z"
|
45 |
+
id="path34"
|
46 |
+
style="fill:#424041;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
|
47 |
+
transform="translate(104.8496,87.0146)"
|
48 |
+
id="g36"><path
|
49 |
+
d="m 0,0 c 0.297,-2.791 -1.726,-5.295 -4.517,-5.591 -2.791,-0.297 -5.295,1.725 -5.591,4.517 l -4.165,38.324 -14.752,-37.473 -0.015,-0.035 -0.001,-0.004 0,-0.001 -0.041,-0.099 -0.033,-0.078 -0.008,-0.019 -0.035,-0.078 -0.022,-0.047 -0.035,-0.073 -0.017,-0.034 -0.039,-0.077 -0.014,-0.027 c -0.272,-0.513 -0.622,-0.964 -1.031,-1.343 l -0.015,-0.013 -0.076,-0.069 c -0.266,-0.236 -0.56,-0.444 -0.879,-0.623 l -0.022,-0.012 -0.096,-0.052 -0.004,-0.002 -0.089,-0.046 -0.041,-0.021 -0.057,-0.027 -0.061,-0.028 -0.053,-0.025 -0.063,-0.027 -0.055,-0.023 -0.052,-0.022 -0.047,-0.018 -0.027,-0.011 -0.043,-0.016 -0.067,-0.025 -0.039,-0.013 c -0.492,-0.172 -0.993,-0.264 -1.49,-0.282 l -0.06,-0.002 -0.072,-10e-4 -0.052,0 -0.053,0 -0.07,10e-4 -0.064,0.002 c -0.555,0.02 -1.117,0.133 -1.664,0.347 l -0.068,0.027 -0.017,0.008 -0.068,0.027 -0.066,0.029 -0.053,0.025 -0.057,0.026 -0.061,0.029 -0.035,0.018 -0.093,0.047 -0.009,0.006 -0.079,0.043 -0.045,0.024 c -0.279,0.157 -0.538,0.338 -0.777,0.539 l -0.019,0.017 c -0.057,0.049 -0.113,0.097 -0.168,0.148 l -0.003,0.004 c -0.043,0.04 -0.086,0.081 -0.127,0.122 -0.041,0.042 -0.083,0.084 -0.123,0.127 l -0.003,0.004 c -0.051,0.055 -0.1,0.11 -0.149,0.168 l -0.017,0.019 c -0.201,0.239 -0.381,0.498 -0.538,0.777 l -0.025,0.044 -0.044,0.08 -0.004,0.01 -0.048,0.091 -0.017,0.036 -0.029,0.06 -0.027,0.058 -0.024,0.053 -0.029,0.066 -0.029,0.067 -0.006,0.017 -0.028,0.068 -14.768,37.512 -4.165,-38.324 c -0.297,-2.792 -2.8,-4.814 -5.591,-4.517 -2.792,0.296 -4.814,2.8 -4.517,5.591 l 4.91,45.183 0.002,0.012 0.002,0.019 -0.002,0.001 c 0.059,0.526 0.17,1.05 0.33,1.564 0.155,0.499 0.362,0.991 0.618,1.471 1.254,2.355 3.561,4.007 6.314,4.388 l 0.01,0.002 c 0.092,0.012 0.185,0.022 0.277,0.03 0.431,0.045 0.86,0.058 1.282,0.038 l 0.02,-10e-4 0,10e-4 c 0.549,-0.026 1.063,-0.095 1.537,-0.205 2.626,-0.613 4.857,-2.44 5.907,-5.107 l 12.57,-31.927 12.569,31.927 c 1.05,2.667 3.281,4.494 5.907,5.107 0.473,0.11 0.987,0.179 1.537,0.205 l 0,-10e-4 0.02,10e-4 c 0.423,0.02 0.853,0.007 1.285,-0.038 0.091,-0.008 0.182,-0.018 0.274,-0.03 l 0.01,-0.002 c 2.753,-0.381 5.061,-2.033 6.315,-4.388 0.255,-0.48 0.463,-0.972 0.617,-1.471 0.16,-0.514 0.271,-1.037 0.33,-1.564 L -4.914,45.214 -4.912,45.195 -4.91,45.183 0,0 z"
|
50 |
+
id="path38"
|
51 |
+
style="fill:#424041;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
|
52 |
+
transform="translate(53.3071,25.1455)"
|
53 |
+
id="g40"><path
|
54 |
+
d="m 0,0 c 0.088,-0.744 -0.445,-1.419 -1.188,-1.507 -0.745,-0.087 -1.42,0.444 -1.508,1.189 L -3.86,9.463 -8.01,-0.16 c -0.296,-0.689 -1.094,-1.007 -1.782,-0.711 -0.333,0.142 -0.579,0.403 -0.711,0.711 l 0,0 -4.15,9.623 -1.165,-9.781 c -0.088,-0.745 -0.763,-1.276 -1.507,-1.189 -0.744,0.088 -1.276,0.763 -1.188,1.507 l 1.351,11.357 c 0.088,0.742 0.54,1.351 1.187,1.685 0.085,0.045 0.174,0.084 0.264,0.118 0.035,0.014 0.069,0.026 0.105,0.037 0.115,0.036 0.249,0.066 0.4,0.086 l 0,-10e-4 0.011,10e-4 0.012,0.002 c 0.709,0.09 1.408,-0.139 1.897,-0.599 0.098,-0.093 0.191,-0.2 0.277,-0.319 0.058,-0.082 0.112,-0.167 0.158,-0.255 0.029,-0.049 0.054,-0.098 0.076,-0.151 l 3.518,-8.157 3.518,8.157 c 0.291,0.673 0.889,1.133 1.589,1.287 0.134,0.029 0.268,0.049 0.399,0.055 0.101,0.005 0.201,0.005 0.296,-0.001 l 0.009,-10e-4 0,0 c 0.033,-0.002 0.066,-0.005 0.1,-0.009 l 0.011,-0.002 -10e-4,-0.004 0.006,-10e-4 c 0.726,-0.092 1.344,-0.5 1.691,-1.085 l -10e-4,0 c 0.073,-0.122 0.132,-0.252 0.18,-0.387 0.029,-0.085 0.055,-0.173 0.074,-0.266 0.014,-0.058 0.025,-0.117 0.032,-0.178 L -1.352,11.357 0,0 z"
|
55 |
+
id="path42"
|
56 |
+
style="fill:#424041;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
|
57 |
+
transform="translate(82.0703,24.9863)"
|
58 |
+
id="g44"><path
|
59 |
+
d="m 0,0 c 0,-0.75 -0.608,-1.358 -1.358,-1.358 -0.75,0 -1.358,0.608 -1.358,1.358 l 0,10.732 -3.865,0 c -0.75,0 -1.358,0.609 -1.358,1.359 0,0.75 0.608,1.358 1.358,1.358 l 5.223,0 5.223,0 c 0.75,0 1.358,-0.608 1.358,-1.358 0,-0.75 -0.608,-1.359 -1.358,-1.359 L 0,10.732 0,0 z"
|
60 |
+
id="path46"
|
61 |
+
style="fill:#424041;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
|
62 |
+
transform="translate(90.5425,24.9863)"
|
63 |
+
id="g48"><path
|
64 |
+
d="m 0,0 c 0,-0.75 -0.608,-1.358 -1.358,-1.358 -0.75,0 -1.358,0.608 -1.358,1.358 l 0,12.091 c 0,0.75 0.608,1.358 1.358,1.358 0.75,0 1.358,-0.608 1.358,-1.358 L 0,0 z"
|
65 |
+
id="path50"
|
66 |
+
style="fill:#424041;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
|
67 |
+
transform="translate(118.4063,25.1514)"
|
68 |
+
id="g52"><path
|
69 |
+
d="m 0,0 c 0.091,-0.744 -0.439,-1.422 -1.184,-1.513 -0.744,-0.091 -1.42,0.44 -1.511,1.184 l -0.478,3.836 -4.707,0 c -0.75,0 -1.358,0.608 -1.358,1.358 0,0.75 0.608,1.359 1.358,1.359 l 4.369,0 -0.124,0.996 -0.002,0.011 c -0.004,0.032 -0.007,0.064 -0.008,0.095 -0.035,0.228 -0.086,0.46 -0.157,0.694 -0.079,0.262 -0.173,0.503 -0.279,0.716 -0.539,1.077 -1.514,1.831 -2.747,1.831 l -0.013,0 0,0.005 c -0.235,0 -0.465,-0.029 -0.683,-0.082 -0.205,-0.049 -0.408,-0.126 -0.607,-0.227 -1.042,-0.531 -1.74,-1.691 -1.89,-3.027 l -0.85,-7.549 c -0.082,-0.745 -0.753,-1.282 -1.497,-1.2 -0.743,0.082 -1.28,0.753 -1.198,1.497 l 0.849,7.549 c 0.251,2.229 1.488,4.2 3.356,5.15 0.367,0.186 0.768,0.336 1.2,0.439 0.418,0.102 0.859,0.155 1.32,0.156 l 0,0.006 0.013,0 c 2.355,0 4.184,-1.376 5.166,-3.338 0.189,-0.378 0.344,-0.763 0.46,-1.152 0.104,-0.347 0.183,-0.717 0.238,-1.106 0.01,-0.042 0.018,-0.084 0.023,-0.127 L -0.939,7.55 0,0 z"
|
70 |
+
id="path54"
|
71 |
+
style="fill:#424041;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
|
72 |
+
transform="translate(122.5645,24.9863)"
|
73 |
+
id="g56"><path
|
74 |
+
d="m 0,0 c 0,-0.75 -0.608,-1.358 -1.358,-1.358 -0.75,0 -1.359,0.608 -1.359,1.358 l 0,11.231 0,0.005 c 0,0.078 0.006,0.156 0.019,0.23 0.018,0.153 0.055,0.3 0.107,0.44 l 0.002,0.004 -0.002,10e-4 c 0.028,0.075 0.067,0.156 0.112,0.243 l 0.003,0.004 -0.003,0.001 c 0.227,0.412 0.596,0.732 1.061,0.892 0.062,0.02 0.124,0.038 0.187,0.05 0.048,0.011 0.096,0.021 0.144,0.028 l 0.011,0.002 0,0.004 c 0.091,0.013 0.2,0.019 0.325,0.016 l 0.01,0 0.024,0 0.001,0 c 0.557,-0.022 1.077,-0.28 1.436,-0.737 l 7.229,-9.219 0,8.896 c 0,0.75 0.609,1.358 1.359,1.358 0.75,0 1.358,-0.608 1.358,-1.358 l 0,-11.182 C 10.666,0.318 10.4,-0.216 9.957,-0.578 9.873,-0.646 9.78,-0.71 9.68,-0.766 9.626,-0.796 9.569,-0.823 9.511,-0.849 L 9.496,-0.855 9.493,-0.856 C 9.457,-0.873 9.42,-0.889 9.381,-0.902 l -0.004,-0.002 0,0.002 -0.001,0 -10e-4,0.001 -0.009,-0.003 C 8.873,-1.074 8.355,-1.038 7.91,-0.822 7.851,-0.797 7.793,-0.767 7.735,-0.731 7.643,-0.675 7.552,-0.606 7.466,-0.53 7.412,-0.482 7.354,-0.422 7.293,-0.349 L 7.248,-0.297 7.245,-0.294 7.246,-0.293 7.229,-0.272 0,8.945 0,0 z"
|
75 |
+
id="path58"
|
76 |
+
style="fill:#424041;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
|
77 |
+
transform="translate(143.7793,26.3447)"
|
78 |
+
id="g60"><path
|
79 |
+
d="M 0,0 C 0.75,0 1.358,-0.608 1.358,-1.358 1.358,-2.108 0.75,-2.717 0,-2.717 l -4.002,0 -0.002,0 0,0.006 c -1.475,0 -2.815,0.604 -3.785,1.574 -0.966,0.966 -1.566,2.304 -1.568,3.778 l -0.005,0 0,0.003 0,4.086 0,0.002 0.005,0 c 10e-4,1.475 0.603,2.816 1.574,3.786 0.967,0.965 2.304,1.566 3.777,1.567 l 0,0.006 0.004,0 4.002,0 c 0.75,0 1.358,-0.609 1.358,-1.359 C 1.358,9.982 0.75,9.374 0,9.374 l -4.002,0 -0.004,0 0,0.005 c -0.723,0 -1.385,-0.3 -1.867,-0.782 -0.48,-0.48 -0.777,-1.14 -0.777,-1.865 l 0.004,0 0,-0.002 0,-4.086 0,-0.003 -0.004,0 c 0,-0.724 0.299,-1.386 0.782,-1.868 0.479,-0.479 1.139,-0.778 1.864,-0.778 L -4.004,0 -4.002,0 0,0 z"
|
80 |
+
id="path62"
|
81 |
+
style="fill:#424041;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
|
82 |
+
transform="translate(151.6387,35.7236)"
|
83 |
+
id="g64"><path
|
84 |
+
d="m 0,0 0,-0.005 -0.002,0 -0.003,0 0,0.005 c -1.001,0 -1.912,-0.394 -2.57,-1.026 -0.647,-0.621 -1.048,-1.471 -1.049,-2.399 l 0.006,0 0,-0.002 0,-2.53 0,-0.003 -0.006,0 c 10e-4,-0.927 0.402,-1.775 1.047,-2.396 0.66,-0.633 1.571,-1.028 2.574,-1.028 l 0,0.005 0.001,0 0.004,0 0,-0.005 c 1.002,0 1.912,0.394 2.571,1.028 0.646,0.62 1.048,1.469 1.048,2.398 l -0.005,0 0,0.001 0,2.53 0,0.003 0.005,0 C 3.62,-2.496 3.219,-1.647 2.574,-1.027 1.914,-0.394 1.003,0 0,0 M -0.002,2.712 0,2.712 0,2.706 c 1.732,0 3.309,-0.683 4.452,-1.78 1.156,-1.112 1.874,-2.651 1.875,-4.35 l 0.005,0 0,-0.003 0,-2.53 0,-0.001 -0.005,0 c -0.001,-1.7 -0.719,-3.24 -1.876,-4.352 -1.142,-1.097 -2.718,-1.779 -4.449,-1.78 l 0,-0.006 -0.004,0 -0.001,0 0,0.006 c -1.732,0 -3.309,0.683 -4.452,1.781 -1.155,1.111 -1.874,2.65 -1.875,4.349 l -0.005,0 0,0.003 0,2.53 0,0.002 0.005,0 c 0.001,1.699 0.72,3.24 1.877,4.351 1.142,1.097 2.718,1.779 4.448,1.78 l 0,0.006 0.003,0 z"
|
85 |
+
id="path66"
|
86 |
+
style="fill:#424041;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
|
87 |
+
transform="translate(94.3989,35.7188)"
|
88 |
+
id="g68"><path
|
89 |
+
d="m 0,0 0,-4.602 0,-4.772 5.247,0 0.003,0 0,-0.005 c 0.466,0 0.893,0.194 1.206,0.507 0.31,0.309 0.502,0.736 0.502,1.203 l -0.004,0 0,0.002 0,0.004 0.004,0 c 0,0.438 -0.172,0.844 -0.454,1.15 l -0.052,0.05 c -0.313,0.314 -0.74,0.508 -1.203,0.508 l 0,-0.005 -0.002,0 -1.307,0 -0.004,0 -0.496,0 c -0.749,0 -1.358,0.61 -1.358,1.358 0,0.748 0.609,1.359 1.358,1.359 l 0.496,0 0.004,0 0.118,0 c 0.393,0.03 0.752,0.207 1.023,0.476 l 0.002,-0.002 0.002,0.002 c 0.294,0.295 0.478,0.7 0.478,1.144 l -0.005,0 0,10e-4 0,0.001 0,0.003 0.005,0 c 0,0.442 -0.185,0.848 -0.482,1.145 -0.294,0.294 -0.7,0.478 -1.143,0.478 L 3.938,0 3.936,0 0,0 z m -2.716,-4.602 0,5.901 0,0.001 c 0,0.192 0.04,0.375 0.111,0.54 0.073,0.177 0.181,0.336 0.315,0.467 l 0.017,0.015 -10e-4,10e-4 c 0.23,0.22 0.536,0.367 0.892,0.388 0.027,0.002 0.054,0.004 0.08,0.003 l 0,0.003 0.004,0 5.234,0 0.002,0 0,-0.006 c 1.194,0 2.279,-0.488 3.063,-1.273 0.782,-0.782 1.267,-1.863 1.268,-3.056 l 0.006,0 0,-0.003 0,-0.001 0,-10e-4 -0.006,0 c 0,-0.846 -0.246,-1.636 -0.667,-2.304 0.279,-0.177 0.538,-0.383 0.771,-0.615 0.029,-0.029 0.056,-0.06 0.083,-0.091 0.747,-0.789 1.208,-1.857 1.209,-3.03 l 0.005,0 0,-0.004 0,-0.002 -0.005,0 c 0,-1.217 -0.498,-2.323 -1.299,-3.124 -0.796,-0.796 -1.899,-1.291 -3.116,-1.292 l 0,-0.006 -0.003,0 -6.605,0 c -0.75,0 -1.358,0.609 -1.358,1.359 l 0,6.13 z"
|
90 |
+
id="path70"
|
91 |
+
style="fill:#424041;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></svg>
|
assets/img/p24.svg
ADDED
@@ -0,0 +1,63 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<!-- Generator: Adobe Illustrator 18.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4 |
+
<svg version="1.1" id="Warstwa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5 |
+
viewBox="0 0 1920 672" enable-background="new 0 0 1920 672" xml:space="preserve">
|
6 |
+
<g>
|
7 |
+
<polygon fill-rule="evenodd" clip-rule="evenodd" fill="#D13239" points="409.6,384.9 566,384.7 560.3,420.3 429.5,545.2
|
8 |
+
539.3,545 532.9,583.4 371.2,583.5 378,543.8 503.4,423.7 403.3,423.7 409.6,384.9 "/>
|
9 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#D13239" d="M238.5,324c-3.4-3.6-8.3-6.4-13.7-8.6c-5.7-2.2-12-3.8-18.2-4.9
|
10 |
+
c-7.8-1.4-15.4-2-20.8-2.2c-5-0.2-8.2-0.2-8.2-0.2l-68.4,0l-50.9,0L12.7,583.5l42.6,0l16.8-102l82.6,0.4c0,0,32.2,1.3,55-10.8
|
11 |
+
c22.8-12.1,28.9-39.6,28.9-39.6s2.5-10.2,4.6-22.6c2.3-13.7,4.6-30.1,5.8-38.8c0.5-3.8,0.8-6.2,0.8-6.2s0.6-2.8,0.6-7.2
|
12 |
+
c0.1-6.1-0.8-15.3-5.6-24.1C243.1,329.5,241.1,326.7,238.5,324z M205.7,372.6c0,0.5-3.8,22.6-8.8,48.8c-1.9,10-9.6,15.4-18.4,17.3
|
13 |
+
c-14.6,3.1-30.3,2.5-30.3,2.5l-69-0.2l15.2-91.5l62.5,0.2c0,0,4.2-0.1,10.1,0c6.7,0.1,15.6,0.4,22.9,1.4c6.3,0.8,11.3,2.1,12.9,4.1
|
14 |
+
c2.1,2.6,2.9,6,3.2,9C206.4,368.6,205.7,372.3,205.7,372.6z"/>
|
15 |
+
<polygon fill-rule="evenodd" clip-rule="evenodd" fill="#D13239" points="778.1,308.1 819.1,308.1 773.2,583.5 732.1,583.4
|
16 |
+
778.1,308.1 "/>
|
17 |
+
<polygon fill-rule="evenodd" clip-rule="evenodd" fill="#D13239" points="996.9,384.9 1036.2,384.8 1050.1,524.6 1110.6,384.6
|
18 |
+
1159.1,384.7 1173.4,525.1 1233.8,384.8 1274.6,384.8 1188,583.3 1139.6,583.3 1125.6,444.3 1064.5,583.3 1016.9,583.5
|
19 |
+
996.9,384.9 "/>
|
20 |
+
<g>
|
21 |
+
<path fill="#D13239" d="M702.4,386.5c-11.5-3.7-31.4-4.5-48.3-4.3c-16.3,0.2-23.8,1-29.9,2.3c0,0-29,4.2-45.5,24.6
|
22 |
+
c-16.5,20.4-21.4,65-21.4,65s-9.8,49.3-6.9,65.8c2.9,16.4,8,31.7,26.6,38.8c18.6,7.2,34.4,6.8,34.4,6.8s33.2,2.6,58.2-3.3
|
23 |
+
c25-5.9,38.2-23.5,38.2-23.5s5.9-7.6,10.1-16.6c4.2-9,5.5-15.3,5.7-16.1l2.6-10.7l-42.5,0.1c0,0-2.3,28.1-25.3,30.7
|
24 |
+
c-22.9,2.6-35.2,1.6-39.7,1.4c-4.4-0.2-29,0.9-27-19.7c0-0.3,0-0.7,0.1-1.3c1.1-23.4,3.7-29.5,3.7-29.5l133.5-0.4l5.7-33
|
25 |
+
C741.3,426.2,736.6,397.7,702.4,386.5z M693.5,458.9l-91.5-0.1l3.6-14.5c0,0,3.2-11.4,9.5-16.2c6.4-4.8,14.5-5.7,22.1-6.4
|
26 |
+
c7.6-0.7,27.9-2.2,44.4,1.2c5.5,1.1,10.7,4.2,12.1,8.8C696.9,442.5,693.5,458.9,693.5,458.9z"/>
|
27 |
+
<path fill="#D13239" d="M592,526.9c0,0.3-0.1,0.6-0.1,0.9C591.8,529.4,592,526.8,592,526.9z"/>
|
28 |
+
</g>
|
29 |
+
<g>
|
30 |
+
<path fill="#D13239" d="M843.8,527c0,0.3-0.1,0.6-0.1,0.9C843.7,529.5,843.8,526.9,843.8,527z"/>
|
31 |
+
<path fill="#D13239" d="M954.3,386.6c-11.5-3.7-31.4-4.5-48.3-4.3c-16.3,0.2-23.8,1-29.9,2.3c0,0-29,4.2-45.5,24.6
|
32 |
+
c-16.5,20.4-21.4,65-21.4,65s-9.8,49.3-6.9,65.8c2.9,16.4,8,31.7,26.6,38.8c18.6,7.2,34.4,6.8,34.4,6.8s33.2,2.6,58.2-3.3
|
33 |
+
c25-5.9,38.2-23.5,38.2-23.5s5.9-7.6,10.1-16.6c4.2-9,5.5-15.3,5.7-16.1l2.6-10.7l-42.5,0.1c0,0-2.3,28.1-25.3,30.7
|
34 |
+
c-22.9,2.6-35.2,1.6-39.7,1.5c-4.4-0.2-29,0.8-27-19.7c0-0.3,0-0.7,0.1-1.3c1.1-23.4,3.7-29.5,3.7-29.5l133.5-0.4l5.7-33
|
35 |
+
C993.2,426.3,988.5,397.7,954.3,386.6z M945,458.9l-91.5-0.1l3.6-14.5c0,0,3.2-11.4,9.5-16.2c6.3-4.8,14.5-5.7,22.1-6.4
|
36 |
+
c7.6-0.7,27.9-2.2,44.4,1.2c5.5,1.1,10.7,4.2,12.1,8.8C948.4,442.4,945,458.9,945,458.9z"/>
|
37 |
+
</g>
|
38 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#D13239" d="M1321.8,384.9l26.3,145.2l74.3-145.3l41.8,0.4l-107.1,207.5
|
39 |
+
c0,0-19.4,37.6-31.4,47.1c-12,9.5-19.4,13.8-29.2,14.8c-9.8,1-13.8,1.7-23.2,0l-10-1.8l6.2-37.1c0,0,16.6,3.1,26.4-0.8
|
40 |
+
c9.9-3.9,17.8-20.7,17.8-20.7l5-8.4l-38.7-201L1321.8,384.9L1321.8,384.9z"/>
|
41 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#B3B2B1" d="M1479.4,404.6l43.1,0.1l2.6-16.7c0,0,4.6-30.2,14.9-36
|
42 |
+
c3.3-1.9,8.6-3.6,14.7-4.7c11.3-2,25.6-2.2,37.3-1.8c17.9,0.6,24.7,0.8,42.9,2.9c18.2,2.1,13.6,19.7,13.6,19.7l-3.6,26.3
|
43 |
+
c0,0-1.6,11.8-5.8,19.1c-3.7,6.5-13.9,10.9-19.8,12.8c-14.2,4.6-62.8,17-62.8,17l-38.2,11c0,0-23.5,6.8-36.6,21.3
|
44 |
+
c-13.2,14.6-18.4,31.1-20.2,39.7c-1.8,8.6-11.9,68.1-11.9,68.1l206.2,0.1l6.9-41.2l-163.1,0.2l2.9-16.8c0,0,1.9-17.3,8.9-23
|
45 |
+
c2.2-1.8,3.3-4.2,16.3-8.8c7.8-2.8,34.4-9.9,34.4-9.9l61.5-16.8c0,0,33.6-8.6,46.8-27c13.2-18.3,18.3-53.4,18.3-53.4
|
46 |
+
s3.6-34.1,0.8-44.8c-2.7-10.7-12.8-23.5-25.1-29c-12.3-5.5-25.1-8.7-62.2-8.2c-37.1,0.5-55.5,2.2-74.3,9.2
|
47 |
+
c-18.8,6.9-29.7,19.5-36.6,37.3C1483.8,368.2,1479.4,404.6,1479.4,404.6L1479.4,404.6z"/>
|
48 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#B3B2B1" d="M1867.6,481.2l28.9-173.2l-51.2,0l-159.4,171.2l-7.2,43.4l139.4,0
|
49 |
+
l-10.2,60.8l42.8,0.1l10.1-60.9l39.5,0.1l7.1-41.5L1867.6,481.2z M1825,481.3l-90.1-0.1l109.7-116.9L1825,481.3z"/>
|
50 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#B3B2B1" d="M328.9,330.8h131.3c0,0,29.4-23.8,50.3-39.1
|
51 |
+
c20.9-15.3,58.9-39.4,58.9-39.4l-74.2-34.7c0,0-62.7,38.8-89.3,57.1C380.1,291.6,328.9,330.8,328.9,330.8L328.9,330.8z"/>
|
52 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#B3B2B1" d="M611.1,227.8l-60.9-41c0,0,55.1-31.3,128.4-60.5
|
53 |
+
c73.2-29.2,112.3-41.4,112.3-41.4l12.4,58.1c0,0-70.5,23.6-110.9,42.7C650.6,203.5,611.1,227.8,611.1,227.8L611.1,227.8z"/>
|
54 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#B3B2B1" d="M848.3,130.3l-10.6-59.5c0,0,75.2-20,144-32.8
|
55 |
+
c68.9-12.8,160.2-18.9,160.2-18.9l-30.2,91.9c0,0-80.3-11-155.7-0.7C897.3,117.3,848.3,130.3,848.3,130.3L848.3,130.3z"/>
|
56 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#B3B2B1" d="M1159.5,118.8l50.8-102.1c0,0,111.3-2.2,207.3,12.7
|
57 |
+
c96,14.8,183.8,37.6,181.9,38.6l-243.4,127.3c0,0-56.9-36-127.5-58.1C1188.6,125.4,1159.5,118.8,1159.5,118.8L1159.5,118.8z"/>
|
58 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#B3B2B1" d="M1399.7,223l53.5,40.6h439.7c0,0-0.9-14.2-12.6-34.4
|
59 |
+
c-7.3-12.6-20.6-26-34.5-39.9c-5.1-5-25.3-20.8-40.5-30.7c-38.8-25.2-60.5-34.9-100.8-53.2L1399.7,223L1399.7,223z"/>
|
60 |
+
<path fill="#D13239" d="M357.4,384.7c-16.5,0-32.1,6.5-45.4,13.8l2.3-13.8h-43.7l-35,197.7h43.8l19.4-109.5
|
61 |
+
c4-22.2,20.6-49.7,53-49.7l22.6-0.1l6.8-38.4H357.4z"/>
|
62 |
+
</g>
|
63 |
+
</svg>
|
assets/img/sepa.svg
ADDED
@@ -0,0 +1,39 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
+
<svg version="1.1" id="svg10908" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
4 |
+
viewBox="0 0 750 205" style="enable-background:new 0 0 750 205;" xml:space="preserve">
|
5 |
+
<style type="text/css">
|
6 |
+
.st0{fill:#10298E;}
|
7 |
+
.st1{fill:#FFBE00;}
|
8 |
+
</style>
|
9 |
+
<title>sepa</title>
|
10 |
+
<path id="path5689" class="st0" d="M166.6,65.4h-51.3c0-8.4-1-14.1-3-17c-3-4.3-11.4-6.4-25.2-6.4c-13.4,0-22.3,1.2-26.6,3.7
|
11 |
+
S54,53.6,54,61.8c0,7.5,1.9,12.4,5.7,14.7c3.4,1.8,7.1,2.8,10.9,2.9L81,80.2c22.2,1.5,36,2.5,41.6,3.1c17.5,1.8,30.3,6.4,38.1,14
|
12 |
+
c6.2,5.9,9.9,13.6,11.1,23.1c0.7,6.4,1.1,12.9,1,19.3c0,16.5-1.6,28.6-4.7,36.2c-5.7,14.1-18.5,22.9-38.5,26.6
|
13 |
+
c-8.3,1.6-21.1,2.4-38.3,2.4c-28.7,0-48.8-1.7-60.1-5.1c-13.9-4.2-23-12.8-27.5-25.6C1.2,167.1,0,155.2,0,138.5h51.3v4.3
|
14 |
+
c0,8.9,2.6,14.6,7.7,17.2c4,1.9,8.4,2.8,12.8,2.8h18.9c9.6,0,15.8-0.5,18.4-1.5c4.7-1.9,7.8-4.9,9.3-9c0.9-3.2,1.3-6.5,1.2-9.9
|
15 |
+
c0-9-3.3-14.5-9.9-16.5c-2.5-0.8-13.9-1.9-34.3-3.2c-16.4-1.2-27.8-2.3-34.2-3.4c-16.8-3.1-28-9.6-33.6-19.4
|
16 |
+
C2.7,91.5,0.2,78.9,0.2,62c0-12.8,1.3-23.1,4-30.9s6.9-13.6,12.8-17.6c8.6-6.2,19.7-9.8,33.2-10.9c11.2-1,23.7-1.5,37.3-1.5
|
17 |
+
c21.5,0,36.9,1.2,46,3.7c22.3,6,33.5,22.8,33.5,50.4C167.1,57.5,166.9,60.9,166.6,65.4"/>
|
18 |
+
<path id="path5693" class="st0" d="M392.3,205V0h102.8c14.1,0,24.8,1.1,32.2,3.5c16.9,5.3,28.2,16.1,34,32.5
|
19 |
+
c3,8.6,4.5,21.5,4.5,38.8c0,20.8-1.7,35.7-5,44.8c-6.6,18-20.1,28.3-40.6,31c-2.4,0.4-12.7,0.8-30.8,1.1l-9.2,0.3h-32.8v53H392.3z
|
20 |
+
M447.5,104.5h34.4c10.9-0.4,17.5-1.2,19.9-2.5c3.2-1.8,5.5-5.4,6.5-10.8c0.8-5.3,1.2-10.6,1-16c0-8.7-0.7-15.1-2.1-19.3
|
21 |
+
c-2-5.9-6.8-9.5-14.2-10.8c-1.5-0.2-5.1-0.3-10.7-0.3h-34.8V104.5z"/>
|
22 |
+
<path id="path5697" class="st0" d="M683.6,169.5h-73.8l-9.9,35.5h-57.1L604.5,0h83.2L750,205h-55.9L683.6,169.5z M672.6,129.6
|
23 |
+
l-25.8-88.9l-25.1,88.9H672.6z"/>
|
24 |
+
<path id="path5701" class="st1" d="M316.2,28.8c21.9,0,42.6,9.9,56.4,26.9l11.9-25.5C365,11.9,339.3,1.7,312.6,1.8
|
25 |
+
c-43.5,0-80.6,26.2-95.9,63.4h-23.2l-13.7,29.3h29.8c-0.2,2.7-0.4,5.4-0.4,8.2c0,3.3,0.2,6.7,0.5,10h-15l-13.7,29.4h36.3
|
26 |
+
c15.7,36.2,52.4,61.7,95.2,61.7c20.7,0,40.9-6,58.1-17.5v-36c-26.4,30.2-72.2,33.2-102.4,6.8c-5-4.4-9.4-9.4-13-15h76l13.7-29.4
|
27 |
+
H244.2c-0.5-3.6-0.8-7.2-0.8-10.8c0-2.5,0.1-4.9,0.4-7.4h109.8l13.7-29.3h-114C266.2,42.7,290.2,28.9,316.2,28.8"/>
|
28 |
+
<path id="path5705" class="st0" d="M316.2,29.7c21.6,0,42.1,9.8,55.7,26.6l0.9,1.1l0.6-1.3l11.9-25.5l0.3-0.6l-0.5-0.4
|
29 |
+
c-36-33.7-90.5-38.2-131.5-10.7c-16.8,11.3-30,27.3-37.7,46l0.8-0.6H193l-0.2,0.5l-13.7,29.4l-0.6,1.3h31.2l-0.9-1
|
30 |
+
c-0.2,3-0.4,5.8-0.4,8.3c0,3.4,0.2,6.7,0.5,10.1l0.9-1h-15.5l-0.2,0.5l-13.7,29.4l-0.6,1.2h37.7l-0.8-0.5c16.4,37.8,54,62.2,96,62.2
|
31 |
+
c20.9,0.1,41.3-6.1,58.6-17.6l0.4-0.3V148l-1.5,1.8c-26.1,29.8-71.4,32.8-101.2,6.7c-4.9-4.3-9.2-9.3-12.8-14.8l-0.7,1.4h76.6
|
32 |
+
l0.2-0.5l13.7-29.4l0.6-1.2H244.2l0.9,0.8c-0.5-3.5-0.8-7.1-0.8-10.7c0-2.4,0.1-4.9,0.4-7.3l-0.9,0.8h110.4l0.2-0.5L368,65.6
|
33 |
+
l0.6-1.3H253.2l0.8,1.3C266.8,43.5,290.5,29.8,316.2,29.7 M253.2,66.1h114l-0.8-1.2l-13.7,29.4l0.8-0.5H242.9l-0.1,0.8
|
34 |
+
c-0.2,2.5-0.4,5-0.4,7.5c0,3.7,0.3,7.4,0.8,11l0.1,0.8H345l-0.8-1.3l-13.7,29.4l0.8-0.5h-77.7l0.9,1.4c22.2,34,67.7,43.6,101.7,21.4
|
35 |
+
c5.6-3.7,10.7-8.1,15.2-13.2l-1.5-0.6v36l0.4-0.7C353.2,197,333.1,203,312.6,203c-41.2,0-78.3-24-94.4-61.1l-0.2-0.5h-36.9l0.8,1.3
|
36 |
+
l13.7-29.4l-0.8,0.5h16l-0.1-1c-0.3-3.3-0.5-6.7-0.5-9.9c0-2.5,0.1-5.2,0.4-8.2l0.1-1h-30.8l0.8,1.2l13.7-29.3l-0.8,0.5h23.8
|
37 |
+
l0.2-0.5c7.6-18.4,20.5-34.1,37.1-45.2c40.3-27,93.9-22.6,129.2,10.5l-0.2-1l-11.9,25.5l1.5-0.2c-25.6-31.5-71.8-36.4-103.4-10.8
|
38 |
+
c-7,5.7-12.9,12.6-17.4,20.4l-0.8,1.3L253.2,66.1z"/>
|
39 |
+
</svg>
|
assets/img/sofort.svg
ADDED
@@ -0,0 +1 @@
|
|
Â
|
1 |
+
<svg id="svg4722" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 232.5" preserveAspectRatio="xMidYMid meet"><defs><style>.cls-1{fill:#ee7f00;}.cls-2{fill:#383a41;}</style></defs><title>sofort</title><g id="layer1"><path id="path66" class="cls-1" d="M248,0a69,69,0,0,0-29.55,6.76c-13.34,6.32-25.44,16.86-35.32,30.84A133.77,133.77,0,0,0,167,69c-8.11,22.22-8,40.24.27,52.12,4.71,6.71,14.48,14.73,34.35,14.75h.08c36.2,0,63.23-23.73,80.34-70.53,4.52-12.38,10.49-35.49-.41-51.08C275,4.8,263.73,0,248,0ZM466.48,0a69,69,0,0,0-29.54,6.76c-13.35,6.32-25.44,16.86-35.32,30.84A133.39,133.39,0,0,0,385.4,69c-8.12,22.22-8,40.24.28,52.12,4.69,6.71,14.46,14.73,34.35,14.75h.06c36.21,0,63.24-23.73,80.34-70.53C505,52.93,510.92,29.82,500,14.23,493.43,4.8,482.17,0,466.48,0ZM131.78,1.88c-11.92,0-23.49,0-33.86,5.26S78.4,22.93,71.35,44a42.11,42.11,0,0,0-2.44,11.82,17.78,17.78,0,0,0,1.77,8.79A25.67,25.67,0,0,0,78.05,73a36.25,36.25,0,0,0,11.22,5.67l5,1.42c2.63.76,5.71,1.66,7.66,2.25a15.94,15.94,0,0,1,3.53,1.49,7.18,7.18,0,0,1,2.81,2.84,6.24,6.24,0,0,1,.67,2.72,9,9,0,0,1-.52,3.16,8.61,8.61,0,0,1-5.24,5.83c-2.78,1.13-6.88,1.49-13.11,1.53H12.29L0,133.65H83.23c7.83,0,22.15,0,35.91-5.85s27-17.52,32.54-40.9c2.1-8.79,1.45-16-2-21.57S140,55.63,130.9,53l-4.43-1.28-6.54-1.88a8.73,8.73,0,0,1-5.18-3.73,7.31,7.31,0,0,1-.77-5.91A8.6,8.6,0,0,1,118.29,35a17.48,17.48,0,0,1,8.42-1.88h48.38c.34-.49.65-1,1-1.52A107,107,0,0,1,207.34,1.88Zm217.45,0c-21.52,0-37.55,10.89-45.12,31.28L267.54,133.65H307.6L326.4,82l35.41,0,10.07-27.67-35.29,0,5.68-16a8.47,8.47,0,0,1,8.16-5.16l41.75,0c.35-.5.66-1,1-1.53C402,19.14,414.53,9,426.24,1.88ZM535.11,2l-48,131.78h40.75l17.44-46.38c.85,1.91,11.14,46.38,11.14,46.38h42.85s-7.79-32.68-13.52-45.88a73.16,73.16,0,0,0-5.07-10.38c12.1-4.49,29.64-14.15,36.91-33.71,4.46-12,4.2-21.75-.76-28.88C610.86,6.23,598.63,2,579.47,2ZM618.7,2a32.59,32.59,0,0,1,6.65,7c4.74,6.83,6.56,15,5.47,24.26h24.27L618.52,133.76h36.54l36.6-100.51h47L750,2ZM562,29.16h6.73c12.3,0,16.88,3.61,12.72,14.83-3.91,10.54-10.94,17-24.3,17h-7L562,29.16Zm-323.53.65h0c12.51,0,15.38,7.28,4.39,37.35h0c-11.3,30.91-19.49,38.69-31.83,38.69h0c-12,0-16.24-7.62-5-38.38,8.4-23,19.28-37.66,32.44-37.66Zm218.44,0h0c12.51,0,15.39,7.28,4.39,37.35-11.29,30.91-19.49,38.69-31.82,38.69h0c-12,0-16.22-7.62-5-38.38,8.39-23,19.27-37.66,32.43-37.66Z"/><path id="path98" class="cls-2" d="M39.62,147.61A9.86,9.86,0,0,0,33.86,149a10.36,10.36,0,0,0-3.23,5c-.83,2.3-1,3.89-.38,4.8s2.16,1.36,4.76,1.36,4.53-.46,5.8-1.42A10.36,10.36,0,0,0,44,153.78c.85-2.33,1-3.93.42-4.83S42.25,147.61,39.62,147.61Zm22.1,0c-2.6,0-4.53.47-5.79,1.39a10.42,10.42,0,0,0-3.21,5c-.83,2.3-1,3.89-.4,4.8s2.14,1.36,4.74,1.36,4.52-.46,5.82-1.42a10.46,10.46,0,0,0,3.22-4.95c.84-2.33,1-3.93.39-4.83S64.31,147.61,61.72,147.61Zm412.47,17.15a35.45,35.45,0,0,0-8.95,1.15,30.25,30.25,0,0,0-8.25,3.52,29.08,29.08,0,0,0-6.86,5.91,26.88,26.88,0,0,0-4.75,8.27,18.26,18.26,0,0,0-1.34,7,11.76,11.76,0,0,0,1.3,5.08,11.92,11.92,0,0,0,3.09,3.69,28,28,0,0,0,4.1,2.75c1.46.81,2.88,1.59,4.27,2.31a19,19,0,0,1,3.57,2.33,6.87,6.87,0,0,1,2.13,2.82,5.27,5.27,0,0,1-.17,3.82,12.17,12.17,0,0,1-2,3.49,12,12,0,0,1-3,2.63,14.53,14.53,0,0,1-3.86,1.64,17.21,17.21,0,0,1-4.56.59,19.57,19.57,0,0,1-6.19-.84,20.25,20.25,0,0,1-6.79-3.69,2.93,2.93,0,0,0-1.71-.83,1.9,1.9,0,0,0-1,.28,3.06,3.06,0,0,0-.95.93,10.1,10.1,0,0,0-.95,1.72c-.33.7-.69,1.59-1.06,2.62a18.72,18.72,0,0,0-1,3.57,2.79,2.79,0,0,0,.25,1.9,6.21,6.21,0,0,0,1.6,1.52,14.75,14.75,0,0,0,3.11,1.64,27.14,27.14,0,0,0,4.64,1.34,30.58,30.58,0,0,0,6.1.55,38,38,0,0,0,9.88-1.31,34.33,34.33,0,0,0,9.11-3.92,31.82,31.82,0,0,0,7.58-6.5,29,29,0,0,0,5.21-9.05,17.51,17.51,0,0,0,1.28-6.84,11.58,11.58,0,0,0-1.35-5.06,12,12,0,0,0-3.16-3.7,32.08,32.08,0,0,0-4.15-2.75c-1.46-.81-2.9-1.57-4.32-2.3a20.51,20.51,0,0,1-3.67-2.33,6.71,6.71,0,0,1-2.17-2.82,5.39,5.39,0,0,1,.19-3.78,10.66,10.66,0,0,1,1.55-2.78,9.63,9.63,0,0,1,2.43-2.24,12.4,12.4,0,0,1,3.23-1.47,14.39,14.39,0,0,1,4-.53,15.5,15.5,0,0,1,4.86.68,18.05,18.05,0,0,1,3.53,1.52,22.62,22.62,0,0,1,2.42,1.54,2.91,2.91,0,0,0,1.52.71,1.64,1.64,0,0,0,1-.31,3.18,3.18,0,0,0,.87-1,13.4,13.4,0,0,0,.85-1.67c.29-.66.63-1.49,1-2.47s.57-1.62.74-2.2a10.11,10.11,0,0,0,.37-1.47,3.8,3.8,0,0,0,0-.93,2.1,2.1,0,0,0-.37-.86,5,5,0,0,0-1.61-1.27,17.4,17.4,0,0,0-3.1-1.37,25.7,25.7,0,0,0-4-.95,28,28,0,0,0-4.52-.35Zm210,0a46.76,46.76,0,0,0-14.89,2.38A47.4,47.4,0,0,0,656,174a51.92,51.92,0,0,0-10.83,10.87,56.71,56.71,0,0,0-7.68,14.44,40.36,40.36,0,0,0-2.78,13.92,19,19,0,0,0,2.76,10.42,17.19,17.19,0,0,0,8.13,6.52,34.19,34.19,0,0,0,13.21,2.25c1.79,0,3.59-.08,5.42-.25s3.68-.42,5.54-.76,3.68-.74,5.47-1.21,3.31-.92,4.57-1.36a6.47,6.47,0,0,0,2.83-1.8,8.82,8.82,0,0,0,1.49-2.66l9.48-26a5.92,5.92,0,0,0,.39-1.8,2.58,2.58,0,0,0-.24-1.34,1.81,1.81,0,0,0-.81-.83,2.8,2.8,0,0,0-1.34-.29H669.53a1.71,1.71,0,0,0-.91.29,3.78,3.78,0,0,0-.92.86,9.1,9.1,0,0,0-.94,1.54,22.49,22.49,0,0,0-1,2.37,10.82,10.82,0,0,0-.91,3.87c.07.76.4,1.14,1,1.14h12.39l-5.53,15.17a23.09,23.09,0,0,1-4.59,1.52,22.28,22.28,0,0,1-4.58.5,18.87,18.87,0,0,1-7.79-1.46,10.26,10.26,0,0,1-4.86-4.36,13.85,13.85,0,0,1-1.57-7.14,30.73,30.73,0,0,1,2.1-9.89,39,39,0,0,1,4.87-9.33,34.87,34.87,0,0,1,6.82-7.23,30.4,30.4,0,0,1,8.27-4.65,28.48,28.48,0,0,1,16.68-.73,29.39,29.39,0,0,1,5.07,2,21.07,21.07,0,0,1,3.17,2,3.37,3.37,0,0,0,1.8.91,1.77,1.77,0,0,0,.87-.25,3.52,3.52,0,0,0,.88-.89,11.68,11.68,0,0,0,1-1.7,23,23,0,0,0,1-2.52,19.26,19.26,0,0,0,1.08-3.82,3,3,0,0,0-.25-2,6.4,6.4,0,0,0-1.79-1.68,16.4,16.4,0,0,0-3.68-1.79,33.79,33.79,0,0,0-5.57-1.41A43.22,43.22,0,0,0,684.15,164.8Zm-413.32.81c-1.72,0-3.07,0-4.07.13a5,5,0,0,0-2.32.68,2.8,2.8,0,0,0-1.15,1.6,15.72,15.72,0,0,0-.54,2.86L256.84,228a5.55,5.55,0,0,0,0,2A1.72,1.72,0,0,0,258,231a8.54,8.54,0,0,0,2.57.51c1.14.08,2.68.12,4.63.12s3.36,0,4.52-.12a11.46,11.46,0,0,0,2.88-.54,4.7,4.7,0,0,0,1.85-1.13,9.46,9.46,0,0,0,1.4-1.9l25-41.46h.1L296.28,228a4.85,4.85,0,0,0,0,2,1.66,1.66,0,0,0,1.06,1.11,8.47,8.47,0,0,0,2.57.51c1.13.08,2.66.12,4.58.12,1.71,0,3.15,0,4.29-.12a13.3,13.3,0,0,0,2.91-.51,5.3,5.3,0,0,0,2-1.11,9,9,0,0,0,1.55-2L351,171a27.78,27.78,0,0,0,1.61-3,1.79,1.79,0,0,0,.11-1.65,2,2,0,0,0-1.54-.68,32.92,32.92,0,0,0-3.41-.13c-1.59,0-2.84,0-3.75.13a8.33,8.33,0,0,0-2.19.46,3.08,3.08,0,0,0-1.28.9,11.55,11.55,0,0,0-.92,1.39l-29.66,50h-.09l5.77-49.76a5,5,0,0,0,0-1.62,1.37,1.37,0,0,0-.8-.93,6.11,6.11,0,0,0-2.06-.43c-1-.07-2.22-.1-3.84-.1s-2.75,0-3.68.13a9.47,9.47,0,0,0-2.32.46,3.56,3.56,0,0,0-1.45.93,9.14,9.14,0,0,0-1.1,1.56l-30,49.76h-.05l6.76-50.11a4.45,4.45,0,0,0,.13-1.49,1,1,0,0,0-.66-.8,5.74,5.74,0,0,0-2-.36c-.91-.05-2.15-.08-3.74-.08Zm157.78,0a29.46,29.46,0,0,0-3.25.15,14.63,14.63,0,0,0-2.19.41,3.69,3.69,0,0,0-1.35.66,2.22,2.22,0,0,0-.67.91l-22.48,61.78a1.15,1.15,0,0,0,0,.91,1.31,1.31,0,0,0,.84.65,8,8,0,0,0,1.9.41,27.12,27.12,0,0,0,3.16.15,30,30,0,0,0,3.29-.15,11.4,11.4,0,0,0,2.16-.41,3.49,3.49,0,0,0,1.34-.65,2.17,2.17,0,0,0,.65-.91l22.49-61.78a1.15,1.15,0,0,0,0-.91,1.43,1.43,0,0,0-.85-.66,8.87,8.87,0,0,0-1.87-.41,27,27,0,0,0-3.18-.15Zm-404.48,0a29.89,29.89,0,0,0-3.3.16,14.52,14.52,0,0,0-2.19.4,3.37,3.37,0,0,0-1.33.66,2.33,2.33,0,0,0-.64.91L2.2,207.53A31,31,0,0,0,0,218.47a13.51,13.51,0,0,0,2.35,7.81A13.24,13.24,0,0,0,8.94,231a31.46,31.46,0,0,0,10.51,1.54,42.32,42.32,0,0,0,12.25-1.72,35.1,35.1,0,0,0,18.45-13A42.6,42.6,0,0,0,55.84,207l14.28-39.23a1.2,1.2,0,0,0,0-.91,1.27,1.27,0,0,0-.82-.66,8.73,8.73,0,0,0-1.85-.4,25.29,25.29,0,0,0-3.11-.16,29.9,29.9,0,0,0-3.26.16,14.05,14.05,0,0,0-2.19.4,3.36,3.36,0,0,0-1.3.66,2.23,2.23,0,0,0-.64.91L42.64,207.12a26.21,26.21,0,0,1-3.17,6.15,20.61,20.61,0,0,1-4.32,4.54,18.07,18.07,0,0,1-5.22,2.81,18.28,18.28,0,0,1-5.95,1,13.26,13.26,0,0,1-5.25-.93,6.93,6.93,0,0,1-3.28-2.81,8.69,8.69,0,0,1-1-4.73,21.87,21.87,0,0,1,1.5-6.75L30,167.74a1.19,1.19,0,0,0,0-.91,1.4,1.4,0,0,0-.85-.66,9.11,9.11,0,0,0-1.87-.4,26.25,26.25,0,0,0-3.13-.16Zm490.51,0a29.69,29.69,0,0,0-3.29.16,12.37,12.37,0,0,0-2.19.4,3.49,3.49,0,0,0-1.34.66,2.31,2.31,0,0,0-.63.91l-14.48,39.78a30.81,30.81,0,0,0-2.18,10.95,13.43,13.43,0,0,0,2.33,7.81,13.27,13.27,0,0,0,6.6,4.68A31.4,31.4,0,0,0,510,232.5a42.44,42.44,0,0,0,12.26-1.71,35.11,35.11,0,0,0,18.44-13A42.46,42.46,0,0,0,546.35,207l14.29-39.23a1.11,1.11,0,0,0-.8-1.57,7.75,7.75,0,0,0-1.85-.4,25.52,25.52,0,0,0-3.11-.16,29.9,29.9,0,0,0-3.26.16,12.16,12.16,0,0,0-2.2.4,3.43,3.43,0,0,0-1.3.66,2.31,2.31,0,0,0-.63.91l-14.33,39.38a26.6,26.6,0,0,1-3.17,6.15,21.07,21.07,0,0,1-4.32,4.54,17.6,17.6,0,0,1-5.22,2.81,18.43,18.43,0,0,1-6,1,13.23,13.23,0,0,1-5.24-.94,6.88,6.88,0,0,1-3.28-2.81,8.49,8.49,0,0,1-1-4.73,21.82,21.82,0,0,1,1.49-6.75l14.06-38.62a1.15,1.15,0,0,0,0-.91,1.41,1.41,0,0,0-.84-.66,8,8,0,0,0-1.88-.4,26.13,26.13,0,0,0-3.13-.16Zm113.69.1c-1.22,0-2.23,0-3,.13a8.46,8.46,0,0,0-2,.43A4,4,0,0,0,622,167a2.23,2.23,0,0,0-.64.91l-11.18,30.69q-1.26,3.49-2.58,7.33t-2.46,7.38h0c-.12-1.35-.24-2.7-.4-4s-.31-2.72-.47-4.12-.36-2.8-.58-4.2-.43-2.82-.64-4.28l-4-23.91a18.82,18.82,0,0,0-.67-3.31,5.24,5.24,0,0,0-1.18-2.09,4.33,4.33,0,0,0-2-1.1,12,12,0,0,0-3.11-.32h-7.13a7,7,0,0,0-3.85,1.18,6.86,6.86,0,0,0-2.68,3.57L557,229.47a1.47,1.47,0,0,0-.09.91,1.17,1.17,0,0,0,.66.68,5.79,5.79,0,0,0,1.67.44,24.23,24.23,0,0,0,2.87.15,28.27,28.27,0,0,0,3-.15,9.89,9.89,0,0,0,2-.44,3.37,3.37,0,0,0,1.21-.68,2.41,2.41,0,0,0,.6-.91l12.47-34.23c.93-2.56,1.8-5.05,2.61-7.45s1.59-4.83,2.34-7.26h.1c0,2,.18,4,.39,6.15s.45,4.06.73,5.88l5.15,30.59a35.12,35.12,0,0,0,.77,4.12,7.21,7.21,0,0,0,1.18,2.52,3.88,3.88,0,0,0,1.91,1.3,10.1,10.1,0,0,0,2.94.35h5.65a7.53,7.53,0,0,0,2-.28,6.58,6.58,0,0,0,1.95-.88,8,8,0,0,0,1.63-1.51,7.15,7.15,0,0,0,1.16-2.08l21.4-58.8a1.4,1.4,0,0,0,.08-.91,1.24,1.24,0,0,0-.63-.71,4.28,4.28,0,0,0-1.64-.43,26.73,26.73,0,0,0-2.82-.13Zm-472,.21a5.69,5.69,0,0,0-3.18,1,6.29,6.29,0,0,0-2.3,3.21l-20.76,57c-.53,1.49-.54,2.56,0,3.21a2.92,2.92,0,0,0,2.44,1h32.86a2,2,0,0,0,.95-.28,3.45,3.45,0,0,0,.94-.88,9,9,0,0,0,1-1.6,23.7,23.7,0,0,0,1-2.45,22.93,22.93,0,0,0,.77-2.45,6.17,6.17,0,0,0,.2-1.6,1.34,1.34,0,0,0-.31-.88,1,1,0,0,0-.73-.27H145.57l6.71-18.46h19.77a2,2,0,0,0,.93-.25,3.21,3.21,0,0,0,.93-.84,7.67,7.67,0,0,0,.94-1.54,22.89,22.89,0,0,0,1-2.42,20.08,20.08,0,0,0,.75-2.41,5.17,5.17,0,0,0,.19-1.56,1.24,1.24,0,0,0-.32-.86,1,1,0,0,0-.73-.28H156l5.8-16h23.36a1.7,1.7,0,0,0,.92-.28,3.73,3.73,0,0,0,.93-.88,9.92,9.92,0,0,0,.95-1.6,23.11,23.11,0,0,0,1-2.4,21.7,21.7,0,0,0,.79-2.5,6.34,6.34,0,0,0,.21-1.62,1.26,1.26,0,0,0-.29-.88,1,1,0,0,0-.71-.25Zm54.86,0a5.6,5.6,0,0,0-3.16,1,6.24,6.24,0,0,0-2.31,3.21l-21.62,59.41a1.25,1.25,0,0,0,0,.91,1.3,1.3,0,0,0,.83.66,8.3,8.3,0,0,0,1.9.4,26.38,26.38,0,0,0,3.15.16,29.69,29.69,0,0,0,3.29-.16,12.68,12.68,0,0,0,2.17-.4,3.75,3.75,0,0,0,1.33-.66,2.19,2.19,0,0,0,.66-.91l9.07-24.93h4.15a8.19,8.19,0,0,1,3.5.66,5,5,0,0,1,2.15,1.95,9.18,9.18,0,0,1,1.07,3.21,43.23,43.23,0,0,1,.48,4.4l.55,14.61a2.92,2.92,0,0,0,.12,1,1.29,1.29,0,0,0,.78.71,6,6,0,0,0,1.85.38c.83.07,1.94.11,3.36.11,1.69,0,3,0,4-.11a11.32,11.32,0,0,0,2.35-.35,2.61,2.61,0,0,0,1.2-.63,2.86,2.86,0,0,0,.54-.94,5.71,5.71,0,0,0,.25-1.39,27.52,27.52,0,0,0,0-2.81L232,212.53a33.94,33.94,0,0,0-.45-4.17,15.36,15.36,0,0,0-1-3.29,8.18,8.18,0,0,0-1.53-2.44,8.51,8.51,0,0,0-2.13-1.72,32.17,32.17,0,0,0,6.33-2.53,27.42,27.42,0,0,0,5.34-3.7,25.25,25.25,0,0,0,4.21-4.82,27.78,27.78,0,0,0,3-6,19.5,19.5,0,0,0,1.35-6.91,10,10,0,0,0-1.47-5.2,10.1,10.1,0,0,0-4.07-3.56,20.27,20.27,0,0,0-6.4-1.93c-.87-.1-1.85-.18-2.94-.25s-2.49-.1-4.21-.1Zm159.74,0a5.66,5.66,0,0,0-3.17,1,6.29,6.29,0,0,0-2.3,3.21l-20.76,57c-.54,1.49-.55,2.56,0,3.21a3,3,0,0,0,2.46,1h32.86a1.92,1.92,0,0,0,.94-.28,3.31,3.31,0,0,0,.94-.88,7.93,7.93,0,0,0,1-1.6,21.51,21.51,0,0,0,1-2.45h0a22.93,22.93,0,0,0,.77-2.45,5.7,5.7,0,0,0,.19-1.6,1.24,1.24,0,0,0-.31-.88,1,1,0,0,0-.73-.27H360.17l6.72-18.46h19.76a1.91,1.91,0,0,0,.93-.25,3.11,3.11,0,0,0,.94-.84,8.16,8.16,0,0,0,.94-1.54,22.89,22.89,0,0,0,1-2.42,21.76,21.76,0,0,0,.74-2.41,5.24,5.24,0,0,0,.2-1.56,1.28,1.28,0,0,0-.32-.86,1,1,0,0,0-.73-.28H370.59l5.81-16h23.35a1.76,1.76,0,0,0,.93-.28,3.71,3.71,0,0,0,.92-.88,8.13,8.13,0,0,0,.95-1.6,22.78,22.78,0,0,0,1-2.4,23.07,23.07,0,0,0,.77-2.5,5.92,5.92,0,0,0,.21-1.62,1.26,1.26,0,0,0-.28-.88,1,1,0,0,0-.72-.25Zm-277.34,0a5.71,5.71,0,0,0-3.17,1,6.3,6.3,0,0,0-2.31,3.21l-20.76,57c-.53,1.49-.55,2.55,0,3.21a2.93,2.93,0,0,0,2.45,1h17.4a52.21,52.21,0,0,0,7.32-.48,41.43,41.43,0,0,0,6.59-1.49,36.68,36.68,0,0,0,6.12-2.58,29.57,29.57,0,0,0,5.41-3.73,29.15,29.15,0,0,0,4.47-5,27,27,0,0,0,3.27-6.32,17.19,17.19,0,0,0,1.18-6,10.54,10.54,0,0,0-1.06-4.67,8.53,8.53,0,0,0-2.91-3.26A12.18,12.18,0,0,0,113,196a22.78,22.78,0,0,0,4.65-2.13,22.21,22.21,0,0,0,4-3,23.12,23.12,0,0,0,3.15-3.81,22.6,22.6,0,0,0,2.24-4.48,16.28,16.28,0,0,0,1.17-7.38,8.34,8.34,0,0,0-2.49-5.18,13.12,13.12,0,0,0-5.92-3.06,38.87,38.87,0,0,0-9.81-1Zm5.48,10h6.72a15.49,15.49,0,0,1,4.72.55A5.25,5.25,0,0,1,113,178a4.13,4.13,0,0,1,.87,2.6,10.06,10.06,0,0,1-.67,3.54,13.78,13.78,0,0,1-1.79,3.36,12.76,12.76,0,0,1-2.71,2.78,12.29,12.29,0,0,1-3.53,1.87,15.12,15.12,0,0,1-4.86.69H92.84Zm117.78.2h6a30.89,30.89,0,0,1,3.52.16,14.76,14.76,0,0,1,2.14.39c2,.62,3.23,1.65,3.67,3.14a8.83,8.83,0,0,1-.52,5.46,14.17,14.17,0,0,1-2.11,3.84,13.29,13.29,0,0,1-3.2,3A15.21,15.21,0,0,1,222,194a18.54,18.54,0,0,1-5.2.68h-6.77ZM89.3,202.58h7.89a19.65,19.65,0,0,1,5.68.65,6.62,6.62,0,0,1,3.07,1.87,5,5,0,0,1,1.11,3,10.13,10.13,0,0,1-.71,4.07,13,13,0,0,1-2.19,3.87,13.62,13.62,0,0,1-3.21,2.82A14.23,14.23,0,0,1,97,220.6a18.29,18.29,0,0,1-4.87.57H82.54Z"/></g></svg>
|
assets/img/stripe_logo.svg
ADDED
@@ -0,0 +1,121 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2 |
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3 |
+
|
4 |
+
<svg
|
5 |
+
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
6 |
+
xmlns:cc="http://creativecommons.org/ns#"
|
7 |
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
8 |
+
xmlns:svg="http://www.w3.org/2000/svg"
|
9 |
+
xmlns="http://www.w3.org/2000/svg"
|
10 |
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
11 |
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
12 |
+
width="362"
|
13 |
+
height="151.8"
|
14 |
+
viewBox="0 0 95.779166 40.163749"
|
15 |
+
version="1.1"
|
16 |
+
id="svg5512"
|
17 |
+
inkscape:version="0.92.0 r15299"
|
18 |
+
sodipodi:docname="stripe.svg">
|
19 |
+
<defs
|
20 |
+
id="defs5506" />
|
21 |
+
<sodipodi:namedview
|
22 |
+
id="base"
|
23 |
+
pagecolor="#ffffff"
|
24 |
+
bordercolor="#666666"
|
25 |
+
borderopacity="1.0"
|
26 |
+
inkscape:pageopacity="0.0"
|
27 |
+
inkscape:pageshadow="2"
|
28 |
+
inkscape:zoom="2.2277778"
|
29 |
+
inkscape:cx="180"
|
30 |
+
inkscape:cy="74.899999"
|
31 |
+
inkscape:document-units="mm"
|
32 |
+
inkscape:current-layer="layer1"
|
33 |
+
showgrid="false"
|
34 |
+
fit-margin-top="0"
|
35 |
+
fit-margin-left="0"
|
36 |
+
fit-margin-right="0"
|
37 |
+
fit-margin-bottom="0"
|
38 |
+
units="px"
|
39 |
+
inkscape:window-width="1280"
|
40 |
+
inkscape:window-height="744"
|
41 |
+
inkscape:window-x="-4"
|
42 |
+
inkscape:window-y="-4"
|
43 |
+
inkscape:window-maximized="1" />
|
44 |
+
<metadata
|
45 |
+
id="metadata5509">
|
46 |
+
<rdf:RDF>
|
47 |
+
<cc:Work
|
48 |
+
rdf:about="">
|
49 |
+
<dc:format>image/svg+xml</dc:format>
|
50 |
+
<dc:type
|
51 |
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
52 |
+
<dc:title></dc:title>
|
53 |
+
</cc:Work>
|
54 |
+
</rdf:RDF>
|
55 |
+
</metadata>
|
56 |
+
<g
|
57 |
+
inkscape:label="Layer 1"
|
58 |
+
inkscape:groupmode="layer"
|
59 |
+
id="layer1"
|
60 |
+
transform="translate(24.946428,-325.0345)">
|
61 |
+
<g
|
62 |
+
id="Stripe"
|
63 |
+
transform="matrix(0.26458333,0,0,0.26458333,-38.969344,315.77409)">
|
64 |
+
<path
|
65 |
+
id="path5516"
|
66 |
+
d="m 414,113.4 c 0,-25.6 -12.4,-45.8 -36.1,-45.8 -23.8,0 -38.2,20.2 -38.2,45.6 0,30.1 17,45.3 41.4,45.3 11.9,0 20.9,-2.7 27.7,-6.5 v -20 c -6.8,3.4 -14.6,5.5 -24.5,5.5 -9.7,0 -18.3,-3.4 -19.4,-15.2 h 48.9 c 0,-1.3 0.2,-6.5 0.2,-8.9 z m -49.4,-9.5 c 0,-11.3 6.9,-16 13.2,-16 6.1,0 12.6,4.7 12.6,16 z"
|
67 |
+
class="st0"
|
68 |
+
inkscape:connector-curvature="0"
|
69 |
+
style="clip-rule:evenodd;fill:#6772e5;fill-rule:evenodd" />
|
70 |
+
|
71 |
+
<path
|
72 |
+
id="path5518"
|
73 |
+
d="m 301.1,67.6 c -9.8,0 -16.1,4.6 -19.6,7.8 l -1.3,-6.2 h -22 v 116.6 l 25,-5.3 0.1,-28.3 c 3.6,2.6 8.9,6.3 17.7,6.3 17.9,0 34.2,-14.4 34.2,-46.1 -0.1,-29 -16.6,-44.8 -34.1,-44.8 z m -6,68.9 c -5.9,0 -9.4,-2.1 -11.8,-4.7 l -0.1,-37.1 c 2.6,-2.9 6.2,-4.9 11.9,-4.9 9.1,0 15.4,10.2 15.4,23.3 0,13.4 -6.2,23.4 -15.4,23.4 z"
|
74 |
+
class="st0"
|
75 |
+
inkscape:connector-curvature="0"
|
76 |
+
style="clip-rule:evenodd;fill:#6772e5;fill-rule:evenodd" />
|
77 |
+
|
78 |
+
<polygon
|
79 |
+
id="polygon5520"
|
80 |
+
points="248.9,56.3 248.9,36 223.8,41.3 223.8,61.7 "
|
81 |
+
class="st0"
|
82 |
+
style="clip-rule:evenodd;fill:#6772e5;fill-rule:evenodd" />
|
83 |
+
|
84 |
+
<rect
|
85 |
+
id="rect5522"
|
86 |
+
height="87.5"
|
87 |
+
width="25.1"
|
88 |
+
class="st0"
|
89 |
+
y="69.300003"
|
90 |
+
x="223.8"
|
91 |
+
style="clip-rule:evenodd;fill:#6772e5;fill-rule:evenodd" />
|
92 |
+
|
93 |
+
<path
|
94 |
+
id="path5524"
|
95 |
+
d="m 196.9,76.7 -1.6,-7.4 h -21.6 v 87.5 h 25 V 97.5 c 5.9,-7.7 15.9,-6.3 19,-5.2 v -23 c -3.2,-1.2 -14.9,-3.4 -20.8,7.4 z"
|
96 |
+
class="st0"
|
97 |
+
inkscape:connector-curvature="0"
|
98 |
+
style="clip-rule:evenodd;fill:#6772e5;fill-rule:evenodd" />
|
99 |
+
|
100 |
+
<path
|
101 |
+
id="path5526"
|
102 |
+
d="m 146.9,47.6 -24.4,5.2 -0.1,80.1 c 0,14.8 11.1,25.7 25.9,25.7 8.2,0 14.2,-1.5 17.5,-3.3 V 135 c -3.2,1.3 -19,5.9 -19,-8.9 V 90.6 h 19 V 69.3 h -19 z"
|
103 |
+
class="st0"
|
104 |
+
inkscape:connector-curvature="0"
|
105 |
+
style="clip-rule:evenodd;fill:#6772e5;fill-rule:evenodd" />
|
106 |
+
|
107 |
+
<path
|
108 |
+
id="path5528"
|
109 |
+
d="m 79.3,94.7 c 0,-3.9 3.2,-5.4 8.5,-5.4 7.6,0 17.2,2.3 24.8,6.4 V 72.2 C 104.3,68.9 96.1,67.6 87.8,67.6 67.5,67.6 54,78.2 54,95.9 c 0,27.6 38,23.2 38,35.1 0,4.6 -4,6.1 -9.6,6.1 -8.3,0 -18.9,-3.4 -27.3,-8 v 23.8 c 9.3,4 18.7,5.7 27.3,5.7 20.8,0 35.1,-10.3 35.1,-28.2 -0.1,-29.8 -38.2,-24.5 -38.2,-35.7 z"
|
110 |
+
class="st0"
|
111 |
+
inkscape:connector-curvature="0"
|
112 |
+
style="clip-rule:evenodd;fill:#6772e5;fill-rule:evenodd" />
|
113 |
+
|
114 |
+
</g>
|
115 |
+
</g>
|
116 |
+
<style
|
117 |
+
id="style5514"
|
118 |
+
type="text/css">
|
119 |
+
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#6772E5;}
|
120 |
+
</style>
|
121 |
+
</svg>
|
assets/img/wechat.svg
ADDED
@@ -0,0 +1 @@
|
|
Â
|
1 |
+
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 212.01" preserveAspectRatio="xMidYMid meet"><defs><style>.cls-1{fill:#2e3233;}.cls-2{fill:#9de60b;}</style></defs><title>wechat</title><path class="cls-1" d="M492.35,67.19c16.29-3.93,36.11-.27,46.75,13.64,4.53,5.45,6.45,12.4,8.14,19.16-7.16.11-14.35.11-21.5.11-3.12-15.41-24.28-21.57-35.51-11-7.91,8.61-9.34,21.4-7.7,32.57,1.75,8.56,5.2,18.52,14,22.07,12.6,4.7,27.48-3.69,29.17-17.26,7.29,0,14.61,0,21.93.14-1.52,13.05-7.82,26.64-20.59,32-19.83,8.61-48.21,6-59.69-14.48,1.82-8.36,3.86-17.07,2-25.62C468.3,112.17,465,106.6,463,100.6c0-16.32,14-30.19,29.39-33.41Z"/><path class="cls-2" d="M274.09,69.57c7.84-.06,15.68-.06,23.52-.09,4.66,20.57,7.25,41.62,12.93,62,5.7-16.87,8.34-34.57,13.19-51.68,1.43-5.19,5.5-10.66,11.45-10.28,6.46-.77,10.84,5.21,12.16,10.84C352,97.15,355,114.39,360.18,131.1c5.94-20.16,9.19-40.95,13.53-61.5,7.66-.09,15.3-.09,23,0-6.41,25.79-13.66,51.36-20.23,77.11-1.62,6.41-4.43,13.73-11.3,16.1-7.77,1.77-14.82-4.41-16.7-11.62-4.84-15.45-8.35-31.32-13.12-46.82-3.84,15.41-7.77,30.78-12,46.07-1.59,6.84-7.59,13.87-15.3,12.51-7.43-.85-11.09-8.23-12.72-14.69-7-26.23-14.19-52.44-21.21-78.67Z"/><path class="cls-1" d="M552.42,69.55l21.09,0c0,7.72-.11,15.45.5,23.13,11.3.8,23.69-2.41,34.1,3.32,9,4.82,14.16,15,14.09,25.05.14,14-.05,28,0,42q-10.26.06-20.48.08c-.14-13.43.16-26.86-.06-40.29.27-4.55-3-9.3-7.64-9.82-6.82-.87-13.71-.41-20.55-.28,0,16.78,0,33.57,0,50.37q-10.54,0-21.07,0c0-31.16,0-62.3,0-93.46Zm161.6,0h20c0,7,0,14,0,21,5.34,0,10.68,0,16,0,0,5.18,0,10.39,0,15.57H733.77c.41,11.86-.89,23.86.68,35.68,3.59,4.43,9.93,3.8,15,5.23-.06,5.3-.09,10.59-.09,15.91-11.47.25-27.16,1.75-33-10.73-5.08-14.7-1.28-30.79-2.41-46-5.14,0-10.28-.07-15.41-.14,0-5.14,0-10.28,0-15.39,5.19-.06,10.37-.11,15.57-.13Q714,80,714,69.53Z"/><path class="cls-2" d="M462.37,131.69c.37-13.43-2.62-28.59-14.5-36.64-15.55-9.88-40.43-8.54-50.91,8.16-8.76,14.73-9.23,35.59,2.63,48.85C411,164.9,431.1,165.58,446,159.15c8.21-3.34,12.73-11.32,15.82-19.14q-9.81-.31-19.64-.09c-5.79,6.88-16,9.66-24.13,5.34-5.16-2.5-6.21-8.54-7.82-13.41,17.38-.27,34.77,0,52.16-.16Zm-52.69-14c2.34-7.16,8.25-13.41,16.46-12.12,8.09-1.31,13.59,5.21,15.86,12.14q-16.15.48-32.32,0Z"/><path class="cls-1" d="M695,114c-.4-12.44-11.38-22.25-23.36-23.53s-25.3-1.22-35.1,6.64c-5.2,3.77-6.86,10.25-8.2,16.18,6.11.17,12.23.19,18.36.14,3.48-10.41,17.1-11.73,25.28-6.36,3.09,2.59,2.82,7,3.7,10.56-12.81.51-26.91-2-38.29,5.41-10.84,6.37-12.82,22-6.53,32.17,4.41,6.61,13,7.84,20.37,7.82,14.64.06,29.27,0,43.91,0C695,146.65,695.45,130.3,695,114Zm-47,29.93c-1-3.59,1.08-6.87,2.27-10.07,8.13-1.84,16.5-2.09,24.84-1.91,0,5.71,0,11.39,0,17.1-9-.58-20.15,2.29-27.14-5.12Z"/><path class="cls-2" d="M145,13.23C118.42-1.72,85.33-4,56.75,6.35,38,13.11,21,25.67,10.48,42.78,1,58.21-2.61,77.45,2,95.1c4.6,19.6,18.18,36,34.72,47-3.11,9-6.18,18.09-9.07,27.2,10.46-5.43,20.79-11.09,31.21-16.62a115.88,115.88,0,0,0,39,5.53,67,67,0,0,1-2.69-31.44c2.5-14.59,10.39-27.94,21.29-37.83,18.36-17.2,44.39-24.46,69.16-22.71C181,43.51,165,24.31,145,13.23ZM73.8,54.42C72,63.31,60,67.6,53.06,61.64,45,56,47.25,41.82,56.74,39,66,35.39,76.59,44.83,73.8,54.42Zm64.49-2.58c.08,10.24-13.56,16.62-21.23,9.67-8-5.7-5.7-19.56,3.64-22.44,8.35-3.28,18.24,3.76,17.59,12.77Z"/><path class="cls-1" d="M250.61,114c-6.48-14.68-18.71-26.31-32.91-33.5a90.58,90.58,0,0,0-81.21.29c-17.37,8.93-31.86,24.9-36,44.33-3.4,14.3-.34,29.7,7.23,42.18C119,186,139.44,198,160.67,201.79c15.37,3.13,31.26,1.29,46.18-3,8.94,3.49,17,9.11,25.63,13.27q-3.33-11.26-7.17-22.36c9.71-6.94,18.56-15.55,23.89-26.38a57.19,57.19,0,0,0,1.41-49.3Zm-87.21,5.61c-2.2,6.93-12.32,9-17.18,3.73-5.38-4.88-3.29-15.1,3.76-17.27,7.84-3.3,16.85,5.71,13.42,13.54Zm51,1c-2.68,6.25-12,7.69-16.65,2.85-2.24-2-2.79-5.06-3.68-7.76,1.19-4.87,4.44-9.93,10-10.15C211.73,104.43,218.44,113.71,214.45,120.54Z"/></svg>
|
assets/js/admin/admin-settings.js
ADDED
@@ -0,0 +1,123 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
jQuery(function($) {
|
2 |
+
|
3 |
+
function Settings() {
|
4 |
+
this.params = wc_stripe_setting_params;
|
5 |
+
this.prefix = '#' + $('#wc_stripe_prefix').val();
|
6 |
+
this.init();
|
7 |
+
}
|
8 |
+
|
9 |
+
/**
|
10 |
+
* [init description]
|
11 |
+
* @return {[type]} [description]
|
12 |
+
*/
|
13 |
+
Settings.prototype.init = function() {
|
14 |
+
$('[name^="woocommerce_stripe"]').on('change', this.display_children.bind(this));
|
15 |
+
|
16 |
+
$('select.stripe-accepted-cards').on('select2:select', this.reorder_multiselect);
|
17 |
+
|
18 |
+
$('.api-register-domain').on('click', this.register_domain.bind(this));
|
19 |
+
|
20 |
+
this.display_children();
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* [display_children description]
|
25 |
+
* @param {[type]} e [description]
|
26 |
+
* @return {[type]} [description]
|
27 |
+
*/
|
28 |
+
Settings.prototype.display_children = function(e) {
|
29 |
+
$('[data-show-if]').each(function(i, el) {
|
30 |
+
var $this = $(el);
|
31 |
+
var values = $this.data('show-if');
|
32 |
+
var hidden = [];
|
33 |
+
$.each(values, function(k, v) {
|
34 |
+
$key = $(this.prefix + k);
|
35 |
+
if (hidden.indexOf($this.attr('id')) == -1) {
|
36 |
+
if ($key.is(':checkbox')) {
|
37 |
+
if ($key.is(':checked') == v) {
|
38 |
+
$this.closest('tr').show();
|
39 |
+
} else {
|
40 |
+
$this.closest('tr').hide();
|
41 |
+
hidden.push($this.attr('id'));
|
42 |
+
}
|
43 |
+
} else {
|
44 |
+
if ($key.val() == v) {
|
45 |
+
$this.closest('tr').show();
|
46 |
+
} else {
|
47 |
+
$this.closest('tr').hide();
|
48 |
+
hidden.push($this.attr('id'));
|
49 |
+
}
|
50 |
+
}
|
51 |
+
} else {
|
52 |
+
$this.closest('tr').hide();
|
53 |
+
hidden.push($this.attr('id'));
|
54 |
+
}
|
55 |
+
}.bind(this));
|
56 |
+
}.bind(this));
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
* [reorder_multiselect description]
|
61 |
+
* @param {[type]} e [description]
|
62 |
+
* @return {[type]} [description]
|
63 |
+
*/
|
64 |
+
Settings.prototype.reorder_multiselect = function(e) {
|
65 |
+
var element = e.params.data.element;
|
66 |
+
var $element = $(element);
|
67 |
+
$element.detach();
|
68 |
+
$(this).append($element);
|
69 |
+
$(this).trigger('change');
|
70 |
+
}
|
71 |
+
|
72 |
+
/**
|
73 |
+
* [register_domain description]
|
74 |
+
* @return {[type]} [description]
|
75 |
+
*/
|
76 |
+
Settings.prototype.register_domain = function(e) {
|
77 |
+
e.preventDefault();
|
78 |
+
this.block();
|
79 |
+
$.ajax({
|
80 |
+
url: this.params.routes.apple_domain,
|
81 |
+
dataType: 'json',
|
82 |
+
method: 'POST',
|
83 |
+
data: { _wpnonce: this.params.rest_nonce }
|
84 |
+
}).done(function(response) {
|
85 |
+
this.unblock();
|
86 |
+
if (response.code) {
|
87 |
+
window.alert(response.message);
|
88 |
+
} else {
|
89 |
+
window.alert(response.message);
|
90 |
+
}
|
91 |
+
}.bind(this)).fail(function(xhr, textStatus, errorThrown) {
|
92 |
+
this.unblock();
|
93 |
+
window.alert(errorThrown);
|
94 |
+
}.bind(this))
|
95 |
+
}
|
96 |
+
|
97 |
+
/**
|
98 |
+
* [block description]
|
99 |
+
* @param {[type]} $el [description]
|
100 |
+
* @return {[type]} [description]
|
101 |
+
*/
|
102 |
+
Settings.prototype.block = function() {
|
103 |
+
$('.wc-stripe-settings-container').block({
|
104 |
+
message: null,
|
105 |
+
overlayCSS: {
|
106 |
+
background: '#fff',
|
107 |
+
opacity: 0.6
|
108 |
+
}
|
109 |
+
});
|
110 |
+
}
|
111 |
+
|
112 |
+
/**
|
113 |
+
* [unblock description]
|
114 |
+
* @param {[type]} $el [description]
|
115 |
+
* @return {[type]} [description]
|
116 |
+
*/
|
117 |
+
Settings.prototype.unblock = function() {
|
118 |
+
$('.wc-stripe-settings-container').unblock();
|
119 |
+
}
|
120 |
+
|
121 |
+
new Settings();
|
122 |
+
|
123 |
+
});
|
assets/js/admin/googlepay.js
ADDED
@@ -0,0 +1,37 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
(function($) {
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @constructor
|
5 |
+
*/
|
6 |
+
function Settings() {
|
7 |
+
$(document.body).on('change', '.gpay-button-option', this.update_button.bind(this));
|
8 |
+
this.init();
|
9 |
+
}
|
10 |
+
|
11 |
+
Settings.prototype.init = function() {
|
12 |
+
this.create_payments_client();
|
13 |
+
this.update_button();
|
14 |
+
}
|
15 |
+
|
16 |
+
Settings.prototype.create_payments_client = function() {
|
17 |
+
this.paymentsClient = new google.payments.api.PaymentsClient({ environment: "TEST" });
|
18 |
+
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
* @return {[type]}
|
22 |
+
*/
|
23 |
+
Settings.prototype.update_button = function() {
|
24 |
+
if (this.$button) {
|
25 |
+
this.$button.remove();
|
26 |
+
}
|
27 |
+
this.$button = $(this.paymentsClient.createButton({
|
28 |
+
onClick: function() {},
|
29 |
+
buttonColor: $('.button-color').val(),
|
30 |
+
buttonType: $('.button-style').val()
|
31 |
+
}));
|
32 |
+
$('#gpay-button').append(this.$button);
|
33 |
+
}
|
34 |
+
|
35 |
+
new Settings();
|
36 |
+
|
37 |
+
}(jQuery))
|
assets/js/admin/help-widget.js
ADDED
@@ -0,0 +1,26 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
window.zESettings = {
|
2 |
+
webWidget: {
|
3 |
+
color: {
|
4 |
+
theme: '#6772e5'
|
5 |
+
},
|
6 |
+
position: { horizontal: 'right', vertical: 'bottom' },
|
7 |
+
zIndex: 9999999999,
|
8 |
+
launcher: {
|
9 |
+
label: {
|
10 |
+
'en-US': 'Help'
|
11 |
+
}
|
12 |
+
},
|
13 |
+
contactForm: {
|
14 |
+
title: {
|
15 |
+
'en-US': 'Contact Payment Plugins',
|
16 |
+
},
|
17 |
+
fields: [{id: '360024242873', prefill: {'*': 'Stripe'}}]
|
18 |
+
},
|
19 |
+
helpCenter: {
|
20 |
+
suppress: true
|
21 |
+
}
|
22 |
+
}
|
23 |
+
}
|
24 |
+
|
25 |
+
|
26 |
+
window.zEmbed||function(e,t){var n,o,d,i,s,a=[],r=document.createElement("iframe");window.zEmbed=function(){a.push(arguments)},window.zE=window.zE||window.zEmbed,r.src="javascript:false",r.title="",r.role="presentation",(r.frameElement||r).style.cssText="display: none",d=document.getElementsByTagName("script"),d=d[d.length-1],d.parentNode.insertBefore(r,d),i=r.contentWindow,s=i.document;try{o=s}catch(e){n=document.domain,r.src='javascript:var d=document.open();d.domain="'+n+'";void(0);',o=s}o.open()._l=function(){var o=this.createElement("script");n&&(this.domain=n),o.id="js-iframe-async",o.src=e,this.t=+new Date,this.zendeskHost=t,this.zEQueue=a,this.body.appendChild(o)},o.write('<body onload="document._l();">'),o.close()}("https://assets.zendesk.com/embeddable_framework/main.js","paymentplugins.zendesk.com");
|
assets/js/admin/meta-boxes-order.js
ADDED
@@ -0,0 +1,145 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
(function($) {
|
2 |
+
/**
|
3 |
+
* @constructor
|
4 |
+
*/
|
5 |
+
function MetaBox() {
|
6 |
+
this.params = wc_stripe_order_metabox_params;
|
7 |
+
this.initialize();
|
8 |
+
}
|
9 |
+
|
10 |
+
MetaBox.prototype.initialize = function() {
|
11 |
+
$(document.body).on('click', '.do-transaction-view',
|
12 |
+
this.render_charge_view.bind(this)).on('click',
|
13 |
+
'.do-api-capture', this.do_api_capture.bind(this)).on('click',
|
14 |
+
'.do-api-cancel', this.do_api_cancel.bind(this)).on('click', '.wc-stripe-pay-order', this.open_pay_order_modal.bind(this));
|
15 |
+
}
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Fetch the charge view data and render the modal.
|
19 |
+
*/
|
20 |
+
MetaBox.prototype.render_charge_view = function(e) {
|
21 |
+
e.preventDefault();
|
22 |
+
var $icon = $(e.target);
|
23 |
+
$icon.addClass('disabled');
|
24 |
+
if (!$icon.data('charge')) {
|
25 |
+
$.when($.ajax({
|
26 |
+
method: 'GET',
|
27 |
+
dataType: 'json',
|
28 |
+
url: this.params.routes.charge_view,
|
29 |
+
data: {
|
30 |
+
order_id: $icon.data('order'),
|
31 |
+
_wpnonce: this.params._wpnonce
|
32 |
+
}
|
33 |
+
})).done(function(response) {
|
34 |
+
if (!response.code) {
|
35 |
+
$icon.data('charge', response.data);
|
36 |
+
$icon.removeClass('disabled');
|
37 |
+
$icon.WCBackboneModal({
|
38 |
+
template: 'wc-stripe-view-transaction',
|
39 |
+
variable: response.data
|
40 |
+
});
|
41 |
+
} else {
|
42 |
+
window.alert(response.message);
|
43 |
+
}
|
44 |
+
}.bind(this)).fail(function(jqXHR, textStatus, errorThrown) {
|
45 |
+
$icon.removeClass('disabled');
|
46 |
+
window.alert(errorThrown);
|
47 |
+
}.bind(this))
|
48 |
+
} else {
|
49 |
+
$icon.WCBackboneModal({
|
50 |
+
template: 'wc-stripe-view-transaction',
|
51 |
+
variable: $icon.data('charge')
|
52 |
+
});
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
*
|
58 |
+
*/
|
59 |
+
MetaBox.prototype.do_api_capture = function(e) {
|
60 |
+
e.preventDefault();
|
61 |
+
var $modal = $('.wc-transaction-data');
|
62 |
+
this.block($modal);
|
63 |
+
$.when($.ajax({
|
64 |
+
method: 'POST',
|
65 |
+
dataType: 'json',
|
66 |
+
url: this.params.routes.capture,
|
67 |
+
data: {
|
68 |
+
_wpnonce: this.params._wpnonce,
|
69 |
+
order_id: $('#post_ID').val(),
|
70 |
+
amount: $('[name="capture_amount"]').val()
|
71 |
+
},
|
72 |
+
}).done(function(response) {
|
73 |
+
if (!response.code) {
|
74 |
+
window.location.reload();
|
75 |
+
} else {
|
76 |
+
this.unblock($modal);
|
77 |
+
window.alert(response.message);
|
78 |
+
}
|
79 |
+
}.bind(this))).fail(function(jqXHR, textStatus, errorThrown) {
|
80 |
+
this.unblock($modal);
|
81 |
+
window.alert(errorThrown);
|
82 |
+
}.bind(this));
|
83 |
+
}
|
84 |
+
|
85 |
+
/**
|
86 |
+
*
|
87 |
+
*/
|
88 |
+
MetaBox.prototype.do_api_cancel = function(e) {
|
89 |
+
e.preventDefault();
|
90 |
+
var $modal = $('.wc-transaction-data');
|
91 |
+
this.block($modal);
|
92 |
+
$.when($.ajax({
|
93 |
+
method: 'POST',
|
94 |
+
dataType: 'json',
|
95 |
+
url: this.params.routes.void,
|
96 |
+
data: {
|
97 |
+
_wpnonce: this.params._wpnonce,
|
98 |
+
order_id: $('#post_ID').val()
|
99 |
+
},
|
100 |
+
}).done(function(response) {
|
101 |
+
if (!response.code) {
|
102 |
+
window.location.reload();
|
103 |
+
} else {
|
104 |
+
this.unblock($modal);
|
105 |
+
window.alert(response.message);
|
106 |
+
}
|
107 |
+
}.bind(this))).fail(function(jqXHR, textStatus, errorThrown) {
|
108 |
+
this.unblock($modal);
|
109 |
+
window.alert(errorThrown);
|
110 |
+
}.bind(this));
|
111 |
+
}
|
112 |
+
|
113 |
+
MetaBox.prototype.open_pay_order_modal = function(e) {
|
114 |
+
e.preventDefault();
|
115 |
+
$(e.target).WCStripePayOrderBackboneModal({
|
116 |
+
template: 'wc-stripe-modal-pay-order',
|
117 |
+
params: {
|
118 |
+
payment_methods: wc_stripe_order_pay_params.payment_methods,
|
119 |
+
order_id: $('#post_ID').val()
|
120 |
+
}
|
121 |
+
})
|
122 |
+
}
|
123 |
+
|
124 |
+
/**
|
125 |
+
*
|
126 |
+
*/
|
127 |
+
MetaBox.prototype.block = function($el) {
|
128 |
+
$el.block({
|
129 |
+
message: null,
|
130 |
+
overlayCSS: {
|
131 |
+
background: '#fff',
|
132 |
+
opacity: 0.6
|
133 |
+
}
|
134 |
+
});
|
135 |
+
}
|
136 |
+
|
137 |
+
/**
|
138 |
+
*
|
139 |
+
*/
|
140 |
+
MetaBox.prototype.unblock = function($el) {
|
141 |
+
$el.unblock();
|
142 |
+
}
|
143 |
+
|
144 |
+
new MetaBox();
|
145 |
+
}(jQuery))
|
assets/js/admin/modals.js
ADDED
@@ -0,0 +1,126 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
(function($) {
|
2 |
+
|
3 |
+
$.fn.WCStripePayOrderBackboneModal = function(options) {
|
4 |
+
return this.each(function() {
|
5 |
+
new $.WCStripePayOrderBackboneModal($(this), options);
|
6 |
+
})
|
7 |
+
}
|
8 |
+
|
9 |
+
$.WCStripePayOrderBackboneModal = function(element, options) {
|
10 |
+
var settings = $.extend({}, $.WCBackboneModal.defaultOptions, options);
|
11 |
+
|
12 |
+
if (settings.template) {
|
13 |
+
new $.WCStripePayOrderBackboneModal.View({
|
14 |
+
target: settings.template,
|
15 |
+
string: settings.params
|
16 |
+
});
|
17 |
+
}
|
18 |
+
}
|
19 |
+
|
20 |
+
$.WCStripePayOrderBackboneModal.View = $.WCBackboneModal.View.extend({
|
21 |
+
events: _.extend($.WCBackboneModal.View.prototype.events, {
|
22 |
+
'click #pay-order': 'pay_order',
|
23 |
+
'change [name="payment_type"]': 'payment_type'
|
24 |
+
}),
|
25 |
+
render: function() {
|
26 |
+
$.WCBackboneModal.View.prototype.render.apply(this, arguments);
|
27 |
+
this.$el.find('.wc-select2').select2();
|
28 |
+
this.init_card_element();
|
29 |
+
this.payment_type();
|
30 |
+
},
|
31 |
+
init_card_element: function() {
|
32 |
+
this.stripe = Stripe(wc_stripe_order_pay_params.api_key);
|
33 |
+
var elements = this.stripe.elements();
|
34 |
+
this.card = elements.create('card', {
|
35 |
+
style: {
|
36 |
+
'base': {
|
37 |
+
'color': '#32325d',
|
38 |
+
'fontFamily': '"Helvetica Neue", Helvetica, sans-serif',
|
39 |
+
'fontSmoothing': 'antialiased',
|
40 |
+
'fontSize': '18px',
|
41 |
+
'::placeholder': {
|
42 |
+
'color': '#aab7c4'
|
43 |
+
}
|
44 |
+
|
45 |
+
}
|
46 |
+
}
|
47 |
+
});
|
48 |
+
this.card.mount('#card-element');
|
49 |
+
},
|
50 |
+
pay_order: function(e) {
|
51 |
+
e.preventDefault();
|
52 |
+
if (!this.use_token()) {
|
53 |
+
this.stripe.createPaymentMethod('card', this.card, {
|
54 |
+
billing_details: {
|
55 |
+
name: $('#_billing_first_name').val() + ' ' + $('#_billing_last_name').val(),
|
56 |
+
email: $('#_billing_email').val(),
|
57 |
+
phone: $('#_billing_phone').val(),
|
58 |
+
address: {
|
59 |
+
city: $('#_billing_city').val(),
|
60 |
+
country: $('#_billing_country').val(),
|
61 |
+
line1: $('#_billing_address_1').val(),
|
62 |
+
line2: $('#_billing_address_2').val(),
|
63 |
+
state: $('#_billing_state').val()
|
64 |
+
}
|
65 |
+
}
|
66 |
+
}).then(function(result) {
|
67 |
+
$('[name="payment_nonce"]').val(result.paymentMethod.id);
|
68 |
+
this.api_pay_order();
|
69 |
+
}.bind(this));
|
70 |
+
} else {
|
71 |
+
this.api_pay_order()
|
72 |
+
}
|
73 |
+
},
|
74 |
+
api_pay_order: function() {
|
75 |
+
this.block();
|
76 |
+
$.ajax({
|
77 |
+
url: wc_stripe_order_metabox_params.routes.pay,
|
78 |
+
dataType: 'json',
|
79 |
+
method: 'POST',
|
80 |
+
data: $('#wc-stripe-pay-order-form').serialize(),
|
81 |
+
beforeSend: function(xhr) {
|
82 |
+
xhr.setRequestHeader('X-WP-Nonce', wc_stripe_order_metabox_params._wpnonce);
|
83 |
+
}
|
84 |
+
}).done(function(response) {
|
85 |
+
if (response.code) {
|
86 |
+
this.unblock();
|
87 |
+
this.add_messages(response.message);
|
88 |
+
} else {
|
89 |
+
window.location.href = window.location.href;
|
90 |
+
}
|
91 |
+
}.bind(this)).fail(function(xhr, textStatus, errorThrown) {
|
92 |
+
this.add_messages(errorThrown);
|
93 |
+
this.unblock();
|
94 |
+
}.bind(this))
|
95 |
+
},
|
96 |
+
payment_type: function(e) {
|
97 |
+
var val = this.$el.find('[name="payment_type"]:checked').val();
|
98 |
+
var show_if = '.show_if_' + val,
|
99 |
+
hide_if = '.hide_if_' + val;
|
100 |
+
this.$el.find(show_if).show();
|
101 |
+
this.$el.find(hide_if).hide();
|
102 |
+
},
|
103 |
+
block: function() {
|
104 |
+
this.$el.find('.wc-backbone-modal-content').block({
|
105 |
+
message: null,
|
106 |
+
overlayCSS: {
|
107 |
+
background: '#fff',
|
108 |
+
opacity: 0.6
|
109 |
+
}
|
110 |
+
});
|
111 |
+
},
|
112 |
+
unblock: function() {
|
113 |
+
this.$el.find('.wc-backbone-modal-content').unblock();
|
114 |
+
},
|
115 |
+
add_messages: function(messages) {
|
116 |
+
this.$el.find('.woocommerce-error').remove();
|
117 |
+
this.$el.find('form').prepend(messages);
|
118 |
+
},
|
119 |
+
use_token: function() {
|
120 |
+
return this.$el.find('[name="payment_type"]:checked').val() === 'token';
|
121 |
+
},
|
122 |
+
set_nonce: function(value) {
|
123 |
+
this.$el.find('[name="payment_nonce"]').val(value);
|
124 |
+
}
|
125 |
+
});
|
126 |
+
}(jQuery));
|
assets/js/frontend/applepay-cart.js
ADDED
@@ -0,0 +1,40 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
(function($, wc_stripe) {
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @constructor
|
5 |
+
*/
|
6 |
+
function ApplePay() {
|
7 |
+
wc_stripe.BaseGateway.call(this, wc_stripe_applepay_cart_params);
|
8 |
+
wc_stripe.CartGateway.call(this);
|
9 |
+
this.canMakePayment().then(function() {
|
10 |
+
$(this.container).addClass('active');
|
11 |
+
}.bind(this));
|
12 |
+
|
13 |
+
}
|
14 |
+
|
15 |
+
/**
|
16 |
+
* [prototype description]
|
17 |
+
* @type {[type]}
|
18 |
+
*/
|
19 |
+
ApplePay.prototype = $.extend({}, wc_stripe.BaseGateway.prototype, wc_stripe.CartGateway.prototype, wc_stripe.ApplePay.prototype);
|
20 |
+
|
21 |
+
/**
|
22 |
+
* @return {[type]}
|
23 |
+
*/
|
24 |
+
ApplePay.prototype.append_button = function() {
|
25 |
+
$('#wc-stripe-applepay-container').append(this.$button);
|
26 |
+
}
|
27 |
+
|
28 |
+
/**
|
29 |
+
* @return {[type]}
|
30 |
+
*/
|
31 |
+
ApplePay.prototype.updated_html = function() {
|
32 |
+
if (this.can_pay) {
|
33 |
+
this.create_button();
|
34 |
+
$(this.container).show().addClass('active');
|
35 |
+
}
|
36 |
+
}
|
37 |
+
|
38 |
+
new ApplePay();
|
39 |
+
|
40 |
+
}(jQuery, window.wc_stripe))
|
assets/js/frontend/applepay-checkout.js
ADDED
@@ -0,0 +1,56 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
(function($, wc_stripe) {
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @constructor
|
5 |
+
*/
|
6 |
+
function ApplePay() {
|
7 |
+
wc_stripe.BaseGateway.call(this, wc_stripe_applepay_checkout_params);
|
8 |
+
wc_stripe.CheckoutGateway.call(this);
|
9 |
+
}
|
10 |
+
|
11 |
+
/**
|
12 |
+
* [prototype description]
|
13 |
+
* @type {[type]}
|
14 |
+
*/
|
15 |
+
ApplePay.prototype = $.extend({}, wc_stripe.BaseGateway.prototype, wc_stripe.CheckoutGateway.prototype, wc_stripe.ApplePay.prototype);
|
16 |
+
|
17 |
+
ApplePay.prototype.canMakePayment = function() {
|
18 |
+
wc_stripe.ApplePay.prototype.canMakePayment.apply(this, arguments).then(function() {
|
19 |
+
if (this.banner_enabled()) {
|
20 |
+
var $button = $(this.params.button);
|
21 |
+
$button.addClass('banner-checkout');
|
22 |
+
$(this.banner_container).append($button);
|
23 |
+
}
|
24 |
+
}.bind(this))
|
25 |
+
}
|
26 |
+
|
27 |
+
/**
|
28 |
+
* @return {[type]}
|
29 |
+
*/
|
30 |
+
ApplePay.prototype.append_button = function() {
|
31 |
+
$('#place_order').parent().append(this.$button);
|
32 |
+
this.trigger_payment_method_selected();
|
33 |
+
}
|
34 |
+
|
35 |
+
ApplePay.prototype.updated_checkout = function() {
|
36 |
+
if (this.can_pay) {
|
37 |
+
this.create_button();
|
38 |
+
$(this.container).show();
|
39 |
+
}
|
40 |
+
}
|
41 |
+
|
42 |
+
/**
|
43 |
+
* [Wrapper for main start function]
|
44 |
+
* @param {[@event]} e [description]
|
45 |
+
*/
|
46 |
+
ApplePay.prototype.start = function(e) {
|
47 |
+
if ($(e.target).is('.banner-checkout')) {
|
48 |
+
this.set_payment_method(this.gateway_id);
|
49 |
+
this.set_use_new_option(true);
|
50 |
+
}
|
51 |
+
wc_stripe.ApplePay.prototype.start.apply(this, arguments);
|
52 |
+
}
|
53 |
+
|
54 |
+
new ApplePay();
|
55 |
+
|
56 |
+
}(jQuery, window.wc_stripe))
|
assets/js/frontend/applepay-product.js
ADDED
@@ -0,0 +1,47 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
(function($, wc_stripe) {
|
2 |
+
|
3 |
+
function ApplePay() {
|
4 |
+
wc_stripe.BaseGateway.call(this, wc_stripe_applepay_product_params);
|
5 |
+
wc_stripe.ProductGateway.call(this);
|
6 |
+
}
|
7 |
+
|
8 |
+
/**
|
9 |
+
* [prototype description]
|
10 |
+
* @type {[type]}
|
11 |
+
*/
|
12 |
+
ApplePay.prototype = $.extend({}, wc_stripe.BaseGateway.prototype, wc_stripe.ProductGateway.prototype, wc_stripe.ApplePay.prototype);
|
13 |
+
|
14 |
+
/**
|
15 |
+
* @return {[type]}
|
16 |
+
*/
|
17 |
+
ApplePay.prototype.canMakePayment = function() {
|
18 |
+
wc_stripe.ApplePay.prototype.canMakePayment.call(this).then(function() {
|
19 |
+
$('[name="quantity"]').val(0);
|
20 |
+
// Apple Pay is enable, so add to cart each time the user updates quantity.
|
21 |
+
$(document.body).on('change', '[name="quantity"]', this.add_to_cart.bind(this));
|
22 |
+
}.bind(this))
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* @param {[type]}
|
27 |
+
* @return {[type]}
|
28 |
+
*/
|
29 |
+
ApplePay.prototype.start = function(e) {
|
30 |
+
if (this.get_quantity() == 0) {
|
31 |
+
e.preventDefault();
|
32 |
+
this.submit_error(this.params.messages.invalid_amount);
|
33 |
+
} else {
|
34 |
+
wc_stripe.ApplePay.prototype.start.apply(this, arguments);
|
35 |
+
}
|
36 |
+
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* @return {[type]}
|
40 |
+
*/
|
41 |
+
ApplePay.prototype.append_button = function() {
|
42 |
+
$('#wc-stripe-applepay-container').append(this.$button);
|
43 |
+
}
|
44 |
+
|
45 |
+
new ApplePay();
|
46 |
+
|
47 |
+
}(jQuery, wc_stripe))
|
assets/js/frontend/credit-card.js
ADDED
@@ -0,0 +1,296 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
(function($, wc_stripe) {
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Credit card class.
|
5 |
+
*
|
6 |
+
* @constructor
|
7 |
+
*/
|
8 |
+
function CC() {
|
9 |
+
wc_stripe.BaseGateway.call(this, wc_stripe_credit_card_params);
|
10 |
+
wc_stripe.CheckoutGateway.call(this);
|
11 |
+
window.addEventListener('hashchange', this.hashChange.bind(this));
|
12 |
+
}
|
13 |
+
|
14 |
+
const elementClasses = {
|
15 |
+
focus: 'focused',
|
16 |
+
empty: 'empty',
|
17 |
+
invalid: 'invalid'
|
18 |
+
}
|
19 |
+
|
20 |
+
CC.prototype = $.extend({}, wc_stripe.BaseGateway.prototype,
|
21 |
+
wc_stripe.CheckoutGateway.prototype);
|
22 |
+
|
23 |
+
/**
|
24 |
+
*
|
25 |
+
*/
|
26 |
+
CC.prototype.initialize = function() {
|
27 |
+
$(document.body).on('click', '#place_order', this.place_order.bind(this));
|
28 |
+
this.setup_card();
|
29 |
+
this.create_card_element();
|
30 |
+
|
31 |
+
if (this.is_add_payment_method_page() || this.get_total_price_cents() == 0) {
|
32 |
+
this.create_setup_intent().then(function(response) {
|
33 |
+
if (response.code) {
|
34 |
+
this.submit_error(response.message);
|
35 |
+
} else {
|
36 |
+
this.client_secret = response.intent.client_secret;
|
37 |
+
}
|
38 |
+
}.bind(this))
|
39 |
+
}
|
40 |
+
}
|
41 |
+
|
42 |
+
/**
|
43 |
+
*
|
44 |
+
*/
|
45 |
+
CC.prototype.setup_card = function() {
|
46 |
+
if (this.is_custom_form()) {
|
47 |
+
// create individual card sections
|
48 |
+
this.cardNumber = this.elements.create('cardNumber', {
|
49 |
+
style: this.params.style,
|
50 |
+
classes: elementClasses
|
51 |
+
});
|
52 |
+
this.cardNumber.on('change', this.card_number_change.bind(this));
|
53 |
+
this.cardExpiry = this.elements.create('cardExpiry', {
|
54 |
+
style: this.params.style,
|
55 |
+
classes: elementClasses
|
56 |
+
});
|
57 |
+
this.cardCvc = this.elements.create('cardCvc', {
|
58 |
+
style: this.params.style,
|
59 |
+
classes: elementClasses
|
60 |
+
});
|
61 |
+
$(document.body).on('change', '#billing_postcode', function(e) {
|
62 |
+
var val = $('#billing_postcode').val();
|
63 |
+
$('#stripe-postal-code').val(val).trigger('keyup');
|
64 |
+
}.bind(this));
|
65 |
+
} else {
|
66 |
+
this.card = this.elements.create('card', {
|
67 |
+
value: {
|
68 |
+
postalCode: $('#billing_postcode').val()
|
69 |
+
},
|
70 |
+
style: this.params.style,
|
71 |
+
iconStyle: 'default'
|
72 |
+
});
|
73 |
+
}
|
74 |
+
// setup a timeout so CC element is always rendered.
|
75 |
+
setInterval(this.create_card_element.bind(this), 2000);
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
*
|
80 |
+
*/
|
81 |
+
CC.prototype.create_card_element = function() {
|
82 |
+
if (this.is_custom_form()) {
|
83 |
+
if ($('#wc-stripe-cc-custom-form').length && $('#wc-stripe-cc-custom-form').find('iframe').length == 0) {
|
84 |
+
if ($('#stripe-card-number').length) {
|
85 |
+
this.cardNumber.mount('#stripe-card-number');
|
86 |
+
$('#stripe-card-number').prepend(this.params.html.card_brand);
|
87 |
+
}
|
88 |
+
if ($('#stripe-exp').length) {
|
89 |
+
this.cardExpiry.mount('#stripe-exp');
|
90 |
+
}
|
91 |
+
if ($('#stripe-cvv').length) {
|
92 |
+
this.cardCvc.mount('#stripe-cvv');
|
93 |
+
}
|
94 |
+
if ($('#stripe-postal-code').length) {
|
95 |
+
$('#stripe-postal-code, .postalCode').on('focus', function(e) {
|
96 |
+
$('#stripe-postal-code').addClass('focused');
|
97 |
+
}.bind(this));
|
98 |
+
$('#stripe-postal-code, .postalCode').on('blur', function(e) {
|
99 |
+
$('#stripe-postal-code').removeClass('focused').trigger('keyup');
|
100 |
+
}.bind(this));
|
101 |
+
$('#stripe-postal-code').on('keyup', function(e) {
|
102 |
+
if ($('#stripe-postal-code').val() == 0) {
|
103 |
+
$('#stripe-postal-code').addClass('empty');
|
104 |
+
} else {
|
105 |
+
$('#stripe-postal-code').removeClass('empty');
|
106 |
+
}
|
107 |
+
}.bind(this))
|
108 |
+
$('#stripe-postal-code').trigger('keyup');
|
109 |
+
}
|
110 |
+
}
|
111 |
+
} else {
|
112 |
+
if ($('#wc-stripe-card-element').length) {
|
113 |
+
if ($('#wc-stripe-card-element').find('iframe').length == 0) {
|
114 |
+
this.card.mount('#wc-stripe-card-element');
|
115 |
+
this.card.update({
|
116 |
+
value: {
|
117 |
+
postalCode: $('#billing_postcode').val()
|
118 |
+
}
|
119 |
+
});
|
120 |
+
}
|
121 |
+
}
|
122 |
+
}
|
123 |
+
}
|
124 |
+
|
125 |
+
/**
|
126 |
+
*
|
127 |
+
*/
|
128 |
+
CC.prototype.hashChange = function(e) {
|
129 |
+
if (this.is_gateway_selected()) {
|
130 |
+
var matches = e.newURL.match(/payment-intent=(.+):(\d+)/);
|
131 |
+
if (matches[1]) {
|
132 |
+
this.stripe.handleCardAction(matches[1]).then(function(result) {
|
133 |
+
if (result.error) {
|
134 |
+
this.payment_token_received = false;
|
135 |
+
this.submit_error(result.error.message);
|
136 |
+
return;
|
137 |
+
}
|
138 |
+
var $form = $(this.token_selector).closest('form');
|
139 |
+
$form.unblock().removeClass('processing');
|
140 |
+
$form.submit();
|
141 |
+
}.bind(this)).catch(function(error) {
|
142 |
+
this.submit_error(error.message);
|
143 |
+
}.bind(this))
|
144 |
+
return false;
|
145 |
+
}
|
146 |
+
return true;
|
147 |
+
}
|
148 |
+
return true;
|
149 |
+
}
|
150 |
+
|
151 |
+
/**
|
152 |
+
*
|
153 |
+
*/
|
154 |
+
CC.prototype.place_order = function(e) {
|
155 |
+
if (this.is_gateway_selected()) {
|
156 |
+
if (this.is_add_payment_method_page() || (this.get_total_price_cents() == 0 && !this.is_saved_method_selected())) {
|
157 |
+
e.preventDefault();
|
158 |
+
this.stripe.handleCardSetup(this.client_secret, this.is_custom_form() ? this.cardNumber : this.card).then(function(result) {
|
159 |
+
if (result.error) {
|
160 |
+
this.submit_error(result.error.message);
|
161 |
+
return;
|
162 |
+
}
|
163 |
+
this.on_setup_intent_received(result.setupIntent.payment_method);
|
164 |
+
}.bind(this))
|
165 |
+
} else {
|
166 |
+
if (!this.payment_token_received &&
|
167 |
+
!this.is_saved_method_selected()) {
|
168 |
+
e.preventDefault();
|
169 |
+
this.stripe.createPaymentMethod(
|
170 |
+
'card',
|
171 |
+
this.is_custom_form() ? this.cardNumber : this.card, {
|
172 |
+
billing_details: {
|
173 |
+
name: $('#billing_first_name').val() + ' ' + $('#billing_last_name').val(),
|
174 |
+
email: $('#billing_email').val(),
|
175 |
+
phone: $('#billing_phone').val(),
|
176 |
+
address: {
|
177 |
+
city: $('#billing_city').val(),
|
178 |
+
country: $('#billing_country').val(),
|
179 |
+
line1: $('#billing_address_1').val(),
|
180 |
+
line2: $('#billing_address_2').val(),
|
181 |
+
postal_code: this.get_postal_code(),
|
182 |
+
state: $('#billing_state').val()
|
183 |
+
}
|
184 |
+
}
|
185 |
+
}).then(function(result) {
|
186 |
+
if (result.error) {
|
187 |
+
this.submit_error(result.error.message);
|
188 |
+
return;
|
189 |
+
}
|
190 |
+
this.on_token_received(result.paymentMethod);
|
191 |
+
}.bind(this))
|
192 |
+
}
|
193 |
+
}
|
194 |
+
}
|
195 |
+
}
|
196 |
+
|
197 |
+
/**
|
198 |
+
*
|
199 |
+
*/
|
200 |
+
CC.prototype.create_setup_intent = function() {
|
201 |
+
return new Promise(function(resolve, reject) {
|
202 |
+
// call intent api
|
203 |
+
$.when($.ajax({
|
204 |
+
method: 'GET',
|
205 |
+
dataType: 'json',
|
206 |
+
url: this.params.routes.setup_intent,
|
207 |
+
beforeSend: function(xhr) {
|
208 |
+
xhr.setRequestHeader('X-WP-Nonce', this.params.rest_nonce);
|
209 |
+
}.bind(this)
|
210 |
+
})).done(function(response) {
|
211 |
+
if (response.code) {
|
212 |
+
reject(response);
|
213 |
+
} else {
|
214 |
+
resolve(response);
|
215 |
+
}
|
216 |
+
}).fail(function(xhr, textStatus, errorThrown) {
|
217 |
+
this.submit_error(errorThrown);
|
218 |
+
}.bind(this));
|
219 |
+
}.bind(this))
|
220 |
+
}
|
221 |
+
|
222 |
+
/**
|
223 |
+
*
|
224 |
+
*/
|
225 |
+
CC.prototype.on_token_received = function(paymentMethod) {
|
226 |
+
this.payment_token_received = true;
|
227 |
+
$(this.token_selector).val(paymentMethod.id);
|
228 |
+
$(this.token_selector).closest('form').submit();
|
229 |
+
}
|
230 |
+
|
231 |
+
/**
|
232 |
+
*
|
233 |
+
*/
|
234 |
+
CC.prototype.on_setup_intent_received = function(payment_method) {
|
235 |
+
this.payment_token_received = true;
|
236 |
+
$(this.token_selector).val(payment_method);
|
237 |
+
$(this.token_selector).closest('form').submit();
|
238 |
+
}
|
239 |
+
|
240 |
+
/**
|
241 |
+
*
|
242 |
+
*/
|
243 |
+
CC.prototype.updated_checkout = function() {
|
244 |
+
this.create_card_element();
|
245 |
+
}
|
246 |
+
|
247 |
+
CC.prototype.show_payment_button = function() {
|
248 |
+
wc_stripe.CheckoutGateway.prototype.show_place_order.apply(this, arguments);
|
249 |
+
}
|
250 |
+
|
251 |
+
/**
|
252 |
+
* [Leave empty so that the place order button is not hidden]
|
253 |
+
* @return {[type]} [description]
|
254 |
+
*/
|
255 |
+
CC.prototype.hide_place_order = function() {
|
256 |
+
|
257 |
+
}
|
258 |
+
|
259 |
+
/**
|
260 |
+
* Returns true if a custom form is being used.
|
261 |
+
* @return {Boolean} [description]
|
262 |
+
*/
|
263 |
+
CC.prototype.is_custom_form = function() {
|
264 |
+
return this.params.custom_form === "1";
|
265 |
+
}
|
266 |
+
|
267 |
+
CC.prototype.get_element_options = function() {
|
268 |
+
return this.params.elementOptions;
|
269 |
+
}
|
270 |
+
|
271 |
+
/**
|
272 |
+
* [get_postal_code description]
|
273 |
+
* @return {[type]} [description]
|
274 |
+
*/
|
275 |
+
CC.prototype.get_postal_code = function() {
|
276 |
+
if (this.is_custom_form()) {
|
277 |
+
if ($('#stripe-postal-code').length > 0) {
|
278 |
+
return $('#stripe-postal-code').val();
|
279 |
+
}
|
280 |
+
return $('#billing_postcode').val();
|
281 |
+
}
|
282 |
+
return null;
|
283 |
+
}
|
284 |
+
|
285 |
+
CC.prototype.card_number_change = function(data) {
|
286 |
+
if (data.brand === "unkown") {
|
287 |
+
$('#wc-stripe-card').removeClass('active');
|
288 |
+
} else {
|
289 |
+
$('#wc-stripe-card').addClass('active');
|
290 |
+
}
|
291 |
+
$('#wc-stripe-card').attr('src', this.params.cards[data.brand]);
|
292 |
+
}
|
293 |
+
|
294 |
+
new CC();
|
295 |
+
|
296 |
+
}(jQuery, window.wc_stripe))
|
assets/js/frontend/form-handler.js
ADDED
@@ -0,0 +1,114 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
(function($) {
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @constructor
|
5 |
+
*/
|
6 |
+
function Handler() {
|
7 |
+
this.init();
|
8 |
+
}
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Initialize functionality.
|
12 |
+
* @return {[type]}
|
13 |
+
*/
|
14 |
+
Handler.prototype.init = function() {
|
15 |
+
|
16 |
+
// event emitted from WC checkout.js
|
17 |
+
$(document.body).on('payment_method_selected', this.payment_method_selected.bind(this));
|
18 |
+
$(document.body).on('change', '[name="payment_method"]', this.payment_method_selected.bind(this));
|
19 |
+
$(document.body).on('updated_checkout', this.updated_checkout.bind(this));
|
20 |
+
$(document.body).on('change', '.wc-stripe-payment-type', this.payment_type_change.bind(this));
|
21 |
+
|
22 |
+
this.saved_payment_methods();
|
23 |
+
}
|
24 |
+
|
25 |
+
|
26 |
+
|
27 |
+
/**
|
28 |
+
* @return {[type]}
|
29 |
+
*/
|
30 |
+
Handler.prototype.payment_method_selected = function() {
|
31 |
+
var gateway = this.get_payment_method();
|
32 |
+
$(document.body).triggerHandler('wc_stripe_payment_method_selected', gateway);
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* @return {[type]}
|
37 |
+
*/
|
38 |
+
Handler.prototype.updated_checkout = function() {
|
39 |
+
this.saved_payment_methods();
|
40 |
+
|
41 |
+
if ($(document.body).hasClass('woocommerce-checkout')) {
|
42 |
+
if ($('.payment_methods').width() < 475) {
|
43 |
+
$('.payment_methods').addClass('stripe-small');
|
44 |
+
}
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* @return {[type]}
|
50 |
+
*/
|
51 |
+
Handler.prototype.payment_type_change = function() {
|
52 |
+
var gateway = this.get_payment_method();
|
53 |
+
$input = $('[name="' + gateway + '_payment_type_key"]:checked');
|
54 |
+
if ($input.length === 0 || $input.val() === "new") {
|
55 |
+
$('.wc-' + gateway + '-saved-methods-container').slideUp(400, function() {
|
56 |
+
$('.wc-' + gateway + '-new-method-container').slideDown(400);
|
57 |
+
});
|
58 |
+
$(document.body).triggerHandler('wc_stripe_new_method_' + gateway);
|
59 |
+
} else {
|
60 |
+
$('.wc-' + gateway + '-new-method-container').slideUp(400, function() {
|
61 |
+
$('.wc-' + gateway + '-saved-methods-container').slideDown(400);
|
62 |
+
});
|
63 |
+
$(document.body).triggerHandler('wc_stripe_saved_method_' + gateway);
|
64 |
+
}
|
65 |
+
}
|
66 |
+
|
67 |
+
/**
|
68 |
+
* @return {[type]}
|
69 |
+
*/
|
70 |
+
Handler.prototype.saved_payment_methods = function() {
|
71 |
+
if ($().select2) {
|
72 |
+
if ($('select.wc-stripe-saved-methods').length && !$('select.wc-stripe-saved-methods').hasClass('select2-hidden-accessible')) {
|
73 |
+
$('select.wc-stripe-saved-methods').select2({
|
74 |
+
width: "100%",
|
75 |
+
templateResult: this.output_template,
|
76 |
+
templateSelection: this.output_template,
|
77 |
+
}).trigger('change');
|
78 |
+
}
|
79 |
+
}
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* @return {[type]}
|
84 |
+
*/
|
85 |
+
Handler.prototype.get_payment_method = function() {
|
86 |
+
return $('[name="payment_method"]:checked').val();
|
87 |
+
}
|
88 |
+
|
89 |
+
/**
|
90 |
+
* @param {[type]}
|
91 |
+
* @return {[type]}
|
92 |
+
*/
|
93 |
+
Handler.prototype.get_payment_type = function(gateway) {
|
94 |
+
return $('[name="' + gateway + '"]:checked').val();
|
95 |
+
}
|
96 |
+
|
97 |
+
/**
|
98 |
+
* @param {[type]}
|
99 |
+
* @param {[type]}
|
100 |
+
* @return {[type]}
|
101 |
+
*/
|
102 |
+
Handler.prototype.output_template = function(data, container) {
|
103 |
+
var classes = $(data.element).attr('class');
|
104 |
+
$.each($(data.element).parent().find('option'), function() {
|
105 |
+
$(container).removeClass($(this).attr('class'));
|
106 |
+
})
|
107 |
+
$(container).addClass('wc-stripe-select2-container ' + classes);
|
108 |
+
$(document.body).triggerHandler('wc_stripe_payment_method_template', [data, container]);
|
109 |
+
return data.text;
|
110 |
+
}
|
111 |
+
|
112 |
+
new Handler();
|
113 |
+
|
114 |
+
}(jQuery))
|
assets/js/frontend/googlepay-cart.js
ADDED
@@ -0,0 +1,57 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
(function($, wc_stripe) {
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @constructor
|
5 |
+
*/
|
6 |
+
function GPay() {
|
7 |
+
wc_stripe.BaseGateway.call(this, wc_stripe_googlepay_cart_params);
|
8 |
+
wc_stripe.CartGateway.call(this);
|
9 |
+
}
|
10 |
+
|
11 |
+
/**
|
12 |
+
* [prototype description]
|
13 |
+
* @type {[type]}
|
14 |
+
*/
|
15 |
+
GPay.prototype = $.extend({}, wc_stripe.BaseGateway.prototype, wc_stripe.CartGateway.prototype, wc_stripe.GooglePay.prototype);
|
16 |
+
|
17 |
+
/**
|
18 |
+
* @return {[type]}
|
19 |
+
*/
|
20 |
+
GPay.prototype.initialize = function() {
|
21 |
+
this.createPaymentsClient();
|
22 |
+
this.isReadyToPay().then(function() {
|
23 |
+
$(this.container).show().addClass('active');
|
24 |
+
}.bind(this))
|
25 |
+
}
|
26 |
+
|
27 |
+
/**
|
28 |
+
* @return {[type]}
|
29 |
+
*/
|
30 |
+
GPay.prototype.create_button = function() {
|
31 |
+
wc_stripe.GooglePay.prototype.create_button.apply(this, arguments);
|
32 |
+
$('#wc-stripe-googlepay-container').append(this.$button);
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* @return {[type]}
|
37 |
+
*/
|
38 |
+
GPay.prototype.updated_html = function() {
|
39 |
+
if (this.can_pay) {
|
40 |
+
this.create_button();
|
41 |
+
$(this.container).show().addClass('active');
|
42 |
+
}
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* @param {[type]}
|
47 |
+
* @return {[null]}
|
48 |
+
*/
|
49 |
+
GPay.prototype.payment_data_updated = function(response, event) {
|
50 |
+
if (event.callbackTrigger === "SHIPPING_ADDRESS") {
|
51 |
+
$(document.body).trigger('wc_update_cart');
|
52 |
+
}
|
53 |
+
}
|
54 |
+
|
55 |
+
new GPay();
|
56 |
+
|
57 |
+
}(jQuery, window.wc_stripe))
|
assets/js/frontend/googlepay-checkout.js
ADDED
@@ -0,0 +1,68 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
(function($, wc_stripe) {
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @construct
|
5 |
+
*/
|
6 |
+
function GPay() {
|
7 |
+
this.can_pay = false;
|
8 |
+
wc_stripe.BaseGateway.call(this, wc_stripe_googlepay_checkout_params);
|
9 |
+
wc_stripe.CheckoutGateway.call(this);
|
10 |
+
}
|
11 |
+
|
12 |
+
/**
|
13 |
+
* [prototype description]
|
14 |
+
* @type {[type]}
|
15 |
+
*/
|
16 |
+
GPay.prototype = $.extend({}, wc_stripe.BaseGateway.prototype, wc_stripe.CheckoutGateway.prototype, wc_stripe.GooglePay.prototype);
|
17 |
+
|
18 |
+
/**
|
19 |
+
* @return {[type]}
|
20 |
+
*/
|
21 |
+
GPay.prototype.initialize = function() {
|
22 |
+
// create payments client
|
23 |
+
this.createPaymentsClient();
|
24 |
+
this.isReadyToPay().then(function() {
|
25 |
+
$(this.container).show();
|
26 |
+
if (this.banner_enabled()) {
|
27 |
+
var $button = $(this.paymentsClient.createButton({
|
28 |
+
onClick: this.banner_checkout.bind(this),
|
29 |
+
buttonColor: this.params.button_color,
|
30 |
+
buttonType: this.params.button_style
|
31 |
+
}));
|
32 |
+
$(this.banner_container).append($button);
|
33 |
+
}
|
34 |
+
}.bind(this))
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* @return {[type]}
|
39 |
+
*/
|
40 |
+
GPay.prototype.create_button = function() {
|
41 |
+
wc_stripe.GooglePay.prototype.create_button.apply(this, arguments);
|
42 |
+
$("#place_order").parent().append(this.$button);
|
43 |
+
this.trigger_payment_method_selected();
|
44 |
+
}
|
45 |
+
|
46 |
+
/**
|
47 |
+
* @return {[type]}
|
48 |
+
*/
|
49 |
+
GPay.prototype.updated_checkout = function() {
|
50 |
+
if (this.can_pay) {
|
51 |
+
$(this.container).show();
|
52 |
+
this.create_button();
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* [banner_checkout description]
|
58 |
+
* @return {[type]} [description]
|
59 |
+
*/
|
60 |
+
GPay.prototype.banner_checkout = function() {
|
61 |
+
this.set_payment_method(this.gateway_id);
|
62 |
+
this.set_use_new_option(true);
|
63 |
+
wc_stripe.GooglePay.prototype.start.apply(this, arguments);
|
64 |
+
}
|
65 |
+
|
66 |
+
new GPay();
|
67 |
+
|
68 |
+
}(jQuery, window.wc_stripe))
|
assets/js/frontend/googlepay-product.js
ADDED
@@ -0,0 +1,64 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
(function($, wc_stripe) {
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @constructor
|
5 |
+
*/
|
6 |
+
function GPay() {
|
7 |
+
wc_stripe.BaseGateway.call(this, wc_stripe_googlepay_product_params);
|
8 |
+
wc_stripe.ProductGateway.call(this);
|
9 |
+
}
|
10 |
+
|
11 |
+
/**
|
12 |
+
* [prototype description]
|
13 |
+
* @type {[type]}
|
14 |
+
*/
|
15 |
+
GPay.prototype = $.extend({}, wc_stripe.BaseGateway.prototype, wc_stripe.ProductGateway.prototype, wc_stripe.GooglePay.prototype);
|
16 |
+
|
17 |
+
/**
|
18 |
+
* @return {[type]}
|
19 |
+
*/
|
20 |
+
GPay.prototype.initialize = function() {
|
21 |
+
this.createPaymentsClient();
|
22 |
+
this.isReadyToPay().then(function() {
|
23 |
+
$(this.container).show();
|
24 |
+
}.bind(this))
|
25 |
+
}
|
26 |
+
|
27 |
+
/**
|
28 |
+
* @return {[type]}
|
29 |
+
*/
|
30 |
+
GPay.prototype.create_button = function() {
|
31 |
+
wc_stripe.GooglePay.prototype.create_button.apply(this, arguments);
|
32 |
+
$('#wc-stripe-googlepay-container').append(this.$button);
|
33 |
+
|
34 |
+
// check for variations
|
35 |
+
if (this.is_variable_product()) {
|
36 |
+
this.disable_payment_button();
|
37 |
+
}
|
38 |
+
}
|
39 |
+
|
40 |
+
/**
|
41 |
+
* @return {[type]}
|
42 |
+
*/
|
43 |
+
GPay.prototype.get_button = function() {
|
44 |
+
return $(this.$button).find('.gpay-button');
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* @return {[type]}
|
49 |
+
*/
|
50 |
+
GPay.prototype.start = function() {
|
51 |
+
if (this.get_quantity() > 0) {
|
52 |
+
this.add_to_cart().then(function(data) {
|
53 |
+
// update the line items
|
54 |
+
this.set_googlepay_display_items(data.googlepay.displayItems);
|
55 |
+
wc_stripe.GooglePay.prototype.start.apply(this, arguments);
|
56 |
+
}.bind(this))
|
57 |
+
} else {
|
58 |
+
this.submit_error(this.params.messages.invalid_amount);
|
59 |
+
}
|
60 |
+
}
|
61 |
+
|
62 |
+
new GPay();
|
63 |
+
|
64 |
+
}(jQuery, wc_stripe))
|
assets/js/frontend/local-payment.js
ADDED
@@ -0,0 +1,139 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
(function($, wc_stripe) {
|
2 |
+
|
3 |
+
var stripe = Stripe(wc_stripe_local_payment_params.api_key);
|
4 |
+
|
5 |
+
/**
|
6 |
+
* [LocalPayment description]
|
7 |
+
*/
|
8 |
+
function LocalPayment(params) {
|
9 |
+
wc_stripe.BaseGateway.call(this, params);
|
10 |
+
wc_stripe.CheckoutGateway.call(this);
|
11 |
+
|
12 |
+
$(document.body).on('click', '#place_order', this.place_order.bind(this));
|
13 |
+
}
|
14 |
+
|
15 |
+
LocalPayment.prototype = $.extend({}, wc_stripe.BaseGateway.prototype, wc_stripe.CheckoutGateway.prototype);
|
16 |
+
|
17 |
+
|
18 |
+
LocalPayment.prototype.initialize = function() {
|
19 |
+
this.mount_button();
|
20 |
+
}
|
21 |
+
|
22 |
+
/**
|
23 |
+
* [createSource description]
|
24 |
+
* @return {[type]} [description]
|
25 |
+
*/
|
26 |
+
LocalPayment.prototype.createSource = function() {
|
27 |
+
return new Promise(function(resolve, reject) {
|
28 |
+
this.stripe.createSource(this.element, this.getSourceArgs()).then(function(result) {
|
29 |
+
if (result.error) {
|
30 |
+
this.submit_error(result.error.message);
|
31 |
+
} else {
|
32 |
+
this.payment_token_received = true;
|
33 |
+
$(this.token_selector).val(result.source.id);
|
34 |
+
$(this.container).closest('form').submit();
|
35 |
+
}
|
36 |
+
resolve();
|
37 |
+
}.bind(this)).catch(function(e) {
|
38 |
+
this.submit_error(e.message);
|
39 |
+
}.bind(this))
|
40 |
+
}.bind(this));
|
41 |
+
}
|
42 |
+
|
43 |
+
LocalPayment.prototype.place_order = function(e) {
|
44 |
+
if (this.is_gateway_selected()) {
|
45 |
+
if (!this.payment_token_received) {
|
46 |
+
e.preventDefault();
|
47 |
+
this.createSource();
|
48 |
+
}
|
49 |
+
}
|
50 |
+
}
|
51 |
+
|
52 |
+
LocalPayment.prototype.updated_checkout = function() {
|
53 |
+
if (this.payment_token_received) {
|
54 |
+
this.show_place_order();
|
55 |
+
}
|
56 |
+
}
|
57 |
+
|
58 |
+
LocalPayment.prototype.show_payment_button = function() {
|
59 |
+
this.show_place_order();
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* [Leave empty so that the place order button is not hidden]
|
64 |
+
* @return {[type]} [description]
|
65 |
+
*/
|
66 |
+
LocalPayment.prototype.hide_place_order = function() {
|
67 |
+
|
68 |
+
}
|
69 |
+
|
70 |
+
LocalPayment.prototype.show_place_order = function() {
|
71 |
+
wc_stripe.CheckoutGateway.prototype.show_place_order.apply(this, arguments);
|
72 |
+
if (this.payment_token_received) {
|
73 |
+
$('#place_order').text($('#place_order').data('value'));
|
74 |
+
}
|
75 |
+
}
|
76 |
+
|
77 |
+
LocalPayment.prototype.getSourceArgs = function() {
|
78 |
+
return {
|
79 |
+
type: this.params.local_payment_type,
|
80 |
+
amount: this.get_total_price_cents(),
|
81 |
+
currency: this.get_currency(),
|
82 |
+
owner: {
|
83 |
+
name: this.get_customer_name('#billing')
|
84 |
+
},
|
85 |
+
redirect: {
|
86 |
+
return_url: this.params.return_url
|
87 |
+
}
|
88 |
+
}
|
89 |
+
}
|
90 |
+
|
91 |
+
LocalPayment.prototype.updated_checkout = function() {
|
92 |
+
this.mount_button()
|
93 |
+
}
|
94 |
+
|
95 |
+
LocalPayment.prototype.mount_button = function() {
|
96 |
+
var id = '#wc_stripe_local_payment_' + this.gateway_id;
|
97 |
+
if ($(id).length) {
|
98 |
+
$(id).empty();
|
99 |
+
if (!this.element) {
|
100 |
+
this.element = this.elements.create(this.elementType, this.params.element_params);
|
101 |
+
}
|
102 |
+
this.element.mount(id);
|
103 |
+
}
|
104 |
+
|
105 |
+
}
|
106 |
+
|
107 |
+
/*********** iDEAL ***********/
|
108 |
+
function IDEAL(params) {
|
109 |
+
this.elementType = 'idealBank';
|
110 |
+
LocalPayment.call(this, params);
|
111 |
+
}
|
112 |
+
|
113 |
+
/******* Sepa *******/
|
114 |
+
function Sepa() {
|
115 |
+
this.elementType = 'iban';
|
116 |
+
LocalPayment.call(this, params);
|
117 |
+
}
|
118 |
+
|
119 |
+
IDEAL.prototype = $.extend({}, LocalPayment.prototype, IDEAL.prototype);
|
120 |
+
|
121 |
+
Sepa.prototype = $.extend({}, LocalPayment.prototype, Sepa.prototype);
|
122 |
+
|
123 |
+
/**
|
124 |
+
* Local payment types that require JS integration
|
125 |
+
* @type {Object}
|
126 |
+
*/
|
127 |
+
const types = {
|
128 |
+
'ideal': IDEAL,
|
129 |
+
'sepa_debit': Sepa
|
130 |
+
}
|
131 |
+
|
132 |
+
for (var i in wc_stripe_local_payment_params.gateways) {
|
133 |
+
var params = wc_stripe_local_payment_params.gateways[i];
|
134 |
+
if (types[params.local_payment_type]) {
|
135 |
+
new types[params.local_payment_type](params);
|
136 |
+
}
|
137 |
+
}
|
138 |
+
|
139 |
+
}(jQuery, window.wc_stripe))
|
assets/js/frontend/notices.js
ADDED
@@ -0,0 +1,25 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
(function($) {
|
2 |
+
|
3 |
+
/**
|
4 |
+
* [Notice description]
|
5 |
+
*/
|
6 |
+
function Notice() {
|
7 |
+
this.params = wc_stripe_notices_params;
|
8 |
+
this.container = this.params.container;
|
9 |
+
this.notices = this.params.notices;
|
10 |
+
this.display_notices();
|
11 |
+
}
|
12 |
+
|
13 |
+
/**
|
14 |
+
* [display_notice description]
|
15 |
+
* @return {[type]} [description]
|
16 |
+
*/
|
17 |
+
Notice.prototype.display_notices = function() {
|
18 |
+
for (var i = 0; i < this.notices.length; i++) {
|
19 |
+
$(this.container).prepend(this.notices[i]);
|
20 |
+
}
|
21 |
+
}
|
22 |
+
|
23 |
+
new Notice();
|
24 |
+
|
25 |
+
}(jQuery))
|
assets/js/frontend/payment-request.js
ADDED
@@ -0,0 +1,210 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
(function($, wc_stripe) {
|
2 |
+
|
3 |
+
// Product page functionality
|
4 |
+
if ($(document.body).is('.single-product')) {
|
5 |
+
/**
|
6 |
+
* [PaymentRequest description]
|
7 |
+
*/
|
8 |
+
function PaymentRequest() {
|
9 |
+
wc_stripe.BaseGateway.call(this, wc_stripe_payment_request_params);
|
10 |
+
wc_stripe.ProductGateway.call(this);
|
11 |
+
}
|
12 |
+
|
13 |
+
PaymentRequest.prototype = $.extend({}, wc_stripe.BaseGateway.prototype, wc_stripe.ProductGateway.prototype, wc_stripe.PaymentRequest.prototype);
|
14 |
+
|
15 |
+
/**
|
16 |
+
* [canMakePayment description]
|
17 |
+
* @return {[type]} [description]
|
18 |
+
*/
|
19 |
+
PaymentRequest.prototype.canMakePayment = function() {
|
20 |
+
wc_stripe.PaymentRequest.prototype.canMakePayment.apply(this, arguments).then(function(result) {
|
21 |
+
$('[name="quantity"]').val(0);
|
22 |
+
$(document.body).on('change', '[name="quantity"]', this.add_to_cart.bind(this));
|
23 |
+
}.bind(this))
|
24 |
+
}
|
25 |
+
|
26 |
+
PaymentRequest.prototype.create_button = function() {
|
27 |
+
wc_stripe.PaymentRequest.prototype.create_button.apply(this, arguments);
|
28 |
+
this.$button = $('#wc-stripe-payment-request-container');
|
29 |
+
}
|
30 |
+
|
31 |
+
PaymentRequest.prototype.button_click = function(e) {
|
32 |
+
if (this.$button.is('.disabled')) {
|
33 |
+
e.preventDefault();
|
34 |
+
}
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* [add_to_cart description]
|
39 |
+
*/
|
40 |
+
PaymentRequest.prototype.add_to_cart = function() {
|
41 |
+
if (this.$button.is('.disabled') && this.can_pay) {
|
42 |
+
$('[name="quantity"]').val(0);
|
43 |
+
this.submit_error(this.params.messages.choose_product);
|
44 |
+
return;
|
45 |
+
}
|
46 |
+
this.adding_to_cart = true;
|
47 |
+
wc_stripe.ProductGateway.prototype.add_to_cart.apply(this, arguments).then(function() {
|
48 |
+
this.paymentRequest.update(this.get_payment_request_update({
|
49 |
+
total: {
|
50 |
+
pending: false
|
51 |
+
}
|
52 |
+
}));
|
53 |
+
this.adding_to_cart = false;
|
54 |
+
}.bind(this))
|
55 |
+
}
|
56 |
+
|
57 |
+
PaymentRequest.prototype.found_variation = function() {
|
58 |
+
wc_stripe.ProductGateway.prototype.found_variation.apply(this, arguments);
|
59 |
+
if (this.can_pay) {
|
60 |
+
$('[name="quantity"]').val(0);
|
61 |
+
}
|
62 |
+
|
63 |
+
}
|
64 |
+
|
65 |
+
PaymentRequest.prototype.reset_variation_data = function() {
|
66 |
+
wc_stripe.ProductGateway.prototype.reset_variation_data.apply(this, arguments);
|
67 |
+
if (this.can_pay) {
|
68 |
+
$('[name="quantity"]').val(0);
|
69 |
+
}
|
70 |
+
}
|
71 |
+
|
72 |
+
/**
|
73 |
+
* [block description]
|
74 |
+
* @return {[type]} [description]
|
75 |
+
*/
|
76 |
+
PaymentRequest.prototype.block = function() {
|
77 |
+
$.blockUI({
|
78 |
+
message: this.adding_to_cart ? this.params.messages.add_to_cart : null,
|
79 |
+
overlayCSS: {
|
80 |
+
background: '#fff',
|
81 |
+
opacity: 0.6
|
82 |
+
}
|
83 |
+
});
|
84 |
+
}
|
85 |
+
|
86 |
+
}
|
87 |
+
|
88 |
+
// Cart page functionality
|
89 |
+
if ($(document.body).is('.woocommerce-cart')) {
|
90 |
+
/**
|
91 |
+
* [PaymentRequest description]
|
92 |
+
*/
|
93 |
+
function PaymentRequest() {
|
94 |
+
wc_stripe.BaseGateway.call(this, wc_stripe_payment_request_params);
|
95 |
+
wc_stripe.CartGateway.call(this);
|
96 |
+
}
|
97 |
+
|
98 |
+
PaymentRequest.prototype = $.extend({}, wc_stripe.BaseGateway.prototype, wc_stripe.CartGateway.prototype, wc_stripe.PaymentRequest.prototype);
|
99 |
+
|
100 |
+
PaymentRequest.prototype.canMakePayment = function() {
|
101 |
+
wc_stripe.PaymentRequest.prototype.canMakePayment.apply(this, arguments).then(function() {
|
102 |
+
$(this.container).addClass('active');
|
103 |
+
}.bind(this))
|
104 |
+
}
|
105 |
+
|
106 |
+
/**
|
107 |
+
* New paymentRequest is needed since cart might have changed.
|
108 |
+
* @return {[type]} [description]
|
109 |
+
*/
|
110 |
+
PaymentRequest.prototype.init_payment_request = function() {
|
111 |
+
this.paymentRequestButton.destroy();
|
112 |
+
}
|
113 |
+
|
114 |
+
/**
|
115 |
+
* [updated_html description]
|
116 |
+
* @return {[type]} [description]
|
117 |
+
*/
|
118 |
+
PaymentRequest.prototype.updated_html = function() {
|
119 |
+
if (this.can_pay) {
|
120 |
+
this.paymentRequestButton.destroy();
|
121 |
+
this.initialize();
|
122 |
+
}
|
123 |
+
}
|
124 |
+
|
125 |
+
PaymentRequest.prototype.button_click = function(e) {
|
126 |
+
this.paymentRequest.update(this.get_payment_request_update({
|
127 |
+
total: {
|
128 |
+
pending: false
|
129 |
+
}
|
130 |
+
}));
|
131 |
+
}
|
132 |
+
}
|
133 |
+
|
134 |
+
// Checkout page functionality
|
135 |
+
if ($(document.body).is('.woocommerce-checkout')) {
|
136 |
+
/**
|
137 |
+
* [PaymentRequest description]
|
138 |
+
*/
|
139 |
+
function PaymentRequest() {
|
140 |
+
wc_stripe.BaseGateway.call(this, wc_stripe_payment_request_params);
|
141 |
+
wc_stripe.CheckoutGateway.call(this);
|
142 |
+
}
|
143 |
+
|
144 |
+
PaymentRequest.prototype = $.extend({}, wc_stripe.BaseGateway.prototype, wc_stripe.CheckoutGateway.prototype, wc_stripe.PaymentRequest.prototype);
|
145 |
+
|
146 |
+
/**
|
147 |
+
* [canMakePayment description]
|
148 |
+
* @return {[type]} [description]
|
149 |
+
*/
|
150 |
+
PaymentRequest.prototype.canMakePayment = function() {
|
151 |
+
wc_stripe.PaymentRequest.prototype.canMakePayment.apply(this, arguments).then(function(result) {
|
152 |
+
if (this.banner_enabled()) {
|
153 |
+
$(this.banner_container).show().append('<div id="wc-stripe-payment-request-banner"></div>');
|
154 |
+
var elements = this.stripe.elements();
|
155 |
+
var button = elements.create("paymentRequestButton", {
|
156 |
+
paymentRequest: this.paymentRequest,
|
157 |
+
style: {
|
158 |
+
paymentRequestButton: {
|
159 |
+
type: this.params.button.type,
|
160 |
+
theme: this.params.button.theme,
|
161 |
+
height: this.params.button.height
|
162 |
+
}
|
163 |
+
}
|
164 |
+
});
|
165 |
+
button.on('click', this.banner_checkout.bind(this));
|
166 |
+
button.mount("#wc-stripe-payment-request-banner");
|
167 |
+
}
|
168 |
+
}.bind(this))
|
169 |
+
}
|
170 |
+
|
171 |
+
/**
|
172 |
+
* [create_button description]
|
173 |
+
* @return {[type]} [description]
|
174 |
+
*/
|
175 |
+
PaymentRequest.prototype.create_button = function() {
|
176 |
+
var $parent = $('#place_order').parent();
|
177 |
+
if (this.$button) {
|
178 |
+
this.$button.remove();
|
179 |
+
}
|
180 |
+
this.$button = $('<div id="wc-stripe-payment-request-container"></div>');
|
181 |
+
$parent.append(this.$button);
|
182 |
+
wc_stripe.PaymentRequest.prototype.create_button.call(this);
|
183 |
+
this.trigger_payment_method_selected();
|
184 |
+
}
|
185 |
+
|
186 |
+
/**
|
187 |
+
* [updated_checkout description]
|
188 |
+
* @return {[type]} [description]
|
189 |
+
*/
|
190 |
+
PaymentRequest.prototype.updated_checkout = function() {
|
191 |
+
if (this.can_pay) {
|
192 |
+
$(this.container).show();
|
193 |
+
this.create_button();
|
194 |
+
}
|
195 |
+
}
|
196 |
+
|
197 |
+
/**
|
198 |
+
* [button_click description]
|
199 |
+
* @param {[type]} e [description]
|
200 |
+
* @return {[type]} [description]
|
201 |
+
*/
|
202 |
+
PaymentRequest.prototype.banner_checkout = function(e) {
|
203 |
+
this.set_payment_method(this.gateway_id);
|
204 |
+
this.set_use_new_option(true);
|
205 |
+
}
|
206 |
+
}
|
207 |
+
|
208 |
+
new PaymentRequest();
|
209 |
+
|
210 |
+
}(jQuery, window.wc_stripe))
|
assets/js/frontend/wc-stripe.js
ADDED
@@ -0,0 +1,1530 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
(function(window, $) {
|
2 |
+
window.wc_stripe = {};
|
3 |
+
|
4 |
+
/**
|
5 |
+
* [Initiate Stripe]
|
6 |
+
* @type {[type]}
|
7 |
+
*/
|
8 |
+
var stripe = Stripe(wc_stripe_params.api_key);
|
9 |
+
|
10 |
+
/**
|
11 |
+
* @consructor
|
12 |
+
*/
|
13 |
+
wc_stripe.BaseGateway = function(params) {
|
14 |
+
this.params = params;
|
15 |
+
this.gateway_id = this.params.gateway_id;
|
16 |
+
this.token_selector = this.params.token_selector;
|
17 |
+
this.saved_method_selector = this.params.saved_method_selector;
|
18 |
+
this.payment_intent_selector = this.params.payment_intent_selector;
|
19 |
+
this.payment_token_received = false;
|
20 |
+
this.stripe = stripe;
|
21 |
+
this.elements = stripe.elements($.extend({}, { locale: 'auto' }, this.get_element_options()));
|
22 |
+
this.initialize();
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* [get_element_options description]
|
27 |
+
* @return {[type]} [description]
|
28 |
+
*/
|
29 |
+
wc_stripe.BaseGateway.prototype.get_element_options = function() {
|
30 |
+
return {};
|
31 |
+
}
|
32 |
+
|
33 |
+
wc_stripe.BaseGateway.prototype.initialize = function() {};
|
34 |
+
|
35 |
+
/**
|
36 |
+
* @return {[type]}
|
37 |
+
*/
|
38 |
+
wc_stripe.BaseGateway.prototype.create_button = function() {}
|
39 |
+
|
40 |
+
/**
|
41 |
+
* @returns {Boolean}
|
42 |
+
*/
|
43 |
+
wc_stripe.BaseGateway.prototype.is_gateway_selected = function() {
|
44 |
+
return $('[name="payment_method"]:checked').val() === this.gateway_id;
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* @returns {Boolean}
|
49 |
+
*/
|
50 |
+
wc_stripe.BaseGateway.prototype.is_saved_method_selected = function() {
|
51 |
+
return this.is_gateway_selected() &&
|
52 |
+
$(
|
53 |
+
'[name="' + this.gateway_id +
|
54 |
+
'_payment_type_key"]:checked').val() === 'saved';
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
* @return {Boolean}
|
59 |
+
*/
|
60 |
+
wc_stripe.BaseGateway.prototype.has_checkout_error = function() {
|
61 |
+
return $('#wc_stripe_checkout_error').length > 0 && this.is_gateway_selected();
|
62 |
+
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* @param {[type]}
|
66 |
+
* @return {[type]}
|
67 |
+
*/
|
68 |
+
wc_stripe.BaseGateway.prototype.submit_error = function(message) {
|
69 |
+
if (message.indexOf('</ul>') == -1) {
|
70 |
+
message = '<div class="woocommerce-error">' + message + '</div>';
|
71 |
+
}
|
72 |
+
this.submit_message(message);
|
73 |
+
}
|
74 |
+
|
75 |
+
wc_stripe.BaseGateway.prototype.submit_error_code = function(code) {
|
76 |
+
|
77 |
+
}
|
78 |
+
|
79 |
+
/**
|
80 |
+
* @param {[type]}
|
81 |
+
* @return {[type]}
|
82 |
+
*/
|
83 |
+
wc_stripe.BaseGateway.prototype.submit_message = function(message) {
|
84 |
+
$('.woocommerce-error, .woocommerce-message, .woocommerce-info')
|
85 |
+
.remove();
|
86 |
+
var $container = $(this.message_container);
|
87 |
+
if ($container.closest('form').length) {
|
88 |
+
$container = $container.closest('form');
|
89 |
+
}
|
90 |
+
$container.prepend(message);
|
91 |
+
$container.removeClass('processing').unblock();
|
92 |
+
$container.find('.input-text, select, input:checkbox').blur();
|
93 |
+
$('html, body').animate({
|
94 |
+
scrollTop: ($container.offset().top - 100)
|
95 |
+
}, 1000);
|
96 |
+
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Return true if the source should be saved.
|
100 |
+
*
|
101 |
+
* @returns {Boolean}
|
102 |
+
*/
|
103 |
+
wc_stripe.BaseGateway.prototype.should_save_method = function() {
|
104 |
+
return $('#' + this.gateway_id + '_save_source_key').is(':checked');
|
105 |
+
}
|
106 |
+
|
107 |
+
wc_stripe.BaseGateway.prototype.is_add_payment_method_page = function() {
|
108 |
+
return $(document.body).hasClass('woocommerce-add-payment-method');
|
109 |
+
}
|
110 |
+
|
111 |
+
wc_stripe.BaseGateway.prototype.get_selected_payment_method = function() {
|
112 |
+
return $(this.saved_method_selector).val();
|
113 |
+
}
|
114 |
+
|
115 |
+
wc_stripe.BaseGateway.prototype.needs_shipping = function() {
|
116 |
+
return this.params.needs_shipping === "1";
|
117 |
+
}
|
118 |
+
|
119 |
+
wc_stripe.BaseGateway.prototype.get_currency = function() {
|
120 |
+
return $('#wc_stripe_currency').val();
|
121 |
+
}
|
122 |
+
|
123 |
+
wc_stripe.BaseGateway.prototype.get_country = function() {
|
124 |
+
return $('#wc_stripe_country').val();
|
125 |
+
}
|
126 |
+
|
127 |
+
/**
|
128 |
+
* [get_customer_name description]
|
129 |
+
* @return {[type]} [description]
|
130 |
+
*/
|
131 |
+
wc_stripe.BaseGateway.prototype.get_customer_name = function(prefix) {
|
132 |
+
return $(prefix + '_first_name').val() + ' ' + $(prefix + '_last_name').val();
|
133 |
+
}
|
134 |
+
|
135 |
+
/**
|
136 |
+
* [get_customer_email description]
|
137 |
+
* @return {[type]} [description]
|
138 |
+
*/
|
139 |
+
wc_stripe.BaseGateway.prototype.get_customer_email = function() {
|
140 |
+
return $('#billing_email').val();
|
141 |
+
}
|
142 |
+
|
143 |
+
/**
|
144 |
+
* Returns a string representation of an address.
|
145 |
+
* @param {[type]}
|
146 |
+
* @return {[type]}
|
147 |
+
*/
|
148 |
+
wc_stripe.BaseGateway.prototype.get_address_field_hash = function(prefix) {
|
149 |
+
var params = ['_first_name', '_last_name', '_address_1', '_address_2', '_postcode', '_city', '_state', '_country', ];
|
150 |
+
var hash = "";
|
151 |
+
for (var i = 0; i < params.length; i++) {
|
152 |
+
hash += $(prefix + params[i]).val() + '_';
|
153 |
+
}
|
154 |
+
return hash;
|
155 |
+
}
|
156 |
+
|
157 |
+
/**
|
158 |
+
* @return {[type]}
|
159 |
+
*/
|
160 |
+
wc_stripe.BaseGateway.prototype.block = function() {
|
161 |
+
$.blockUI({
|
162 |
+
message: null,
|
163 |
+
overlayCSS: {
|
164 |
+
background: '#fff',
|
165 |
+
opacity: 0.6
|
166 |
+
}
|
167 |
+
});
|
168 |
+
}
|
169 |
+
|
170 |
+
/**
|
171 |
+
* @return {[type]}
|
172 |
+
*/
|
173 |
+
wc_stripe.BaseGateway.prototype.unblock = function() {
|
174 |
+
$.unblockUI();
|
175 |
+
}
|
176 |
+
|
177 |
+
/**
|
178 |
+
* @return {[type]}
|
179 |
+
*/
|
180 |
+
wc_stripe.BaseGateway.prototype.get_form = function() {
|
181 |
+
return $(this.token_selector).closest('form');
|
182 |
+
}
|
183 |
+
|
184 |
+
/**
|
185 |
+
* @return {[type]}
|
186 |
+
*/
|
187 |
+
wc_stripe.BaseGateway.prototype.get_total_price = function() {
|
188 |
+
return $('#wc_stripe_order_total').data('amount');
|
189 |
+
}
|
190 |
+
|
191 |
+
wc_stripe.BaseGateway.prototype.get_total_price_cents = function() {
|
192 |
+
return $('#wc_stripe_order_total_cents').data('amount');
|
193 |
+
}
|
194 |
+
|
195 |
+
/**
|
196 |
+
* @return {[type]}
|
197 |
+
*/
|
198 |
+
wc_stripe.BaseGateway.prototype.set_total_price = function(total) {
|
199 |
+
$('#wc_stripe_order_total').data('amount', total);
|
200 |
+
}
|
201 |
+
|
202 |
+
/**
|
203 |
+
* @return {[type]}
|
204 |
+
*/
|
205 |
+
wc_stripe.BaseGateway.prototype.set_total_price_cents = function(total) {
|
206 |
+
$('#wc_stripe_order_total_cents').data('amount', total);
|
207 |
+
}
|
208 |
+
|
209 |
+
/**
|
210 |
+
* [set_payment_method description]
|
211 |
+
* @param {[type]} payment_method [description]
|
212 |
+
*/
|
213 |
+
wc_stripe.BaseGateway.prototype.set_payment_method = function(payment_method) {
|
214 |
+
$('[name="payment_method"][value="' + payment_method + '"]').prop("checked", true).trigger('click');
|
215 |
+
}
|
216 |
+
|
217 |
+
/**
|
218 |
+
* [set_shipping_methods description]
|
219 |
+
*/
|
220 |
+
wc_stripe.BaseGateway.prototype.set_selected_shipping_methods = function(shipping_methods) {
|
221 |
+
if (shipping_methods && $('[name^="shipping_method"]').length) {
|
222 |
+
for (var i in shipping_methods) {
|
223 |
+
var method = shipping_methods[i];
|
224 |
+
$('[name="shipping_method[' + i + ']"][value="' + method + '"]').prop("checked", true).trigger('change');
|
225 |
+
}
|
226 |
+
}
|
227 |
+
}
|
228 |
+
|
229 |
+
/**
|
230 |
+
* @param {[type]}
|
231 |
+
* @return {[type]}
|
232 |
+
*/
|
233 |
+
wc_stripe.BaseGateway.prototype.on_token_received = function(paymentMethod) {
|
234 |
+
this.payment_token_received = true;
|
235 |
+
$(this.token_selector).val(paymentMethod.id);
|
236 |
+
this.process_checkout();
|
237 |
+
}
|
238 |
+
|
239 |
+
wc_stripe.BaseGateway.prototype.createPaymentRequest = function() {
|
240 |
+
this.paymentRequest = stripe.paymentRequest(this.get_payment_request_options());
|
241 |
+
|
242 |
+
// events
|
243 |
+
if (this.needs_shipping()) {
|
244 |
+
this.paymentRequest.on('shippingaddresschange', this.update_shipping_address.bind(this));
|
245 |
+
this.paymentRequest.on('shippingoptionchange', this.update_shipping_method.bind(this));
|
246 |
+
}
|
247 |
+
this.paymentRequest.on('paymentmethod', this.on_payment_method_received.bind(this));
|
248 |
+
}
|
249 |
+
|
250 |
+
/**
|
251 |
+
* @return {[Object]}
|
252 |
+
*/
|
253 |
+
wc_stripe.BaseGateway.prototype.get_payment_request_options = function() {
|
254 |
+
var options = {
|
255 |
+
country: this.params.country_code,
|
256 |
+
currency: this.get_currency().toLowerCase(),
|
257 |
+
total: {
|
258 |
+
amount: this.get_total_price_cents(),
|
259 |
+
label: this.params.total_label,
|
260 |
+
pending: true
|
261 |
+
},
|
262 |
+
requestPayerName: true,
|
263 |
+
requestPayerEmail: true,
|
264 |
+
requestPayerPhone: true,
|
265 |
+
requestShipping: this.needs_shipping()
|
266 |
+
}
|
267 |
+
var displayItems = this.get_display_items(),
|
268 |
+
shippingOptions = this.get_shipping_options();
|
269 |
+
if (displayItems) {
|
270 |
+
options.displayItems = displayItems;
|
271 |
+
}
|
272 |
+
if (this.needs_shipping() && shippingOptions) {
|
273 |
+
options.shippingOptions = shippingOptions;
|
274 |
+
}
|
275 |
+
return options;
|
276 |
+
}
|
277 |
+
|
278 |
+
/**
|
279 |
+
* @return {[Object]}
|
280 |
+
*/
|
281 |
+
wc_stripe.BaseGateway.prototype.get_payment_request_update = function(data) {
|
282 |
+
var options = {
|
283 |
+
currency: this.get_currency().toLowerCase(),
|
284 |
+
total: {
|
285 |
+
amount: parseInt(this.get_total_price_cents()),
|
286 |
+
label: this.params.total_label,
|
287 |
+
pending: true
|
288 |
+
}
|
289 |
+
}
|
290 |
+
var displayItems = this.get_display_items(),
|
291 |
+
shippingOptions = this.get_shipping_options();
|
292 |
+
if (displayItems) {
|
293 |
+
options.displayItems = displayItems;
|
294 |
+
}
|
295 |
+
if (this.needs_shipping() && shippingOptions) {
|
296 |
+
options.shippingOptions = shippingOptions;
|
297 |
+
}
|
298 |
+
if (data) {
|
299 |
+
options = $.extend(true, {}, options, data);
|
300 |
+
}
|
301 |
+
return options;
|
302 |
+
}
|
303 |
+
|
304 |
+
/**
|
305 |
+
* @return {[type]}
|
306 |
+
*/
|
307 |
+
wc_stripe.BaseGateway.prototype.get_display_items = function() {
|
308 |
+
return $('#wc_stripe_display_items').data('items');
|
309 |
+
}
|
310 |
+
|
311 |
+
/**
|
312 |
+
* @return {[type]}
|
313 |
+
*/
|
314 |
+
wc_stripe.BaseGateway.prototype.set_display_items = function(items) {
|
315 |
+
$('#wc_stripe_display_items').data('items', items);
|
316 |
+
}
|
317 |
+
|
318 |
+
/**
|
319 |
+
* Return an array of shipping options for display in the Google payment sheet
|
320 |
+
* @return {[type]}
|
321 |
+
*/
|
322 |
+
wc_stripe.BaseGateway.prototype.get_shipping_options = function() {
|
323 |
+
return $('#wc_stripe_shipping_options').data('items');
|
324 |
+
}
|
325 |
+
|
326 |
+
/**
|
327 |
+
* Update the shipping options.
|
328 |
+
* @param {[type]}
|
329 |
+
*/
|
330 |
+
wc_stripe.BaseGateway.prototype.set_shipping_options = function(items) {
|
331 |
+
$('#wc_stripe_shipping_options').data('items', items);
|
332 |
+
}
|
333 |
+
|
334 |
+
/**
|
335 |
+
* Maps an address from the Browser address format to WC format.
|
336 |
+
* @param {[type]}
|
337 |
+
* @return {[type]}
|
338 |
+
*/
|
339 |
+
wc_stripe.BaseGateway.prototype.map_address = function(address) {
|
340 |
+
return {
|
341 |
+
city: address.city,
|
342 |
+
postcode: address.postalCode,
|
343 |
+
state: address.region,
|
344 |
+
country: address.country
|
345 |
+
}
|
346 |
+
}
|
347 |
+
|
348 |
+
/**
|
349 |
+
* @param {[type]}
|
350 |
+
* @return {[type]}
|
351 |
+
*/
|
352 |
+
wc_stripe.BaseGateway.prototype.on_payment_method_received = function(paymentResponse) {
|
353 |
+
try {
|
354 |
+
this.payment_response = paymentResponse;
|
355 |
+
this.populate_checkout_fields(paymentResponse);
|
356 |
+
paymentResponse.complete("success");
|
357 |
+
this.on_token_received(paymentResponse.paymentMethod);
|
358 |
+
} catch (err) {
|
359 |
+
window.alert(err);
|
360 |
+
}
|
361 |
+
}
|
362 |
+
|
363 |
+
/**
|
364 |
+
* @return {[type]}
|
365 |
+
*/
|
366 |
+
wc_stripe.BaseGateway.prototype.populate_checkout_fields = function(data) {
|
367 |
+
$(this.token_selector).val(data.paymentMethod.id);
|
368 |
+
this.populate_address_fields(data);
|
369 |
+
}
|
370 |
+
|
371 |
+
/**
|
372 |
+
* @param {[type]}
|
373 |
+
* @return {[type]}
|
374 |
+
*/
|
375 |
+
wc_stripe.BaseGateway.prototype.populate_address_fields = function(data) {
|
376 |
+
var mappings = this.address_mappings();
|
377 |
+
if (data.payerName) {
|
378 |
+
mappings.payerName.set(data.payerName);
|
379 |
+
}
|
380 |
+
if (data.payerEmail) {
|
381 |
+
mappings.payerEmail.set(data.payerEmail);
|
382 |
+
}
|
383 |
+
if (data.payerPhone) {
|
384 |
+
mappings.payerPhone.set(data.payerPhone);
|
385 |
+
}
|
386 |
+
if (data.shippingAddress) {
|
387 |
+
var address = data.shippingAddress;
|
388 |
+
for (var k in address) {
|
389 |
+
if (mappings[k]) {
|
390 |
+
mappings[k].set.call(this, address[k], '#shipping');
|
391 |
+
}
|
392 |
+
}
|
393 |
+
}
|
394 |
+
if (data.paymentMethod.billing_details.address) {
|
395 |
+
var address = data.paymentMethod.billing_details.address;
|
396 |
+
for (var k in address) {
|
397 |
+
if (mappings[k]) {
|
398 |
+
mappings[k].set.call(this, address[k], '#billing');
|
399 |
+
}
|
400 |
+
}
|
401 |
+
}
|
402 |
+
this.maybe_set_ship_to_different();
|
403 |
+
$('[name="billing_country"]').trigger('change');
|
404 |
+
}
|
405 |
+
|
406 |
+
/**
|
407 |
+
* @return {[type]}
|
408 |
+
*/
|
409 |
+
wc_stripe.BaseGateway.prototype.address_mappings = function() {
|
410 |
+
return {
|
411 |
+
payerName: {
|
412 |
+
set: function(v, prefix) {
|
413 |
+
var name = v.split(" ");
|
414 |
+
if (name.length > 0) {
|
415 |
+
$('#billing_first_name').val(name[0]);
|
416 |
+
}
|
417 |
+
if (name.length > 1) {
|
418 |
+
$('#billing_last_name').val(name[1]);
|
419 |
+
}
|
420 |
+
},
|
421 |
+
get: function(prefix) {
|
422 |
+
return $('#billing_first_name').val() + ' ' + $('#billing_last_name').val()
|
423 |
+
}
|
424 |
+
},
|
425 |
+
payerEmail: {
|
426 |
+
set: function(v) {
|
427 |
+
$('#billing_email').val(v);
|
428 |
+
},
|
429 |
+
get: function() {
|
430 |
+
return $('#billing_email').val();
|
431 |
+
}
|
432 |
+
},
|
433 |
+
payerPhone: {
|
434 |
+
set: function(v) {
|
435 |
+
$('#billing_phone').val(v);
|
436 |
+
},
|
437 |
+
get: function() {
|
438 |
+
return $('#billing_phone').val();
|
439 |
+
}
|
440 |
+
},
|
441 |
+
recipient: {
|
442 |
+
set: function(v, prefix) {
|
443 |
+
var name = v.split(" ");
|
444 |
+
if (name.length > 0) {
|
445 |
+
$(prefix + '_first_name').val(name[0]);
|
446 |
+
}
|
447 |
+
if (name.length > 1) {
|
448 |
+
$(prefix + '_last_name').val(name[1]);
|
449 |
+
}
|
450 |
+
},
|
451 |
+
get: function(prefix) {
|
452 |
+
return $(prefix + '_first_name').val() + ' ' + $(prefix + '_last_name').val()
|
453 |
+
}
|
454 |
+
},
|
455 |
+
country: {
|
456 |
+
set: function(v, prefix) {
|
457 |
+
$(prefix + '_country').val(v);
|
458 |
+
},
|
459 |
+
get: function(prefix) {
|
460 |
+
return $(prefix + '_country').val();
|
461 |
+
}
|
462 |
+
},
|
463 |
+
addressLine: {
|
464 |
+
set: function(v, prefix) {
|
465 |
+
if (v.length > 0) {
|
466 |
+
$(prefix + '_address_1').val(v[0]);
|
467 |
+
}
|
468 |
+
if (v.length > 1) {
|
469 |
+
$(prefix + '_address_2').val(v[1]);
|
470 |
+
}
|
471 |
+
},
|
472 |
+
get: function(prefix) {
|
473 |
+
return [
|
474 |
+
$(prefix + '_address_1').val(),
|
475 |
+
$(prefix + '_address_2').val(),
|
476 |
+
]
|
477 |
+
}
|
478 |
+
},
|
479 |
+
line1: {
|
480 |
+
set: function(v, prefix) {
|
481 |
+
$(prefix + '_address_1').val(v);
|
482 |
+
},
|
483 |
+
get: function(prefix) {
|
484 |
+
return $(prefix + '_address_1').val();
|
485 |
+
}
|
486 |
+
},
|
487 |
+
line2: {
|
488 |
+
set: function(v, prefix) {
|
489 |
+
$(prefix + '_address_2').val(v);
|
490 |
+
},
|
491 |
+
get: function(prefix) {
|
492 |
+
return $(prefix + '_address_2').val();
|
493 |
+
}
|
494 |
+
},
|
495 |
+
region: {
|
496 |
+
set: function(v, prefix) {
|
497 |
+
$(prefix + '_state').val(v);
|
498 |
+
},
|
499 |
+
get: function(prefix) {
|
500 |
+
$(prefix + '_state').val();
|
501 |
+
}
|
502 |
+
},
|
503 |
+
state: {
|
504 |
+
set: function(v, prefix) {
|
505 |
+
$(prefix + '_state').val(v);
|
506 |
+
},
|
507 |
+
get: function(prefix) {
|
508 |
+
$(prefix + '_state').val();
|
509 |
+
}
|
510 |
+
},
|
511 |
+
city: {
|
512 |
+
set: function(v, prefix) {
|
513 |
+
$(prefix + '_city').val(v);
|
514 |
+
},
|
515 |
+
get: function(prefix) {
|
516 |
+
$(prefix + '_city').val();
|
517 |
+
}
|
518 |
+
},
|
519 |
+
postalCode: {
|
520 |
+
set: function(v, prefix) {
|
521 |
+
$(prefix + '_postcode').val(v);
|
522 |
+
},
|
523 |
+
get: function(prefix) {
|
524 |
+
$(prefix + '_postcode').val();
|
525 |
+
}
|
526 |
+
},
|
527 |
+
postal_code: {
|
528 |
+
set: function(v, prefix) {
|
529 |
+
$(prefix + '_postcode').val(v);
|
530 |
+
},
|
531 |
+
get: function(prefix) {
|
532 |
+
$(prefix + '_postcode').val();
|
533 |
+
}
|
534 |
+
}
|
535 |
+
}
|
536 |
+
}
|
537 |
+
|
538 |
+
/**
|
539 |
+
* @return {[type]}
|
540 |
+
*/
|
541 |
+
wc_stripe.BaseGateway.prototype.process_checkout = function() {
|
542 |
+
return new Promise(function(resolve, reject) {
|
543 |
+
this.block();
|
544 |
+
$.ajax({
|
545 |
+
url: this.params.routes.checkout,
|
546 |
+
method: 'POST',
|
547 |
+
dataType: 'json',
|
548 |
+
data: this.serialize_form(this.get_form()),
|
549 |
+
beforeSend: function(xhr) {
|
550 |
+
xhr.setRequestHeader('X-WP-Nonce', this.params.rest_nonce);
|
551 |
+
}.bind(this)
|
552 |
+
}).done(function(result) {
|
553 |
+
if (result.reload) {
|
554 |
+
window.location.reload();
|
555 |
+
return;
|
556 |
+
}
|
557 |
+
if (result.result === 'success') {
|
558 |
+
window.location = result.redirect;
|
559 |
+
} else {
|
560 |
+
if (result.messages) {
|
561 |
+
this.submit_error(result.messages);
|
562 |
+
}
|
563 |
+
this.unblock();
|
564 |
+
}
|
565 |
+
}.bind(this)).fail(function(xhr, textStatus, errorThrown) {
|
566 |
+
this.unblock();
|
567 |
+
this.submit_error(errorThrown);
|
568 |
+
}.bind(this))
|
569 |
+
}.bind(this))
|
570 |
+
}
|
571 |
+
|
572 |
+
/**
|
573 |
+
* @return {[type]}
|
574 |
+
*/
|
575 |
+
wc_stripe.BaseGateway.prototype.serialize_form = function($form) {
|
576 |
+
var formData = $form.find('input').filter(function(i, e) {
|
577 |
+
if ($(e).is('[name^="add-to-cart"]')) {
|
578 |
+
return false;
|
579 |
+
}
|
580 |
+
return true;
|
581 |
+
}.bind(this)).serializeArray(),
|
582 |
+
data = {};
|
583 |
+
|
584 |
+
for (var i in formData) {
|
585 |
+
var obj = formData[i];
|
586 |
+
data[obj.name] = obj.value;
|
587 |
+
}
|
588 |
+
data.payment_method = this.gateway_id;
|
589 |
+
return data;
|
590 |
+
}
|
591 |
+
|
592 |
+
/**
|
593 |
+
* @param {[type]}
|
594 |
+
* @return {[type]}
|
595 |
+
*/
|
596 |
+
wc_stripe.BaseGateway.prototype.map_shipping_methods = function(shippingData) {
|
597 |
+
var methods = {};
|
598 |
+
if (shippingData !== "default") {
|
599 |
+
var matches = shippingData.match(/^(\d):(.+)$/);
|
600 |
+
if (matches.length > 1) {
|
601 |
+
methods[matches[1]] = matches[2];
|
602 |
+
}
|
603 |
+
}
|
604 |
+
return methods;
|
605 |
+
}
|
606 |
+
|
607 |
+
/**
|
608 |
+
* [maybe_set_ship_to_different description]
|
609 |
+
* @return {[type]} [description]
|
610 |
+
*/
|
611 |
+
wc_stripe.BaseGateway.prototype.maybe_set_ship_to_different = function() {
|
612 |
+
// if shipping and billing address are different,
|
613 |
+
// set the ship to different address option.
|
614 |
+
if ($('[name="ship_to_different_address"]').length) {
|
615 |
+
$('[name="ship_to_different_address"]').prop('checked', this.get_address_field_hash("#billing") !== this.get_address_field_hash("#shipping")).trigger('change');
|
616 |
+
}
|
617 |
+
}
|
618 |
+
|
619 |
+
/**
|
620 |
+
* @return {[@event]}
|
621 |
+
*/
|
622 |
+
wc_stripe.BaseGateway.prototype.update_shipping_address = function(ev) {
|
623 |
+
return new Promise(function(resolve, reject) {
|
624 |
+
$.ajax({
|
625 |
+
url: this.params.routes.shipping_address,
|
626 |
+
method: 'POST',
|
627 |
+
dataType: 'json',
|
628 |
+
data: { address: this.map_address(ev.shippingAddress), payment_method: this.gateway_id },
|
629 |
+
beforeSend: function(xhr) {
|
630 |
+
xhr.setRequestHeader('X-WP-Nonce', this.params.rest_nonce);
|
631 |
+
}.bind(this)
|
632 |
+
}).done(function(response) {
|
633 |
+
if (response.code) {
|
634 |
+
ev.updateWith(response.data.newData);
|
635 |
+
reject(response.data);
|
636 |
+
} else {
|
637 |
+
ev.updateWith(response.data.newData);
|
638 |
+
resolve(response.data);
|
639 |
+
}
|
640 |
+
}.bind(this)).fail(function(xhr, textStatus, errorThrown) {
|
641 |
+
|
642 |
+
}.bind(this))
|
643 |
+
}.bind(this))
|
644 |
+
}
|
645 |
+
|
646 |
+
/**
|
647 |
+
* @return {[@event]}
|
648 |
+
*/
|
649 |
+
wc_stripe.BaseGateway.prototype.update_shipping_method = function(ev) {
|
650 |
+
return new Promise(function(resolve, reject) {
|
651 |
+
$.ajax({
|
652 |
+
url: this.params.routes.shipping_method,
|
653 |
+
method: 'POST',
|
654 |
+
dataType: 'json',
|
655 |
+
data: { shipping_methods: this.map_shipping_methods(ev.shippingOption.id), payment_method: this.gateway_id },
|
656 |
+
beforeSend: function(xhr) {
|
657 |
+
xhr.setRequestHeader('X-WP-Nonce', this.params.rest_nonce);
|
658 |
+
}.bind(this)
|
659 |
+
}).done(function(response) {
|
660 |
+
if (response.code) {
|
661 |
+
ev.updateWith(response.data.newData);
|
662 |
+
reject(response.data);
|
663 |
+
} else {
|
664 |
+
this.set_selected_shipping_methods(response.data.shipping_methods);
|
665 |
+
ev.updateWith(response.data.newData);
|
666 |
+
resolve(response.data);
|
667 |
+
}
|
668 |
+
}.bind(this)).fail(function(xhr, textStatus, errorThrown) {
|
669 |
+
this.submit_error(errorThrown);
|
670 |
+
}.bind(this))
|
671 |
+
}.bind(this))
|
672 |
+
}
|
673 |
+
|
674 |
+
|
675 |
+
/********** Checkout Gateway ********/
|
676 |
+
|
677 |
+
/**
|
678 |
+
* @constructor
|
679 |
+
*/
|
680 |
+
wc_stripe.CheckoutGateway = function() {
|
681 |
+
this.container = this.message_container = 'li.payment_method_' + this.gateway_id;
|
682 |
+
this.banner_container = 'li.banner_payment_method_' + this.gateway_id;
|
683 |
+
$(document.body).on('updated_checkout', this.updated_checkout.bind(this));
|
684 |
+
$(document.body).on('checkout_error', this.checkout_error.bind(this));
|
685 |
+
$(this.token_selector).closest('form').on('checkout_place_order_' + this.gateway_id, this.checkout_place_order.bind(this));
|
686 |
+
|
687 |
+
// events for showing gateway payment buttons
|
688 |
+
$(document.body).on('wc_stripe_new_method_' + this.gateway_id, this.on_show_new_methods.bind(this));
|
689 |
+
$(document.body).on('wc_stripe_saved_method_' + this.gateway_id, this.on_show_saved_methods.bind(this));
|
690 |
+
$(document.body).on('wc_stripe_payment_method_selected', this.on_payment_method_selected.bind(this));
|
691 |
+
|
692 |
+
if (this.banner_enabled()) {
|
693 |
+
if ($('.woocommerce-billing-fields').length) {
|
694 |
+
$(this.banner_container).css('max-width', $('.woocommerce-billing-fields').outerWidth(true));
|
695 |
+
}
|
696 |
+
}
|
697 |
+
}
|
698 |
+
|
699 |
+
/**
|
700 |
+
* Called on the WC updated_checkout event
|
701 |
+
*/
|
702 |
+
wc_stripe.CheckoutGateway.prototype.updated_checkout = function() {}
|
703 |
+
|
704 |
+
/**
|
705 |
+
* Called on the WC checkout_error event
|
706 |
+
*/
|
707 |
+
wc_stripe.CheckoutGateway.prototype.checkout_error = function() {
|
708 |
+
if (this.has_checkout_error()) {
|
709 |
+
this.payment_token_received = false;
|
710 |
+
this.payment_response = null;
|
711 |
+
this.show_payment_button();
|
712 |
+
this.hide_place_order();
|
713 |
+
}
|
714 |
+
}
|
715 |
+
|
716 |
+
/**
|
717 |
+
*
|
718 |
+
*/
|
719 |
+
wc_stripe.CheckoutGateway.prototype.is_valid_checkout = function() {
|
720 |
+
if ($('[name="terms"]').length) {
|
721 |
+
if (!$('[name="terms"]').is(':checked')) {
|
722 |
+
return false;
|
723 |
+
}
|
724 |
+
}
|
725 |
+
return true;
|
726 |
+
}
|
727 |
+
|
728 |
+
/**
|
729 |
+
* Returns the selected payment gateway's id.
|
730 |
+
*
|
731 |
+
* @returns {String}
|
732 |
+
*/
|
733 |
+
wc_stripe.CheckoutGateway.prototype.get_payment_method = function() {
|
734 |
+
return $('[name="payment_method"]:checked').val();
|
735 |
+
}
|
736 |
+
|
737 |
+
wc_stripe.CheckoutGateway.prototype.set_use_new_option = function(bool) {
|
738 |
+
$('#' + this.gateway_id + '_use_new').prop("checked", bool).trigger('change');
|
739 |
+
}
|
740 |
+
|
741 |
+
/**
|
742 |
+
* Called on the WC checkout_place_order_{$gateway_id} event
|
743 |
+
*/
|
744 |
+
wc_stripe.CheckoutGateway.prototype.checkout_place_order = function() {
|
745 |
+
if (!this.is_valid_checkout()) {
|
746 |
+
this.submit_error(this.params.messages.terms);
|
747 |
+
return false;
|
748 |
+
} else if (this.is_saved_method_selected()) {
|
749 |
+
return true;
|
750 |
+
}
|
751 |
+
return this.payment_token_received;
|
752 |
+
}
|
753 |
+
|
754 |
+
/**
|
755 |
+
* @param {[type]}
|
756 |
+
* @return {[type]}
|
757 |
+
*/
|
758 |
+
wc_stripe.CheckoutGateway.prototype.on_token_received = function(paymentMethod) {
|
759 |
+
this.payment_token_received = true;
|
760 |
+
$(this.token_selector).val(paymentMethod.id);
|
761 |
+
this.hide_payment_button();
|
762 |
+
this.show_place_order();
|
763 |
+
}
|
764 |
+
|
765 |
+
/**
|
766 |
+
* @return {[type]}
|
767 |
+
*/
|
768 |
+
wc_stripe.CheckoutGateway.prototype.block = function() {
|
769 |
+
$('form.checkout').block({
|
770 |
+
message: null,
|
771 |
+
overlayCSS: {
|
772 |
+
background: '#fff',
|
773 |
+
opacity: 0.6
|
774 |
+
}
|
775 |
+
});
|
776 |
+
}
|
777 |
+
|
778 |
+
/**
|
779 |
+
* @return {[type]}
|
780 |
+
*/
|
781 |
+
wc_stripe.CheckoutGateway.prototype.unblock = function() {
|
782 |
+
$('form.checkout').unblock();
|
783 |
+
}
|
784 |
+
|
785 |
+
wc_stripe.CheckoutGateway.prototype.hide_place_order = function() {
|
786 |
+
$('#place_order').addClass('wc-stripe-hide');
|
787 |
+
}
|
788 |
+
|
789 |
+
/**
|
790 |
+
* @return {[type]}
|
791 |
+
*/
|
792 |
+
wc_stripe.CheckoutGateway.prototype.show_place_order = function() {
|
793 |
+
$('#place_order').removeClass('wc-stripe-hide');
|
794 |
+
}
|
795 |
+
|
796 |
+
/**
|
797 |
+
* Method that should perform actions when the show new methods contain is made visible.
|
798 |
+
* @param {[@event]}
|
799 |
+
* @param {[String]}
|
800 |
+
* @return {[type]}
|
801 |
+
*/
|
802 |
+
wc_stripe.CheckoutGateway.prototype.on_show_new_methods = function() {
|
803 |
+
if (this.payment_token_received) {
|
804 |
+
this.show_place_order();
|
805 |
+
this.hide_payment_button();
|
806 |
+
} else {
|
807 |
+
this.hide_place_order();
|
808 |
+
this.show_payment_button();
|
809 |
+
}
|
810 |
+
}
|
811 |
+
|
812 |
+
/**
|
813 |
+
* Method that performs actions when the saved methods contains is visible.
|
814 |
+
* @param {[type]}
|
815 |
+
* @param {[type]}
|
816 |
+
* @return {[type]}
|
817 |
+
*/
|
818 |
+
wc_stripe.CheckoutGateway.prototype.on_show_saved_methods = function() {
|
819 |
+
this.hide_payment_button();
|
820 |
+
this.show_place_order();
|
821 |
+
}
|
822 |
+
|
823 |
+
/**
|
824 |
+
* @return {[type]}
|
825 |
+
*/
|
826 |
+
wc_stripe.CheckoutGateway.prototype.show_payment_button = function() {
|
827 |
+
if (this.$button) {
|
828 |
+
this.$button.show();
|
829 |
+
}
|
830 |
+
}
|
831 |
+
|
832 |
+
/**
|
833 |
+
* @return {[type]}
|
834 |
+
*/
|
835 |
+
wc_stripe.CheckoutGateway.prototype.hide_payment_button = function() {
|
836 |
+
if (this.$button) {
|
837 |
+
this.$button.hide();
|
838 |
+
}
|
839 |
+
}
|
840 |
+
|
841 |
+
/**
|
842 |
+
* Wrapper for on_payment_method_selected that is safe to call since it won't trigger
|
843 |
+
* any DOM events.
|
844 |
+
* @return {[type]}
|
845 |
+
*/
|
846 |
+
wc_stripe.CheckoutGateway.prototype.trigger_payment_method_selected = function() {
|
847 |
+
this.on_payment_method_selected(null, $('[name="payment_method"]:checked').val());
|
848 |
+
}
|
849 |
+
|
850 |
+
/**
|
851 |
+
* @param {[type]}
|
852 |
+
* @param {[type]}
|
853 |
+
* @return {[type]}
|
854 |
+
*/
|
855 |
+
wc_stripe.CheckoutGateway.prototype.on_payment_method_selected = function(e, payment_method) {
|
856 |
+
if (payment_method === this.gateway_id) {
|
857 |
+
if (this.payment_token_received || this.is_saved_method_selected()) {
|
858 |
+
this.hide_payment_button();
|
859 |
+
this.show_place_order();
|
860 |
+
} else {
|
861 |
+
this.show_payment_button();
|
862 |
+
this.hide_place_order();
|
863 |
+
}
|
864 |
+
} else {
|
865 |
+
this.hide_payment_button();
|
866 |
+
if (payment_method.indexOf('stripe_') < 0) {
|
867 |
+
this.show_place_order();
|
868 |
+
}
|
869 |
+
}
|
870 |
+
}
|
871 |
+
|
872 |
+
/**
|
873 |
+
* [Return true if the banner option has been enabled for the gateway.]
|
874 |
+
* @return {[type]} [description]
|
875 |
+
*/
|
876 |
+
wc_stripe.CheckoutGateway.prototype.banner_enabled = function() {
|
877 |
+
return this.params.banner_enabled === "1";
|
878 |
+
}
|
879 |
+
|
880 |
+
/************** Product Gateway ***************/
|
881 |
+
|
882 |
+
wc_stripe.ProductGateway = function() {
|
883 |
+
this.container = 'li.payment_method_' + this.gateway_id;
|
884 |
+
this.message_container = 'div.product';
|
885 |
+
|
886 |
+
// events
|
887 |
+
$(document.body).on('wc_stripe_updated_rest_nonce', this.set_rest_nonce.bind(this));
|
888 |
+
$('form.cart').on('found_variation', this.found_variation.bind(this));
|
889 |
+
$('form.cart').on('reset_data', this.reset_variation_data.bind(this));
|
890 |
+
|
891 |
+
this.buttonWidth = $('div.quantity').outerWidth(true) + $('.single_add_to_cart_button').outerWidth();
|
892 |
+
$(this.container).css('max-width', this.buttonWidth + 'px');
|
893 |
+
}
|
894 |
+
|
895 |
+
/**
|
896 |
+
* @return {[@int]}
|
897 |
+
*/
|
898 |
+
wc_stripe.ProductGateway.prototype.get_quantity = function() {
|
899 |
+
return parseInt($('[name="quantity"]').val());
|
900 |
+
}
|
901 |
+
|
902 |
+
/**
|
903 |
+
* @param {[type]}
|
904 |
+
* @param {[type]}
|
905 |
+
*/
|
906 |
+
wc_stripe.ProductGateway.prototype.set_rest_nonce = function(e, nonce) {
|
907 |
+
this.params.rest_nonce = nonce;
|
908 |
+
}
|
909 |
+
|
910 |
+
/**
|
911 |
+
* @param {[type]}
|
912 |
+
* @param {[type]}
|
913 |
+
* @return {[type]}
|
914 |
+
*/
|
915 |
+
wc_stripe.ProductGateway.prototype.found_variation = function(e, variation) {
|
916 |
+
var data = this.get_product_data();
|
917 |
+
data.price = variation.display_price;
|
918 |
+
data.needs_shipping = !variation.is_virtual;
|
919 |
+
this.set_product_data(data);
|
920 |
+
this.enable_payment_button();
|
921 |
+
}
|
922 |
+
|
923 |
+
/**
|
924 |
+
* @return {[type]}
|
925 |
+
*/
|
926 |
+
wc_stripe.ProductGateway.prototype.reset_variation_data = function() {
|
927 |
+
this.disable_payment_button();
|
928 |
+
}
|
929 |
+
|
930 |
+
/**
|
931 |
+
* @return {[type]}
|
932 |
+
*/
|
933 |
+
wc_stripe.ProductGateway.prototype.disable_payment_button = function() {
|
934 |
+
if (this.$button) {
|
935 |
+
this.get_button().prop('disabled', true).addClass('disabled');
|
936 |
+
}
|
937 |
+
}
|
938 |
+
|
939 |
+
/**
|
940 |
+
* @return {[type]}
|
941 |
+
*/
|
942 |
+
wc_stripe.ProductGateway.prototype.enable_payment_button = function() {
|
943 |
+
if (this.$button) {
|
944 |
+
this.get_button().prop('disabled', false).removeClass('disabled');
|
945 |
+
}
|
946 |
+
}
|
947 |
+
|
948 |
+
/**
|
949 |
+
* @return {[type]}
|
950 |
+
*/
|
951 |
+
wc_stripe.ProductGateway.prototype.get_button = function() {
|
952 |
+
return this.$button;
|
953 |
+
}
|
954 |
+
|
955 |
+
/**
|
956 |
+
* @return {Boolean}
|
957 |
+
*/
|
958 |
+
wc_stripe.ProductGateway.prototype.is_variable_product = function() {
|
959 |
+
return $('[name="variation_id"]').length > 0;
|
960 |
+
}
|
961 |
+
|
962 |
+
/**
|
963 |
+
* @return {[type]}
|
964 |
+
*/
|
965 |
+
wc_stripe.ProductGateway.prototype.needs_shipping = function() {
|
966 |
+
return this.get_product_data().needs_shipping;
|
967 |
+
}
|
968 |
+
|
969 |
+
/**
|
970 |
+
* @return {[type]}
|
971 |
+
*/
|
972 |
+
wc_stripe.ProductGateway.prototype.get_product_data = function() {
|
973 |
+
return $('#wc_stripe_product_data').data('product');
|
974 |
+
}
|
975 |
+
|
976 |
+
/**
|
977 |
+
* @return {[type]}
|
978 |
+
*/
|
979 |
+
wc_stripe.ProductGateway.prototype.set_product_data = function(data) {
|
980 |
+
$('#wc_stripe_product_data').data('product', data);
|
981 |
+
}
|
982 |
+
|
983 |
+
/**
|
984 |
+
* Add a product to the WC shopping cart
|
985 |
+
*/
|
986 |
+
wc_stripe.ProductGateway.prototype.add_to_cart = function() {
|
987 |
+
return new Promise(function(resolve, reject) {
|
988 |
+
this.block();
|
989 |
+
$.ajax({
|
990 |
+
url: this.params.routes.add_to_cart,
|
991 |
+
method: 'POST',
|
992 |
+
dataType: 'json',
|
993 |
+
data: {
|
994 |
+
product_id: $('#product_id').val(),
|
995 |
+
variation_id: this.is_variable_product() ? $('[name="variation_id"]').val() : 0,
|
996 |
+
qty: $('[name="quantity"]').val(),
|
997 |
+
payment_method: this.gateway_id
|
998 |
+
},
|
999 |
+
beforeSend: function(xhr) {
|
1000 |
+
xhr.setRequestHeader('X-WP-Nonce', this.params.rest_nonce);
|
1001 |
+
}.bind(this)
|
1002 |
+
}).done(function(response, status, xhr) {
|
1003 |
+
this.unblock();
|
1004 |
+
$(document.body).triggerHandler('wc_stripe_updated_rest_nonce', xhr.getResponseHeader('X-WP-Nonce'));
|
1005 |
+
if (response.code) {
|
1006 |
+
this.submit_error(response.message);
|
1007 |
+
reject(response);
|
1008 |
+
} else {
|
1009 |
+
this.set_total_price(response.data.total);
|
1010 |
+
this.set_total_price_cents(response.data.totalCents);
|
1011 |
+
this.set_display_items(response.data.displayItems);
|
1012 |
+
resolve(response.data);
|
1013 |
+
}
|
1014 |
+
}.bind(this)).fail(function(xhr, textStatus, errorThrown) {
|
1015 |
+
this.unblock();
|
1016 |
+
this.submit_error(errorThrown);
|
1017 |
+
}.bind(this))
|
1018 |
+
}.bind(this))
|
1019 |
+
}
|
1020 |
+
|
1021 |
+
/************* Cart Gateway *************/
|
1022 |
+
|
1023 |
+
/**
|
1024 |
+
* @constructor
|
1025 |
+
*/
|
1026 |
+
wc_stripe.CartGateway = function() {
|
1027 |
+
this.container = 'li.payment_method_' + this.gateway_id;
|
1028 |
+
this.message_container = 'div.woocommerce';
|
1029 |
+
|
1030 |
+
// cart events
|
1031 |
+
$(document.body).on('updated_wc_div', this.updated_html.bind(this));
|
1032 |
+
$(document.body).on('updated_cart_totals', this.updated_html.bind(this));
|
1033 |
+
}
|
1034 |
+
|
1035 |
+
wc_stripe.CartGateway.prototype.needs_shipping = function() {
|
1036 |
+
return $('#wc_stripe_needs_shipping').data('value') === 1;
|
1037 |
+
}
|
1038 |
+
|
1039 |
+
/**
|
1040 |
+
* @param {[type]}
|
1041 |
+
* @return {[type]}
|
1042 |
+
*/
|
1043 |
+
wc_stripe.CartGateway.prototype.submit_error = function(message) {
|
1044 |
+
this.submit_message(message);
|
1045 |
+
}
|
1046 |
+
|
1047 |
+
/**
|
1048 |
+
* @param {[@event]}
|
1049 |
+
* @return {[null]}
|
1050 |
+
*/
|
1051 |
+
wc_stripe.CartGateway.prototype.updated_html = function(e) {
|
1052 |
+
|
1053 |
+
}
|
1054 |
+
|
1055 |
+
/************* Google Pay Mixins **************/
|
1056 |
+
|
1057 |
+
wc_stripe.GooglePay = function() {}
|
1058 |
+
|
1059 |
+
const googlePayBaseRequest = {
|
1060 |
+
apiVersion: 2,
|
1061 |
+
apiVersionMinor: 0
|
1062 |
+
}
|
1063 |
+
|
1064 |
+
const allowedCardNetworks = ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"];
|
1065 |
+
|
1066 |
+
const allowedCardAuthMethods = ["PAN_ONLY"];
|
1067 |
+
|
1068 |
+
const baseCardPaymentMethod = {
|
1069 |
+
type: 'CARD',
|
1070 |
+
parameters: {
|
1071 |
+
allowedAuthMethods: allowedCardAuthMethods,
|
1072 |
+
allowedCardNetworks: allowedCardNetworks
|
1073 |
+
}
|
1074 |
+
}
|
1075 |
+
|
1076 |
+
/**
|
1077 |
+
* Retrun an object of address mappings.
|
1078 |
+
* @param {[type]}
|
1079 |
+
* @return {[type]}
|
1080 |
+
*/
|
1081 |
+
wc_stripe.GooglePay.prototype.address_mappings = function(prefix) {
|
1082 |
+
return {
|
1083 |
+
name: {
|
1084 |
+
set: function(v, prefix) {
|
1085 |
+
var name = v.split(" ");
|
1086 |
+
$(prefix + '_first_name').val(name[0]);
|
1087 |
+
$(prefix + '_last_name').val(name[1]);
|
1088 |
+
},
|
1089 |
+
get: function(prefix) {
|
1090 |
+
return $(prefix + '_first_name').val() + $(prefix + '_last_name').val()
|
1091 |
+
}
|
1092 |
+
},
|
1093 |
+
postalCode: {
|
1094 |
+
set: function(v, prefix) {
|
1095 |
+
$(prefix + '_postcode').val(v);
|
1096 |
+
},
|
1097 |
+
get: function(prefix) {
|
1098 |
+
return $(prefix + '_postcode').val();
|
1099 |
+
}
|
1100 |
+
},
|
1101 |
+
countryCode: {
|
1102 |
+
set: function(v, prefix) {
|
1103 |
+
$(prefix + '_country').val(v);
|
1104 |
+
},
|
1105 |
+
get: function(prefix) {
|
1106 |
+
return $(prefix + '_country').val();
|
1107 |
+
}
|
1108 |
+
},
|
1109 |
+
phoneNumber: {
|
1110 |
+
set: function(v, prefix) {
|
1111 |
+
$('#billing_phone').val(v);
|
1112 |
+
},
|
1113 |
+
get: function() {
|
1114 |
+
return ('#billing_phone').val();
|
1115 |
+
}
|
1116 |
+
},
|
1117 |
+
address1: {
|
1118 |
+
set: function(v, prefix) {
|
1119 |
+
$(prefix + '_address_1').val(v);
|
1120 |
+
},
|
1121 |
+
get: function(prefix) {
|
1122 |
+
return $(prefix + '_address_1').val();
|
1123 |
+
}
|
1124 |
+
},
|
1125 |
+
address2: {
|
1126 |
+
set: function(v, prefix) {
|
1127 |
+
$(prefix + '_address_2').val(v);
|
1128 |
+
},
|
1129 |
+
get: function(prefix) {
|
1130 |
+
return $(prefix + '_address_2').val();
|
1131 |
+
}
|
1132 |
+
},
|
1133 |
+
locality: {
|
1134 |
+
set: function(v, prefix) {
|
1135 |
+
$(prefix + '_city').val(v);
|
1136 |
+
},
|
1137 |
+
get: function(prefix) {
|
1138 |
+
return $(prefix + '_city').val();
|
1139 |
+
}
|
1140 |
+
},
|
1141 |
+
administrativeArea: {
|
1142 |
+
set: function(v, prefix) {
|
1143 |
+
$(prefix + '_state').val(v);
|
1144 |
+
},
|
1145 |
+
get: function(prefix) {
|
1146 |
+
return $(prefix + '_state').val();
|
1147 |
+
}
|
1148 |
+
}
|
1149 |
+
}
|
1150 |
+
}
|
1151 |
+
|
1152 |
+
/**
|
1153 |
+
* Populate the WC checkout fields.
|
1154 |
+
* @param {[type]}
|
1155 |
+
* @return {[type]}
|
1156 |
+
*/
|
1157 |
+
wc_stripe.GooglePay.prototype.populate_address_fields = function(paymentData) {
|
1158 |
+
var billingAddress = paymentData.paymentMethodData.info.billingAddress,
|
1159 |
+
addressMappings = this.address_mappings();
|
1160 |
+
for (var k in billingAddress) {
|
1161 |
+
if (addressMappings[k]) {
|
1162 |
+
addressMappings[k].set.call(this, billingAddress[k], "#billing");
|
1163 |
+
}
|
1164 |
+
}
|
1165 |
+
if (paymentData.shippingAddress) {
|
1166 |
+
for (var k in paymentData.shippingAddress) {
|
1167 |
+
if (addressMappings[k]) {
|
1168 |
+
addressMappings[k].set.call(this, paymentData.shippingAddress[k], "#shipping");
|
1169 |
+
}
|
1170 |
+
}
|
1171 |
+
}
|
1172 |
+
if (paymentData.email) {
|
1173 |
+
$('#billing_email').val(paymentData.email);
|
1174 |
+
}
|
1175 |
+
this.maybe_set_ship_to_different();
|
1176 |
+
$('[name="billing_country"]').trigger('change');
|
1177 |
+
}
|
1178 |
+
|
1179 |
+
/**
|
1180 |
+
* @param {[type]}
|
1181 |
+
* @return {[type]}
|
1182 |
+
*/
|
1183 |
+
wc_stripe.GooglePay.prototype.map_address = function(address) {
|
1184 |
+
return {
|
1185 |
+
city: address.locality,
|
1186 |
+
postcode: address.postalCode,
|
1187 |
+
state: address.administrativeArea,
|
1188 |
+
country: address.countryCode
|
1189 |
+
}
|
1190 |
+
}
|
1191 |
+
|
1192 |
+
/**
|
1193 |
+
* @param {[type]}
|
1194 |
+
* @return {[type]}
|
1195 |
+
*/
|
1196 |
+
wc_stripe.GooglePay.prototype.update_payment_data = function(data) {
|
1197 |
+
return new Promise(function(resolve, reject) {
|
1198 |
+
$.when($.ajax({
|
1199 |
+
url: this.params.routes.payment_data,
|
1200 |
+
dataType: 'json',
|
1201 |
+
method: 'POST',
|
1202 |
+
data: {
|
1203 |
+
shipping_address: this.map_address(data.shippingAddress),
|
1204 |
+
shipping_methods: this.map_shipping_methods(data.shippingOptionData.id),
|
1205 |
+
shipping_method_id: data.shippingOptionData.id
|
1206 |
+
},
|
1207 |
+
beforeSend: function(xhr) {
|
1208 |
+
xhr.setRequestHeader('X-WP-Nonce', this.params.rest_nonce)
|
1209 |
+
}.bind(this)
|
1210 |
+
})).done(function(response) {
|
1211 |
+
if (response.code) {
|
1212 |
+
reject(response.data.data);
|
1213 |
+
} else {
|
1214 |
+
resolve(response.data);
|
1215 |
+
}
|
1216 |
+
}.bind(this)).fail(function() {
|
1217 |
+
reject();
|
1218 |
+
}.bind(this))
|
1219 |
+
}.bind(this))
|
1220 |
+
}
|
1221 |
+
|
1222 |
+
/**
|
1223 |
+
* @param {[type]}
|
1224 |
+
* @return {[type]}
|
1225 |
+
*/
|
1226 |
+
wc_stripe.GooglePay.prototype.on_payment_data_changed = function(address) {
|
1227 |
+
return new Promise(function(resolve, reject) {
|
1228 |
+
this.update_payment_data(address).then(function(response) {
|
1229 |
+
resolve(response.paymentRequestUpdate);
|
1230 |
+
this.set_selected_shipping_methods(response.shipping_methods);
|
1231 |
+
this.payment_data_updated(response, address);
|
1232 |
+
}.bind(this)).catch(function(data) {
|
1233 |
+
resolve(data);
|
1234 |
+
}.bind(this))
|
1235 |
+
}.bind(this))
|
1236 |
+
}
|
1237 |
+
|
1238 |
+
/**
|
1239 |
+
* Convenience method so that gateway can perform actions after the payment data
|
1240 |
+
* has been updated.
|
1241 |
+
* @param {[type]}
|
1242 |
+
* @return {[type]}
|
1243 |
+
*/
|
1244 |
+
wc_stripe.GooglePay.prototype.payment_data_updated = function(response) {
|
1245 |
+
|
1246 |
+
}
|
1247 |
+
|
1248 |
+
/**
|
1249 |
+
* Return an array of line items for display in the Google payment sheet
|
1250 |
+
* @return {[type]}
|
1251 |
+
*/
|
1252 |
+
wc_stripe.GooglePay.prototype.get_googlepay_display_items = function() {
|
1253 |
+
return $('#googlepay_display_items').data('items');
|
1254 |
+
}
|
1255 |
+
|
1256 |
+
/**
|
1257 |
+
* Set the display items in the DOM as a data attribute.
|
1258 |
+
* @param {[type]}
|
1259 |
+
*/
|
1260 |
+
wc_stripe.GooglePay.prototype.set_googlepay_display_items = function(displayItems) {
|
1261 |
+
$('#googlepay_display_items').data('items', displayItems);
|
1262 |
+
}
|
1263 |
+
|
1264 |
+
/**
|
1265 |
+
* Return an array of shipping options for display in the Google payment sheet
|
1266 |
+
* @return {[type]}
|
1267 |
+
*/
|
1268 |
+
wc_stripe.GooglePay.prototype.get_shipping_options = function() {
|
1269 |
+
return $('#googlepay_shipping_options').data('items');
|
1270 |
+
}
|
1271 |
+
|
1272 |
+
/**
|
1273 |
+
* @return {[type]}
|
1274 |
+
*/
|
1275 |
+
wc_stripe.GooglePay.prototype.get_merchant_info = function() {
|
1276 |
+
return {
|
1277 |
+
merchantId: this.params.merchant_id,
|
1278 |
+
merchantName: this.params.merchant_name
|
1279 |
+
}
|
1280 |
+
}
|
1281 |
+
|
1282 |
+
/**
|
1283 |
+
* @return {[type]}
|
1284 |
+
*/
|
1285 |
+
wc_stripe.GooglePay.prototype.get_payment_options = function() {
|
1286 |
+
var options = {
|
1287 |
+
environment: this.params.environment,
|
1288 |
+
merchantInfo: this.get_merchant_info()
|
1289 |
+
}
|
1290 |
+
if (this.needs_shipping() && (this.get_total_price_cents() > 0)) {
|
1291 |
+
options.paymentDataCallbacks = {
|
1292 |
+
onPaymentDataChanged: this.on_payment_data_changed.bind(this)
|
1293 |
+
}
|
1294 |
+
} else {
|
1295 |
+
options.paymentDataCallbacks = {
|
1296 |
+
onPaymentAuthorized: function(data) {
|
1297 |
+
return new Promise(function(resolve, reject) {
|
1298 |
+
resolve({ transactionState: "SUCCESS" })
|
1299 |
+
}.bind(this))
|
1300 |
+
}
|
1301 |
+
}
|
1302 |
+
}
|
1303 |
+
return options;
|
1304 |
+
}
|
1305 |
+
|
1306 |
+
/**
|
1307 |
+
* @return {[type]}
|
1308 |
+
*/
|
1309 |
+
wc_stripe.GooglePay.prototype.build_payment_request = function() {
|
1310 |
+
var request = $.extend({}, googlePayBaseRequest, {
|
1311 |
+
emailRequired: true,
|
1312 |
+
merchantInfo: this.get_merchant_info(),
|
1313 |
+
allowedPaymentMethods: [$.extend({
|
1314 |
+
type: "CARD",
|
1315 |
+
tokenizationSpecification: {
|
1316 |
+
type: "PAYMENT_GATEWAY",
|
1317 |
+
parameters: {
|
1318 |
+
gateway: 'stripe',
|
1319 |
+
"stripe:version": "2018-10-31",
|
1320 |
+
"stripe:publishableKey": this.params.api_key
|
1321 |
+
}
|
1322 |
+
}
|
1323 |
+
}, baseCardPaymentMethod)],
|
1324 |
+
shippingAddressRequired: this.needs_shipping() && this.get_total_price_cents() > 0,
|
1325 |
+
shippingOptionRequired: this.needs_shipping() && this.get_total_price_cents() > 0,
|
1326 |
+
transactionInfo: {
|
1327 |
+
currencyCode: this.get_currency(),
|
1328 |
+
totalPriceStatus: "ESTIMATED",
|
1329 |
+
totalPrice: this.get_total_price().toString(),
|
1330 |
+
displayItems: this.get_googlepay_display_items(),
|
1331 |
+
totalPriceLabel: this.params.total_price_label
|
1332 |
+
}
|
1333 |
+
})
|
1334 |
+
request.allowedPaymentMethods[0].parameters['billingAddressRequired'] = true;
|
1335 |
+
request.allowedPaymentMethods[0].parameters['billingAddressParameters'] = {
|
1336 |
+
format: "FULL",
|
1337 |
+
phoneNumberRequired: $('#billing_phone').length > 0
|
1338 |
+
}
|
1339 |
+
if (this.needs_shipping() && (this.get_total_price_cents() > 0)) {
|
1340 |
+
request['shippingAddressParameters'] = {};
|
1341 |
+
request['shippingOptionParameters'] = {
|
1342 |
+
shippingOptions: this.get_shipping_options(),
|
1343 |
+
};
|
1344 |
+
request['callbackIntents'] = ["SHIPPING_ADDRESS", "SHIPPING_OPTION"];
|
1345 |
+
} else {
|
1346 |
+
request['callbackIntents'] = ["PAYMENT_AUTHORIZATION"];
|
1347 |
+
}
|
1348 |
+
return request;
|
1349 |
+
}
|
1350 |
+
|
1351 |
+
/**
|
1352 |
+
* @return {[type]}
|
1353 |
+
*/
|
1354 |
+
wc_stripe.GooglePay.prototype.createPaymentsClient = function() {
|
1355 |
+
this.paymentsClient = new google.payments.api.PaymentsClient(this.get_payment_options());
|
1356 |
+
}
|
1357 |
+
|
1358 |
+
/**
|
1359 |
+
* @return {Promise}
|
1360 |
+
*/
|
1361 |
+
wc_stripe.GooglePay.prototype.isReadyToPay = function() {
|
1362 |
+
return new Promise(function(resolve) {
|
1363 |
+
var isReadyToPayRequest = $.extend({}, googlePayBaseRequest);
|
1364 |
+
isReadyToPayRequest.allowedPaymentMethods = [baseCardPaymentMethod];
|
1365 |
+
this.paymentsClient.isReadyToPay(isReadyToPayRequest).then(function() {
|
1366 |
+
this.can_pay = true;
|
1367 |
+
this.create_button();
|
1368 |
+
resolve();
|
1369 |
+
}.bind(this)).catch(function(err) {
|
1370 |
+
this.submit_error(err);
|
1371 |
+
}.bind(this))
|
1372 |
+
}.bind(this))
|
1373 |
+
}
|
1374 |
+
|
1375 |
+
wc_stripe.GooglePay.prototype.create_button = function() {
|
1376 |
+
if (this.$button) {
|
1377 |
+
this.$button.remove();
|
1378 |
+
}
|
1379 |
+
this.$button = $(this.paymentsClient.createButton({
|
1380 |
+
onClick: this.start.bind(this),
|
1381 |
+
buttonColor: this.params.button_color,
|
1382 |
+
buttonType: this.params.button_style
|
1383 |
+
}));
|
1384 |
+
this.$button.addClass('gpay-button-container');
|
1385 |
+
}
|
1386 |
+
|
1387 |
+
/**
|
1388 |
+
* @return {[type]}
|
1389 |
+
*/
|
1390 |
+
wc_stripe.GooglePay.prototype.start = function() {
|
1391 |
+
// always recreate the paymentClient to ensure latest data is used.
|
1392 |
+
this.createPaymentsClient();
|
1393 |
+
this.paymentsClient.loadPaymentData(this.build_payment_request()).then(function(paymentData) {
|
1394 |
+
var data = JSON.parse(paymentData.paymentMethodData.tokenizationData.token);
|
1395 |
+
this.populate_address_fields(paymentData);
|
1396 |
+
this.on_token_received(data);
|
1397 |
+
}.bind(this)).catch(function(err) {
|
1398 |
+
if (err.statusCode === "CANCELED") {
|
1399 |
+
return;
|
1400 |
+
}
|
1401 |
+
if (err.statusMessage && err.statusMessage.indexOf("paymentDataRequest.callbackIntent") > -1) {
|
1402 |
+
this.submit_error_code("DEVELOPER_ERROR_WHITELIST");
|
1403 |
+
} else {
|
1404 |
+
this.submit_error(err.statusMessage);
|
1405 |
+
}
|
1406 |
+
}.bind(this))
|
1407 |
+
}
|
1408 |
+
|
1409 |
+
/************* Apple Pay ************/
|
1410 |
+
|
1411 |
+
/**
|
1412 |
+
* @constructor
|
1413 |
+
*/
|
1414 |
+
wc_stripe.ApplePay = function() {
|
1415 |
+
|
1416 |
+
}
|
1417 |
+
|
1418 |
+
/**
|
1419 |
+
* @return {[type]}
|
1420 |
+
*/
|
1421 |
+
wc_stripe.ApplePay.prototype.initialize = function() {
|
1422 |
+
$(document.body).on('click', '.apple-pay-button', this.start.bind(this));
|
1423 |
+
this.createPaymentRequest();
|
1424 |
+
this.canMakePayment();
|
1425 |
+
}
|
1426 |
+
|
1427 |
+
wc_stripe.ApplePay.prototype.create_button = function() {
|
1428 |
+
if (this.$button) {
|
1429 |
+
this.$button.remove();
|
1430 |
+
}
|
1431 |
+
this.$button = $(this.params.button);
|
1432 |
+
this.append_button();
|
1433 |
+
}
|
1434 |
+
|
1435 |
+
/**
|
1436 |
+
* @return {[type]}
|
1437 |
+
*/
|
1438 |
+
wc_stripe.ApplePay.prototype.canMakePayment = function() {
|
1439 |
+
return new Promise(function(resolve, reject) {
|
1440 |
+
this.paymentRequest.canMakePayment().then(function(result) {
|
1441 |
+
if (result && result.applePay) {
|
1442 |
+
this.can_pay = true;
|
1443 |
+
this.create_button();
|
1444 |
+
$(this.container).show();
|
1445 |
+
resolve(result);
|
1446 |
+
}
|
1447 |
+
}.bind(this))
|
1448 |
+
}.bind(this))
|
1449 |
+
}
|
1450 |
+
|
1451 |
+
/**
|
1452 |
+
* @return {[type]}
|
1453 |
+
*/
|
1454 |
+
wc_stripe.ApplePay.prototype.start = function(e) {
|
1455 |
+
e.preventDefault();
|
1456 |
+
this.paymentRequest.update(this.get_payment_request_update({
|
1457 |
+
total: {
|
1458 |
+
pending: false
|
1459 |
+
}
|
1460 |
+
}));
|
1461 |
+
this.paymentRequest.show();
|
1462 |
+
}
|
1463 |
+
|
1464 |
+
/*********** PaymentRequest *********/
|
1465 |
+
|
1466 |
+
wc_stripe.PaymentRequest = function() {
|
1467 |
+
|
1468 |
+
}
|
1469 |
+
|
1470 |
+
/**
|
1471 |
+
* [initialize description]
|
1472 |
+
* @return {[type]} [description]
|
1473 |
+
*/
|
1474 |
+
wc_stripe.PaymentRequest.prototype.initialize = function() {
|
1475 |
+
this.createPaymentRequest();
|
1476 |
+
this.canMakePayment();
|
1477 |
+
this.paymentRequestButton = this.createPaymentRequestButton();
|
1478 |
+
this.paymentRequestButton.on('click', this.button_click.bind(this));
|
1479 |
+
}
|
1480 |
+
|
1481 |
+
/**
|
1482 |
+
* [button_click description]
|
1483 |
+
* @param {[type]} event [description]
|
1484 |
+
* @return {[type]} [description]
|
1485 |
+
*/
|
1486 |
+
wc_stripe.PaymentRequest.prototype.button_click = function(event) {}
|
1487 |
+
|
1488 |
+
/**
|
1489 |
+
* [createPaymentRequestButton description]
|
1490 |
+
* @return {[type]} [description]
|
1491 |
+
*/
|
1492 |
+
wc_stripe.PaymentRequest.prototype.createPaymentRequestButton = function() {
|
1493 |
+
return this.elements.create("paymentRequestButton", {
|
1494 |
+
paymentRequest: this.paymentRequest,
|
1495 |
+
style: {
|
1496 |
+
paymentRequestButton: {
|
1497 |
+
type: this.params.button.type,
|
1498 |
+
theme: this.params.button.theme,
|
1499 |
+
height: this.params.button.height
|
1500 |
+
}
|
1501 |
+
}
|
1502 |
+
})
|
1503 |
+
}
|
1504 |
+
|
1505 |
+
/**
|
1506 |
+
* [canMakePayment description]
|
1507 |
+
* @return {[type]} [description]
|
1508 |
+
*/
|
1509 |
+
wc_stripe.PaymentRequest.prototype.canMakePayment = function() {
|
1510 |
+
return new Promise(function(resolve, reject) {
|
1511 |
+
this.paymentRequest.canMakePayment().then(function(result) {
|
1512 |
+
if (result && !result.applePay) {
|
1513 |
+
this.can_pay = true;
|
1514 |
+
this.create_button();
|
1515 |
+
$(this.container).show();
|
1516 |
+
resolve(result);
|
1517 |
+
}
|
1518 |
+
}.bind(this))
|
1519 |
+
}.bind(this))
|
1520 |
+
}
|
1521 |
+
|
1522 |
+
/**
|
1523 |
+
* [create_button description]
|
1524 |
+
* @return {[type]} [description]
|
1525 |
+
*/
|
1526 |
+
wc_stripe.PaymentRequest.prototype.create_button = function() {
|
1527 |
+
this.paymentRequestButton.mount('#wc-stripe-payment-request-container');
|
1528 |
+
}
|
1529 |
+
|
1530 |
+
}(window, jQuery))
|
assets/js/frontend/wc-stripe.min.js
ADDED
@@ -0,0 +1 @@
|
|
Â
|
1 |
+
!function(t,e){t.wc_stripe={};var i=Stripe(wc_stripe_params.api_key);wc_stripe.BaseGateway=function(t){this.params=t,this.gateway_id=this.params.gateway_id,this.token_selector=this.params.token_selector,this.saved_method_selector=this.params.saved_method_selector,this.payment_intent_selector=this.params.payment_intent_selector,this.payment_token_received=!1,this.stripe=i,this.elements=i.elements(e.extend({},{locale:"auto"},this.get_element_options())),this.initialize()},wc_stripe.BaseGateway.prototype.get_element_options=function(){return{}},wc_stripe.BaseGateway.prototype.initialize=function(){},wc_stripe.BaseGateway.prototype.create_button=function(){},wc_stripe.BaseGateway.prototype.is_gateway_selected=function(){return e('[name="payment_method"]:checked').val()===this.gateway_id},wc_stripe.BaseGateway.prototype.is_saved_method_selected=function(){return this.is_gateway_selected()&&"saved"===e('[name="'+this.gateway_id+'_payment_type_key"]:checked').val()},wc_stripe.BaseGateway.prototype.has_checkout_error=function(){return e("#wc_stripe_checkout_error").length>0&&this.is_gateway_selected()},wc_stripe.BaseGateway.prototype.submit_error=function(t){-1==t.indexOf("</ul>")&&(t='<div class="woocommerce-error">'+t+"</div>"),this.submit_message(t)},wc_stripe.BaseGateway.prototype.submit_error_code=function(t){},wc_stripe.BaseGateway.prototype.submit_message=function(t){e(".woocommerce-error, .woocommerce-message, .woocommerce-info").remove();var i=e(this.message_container);i.closest("form").length&&(i=i.closest("form")),i.prepend(t),i.removeClass("processing").unblock(),i.find(".input-text, select, input:checkbox").blur(),e("html, body").animate({scrollTop:i.offset().top-100},1e3)},wc_stripe.BaseGateway.prototype.should_save_method=function(){return e("#"+this.gateway_id+"_save_source_key").is(":checked")},wc_stripe.BaseGateway.prototype.is_add_payment_method_page=function(){return e(document.body).hasClass("woocommerce-add-payment-method")},wc_stripe.BaseGateway.prototype.get_selected_payment_method=function(){return e(this.saved_method_selector).val()},wc_stripe.BaseGateway.prototype.needs_shipping=function(){return"1"===this.params.needs_shipping},wc_stripe.BaseGateway.prototype.get_currency=function(){return e("#wc_stripe_currency").val()},wc_stripe.BaseGateway.prototype.get_country=function(){return e("#wc_stripe_country").val()},wc_stripe.BaseGateway.prototype.get_customer_name=function(t){return e(t+"_first_name").val()+" "+e(t+"_last_name").val()},wc_stripe.BaseGateway.prototype.get_customer_email=function(){return e("#billing_email").val()},wc_stripe.BaseGateway.prototype.get_address_field_hash=function(t){for(var i=["_first_name","_last_name","_address_1","_address_2","_postcode","_city","_state","_country"],a="",n=0;n<i.length;n++)a+=e(t+i[n]).val()+"_";return a},wc_stripe.BaseGateway.prototype.block=function(){e.blockUI({message:null,overlayCSS:{background:"#fff",opacity:.6}})},wc_stripe.BaseGateway.prototype.unblock=function(){e.unblockUI()},wc_stripe.BaseGateway.prototype.get_form=function(){return e(this.token_selector).closest("form")},wc_stripe.BaseGateway.prototype.get_total_price=function(){return e("#wc_stripe_order_total").data("amount")},wc_stripe.BaseGateway.prototype.get_total_price_cents=function(){return e("#wc_stripe_order_total_cents").data("amount")},wc_stripe.BaseGateway.prototype.set_total_price=function(t){e("#wc_stripe_order_total").data("amount",t)},wc_stripe.BaseGateway.prototype.set_total_price_cents=function(t){e("#wc_stripe_order_total_cents").data("amount",t)},wc_stripe.BaseGateway.prototype.set_payment_method=function(t){e('[name="payment_method"][value="'+t+'"]').prop("checked",!0).trigger("click")},wc_stripe.BaseGateway.prototype.set_selected_shipping_methods=function(t){if(t&&e('[name^="shipping_method"]').length)for(var i in t){var a=t[i];e('[name="shipping_method['+i+']"][value="'+a+'"]').prop("checked",!0).trigger("change")}},wc_stripe.BaseGateway.prototype.on_token_received=function(t){this.payment_token_received=!0,e(this.token_selector).val(t.id),this.process_checkout()},wc_stripe.BaseGateway.prototype.createPaymentRequest=function(){this.paymentRequest=i.paymentRequest(this.get_payment_request_options()),this.needs_shipping()&&(this.paymentRequest.on("shippingaddresschange",this.update_shipping_address.bind(this)),this.paymentRequest.on("shippingoptionchange",this.update_shipping_method.bind(this))),this.paymentRequest.on("paymentmethod",this.on_payment_method_received.bind(this))},wc_stripe.BaseGateway.prototype.get_payment_request_options=function(){var t={country:this.params.country_code,currency:this.get_currency().toLowerCase(),total:{amount:this.get_total_price_cents(),label:this.params.total_label,pending:!0},requestPayerName:!0,requestPayerEmail:!0,requestPayerPhone:!0,requestShipping:this.needs_shipping()},e=this.get_display_items(),i=this.get_shipping_options();return e&&(t.displayItems=e),this.needs_shipping()&&i&&(t.shippingOptions=i),t},wc_stripe.BaseGateway.prototype.get_payment_request_update=function(t){var i={currency:this.get_currency().toLowerCase(),total:{amount:parseInt(this.get_total_price_cents()),label:this.params.total_label,pending:!0}},a=this.get_display_items(),n=this.get_shipping_options();return a&&(i.displayItems=a),this.needs_shipping()&&n&&(i.shippingOptions=n),t&&(i=e.extend(!0,{},i,t)),i},wc_stripe.BaseGateway.prototype.get_display_items=function(){return e("#wc_stripe_display_items").data("items")},wc_stripe.BaseGateway.prototype.set_display_items=function(t){e("#wc_stripe_display_items").data("items",t)},wc_stripe.BaseGateway.prototype.get_shipping_options=function(){return e("#wc_stripe_shipping_options").data("items")},wc_stripe.BaseGateway.prototype.set_shipping_options=function(t){e("#wc_stripe_shipping_options").data("items",t)},wc_stripe.BaseGateway.prototype.map_address=function(t){return{city:t.city,postcode:t.postalCode,state:t.region,country:t.country}},wc_stripe.BaseGateway.prototype.on_payment_method_received=function(e){try{this.payment_response=e,this.populate_checkout_fields(e),e.complete("success"),this.on_token_received(e.paymentMethod)}catch(e){t.alert(e)}},wc_stripe.BaseGateway.prototype.populate_checkout_fields=function(t){e(this.token_selector).val(t.paymentMethod.id),this.populate_address_fields(t)},wc_stripe.BaseGateway.prototype.populate_address_fields=function(t){var i=this.address_mappings();if(t.payerName&&i.payerName.set(t.payerName),t.payerEmail&&i.payerEmail.set(t.payerEmail),t.payerPhone&&i.payerPhone.set(t.payerPhone),t.shippingAddress){var a=t.shippingAddress;for(var n in a)i[n]&&i[n].set.call(this,a[n],"#shipping")}if(t.paymentMethod.billing_details.address){a=t.paymentMethod.billing_details.address;for(var n in a)i[n]&&i[n].set.call(this,a[n],"#billing")}this.maybe_set_ship_to_different(),e('[name="billing_country"]').trigger("change")},wc_stripe.BaseGateway.prototype.address_mappings=function(){return{payerName:{set:function(t,i){var a=t.split(" ");a.length>0&&e("#billing_first_name").val(a[0]),a.length>1&&e("#billing_last_name").val(a[1])},get:function(t){return e("#billing_first_name").val()+" "+e("#billing_last_name").val()}},payerEmail:{set:function(t){e("#billing_email").val(t)},get:function(){return e("#billing_email").val()}},payerPhone:{set:function(t){e("#billing_phone").val(t)},get:function(){return e("#billing_phone").val()}},recipient:{set:function(t,i){var a=t.split(" ");a.length>0&&e(i+"_first_name").val(a[0]),a.length>1&&e(i+"_last_name").val(a[1])},get:function(t){return e(t+"_first_name").val()+" "+e(t+"_last_name").val()}},country:{set:function(t,i){e(i+"_country").val(t)},get:function(t){return e(t+"_country").val()}},addressLine:{set:function(t,i){t.length>0&&e(i+"_address_1").val(t[0]),t.length>1&&e(i+"_address_2").val(t[1])},get:function(t){return[e(t+"_address_1").val(),e(t+"_address_2").val()]}},line1:{set:function(t,i){e(i+"_address_1").val(t)},get:function(t){return e(t+"_address_1").val()}},line2:{set:function(t,i){e(i+"_address_2").val(t)},get:function(t){return e(t+"_address_2").val()}},region:{set:function(t,i){e(i+"_state").val(t)},get:function(t){e(t+"_state").val()}},state:{set:function(t,i){e(i+"_state").val(t)},get:function(t){e(t+"_state").val()}},city:{set:function(t,i){e(i+"_city").val(t)},get:function(t){e(t+"_city").val()}},postalCode:{set:function(t,i){e(i+"_postcode").val(t)},get:function(t){e(t+"_postcode").val()}},postal_code:{set:function(t,i){e(i+"_postcode").val(t)},get:function(t){e(t+"_postcode").val()}}}},wc_stripe.BaseGateway.prototype.process_checkout=function(){return new Promise(function(i,a){this.block(),e.ajax({url:this.params.routes.checkout,method:"POST",dataType:"json",data:this.serialize_form(this.get_form()),beforeSend:function(t){t.setRequestHeader("X-WP-Nonce",this.params.rest_nonce)}.bind(this)}).done(function(e){e.reload?t.location.reload():"success"===e.result?t.location=e.redirect:(e.messages&&this.submit_error(e.messages),this.unblock())}.bind(this)).fail(function(t,e,i){this.unblock(),this.submit_error(i)}.bind(this))}.bind(this))},wc_stripe.BaseGateway.prototype.serialize_form=function(t){var i=t.find("input").filter(function(t,i){return!e(i).is('[name^="add-to-cart"]')}.bind(this)).serializeArray(),a={};for(var n in i){var s=i[n];a[s.name]=s.value}return a.payment_method=this.gateway_id,a},wc_stripe.BaseGateway.prototype.map_shipping_methods=function(t){var e={};if("default"!==t){var i=t.match(/^(\d):(.+)$/);i.length>1&&(e[i[1]]=i[2])}return e},wc_stripe.BaseGateway.prototype.maybe_set_ship_to_different=function(){e('[name="ship_to_different_address"]').length&&e('[name="ship_to_different_address"]').prop("checked",this.get_address_field_hash("#billing")!==this.get_address_field_hash("#shipping")).trigger("change")},wc_stripe.BaseGateway.prototype.update_shipping_address=function(t){return new Promise(function(i,a){e.ajax({url:this.params.routes.shipping_address,method:"POST",dataType:"json",data:{address:this.map_address(t.shippingAddress),payment_method:this.gateway_id},beforeSend:function(t){t.setRequestHeader("X-WP-Nonce",this.params.rest_nonce)}.bind(this)}).done(function(e){e.code?(t.updateWith(e.data.newData),a(e.data)):(t.updateWith(e.data.newData),i(e.data))}.bind(this)).fail(function(t,e,i){}.bind(this))}.bind(this))},wc_stripe.BaseGateway.prototype.update_shipping_method=function(t){return new Promise(function(i,a){e.ajax({url:this.params.routes.shipping_method,method:"POST",dataType:"json",data:{shipping_methods:this.map_shipping_methods(t.shippingOption.id),payment_method:this.gateway_id},beforeSend:function(t){t.setRequestHeader("X-WP-Nonce",this.params.rest_nonce)}.bind(this)}).done(function(e){e.code?(t.updateWith(e.data.newData),a(e.data)):(this.set_selected_shipping_methods(e.data.shipping_methods),t.updateWith(e.data.newData),i(e.data))}.bind(this)).fail(function(t,e,i){this.submit_error(i)}.bind(this))}.bind(this))},wc_stripe.CheckoutGateway=function(){this.container=this.message_container="li.payment_method_"+this.gateway_id,this.banner_container="li.banner_payment_method_"+this.gateway_id,e(document.body).on("updated_checkout",this.updated_checkout.bind(this)),e(document.body).on("checkout_error",this.checkout_error.bind(this)),e(this.token_selector).closest("form").on("checkout_place_order_"+this.gateway_id,this.checkout_place_order.bind(this)),e(document.body).on("wc_stripe_new_method_"+this.gateway_id,this.on_show_new_methods.bind(this)),e(document.body).on("wc_stripe_saved_method_"+this.gateway_id,this.on_show_saved_methods.bind(this)),e(document.body).on("wc_stripe_payment_method_selected",this.on_payment_method_selected.bind(this)),this.banner_enabled()&&e(".woocommerce-billing-fields").length&&e(this.banner_container).css("max-width",e(".woocommerce-billing-fields").outerWidth(!0))},wc_stripe.CheckoutGateway.prototype.updated_checkout=function(){},wc_stripe.CheckoutGateway.prototype.checkout_error=function(){this.has_checkout_error()&&(this.payment_token_received=!1,this.payment_response=null,this.show_payment_button(),this.hide_place_order())},wc_stripe.CheckoutGateway.prototype.is_valid_checkout=function(){return!(e('[name="terms"]').length&&!e('[name="terms"]').is(":checked"))},wc_stripe.CheckoutGateway.prototype.get_payment_method=function(){return e('[name="payment_method"]:checked').val()},wc_stripe.CheckoutGateway.prototype.set_use_new_option=function(t){e("#"+this.gateway_id+"_use_new").prop("checked",t).trigger("change")},wc_stripe.CheckoutGateway.prototype.checkout_place_order=function(){return this.is_valid_checkout()?!!this.is_saved_method_selected()||this.payment_token_received:(this.submit_error(this.params.messages.terms),!1)},wc_stripe.CheckoutGateway.prototype.on_token_received=function(t){this.payment_token_received=!0,e(this.token_selector).val(t.id),this.hide_payment_button(),this.show_place_order()},wc_stripe.CheckoutGateway.prototype.block=function(){e("form.checkout").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},wc_stripe.CheckoutGateway.prototype.unblock=function(){e("form.checkout").unblock()},wc_stripe.CheckoutGateway.prototype.hide_place_order=function(){e("#place_order").addClass("wc-stripe-hide")},wc_stripe.CheckoutGateway.prototype.show_place_order=function(){e("#place_order").removeClass("wc-stripe-hide")},wc_stripe.CheckoutGateway.prototype.on_show_new_methods=function(){this.payment_token_received?(this.show_place_order(),this.hide_payment_button()):(this.hide_place_order(),this.show_payment_button())},wc_stripe.CheckoutGateway.prototype.on_show_saved_methods=function(){this.hide_payment_button(),this.show_place_order()},wc_stripe.CheckoutGateway.prototype.show_payment_button=function(){this.$button&&this.$button.show()},wc_stripe.CheckoutGateway.prototype.hide_payment_button=function(){this.$button&&this.$button.hide()},wc_stripe.CheckoutGateway.prototype.trigger_payment_method_selected=function(){this.on_payment_method_selected(null,e('[name="payment_method"]:checked').val())},wc_stripe.CheckoutGateway.prototype.on_payment_method_selected=function(t,e){e===this.gateway_id?this.payment_token_received||this.is_saved_method_selected()?(this.hide_payment_button(),this.show_place_order()):(this.show_payment_button(),this.hide_place_order()):(this.hide_payment_button(),e.indexOf("stripe_")<0&&this.show_place_order())},wc_stripe.CheckoutGateway.prototype.banner_enabled=function(){return"1"===this.params.banner_enabled},wc_stripe.ProductGateway=function(){this.container="li.payment_method_"+this.gateway_id,this.message_container="div.product",e(document.body).on("wc_stripe_updated_rest_nonce",this.set_rest_nonce.bind(this)),e("form.cart").on("found_variation",this.found_variation.bind(this)),e("form.cart").on("reset_data",this.reset_variation_data.bind(this)),this.buttonWidth=e("div.quantity").outerWidth(!0)+e(".single_add_to_cart_button").outerWidth(),e(this.container).css("max-width",this.buttonWidth+"px")},wc_stripe.ProductGateway.prototype.get_quantity=function(){return parseInt(e('[name="quantity"]').val())},wc_stripe.ProductGateway.prototype.set_rest_nonce=function(t,e){this.params.rest_nonce=e},wc_stripe.ProductGateway.prototype.found_variation=function(t,e){var i=this.get_product_data();i.price=e.display_price,i.needs_shipping=!e.is_virtual,this.set_product_data(i),this.enable_payment_button()},wc_stripe.ProductGateway.prototype.reset_variation_data=function(){this.disable_payment_button()},wc_stripe.ProductGateway.prototype.disable_payment_button=function(){this.$button&&this.get_button().prop("disabled",!0).addClass("disabled")},wc_stripe.ProductGateway.prototype.enable_payment_button=function(){this.$button&&this.get_button().prop("disabled",!1).removeClass("disabled")},wc_stripe.ProductGateway.prototype.get_button=function(){return this.$button},wc_stripe.ProductGateway.prototype.is_variable_product=function(){return e('[name="variation_id"]').length>0},wc_stripe.ProductGateway.prototype.needs_shipping=function(){return this.get_product_data().needs_shipping},wc_stripe.ProductGateway.prototype.get_product_data=function(){return e("#wc_stripe_product_data").data("product")},wc_stripe.ProductGateway.prototype.set_product_data=function(t){e("#wc_stripe_product_data").data("product",t)},wc_stripe.ProductGateway.prototype.add_to_cart=function(){return new Promise(function(t,i){this.block(),e.ajax({url:this.params.routes.add_to_cart,method:"POST",dataType:"json",data:{product_id:e("#product_id").val(),variation_id:this.is_variable_product()?e('[name="variation_id"]').val():0,qty:e('[name="quantity"]').val(),payment_method:this.gateway_id},beforeSend:function(t){t.setRequestHeader("X-WP-Nonce",this.params.rest_nonce)}.bind(this)}).done(function(a,n,s){this.unblock(),e(document.body).triggerHandler("wc_stripe_updated_rest_nonce",s.getResponseHeader("X-WP-Nonce")),a.code?(this.submit_error(a.message),i(a)):(this.set_total_price(a.data.total),this.set_total_price_cents(a.data.totalCents),this.set_display_items(a.data.displayItems),t(a.data))}.bind(this)).fail(function(t,e,i){this.unblock(),this.submit_error(i)}.bind(this))}.bind(this))},wc_stripe.CartGateway=function(){this.container="li.payment_method_"+this.gateway_id,this.message_container="div.woocommerce",e(document.body).on("updated_wc_div",this.updated_html.bind(this)),e(document.body).on("updated_cart_totals",this.updated_html.bind(this))},wc_stripe.CartGateway.prototype.needs_shipping=function(){return 1===e("#wc_stripe_needs_shipping").data("value")},wc_stripe.CartGateway.prototype.submit_error=function(t){this.submit_message(t)},wc_stripe.CartGateway.prototype.updated_html=function(t){},wc_stripe.GooglePay=function(){};const a={apiVersion:2,apiVersionMinor:0},n={type:"CARD",parameters:{allowedAuthMethods:["PAN_ONLY"],allowedCardNetworks:["AMEX","DISCOVER","INTERAC","JCB","MASTERCARD","VISA"]}};wc_stripe.GooglePay.prototype.address_mappings=function(t){return{name:{set:function(t,i){var a=t.split(" ");e(i+"_first_name").val(a[0]),e(i+"_last_name").val(a[1])},get:function(t){return e(t+"_first_name").val()+e(t+"_last_name").val()}},postalCode:{set:function(t,i){e(i+"_postcode").val(t)},get:function(t){return e(t+"_postcode").val()}},countryCode:{set:function(t,i){e(i+"_country").val(t)},get:function(t){return e(t+"_country").val()}},phoneNumber:{set:function(t,i){e("#billing_phone").val(t)},get:function(){return"#billing_phone".val()}},address1:{set:function(t,i){e(i+"_address_1").val(t)},get:function(t){return e(t+"_address_1").val()}},address2:{set:function(t,i){e(i+"_address_2").val(t)},get:function(t){return e(t+"_address_2").val()}},locality:{set:function(t,i){e(i+"_city").val(t)},get:function(t){return e(t+"_city").val()}},administrativeArea:{set:function(t,i){e(i+"_state").val(t)},get:function(t){return e(t+"_state").val()}}}},wc_stripe.GooglePay.prototype.populate_address_fields=function(t){var i=t.paymentMethodData.info.billingAddress,a=this.address_mappings();for(var n in i)a[n]&&a[n].set.call(this,i[n],"#billing");if(t.shippingAddress)for(var n in t.shippingAddress)a[n]&&a[n].set.call(this,t.shippingAddress[n],"#shipping");t.email&&e("#billing_email").val(t.email),this.maybe_set_ship_to_different(),e('[name="billing_country"]').trigger("change")},wc_stripe.GooglePay.prototype.map_address=function(t){return{city:t.locality,postcode:t.postalCode,state:t.administrativeArea,country:t.countryCode}},wc_stripe.GooglePay.prototype.update_payment_data=function(t){return new Promise(function(i,a){e.when(e.ajax({url:this.params.routes.payment_data,dataType:"json",method:"POST",data:{shipping_address:this.map_address(t.shippingAddress),shipping_methods:this.map_shipping_methods(t.shippingOptionData.id),shipping_method_id:t.shippingOptionData.id},beforeSend:function(t){t.setRequestHeader("X-WP-Nonce",this.params.rest_nonce)}.bind(this)})).done(function(t){t.code?a(t.data.data):i(t.data)}.bind(this)).fail(function(){a()}.bind(this))}.bind(this))},wc_stripe.GooglePay.prototype.on_payment_data_changed=function(t){return new Promise(function(e,i){this.update_payment_data(t).then(function(i){e(i.paymentRequestUpdate),this.set_selected_shipping_methods(i.shipping_methods),this.payment_data_updated(i,t)}.bind(this)).catch(function(t){e(t)}.bind(this))}.bind(this))},wc_stripe.GooglePay.prototype.payment_data_updated=function(t){},wc_stripe.GooglePay.prototype.get_googlepay_display_items=function(){return e("#googlepay_display_items").data("items")},wc_stripe.GooglePay.prototype.set_googlepay_display_items=function(t){e("#googlepay_display_items").data("items",t)},wc_stripe.GooglePay.prototype.get_shipping_options=function(){return e("#googlepay_shipping_options").data("items")},wc_stripe.GooglePay.prototype.get_merchant_info=function(){return{merchantId:this.params.merchant_id,merchantName:this.params.merchant_name}},wc_stripe.GooglePay.prototype.get_payment_options=function(){var t={environment:this.params.environment,merchantInfo:this.get_merchant_info()};return this.needs_shipping()&&this.get_total_price_cents()>0?t.paymentDataCallbacks={onPaymentDataChanged:this.on_payment_data_changed.bind(this)}:t.paymentDataCallbacks={onPaymentAuthorized:function(t){return new Promise(function(t,e){t({transactionState:"SUCCESS"})}.bind(this))}},t},wc_stripe.GooglePay.prototype.build_payment_request=function(){var t=e.extend({},a,{emailRequired:!0,merchantInfo:this.get_merchant_info(),allowedPaymentMethods:[e.extend({type:"CARD",tokenizationSpecification:{type:"PAYMENT_GATEWAY",parameters:{gateway:"stripe","stripe:version":"2018-10-31","stripe:publishableKey":this.params.api_key}}},n)],shippingAddressRequired:this.needs_shipping()&&this.get_total_price_cents()>0,shippingOptionRequired:this.needs_shipping()&&this.get_total_price_cents()>0,transactionInfo:{currencyCode:this.get_currency(),totalPriceStatus:"ESTIMATED",totalPrice:this.get_total_price().toString(),displayItems:this.get_googlepay_display_items(),totalPriceLabel:this.params.total_price_label}});return t.allowedPaymentMethods[0].parameters.billingAddressRequired=!0,t.allowedPaymentMethods[0].parameters.billingAddressParameters={format:"FULL",phoneNumberRequired:e("#billing_phone").length>0},this.needs_shipping()&&this.get_total_price_cents()>0?(t.shippingAddressParameters={},t.shippingOptionParameters={shippingOptions:this.get_shipping_options()},t.callbackIntents=["SHIPPING_ADDRESS","SHIPPING_OPTION"]):t.callbackIntents=["PAYMENT_AUTHORIZATION"],t},wc_stripe.GooglePay.prototype.createPaymentsClient=function(){this.paymentsClient=new google.payments.api.PaymentsClient(this.get_payment_options())},wc_stripe.GooglePay.prototype.isReadyToPay=function(){return new Promise(function(t){var i=e.extend({},a);i.allowedPaymentMethods=[n],this.paymentsClient.isReadyToPay(i).then(function(){this.can_pay=!0,this.create_button(),t()}.bind(this)).catch(function(t){this.submit_error(t)}.bind(this))}.bind(this))},wc_stripe.GooglePay.prototype.create_button=function(){this.$button&&this.$button.remove(),this.$button=e(this.paymentsClient.createButton({onClick:this.start.bind(this),buttonColor:this.params.button_color,buttonType:this.params.button_style})),this.$button.addClass("gpay-button-container")},wc_stripe.GooglePay.prototype.start=function(){this.createPaymentsClient(),this.paymentsClient.loadPaymentData(this.build_payment_request()).then(function(t){var e=JSON.parse(t.paymentMethodData.tokenizationData.token);this.populate_address_fields(t),this.on_token_received(e)}.bind(this)).catch(function(t){"CANCELED"!==t.statusCode&&(t.statusMessage&&t.statusMessage.indexOf("paymentDataRequest.callbackIntent")>-1?this.submit_error_code("DEVELOPER_ERROR_WHITELIST"):this.submit_error(t.statusMessage))}.bind(this))},wc_stripe.ApplePay=function(){},wc_stripe.ApplePay.prototype.initialize=function(){e(document.body).on("click",".apple-pay-button",this.start.bind(this)),this.createPaymentRequest(),this.canMakePayment()},wc_stripe.ApplePay.prototype.create_button=function(){this.$button&&this.$button.remove(),this.$button=e(this.params.button),this.append_button()},wc_stripe.ApplePay.prototype.canMakePayment=function(){return new Promise(function(t,i){this.paymentRequest.canMakePayment().then(function(i){i&&i.applePay&&(this.can_pay=!0,this.create_button(),e(this.container).show(),t(i))}.bind(this))}.bind(this))},wc_stripe.ApplePay.prototype.start=function(t){t.preventDefault(),this.paymentRequest.update(this.get_payment_request_update({total:{pending:!1}})),this.paymentRequest.show()},wc_stripe.PaymentRequest=function(){},wc_stripe.PaymentRequest.prototype.initialize=function(){this.createPaymentRequest(),this.canMakePayment(),this.paymentRequestButton=this.createPaymentRequestButton(),this.paymentRequestButton.on("click",this.button_click.bind(this))},wc_stripe.PaymentRequest.prototype.button_click=function(t){},wc_stripe.PaymentRequest.prototype.createPaymentRequestButton=function(){return this.elements.create("paymentRequestButton",{paymentRequest:this.paymentRequest,style:{paymentRequestButton:{type:this.params.button.type,theme:this.params.button.theme,height:this.params.button.height}}})},wc_stripe.PaymentRequest.prototype.canMakePayment=function(){return new Promise(function(t,i){this.paymentRequest.canMakePayment().then(function(i){i&&!i.applePay&&(this.can_pay=!0,this.create_button(),e(this.container).show(),t(i))}.bind(this))}.bind(this))},wc_stripe.PaymentRequest.prototype.create_button=function(){this.paymentRequestButton.mount("#wc-stripe-payment-request-container")}}(window,jQuery);
|
i18n/languages/woo-stripe.pot
ADDED
@@ -0,0 +1,1466 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
#, fuzzy
|
2 |
+
msgid ""
|
3 |
+
msgstr ""
|
4 |
+
"Project-Id-Version: woo-stripe\n"
|
5 |
+
"POT-Creation-Date: 2019-08-23 12:35-0700\n"
|
6 |
+
"PO-Revision-Date: 2019-08-16 14:27-0700\n"
|
7 |
+
"Last-Translator: \n"
|
8 |
+
"Language-Team: \n"
|
9 |
+
"Language: en\n"
|
10 |
+
"MIME-Version: 1.0\n"
|
11 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
+
"Content-Transfer-Encoding: 8bit\n"
|
13 |
+
"X-Generator: Poedit 2.1.1\n"
|
14 |
+
"X-Poedit-Basepath: ../..\n"
|
15 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
16 |
+
"X-Poedit-KeywordsList: __;_e;_x\n"
|
17 |
+
"X-Poedit-SearchPath-0: includes\n"
|
18 |
+
"X-Poedit-SearchPath-1: templates\n"
|
19 |
+
"X-Poedit-SearchPath-2: stripe-payments.php\n"
|
20 |
+
|
21 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-charge.php:60
|
22 |
+
#, php-format
|
23 |
+
msgid "Error processing payment. Reason: %s"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-charge.php:61
|
27 |
+
#, php-format
|
28 |
+
msgid "Error processing payment. Reason: %s. Code: %s"
|
29 |
+
msgstr ""
|
30 |
+
|
31 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-charge.php:72
|
32 |
+
#, php-format
|
33 |
+
msgid "Order charge successful in Stripe. Charge: %s. Payment Method: %s"
|
34 |
+
msgstr ""
|
35 |
+
|
36 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-charge.php:116
|
37 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-payment-intent.php:188
|
38 |
+
#, php-format
|
39 |
+
msgid "Order amount captured in Stripe. Amount: %s"
|
40 |
+
msgstr ""
|
41 |
+
|
42 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-charge.php:120
|
43 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-payment-intent.php:192
|
44 |
+
#, php-format
|
45 |
+
msgid "Error capturing charge in Stripe. Reason: %s"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-charge.php:132
|
49 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-payment-intent.php:202
|
50 |
+
#, php-format
|
51 |
+
msgid "Error voiding charge. Reason: %s"
|
52 |
+
msgstr ""
|
53 |
+
|
54 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-charge.php:134
|
55 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-payment-intent.php:204
|
56 |
+
msgid "Charge voided in Stripe."
|
57 |
+
msgstr ""
|
58 |
+
|
59 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-charge.php:159
|
60 |
+
#, php-format
|
61 |
+
msgid ""
|
62 |
+
"Recurring payment for subscription failed. Reason: %s. Payment method: %s"
|
63 |
+
msgstr ""
|
64 |
+
|
65 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-charge.php:163
|
66 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-payment-intent.php:235
|
67 |
+
#, php-format
|
68 |
+
msgid "Recurring payment captured in Stripe. Payment method: %s"
|
69 |
+
msgstr ""
|
70 |
+
|
71 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-charge.php:165
|
72 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-payment-intent.php:237
|
73 |
+
#, php-format
|
74 |
+
msgid "Recurring payment authorized in Stripe. Payment method: %s"
|
75 |
+
msgstr ""
|
76 |
+
|
77 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-charge.php:177
|
78 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-payment-intent.php:269
|
79 |
+
#, php-format
|
80 |
+
msgid "Error deleting Stripe card. Token Id: %s"
|
81 |
+
msgstr ""
|
82 |
+
|
83 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:76
|
84 |
+
#, php-format
|
85 |
+
msgid "Error creating payment source. Reason: %s"
|
86 |
+
msgstr ""
|
87 |
+
|
88 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:174
|
89 |
+
#, php-format
|
90 |
+
msgid "Order %s"
|
91 |
+
msgstr ""
|
92 |
+
|
93 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:211
|
94 |
+
#, php-format
|
95 |
+
msgid "Gateway will appear when store currency is <strong>%s</strong>."
|
96 |
+
msgstr ""
|
97 |
+
|
98 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:214
|
99 |
+
#, php-format
|
100 |
+
msgid "& billing country is <strong>%s</strong>"
|
101 |
+
msgstr ""
|
102 |
+
|
103 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-payment-intent.php:82
|
104 |
+
#, php-format
|
105 |
+
msgid "Order %s successful in Stripe. Charge: %s. Payment Method: %s"
|
106 |
+
msgstr ""
|
107 |
+
|
108 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-payment-intent.php:82
|
109 |
+
msgid "charge"
|
110 |
+
msgstr ""
|
111 |
+
|
112 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-payment-intent.php:82
|
113 |
+
msgid "authorization"
|
114 |
+
msgstr ""
|
115 |
+
|
116 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-payment-intent.php:110
|
117 |
+
msgid "A new payment method is required."
|
118 |
+
msgstr ""
|
119 |
+
|
120 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-payment-intent.php:224
|
121 |
+
#, php-format
|
122 |
+
msgid "Recurring payment for order failed. Reason: %s"
|
123 |
+
msgstr ""
|
124 |
+
|
125 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe-payment-intent.php:241
|
126 |
+
#, php-format
|
127 |
+
msgid "Customer must manually complete payment for payment method %s"
|
128 |
+
msgstr ""
|
129 |
+
|
130 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:289
|
131 |
+
msgid ""
|
132 |
+
"Please read and accept the terms and conditions to proceed with your order."
|
133 |
+
msgstr ""
|
134 |
+
|
135 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:302
|
136 |
+
#: includes/controllers/class-wc-stripe-controller-cart.php:99
|
137 |
+
#: includes/controllers/class-wc-stripe-controller-cart.php:139
|
138 |
+
#: includes/controllers/class-wc-stripe-controller-googlepay.php:116
|
139 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-googlepay.php:70
|
140 |
+
msgid "Total"
|
141 |
+
msgstr ""
|
142 |
+
|
143 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:360
|
144 |
+
#, php-format
|
145 |
+
msgid "Error saving your payment method. Reason: %s"
|
146 |
+
msgstr ""
|
147 |
+
|
148 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:371
|
149 |
+
#, php-format
|
150 |
+
msgid "Error saving payment method. Reason: %s"
|
151 |
+
msgstr ""
|
152 |
+
|
153 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:383
|
154 |
+
msgid "Transaction Id cannot be empty."
|
155 |
+
msgstr ""
|
156 |
+
|
157 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:390
|
158 |
+
#, php-format
|
159 |
+
msgid "Order refunded in Stripe. Amount: %s"
|
160 |
+
msgstr ""
|
161 |
+
|
162 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:575
|
163 |
+
#: includes/admin/meta-boxes/views/html-order-pay.php:42
|
164 |
+
msgid "New Card"
|
165 |
+
msgstr ""
|
166 |
+
|
167 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:579
|
168 |
+
#: includes/admin/meta-boxes/views/html-order-pay.php:30
|
169 |
+
msgid "Saved Cards"
|
170 |
+
msgstr ""
|
171 |
+
|
172 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:777
|
173 |
+
#, php-format
|
174 |
+
msgid "Attemp to save payment method failed. Reason: %s"
|
175 |
+
msgstr ""
|
176 |
+
|
177 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:797
|
178 |
+
msgid ""
|
179 |
+
"We were not able to save your payment method. To prevent billing issues with "
|
180 |
+
"your subscription, please add a payment method to the subscription."
|
181 |
+
msgstr ""
|
182 |
+
|
183 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:799
|
184 |
+
#, php-format
|
185 |
+
msgid "We were not able to save your payment method. Reason: %s"
|
186 |
+
msgstr ""
|
187 |
+
|
188 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:831
|
189 |
+
msgid "Payment Method Token"
|
190 |
+
msgstr ""
|
191 |
+
|
192 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:857
|
193 |
+
#, php-format
|
194 |
+
msgid "Error saving payment method for subscription. Reason: %s"
|
195 |
+
msgstr ""
|
196 |
+
|
197 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:906
|
198 |
+
#, php-format
|
199 |
+
msgid "Order %s from %s"
|
200 |
+
msgstr ""
|
201 |
+
|
202 |
+
#: includes/abstract/abstract-wc-stripe-rest-controller.php:56
|
203 |
+
msgid "You do not have permissions to access this resource."
|
204 |
+
msgstr ""
|
205 |
+
|
206 |
+
#: includes/admin/class-wc-stripe-admin-menus.php:23
|
207 |
+
msgid "Stripe Gateway"
|
208 |
+
msgstr ""
|
209 |
+
|
210 |
+
#: includes/admin/class-wc-stripe-admin-menus.php:27
|
211 |
+
msgid "Settings"
|
212 |
+
msgstr ""
|
213 |
+
|
214 |
+
#: includes/admin/class-wc-stripe-admin-menus.php:28
|
215 |
+
msgid "Logs"
|
216 |
+
msgstr ""
|
217 |
+
|
218 |
+
#: includes/admin/class-wc-stripe-admin-menus.php:34
|
219 |
+
#: includes/admin/views/html-settings-nav.php:17
|
220 |
+
#: includes/class-wc-stripe-install.php:21
|
221 |
+
msgid "Documentation"
|
222 |
+
msgstr ""
|
223 |
+
|
224 |
+
#: includes/admin/class-wc-stripe-admin-settings.php:73
|
225 |
+
msgid "Local Gateways"
|
226 |
+
msgstr ""
|
227 |
+
|
228 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:9
|
229 |
+
#: includes/admin/views/html-user-profile.php:34
|
230 |
+
#: includes/admin/views/html-user-profile.php:68
|
231 |
+
msgid "Actions"
|
232 |
+
msgstr ""
|
233 |
+
|
234 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:13
|
235 |
+
msgid "capture amount"
|
236 |
+
msgstr ""
|
237 |
+
|
238 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:14
|
239 |
+
#: includes/admin/meta-boxes/views/html-order-pay.php:23
|
240 |
+
#: includes/gateways/settings/applepay-settings.php:41
|
241 |
+
#: includes/gateways/settings/cc-settings.php:41
|
242 |
+
#: includes/gateways/settings/googlepay-settings.php:49
|
243 |
+
#: includes/gateways/settings/payment-request-settings.php:42
|
244 |
+
msgid "Capture"
|
245 |
+
msgstr ""
|
246 |
+
|
247 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:15
|
248 |
+
msgid "Void"
|
249 |
+
msgstr ""
|
250 |
+
|
251 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:22
|
252 |
+
msgid "Charge Data"
|
253 |
+
msgstr ""
|
254 |
+
|
255 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:24
|
256 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:29
|
257 |
+
msgid "Mode"
|
258 |
+
msgstr ""
|
259 |
+
|
260 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:25
|
261 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:33
|
262 |
+
msgid "Live"
|
263 |
+
msgstr ""
|
264 |
+
|
265 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:25
|
266 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:32
|
267 |
+
msgid "Test"
|
268 |
+
msgstr ""
|
269 |
+
|
270 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:28
|
271 |
+
msgid "Status"
|
272 |
+
msgstr ""
|
273 |
+
|
274 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:33
|
275 |
+
msgid "Payment Intent"
|
276 |
+
msgstr ""
|
277 |
+
|
278 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:39
|
279 |
+
msgid "Customer"
|
280 |
+
msgstr ""
|
281 |
+
|
282 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:45
|
283 |
+
#: includes/admin/views/html-user-profile.php:32
|
284 |
+
#: includes/admin/views/html-user-profile.php:66
|
285 |
+
msgid "Payment Method"
|
286 |
+
msgstr ""
|
287 |
+
|
288 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:47
|
289 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-eps.php:44
|
290 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-giropay.php:46
|
291 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-ideal.php:42
|
292 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-klarna.php:45
|
293 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-multibanco.php:45
|
294 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-p24.php:44
|
295 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:46
|
296 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sofort.php:49
|
297 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-wechat.php:46
|
298 |
+
#: includes/gateways/settings/applepay-settings.php:16
|
299 |
+
#: includes/gateways/settings/cc-settings.php:16
|
300 |
+
#: includes/gateways/settings/googlepay-settings.php:24
|
301 |
+
#: includes/gateways/settings/payment-request-settings.php:17
|
302 |
+
msgid "Title"
|
303 |
+
msgstr ""
|
304 |
+
|
305 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:51
|
306 |
+
#: includes/gateways/settings/payment-request-settings.php:87
|
307 |
+
msgid "Type"
|
308 |
+
msgstr ""
|
309 |
+
|
310 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:56
|
311 |
+
msgid "Exp"
|
312 |
+
msgstr ""
|
313 |
+
|
314 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:60
|
315 |
+
msgid "Fingerprint"
|
316 |
+
msgstr ""
|
317 |
+
|
318 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:64
|
319 |
+
msgid "CVC check"
|
320 |
+
msgstr ""
|
321 |
+
|
322 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:68
|
323 |
+
msgid "Postal check"
|
324 |
+
msgstr ""
|
325 |
+
|
326 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:72
|
327 |
+
msgid "Street check"
|
328 |
+
msgstr ""
|
329 |
+
|
330 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:78
|
331 |
+
msgid "Riska Data"
|
332 |
+
msgstr ""
|
333 |
+
|
334 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:80
|
335 |
+
msgid "Score"
|
336 |
+
msgstr ""
|
337 |
+
|
338 |
+
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:84
|
339 |
+
msgid "Level"
|
340 |
+
msgstr ""
|
341 |
+
|
342 |
+
#: includes/admin/meta-boxes/views/html-order-actions.php:1
|
343 |
+
msgid "Charge Status"
|
344 |
+
msgstr ""
|
345 |
+
|
346 |
+
#: includes/admin/meta-boxes/views/html-order-actions.php:5
|
347 |
+
msgid "Authorization Expires"
|
348 |
+
msgstr ""
|
349 |
+
|
350 |
+
#: includes/admin/meta-boxes/views/html-order-actions.php:12
|
351 |
+
msgid "There are no actions available at this time."
|
352 |
+
msgstr ""
|
353 |
+
|
354 |
+
#: includes/admin/meta-boxes/views/html-order-charge-data.php:2
|
355 |
+
msgid "Transaction Data / Actions"
|
356 |
+
msgstr ""
|
357 |
+
|
358 |
+
#: includes/admin/meta-boxes/views/html-order-pay.php:2
|
359 |
+
msgid "Pay for Order"
|
360 |
+
msgstr ""
|
361 |
+
|
362 |
+
#: includes/admin/meta-boxes/views/html-order-pay.php:3
|
363 |
+
msgid ""
|
364 |
+
"Admins can process customer orders over the phone using this functionality."
|
365 |
+
msgstr ""
|
366 |
+
|
367 |
+
#: includes/admin/meta-boxes/views/html-order-pay.php:21
|
368 |
+
#: includes/gateways/settings/applepay-settings.php:37
|
369 |
+
#: includes/gateways/settings/cc-settings.php:37
|
370 |
+
#: includes/gateways/settings/googlepay-settings.php:45
|
371 |
+
#: includes/gateways/settings/payment-request-settings.php:38
|
372 |
+
msgid "Charge Type"
|
373 |
+
msgstr ""
|
374 |
+
|
375 |
+
#: includes/admin/meta-boxes/views/html-order-pay.php:24
|
376 |
+
#: includes/gateways/settings/applepay-settings.php:42
|
377 |
+
#: includes/gateways/settings/cc-settings.php:42
|
378 |
+
#: includes/gateways/settings/googlepay-settings.php:50
|
379 |
+
#: includes/gateways/settings/payment-request-settings.php:43
|
380 |
+
msgid "Authorize"
|
381 |
+
msgstr ""
|
382 |
+
|
383 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:6
|
384 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:26
|
385 |
+
msgid "API Settings"
|
386 |
+
msgstr ""
|
387 |
+
|
388 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:36
|
389 |
+
msgid ""
|
390 |
+
"The mode determines if you are processing test transaction or live "
|
391 |
+
"transactions on your site. Test mode allows you to simulate payments so you "
|
392 |
+
"can test your integration."
|
393 |
+
msgstr ""
|
394 |
+
|
395 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:39
|
396 |
+
msgid "Test Publishable Key"
|
397 |
+
msgstr ""
|
398 |
+
|
399 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:42
|
400 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:64
|
401 |
+
msgid "Your publishable key is used to initialize Stripe assets."
|
402 |
+
msgstr ""
|
403 |
+
|
404 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:50
|
405 |
+
msgid "Test Secret Key"
|
406 |
+
msgstr ""
|
407 |
+
|
408 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:53
|
409 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:75
|
410 |
+
msgid "Your secret key is used to authenticate requests to Stripe."
|
411 |
+
msgstr ""
|
412 |
+
|
413 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:61
|
414 |
+
msgid "Live Publishable Key"
|
415 |
+
msgstr ""
|
416 |
+
|
417 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:72
|
418 |
+
msgid "Live Secret Key"
|
419 |
+
msgstr ""
|
420 |
+
|
421 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:84
|
422 |
+
msgid "Webhook url"
|
423 |
+
msgstr ""
|
424 |
+
|
425 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:87
|
426 |
+
#, php-format
|
427 |
+
msgid ""
|
428 |
+
"<strong>Important:</strong> the webhook url is called by Stripe when events "
|
429 |
+
"occur in your account, like a source becomes chargeable. You must add this "
|
430 |
+
"webhook to your Stripe Dashboard if you are using any of the local gateways. "
|
431 |
+
"%sWebhook guide%s"
|
432 |
+
msgstr ""
|
433 |
+
|
434 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:91
|
435 |
+
msgid "Webhook Secret"
|
436 |
+
msgstr ""
|
437 |
+
|
438 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:92
|
439 |
+
msgid ""
|
440 |
+
"The webhook secret is used to authenticate webhooks sent from Stripe. It "
|
441 |
+
"ensures no 3rd party can send you events, pretending to be Stripe."
|
442 |
+
msgstr ""
|
443 |
+
|
444 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:95
|
445 |
+
msgid "Debug Log"
|
446 |
+
msgstr ""
|
447 |
+
|
448 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:99
|
449 |
+
msgid ""
|
450 |
+
"When enabled, the plugin logs important errors and info that can help you "
|
451 |
+
"troubleshoot potential issues."
|
452 |
+
msgstr ""
|
453 |
+
|
454 |
+
#: includes/admin/views/html-user-profile.php:7
|
455 |
+
msgid "Stripe Customer ID's"
|
456 |
+
msgstr ""
|
457 |
+
|
458 |
+
#: includes/admin/views/html-user-profile.php:8
|
459 |
+
msgid ""
|
460 |
+
"If you change a customer ID, the customer's payment methods will be imported "
|
461 |
+
"from your Stripe account."
|
462 |
+
msgstr ""
|
463 |
+
|
464 |
+
#: includes/admin/views/html-user-profile.php:9
|
465 |
+
msgid ""
|
466 |
+
"If you remove a customer ID, the customer's payment methods will be removed "
|
467 |
+
"from the WC payment methods table."
|
468 |
+
msgstr ""
|
469 |
+
|
470 |
+
#: includes/admin/views/html-user-profile.php:13
|
471 |
+
msgid "Live ID"
|
472 |
+
msgstr ""
|
473 |
+
|
474 |
+
#: includes/admin/views/html-user-profile.php:19
|
475 |
+
msgid "Test ID"
|
476 |
+
msgstr ""
|
477 |
+
|
478 |
+
#: includes/admin/views/html-user-profile.php:26
|
479 |
+
msgid "Stripe Live Payment Methods"
|
480 |
+
msgstr ""
|
481 |
+
|
482 |
+
#: includes/admin/views/html-user-profile.php:31
|
483 |
+
#: includes/admin/views/html-user-profile.php:65
|
484 |
+
msgid "Payment Gateway"
|
485 |
+
msgstr ""
|
486 |
+
|
487 |
+
#: includes/admin/views/html-user-profile.php:33
|
488 |
+
#: includes/admin/views/html-user-profile.php:67
|
489 |
+
msgid "Token"
|
490 |
+
msgstr ""
|
491 |
+
|
492 |
+
#: includes/admin/views/html-user-profile.php:47
|
493 |
+
#: includes/admin/views/html-user-profile.php:81
|
494 |
+
msgid "Action"
|
495 |
+
msgstr ""
|
496 |
+
|
497 |
+
#: includes/admin/views/html-user-profile.php:50
|
498 |
+
#: includes/admin/views/html-user-profile.php:84
|
499 |
+
msgid "No Action"
|
500 |
+
msgstr ""
|
501 |
+
|
502 |
+
#: includes/admin/views/html-user-profile.php:51
|
503 |
+
#: includes/admin/views/html-user-profile.php:85
|
504 |
+
msgid "Delete"
|
505 |
+
msgstr ""
|
506 |
+
|
507 |
+
#: includes/admin/views/html-user-profile.php:58
|
508 |
+
msgid "No live payment methods saved"
|
509 |
+
msgstr ""
|
510 |
+
|
511 |
+
#: includes/admin/views/html-user-profile.php:60
|
512 |
+
msgid "Stripe Test Payment Methods"
|
513 |
+
msgstr ""
|
514 |
+
|
515 |
+
#: includes/admin/views/html-user-profile.php:92
|
516 |
+
msgid "No test payment methods saved"
|
517 |
+
msgstr ""
|
518 |
+
|
519 |
+
#: includes/admin/views/html-user-profile.php:94
|
520 |
+
#, php-format
|
521 |
+
msgid ""
|
522 |
+
"%snote:%s payment methods will be deleted in Stripe if you use the delete "
|
523 |
+
"action."
|
524 |
+
msgstr ""
|
525 |
+
|
526 |
+
#: includes/class-wc-stripe-customer-manager.php:30
|
527 |
+
#: includes/class-wc-stripe-customer-manager.php:40
|
528 |
+
#, php-format
|
529 |
+
msgid "Error saving customer. Reason: %s"
|
530 |
+
msgstr ""
|
531 |
+
|
532 |
+
#: includes/class-wc-stripe-frontend-notices.php:35
|
533 |
+
msgid ""
|
534 |
+
"Your payment is being processed and your order status will be updated once "
|
535 |
+
"the funds are received."
|
536 |
+
msgstr ""
|
537 |
+
|
538 |
+
#: includes/class-wc-stripe-gateway.php:173
|
539 |
+
#, php-format
|
540 |
+
msgid "Error capturing charge. Reason: %s"
|
541 |
+
msgstr ""
|
542 |
+
|
543 |
+
#: includes/class-wc-stripe-redirect-handler.php:40
|
544 |
+
#, php-format
|
545 |
+
msgid "Error retrieving payment source. Reason: %s"
|
546 |
+
msgstr ""
|
547 |
+
|
548 |
+
#: includes/class-wc-stripe-redirect-handler.php:44
|
549 |
+
msgid "Payment authorization failed. Please select another payment method."
|
550 |
+
msgstr ""
|
551 |
+
|
552 |
+
#: includes/class-wc-stripe-redirect-handler.php:51
|
553 |
+
msgid ""
|
554 |
+
"Status updated to on hold. Charge will be created when source.chargeable "
|
555 |
+
"webhook received."
|
556 |
+
msgstr ""
|
557 |
+
|
558 |
+
#: includes/class-wc-stripe-rest-api.php:42
|
559 |
+
#, php-format
|
560 |
+
msgid "%1$s is an invalid controller name."
|
561 |
+
msgstr ""
|
562 |
+
|
563 |
+
#: includes/controllers/class-wc-stripe-controller-cart.php:69
|
564 |
+
msgid "Quantity must be greater than zero."
|
565 |
+
msgstr ""
|
566 |
+
|
567 |
+
#: includes/controllers/class-wc-stripe-controller-checkout.php:118
|
568 |
+
#, php-format
|
569 |
+
msgid ""
|
570 |
+
"Some required fields were missing. Please click %shere%s to complete your "
|
571 |
+
"payment."
|
572 |
+
msgstr ""
|
573 |
+
|
574 |
+
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:54
|
575 |
+
msgid ""
|
576 |
+
"You cannot register your domain until you have configured your Live API keys."
|
577 |
+
msgstr ""
|
578 |
+
|
579 |
+
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:61
|
580 |
+
#, php-format
|
581 |
+
msgid ""
|
582 |
+
"Domain %s registered successfully. You can confirm in your Stripe Dashboard "
|
583 |
+
"at https://dashboard.stripe.com/account/apple_pay."
|
584 |
+
msgstr ""
|
585 |
+
|
586 |
+
#: includes/controllers/class-wc-stripe-controller-googlepay.php:83
|
587 |
+
msgid "Your shipping address is not serviceable."
|
588 |
+
msgstr ""
|
589 |
+
|
590 |
+
#: includes/controllers/class-wc-stripe-controller-order-actions.php:115
|
591 |
+
msgid "Invalid amount entered."
|
592 |
+
msgstr ""
|
593 |
+
|
594 |
+
#: includes/controllers/class-wc-stripe-controller-order-actions.php:166
|
595 |
+
#: includes/controllers/class-wc-stripe-controller-order-actions.php:169
|
596 |
+
msgid "Order total must be greater than zero."
|
597 |
+
msgstr ""
|
598 |
+
|
599 |
+
#: includes/controllers/class-wc-stripe-controller-order-actions.php:174
|
600 |
+
#, php-format
|
601 |
+
msgid ""
|
602 |
+
"This order has already been processed. Transaction ID: %s. Payment method: %s"
|
603 |
+
msgstr ""
|
604 |
+
|
605 |
+
#: includes/controllers/class-wc-stripe-controller-order-actions.php:183
|
606 |
+
msgid "Order customer Id and payment method customer Id do not match."
|
607 |
+
msgstr ""
|
608 |
+
|
609 |
+
#: includes/controllers/class-wc-stripe-controller-payment-intent.php:40
|
610 |
+
#, php-format
|
611 |
+
msgid "Error creating payment intent. Reason: %s"
|
612 |
+
msgstr ""
|
613 |
+
|
614 |
+
#: includes/controllers/class-wc-stripe-controller-webhook.php:41
|
615 |
+
#: includes/controllers/class-wc-stripe-controller-webhook.php:42
|
616 |
+
msgid "Invalid signaute received. Verify that your webhook secret is correct."
|
617 |
+
msgstr ""
|
618 |
+
|
619 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-applepay.php:14
|
620 |
+
#: includes/gateways/settings/applepay-settings.php:17
|
621 |
+
msgid "Apple Pay"
|
622 |
+
msgstr ""
|
623 |
+
|
624 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-applepay.php:17
|
625 |
+
msgid "Stripe Apple Pay"
|
626 |
+
msgstr ""
|
627 |
+
|
628 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-applepay.php:18
|
629 |
+
msgid "Apple Pay gateway that integrates with your Stripe account."
|
630 |
+
msgstr ""
|
631 |
+
|
632 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-applepay.php:57
|
633 |
+
msgid "Please update you product quantity before using Apple Pay."
|
634 |
+
msgstr ""
|
635 |
+
|
636 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-cc.php:12
|
637 |
+
#: includes/gateways/settings/cc-settings.php:17
|
638 |
+
msgid "Credit Cards"
|
639 |
+
msgstr ""
|
640 |
+
|
641 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-cc.php:15
|
642 |
+
msgid "Stripe Credit Cards"
|
643 |
+
msgstr ""
|
644 |
+
|
645 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-cc.php:16
|
646 |
+
msgid "Credit card gateway that integrates with your Stripe account."
|
647 |
+
msgstr ""
|
648 |
+
|
649 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-eps.php:17
|
650 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-eps.php:20
|
651 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-eps.php:23
|
652 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-eps.php:45
|
653 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-multibanco.php:21
|
654 |
+
msgid "EPS"
|
655 |
+
msgstr ""
|
656 |
+
|
657 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-eps.php:21
|
658 |
+
msgid "EPS gateway that integrates with your Stripe account."
|
659 |
+
msgstr ""
|
660 |
+
|
661 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-eps.php:33
|
662 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-giropay.php:35
|
663 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-ideal.php:31
|
664 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-klarna.php:34
|
665 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-multibanco.php:34
|
666 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-p24.php:33
|
667 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:35
|
668 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sofort.php:38
|
669 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-wechat.php:35
|
670 |
+
#: includes/gateways/settings/applepay-settings.php:7
|
671 |
+
#: includes/gateways/settings/cc-settings.php:4
|
672 |
+
#: includes/gateways/settings/googlepay-settings.php:10
|
673 |
+
#: includes/gateways/settings/payment-request-settings.php:8
|
674 |
+
msgid "Enabled"
|
675 |
+
msgstr ""
|
676 |
+
|
677 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-eps.php:37
|
678 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-p24.php:37
|
679 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:39
|
680 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-wechat.php:39
|
681 |
+
msgid "If enabled, your site can accept P24 payments through Stripe."
|
682 |
+
msgstr ""
|
683 |
+
|
684 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-eps.php:41
|
685 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-giropay.php:43
|
686 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-ideal.php:39
|
687 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-klarna.php:42
|
688 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-multibanco.php:42
|
689 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-p24.php:41
|
690 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:43
|
691 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sofort.php:46
|
692 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-wechat.php:43
|
693 |
+
#: includes/gateways/settings/applepay-settings.php:13
|
694 |
+
#: includes/gateways/settings/cc-settings.php:13
|
695 |
+
#: includes/gateways/settings/googlepay-settings.php:16
|
696 |
+
#: includes/gateways/settings/payment-request-settings.php:14
|
697 |
+
msgid "General Settings"
|
698 |
+
msgstr ""
|
699 |
+
|
700 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-eps.php:47
|
701 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-p24.php:47
|
702 |
+
msgid "Title of the p24 gateway"
|
703 |
+
msgstr ""
|
704 |
+
|
705 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-eps.php:50
|
706 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-giropay.php:52
|
707 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-ideal.php:48
|
708 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-klarna.php:51
|
709 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-multibanco.php:51
|
710 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-p24.php:50
|
711 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:52
|
712 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sofort.php:55
|
713 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-wechat.php:52
|
714 |
+
#: includes/gateways/settings/applepay-settings.php:22
|
715 |
+
#: includes/gateways/settings/cc-settings.php:22
|
716 |
+
#: includes/gateways/settings/googlepay-settings.php:30
|
717 |
+
#: includes/gateways/settings/payment-request-settings.php:23
|
718 |
+
msgid "Description"
|
719 |
+
msgstr ""
|
720 |
+
|
721 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-eps.php:52
|
722 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-giropay.php:54
|
723 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-ideal.php:50
|
724 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-klarna.php:53
|
725 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-multibanco.php:53
|
726 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-p24.php:52
|
727 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:54
|
728 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sofort.php:57
|
729 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-wechat.php:54
|
730 |
+
#: includes/gateways/settings/applepay-settings.php:24
|
731 |
+
#: includes/gateways/settings/cc-settings.php:24
|
732 |
+
#: includes/gateways/settings/googlepay-settings.php:32
|
733 |
+
#: includes/gateways/settings/payment-request-settings.php:25
|
734 |
+
msgid "Leave blank if you don't want a description to show for the gateway."
|
735 |
+
msgstr ""
|
736 |
+
|
737 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-giropay.php:19
|
738 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-giropay.php:22
|
739 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-giropay.php:25
|
740 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-giropay.php:47
|
741 |
+
msgid "Giropay"
|
742 |
+
msgstr ""
|
743 |
+
|
744 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-giropay.php:23
|
745 |
+
msgid "Giropay gateway that integrates with your Stripe account."
|
746 |
+
msgstr ""
|
747 |
+
|
748 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-giropay.php:39
|
749 |
+
msgid "If enabled, your site can Giropay card payments through Stripe."
|
750 |
+
msgstr ""
|
751 |
+
|
752 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-giropay.php:49
|
753 |
+
msgid "Title of the Giropay gateway"
|
754 |
+
msgstr ""
|
755 |
+
|
756 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-googlepay.php:16
|
757 |
+
#: includes/gateways/settings/googlepay-settings.php:25
|
758 |
+
msgid "Google Pay"
|
759 |
+
msgstr ""
|
760 |
+
|
761 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-googlepay.php:19
|
762 |
+
msgid "Stripe Google Pay"
|
763 |
+
msgstr ""
|
764 |
+
|
765 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-googlepay.php:20
|
766 |
+
msgid "Google Pay gateway that integrates with your Stripe account."
|
767 |
+
msgstr ""
|
768 |
+
|
769 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-googlepay.php:75
|
770 |
+
msgid "Please update you product quantity before using Google Pay."
|
771 |
+
msgstr ""
|
772 |
+
|
773 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-googlepay.php:86
|
774 |
+
#: includes/wc-stripe-functions.php:358
|
775 |
+
msgid "Subscription"
|
776 |
+
msgstr ""
|
777 |
+
|
778 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-googlepay.php:106
|
779 |
+
#: includes/wc-stripe-functions.php:344
|
780 |
+
msgid "Shipping"
|
781 |
+
msgstr ""
|
782 |
+
|
783 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-googlepay.php:113
|
784 |
+
#: includes/wc-stripe-functions.php:351
|
785 |
+
msgid "Tax"
|
786 |
+
msgstr ""
|
787 |
+
|
788 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-googlepay.php:144
|
789 |
+
#: includes/wc-stripe-functions.php:409
|
790 |
+
msgid "Waiting..."
|
791 |
+
msgstr ""
|
792 |
+
|
793 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-googlepay.php:145
|
794 |
+
#: includes/wc-stripe-functions.php:410
|
795 |
+
msgid "loading shipping methods..."
|
796 |
+
msgstr ""
|
797 |
+
|
798 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-ideal.php:17
|
799 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-ideal.php:18
|
800 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-ideal.php:21
|
801 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-ideal.php:43
|
802 |
+
msgid "iDEAL"
|
803 |
+
msgstr ""
|
804 |
+
|
805 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-ideal.php:19
|
806 |
+
msgid "Ideal gateway that integrates with your Stripe account."
|
807 |
+
msgstr ""
|
808 |
+
|
809 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-ideal.php:35
|
810 |
+
#: includes/gateways/settings/cc-settings.php:7
|
811 |
+
msgid "If enabled, your site can accept credit card payments through Stripe."
|
812 |
+
msgstr ""
|
813 |
+
|
814 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-ideal.php:45
|
815 |
+
msgid "Title of the iDEAL gateway"
|
816 |
+
msgstr ""
|
817 |
+
|
818 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-klarna.php:18
|
819 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-klarna.php:21
|
820 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-klarna.php:24
|
821 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-klarna.php:46
|
822 |
+
msgid "Klarna"
|
823 |
+
msgstr ""
|
824 |
+
|
825 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-klarna.php:22
|
826 |
+
msgid "Klarna gateway that integrates with your Stripe account."
|
827 |
+
msgstr ""
|
828 |
+
|
829 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-klarna.php:38
|
830 |
+
msgid "If enabled, your site can accept Klarna payments through Stripe."
|
831 |
+
msgstr ""
|
832 |
+
|
833 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-klarna.php:48
|
834 |
+
msgid "Title of the Klarna gateway"
|
835 |
+
msgstr ""
|
836 |
+
|
837 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-multibanco.php:18
|
838 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-multibanco.php:24
|
839 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-multibanco.php:46
|
840 |
+
msgid "Multibanco"
|
841 |
+
msgstr ""
|
842 |
+
|
843 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-multibanco.php:22
|
844 |
+
msgid "Multibanco gateway that integrates with your Stripe account."
|
845 |
+
msgstr ""
|
846 |
+
|
847 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-multibanco.php:38
|
848 |
+
msgid "If enabled, your site can accept Multibanco payments through Stripe."
|
849 |
+
msgstr ""
|
850 |
+
|
851 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-multibanco.php:48
|
852 |
+
msgid "Title of the Multibanco gateway"
|
853 |
+
msgstr ""
|
854 |
+
|
855 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-p24.php:17
|
856 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-p24.php:20
|
857 |
+
msgid "Przelewy24"
|
858 |
+
msgstr ""
|
859 |
+
|
860 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-p24.php:21
|
861 |
+
msgid "P24 gateway that integrates with your Stripe account."
|
862 |
+
msgstr ""
|
863 |
+
|
864 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-p24.php:23
|
865 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-p24.php:45
|
866 |
+
msgid "P24"
|
867 |
+
msgstr ""
|
868 |
+
|
869 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-payment-request.php:16
|
870 |
+
msgid "PaymentRequest Gateway"
|
871 |
+
msgstr ""
|
872 |
+
|
873 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-payment-request.php:19
|
874 |
+
msgid "Stripe Payment Request"
|
875 |
+
msgstr ""
|
876 |
+
|
877 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-payment-request.php:20
|
878 |
+
msgid ""
|
879 |
+
"Gateway that renders based on the user's browser. Chrome payment methods, "
|
880 |
+
"Microsoft pay, etc."
|
881 |
+
msgstr ""
|
882 |
+
|
883 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-payment-request.php:63
|
884 |
+
msgid "Adding to cart..."
|
885 |
+
msgstr ""
|
886 |
+
|
887 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-payment-request.php:64
|
888 |
+
msgid "Please select a product option before updating quantity."
|
889 |
+
msgstr ""
|
890 |
+
|
891 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:19
|
892 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:25
|
893 |
+
msgid "SEPA"
|
894 |
+
msgstr ""
|
895 |
+
|
896 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:22
|
897 |
+
msgid "Sepa"
|
898 |
+
msgstr ""
|
899 |
+
|
900 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:23
|
901 |
+
msgid "Sepa gateway that integrates with your Stripe account."
|
902 |
+
msgstr ""
|
903 |
+
|
904 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:47
|
905 |
+
msgid "SEPA Direct Debit"
|
906 |
+
msgstr ""
|
907 |
+
|
908 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:49
|
909 |
+
msgid "Title of the Sepa gateway"
|
910 |
+
msgstr ""
|
911 |
+
|
912 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sofort.php:22
|
913 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sofort.php:25
|
914 |
+
msgid "Sofort"
|
915 |
+
msgstr ""
|
916 |
+
|
917 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sofort.php:26
|
918 |
+
msgid "Sofort gateway that integrates with your Stripe account."
|
919 |
+
msgstr ""
|
920 |
+
|
921 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sofort.php:28
|
922 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sofort.php:50
|
923 |
+
msgid "SOFORT"
|
924 |
+
msgstr ""
|
925 |
+
|
926 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sofort.php:42
|
927 |
+
msgid "If enabled, your site can accept Sofort payments through Stripe."
|
928 |
+
msgstr ""
|
929 |
+
|
930 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-sofort.php:52
|
931 |
+
msgid "Title of the Sofort gateway"
|
932 |
+
msgstr ""
|
933 |
+
|
934 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-wechat.php:19
|
935 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-wechat.php:22
|
936 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-wechat.php:25
|
937 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-wechat.php:47
|
938 |
+
msgid "WeChat"
|
939 |
+
msgstr ""
|
940 |
+
|
941 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-wechat.php:23
|
942 |
+
msgid "WeChat gateway that integrates with your Stripe account."
|
943 |
+
msgstr ""
|
944 |
+
|
945 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-wechat.php:49
|
946 |
+
msgid "Title of the WeChat gateway"
|
947 |
+
msgstr ""
|
948 |
+
|
949 |
+
#: includes/gateways/settings/applepay-settings.php:4
|
950 |
+
msgid "Register Domain"
|
951 |
+
msgstr ""
|
952 |
+
|
953 |
+
#: includes/gateways/settings/applepay-settings.php:4
|
954 |
+
#, php-format
|
955 |
+
msgid ""
|
956 |
+
"This plugin attemps to add the domain association file to your server "
|
957 |
+
"automatically when you click the Register Domain button. If that fails due "
|
958 |
+
"to file permssions, you must add the <strong>%s.well-known/apple-developer-"
|
959 |
+
"merchantid-domain-association%s</strong> file to your domain and register "
|
960 |
+
"your domain within the Stripe Dashboard."
|
961 |
+
msgstr ""
|
962 |
+
|
963 |
+
#: includes/gateways/settings/applepay-settings.php:10
|
964 |
+
#: includes/gateways/settings/payment-request-settings.php:11
|
965 |
+
msgid "If enabled, your site can accept Apple Pay payments through Stripe."
|
966 |
+
msgstr ""
|
967 |
+
|
968 |
+
#: includes/gateways/settings/applepay-settings.php:19
|
969 |
+
#: includes/gateways/settings/cc-settings.php:19
|
970 |
+
#: includes/gateways/settings/googlepay-settings.php:27
|
971 |
+
#: includes/gateways/settings/payment-request-settings.php:20
|
972 |
+
msgid "Title of the credit card gateway"
|
973 |
+
msgstr ""
|
974 |
+
|
975 |
+
#: includes/gateways/settings/applepay-settings.php:28
|
976 |
+
#: includes/gateways/settings/cc-settings.php:28
|
977 |
+
#: includes/gateways/settings/googlepay-settings.php:36
|
978 |
+
#: includes/gateways/settings/payment-request-settings.php:29
|
979 |
+
msgid "Credit Card Display"
|
980 |
+
msgstr ""
|
981 |
+
|
982 |
+
#: includes/gateways/settings/applepay-settings.php:34
|
983 |
+
#: includes/gateways/settings/cc-settings.php:34
|
984 |
+
#: includes/gateways/settings/googlepay-settings.php:42
|
985 |
+
#: includes/gateways/settings/payment-request-settings.php:35
|
986 |
+
msgid ""
|
987 |
+
"This option allows you to customize how the credit card will display for "
|
988 |
+
"your customers on orders, subscriptions, etc."
|
989 |
+
msgstr ""
|
990 |
+
|
991 |
+
#: includes/gateways/settings/applepay-settings.php:44
|
992 |
+
#: includes/gateways/settings/cc-settings.php:44
|
993 |
+
#: includes/gateways/settings/payment-request-settings.php:45
|
994 |
+
msgid ""
|
995 |
+
"This option determines whether the customer's funds are captured immediately "
|
996 |
+
"or authorized and can be captured at a later date."
|
997 |
+
msgstr ""
|
998 |
+
|
999 |
+
#: includes/gateways/settings/applepay-settings.php:48
|
1000 |
+
#: includes/gateways/settings/googlepay-settings.php:56
|
1001 |
+
#: includes/gateways/settings/payment-request-settings.php:49
|
1002 |
+
msgid "Payment Sections"
|
1003 |
+
msgstr ""
|
1004 |
+
|
1005 |
+
#: includes/gateways/settings/applepay-settings.php:51
|
1006 |
+
#: includes/gateways/settings/googlepay-settings.php:59
|
1007 |
+
#: includes/gateways/settings/payment-request-settings.php:52
|
1008 |
+
msgid "Product Page"
|
1009 |
+
msgstr ""
|
1010 |
+
|
1011 |
+
#: includes/gateways/settings/applepay-settings.php:52
|
1012 |
+
#: includes/gateways/settings/googlepay-settings.php:60
|
1013 |
+
#: includes/gateways/settings/payment-request-settings.php:53
|
1014 |
+
msgid "Cart Page"
|
1015 |
+
msgstr ""
|
1016 |
+
|
1017 |
+
#: includes/gateways/settings/applepay-settings.php:53
|
1018 |
+
#: includes/gateways/settings/googlepay-settings.php:61
|
1019 |
+
#: includes/gateways/settings/payment-request-settings.php:54
|
1020 |
+
msgid "Top of Checkout"
|
1021 |
+
msgstr ""
|
1022 |
+
|
1023 |
+
#: includes/gateways/settings/applepay-settings.php:56
|
1024 |
+
#: includes/gateways/settings/payment-request-settings.php:57
|
1025 |
+
msgid ""
|
1026 |
+
"Increase your conversion rate by offering Apple Pay on your Product and Cart "
|
1027 |
+
"pages, or at the top of the checkout page."
|
1028 |
+
msgstr ""
|
1029 |
+
|
1030 |
+
#: includes/gateways/settings/applepay-settings.php:59
|
1031 |
+
#: includes/gateways/settings/cc-settings.php:47
|
1032 |
+
#: includes/gateways/settings/googlepay-settings.php:67
|
1033 |
+
#: includes/gateways/settings/payment-request-settings.php:74
|
1034 |
+
msgid "Order Status"
|
1035 |
+
msgstr ""
|
1036 |
+
|
1037 |
+
#: includes/gateways/settings/applepay-settings.php:63
|
1038 |
+
#: includes/gateways/settings/cc-settings.php:51
|
1039 |
+
#: includes/gateways/settings/googlepay-settings.php:71
|
1040 |
+
#: includes/gateways/settings/payment-request-settings.php:78
|
1041 |
+
msgid "Default"
|
1042 |
+
msgstr ""
|
1043 |
+
|
1044 |
+
#: includes/gateways/settings/applepay-settings.php:66
|
1045 |
+
#: includes/gateways/settings/cc-settings.php:54
|
1046 |
+
#: includes/gateways/settings/googlepay-settings.php:74
|
1047 |
+
#: includes/gateways/settings/payment-request-settings.php:81
|
1048 |
+
msgid ""
|
1049 |
+
"This is the status of the order once payment is complete. If <b>Default</b> "
|
1050 |
+
"is selected, then WooCommerce will set the order status automatically based "
|
1051 |
+
"on internal logic which states if a product is virtual and downloadable then "
|
1052 |
+
"status is set to complete. Products that require shipping are set to "
|
1053 |
+
"Processing. Default is the recommended setting as it allows standard "
|
1054 |
+
"WooCommerce code to process the order status."
|
1055 |
+
msgstr ""
|
1056 |
+
|
1057 |
+
#: includes/gateways/settings/applepay-settings.php:83
|
1058 |
+
#: includes/gateways/settings/payment-request-settings.php:84
|
1059 |
+
msgid "Button Settings"
|
1060 |
+
msgstr ""
|
1061 |
+
|
1062 |
+
#: includes/gateways/settings/applepay-settings.php:86
|
1063 |
+
#: includes/gateways/settings/googlepay-settings.php:140
|
1064 |
+
msgid "Button Design"
|
1065 |
+
msgstr ""
|
1066 |
+
|
1067 |
+
#: includes/gateways/settings/applepay-settings.php:90
|
1068 |
+
msgid "Black Button"
|
1069 |
+
msgstr ""
|
1070 |
+
|
1071 |
+
#: includes/gateways/settings/applepay-settings.php:91
|
1072 |
+
msgid "White With Black Line"
|
1073 |
+
msgstr ""
|
1074 |
+
|
1075 |
+
#: includes/gateways/settings/applepay-settings.php:92
|
1076 |
+
msgid "White Button"
|
1077 |
+
msgstr ""
|
1078 |
+
|
1079 |
+
#: includes/gateways/settings/applepay-settings.php:94
|
1080 |
+
msgid "This is the style for all Apple Pay buttons presented on your store."
|
1081 |
+
msgstr ""
|
1082 |
+
|
1083 |
+
#: includes/gateways/settings/applepay-settings.php:97
|
1084 |
+
msgid "Checkout button type"
|
1085 |
+
msgstr ""
|
1086 |
+
|
1087 |
+
#: includes/gateways/settings/applepay-settings.php:100
|
1088 |
+
#: includes/gateways/settings/applepay-settings.php:110
|
1089 |
+
#: includes/gateways/settings/applepay-settings.php:120
|
1090 |
+
msgid "Standard Button"
|
1091 |
+
msgstr ""
|
1092 |
+
|
1093 |
+
#: includes/gateways/settings/applepay-settings.php:101
|
1094 |
+
#: includes/gateways/settings/applepay-settings.php:111
|
1095 |
+
#: includes/gateways/settings/applepay-settings.php:121
|
1096 |
+
msgid "Buy with Apple Pay"
|
1097 |
+
msgstr ""
|
1098 |
+
|
1099 |
+
#: includes/gateways/settings/applepay-settings.php:107
|
1100 |
+
msgid "Cart button type"
|
1101 |
+
msgstr ""
|
1102 |
+
|
1103 |
+
#: includes/gateways/settings/applepay-settings.php:117
|
1104 |
+
msgid "Product button type"
|
1105 |
+
msgstr ""
|
1106 |
+
|
1107 |
+
#: includes/gateways/settings/cc-settings.php:10
|
1108 |
+
#, php-format
|
1109 |
+
msgid "%sTest cards%s"
|
1110 |
+
msgstr ""
|
1111 |
+
|
1112 |
+
#: includes/gateways/settings/cc-settings.php:58
|
1113 |
+
msgid "Allow Credit Card Save"
|
1114 |
+
msgstr ""
|
1115 |
+
|
1116 |
+
#: includes/gateways/settings/cc-settings.php:60
|
1117 |
+
msgid ""
|
1118 |
+
"If enabled, a checkbox will be available on the checkout page allowing your "
|
1119 |
+
"customer's to save their credit card. The payment methods are stored "
|
1120 |
+
"securely in Stripe's vault and never touch your server. Note: if the cart "
|
1121 |
+
"contains a subscription, there will be no checkbox because the payment "
|
1122 |
+
"method will be saved automatically. There will also be no checkbox for guest "
|
1123 |
+
"checkout as a user must be logged in to save a payment method."
|
1124 |
+
msgstr ""
|
1125 |
+
|
1126 |
+
#: includes/gateways/settings/cc-settings.php:63
|
1127 |
+
msgid "Accepted Payment Methods"
|
1128 |
+
msgstr ""
|
1129 |
+
|
1130 |
+
#: includes/gateways/settings/cc-settings.php:69
|
1131 |
+
msgid "Visa"
|
1132 |
+
msgstr ""
|
1133 |
+
|
1134 |
+
#: includes/gateways/settings/cc-settings.php:70
|
1135 |
+
msgid "Amex"
|
1136 |
+
msgstr ""
|
1137 |
+
|
1138 |
+
#: includes/gateways/settings/cc-settings.php:71
|
1139 |
+
msgid "Discover"
|
1140 |
+
msgstr ""
|
1141 |
+
|
1142 |
+
#: includes/gateways/settings/cc-settings.php:72
|
1143 |
+
msgid "MasterCard"
|
1144 |
+
msgstr ""
|
1145 |
+
|
1146 |
+
#: includes/gateways/settings/cc-settings.php:73
|
1147 |
+
msgid "JCB"
|
1148 |
+
msgstr ""
|
1149 |
+
|
1150 |
+
#: includes/gateways/settings/cc-settings.php:74
|
1151 |
+
msgid "Maestro"
|
1152 |
+
msgstr ""
|
1153 |
+
|
1154 |
+
#: includes/gateways/settings/cc-settings.php:75
|
1155 |
+
msgid "Diners Club"
|
1156 |
+
msgstr ""
|
1157 |
+
|
1158 |
+
#: includes/gateways/settings/cc-settings.php:76
|
1159 |
+
msgid "Union Pay"
|
1160 |
+
msgstr ""
|
1161 |
+
|
1162 |
+
#: includes/gateways/settings/cc-settings.php:78
|
1163 |
+
msgid ""
|
1164 |
+
"The selected icons will show customers which credit card brands you accept."
|
1165 |
+
msgstr ""
|
1166 |
+
|
1167 |
+
#: includes/gateways/settings/cc-settings.php:81
|
1168 |
+
msgid "Credit Card Form"
|
1169 |
+
msgstr ""
|
1170 |
+
|
1171 |
+
#: includes/gateways/settings/cc-settings.php:84
|
1172 |
+
msgid "Card Form"
|
1173 |
+
msgstr ""
|
1174 |
+
|
1175 |
+
#: includes/gateways/settings/cc-settings.php:87
|
1176 |
+
msgid "Stripe form"
|
1177 |
+
msgstr ""
|
1178 |
+
|
1179 |
+
#: includes/gateways/settings/cc-settings.php:88
|
1180 |
+
msgid "Custom form"
|
1181 |
+
msgstr ""
|
1182 |
+
|
1183 |
+
#: includes/gateways/settings/cc-settings.php:90
|
1184 |
+
msgid ""
|
1185 |
+
"The Stripe form option displays a CC form rendered by Stripe. It works well "
|
1186 |
+
"with most themes. The custom card forms are offered if you want more options "
|
1187 |
+
"on the CC form design."
|
1188 |
+
msgstr ""
|
1189 |
+
|
1190 |
+
#: includes/gateways/settings/cc-settings.php:93
|
1191 |
+
msgid "Custom Form"
|
1192 |
+
msgstr ""
|
1193 |
+
|
1194 |
+
#: includes/gateways/settings/cc-settings.php:97
|
1195 |
+
msgid "The design of the credit card form."
|
1196 |
+
msgstr ""
|
1197 |
+
|
1198 |
+
#: includes/gateways/settings/cc-settings.php:106
|
1199 |
+
msgid "Postal Code"
|
1200 |
+
msgstr ""
|
1201 |
+
|
1202 |
+
#: includes/gateways/settings/cc-settings.php:108
|
1203 |
+
msgid ""
|
1204 |
+
"If enabled, the CC form will show the postal code on the checkout page. If "
|
1205 |
+
"disabled, the billing field's postal code will be used. The postal code will "
|
1206 |
+
"show on the Add Payment Method page for security reasons."
|
1207 |
+
msgstr ""
|
1208 |
+
|
1209 |
+
#: includes/gateways/settings/googlepay-settings.php:4
|
1210 |
+
msgid "Google Pay Request"
|
1211 |
+
msgstr ""
|
1212 |
+
|
1213 |
+
#: includes/gateways/settings/googlepay-settings.php:4
|
1214 |
+
msgid ""
|
1215 |
+
"When you submit your request for Google Pay, request to be whitelisted for "
|
1216 |
+
"callbackintents. This ensures that the order items are displayed on the "
|
1217 |
+
"Google Payment sheet."
|
1218 |
+
msgstr ""
|
1219 |
+
|
1220 |
+
#: includes/gateways/settings/googlepay-settings.php:4
|
1221 |
+
msgid ""
|
1222 |
+
"To have the Google API team approve your integration you can enable test "
|
1223 |
+
"mode and Google Pay. When test mode is enabled, Google Pay will work, "
|
1224 |
+
"allowing you to capture the necessary screenshots the Google API team needs "
|
1225 |
+
"to approve your Merchant ID request."
|
1226 |
+
msgstr ""
|
1227 |
+
|
1228 |
+
#: includes/gateways/settings/googlepay-settings.php:7
|
1229 |
+
#, php-format
|
1230 |
+
msgid ""
|
1231 |
+
"If you don't want to request a Google Merchant ID, you can use the %sPayment "
|
1232 |
+
"Request Gateway%s which has a Google Pay integration through Stripe via the "
|
1233 |
+
"Chrome browser."
|
1234 |
+
msgstr ""
|
1235 |
+
|
1236 |
+
#: includes/gateways/settings/googlepay-settings.php:13
|
1237 |
+
msgid "If enabled, your site can accept Google Pay payments through Stripe."
|
1238 |
+
msgstr ""
|
1239 |
+
|
1240 |
+
#: includes/gateways/settings/googlepay-settings.php:19
|
1241 |
+
msgid "Merchant ID"
|
1242 |
+
msgstr ""
|
1243 |
+
|
1244 |
+
#: includes/gateways/settings/googlepay-settings.php:21
|
1245 |
+
msgid ""
|
1246 |
+
"Your Google Merchant ID is given to you by the Google API team once you "
|
1247 |
+
"register for Google Pay. While testing in TEST mode you can leave this value "
|
1248 |
+
"blank and Google Pay will work."
|
1249 |
+
msgstr ""
|
1250 |
+
|
1251 |
+
#: includes/gateways/settings/googlepay-settings.php:52
|
1252 |
+
msgid ""
|
1253 |
+
"This option determines whether the customer's funds are capture immediately "
|
1254 |
+
"or authorized and can be captured at a later date."
|
1255 |
+
msgstr ""
|
1256 |
+
|
1257 |
+
#: includes/gateways/settings/googlepay-settings.php:64
|
1258 |
+
msgid ""
|
1259 |
+
"Increase your conversion rate by offering Google Pay on your Product and "
|
1260 |
+
"Cart pages, or at the top of the checkout page."
|
1261 |
+
msgstr ""
|
1262 |
+
|
1263 |
+
#: includes/gateways/settings/googlepay-settings.php:77
|
1264 |
+
msgid "Merchant Name"
|
1265 |
+
msgstr ""
|
1266 |
+
|
1267 |
+
#: includes/gateways/settings/googlepay-settings.php:79
|
1268 |
+
msgid ""
|
1269 |
+
"The name of your business as it appears on the Google Pay payment sheet."
|
1270 |
+
msgstr ""
|
1271 |
+
|
1272 |
+
#: includes/gateways/settings/googlepay-settings.php:83
|
1273 |
+
msgid "Icon"
|
1274 |
+
msgstr ""
|
1275 |
+
|
1276 |
+
#: includes/gateways/settings/googlepay-settings.php:86
|
1277 |
+
msgid "With Outline"
|
1278 |
+
msgstr ""
|
1279 |
+
|
1280 |
+
#: includes/gateways/settings/googlepay-settings.php:87
|
1281 |
+
msgid "Standard"
|
1282 |
+
msgstr ""
|
1283 |
+
|
1284 |
+
#: includes/gateways/settings/googlepay-settings.php:90
|
1285 |
+
msgid ""
|
1286 |
+
"This is the icon style that appears next to the gateway on the checkout page."
|
1287 |
+
msgstr ""
|
1288 |
+
|
1289 |
+
#: includes/gateways/settings/googlepay-settings.php:117
|
1290 |
+
msgid "Button Options"
|
1291 |
+
msgstr ""
|
1292 |
+
|
1293 |
+
#: includes/gateways/settings/googlepay-settings.php:120
|
1294 |
+
msgid "Button Color"
|
1295 |
+
msgstr ""
|
1296 |
+
|
1297 |
+
#: includes/gateways/settings/googlepay-settings.php:124
|
1298 |
+
msgid "Black"
|
1299 |
+
msgstr ""
|
1300 |
+
|
1301 |
+
#: includes/gateways/settings/googlepay-settings.php:125
|
1302 |
+
msgid "White"
|
1303 |
+
msgstr ""
|
1304 |
+
|
1305 |
+
#: includes/gateways/settings/googlepay-settings.php:127
|
1306 |
+
msgid "The button color of the GPay button."
|
1307 |
+
msgstr ""
|
1308 |
+
|
1309 |
+
#: includes/gateways/settings/googlepay-settings.php:130
|
1310 |
+
msgid "Button Style"
|
1311 |
+
msgstr ""
|
1312 |
+
|
1313 |
+
#: includes/gateways/settings/googlepay-settings.php:134
|
1314 |
+
msgid "Long"
|
1315 |
+
msgstr ""
|
1316 |
+
|
1317 |
+
#: includes/gateways/settings/googlepay-settings.php:135
|
1318 |
+
msgid "Short"
|
1319 |
+
msgstr ""
|
1320 |
+
|
1321 |
+
#: includes/gateways/settings/googlepay-settings.php:137
|
1322 |
+
msgid "The button style of the GPay button."
|
1323 |
+
msgstr ""
|
1324 |
+
|
1325 |
+
#: includes/gateways/settings/googlepay-settings.php:142
|
1326 |
+
msgid ""
|
1327 |
+
"If you can't see the Google Pay button, try switching to a Chrome browser."
|
1328 |
+
msgstr ""
|
1329 |
+
|
1330 |
+
#: includes/gateways/settings/payment-request-settings.php:4
|
1331 |
+
msgid ""
|
1332 |
+
"The PaymentRequest gateway uses your customer's browser to render payment "
|
1333 |
+
"options like Google Pay and Microsoft Pay. You can either use the Google Pay "
|
1334 |
+
"gateway for example, or this gateway.\n"
|
1335 |
+
"\t\t\t\t\t\tThe difference is this gateway uses Stripe's PaymentRequest "
|
1336 |
+
"Button rather than render a Google Pay specific button."
|
1337 |
+
msgstr ""
|
1338 |
+
|
1339 |
+
#: includes/gateways/settings/payment-request-settings.php:18
|
1340 |
+
msgid "Browser Payments"
|
1341 |
+
msgstr ""
|
1342 |
+
|
1343 |
+
#: includes/gateways/settings/payment-request-settings.php:89
|
1344 |
+
msgid "default"
|
1345 |
+
msgstr ""
|
1346 |
+
|
1347 |
+
#: includes/gateways/settings/payment-request-settings.php:91
|
1348 |
+
msgid "buy"
|
1349 |
+
msgstr ""
|
1350 |
+
|
1351 |
+
#: includes/gateways/settings/payment-request-settings.php:93
|
1352 |
+
msgid "This defines the type of button that will display."
|
1353 |
+
msgstr ""
|
1354 |
+
|
1355 |
+
#: includes/gateways/settings/payment-request-settings.php:96
|
1356 |
+
msgid "Theme"
|
1357 |
+
msgstr ""
|
1358 |
+
|
1359 |
+
#: includes/gateways/settings/payment-request-settings.php:98
|
1360 |
+
msgid "dark"
|
1361 |
+
msgstr ""
|
1362 |
+
|
1363 |
+
#: includes/gateways/settings/payment-request-settings.php:99
|
1364 |
+
msgid "light"
|
1365 |
+
msgstr ""
|
1366 |
+
|
1367 |
+
#: includes/gateways/settings/payment-request-settings.php:100
|
1368 |
+
msgid "light-outline"
|
1369 |
+
msgstr ""
|
1370 |
+
|
1371 |
+
#: includes/gateways/settings/payment-request-settings.php:102
|
1372 |
+
msgid "This defines the color scheme for the button."
|
1373 |
+
msgstr ""
|
1374 |
+
|
1375 |
+
#: includes/gateways/settings/payment-request-settings.php:105
|
1376 |
+
msgid "Height"
|
1377 |
+
msgstr ""
|
1378 |
+
|
1379 |
+
#: includes/gateways/settings/payment-request-settings.php:107
|
1380 |
+
msgid "The height of the button. Max height is 64"
|
1381 |
+
msgstr ""
|
1382 |
+
|
1383 |
+
#: includes/tokens/class-wc-payment-token-stripe-cc.php:90
|
1384 |
+
msgid "Type Ending In"
|
1385 |
+
msgstr ""
|
1386 |
+
|
1387 |
+
#: includes/tokens/class-wc-payment-token-stripe-cc.php:92
|
1388 |
+
msgid "{brand} ending in {last4}"
|
1389 |
+
msgstr ""
|
1390 |
+
|
1391 |
+
#: includes/tokens/class-wc-payment-token-stripe-cc.php:95
|
1392 |
+
msgid "Type Masked Number"
|
1393 |
+
msgstr ""
|
1394 |
+
|
1395 |
+
#: includes/tokens/class-wc-payment-token-stripe-cc.php:100
|
1396 |
+
msgid "Type Dash Masked Number"
|
1397 |
+
msgstr ""
|
1398 |
+
|
1399 |
+
#: includes/tokens/class-wc-payment-token-stripe-cc.php:105
|
1400 |
+
msgid "Type Last 4"
|
1401 |
+
msgstr ""
|
1402 |
+
|
1403 |
+
#: includes/tokens/class-wc-payment-token-stripe-cc.php:110
|
1404 |
+
msgid "Type Dash & Last 4"
|
1405 |
+
msgstr ""
|
1406 |
+
|
1407 |
+
#: includes/tokens/class-wc-payment-token-stripe-cc.php:115
|
1408 |
+
msgid "Last Four"
|
1409 |
+
msgstr ""
|
1410 |
+
|
1411 |
+
#: includes/tokens/class-wc-payment-token-stripe-cc.php:120
|
1412 |
+
msgid "Card Type"
|
1413 |
+
msgstr ""
|
1414 |
+
|
1415 |
+
#: includes/tokens/class-wc-payment-token-stripe-local-payment.php:28
|
1416 |
+
msgid "Gateway Title"
|
1417 |
+
msgstr ""
|
1418 |
+
|
1419 |
+
#: includes/wc-stripe-functions.php:252
|
1420 |
+
msgid "Please enter a valid postcode / ZIP."
|
1421 |
+
msgstr ""
|
1422 |
+
|
1423 |
+
#: includes/wc-stripe-functions.php:631
|
1424 |
+
msgid "Simple form"
|
1425 |
+
msgstr ""
|
1426 |
+
|
1427 |
+
#: includes/wc-stripe-functions.php:664
|
1428 |
+
msgid "Inline Form"
|
1429 |
+
msgstr ""
|
1430 |
+
|
1431 |
+
#: includes/wc-stripe-functions.php:700
|
1432 |
+
msgid "Rounded Form"
|
1433 |
+
msgstr ""
|
1434 |
+
|
1435 |
+
#: stripe-payments.php:16
|
1436 |
+
#, php-format
|
1437 |
+
msgid "Your PHP version is %s but Stripe requires version 5.4+."
|
1438 |
+
msgstr ""
|
1439 |
+
|
1440 |
+
#: templates/cart/payment-methods.php:20
|
1441 |
+
msgid "or"
|
1442 |
+
msgstr ""
|
1443 |
+
|
1444 |
+
#: templates/cc-forms/inline.php:10 templates/cc-forms/simple.php:12
|
1445 |
+
msgid "Card Number"
|
1446 |
+
msgstr ""
|
1447 |
+
|
1448 |
+
#: templates/cc-forms/inline.php:14
|
1449 |
+
msgid "Exp Date"
|
1450 |
+
msgstr ""
|
1451 |
+
|
1452 |
+
#: templates/cc-forms/inline.php:18 templates/cc-forms/simple.php:26
|
1453 |
+
msgid "CVC"
|
1454 |
+
msgstr ""
|
1455 |
+
|
1456 |
+
#: templates/cc-forms/inline.php:23 templates/cc-forms/simple.php:34
|
1457 |
+
msgid "ZIP"
|
1458 |
+
msgstr ""
|
1459 |
+
|
1460 |
+
#: templates/cc-forms/simple.php:20
|
1461 |
+
msgid "Expiration"
|
1462 |
+
msgstr ""
|
1463 |
+
|
1464 |
+
#: templates/checkout/credit-card.php:17
|
1465 |
+
msgid "Save Card"
|
1466 |
+
msgstr ""
|
includes/abstract/abstract-wc-payment-gateway-stripe-charge.php
ADDED
@@ -0,0 +1,180 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! class_exists ( 'WC_Payment_Gateway_Stripe' )) {
|
3 |
+
return;
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
* Gateways that use Charge API should extend this abstract class.
|
7 |
+
*
|
8 |
+
* @package Stripe/Abstract
|
9 |
+
* @since 3.0.0
|
10 |
+
* @author User
|
11 |
+
*
|
12 |
+
*/
|
13 |
+
abstract class WC_Payment_Gateway_Stripe_Charge extends WC_Payment_Gateway_Stripe {
|
14 |
+
|
15 |
+
public function process_payment($order_id) {
|
16 |
+
$order = wc_get_order ( $order_id );
|
17 |
+
|
18 |
+
if ($this->is_change_payment_method_request ()) {
|
19 |
+
return [ 'result' => 'success',
|
20 |
+
'redirect' => $order->get_view_order_url ()
|
21 |
+
];
|
22 |
+
}
|
23 |
+
|
24 |
+
do_action ( 'wc_stripe_before_process_payment', $order, $this->id );
|
25 |
+
|
26 |
+
if (wc_notice_count ( 'error' ) > 0) {
|
27 |
+
return $this->order_error ();
|
28 |
+
}
|
29 |
+
$this->processing_payment = true;
|
30 |
+
|
31 |
+
// if order total is zero, then save meta but don't process payment.
|
32 |
+
if ($order->get_total () == 0) {
|
33 |
+
return $this->process_zero_total_order ( $order );
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Try to save the payment token.
|
38 |
+
* A failure should not affect the order processing. Tokens have to be saved before a charge since they
|
39 |
+
* can only be used once. Save the token then it can be used.
|
40 |
+
*/
|
41 |
+
if ($this->should_save_payment_method ( $order )) {
|
42 |
+
if (is_wp_error ( $this->save_payment_method ( $this->get_new_source_id (), $order ) )) {
|
43 |
+
$this->set_payment_save_error ( $order, $this->wp_error );
|
44 |
+
}
|
45 |
+
}
|
46 |
+
|
47 |
+
$args = $this->get_order_charge_args ( $order );
|
48 |
+
|
49 |
+
$customer_id = wc_stripe_get_customer_id ( $order->get_user_id () );
|
50 |
+
|
51 |
+
// only add customer ID if user is paying with a saved payment method
|
52 |
+
if ($customer_id && $this->use_saved_source ()) {
|
53 |
+
$args[ 'customer' ] = $customer_id;
|
54 |
+
}
|
55 |
+
|
56 |
+
$charge = $this->gateway->charge ( $args, wc_stripe_order_mode ( $order ) );
|
57 |
+
|
58 |
+
wc_stripe_log_info ( 'Stripe charge: ' . print_r ( $charge, true ) );
|
59 |
+
if (is_wp_error ( $charge )) {
|
60 |
+
wc_add_notice ( sprintf ( __ ( 'Error processing payment. Reason: %s', 'woo-stripe' ), $charge->get_error_message () ), 'error' );
|
61 |
+
$order->add_order_note ( sprintf ( __ ( 'Error processing payment. Reason: %s. Code: %s', 'woo-stripe' ), $charge->get_error_message (), $charge->get_error_code () ) );
|
62 |
+
return $this->order_error ();
|
63 |
+
}
|
64 |
+
if ($charge->captured) {
|
65 |
+
$order->payment_complete ( $charge->id );
|
66 |
+
} else {
|
67 |
+
$order_status = $this->get_option ( 'order_status' );
|
68 |
+
$order->update_status ( apply_filters ( 'wc_stripe_authorized_order_status', 'default' === $order_status ? 'processing' : $order_status, $order, $this ) );
|
69 |
+
}
|
70 |
+
$this->save_order_meta ( $order, $charge );
|
71 |
+
|
72 |
+
$order->add_order_note ( sprintf ( __ ( 'Order charge successful in Stripe. Charge: %s. Payment Method: %s', 'woo-stripe' ), $order->get_transaction_id (), $order->get_payment_method_title () ) );
|
73 |
+
WC ()->cart->empty_cart ();
|
74 |
+
|
75 |
+
return array( 'result' => 'success',
|
76 |
+
'redirect' => $order->get_checkout_order_received_url ()
|
77 |
+
);
|
78 |
+
}
|
79 |
+
|
80 |
+
private function get_order_charge_args($order, $args = []) {
|
81 |
+
$args = array_merge ( [
|
82 |
+
'metadata' => $this->get_order_meta_data ( $order ),
|
83 |
+
'currency' => $order->get_currency (),
|
84 |
+
'amount' => wc_stripe_add_number_precision ( $order->get_total () ),
|
85 |
+
'shipping' => array(
|
86 |
+
'address' => array(
|
87 |
+
'city' => $order->get_shipping_city (),
|
88 |
+
'country' => $order->get_shipping_country (),
|
89 |
+
'line1' => $order->get_shipping_address_1 (),
|
90 |
+
'line2' => $order->get_shipping_address_2 (),
|
91 |
+
'postal_code' => $order->get_shipping_postcode (),
|
92 |
+
'state' => $order->get_shipping_state ()
|
93 |
+
),
|
94 |
+
'name' => $this->get_name_from_order ( $order, 'shipping' )
|
95 |
+
),
|
96 |
+
'capture' => $this->get_option ( 'charge_type' ) === 'capture',
|
97 |
+
'source' => $this->get_payment_source (),
|
98 |
+
'receipt_email' => $order->get_billing_email ()
|
99 |
+
], $args );
|
100 |
+
return apply_filters ( 'wc_stripe_charge_order_args', $args, $order, $this->id );
|
101 |
+
}
|
102 |
+
|
103 |
+
/**
|
104 |
+
*
|
105 |
+
* @param float $amount
|
106 |
+
* @param WC_Order $order
|
107 |
+
*/
|
108 |
+
public function capture_charge($amount, $order) {
|
109 |
+
$amount_in_cents = wc_stripe_add_number_precision ( $amount );
|
110 |
+
$result = $this->gateway->capture ( $order->get_transaction_id (), array(
|
111 |
+
'amount' => $amount_in_cents
|
112 |
+
), wc_stripe_order_mode ( $order ) );
|
113 |
+
if (! is_wp_error ( $result )) {
|
114 |
+
$order->payment_complete ();
|
115 |
+
$this->save_order_meta ( $order, $result );
|
116 |
+
$order->add_order_note ( sprintf ( __ ( 'Order amount captured in Stripe. Amount: %s', 'woo-stripe' ), wc_price ( $amount, array(
|
117 |
+
'currency' => $order->get_currency ()
|
118 |
+
) ) ) );
|
119 |
+
} else {
|
120 |
+
$order->add_order_note ( sprintf ( __ ( 'Error capturing charge in Stripe. Reason: %s', 'woo-stripe' ), wc_price ( $amount, array(
|
121 |
+
'currency' => $order->get_currency ()
|
122 |
+
) ) ) );
|
123 |
+
}
|
124 |
+
return $result;
|
125 |
+
}
|
126 |
+
|
127 |
+
public function void_charge($order) {
|
128 |
+
$result = $this->gateway->refund ( array(
|
129 |
+
'charge' => $order->get_transaction_id ()
|
130 |
+
), wc_stripe_order_mode ( $order ) );
|
131 |
+
if (is_wp_error ( $result )) {
|
132 |
+
$order->add_order_note ( sprintf ( __ ( 'Error voiding charge. Reason: %s', 'woo-stripe' ), $result->get_error_message () ) );
|
133 |
+
} else {
|
134 |
+
$order->add_order_note ( __ ( 'Charge voided in Stripe.', 'woo-stripe' ) );
|
135 |
+
}
|
136 |
+
return $result;
|
137 |
+
}
|
138 |
+
|
139 |
+
public function create_payment_method($id, $customer_id) {
|
140 |
+
$result = $this->gateway->create_customer_source ( $customer_id, $id );
|
141 |
+
|
142 |
+
if (is_wp_error ( $result )) {
|
143 |
+
return $result;
|
144 |
+
}
|
145 |
+
|
146 |
+
return $this->get_payment_token ( $result->id, $result );
|
147 |
+
}
|
148 |
+
|
149 |
+
public function scheduled_subscription_payment($amount, $order) {
|
150 |
+
$args = $this->get_order_charge_args ( $order, [
|
151 |
+
'customer' => $order->get_meta ( '_wc_stripe_customer', true ),
|
152 |
+
'source' => $order->get_meta ( '_payment_method_token', true ),
|
153 |
+
'amount' => wc_stripe_add_number_precision ( $amount )
|
154 |
+
] );
|
155 |
+
|
156 |
+
$charge = $this->gateway->charge ( $args, wc_stripe_order_mode ( $order ) );
|
157 |
+
|
158 |
+
if (is_wp_error ( $charge )) {
|
159 |
+
$order->update_status ( 'failed', sprintf ( __ ( 'Recurring payment for subscription failed. Reason: %s. Payment method: %s', 'woo-stripe' ), $charge->get_error_message (), $order->get_payment_method_title () ) );
|
160 |
+
} else {
|
161 |
+
if ($charge->captured) {
|
162 |
+
$order->payment_complete ( $charge->id );
|
163 |
+
$order->add_order_note ( sprintf ( __ ( 'Recurring payment captured in Stripe. Payment method: %s', 'woo-stripe' ), $order->get_payment_method_title () ) );
|
164 |
+
} else {
|
165 |
+
$order->update_status ( apply_filters ( 'wc_stripe_authorized_renewal_order_status', 'processing', $order, $this ), sprintf ( __ ( 'Recurring payment authorized in Stripe. Payment method: %s', 'woo-stripe' ), $order->get_payment_method_title () ) );
|
166 |
+
}
|
167 |
+
$this->save_order_meta ( $order, $charge );
|
168 |
+
}
|
169 |
+
}
|
170 |
+
|
171 |
+
public function delete_payment_method($token_id, $token) {
|
172 |
+
$mode = $token->get_environment ();
|
173 |
+
try {
|
174 |
+
$customer_id = wc_stripe_get_customer_id ( $token->get_user_id (), $mode );
|
175 |
+
$this->gateway->delete_card ( $token->get_token (), $customer_id, $mode );
|
176 |
+
} catch ( \Stripe\Error\Base $e ) {
|
177 |
+
wc_stripe_log_error ( sprintf ( __ ( 'Error deleting Stripe card. Token Id: %s', 'woo-stripe' ), $token->get_token () ) );
|
178 |
+
}
|
179 |
+
}
|
180 |
+
}
|
includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php
ADDED
@@ -0,0 +1,218 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! class_exists ( 'WC_Payment_Gateway_Stripe_Charge' )) {
|
3 |
+
return;
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
* Local payment method classes should extend this abstract class
|
7 |
+
*
|
8 |
+
* @package Stripe/Abstract
|
9 |
+
* @author User
|
10 |
+
*
|
11 |
+
*/
|
12 |
+
abstract class WC_Payment_Gateway_Stripe_Local_Payment extends WC_Payment_Gateway_Stripe_Charge {
|
13 |
+
|
14 |
+
protected $tab_title = '';
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Currencies this gateway accepts
|
18 |
+
*
|
19 |
+
* @var array
|
20 |
+
*/
|
21 |
+
protected $currencies = [];
|
22 |
+
|
23 |
+
protected $local_payment_type = '';
|
24 |
+
|
25 |
+
public $countries = [];
|
26 |
+
|
27 |
+
public function __construct() {
|
28 |
+
$this->token_type = 'Stripe_Local';
|
29 |
+
$this->template_name = 'local-payment.php';
|
30 |
+
parent::__construct ();
|
31 |
+
$this->settings[ 'method_format' ] = 'gateway_title';
|
32 |
+
$this->settings[ 'charge_type' ] = 'capture';
|
33 |
+
$this->settings[ 'order_status' ] = 'default';
|
34 |
+
}
|
35 |
+
|
36 |
+
public function hooks() {
|
37 |
+
parent::hooks ();
|
38 |
+
add_filter ( 'wc_stripe_local_gateway_tabs', [
|
39 |
+
$this, 'local_gateway_tab'
|
40 |
+
] );
|
41 |
+
remove_filter ( 'wc_stripe_settings_nav_tabs', array(
|
42 |
+
$this, 'admin_nav_tab'
|
43 |
+
) );
|
44 |
+
add_filter ( 'wc_stripe_local_gateways_tab', array(
|
45 |
+
$this, 'admin_nav_tab'
|
46 |
+
) );
|
47 |
+
add_action ( 'woocommerce_settings_checkout_stripe_local_gateways_' . $this->id, array(
|
48 |
+
$this, 'admin_options'
|
49 |
+
) );
|
50 |
+
add_action ( 'wc_stripe_settings_before_options_stripe_local_gateways_' . $this->id, array(
|
51 |
+
$this, 'navigation_menu'
|
52 |
+
) );
|
53 |
+
add_action ( 'woocommerce_update_options_checkout_stripe_local_gateways_' . $this->id, array(
|
54 |
+
$this, 'process_admin_options'
|
55 |
+
) );
|
56 |
+
}
|
57 |
+
|
58 |
+
public function process_payment($order_id) {
|
59 |
+
if (! $this->processing_payment) {
|
60 |
+
$order = wc_get_order ( $order_id );
|
61 |
+
|
62 |
+
$source_id = $this->get_new_source_id ();
|
63 |
+
if (! empty ( $source_id )) {
|
64 |
+
// source was created client side.
|
65 |
+
$source = $this->gateway->fetch_payment_source ( $source_id );
|
66 |
+
|
67 |
+
// save the order ID to the session. Stripe doesn't allow the source object's
|
68 |
+
// redirect url to be updated so we can't pass order_id in url params.
|
69 |
+
WC ()->session->set ( 'wc_stripe_order_id', $order_id );
|
70 |
+
} else {
|
71 |
+
// create the source
|
72 |
+
$source = $this->gateway->create_source ( $this->get_source_args ( $order ) );
|
73 |
+
}
|
74 |
+
|
75 |
+
if (is_wp_error ( $source )) {
|
76 |
+
wc_add_notice ( sprintf ( __ ( 'Error creating payment source. Reason: %s', 'woo-stripe' ), $source->get_error_message () ), 'error' );
|
77 |
+
return $this->order_error ();
|
78 |
+
}
|
79 |
+
|
80 |
+
$order->update_meta_data ( '_stripe_source_id', $source->id );
|
81 |
+
$order->update_meta_data ( '_wc_stripe_mode', wc_stripe_mode () );
|
82 |
+
|
83 |
+
$order->save ();
|
84 |
+
|
85 |
+
return [ 'result' => 'success',
|
86 |
+
'redirect' => $this->get_source_redirect_url ( $source )
|
87 |
+
];
|
88 |
+
} else {
|
89 |
+
return parent::process_payment ( $order_id );
|
90 |
+
}
|
91 |
+
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
*
|
95 |
+
* @param \Stripe\Source $source
|
96 |
+
*/
|
97 |
+
protected function get_source_redirect_url($source) {
|
98 |
+
return $source->redirect->url;
|
99 |
+
}
|
100 |
+
|
101 |
+
public function output_settings_nav() {
|
102 |
+
parent::output_settings_nav ();
|
103 |
+
include wc_stripe ()->plugin_path () . 'includes/admin/views/html-settings-local-payments-nav.php';
|
104 |
+
}
|
105 |
+
|
106 |
+
public function init_form_fields() {
|
107 |
+
$this->form_fields = apply_filters ( 'wc_stripe_form_fields_' . $this->id, $this->get_local_payment_settings () );
|
108 |
+
}
|
109 |
+
|
110 |
+
public function init_supports() {
|
111 |
+
$this->supports = [ 'tokenization', 'products',
|
112 |
+
'refunds'
|
113 |
+
];
|
114 |
+
}
|
115 |
+
|
116 |
+
/**
|
117 |
+
* Return an array of form fields for the gateway.
|
118 |
+
*
|
119 |
+
* @return array
|
120 |
+
*/
|
121 |
+
public function get_local_payment_settings() {
|
122 |
+
return [];
|
123 |
+
}
|
124 |
+
|
125 |
+
public function enqueue_checkout_scripts($scripts) {
|
126 |
+
if (! wp_script_is ( $scripts->get_handle ( 'local-payment' ) )) {
|
127 |
+
$scripts->enqueue_script ( 'local-payment', $scripts->assets_url ( 'js/frontend/local-payment.js' ), [
|
128 |
+
$scripts->get_handle ( 'external' ),
|
129 |
+
$scripts->get_handle ( 'wc-stripe' )
|
130 |
+
], wc_stripe ()->version (), true );
|
131 |
+
$scripts->localize_script ( 'local-payment', wc_stripe_get_local_payment_params () );
|
132 |
+
}
|
133 |
+
}
|
134 |
+
|
135 |
+
public function get_localized_params() {
|
136 |
+
return array_merge_recursive ( parent::get_localized_params (), [
|
137 |
+
'local_payment_type' => $this->local_payment_type,
|
138 |
+
'return_url' => add_query_arg ( [
|
139 |
+
'_payment_nonce' => wp_create_nonce ( 'local-payment' ),
|
140 |
+
'wc-stripe-local-gateway' => $this->id
|
141 |
+
], wc_get_checkout_url () ),
|
142 |
+
'element_params' => $this->get_element_params ()
|
143 |
+
] );
|
144 |
+
}
|
145 |
+
|
146 |
+
public function get_element_params() {
|
147 |
+
return [
|
148 |
+
'style' => [
|
149 |
+
'base' => [
|
150 |
+
'padding' => '10px 12px',
|
151 |
+
'color' => '#32325d',
|
152 |
+
'fontFamily' => '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif',
|
153 |
+
'fontSmoothing' => 'antialiased',
|
154 |
+
'fontSize' => '16px',
|
155 |
+
'::placeholder' => [
|
156 |
+
'color' => '#aab7c4'
|
157 |
+
]
|
158 |
+
],
|
159 |
+
'invalid' => [
|
160 |
+
'color' => '#fa755a'
|
161 |
+
]
|
162 |
+
]
|
163 |
+
];
|
164 |
+
}
|
165 |
+
|
166 |
+
/**
|
167 |
+
*
|
168 |
+
* @param WC_Order $order
|
169 |
+
*/
|
170 |
+
public function get_source_args($order) {
|
171 |
+
return [ 'type' => $this->local_payment_type,
|
172 |
+
'amount' => wc_stripe_add_number_precision ( $order->get_total () ),
|
173 |
+
'currency' => $order->get_currency (),
|
174 |
+
'statement_descriptor' => sprintf ( __ ( 'Order %s', 'woo-stripe' ), $order->get_order_number () ),
|
175 |
+
'owner' => [
|
176 |
+
'name' => $this->get_name_from_order ( $order, 'billing' ),
|
177 |
+
'email' => $order->get_billing_email ()
|
178 |
+
],
|
179 |
+
'redirect' => [
|
180 |
+
'return_url' => add_query_arg ( [
|
181 |
+
'_payment_nonce' => wp_create_nonce ( 'local-payment-' . $order->get_id () ),
|
182 |
+
'order_id' => $order->get_id (),
|
183 |
+
'wc-stripe-local-gateway' => $this->id
|
184 |
+
], wc_get_checkout_url () )
|
185 |
+
]
|
186 |
+
];
|
187 |
+
}
|
188 |
+
|
189 |
+
public function is_local_payment_available() {
|
190 |
+
if (empty ( $this->countries )) {
|
191 |
+
return in_array ( get_woocommerce_currency (), $this->currencies );
|
192 |
+
} else {
|
193 |
+
$customer = WC ()->customer;
|
194 |
+
return in_array ( get_woocommerce_currency (), $this->currencies ) && in_array ( $customer->get_billing_country (), $this->countries );
|
195 |
+
}
|
196 |
+
}
|
197 |
+
|
198 |
+
public function get_payment_token($method_id, $method_details) {
|
199 |
+
/**
|
200 |
+
*
|
201 |
+
* @var WC_Payment_Token_Stripe_Local $token
|
202 |
+
*/
|
203 |
+
$token = parent::get_payment_token ( $method_id, $method_details );
|
204 |
+
$token->set_gateway_title ( $this->title );
|
205 |
+
return $token;
|
206 |
+
}
|
207 |
+
|
208 |
+
protected function get_payment_description() {
|
209 |
+
$desc = '';
|
210 |
+
if ($this->currencies) {
|
211 |
+
$desc .= sprintf ( __ ( 'Gateway will appear when store currency is <strong>%s</strong>.', 'woo-stripe' ), implode ( ', ', $this->currencies ) );
|
212 |
+
}
|
213 |
+
if ($this->countries) {
|
214 |
+
$desc .= '<p>' . sprintf ( __ ( '& billing country is <strong>%s</strong>', 'woo-stripe' ), implode ( ', ', $this->countries ) ) . '</p>';
|
215 |
+
}
|
216 |
+
return $desc;
|
217 |
+
}
|
218 |
+
}
|
includes/abstract/abstract-wc-payment-gateway-stripe-payment-intent.php
ADDED
@@ -0,0 +1,272 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! class_exists ( 'WC_Payment_Gateway_Stripe' )) {
|
3 |
+
return;
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
* Gateways that use PaymentIntent API should extend this abstract class.
|
7 |
+
*
|
8 |
+
* @since 3.0.0
|
9 |
+
* @package Stripe/Abstract
|
10 |
+
* @author PaymentPlugins
|
11 |
+
*
|
12 |
+
*/
|
13 |
+
abstract class WC_Payment_Gateway_Stripe_Payment_Intent extends WC_Payment_Gateway_Stripe {
|
14 |
+
|
15 |
+
public function process_payment($order_id) {
|
16 |
+
$order = wc_get_order ( $order_id );
|
17 |
+
|
18 |
+
if ($this->is_change_payment_method_request ()) {
|
19 |
+
return [ 'result' => 'success',
|
20 |
+
'redirect' => $order->get_view_order_url ()
|
21 |
+
];
|
22 |
+
}
|
23 |
+
|
24 |
+
do_action ( 'wc_stripe_before_process_payment', $order, $this->id );
|
25 |
+
|
26 |
+
if (wc_notice_count ( 'error' ) > 0) {
|
27 |
+
return $this->order_error ();
|
28 |
+
}
|
29 |
+
$this->processing_payment = true;
|
30 |
+
|
31 |
+
// if order total is zero, then save meta but don't process payment.
|
32 |
+
if ($order->get_total () == 0) {
|
33 |
+
return $this->process_zero_total_order ( $order );
|
34 |
+
}
|
35 |
+
|
36 |
+
// first check to see if a payment intent already exists
|
37 |
+
if (( $intent_id = $order->get_meta ( '_payment_intent_id', true ) )) {
|
38 |
+
if ($this->can_update_payment_intent ( $order )) {
|
39 |
+
$intent = $this->gateway->update_payment_intent ( $intent_id, $this->get_payment_intent_args ( $order, false ) );
|
40 |
+
} else {
|
41 |
+
$intent = $this->gateway->fetch_payment_intent ( $intent_id );
|
42 |
+
}
|
43 |
+
} else {
|
44 |
+
$intent = $this->gateway->create_payment_intent ( $this->get_payment_intent_args ( $order ) );
|
45 |
+
}
|
46 |
+
|
47 |
+
if (is_wp_error ( $intent )) {
|
48 |
+
wc_add_notice ( $intent->get_error_message (), 'error' );
|
49 |
+
return $this->order_error ();
|
50 |
+
}
|
51 |
+
|
52 |
+
// always update the order with the payment intent.
|
53 |
+
$order->update_meta_data ( '_payment_intent_id', $intent->id );
|
54 |
+
$order->update_meta_data ( '_payment_method_token', $intent->payment_method );
|
55 |
+
// serialize the the intent and save to the order. The intent will be used to analyze if anything
|
56 |
+
// has changed.
|
57 |
+
$order->update_meta_data ( '_payment_intent', $intent->jsonSerialize () );
|
58 |
+
$order->save ();
|
59 |
+
|
60 |
+
if ($intent->status === 'requires_confirmation') {
|
61 |
+
$intent = $this->gateway->confirm_payment_intent ( $intent );
|
62 |
+
if (is_wp_error ( $intent )) {
|
63 |
+
wc_add_notice ( $intent->get_error_message (), 'error' );
|
64 |
+
return $this->order_error ();
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
// the intent was processed.
|
69 |
+
if ($intent->status === 'succeeded' || $intent->status === 'requires_capture') {
|
70 |
+
// payment has been processed.
|
71 |
+
$charges = $intent->charges;
|
72 |
+
if (count ( $charges->data ) > 0) {
|
73 |
+
$charge = $charges->data[ 0 ];
|
74 |
+
if ($charge->captured) {
|
75 |
+
$order->payment_complete ( $charge->id );
|
76 |
+
} else {
|
77 |
+
// update the order status since the intent has not been captured.
|
78 |
+
$order_status = $this->get_option ( 'order_status' );
|
79 |
+
$order->update_status ( apply_filters ( 'wc_stripe_authorized_order_status', 'default' === $order_status ? 'processing' : $order_status, $order, $this ) );
|
80 |
+
}
|
81 |
+
$this->save_order_meta ( $order, $charge );
|
82 |
+
$order->add_order_note ( sprintf ( __ ( 'Order %s successful in Stripe. Charge: %s. Payment Method: %s', 'woo-stripe' ), $charge->captured ? __ ( 'charge', 'woo-stripe' ) : __ ( 'authorization', 'woo-stripe' ), $order->get_transaction_id (), $order->get_payment_method_title () ) );
|
83 |
+
}
|
84 |
+
WC ()->cart->empty_cart ();
|
85 |
+
|
86 |
+
/**
|
87 |
+
* Save the payment method if appropriate.
|
88 |
+
* We wait until the end of order processing because a failed payment method save
|
89 |
+
* should not halt the order process. Customer's can always take action after a failed save,
|
90 |
+
* like going to the Add Payment method page.
|
91 |
+
*/
|
92 |
+
if ($this->should_save_payment_method ( $order )) {
|
93 |
+
if (is_wp_error ( $this->save_payment_method ( $intent->payment_method, $order ) )) {
|
94 |
+
$this->set_payment_save_error ( $order, $this->wp_error );
|
95 |
+
}
|
96 |
+
}
|
97 |
+
|
98 |
+
return array( 'result' => 'success',
|
99 |
+
'redirect' => $order->get_checkout_order_received_url ()
|
100 |
+
);
|
101 |
+
}
|
102 |
+
if ($intent->status === 'requires_source_action' || $intent->status === 'requires_action') {
|
103 |
+
// 3DS actions are required. Need to have customer complete action.
|
104 |
+
$url = $this->get_payment_intent_checkout_url ( $intent->client_secret );
|
105 |
+
return array( 'result' => 'success',
|
106 |
+
'redirect' => $url
|
107 |
+
);
|
108 |
+
}
|
109 |
+
if ($intent->status === 'requires_source' || $intent->status === 'requires_payment_method') {
|
110 |
+
wc_add_notice ( __ ( 'A new payment method is required.', 'woo-stripe' ), 'error' );
|
111 |
+
return $this->order_error ();
|
112 |
+
}
|
113 |
+
}
|
114 |
+
|
115 |
+
/**
|
116 |
+
*
|
117 |
+
* @param WC_Order $order
|
118 |
+
*/
|
119 |
+
public function get_payment_intent_args($order, $new = true) {
|
120 |
+
$args = [
|
121 |
+
'amount' => wc_stripe_add_number_precision ( $order->get_total () ),
|
122 |
+
'currency' => $order->get_currency (),
|
123 |
+
'metadata' => $this->get_order_meta_data ( $order ),
|
124 |
+
'description' => $this->get_order_description ( $order ),
|
125 |
+
'shipping' => wc_stripe_order_has_shipping_address ( $order ) ? [
|
126 |
+
'address' => [
|
127 |
+
'city' => $order->get_shipping_city (),
|
128 |
+
'country' => $order->get_shipping_country (),
|
129 |
+
'line1' => $order->get_shipping_address_1 (),
|
130 |
+
'line2' => $order->get_shipping_address_2 (),
|
131 |
+
'postal_code' => $order->get_shipping_postcode (),
|
132 |
+
'state' => $order->get_shipping_state ()
|
133 |
+
],
|
134 |
+
'name' => $this->get_name_from_order ( $order, 'shipping' )
|
135 |
+
] : []
|
136 |
+
];
|
137 |
+
if ($new) {
|
138 |
+
$args = array_merge ( $args, [
|
139 |
+
'confirmation_method' => 'manual',
|
140 |
+
'capture_method' => $this->get_option ( 'charge_type' ) === 'capture' ? 'automatic' : 'manual',
|
141 |
+
'confirm' => false
|
142 |
+
] );
|
143 |
+
}
|
144 |
+
if ($order->get_meta ( '_payment_method_token', true ) !== $this->get_payment_method_from_request ()) {
|
145 |
+
$args[ 'payment_method' ] = $this->get_payment_method_from_request ();
|
146 |
+
}
|
147 |
+
if (( $customer_id = wc_stripe_get_customer_id ( get_current_user_id () ) )) {
|
148 |
+
$args[ 'customer' ] = $customer_id;
|
149 |
+
}
|
150 |
+
if ($this->should_save_payment_method ( $order )) {
|
151 |
+
$args[ 'setup_future_usage' ] = 'off_session';
|
152 |
+
}
|
153 |
+
return apply_filters ( 'wc_stripe_payment_intent_args', $args, $order, $this );
|
154 |
+
}
|
155 |
+
|
156 |
+
protected function get_payment_intent_checkout_url($secret) {
|
157 |
+
// rand is used to generate some random entropy so that window hash events are triggered.
|
158 |
+
return sprintf ( '#payment-intent=%s:%s', $secret, rand ( 0, 999999 ) );
|
159 |
+
}
|
160 |
+
|
161 |
+
public function create_payment_method($id, $customer_id) {
|
162 |
+
// fetch the payment method from Stripe.
|
163 |
+
$payment_method = $this->gateway->fetch_payment_method ( $id );
|
164 |
+
|
165 |
+
if (is_wp_error ( $payment_method )) {
|
166 |
+
return $payment_method;
|
167 |
+
}
|
168 |
+
|
169 |
+
$payment_method = $this->gateway->attach_payment_method ( $payment_method, [
|
170 |
+
'customer' => $customer_id
|
171 |
+
] );
|
172 |
+
|
173 |
+
if (is_wp_error ( $payment_method )) {
|
174 |
+
return $payment_method;
|
175 |
+
}
|
176 |
+
|
177 |
+
return $this->get_payment_token ( $id, $payment_method );
|
178 |
+
}
|
179 |
+
|
180 |
+
public function capture_charge($amount, $order) {
|
181 |
+
$amount_in_cents = wc_stripe_add_number_precision ( $amount );
|
182 |
+
$payment_intent = $order->get_meta ( '_payment_intent_id', true );
|
183 |
+
$result = $this->gateway->capture_payment_intent ( $payment_intent, array(
|
184 |
+
'amount_to_capture' => $amount_in_cents
|
185 |
+
), wc_stripe_order_mode ( $order ) );
|
186 |
+
if (! is_wp_error ( $result )) {
|
187 |
+
$order->payment_complete ();
|
188 |
+
$order->add_order_note ( sprintf ( __ ( 'Order amount captured in Stripe. Amount: %s', 'woo-stripe' ), wc_price ( $amount, array(
|
189 |
+
'currency' => $order->get_currency ()
|
190 |
+
) ) ) );
|
191 |
+
} else {
|
192 |
+
$order->add_order_note ( sprintf ( __ ( 'Error capturing charge in Stripe. Reason: %s', 'woo-stripe' ), wc_price ( $amount, array(
|
193 |
+
'currency' => $order->get_currency ()
|
194 |
+
) ) ) );
|
195 |
+
}
|
196 |
+
return $result;
|
197 |
+
}
|
198 |
+
|
199 |
+
public function void_charge($order) {
|
200 |
+
$result = $this->gateway->cancel_payment_intent ( $order->get_meta ( '_payment_intent_id', true ), wc_stripe_order_mode ( $order ) );
|
201 |
+
if (is_wp_error ( $result )) {
|
202 |
+
$order->add_order_note ( sprintf ( __ ( 'Error voiding charge. Reason: %s', 'woo-stripe' ), $result->get_error_message () ) );
|
203 |
+
} else {
|
204 |
+
$order->add_order_note ( __ ( 'Charge voided in Stripe.', 'woo-stripe' ) );
|
205 |
+
}
|
206 |
+
}
|
207 |
+
|
208 |
+
/**
|
209 |
+
*
|
210 |
+
* {@inheritDoc}
|
211 |
+
*
|
212 |
+
* @see WC_Payment_Gateway_Stripe::scheduled_subscription_payment()
|
213 |
+
*/
|
214 |
+
public function scheduled_subscription_payment($amount, $order) {
|
215 |
+
$args = array_merge ( $this->get_payment_intent_args ( $order ), [
|
216 |
+
'amount' => wc_stripe_add_number_precision ( $amount ),
|
217 |
+
'payment_method' => $order->get_meta ( '_payment_method_token', true ),
|
218 |
+
'confirm' => true, 'off_session' => true
|
219 |
+
] );
|
220 |
+
$intent = $this->gateway->create_payment_intent ( $args, wc_stripe_order_mode ( $order ) );
|
221 |
+
|
222 |
+
if (is_wp_error ( $intent )) {
|
223 |
+
// payment intent failed
|
224 |
+
$order->update_status ( 'failed', sprintf ( __ ( 'Recurring payment for order failed. Reason: %s', 'woo-stripe' ), $intent->get_error_message () ) );
|
225 |
+
} else {
|
226 |
+
if ($intent->status === 'succeeded' || $intent->status === 'requires_capture') {
|
227 |
+
$charges = $intent->charges->data;
|
228 |
+
if (isset ( $charges[ 0 ] )) {
|
229 |
+
$charge = $charges[ 0 ];
|
230 |
+
|
231 |
+
$this->save_order_meta ( $order, $charge );
|
232 |
+
|
233 |
+
if ($charge->captured) {
|
234 |
+
$order->payment_complete ( $charge->id );
|
235 |
+
$order->add_order_note ( sprintf ( __ ( 'Recurring payment captured in Stripe. Payment method: %s', 'woo-stripe' ), $order->get_payment_method_title () ) );
|
236 |
+
} else {
|
237 |
+
$order->update_status ( apply_filters ( 'wc_stripe_authorized_renewal_order_status', 'processing', $order, $this ), sprintf ( __ ( 'Recurring payment authorized in Stripe. Payment method: %s', 'woo-stripe' ), $order->get_payment_method_title () ) );
|
238 |
+
}
|
239 |
+
}
|
240 |
+
} else {
|
241 |
+
$order->update_status ( 'pending', sprintf ( __ ( 'Customer must manually complete payment for payment method %s', 'woo-stripe' ), $order->get_payment_method_title () ) );
|
242 |
+
}
|
243 |
+
}
|
244 |
+
}
|
245 |
+
|
246 |
+
/**
|
247 |
+
* Compares the order's saved intent to the order's updates attributes.
|
248 |
+
* If there is a delta, then the payment intent can be updated.
|
249 |
+
*
|
250 |
+
* @param WC_Order $order
|
251 |
+
*/
|
252 |
+
public function can_update_payment_intent($order) {
|
253 |
+
$intent = $order->get_meta ( '_payment_intent', true );
|
254 |
+
if ($intent) {
|
255 |
+
$order_hash = sprintf ( '%s_%s_%s', wc_stripe_add_number_precision ( $order->get_total () ), wc_stripe_get_customer_id ( $order->get_user_id () ), $this->get_payment_method_from_request () );
|
256 |
+
$intent_hash = sprintf ( '%s_%s_%s', $intent[ 'amount' ], $intent[ 'customer' ], $intent[ 'payment_method' ] );
|
257 |
+
return $order_hash !== $intent_hash;
|
258 |
+
}
|
259 |
+
return false;
|
260 |
+
}
|
261 |
+
|
262 |
+
public function delete_payment_method($token_id, $token) {
|
263 |
+
$mode = $token->get_environment ();
|
264 |
+
try {
|
265 |
+
$customer_id = wc_stripe_get_customer_id ( $token->get_user_id (), $mode );
|
266 |
+
$payment_method = $this->gateway->fetch_payment_method ( $token->get_token () );
|
267 |
+
$this->gateway->delete_payment_method ( $payment_method );
|
268 |
+
} catch ( \Stripe\Error\Base $e ) {
|
269 |
+
wc_stripe_log_error ( sprintf ( __ ( 'Error deleting Stripe card. Token Id: %s', 'woo-stripe' ), $token->get_token () ) );
|
270 |
+
}
|
271 |
+
}
|
272 |
+
}
|
includes/abstract/abstract-wc-payment-gateway-stripe.php
ADDED
@@ -0,0 +1,973 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! class_exists ( 'WC_Payment_Gateway' )) {
|
3 |
+
return;
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
*
|
7 |
+
* @since 3.0.0
|
8 |
+
* @author PaymentPlugins
|
9 |
+
* @package Stripe/Abstract
|
10 |
+
*
|
11 |
+
*/
|
12 |
+
abstract class WC_Payment_Gateway_Stripe extends WC_Payment_Gateway {
|
13 |
+
|
14 |
+
public $token_key;
|
15 |
+
|
16 |
+
public $saved_method_key;
|
17 |
+
|
18 |
+
public $payment_type_key;
|
19 |
+
|
20 |
+
public $payment_intent_key;
|
21 |
+
|
22 |
+
public $save_source_key;
|
23 |
+
|
24 |
+
protected $tab_title;
|
25 |
+
|
26 |
+
public $template_name;
|
27 |
+
|
28 |
+
public $product_template;
|
29 |
+
|
30 |
+
protected $checkout_error = false;
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Used to create an instance of a WC_Payment_Token
|
34 |
+
*
|
35 |
+
* @var string
|
36 |
+
*/
|
37 |
+
protected $token_type;
|
38 |
+
|
39 |
+
/**
|
40 |
+
*
|
41 |
+
* @var WC_Stripe_Gateway
|
42 |
+
*/
|
43 |
+
protected $gateway;
|
44 |
+
|
45 |
+
/**
|
46 |
+
*
|
47 |
+
* @var WP_Error
|
48 |
+
*/
|
49 |
+
protected $wp_error;
|
50 |
+
|
51 |
+
/**
|
52 |
+
*
|
53 |
+
* @var string
|
54 |
+
*/
|
55 |
+
protected $payment_method_token = null;
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Is the payment method synchronous or asynchronous
|
59 |
+
*
|
60 |
+
* @var bool
|
61 |
+
*/
|
62 |
+
protected $synchronous = true;
|
63 |
+
|
64 |
+
/**
|
65 |
+
*
|
66 |
+
* @var bool
|
67 |
+
*/
|
68 |
+
public $processing_payment = false;
|
69 |
+
|
70 |
+
public function __construct() {
|
71 |
+
$this->token_key = $this->id . '_token_key';
|
72 |
+
$this->saved_method_key = $this->id . '_saved_method_key';
|
73 |
+
$this->save_source_key = $this->id . '_save_source_key';
|
74 |
+
$this->payment_type_key = $this->id . '_payment_type_key';
|
75 |
+
$this->payment_intent_key = $this->id . '_payment_intent_key';
|
76 |
+
$this->has_fields = true;
|
77 |
+
$this->title = $this->get_option ( 'title_text' );
|
78 |
+
$this->description = $this->get_option ( 'description' );
|
79 |
+
$this->init_form_fields ();
|
80 |
+
$this->init_settings ();
|
81 |
+
$this->hooks ();
|
82 |
+
$this->init_supports ();
|
83 |
+
$this->gateway = new WC_Stripe_Gateway ();
|
84 |
+
}
|
85 |
+
|
86 |
+
public function hooks() {
|
87 |
+
add_filter ( 'wc_stripe_settings_nav_tabs', array(
|
88 |
+
$this, 'admin_nav_tab'
|
89 |
+
) );
|
90 |
+
add_action ( 'woocommerce_settings_checkout_' . $this->id, [
|
91 |
+
$this, 'enqueue_admin_scripts'
|
92 |
+
] );
|
93 |
+
add_action ( 'woocommerce_update_options_payment_gateways_' . $this->id, [
|
94 |
+
$this, 'process_admin_options'
|
95 |
+
] );
|
96 |
+
add_action ( 'woocommerce_settings_checkout_' . $this->id, [
|
97 |
+
$this, 'enqueue_admin_scripts'
|
98 |
+
] );
|
99 |
+
add_filter ( 'woocommerce_payment_methods_list_item', [
|
100 |
+
$this, 'payment_methods_list_item'
|
101 |
+
], 10, 2 );
|
102 |
+
add_action ( 'wc_stripe_payment_token_deleted_' . $this->id, [
|
103 |
+
$this, 'delete_payment_method'
|
104 |
+
], 10, 2 );
|
105 |
+
add_filter ( 'woocommerce_subscription_payment_meta', [
|
106 |
+
$this, 'subscription_payment_meta'
|
107 |
+
], 10, 2 );
|
108 |
+
add_action ( 'woocommerce_scheduled_subscription_payment_' . $this->id, [
|
109 |
+
$this, 'scheduled_subscription_payment'
|
110 |
+
], 10, 2 );
|
111 |
+
if (! is_admin ()) {
|
112 |
+
add_action ( 'woocommerce_subscriptions_pre_update_payment_method', [
|
113 |
+
$this,
|
114 |
+
'subscriptions_pre_update_payment_method'
|
115 |
+
], 10, 3 );
|
116 |
+
add_action ( 'woocommerce_subscription_payment_method_updated_to_' . $this->id, [
|
117 |
+
$this,
|
118 |
+
'subscription_payment_method_updated'
|
119 |
+
] );
|
120 |
+
}
|
121 |
+
}
|
122 |
+
|
123 |
+
public function init_supports() {
|
124 |
+
$this->supports = array( 'tokenization', 'products',
|
125 |
+
'subscriptions', 'add_payment_method',
|
126 |
+
'subscription_cancellation',
|
127 |
+
'multiple_subscriptions',
|
128 |
+
'subscription_amount_changes',
|
129 |
+
'subscription_date_changes',
|
130 |
+
'default_credit_card_form', 'refunds',
|
131 |
+
'pre-orders',
|
132 |
+
'subscription_payment_method_change_admin',
|
133 |
+
'subscription_reactivation',
|
134 |
+
'subscription_suspension',
|
135 |
+
'subscription_payment_method_change_customer'
|
136 |
+
);
|
137 |
+
}
|
138 |
+
|
139 |
+
public function admin_nav_tab($tabs) {
|
140 |
+
$tabs[ $this->id ] = $this->tab_title;
|
141 |
+
return $tabs;
|
142 |
+
}
|
143 |
+
|
144 |
+
public function init_form_fields() {
|
145 |
+
$this->form_fields = include wc_stripe ()->plugin_path () . 'includes/gateways/settings/' . str_replace ( [
|
146 |
+
'stripe_', '_'
|
147 |
+
], [ '', '-'
|
148 |
+
], $this->id ) . '-settings.php';
|
149 |
+
$this->form_fields = apply_filters ( 'wc_stripe_form_fields_' . $this->id, $this->form_fields );
|
150 |
+
}
|
151 |
+
|
152 |
+
public function admin_options() {
|
153 |
+
$this->output_settings_nav ();
|
154 |
+
printf ( '<input type="hidden" id="wc_stripe_prefix" name="wc_stripe_prefix" value="%1$s"/>', $this->get_prefix () );
|
155 |
+
echo '<div class="wc-stripe-settings-container ' . $this->id . '">';
|
156 |
+
parent::admin_options ();
|
157 |
+
echo '</div>';
|
158 |
+
}
|
159 |
+
|
160 |
+
public function output_settings_nav() {
|
161 |
+
include wc_stripe ()->plugin_path () . 'includes/admin/views/html-settings-nav.php';
|
162 |
+
}
|
163 |
+
|
164 |
+
public function get_prefix() {
|
165 |
+
return $this->plugin_id . $this->id . '_';
|
166 |
+
}
|
167 |
+
|
168 |
+
public function generate_multiselect_html($key, $data) {
|
169 |
+
$value = ( array ) $this->get_option ( $key, array() );
|
170 |
+
$data[ 'options' ] = array_merge ( array_flip ( $value ), $data[ 'options' ] );
|
171 |
+
return parent::generate_multiselect_html ( $key, $data );
|
172 |
+
}
|
173 |
+
|
174 |
+
public function is_active($key) {
|
175 |
+
return $this->get_option ( $key ) === 'yes';
|
176 |
+
}
|
177 |
+
|
178 |
+
public function get_method_formats() {
|
179 |
+
$class_name = 'WC_Payment_Token_' . $this->token_type;
|
180 |
+
if (class_exists ( $class_name )) {
|
181 |
+
/**
|
182 |
+
*
|
183 |
+
* @var WC_Payment_Token_Stripe
|
184 |
+
*/
|
185 |
+
$token = new $class_name ();
|
186 |
+
return $token->get_formats ();
|
187 |
+
}
|
188 |
+
return array();
|
189 |
+
}
|
190 |
+
|
191 |
+
public function enqueue_admin_scripts() {}
|
192 |
+
|
193 |
+
public function payment_fields() {
|
194 |
+
$this->enqueue_frontend_scripts ();
|
195 |
+
wc_stripe_token_field ( $this );
|
196 |
+
wc_stripe_payment_intent_field ( $this );
|
197 |
+
wc_stripe_get_template ( 'checkout/payment-method.php', array(
|
198 |
+
'gateway' => $this,
|
199 |
+
'tokens' => is_add_payment_method_page () ? null : $this->get_tokens ()
|
200 |
+
) );
|
201 |
+
}
|
202 |
+
|
203 |
+
/**
|
204 |
+
* Output the product payment fields.
|
205 |
+
*/
|
206 |
+
public function product_fields() {
|
207 |
+
global $product;
|
208 |
+
$this->enqueue_frontend_scripts ();
|
209 |
+
wc_stripe_token_field ( $this );
|
210 |
+
wc_stripe_get_template ( 'product/' . $this->template_name, array(
|
211 |
+
'gateway' => $this, 'product' => $product
|
212 |
+
) );
|
213 |
+
}
|
214 |
+
|
215 |
+
public function cart_fields() {
|
216 |
+
$this->enqueue_frontend_scripts ();
|
217 |
+
wc_stripe_token_field ( $this );
|
218 |
+
wc_stripe_get_template ( 'cart/' . $this->template_name, array(
|
219 |
+
'gateway' => $this
|
220 |
+
) );
|
221 |
+
}
|
222 |
+
|
223 |
+
/**
|
224 |
+
* Enqueue scripts needed by the gateway on the frontend of the WC shop.
|
225 |
+
*
|
226 |
+
* @param WC_Stripe_Frontend_Scripts $scripts
|
227 |
+
*/
|
228 |
+
public function enqueue_frontend_scripts() {
|
229 |
+
global $wp;
|
230 |
+
if (is_add_payment_method_page ()) {
|
231 |
+
$this->enqueue_add_payment_method_scripts ( wc_stripe ()->scripts () );
|
232 |
+
}
|
233 |
+
if (is_checkout ()) {
|
234 |
+
$this->enqueue_checkout_scripts ( wc_stripe ()->scripts () );
|
235 |
+
}
|
236 |
+
if (is_cart ()) {
|
237 |
+
$this->enqueue_cart_scripts ( wc_stripe ()->scripts () );
|
238 |
+
}
|
239 |
+
if (is_product ()) {
|
240 |
+
$this->enqueue_product_scripts ( wc_stripe ()->scripts () );
|
241 |
+
}
|
242 |
+
if (! empty ( wc_stripe ()->scripts ()->enqueued_scripts )) {
|
243 |
+
wc_stripe ()->scripts ()->enqueue_script ( 'form-handler' );
|
244 |
+
wp_enqueue_style ( wc_stripe ()->scripts ()->prefix . 'styles', wc_stripe ()->assets_url () . 'css/stripe.css', array(), wc_stripe ()->version () );
|
245 |
+
}
|
246 |
+
}
|
247 |
+
|
248 |
+
/**
|
249 |
+
* Enqueue scripts needed by the gateway on the checkout page.
|
250 |
+
*
|
251 |
+
* @param WC_Stripe_Frontend_Scripts $scripts
|
252 |
+
*/
|
253 |
+
public function enqueue_checkout_scripts($scripts) {}
|
254 |
+
|
255 |
+
/**
|
256 |
+
* Enqueue scripts needed by the gateway on the add payment method page.
|
257 |
+
*
|
258 |
+
* @param WC_Stripe_Frontend_Scripts $scripts
|
259 |
+
*/
|
260 |
+
public function enqueue_add_payment_method_scripts($scripts) {
|
261 |
+
$this->enqueue_checkout_scripts ( $scripts );
|
262 |
+
}
|
263 |
+
|
264 |
+
/**
|
265 |
+
* Enqueue scripts needed by the gateway on the cart page.
|
266 |
+
*
|
267 |
+
* @param WC_Stripe_Frontend_Scripts $scripts
|
268 |
+
*/
|
269 |
+
public function enqueue_cart_scripts($scripts) {}
|
270 |
+
|
271 |
+
/**
|
272 |
+
* Enqueue scripts needed by the gateway on the product page.
|
273 |
+
*
|
274 |
+
* @param WC_Stripe_Frontend_Scripts $scripts
|
275 |
+
*/
|
276 |
+
public function enqueue_product_scripts($scripts) {}
|
277 |
+
|
278 |
+
/**
|
279 |
+
*
|
280 |
+
* @return array
|
281 |
+
*/
|
282 |
+
public function get_localized_params() {
|
283 |
+
return array( 'gateway_id' => $this->id,
|
284 |
+
'api_key' => wc_stripe_get_publishable_key (),
|
285 |
+
'saved_method_selector' => '[name="' . $this->saved_method_key . '"]',
|
286 |
+
'token_selector' => '[name="' . $this->token_key . '"]',
|
287 |
+
'payment_intent_selector' => '[name="' . $this->payment_intent_key . '"]',
|
288 |
+
'messages' => array(
|
289 |
+
'terms' => __ ( 'Please read and accept the terms and conditions to proceed with your order.', 'woocommerce' )
|
290 |
+
),
|
291 |
+
'routes' => array(
|
292 |
+
'setup_intent' => wc_stripe ()->rest_api->payment_intent->rest_url ( 'setup-intent' ),
|
293 |
+
'add_to_cart' => wc_stripe ()->rest_api->cart->rest_url ( 'add-to-cart' ),
|
294 |
+
'shipping_method' => wc_stripe ()->rest_api->cart->rest_url ( 'shipping-method' ),
|
295 |
+
'shipping_address' => wc_stripe ()->rest_api->cart->rest_url ( 'shipping-address' ),
|
296 |
+
'checkout' => wc_stripe ()->rest_api->checkout->rest_url ( 'checkout' )
|
297 |
+
),
|
298 |
+
'rest_nonce' => wp_create_nonce ( 'wp_rest' ),
|
299 |
+
'needs_shipping' => $this->get_needs_shipping (),
|
300 |
+
'banner_enabled' => $this->banner_checkout_enabled (),
|
301 |
+
'currency' => get_woocommerce_currency (),
|
302 |
+
'total_label' => __ ( 'Total', 'woo-stripe' ),
|
303 |
+
'country_code' => wc_get_base_location ()[ 'country' ]
|
304 |
+
);
|
305 |
+
}
|
306 |
+
|
307 |
+
/**
|
308 |
+
* Returns the payment method the customer wants to use.
|
309 |
+
* This can be a saved payment method
|
310 |
+
* or a new payment method.
|
311 |
+
*/
|
312 |
+
protected function get_payment_method_from_request() {
|
313 |
+
if ($this->use_saved_source ()) {
|
314 |
+
return $this->get_saved_source_id ();
|
315 |
+
}
|
316 |
+
return $this->get_new_source_id ();
|
317 |
+
}
|
318 |
+
|
319 |
+
/**
|
320 |
+
* Save the Stripe data to the order.
|
321 |
+
*
|
322 |
+
* @param WC_Order $order
|
323 |
+
* @param \Stripe\Charge $charge
|
324 |
+
*/
|
325 |
+
public function save_order_meta($order, $charge) {
|
326 |
+
/**
|
327 |
+
*
|
328 |
+
* @var WC_Payment_Token_Stripe $token
|
329 |
+
*/
|
330 |
+
$token = $this->get_payment_token ( $charge->payment_method, $charge->payment_method_details );
|
331 |
+
$order->set_transaction_id ( $charge->id );
|
332 |
+
$order->set_payment_method_title ( $token->get_payment_method_title () );
|
333 |
+
$order->update_meta_data ( '_wc_stripe_mode', wc_stripe_mode () );
|
334 |
+
$order->update_meta_data ( '_wc_stripe_charge_status', $charge->status );
|
335 |
+
$order->update_meta_data ( '_payment_method_token', $token->get_token () );
|
336 |
+
$order->save ();
|
337 |
+
|
338 |
+
// if WCS is active and there are subscriptions in the order, save meta data
|
339 |
+
if (wcs_stripe_active () && wcs_order_contains_subscription ( $order )) {
|
340 |
+
foreach ( wcs_get_subscriptions_for_order ( $order ) as $subscription ) {
|
341 |
+
$subscription->set_transaction_id ( $charge->id );
|
342 |
+
$subscription->set_payment_method_title ( $token->get_payment_method_title () );
|
343 |
+
$subscription->update_meta_data ( '_wc_stripe_mode', wc_stripe_mode () );
|
344 |
+
$subscription->update_meta_data ( '_wc_stripe_charge_status', $charge->status );
|
345 |
+
$subscription->update_meta_data ( '_payment_method_token', $token->get_token () );
|
346 |
+
$subscription->update_meta_data ( '_wc_stripe_customer', wc_stripe_get_customer_id ( $order->get_user_id () ) );
|
347 |
+
$subscription->save ();
|
348 |
+
}
|
349 |
+
}
|
350 |
+
}
|
351 |
+
|
352 |
+
public function add_payment_method() {
|
353 |
+
$customer_id = wc_stripe_get_customer_id ();
|
354 |
+
if (empty ( $customer_id )) {
|
355 |
+
$customer_id = $this->create_customer ( get_current_user_id () );
|
356 |
+
}
|
357 |
+
try {
|
358 |
+
$result = $this->create_payment_method ( $this->get_new_source_id (), $customer_id );
|
359 |
+
if (is_wp_error ( $result )) {
|
360 |
+
wc_add_notice ( sprintf ( __ ( 'Error saving your payment method. Reason: %s', 'woo-stripe' ), $result->get_error_message () ), 'error' );
|
361 |
+
return array( 'result' => 'error'
|
362 |
+
);
|
363 |
+
}
|
364 |
+
$result->set_user_id ( get_current_user_id () );
|
365 |
+
$result->save ();
|
366 |
+
WC_Payment_Tokens::set_users_default ( get_current_user_id (), $result->get_id () );
|
367 |
+
return array( 'result' => 'success',
|
368 |
+
'redirect' => wc_get_account_endpoint_url ( 'payment-methods' )
|
369 |
+
);
|
370 |
+
} catch ( \Stripe\Error\Base $e ) {
|
371 |
+
wc_add_notice ( sprintf ( __ ( 'Error saving payment method. Reason: %s', 'woo-stripe' ), $e->getMessage () ), 'error' );
|
372 |
+
return array( 'result' => 'error'
|
373 |
+
);
|
374 |
+
}
|
375 |
+
}
|
376 |
+
|
377 |
+
public function process_refund($order_id, $amount = null, $reason = '') {
|
378 |
+
$order = wc_get_order ( $order_id );
|
379 |
+
$amount_in_cents = wc_stripe_add_number_precision ( $amount );
|
380 |
+
$charge = $order->get_transaction_id ();
|
381 |
+
try {
|
382 |
+
if (empty ( $charge )) {
|
383 |
+
throw new Exception ( __ ( 'Transaction Id cannot be empty.', 'woo-stripe' ) );
|
384 |
+
}
|
385 |
+
$result = $this->gateway->refund ( array(
|
386 |
+
'charge' => $charge,
|
387 |
+
'amount' => $amount_in_cents
|
388 |
+
), wc_stripe_order_mode ( $order ) );
|
389 |
+
if (! is_wp_error ( $result )) {
|
390 |
+
$order->add_order_note ( sprintf ( __ ( 'Order refunded in Stripe. Amount: %s', 'woo-stripe' ), wc_price ( $amount, array(
|
391 |
+
'currency' => $order->get_currency ()
|
392 |
+
) ) ) );
|
393 |
+
return true;
|
394 |
+
}
|
395 |
+
return $result;
|
396 |
+
} catch ( Exception $e ) {
|
397 |
+
return new WP_Error ( 'refund-error', $e->getMessage () );
|
398 |
+
}
|
399 |
+
}
|
400 |
+
|
401 |
+
/**
|
402 |
+
* Captures the charge for the Stripe order.
|
403 |
+
*
|
404 |
+
* @param float $amount
|
405 |
+
* @param WC_Order $order
|
406 |
+
*/
|
407 |
+
public function capture_charge($amount, $order) {}
|
408 |
+
|
409 |
+
/**
|
410 |
+
* Void the Stripe charge.
|
411 |
+
*
|
412 |
+
* @param WC_Order $order
|
413 |
+
*/
|
414 |
+
public function void_charge($order) {}
|
415 |
+
|
416 |
+
/**
|
417 |
+
* Return the \Stripe\Charge object
|
418 |
+
*
|
419 |
+
* @param String $charge_id
|
420 |
+
* @param String $mode
|
421 |
+
* @return WP_Error|\Stripe\Charge
|
422 |
+
*/
|
423 |
+
public function retrieve_charge($charge_id, $mode = '') {
|
424 |
+
return $this->gateway->get_charge ( $charge_id, $mode );
|
425 |
+
}
|
426 |
+
|
427 |
+
/**
|
428 |
+
*
|
429 |
+
* @param string $method_id
|
430 |
+
* @param \Stripe\Card|array $method_details
|
431 |
+
*/
|
432 |
+
public function get_payment_token($method_id, $method_details) {
|
433 |
+
$class_name = 'WC_Payment_Token_' . $this->token_type;
|
434 |
+
if (class_exists ( $class_name )) {
|
435 |
+
/**
|
436 |
+
*
|
437 |
+
* @var WC_Payment_Token_Stripe $token
|
438 |
+
*/
|
439 |
+
$token = new $class_name ( '', $method_details );
|
440 |
+
$token->details_to_props ( $method_details );
|
441 |
+
$token->set_token ( $method_id );
|
442 |
+
$token->set_gateway_id ( $this->id );
|
443 |
+
$token->set_format ( $this->get_option ( 'method_format' ) );
|
444 |
+
$token->set_environment ( wc_stripe_mode () );
|
445 |
+
return $token;
|
446 |
+
}
|
447 |
+
}
|
448 |
+
|
449 |
+
/**
|
450 |
+
* Return a failed order response.
|
451 |
+
*
|
452 |
+
* @return array
|
453 |
+
*/
|
454 |
+
public function order_error() {
|
455 |
+
wc_stripe_set_checkout_error ();
|
456 |
+
return array( 'result' => 'failure'
|
457 |
+
);
|
458 |
+
}
|
459 |
+
|
460 |
+
/**
|
461 |
+
*
|
462 |
+
* @param WC_Order $order
|
463 |
+
*/
|
464 |
+
protected function get_order_identifier($order) {
|
465 |
+
return sprintf ( '%s%s%s', $this->get_option ( 'order_prefix' ), $order->get_order_number (), $this->get_option ( 'order_suffix' ) );
|
466 |
+
}
|
467 |
+
|
468 |
+
/**
|
469 |
+
*
|
470 |
+
* @param WC_Order $order
|
471 |
+
*/
|
472 |
+
protected function get_name_from_order($order, $type) {
|
473 |
+
if ($type === 'billing') {
|
474 |
+
return sprintf ( '%s %s', $order->get_billing_first_name (), $order->get_billing_last_name () );
|
475 |
+
} else {
|
476 |
+
return sprintf ( '%s %s', $order->get_shipping_first_name (), $order->get_shipping_last_name () );
|
477 |
+
}
|
478 |
+
}
|
479 |
+
|
480 |
+
/**
|
481 |
+
* Return the payment source the customer has chosen to use.
|
482 |
+
* This can be a saved source
|
483 |
+
* or a one time use source.
|
484 |
+
*/
|
485 |
+
public function get_payment_source() {
|
486 |
+
if ($this->use_saved_source ()) {
|
487 |
+
return $this->get_saved_source_id ();
|
488 |
+
} else {
|
489 |
+
if ($this->payment_method_token) {
|
490 |
+
return $this->payment_method_token;
|
491 |
+
}
|
492 |
+
return $this->get_new_source_id ();
|
493 |
+
}
|
494 |
+
}
|
495 |
+
|
496 |
+
public function get_payment_intent_id() {
|
497 |
+
return ! empty ( $_POST[ $this->payment_intent_key ] ) ? $_POST[ $this->payment_intent_key ] : '';
|
498 |
+
}
|
499 |
+
|
500 |
+
/**
|
501 |
+
* Return true of the customer is using a saved payment method.
|
502 |
+
*/
|
503 |
+
public function use_saved_source() {
|
504 |
+
return ( ! empty ( $_POST[ $this->payment_type_key ] ) && $_POST[ $this->payment_type_key ] === 'saved' ) || $this->payment_method_token;
|
505 |
+
}
|
506 |
+
|
507 |
+
public function get_new_source_id() {
|
508 |
+
return ! empty ( $_POST[ $this->token_key ] ) ? $_POST[ $this->token_key ] : '';
|
509 |
+
}
|
510 |
+
|
511 |
+
public function get_saved_source_id() {
|
512 |
+
return ! empty ( $_POST[ $this->saved_method_key ] ) ? $_POST[ $this->saved_method_key ] : $this->payment_method_token;
|
513 |
+
}
|
514 |
+
|
515 |
+
/**
|
516 |
+
* Create a customer in the stripe gateway.
|
517 |
+
*
|
518 |
+
* @param int $user_id
|
519 |
+
*/
|
520 |
+
public function create_customer($user_id) {
|
521 |
+
$customer = WC ()->customer;
|
522 |
+
$customer_id = $this->gateway->create_customer ( array(
|
523 |
+
'email' => $customer->get_email (),
|
524 |
+
'name' => sprintf ( '%s %s', $customer->get_first_name (), $customer->get_last_name () ),
|
525 |
+
'phone' => $customer->get_billing_phone ()
|
526 |
+
) );
|
527 |
+
if (! is_wp_error ( $customer )) {
|
528 |
+
wc_stripe_save_customer ( $customer_id, $user_id );
|
529 |
+
return $customer->id;
|
530 |
+
} else {
|
531 |
+
return $customer;
|
532 |
+
}
|
533 |
+
}
|
534 |
+
|
535 |
+
/**
|
536 |
+
* Creates a payment method in Stripe.
|
537 |
+
*
|
538 |
+
* @param string $id
|
539 |
+
* payment method id
|
540 |
+
* @param string $customer_id
|
541 |
+
* WC Stripe customer ID
|
542 |
+
* @return WC_Payment_Token_Stripe|WP_Error
|
543 |
+
*/
|
544 |
+
public function create_payment_method($id, $customer_id) {}
|
545 |
+
|
546 |
+
/**
|
547 |
+
*
|
548 |
+
* @param array $item
|
549 |
+
* @param WC_Payment_Token_Stripe_CC $payment_token
|
550 |
+
*/
|
551 |
+
public function payment_methods_list_item($item, $payment_token) {
|
552 |
+
if ($payment_token->get_type () === $this->token_type) {
|
553 |
+
$item[ 'method' ][ 'last4' ] = $payment_token->get_last4 ();
|
554 |
+
$item[ 'method' ][ 'brand' ] = ucfirst ( $payment_token->get_brand () );
|
555 |
+
$item[ 'expires' ] = sprintf ( '%s / %s', $payment_token->get_exp_month (), $payment_token->get_exp_year () );
|
556 |
+
$item[ 'wc_stripe_method' ] = true;
|
557 |
+
}
|
558 |
+
return $item;
|
559 |
+
}
|
560 |
+
|
561 |
+
/**
|
562 |
+
*
|
563 |
+
* @param string $token_id
|
564 |
+
* @param WC_Payment_Token_Stripe $token
|
565 |
+
*/
|
566 |
+
public function delete_payment_method($token_id, $token) {}
|
567 |
+
|
568 |
+
public function saved_payment_methods($tokens = array()) {
|
569 |
+
wc_stripe_get_template ( 'payment-methods.php', array(
|
570 |
+
'tokens' => $tokens, 'gateway' => $this
|
571 |
+
) );
|
572 |
+
}
|
573 |
+
|
574 |
+
public function get_new_method_label() {
|
575 |
+
return __ ( 'New Card', 'woo-stripe' );
|
576 |
+
}
|
577 |
+
|
578 |
+
public function get_saved_methods_label() {
|
579 |
+
return __ ( 'Saved Cards', 'woo-stripe' );
|
580 |
+
}
|
581 |
+
|
582 |
+
/**
|
583 |
+
* Return true if shipping is needed.
|
584 |
+
* Shipping is based on things like if the cart or product needs shipping.
|
585 |
+
*
|
586 |
+
* @return bool
|
587 |
+
*/
|
588 |
+
public function get_needs_shipping() {
|
589 |
+
if (is_checkout () || is_cart ()) {
|
590 |
+
if (wcs_stripe_active () && WC_Subscriptions_Change_Payment_Gateway::$is_request_to_change_payment) {
|
591 |
+
return false;
|
592 |
+
}
|
593 |
+
return WC ()->cart->needs_shipping ();
|
594 |
+
}
|
595 |
+
if (is_product ()) {
|
596 |
+
global $product;
|
597 |
+
return is_a ( $product, 'WC_Product' ) && $product->needs_shipping ();
|
598 |
+
}
|
599 |
+
}
|
600 |
+
|
601 |
+
/**
|
602 |
+
* Return true of the payment method should be saved.
|
603 |
+
*
|
604 |
+
* @param WC_Order $order
|
605 |
+
* @return bool
|
606 |
+
*/
|
607 |
+
public function should_save_payment_method($order) {
|
608 |
+
if (! $this->use_saved_source ()) {
|
609 |
+
if (wcs_stripe_active ()) {
|
610 |
+
if (wcs_order_contains_subscription ( $order )) {
|
611 |
+
return true;
|
612 |
+
}
|
613 |
+
if (wcs_cart_contains_renewal ()) {
|
614 |
+
return true;
|
615 |
+
}
|
616 |
+
}
|
617 |
+
if (! empty ( $_POST[ $this->save_source_key ] )) {
|
618 |
+
return true;
|
619 |
+
}
|
620 |
+
}
|
621 |
+
return false;
|
622 |
+
}
|
623 |
+
|
624 |
+
/**
|
625 |
+
* Returns true if the save payment method checkbox can be displayed.
|
626 |
+
*
|
627 |
+
* @return boolean
|
628 |
+
*/
|
629 |
+
public function show_save_source() {
|
630 |
+
global $wp;
|
631 |
+
if (wcs_stripe_active ()) {
|
632 |
+
if (WC_Subscriptions_Cart::cart_contains_subscription ()) {
|
633 |
+
return false;
|
634 |
+
}
|
635 |
+
if (WC_Subscriptions_Change_Payment_Gateway::$is_request_to_change_payment) {
|
636 |
+
return false;
|
637 |
+
}
|
638 |
+
if (wcs_cart_contains_renewal ()) {
|
639 |
+
return false;
|
640 |
+
}
|
641 |
+
}
|
642 |
+
return is_user_logged_in () && is_checkout () && $this->is_active ( 'save_card_enabled' );
|
643 |
+
}
|
644 |
+
|
645 |
+
/**
|
646 |
+
* Returns a formatted array of items for display in the payment gateway's payment sheet.
|
647 |
+
*
|
648 |
+
* @param bool $encode
|
649 |
+
* @return []
|
650 |
+
*/
|
651 |
+
public function get_display_items($encode = false) {}
|
652 |
+
|
653 |
+
/**
|
654 |
+
* Returns a formatted array of shipping methods for display in the payment gateway's
|
655 |
+
* payment sheet.
|
656 |
+
*
|
657 |
+
* @param bool $encode
|
658 |
+
* @return []
|
659 |
+
*/
|
660 |
+
public function get_shipping_methods($encode = false) {}
|
661 |
+
|
662 |
+
/**
|
663 |
+
* Return true if product page checkout is enabled for this gateway
|
664 |
+
*
|
665 |
+
* @return bool
|
666 |
+
*/
|
667 |
+
public function product_checkout_enabled() {
|
668 |
+
return in_array ( 'product', $this->get_option ( 'payment_sections' ) );
|
669 |
+
}
|
670 |
+
|
671 |
+
/**
|
672 |
+
* Return true if cart page checkout is enabled for this gateway
|
673 |
+
*
|
674 |
+
* @return bool
|
675 |
+
*/
|
676 |
+
public function cart_checkout_enabled() {
|
677 |
+
return in_array ( 'cart', $this->get_option ( 'payment_sections' ) );
|
678 |
+
}
|
679 |
+
|
680 |
+
/**
|
681 |
+
* Return true if checkout page banner is enabled for this gateway
|
682 |
+
*
|
683 |
+
* @return bool
|
684 |
+
*/
|
685 |
+
public function banner_checkout_enabled() {
|
686 |
+
return $this->supports ( 'wc_stripe_banner_checkout' ) && in_array ( 'checkout_banner', $this->get_option ( 'payment_sections' ) );
|
687 |
+
}
|
688 |
+
|
689 |
+
/**
|
690 |
+
* Decorate the response with data specific to the gateway.
|
691 |
+
*
|
692 |
+
* @param [] $data
|
693 |
+
*/
|
694 |
+
public function add_to_cart_response($data) {
|
695 |
+
return $data;
|
696 |
+
}
|
697 |
+
|
698 |
+
/**
|
699 |
+
* Decorate the update shipping method reponse with data.
|
700 |
+
*
|
701 |
+
* @param [] $data
|
702 |
+
*/
|
703 |
+
public function get_update_shipping_method_response($data) {
|
704 |
+
return $data;
|
705 |
+
}
|
706 |
+
|
707 |
+
/**
|
708 |
+
* Decorate the update shipping address respond with data.
|
709 |
+
*
|
710 |
+
* @param [] $data
|
711 |
+
*/
|
712 |
+
public function get_update_shipping_address_response($data) {
|
713 |
+
return apply_filters ( 'wc_stripe_update_shipping_address_response', $data );
|
714 |
+
}
|
715 |
+
|
716 |
+
public function generate_button_demo_html($key, $data) {
|
717 |
+
$field_key = $this->get_field_key ( $key );
|
718 |
+
$data = wp_parse_args ( $data, array(
|
719 |
+
'title' => '', 'class' => '', 'style' => '',
|
720 |
+
'description' => '', 'desc_tip' => false,
|
721 |
+
'id' => 'wc-stripe-button-demo'
|
722 |
+
) );
|
723 |
+
ob_start ();
|
724 |
+
include wc_stripe ()->plugin_path () . 'includes/admin/views/html-button-demo.php';
|
725 |
+
return ob_get_clean ();
|
726 |
+
}
|
727 |
+
|
728 |
+
public function generate_description_html($key, $data) {
|
729 |
+
$field_key = $this->get_field_key ( $key );
|
730 |
+
$data = wp_parse_args ( $data, array(
|
731 |
+
'class' => '', 'style' => '',
|
732 |
+
'description' => ''
|
733 |
+
) );
|
734 |
+
ob_start ();
|
735 |
+
include wc_stripe ()->plugin_path () . 'includes/admin/views/html-description.php';
|
736 |
+
return ob_get_clean ();
|
737 |
+
}
|
738 |
+
|
739 |
+
/**
|
740 |
+
* Returns an array of metadata for the transaction.
|
741 |
+
*
|
742 |
+
* @param WC_Order $order
|
743 |
+
*/
|
744 |
+
protected function get_order_meta_data($order) {
|
745 |
+
$meta_data = [ 'gateway_id' => $this->id,
|
746 |
+
'order_id' => $order->get_order_number (),
|
747 |
+
'user_id' => $order->get_user_id (),
|
748 |
+
'customer_id' => wc_stripe_get_customer_id ( $order->get_user_id () ),
|
749 |
+
'ip_address' => $order->get_customer_ip_address (),
|
750 |
+
'user_agent' => isset ( $_SERVER[ 'HTTP_USER_AGENT' ] ) ? $_SERVER[ 'HTTP_USER_AGENT' ] : 'unavailable',
|
751 |
+
'partner' => 'PaymentPlugins'
|
752 |
+
];
|
753 |
+
foreach ( $order->get_items ( 'line_item' ) as $item ) {
|
754 |
+
/**
|
755 |
+
*
|
756 |
+
* @var WC_Order_Item_Product $item
|
757 |
+
*/
|
758 |
+
$product = $item->get_product ();
|
759 |
+
$meta_data[ 'product_' . $product->get_id () ] = sprintf ( '%s x %s', $product->get_name (), $item->get_quantity () );
|
760 |
+
}
|
761 |
+
return apply_filters ( 'wc_stripe_order_meta_data', $meta_data, $order );
|
762 |
+
}
|
763 |
+
|
764 |
+
/**
|
765 |
+
* Save the customer's payment method.
|
766 |
+
* If the payment method has already been saved to the customer
|
767 |
+
* the simply return true.
|
768 |
+
*
|
769 |
+
* @param string $id
|
770 |
+
* @param WC_Order $order
|
771 |
+
* @return WP_Error|bool
|
772 |
+
*/
|
773 |
+
public function save_payment_method($id, $order) {
|
774 |
+
$token = $this->create_payment_method ( $id, wc_stripe_get_customer_id ( $order->get_user_id () ) );
|
775 |
+
if (is_wp_error ( $token )) {
|
776 |
+
$this->wp_error = $token;
|
777 |
+
$order->add_order_note ( sprintf ( __ ( 'Attemp to save payment method failed. Reason: %s', 'woo-stripe' ), $token->get_error_message () ) );
|
778 |
+
return $token;
|
779 |
+
}
|
780 |
+
$token->set_user_id ( $order->get_user_id () );
|
781 |
+
$token->save ();
|
782 |
+
|
783 |
+
// set token value so it can be used for other processes.
|
784 |
+
$this->payment_method_token = $token->get_token ();
|
785 |
+
return true;
|
786 |
+
}
|
787 |
+
|
788 |
+
/**
|
789 |
+
* Set an error on the order.
|
790 |
+
* This error is used on the frontend to alert customer's to a failed payment method save.
|
791 |
+
*
|
792 |
+
* @param WC_Order $order
|
793 |
+
* @param WP_Error $error
|
794 |
+
*/
|
795 |
+
protected function set_payment_save_error($order, $error) {
|
796 |
+
if (wcs_stripe_active () && wcs_order_contains_subscription ( $order )) {
|
797 |
+
$message = __ ( 'We were not able to save your payment method. To prevent billing issues with your subscription, please add a payment method to the subscription.', 'woo-stripe' );
|
798 |
+
} else {
|
799 |
+
$message = sprintf ( __ ( 'We were not able to save your payment method. Reason: %s', 'woo-stripe' ), $error->get_error_message () );
|
800 |
+
}
|
801 |
+
$order->update_meta_data ( '_wc_stripe_order_error', $message );
|
802 |
+
$order->save ();
|
803 |
+
}
|
804 |
+
|
805 |
+
/**
|
806 |
+
*
|
807 |
+
* @param string $token_id
|
808 |
+
* @param int $user_id
|
809 |
+
* @return null|WC_Payment_Token_Stripe_CC
|
810 |
+
*/
|
811 |
+
public function get_token($token_id, $user_id) {
|
812 |
+
$tokens = WC_Payment_Tokens::get_customer_tokens ( $user_id, $this->id );
|
813 |
+
foreach ( $tokens as $token ) {
|
814 |
+
if ($token_id === $token->get_token ()) {
|
815 |
+
return $token;
|
816 |
+
}
|
817 |
+
}
|
818 |
+
return null;
|
819 |
+
}
|
820 |
+
|
821 |
+
/**
|
822 |
+
*
|
823 |
+
* @param array $payment_meta
|
824 |
+
* @param WC_Subscription $subscription
|
825 |
+
*/
|
826 |
+
public function subscription_payment_meta($payment_meta, $subscription) {
|
827 |
+
$payment_meta[ $this->id ] = array(
|
828 |
+
'post_meta' => array(
|
829 |
+
'_payment_method_token' => array(
|
830 |
+
'value' => $subscription->get_meta ( '_payment_method_token', true ),
|
831 |
+
'label' => __ ( 'Payment Method Token', 'braintree-payments' )
|
832 |
+
)
|
833 |
+
)
|
834 |
+
);
|
835 |
+
return $payment_meta;
|
836 |
+
}
|
837 |
+
|
838 |
+
/**
|
839 |
+
*
|
840 |
+
* @param float $amount
|
841 |
+
* @param WC_Order $order
|
842 |
+
*/
|
843 |
+
public function scheduled_subscription_payment($amount, $order) {}
|
844 |
+
|
845 |
+
/**
|
846 |
+
*
|
847 |
+
* @param WC_Subscription $subscription
|
848 |
+
* @param string $new_payment_method
|
849 |
+
* @param string $old_payment_method
|
850 |
+
*/
|
851 |
+
public function subscriptions_pre_update_payment_method($subscription, $new_payment_method, $old_payment_method) {
|
852 |
+
if ($new_payment_method === $this->id) {
|
853 |
+
// customer is using a new payment method so we need to save it.
|
854 |
+
if (! $this->use_saved_source ()) {
|
855 |
+
$result = $this->save_payment_method ( $this->get_new_source_id (), $subscription );
|
856 |
+
if (is_wp_error ( $result )) {
|
857 |
+
wc_add_notice ( sprintf ( __ ( 'Error saving payment method for subscription. Reason: %s', 'woo-stripe' ), $result->get_error_message () ), 'error' );
|
858 |
+
// redirect to change payment method page.
|
859 |
+
wp_safe_redirect ( $subscription->get_view_order_url () );
|
860 |
+
}
|
861 |
+
} else {
|
862 |
+
// set the payment method token so it can be used downstream.
|
863 |
+
$this->payment_method_token = $this->get_payment_source ();
|
864 |
+
}
|
865 |
+
}
|
866 |
+
}
|
867 |
+
|
868 |
+
/**
|
869 |
+
* Update the subscription with the new meta data for the gateway.
|
870 |
+
* Save any new method the customer is trying to use.
|
871 |
+
*
|
872 |
+
* @param WC_Subscription $subscription
|
873 |
+
*/
|
874 |
+
public function subscription_payment_method_updated($subscription) {
|
875 |
+
$token = $this->get_token ( $this->payment_method_token, $subscription->get_user_id () );
|
876 |
+
|
877 |
+
// update the meta data needed by the gateway to process a subscription payment.
|
878 |
+
$subscription->update_meta_data ( '_payment_method_token', $this->payment_method_token );
|
879 |
+
$subscription->set_payment_method_title ( $token->get_payment_method_title () );
|
880 |
+
$subscription->save ();
|
881 |
+
}
|
882 |
+
|
883 |
+
/**
|
884 |
+
* Return true if this request is to change the payment method of a WC Subscription.
|
885 |
+
*
|
886 |
+
* @return bool
|
887 |
+
*/
|
888 |
+
public function is_change_payment_method_request() {
|
889 |
+
return wcs_stripe_active () && did_action ( 'woocommerce_subscriptions_pre_update_payment_method' );
|
890 |
+
}
|
891 |
+
|
892 |
+
/**
|
893 |
+
* Sets the ID of a payment token.
|
894 |
+
*
|
895 |
+
* @param string $id
|
896 |
+
*/
|
897 |
+
public function set_payment_method_token($id) {
|
898 |
+
$this->payment_method_token = $id;
|
899 |
+
}
|
900 |
+
|
901 |
+
/**
|
902 |
+
*
|
903 |
+
* @param WC_Order $order
|
904 |
+
*/
|
905 |
+
public function get_order_description($order) {
|
906 |
+
return sprintf ( __ ( 'Order %s from %s', 'woo-stripe' ), $order->get_order_number (), get_bloginfo ( 'name' ) );
|
907 |
+
}
|
908 |
+
|
909 |
+
public function get_custom_attribute_html($attribs) {
|
910 |
+
if (! empty ( $attribs[ 'custom_attributes' ] ) && is_array ( $attribs[ 'custom_attributes' ] )) {
|
911 |
+
foreach ( $attribs[ 'custom_attributes' ] as $k => $v ) {
|
912 |
+
if (is_array ( $v )) {
|
913 |
+
$attribs[ 'custom_attributes' ][ $k ] = htmlspecialchars ( wp_json_encode ( $v ) );
|
914 |
+
}
|
915 |
+
}
|
916 |
+
}
|
917 |
+
return parent::get_custom_attribute_html ( $attribs );
|
918 |
+
}
|
919 |
+
|
920 |
+
/**
|
921 |
+
*
|
922 |
+
* @param WC_Order $order
|
923 |
+
*/
|
924 |
+
public function process_zero_total_order($order) {
|
925 |
+
// save payment method if necessary
|
926 |
+
if ($this->should_save_payment_method ( $order )) {
|
927 |
+
$result = $this->save_payment_method ( $this->get_new_source_id (), $order );
|
928 |
+
if (is_wp_error ( $result )) {
|
929 |
+
return $this->order_error ();
|
930 |
+
}
|
931 |
+
} else {
|
932 |
+
$this->payment_method_token = $this->get_saved_source_id ();
|
933 |
+
}
|
934 |
+
$this->save_zero_total_meta ( $order );
|
935 |
+
$order_status = $this->get_option ( 'order_status' );
|
936 |
+
if ('capture' === $this->get_option ( 'charge_type' )) {
|
937 |
+
$order->payment_complete ();
|
938 |
+
} else {
|
939 |
+
$order_status = $this->get_option ( 'order_status' );
|
940 |
+
$order->update_status ( apply_filters ( 'wc_stripe_authorized_order_status', 'default' === $order_status ? 'processing' : $order_status, $order, $this ) );
|
941 |
+
}
|
942 |
+
WC ()->cart->empty_cart ();
|
943 |
+
return array( 'result' => 'success',
|
944 |
+
'redirect' => $order->get_checkout_order_received_url ()
|
945 |
+
);
|
946 |
+
}
|
947 |
+
|
948 |
+
/**
|
949 |
+
*
|
950 |
+
* @param WC_Order $order
|
951 |
+
*/
|
952 |
+
protected function save_zero_total_meta($order) {
|
953 |
+
$token = $this->get_token ( $this->payment_method_token, $order->get_user_id () );
|
954 |
+
$order->set_payment_method_title ( $token->get_payment_method_title () );
|
955 |
+
$order->update_meta_data ( '_wc_stripe_mode', wc_stripe_mode () );
|
956 |
+
$order->update_meta_data ( '_payment_method_token', $token->get_token () );
|
957 |
+
$order->save ();
|
958 |
+
|
959 |
+
if (wcs_stripe_active () && wcs_order_contains_subscription ( $order )) {
|
960 |
+
foreach ( wcs_get_subscriptions_for_order ( $order ) as $subscription ) {
|
961 |
+
/**
|
962 |
+
*
|
963 |
+
* @var WC_Subscription $subscription
|
964 |
+
*/
|
965 |
+
$subscription->set_payment_method_title ( $token->get_payment_method_title () );
|
966 |
+
$subscription->update_meta_data ( '_wc_stripe_mode', wc_stripe_mode () );
|
967 |
+
$subscription->update_meta_data ( '_payment_method_token', $token->get_token () );
|
968 |
+
$subscription->update_meta_data ( '_wc_stripe_customer', wc_stripe_get_customer_id ( $order->get_user_id () ) );
|
969 |
+
$subscription->save ();
|
970 |
+
}
|
971 |
+
}
|
972 |
+
}
|
973 |
+
}
|
includes/abstract/abstract-wc-payment-token-stripe.php
ADDED
@@ -0,0 +1,129 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! defined ( 'ABSPATH' )) {
|
3 |
+
exit (); // Exit if accessed directly.
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
*
|
7 |
+
* @since 3.0.0
|
8 |
+
* @author PaymentPlugins
|
9 |
+
* @package Stripe/Abstract
|
10 |
+
*
|
11 |
+
*/
|
12 |
+
abstract class WC_Payment_Token_Stripe extends WC_Payment_Token {
|
13 |
+
|
14 |
+
protected $object_type = 'payment_token';
|
15 |
+
|
16 |
+
protected $extra_data = array( 'format' => '',
|
17 |
+
'method_type' => '',
|
18 |
+
'environment' => 'production'
|
19 |
+
);
|
20 |
+
|
21 |
+
protected $stripe_data = array();
|
22 |
+
|
23 |
+
/**
|
24 |
+
* The format of the payment method
|
25 |
+
*
|
26 |
+
* @var string
|
27 |
+
*/
|
28 |
+
protected $format = '';
|
29 |
+
|
30 |
+
public function __construct($token = '') {
|
31 |
+
// use reflection to merge all extra data keys.
|
32 |
+
$this->extra_data = array_merge ( $this->extra_data, $this->get_stripe_data ( $this ) );
|
33 |
+
parent::__construct ( $token );
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
*
|
38 |
+
* @param mixed $details
|
39 |
+
*/
|
40 |
+
public abstract function details_to_props($details);
|
41 |
+
|
42 |
+
public function set_format($value) {
|
43 |
+
$this->format = $value;
|
44 |
+
}
|
45 |
+
|
46 |
+
public function set_method_type($value) {
|
47 |
+
$this->set_prop ( 'method_type', $value );
|
48 |
+
}
|
49 |
+
|
50 |
+
public function set_environment($value) {
|
51 |
+
$this->set_prop ( 'environment', $value );
|
52 |
+
}
|
53 |
+
|
54 |
+
public function get_method_type() {
|
55 |
+
return $this->get_prop ( 'method_type' );
|
56 |
+
}
|
57 |
+
|
58 |
+
public function get_format() {
|
59 |
+
return $this->format;
|
60 |
+
}
|
61 |
+
|
62 |
+
public function get_environment() {
|
63 |
+
return $this->get_prop ( 'environment' );
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Return a human readable representation of the payment method.
|
68 |
+
*/
|
69 |
+
public function get_payment_method_title($format = '') {
|
70 |
+
$format = empty ( $format ) ? $this->get_format () : $format;
|
71 |
+
$format = $this->get_formats ()[ $format ][ 'format' ];
|
72 |
+
$data = $this->get_props_data ();
|
73 |
+
return apply_filters ( 'wc_stripe_payment_method_title', str_replace ( array_keys ( $data ), $data, $format ), $this );
|
74 |
+
}
|
75 |
+
|
76 |
+
public function get_props_data() {
|
77 |
+
$data = array();
|
78 |
+
foreach ( $this->extra_data as $k => $v ) {
|
79 |
+
$data[ '{' . $k . '}' ] = $this->get_prop ( $k );
|
80 |
+
}
|
81 |
+
return $data;
|
82 |
+
}
|
83 |
+
|
84 |
+
/**
|
85 |
+
* Returns an array of merged attributes comprised of the $stripe_data property.
|
86 |
+
*
|
87 |
+
* @param object $instance
|
88 |
+
*/
|
89 |
+
public function get_stripe_data($instance) {
|
90 |
+
$data = array();
|
91 |
+
try {
|
92 |
+
$class = new ReflectionClass ( $instance );
|
93 |
+
$props = $class->getDefaultProperties ();
|
94 |
+
if (isset ( $props[ 'stripe_data' ] )) {
|
95 |
+
$data = $props[ 'stripe_data' ];
|
96 |
+
}
|
97 |
+
if (is_subclass_of ( get_parent_class ( $instance ), 'WC_Payment_Token_Stripe' )) {
|
98 |
+
$data = array_merge ( $this->get_stripe_data ( get_parent_class ( $instance ) ), $data );
|
99 |
+
}
|
100 |
+
return $data;
|
101 |
+
} catch ( Exception $e ) {
|
102 |
+
return array();
|
103 |
+
}
|
104 |
+
}
|
105 |
+
|
106 |
+
/**
|
107 |
+
* Return a json array of data that represents the object.
|
108 |
+
*
|
109 |
+
* @return array
|
110 |
+
*/
|
111 |
+
public function to_json() {
|
112 |
+
return apply_filters ( 'wc_stripe_get_' . $this->object_type . '_json', array(
|
113 |
+
'id' => $this->get_id (),
|
114 |
+
'type' => $this->get_type (),
|
115 |
+
'method_type' => $this->get_method_type (),
|
116 |
+
'token' => $this->get_token (),
|
117 |
+
'title' => $this->get_payment_method_title ()
|
118 |
+
) );
|
119 |
+
}
|
120 |
+
|
121 |
+
/**
|
122 |
+
* Return formats used by the token to display a human readable title.
|
123 |
+
*/
|
124 |
+
public abstract function get_formats();
|
125 |
+
|
126 |
+
public function get_html_classes() {
|
127 |
+
return '';
|
128 |
+
}
|
129 |
+
}
|
includes/abstract/abstract-wc-stripe-rest-controller.php
ADDED
@@ -0,0 +1,102 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
*
|
4 |
+
* @author PaymentPlugins
|
5 |
+
* @package Stripe/Abstract
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
abstract class WC_Stripe_Rest_Controller {
|
9 |
+
|
10 |
+
protected $namespace = '';
|
11 |
+
|
12 |
+
/**
|
13 |
+
*
|
14 |
+
* @var WP_Error
|
15 |
+
*/
|
16 |
+
protected $error = null;
|
17 |
+
|
18 |
+
/**
|
19 |
+
*
|
20 |
+
* @param string $route
|
21 |
+
*/
|
22 |
+
protected function register_authenticated_route($route) {
|
23 |
+
$routes = get_option ( 'wc_stripe_authenticated_routes', array() );
|
24 |
+
$route = '/' . trim ( $route, '/' );
|
25 |
+
$routes[ md5 ( $route ) ] = $route;
|
26 |
+
update_option ( 'wc_stripe_authenticated_routes', $routes );
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Register all routes that the controller uses.
|
31 |
+
*/
|
32 |
+
abstract public function register_routes();
|
33 |
+
|
34 |
+
public function rest_uri($uri = '') {
|
35 |
+
$rest_uri = wc_stripe ()->rest_api->rest_uri () . ( ! empty ( $this->namespace ) ? trailingslashit ( $this->namespace ) : '' );
|
36 |
+
if ($uri) {
|
37 |
+
$rest_uri = trailingslashit ( $rest_uri ) . $uri;
|
38 |
+
}
|
39 |
+
return $rest_uri;
|
40 |
+
}
|
41 |
+
|
42 |
+
public function rest_url($uri = '') {
|
43 |
+
$rest_url = wc_stripe ()->rest_api->rest_url () . ( ! empty ( $this->namespace ) ? trailingslashit ( $this->namespace ) : '' );
|
44 |
+
if ($uri) {
|
45 |
+
$rest_url = trailingslashit ( $rest_url ) . $uri;
|
46 |
+
}
|
47 |
+
return $rest_url;
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
*
|
52 |
+
* @param WP_REST_Request $request
|
53 |
+
*/
|
54 |
+
public function admin_permission_check($request) {
|
55 |
+
if (! current_user_can ( 'administrator' )) {
|
56 |
+
return new WP_Error ( 'permission-error', __ ( 'You do not have permissions to access this resource.', 'woo-stripe' ), array(
|
57 |
+
'status' => 403
|
58 |
+
) );
|
59 |
+
}
|
60 |
+
|
61 |
+
return true;
|
62 |
+
}
|
63 |
+
|
64 |
+
protected function get_error_messages() {
|
65 |
+
return $this->get_messages ( 'error' );
|
66 |
+
}
|
67 |
+
|
68 |
+
protected function get_messages($types = 'all') {
|
69 |
+
$notices = wc_get_notices ();
|
70 |
+
if ($types !== 'all') {
|
71 |
+
$types = ( array ) $types;
|
72 |
+
foreach ( $notices as $type => $notice ) {
|
73 |
+
if (! in_array ( $type, $types )) {
|
74 |
+
unset ( $notices[ $type ] );
|
75 |
+
}
|
76 |
+
}
|
77 |
+
}
|
78 |
+
wc_set_notices ( $notices );
|
79 |
+
ob_start ();
|
80 |
+
$messages = wc_print_notices ();
|
81 |
+
return ob_get_clean ();
|
82 |
+
}
|
83 |
+
|
84 |
+
/**
|
85 |
+
*
|
86 |
+
* @param WP_Error $error
|
87 |
+
*/
|
88 |
+
protected function add_validation_error($error) {
|
89 |
+
$data = $error->get_error_data ();
|
90 |
+
if (! is_array ( $data )) {
|
91 |
+
$data = [];
|
92 |
+
}
|
93 |
+
$error->add_data ( array_merge ( $data, [
|
94 |
+
'status' => 200
|
95 |
+
] ) );
|
96 |
+
$this->error = $error;
|
97 |
+
add_filter ( 'rest_request_before_callbacks', function ($response) {
|
98 |
+
return $this->error ? $this->error : response;
|
99 |
+
} );
|
100 |
+
return $error;
|
101 |
+
}
|
102 |
+
}
|
includes/abstract/abstract-wc-stripe-settings.php
ADDED
@@ -0,0 +1,90 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
*
|
4 |
+
* @author PaymentPlugins
|
5 |
+
* @package Stripe/Abstract
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
abstract class WC_Stripe_Settings_API extends WC_Settings_API {
|
9 |
+
|
10 |
+
protected $tab_title;
|
11 |
+
|
12 |
+
public function __construct() {
|
13 |
+
$this->init_form_fields ();
|
14 |
+
$this->init_settings ();
|
15 |
+
$this->hooks ();
|
16 |
+
}
|
17 |
+
|
18 |
+
public function hooks() {
|
19 |
+
add_action ( 'wc_stripe_localize_' . $this->id . '_settings', array(
|
20 |
+
$this, 'localize_settings'
|
21 |
+
) );
|
22 |
+
}
|
23 |
+
|
24 |
+
public function admin_nav_tab($tabs) {
|
25 |
+
$tabs[ $this->id ] = $this->tab_title;
|
26 |
+
return $tabs;
|
27 |
+
}
|
28 |
+
|
29 |
+
public function admin_options() {
|
30 |
+
$this->output_settings_nav ();
|
31 |
+
printf ( '<input type="hidden" id="wc_stripe_prefix" name="wc_stripe_prefix" value="%1$s"/>', $this->get_prefix () );
|
32 |
+
echo '<div class="wc-stripe-settings-container ' . $this->id . '">';
|
33 |
+
parent::admin_options ();
|
34 |
+
echo '</div>';
|
35 |
+
}
|
36 |
+
|
37 |
+
public function output_settings_nav() {
|
38 |
+
include wc_stripe ()->plugin_path () . 'includes/admin/views/html-settings-nav.php';
|
39 |
+
}
|
40 |
+
|
41 |
+
public function get_prefix() {
|
42 |
+
return $this->plugin_id . $this->id . '_';
|
43 |
+
}
|
44 |
+
|
45 |
+
public function localize_settings() {
|
46 |
+
return $this->settings;
|
47 |
+
}
|
48 |
+
|
49 |
+
public function get_custom_attribute_html($attribs) {
|
50 |
+
if (! empty ( $attribs[ 'custom_attributes' ] ) && is_array ( $attribs[ 'custom_attributes' ] )) {
|
51 |
+
foreach ( $attribs[ 'custom_attributes' ] as $k => $v ) {
|
52 |
+
if (is_array ( $v )) {
|
53 |
+
$attribs[ 'custom_attributes' ][ $k ] = htmlspecialchars ( wp_json_encode ( $v ) );
|
54 |
+
}
|
55 |
+
}
|
56 |
+
}
|
57 |
+
return parent::get_custom_attribute_html ( $attribs );
|
58 |
+
}
|
59 |
+
|
60 |
+
public function is_active($key) {
|
61 |
+
return $this->get_option ( $key ) === 'yes';
|
62 |
+
}
|
63 |
+
|
64 |
+
public function generate_description_html($key, $data) {
|
65 |
+
$field_key = $this->get_field_key ( $key );
|
66 |
+
$data = wp_parse_args ( $data, array(
|
67 |
+
'class' => '', 'style' => '',
|
68 |
+
'description' => ''
|
69 |
+
) );
|
70 |
+
ob_start ();
|
71 |
+
include wc_stripe ()->plugin_path () . 'includes/admin/views/html-description.php';
|
72 |
+
return ob_get_clean ();
|
73 |
+
}
|
74 |
+
|
75 |
+
public function generate_paragraph_html($key, $data) {
|
76 |
+
$field_key = $this->get_field_key ( $key );
|
77 |
+
$defaults = array( 'title' => '', 'label' => '',
|
78 |
+
'class' => '', 'css' => '', 'type' => 'text',
|
79 |
+
'desc_tip' => false, 'description' => '',
|
80 |
+
'custom_attributes' => array()
|
81 |
+
);
|
82 |
+
$data = wp_parse_args ( $data, $defaults );
|
83 |
+
if (! $data[ 'label' ]) {
|
84 |
+
$data[ 'label' ] = $data[ 'title' ];
|
85 |
+
}
|
86 |
+
ob_start ();
|
87 |
+
include wc_stripe ()->plugin_path () . 'includes/admin/views/html-paragraph.php';
|
88 |
+
return ob_get_clean ();
|
89 |
+
}
|
90 |
+
}
|
includes/admin/class-wc-stripe-admin-assets.php
ADDED
@@ -0,0 +1,78 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @package Stripe/Admin
|
4 |
+
*/
|
5 |
+
class WC_Stripe_Admin_Assets {
|
6 |
+
|
7 |
+
public function __construct() {
|
8 |
+
add_action ( 'admin_enqueue_scripts', array(
|
9 |
+
$this, 'enqueue_scripts'
|
10 |
+
) );
|
11 |
+
|
12 |
+
add_action ( 'wp_print_scripts', array( __CLASS__,
|
13 |
+
'localize_scripts'
|
14 |
+
) );
|
15 |
+
|
16 |
+
add_action ( 'admin_footer', array( __CLASS__,
|
17 |
+
'localize_scripts'
|
18 |
+
) );
|
19 |
+
add_action ( 'wc_stripe_localize_stripe_advanced_settings', array(
|
20 |
+
__CLASS__, 'localize_advanced_scripts'
|
21 |
+
) );
|
22 |
+
}
|
23 |
+
|
24 |
+
public function enqueue_scripts() {
|
25 |
+
global $current_section, $wc_stripe_subsection;
|
26 |
+
$screen = get_current_screen ();
|
27 |
+
$screen_id = $screen ? $screen->id : '';
|
28 |
+
$js_path = wc_stripe ()->assets_url () . 'js/';
|
29 |
+
$css_path = wc_stripe ()->assets_url () . 'css/';
|
30 |
+
|
31 |
+
wp_register_script ( 'wc-stripe-admin-settings', $js_path . 'admin/admin-settings.js', array(
|
32 |
+
'jquery', 'jquery-blockui'
|
33 |
+
), wc_stripe ()->version, true );
|
34 |
+
wp_register_script ( 'wc-stripe-meta-boxes-order', $js_path . 'admin/meta-boxes-order.js', array(
|
35 |
+
'jquery', 'jquery-blockui'
|
36 |
+
), wc_stripe ()->version, true );
|
37 |
+
wp_register_script ( 'wc-stripe-meta-boxes-subscription', $js_path . 'admin/meta-boxes-subscription.js', array(
|
38 |
+
'jquery', 'jquery-blockui'
|
39 |
+
), wc_stripe ()->version, true );
|
40 |
+
wp_register_style ( 'wc-stripe-admin-style', $css_path . 'admin/admin.css', array(), wc_stripe ()->version );
|
41 |
+
|
42 |
+
if (strpos ( $screen_id, 'wc-settings' ) !== false) {
|
43 |
+
if (isset ( $_REQUEST[ 'section' ] ) && preg_match ( '/stripe_[\w]*/', $_REQUEST[ 'section' ] )) {
|
44 |
+
wp_enqueue_script ( 'wc-stripe-admin-settings' );
|
45 |
+
wp_enqueue_style ( 'wc-stripe-admin-style' );
|
46 |
+
wp_enqueue_script ( 'stripe-help-widget', $js_path . 'admin/help-widget.js', array(), wc_stripe ()->version (), true );
|
47 |
+
;
|
48 |
+
wp_localize_script ( 'wc-stripe-admin-settings', 'wc_stripe_setting_params', [
|
49 |
+
'routes' => [
|
50 |
+
'apple_domain' => wc_stripe ()->rest_api->settings->rest_url ( 'apple-domain' )
|
51 |
+
],
|
52 |
+
'rest_nonce' => wp_create_nonce ( 'wp_rest' )
|
53 |
+
] );
|
54 |
+
}
|
55 |
+
}
|
56 |
+
if ($screen_id === 'shop_order') {
|
57 |
+
wp_enqueue_style ( 'wc-stripe-admin-style' );
|
58 |
+
}
|
59 |
+
}
|
60 |
+
|
61 |
+
public static function localize_scripts() {
|
62 |
+
global $current_section, $wc_stripe_subsection;
|
63 |
+
if (! empty ( $current_section )) {
|
64 |
+
$wc_stripe_subsection = isset ( $_GET[ 'sub_section' ] ) ? sanitize_title ( $_GET[ 'sub_section' ] ) : 'braintree_merchant_account';
|
65 |
+
do_action ( 'wc_stripe_localize_' . $current_section . '_settings' );
|
66 |
+
// added for WC 3.0.0 compatability.
|
67 |
+
remove_action ( 'admin_footer', array(
|
68 |
+
__CLASS__, 'localize_scripts'
|
69 |
+
) );
|
70 |
+
}
|
71 |
+
}
|
72 |
+
|
73 |
+
public static function localize_advanced_scripts() {
|
74 |
+
global $current_section, $wc_stripe_subsection;
|
75 |
+
do_action ( 'wc_stripe_localize_' . $wc_stripe_subsection . '_settings' );
|
76 |
+
}
|
77 |
+
}
|
78 |
+
new WC_Stripe_Admin_Assets ();
|
includes/admin/class-wc-stripe-admin-menus.php
ADDED
@@ -0,0 +1,48 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
*
|
4 |
+
* @since 3.0.0
|
5 |
+
* @package Stripe/Admin
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
class WC_Stripe_Admin_Menus {
|
9 |
+
|
10 |
+
public static function init() {
|
11 |
+
add_action ( 'admin_menu', array( __CLASS__,
|
12 |
+
'admin_menu'
|
13 |
+
), 10 );
|
14 |
+
add_action ( 'admin_menu', array( __CLASS__,
|
15 |
+
'sub_menu'
|
16 |
+
), 20 );
|
17 |
+
add_action ( 'admin_head', array( __CLASS__,
|
18 |
+
'remove_submenu'
|
19 |
+
) );
|
20 |
+
}
|
21 |
+
|
22 |
+
public static function admin_menu() {
|
23 |
+
add_menu_page ( __ ( 'Stripe Gateway', 'woo-stripe' ), __ ( 'Stripe Gateway', 'woo-stripe' ), 'administrator', 'wc_stripe', null, null, '7.458' );
|
24 |
+
}
|
25 |
+
|
26 |
+
public static function sub_menu() {
|
27 |
+
add_submenu_page ( 'wc_stripe', __ ( 'Settings', 'woo-stripe' ), __ ( 'Settings', 'woo-stripe' ), 'administrator', admin_url ( 'admin.php?page=wc-settings&tab=checkout§ion=stripe_api' ) );
|
28 |
+
add_submenu_page ( 'wc_stripe', __ ( 'Logs', 'woo-stripe' ), __ ( 'Logs', 'woo-stripe' ), 'administrator', admin_url ( 'admin.php?page=wc-status&tab=logs' ) );
|
29 |
+
/*
|
30 |
+
* add_submenu_page ( 'wc_stripe', __ ( 'Data Migration', 'woo-stripe' ), __ ( 'Data Migration', 'woo-stripe' ), 'administrator', 'wc-stripe-data-migration', array(
|
31 |
+
* __CLASS__, 'data_migration_page'
|
32 |
+
* ) );
|
33 |
+
*/
|
34 |
+
add_submenu_page ( 'wc_stripe', __ ( 'Documentation', 'woo-stripe' ), __ ( 'Documentation', 'woo-stripe' ), 'administrator', 'https://docs.paymentplugins.com/wc-stripe/config' );
|
35 |
+
}
|
36 |
+
|
37 |
+
public static function remove_submenu() {
|
38 |
+
global $submenu;
|
39 |
+
if (isset ( $submenu[ 'wc_stripe' ] )) {
|
40 |
+
unset ( $submenu[ 'wc_stripe' ][ 0 ] );
|
41 |
+
}
|
42 |
+
}
|
43 |
+
|
44 |
+
public static function data_migration_page() {
|
45 |
+
include 'views/html-data-migration.php';
|
46 |
+
}
|
47 |
+
}
|
48 |
+
WC_Stripe_Admin_Menus::init ();
|
includes/admin/class-wc-stripe-admin-settings.php
ADDED
@@ -0,0 +1,82 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @package Stripe/Admin
|
4 |
+
* @author User
|
5 |
+
*
|
6 |
+
*/
|
7 |
+
class WC_Stripe_Admin_Settings {
|
8 |
+
|
9 |
+
public static function init() {
|
10 |
+
add_action ( 'woocommerce_settings_checkout', array(
|
11 |
+
__CLASS__, 'output'
|
12 |
+
) );
|
13 |
+
add_action ( 'woocommerce_settings_checkout_stripe_advanced', array(
|
14 |
+
__CLASS__, 'output_advanced_settings'
|
15 |
+
) );
|
16 |
+
add_action ( 'woocommerce_settings_checkout_stripe_local_gateways', array(
|
17 |
+
__CLASS__, 'output_local_gateways'
|
18 |
+
) );
|
19 |
+
add_action ( 'woocommerce_update_options_checkout_stripe_local_gateways', array(
|
20 |
+
__CLASS__, 'save_local_gateway'
|
21 |
+
) );
|
22 |
+
add_filter ( 'wc_stripe_settings_nav_tabs', array(
|
23 |
+
__CLASS__, 'admin_settings_tabs'
|
24 |
+
), 20 );
|
25 |
+
add_action ( 'wc_stripe_settings_before_options_stripe_advanced', array(
|
26 |
+
__CLASS__, 'before_options'
|
27 |
+
) );
|
28 |
+
add_action ( 'wc_stripe_settings_before_options_stripe_local_gateways', array(
|
29 |
+
__CLASS__, 'before_options'
|
30 |
+
) );
|
31 |
+
add_action ( 'woocommerce_update_options_checkout', array(
|
32 |
+
__CLASS__, 'deprecated_save'
|
33 |
+
) );
|
34 |
+
}
|
35 |
+
|
36 |
+
public static function output() {
|
37 |
+
global $current_section;
|
38 |
+
do_action ( 'woocommerce_settings_checkout_' . $current_section );
|
39 |
+
}
|
40 |
+
|
41 |
+
public static function output_advanced_settings() {
|
42 |
+
self::output_custom_section ( '' );
|
43 |
+
}
|
44 |
+
|
45 |
+
public static function output_local_gateways() {
|
46 |
+
self::output_custom_section ( 'stripe_ideal' );
|
47 |
+
}
|
48 |
+
|
49 |
+
public static function output_custom_section($sub_section = '') {
|
50 |
+
global $current_section, $wc_stripe_subsection;
|
51 |
+
$wc_stripe_subsection = isset ( $_GET[ 'stripe_sub_section' ] ) ? sanitize_title ( $_GET[ 'stripe_sub_section' ] ) : $sub_section;
|
52 |
+
do_action ( 'woocommerce_settings_checkout_' . $current_section . '_' . $wc_stripe_subsection );
|
53 |
+
}
|
54 |
+
|
55 |
+
public static function save_local_gateway() {
|
56 |
+
self::save_custom_section ( 'stripe_ideal' );
|
57 |
+
}
|
58 |
+
|
59 |
+
public static function save_custom_section($sub_section = '') {
|
60 |
+
global $current_section, $wc_stripe_subsection;
|
61 |
+
$wc_stripe_subsection = isset ( $_GET[ 'stripe_sub_section' ] ) ? sanitize_title ( $_GET[ 'stripe_sub_section' ] ) : $sub_section;
|
62 |
+
do_action ( 'woocommerce_update_options_checkout_' . $current_section . '_' . $wc_stripe_subsection );
|
63 |
+
}
|
64 |
+
|
65 |
+
public static function deprecated_save() {
|
66 |
+
global $current_section;
|
67 |
+
if ($current_section && ! did_action ( 'woocommerce_update_options_checkout_' . $current_section )) {
|
68 |
+
do_action ( 'woocommerce_update_options_checkout_' . $current_section );
|
69 |
+
}
|
70 |
+
}
|
71 |
+
|
72 |
+
public static function admin_settings_tabs($tabs) {
|
73 |
+
$tabs[ 'stripe_local_gateways' ] = __ ( 'Local Gateways', 'woo-stripe' );
|
74 |
+
return $tabs;
|
75 |
+
}
|
76 |
+
|
77 |
+
public static function before_options() {
|
78 |
+
global $current_section, $wc_stripe_subsection;
|
79 |
+
do_action ( 'wc_stripe_settings_before_options_' . $current_section . '_' . $wc_stripe_subsection );
|
80 |
+
}
|
81 |
+
}
|
82 |
+
WC_Stripe_Admin_Settings::init ();
|
includes/admin/class-wc-stripe-admin-user-edit.php
ADDED
@@ -0,0 +1,132 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @since 3.0.0
|
4 |
+
* @package Stripe/Admin
|
5 |
+
* @author PaymentPlugins
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
class WC_Stripe_Admin_User_Edit {
|
9 |
+
|
10 |
+
public static function init() {
|
11 |
+
add_action ( 'edit_user_profile', array(
|
12 |
+
__CLASS__, 'output'
|
13 |
+
) );
|
14 |
+
add_action ( 'show_user_profile', array(
|
15 |
+
__CLASS__, 'output'
|
16 |
+
) );
|
17 |
+
add_action ( 'edit_user_profile_update', array(
|
18 |
+
__CLASS__, 'save'
|
19 |
+
) );
|
20 |
+
add_action ( 'personal_options_update', array(
|
21 |
+
__CLASS__, 'save'
|
22 |
+
) );
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
*
|
27 |
+
* @param WP_User $user
|
28 |
+
*/
|
29 |
+
public static function output($user) {
|
30 |
+
// enquue scripts
|
31 |
+
wp_enqueue_style ( 'wc-stripe-admin-style' );
|
32 |
+
|
33 |
+
// get payment methods for all environments.
|
34 |
+
$tokens = WC_Payment_Tokens::get_customer_tokens ( $user->ID );
|
35 |
+
$payment_methods = array( 'live' => array(),
|
36 |
+
'test' => array()
|
37 |
+
);
|
38 |
+
foreach ( $tokens as $token ) {
|
39 |
+
if ($token instanceof WC_Payment_Token_Stripe) {
|
40 |
+
if ('live' === $token->get_environment ()) {
|
41 |
+
$payment_methods[ 'live' ][] = $token;
|
42 |
+
} else {
|
43 |
+
$payment_methods[ 'test' ][] = $token;
|
44 |
+
}
|
45 |
+
}
|
46 |
+
}
|
47 |
+
include wc_stripe ()->plugin_path () . 'includes/admin/views/html-user-profile.php';
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
*
|
52 |
+
* @param int $user_id
|
53 |
+
*/
|
54 |
+
public static function save($user_id) {
|
55 |
+
$modes = array( 'test', 'live'
|
56 |
+
);
|
57 |
+
if (isset ( $_POST[ 'wc_stripe_live_id' ] )) {
|
58 |
+
$old_live_id = wc_stripe_get_customer_id ( $user_id, 'live' );
|
59 |
+
wc_stripe_save_customer ( wc_clean ( $_POST[ 'wc_stripe_live_id' ] ), $user_id, 'live' );
|
60 |
+
}
|
61 |
+
if (isset ( $_POST[ 'wc_stripe_test_id' ] )) {
|
62 |
+
$old_test_id = wc_stripe_get_customer_id ( $user_id, 'test' );
|
63 |
+
wc_stripe_save_customer ( wc_clean ( $_POST[ 'wc_stripe_test_id' ] ), $user_id, 'test' );
|
64 |
+
}
|
65 |
+
|
66 |
+
// check if admin want's to delete any payment methods
|
67 |
+
foreach ( $modes as $mode ) {
|
68 |
+
if (isset ( $_POST[ $mode . '_payment_method_actions' ] )) {
|
69 |
+
switch (wc_clean ( $_POST[ $mode . '_payment_method_actions' ] )) {
|
70 |
+
case 'delete' :
|
71 |
+
if (isset ( $_POST[ 'payment_methods' ], $_POST[ 'payment_methods' ][ $mode ] )) {
|
72 |
+
$tokens = $_POST[ 'payment_methods' ][ $mode ];
|
73 |
+
foreach ( $tokens as $token_id ) {
|
74 |
+
WC_Payment_Tokens::delete ( absint ( $token_id ) );
|
75 |
+
}
|
76 |
+
}
|
77 |
+
break;
|
78 |
+
}
|
79 |
+
}
|
80 |
+
}
|
81 |
+
|
82 |
+
$changes = array(
|
83 |
+
'live' => $old_live_id !== wc_stripe_get_customer_id ( $user_id, 'live' ),
|
84 |
+
'test' => $old_test_id !== wc_stripe_get_customer_id ( $user_id, 'test' )
|
85 |
+
);
|
86 |
+
$gateway = new WC_Stripe_Gateway ();
|
87 |
+
|
88 |
+
// this will prevent the payment method from being deleted in Stripe. We only want to remove the tokens
|
89 |
+
// from the WC tables.
|
90 |
+
remove_action ( 'woocommerce_payment_token_deleted', 'wc_stripe_woocommerce_payment_token_deleted', 10 );
|
91 |
+
|
92 |
+
// if the value has changed, then remove old payment methods and import new ones.
|
93 |
+
foreach ( $changes as $mode => $change ) {
|
94 |
+
if ($change) {
|
95 |
+
// Delete all current payment methods in WC then save new ones.
|
96 |
+
$tokens = WC_Payment_Tokens::get_customer_tokens ( $user_id );
|
97 |
+
foreach ( $tokens as $token ) {
|
98 |
+
if ($token instanceof WC_Payment_Token_Stripe) {
|
99 |
+
if ($mode === $token->get_environment ()) {
|
100 |
+
WC_Payment_Tokens::delete ( $token->get_id () );
|
101 |
+
}
|
102 |
+
}
|
103 |
+
}
|
104 |
+
// import payment methods from Stripe.
|
105 |
+
$payment_methods = $gateway->fetch_payment_methods ( wc_stripe_get_customer_id ( $user_id, $mode ), $mode );
|
106 |
+
if (! is_wp_error ( $payment_methods )) {
|
107 |
+
$gateway_id = '';
|
108 |
+
foreach ( $payment_methods->data as $payment_method ) {
|
109 |
+
if (strpos ( $payment_method->id, 'pm_' ) !== false) {
|
110 |
+
$gateway_id = 'stripe_cc';
|
111 |
+
}
|
112 |
+
if (strpos ( $payment_method->id, 'card_' ) !== false) {
|
113 |
+
$gateway_id = 'stripe_googlepay';
|
114 |
+
}
|
115 |
+
if ($gateway_id) {
|
116 |
+
/**
|
117 |
+
*
|
118 |
+
* @var WC_Payment_Gateway_Stripe $gateway
|
119 |
+
*/
|
120 |
+
$gateway = WC ()->payment_gateways ()->payment_gateways ()[ $gateway_id ];
|
121 |
+
$token = $gateway->get_payment_token ( $payment_method->id, $payment_method );
|
122 |
+
$token->set_environment ( $mode );
|
123 |
+
$token->set_user_id ( $user_id );
|
124 |
+
$token->save ();
|
125 |
+
}
|
126 |
+
}
|
127 |
+
}
|
128 |
+
}
|
129 |
+
}
|
130 |
+
}
|
131 |
+
}
|
132 |
+
WC_Stripe_Admin_User_Edit::init ();
|
includes/admin/meta-boxes/class-wc-stripe-admin-order-metaboxes.php
ADDED
@@ -0,0 +1,99 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @package Stripe/Admin
|
4 |
+
* @author PaymentPlugins
|
5 |
+
*
|
6 |
+
*/
|
7 |
+
class WC_Stripe_Admin_Order_Metaboxes {
|
8 |
+
|
9 |
+
public static function init() {
|
10 |
+
add_action ( 'add_meta_boxes', array( __CLASS__,
|
11 |
+
'add_meta_boxes'
|
12 |
+
), 10, 2 );
|
13 |
+
}
|
14 |
+
|
15 |
+
/**
|
16 |
+
*
|
17 |
+
* @param string $post_type
|
18 |
+
* @param WP_Post $post
|
19 |
+
*/
|
20 |
+
public static function add_meta_boxes($post_type, $post) {
|
21 |
+
// only add meta box if shop_order and Stripe gateway was used.
|
22 |
+
if ($post_type !== 'shop_order') {
|
23 |
+
return;
|
24 |
+
}
|
25 |
+
|
26 |
+
add_action ( 'woocommerce_admin_order_data_after_order_details', array(
|
27 |
+
__CLASS__, 'pay_order_section'
|
28 |
+
) );
|
29 |
+
|
30 |
+
$order = wc_get_order ( $post->ID );
|
31 |
+
$payment_method = $order->get_payment_method ();
|
32 |
+
if ($payment_method) {
|
33 |
+
$gateways = WC ()->payment_gateways ()->payment_gateways ();
|
34 |
+
if (isset ( $gateways[ $payment_method ] )) {
|
35 |
+
$gateway = WC ()->payment_gateways ()->payment_gateways ()[ $payment_method ];
|
36 |
+
if ($gateway instanceof WC_Payment_Gateway_Stripe) {
|
37 |
+
add_action ( 'woocommerce_admin_order_data_after_billing_address', array(
|
38 |
+
__CLASS__, 'charge_data_view'
|
39 |
+
) );
|
40 |
+
}
|
41 |
+
}
|
42 |
+
}
|
43 |
+
self::enqueue_scripts ();
|
44 |
+
}
|
45 |
+
|
46 |
+
/**
|
47 |
+
*
|
48 |
+
* @param WC_Order $order
|
49 |
+
*/
|
50 |
+
public static function charge_data_view($order) {
|
51 |
+
if (( $transaction_id = $order->get_transaction_id () )) {
|
52 |
+
include 'views/html-order-charge-data.php';
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
*
|
58 |
+
* @param WC_Order $order
|
59 |
+
*/
|
60 |
+
public static function pay_order_section($order) {
|
61 |
+
if ($order->get_type () === 'shop_order' && $order->has_status ( 'pending' )) {
|
62 |
+
include 'views/html-order-pay.php';
|
63 |
+
$payment_methods = array();
|
64 |
+
foreach ( WC ()->payment_gateways ()->payment_gateways () as $gateway ) {
|
65 |
+
if ($gateway instanceof WC_Payment_Gateway_Stripe) {
|
66 |
+
$payment_methods = array_merge ( $payment_methods, WC_Payment_Tokens::get_customer_tokens ( $order->get_user_id (), $gateway->id ) );
|
67 |
+
}
|
68 |
+
}
|
69 |
+
wp_enqueue_script ( 'wc-stripe-elements', 'https://js.stripe.com/v3/', array(), wc_stripe ()->version, true );
|
70 |
+
wp_localize_script ( 'wc-stripe-elements', 'wc_stripe_order_pay_params', array(
|
71 |
+
'api_key' => wc_stripe_get_publishable_key (),
|
72 |
+
'payment_methods' => array_map ( function ($payment_method) {
|
73 |
+
return $payment_method->to_json ();
|
74 |
+
}, $payment_methods ),
|
75 |
+
'order_status' => $order->get_status ()
|
76 |
+
) );
|
77 |
+
wp_enqueue_script ( 'wc-stripe-admin-modals', wc_stripe ()->assets_url ( 'js/admin/modals.js' ), array(
|
78 |
+
'wc-backbone-modal', 'jquery-blockui'
|
79 |
+
), wc_stripe ()->version, true );
|
80 |
+
}
|
81 |
+
}
|
82 |
+
|
83 |
+
public static function enqueue_scripts() {
|
84 |
+
wp_enqueue_script ( 'wc-stripe-order-metabox', wc_stripe ()->assets_url ( 'js/admin/meta-boxes-order.js' ), array(
|
85 |
+
'jquery', 'jquery-blockui'
|
86 |
+
), wc_stripe ()->version (), true );
|
87 |
+
|
88 |
+
wp_localize_script ( 'wc-stripe-order-metabox', 'wc_stripe_order_metabox_params', array(
|
89 |
+
'_wpnonce' => wp_create_nonce ( 'wp_rest' ),
|
90 |
+
'routes' => array(
|
91 |
+
'charge_view' => wc_stripe ()->rest_api->order_actions->rest_url ( 'charge-view' ),
|
92 |
+
'capture' => wc_stripe ()->rest_api->order_actions->rest_url ( 'capture' ),
|
93 |
+
'void' => wc_stripe ()->rest_api->order_actions->rest_url ( 'void' ),
|
94 |
+
'pay' => wc_stripe ()->rest_api->order_actions->rest_url ( 'pay' )
|
95 |
+
)
|
96 |
+
) );
|
97 |
+
}
|
98 |
+
}
|
99 |
+
WC_Stripe_Admin_Order_Metaboxes::init ();
|
includes/admin/meta-boxes/views/html-charge-data-subview.php
ADDED
@@ -0,0 +1,88 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var \Stripe\Charge $charge
|
4 |
+
*/
|
5 |
+
?>
|
6 |
+
<?php if(!$order->has_status('cancelled')):?>
|
7 |
+
<?php if($charge->status === 'pending' || ($charge->status === 'succeeded' && !$charge->captured)):?>
|
8 |
+
<div class="charge-actions">
|
9 |
+
<h2><?php _e('Actions', 'woo-stripe')?></h2>
|
10 |
+
<div>
|
11 |
+
<input type="text" class="wc_input_price" name="capture_amount"
|
12 |
+
value="<?php echo $order->get_total()?>"
|
13 |
+
placeholder="<?php _e('capture amount', 'woo-stripe')?>" />
|
14 |
+
<button class="button button-secondary do-api-capture"><?php _e('Capture', 'woo-stripe')?></button>
|
15 |
+
<button class="button button-secondary do-api-cancel"><?php _e('Void', 'woo-stripe')?></button>
|
16 |
+
</div>
|
17 |
+
</div>
|
18 |
+
<?php endif;?>
|
19 |
+
<?php endif;?>
|
20 |
+
<div class="data-container">
|
21 |
+
<div class="charge-data column-6">
|
22 |
+
<h3><?php _e('Charge Data', 'woo-stripe')?></h3>
|
23 |
+
<div class="metadata">
|
24 |
+
<label><?php _e('Mode', 'woo-stripe')?></label>:
|
25 |
+
<?php $charge->livemode ? _e('Live', 'woo-stripe') : _e('Test', 'wo0o-stripe')?>
|
26 |
+
</div>
|
27 |
+
<div class="metadata">
|
28 |
+
<label><?php _e('Status', 'woo-stripe')?></label>:
|
29 |
+
<?php echo $charge->status;?>
|
30 |
+
</div>
|
31 |
+
<?php if(($payment_intent_id = $order->get_meta('_payment_intent_id', true))):?>
|
32 |
+
<div class="metadata">
|
33 |
+
<label><?php _e('Payment Intent', 'woo-stripe')?></label>:
|
34 |
+
<?php echo $payment_intent_id?>
|
35 |
+
</div>
|
36 |
+
<?php endif;?>
|
37 |
+
<?php if(isset($charge->customer)):?>
|
38 |
+
<div class="metadata">
|
39 |
+
<label><?php _e('Customer', 'woo-stripe')?></label>:
|
40 |
+
<?php echo $charge->customer?>
|
41 |
+
</div>
|
42 |
+
<?php endif;?>
|
43 |
+
</div>
|
44 |
+
<div class="payment-data column-6">
|
45 |
+
<h3><?php _e('Payment Method', 'woo-stripe')?></h3>
|
46 |
+
<div class="metadata">
|
47 |
+
<label><?php _e('Title', 'woo-stripe')?></label>:
|
48 |
+
<?php echo $order->get_payment_method_title()?>
|
49 |
+
</div>
|
50 |
+
<div class="metadata">
|
51 |
+
<label><?php _e('Type', 'woo-stripe')?></label>:
|
52 |
+
<?php echo $charge->payment_method_details->type;?>
|
53 |
+
</div>
|
54 |
+
<?php if(isset($charge->payment_method_details->card)):?>
|
55 |
+
<div class="metadata">
|
56 |
+
<label><?php _e('Exp', 'woo-stripe')?>: </label>
|
57 |
+
<?php printf('%02d / %s', $charge->payment_method_details->card->exp_month, $charge->payment_method_details->card->exp_year)?>
|
58 |
+
</div>
|
59 |
+
<div class="metadata">
|
60 |
+
<label><?php _e('Fingerprint', 'woo-stripe')?>: </label>
|
61 |
+
<?php echo $charge->payment_method_details->card->fingerprint;?>
|
62 |
+
</div>
|
63 |
+
<div class="metadata">
|
64 |
+
<label><?php _e('CVC check', 'woo-stripe')?>: </label>
|
65 |
+
<?php echo $charge->payment_method_details->card->checks->cvc_check;?>
|
66 |
+
</div>
|
67 |
+
<div class="metadata">
|
68 |
+
<label><?php _e('Postal check', 'woo-stripe')?>: </label>
|
69 |
+
<?php echo $charge->payment_method_details->card->checks->address_postal_code_check;?>
|
70 |
+
</div>
|
71 |
+
<div class="metadata">
|
72 |
+
<label><?php _e('Street check', 'woo-stripe')?>: </label>
|
73 |
+
<?php echo $charge->payment_method_details->card->checks->address_line1_check;?>
|
74 |
+
</div>
|
75 |
+
<?php endif;?>
|
76 |
+
</div>
|
77 |
+
<div class="payment-data column-6">
|
78 |
+
<h3><?php _e('Riska Data', 'woo-stripe')?></h3>
|
79 |
+
<div class="metadata">
|
80 |
+
<label><?php _e('Score', 'woo-stripe')?></label>
|
81 |
+
<?php echo $charge->outcome->risk_score;?>
|
82 |
+
</div>
|
83 |
+
<div class="metadata">
|
84 |
+
<label><?php _e('Level', 'woo-stripe')?></label>
|
85 |
+
<?php echo $charge->outcome->risk_level;?>
|
86 |
+
</div>
|
87 |
+
</div>
|
88 |
+
</div>
|
includes/admin/meta-boxes/views/html-order-actions.php
ADDED
@@ -0,0 +1,47 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<p><b><?php _e('Charge Status', 'woo-stripe')?>:</b> <?php echo ucfirst(str_replace('_', ' ', $status))?></p>
|
2 |
+
<?php if($status === 'pending' && $order->get_meta('_authorization_exp_at')):
|
3 |
+
$date = new DateTime('@' . $order->get_meta('_authorization_exp_at'));
|
4 |
+
?>
|
5 |
+
<p><b><?php _e('Authorization Expires', 'woo-stripe')?>:</b> <?php echo date_format($date, 'M d Y, h:i A e')?>
|
6 |
+
<?php endif;?>
|
7 |
+
<?php
|
8 |
+
switch ($status) {
|
9 |
+
case 'succeeded' :
|
10 |
+
case 'faied' :
|
11 |
+
?>
|
12 |
+
<p><?php _e ( 'There are no actions available at this time.', 'woo-stripe' )?></p>
|
13 |
+
<?php
|
14 |
+
return;
|
15 |
+
}
|
16 |
+
$can_settle = $status === 'pending';
|
17 |
+
?>
|
18 |
+
<div id="wc-stripe-actions">
|
19 |
+
<div class="wc-stripe-buttons-container">
|
20 |
+
<?php if($can_settle):?>
|
21 |
+
<button type="button" class="button capture-charge"><?php esc_html_e('Capture Charge', 'woo-stripe')?></button>
|
22 |
+
<?php endif;?>
|
23 |
+
</div>
|
24 |
+
<div class="wc-order-data-row wc-order-capture-charge"
|
25 |
+
style="display: none;">
|
26 |
+
<div class="wc-order-capture-charge-container">
|
27 |
+
<table class="wc-order-capture-charge">
|
28 |
+
<tr>
|
29 |
+
<td class="label"><?php esc_html_e('Total available to capture', 'woo-stripe')?>:</td>
|
30 |
+
<td class="total"><?php echo wc_price($order->get_total())?></td>
|
31 |
+
</tr>
|
32 |
+
<tr>
|
33 |
+
<td class="label"><?php esc_html_e('Amount To Capture', 'woo-stripe')?>:</td>
|
34 |
+
<td class="total"><input type="text" id="worldpay_capture_amount"
|
35 |
+
name="capture_amount" class="wc_input_price" />
|
36 |
+
<div class="clear"></div></td>
|
37 |
+
</tr>
|
38 |
+
</table>
|
39 |
+
</div>
|
40 |
+
<div class="clear"></div>
|
41 |
+
<div class="capture-actions">
|
42 |
+
<button type="button" class="button button-primary do-api-capture"><?php esc_html_e( 'Capture', 'woo-stripe' ); ?></button>
|
43 |
+
<button type="button" class="button cancel-action"><?php esc_html_e( 'Cancel', 'woo-stripe' ); ?></button>
|
44 |
+
</div>
|
45 |
+
<div class="clear"></div>
|
46 |
+
</div>
|
47 |
+
</div>
|
includes/admin/meta-boxes/views/html-order-charge-data.php
ADDED
@@ -0,0 +1,40 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<div class="transaction-data">
|
2 |
+
<h3><?php _e('Transaction Data / Actions', 'woo-stripe')?></h3>
|
3 |
+
<a href="#" class="do-transaction-view"
|
4 |
+
data-order="<?php echo $order->get_id()?>"></a>
|
5 |
+
</div>
|
6 |
+
<script type="text/template" id="tmpl-wc-stripe-view-transaction">
|
7 |
+
<div class="wc-backbone-modal">
|
8 |
+
<div class="wc-backbone-modal-content wc-transaction-data">
|
9 |
+
<section class="wc-backbone-modal-main" role="main">
|
10 |
+
<header class="wc-backbone-modal-header">
|
11 |
+
<h1>Transaction #{{ data.charge.id }}</h1>
|
12 |
+
<button
|
13 |
+
class="modal-close modal-close-link dashicons dashicons-no-alt">
|
14 |
+
<span class="screen-reader-text">Close modal panel</span>
|
15 |
+
</button>
|
16 |
+
</header>
|
17 |
+
<article class="wc-transaction-data-container">
|
18 |
+
{{{ data.html }}}
|
19 |
+
</article>
|
20 |
+
<footer>
|
21 |
+
<div class="inner">
|
22 |
+
|
23 |
+
</div>
|
24 |
+
</footer>
|
25 |
+
</section>
|
26 |
+
</div>
|
27 |
+
</div>
|
28 |
+
<div class="wc-backbone-modal-backdrop modal-close"></div>
|
29 |
+
</script>
|
30 |
+
<style>
|
31 |
+
#order_data .order_data_column .transaction-data a.disabled:before {
|
32 |
+
content: '';
|
33 |
+
}
|
34 |
+
|
35 |
+
#order_data .order_data_column .transaction-data a.disabled {
|
36 |
+
background: url(<?php echo plugins_url('assets/images/wpspin.gif', WC_PLUGIN_FILE)?>)
|
37 |
+
no-repeat center top;
|
38 |
+
padding: 2px 10px;
|
39 |
+
}
|
40 |
+
</style>
|
includes/admin/meta-boxes/views/html-order-pay.php
ADDED
@@ -0,0 +1,59 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<p class="form-field form-field-wide">
|
2 |
+
<button class="button button-secondary wc-stripe-pay-order"><?php _e('Pay for Order', 'woo-stripe')?></button>
|
3 |
+
<?php echo wc_help_tip(__('Admins can process customer orders over the phone using this functionality.', 'woo-stripe'))?>
|
4 |
+
</p>
|
5 |
+
<script type="text/template" id="tmpl-wc-stripe-modal-pay-order">
|
6 |
+
<div class="wc-backbone-modal">
|
7 |
+
<div class="wc-backbone-modal-content">
|
8 |
+
<section class="wc-backbone-modal-main" role="main">
|
9 |
+
<header class="wc-backbone-modal-header">
|
10 |
+
<h1><?php esc_html_e( 'Pay for Order', 'woocommerce' ); ?></h1>
|
11 |
+
<button
|
12 |
+
class="modal-close modal-close-link dashicons dashicons-no-alt">
|
13 |
+
<span class="screen-reader-text">Close modal panel</span>
|
14 |
+
</button>
|
15 |
+
</header>
|
16 |
+
<article>
|
17 |
+
<form id="wc-stripe-pay-order-form">
|
18 |
+
<input type="hidden" name="wc_stripe_payment_method" value="stripe_cc"/>
|
19 |
+
<input type="hidden" name="order_id" value="{{{data.order_id}}}"/>
|
20 |
+
<div class="modal-wide option">
|
21 |
+
<label><?php _e('Charge Type', 'woo-stripe')?></label>
|
22 |
+
<select name="wc_stripe_charge_type" class="wc-select2">
|
23 |
+
<option value="capture"><?php _e('Capture', 'woo-stripe')?></value>
|
24 |
+
<option value="authorize"><?php _e('Authorize', 'woo-stripe')?></value>
|
25 |
+
</select>
|
26 |
+
</div>
|
27 |
+
<#if(data.payment_methods.length){#>
|
28 |
+
<div class="modal-wide">
|
29 |
+
<input type="radio" value="token" name="payment_type" checked/>
|
30 |
+
<label class=""><?php _e('Saved Cards', 'woo-stripe')?></label>
|
31 |
+
<div class="token-container show_if_token hide_if_nonce">
|
32 |
+
<select name="payment_token_id" class="wc-select2">
|
33 |
+
<#_.each(data.payment_methods, function(method){#>
|
34 |
+
<option value="{{{method.id}}}">{{{method.title}}}</option>
|
35 |
+
<#})#>
|
36 |
+
</select>
|
37 |
+
</div>
|
38 |
+
</div>
|
39 |
+
<#}#>
|
40 |
+
<div class="modal-wide">
|
41 |
+
<input type="radio" value="nonce" name="payment_type" class="" <#if(!data.payment_methods.length){#>checked<#}#>/>
|
42 |
+
<label class=""><?php _e('New Card', 'woo-stripe')?></label>
|
43 |
+
<input type="hidden" name="payment_nonce"/>
|
44 |
+
<div id="wc-stripe-card-container" class="wc-stripe-card-container show_if_nonce hide_if_token">
|
45 |
+
<div id="card-element"></div>
|
46 |
+
</div>
|
47 |
+
<div>
|
48 |
+
</form>
|
49 |
+
</article>
|
50 |
+
<footer>
|
51 |
+
<div class="inner">
|
52 |
+
<button id="pay-order" class="button button-primary button-large"><?php esc_html_e( 'Pay', 'woo-stripe' ); ?></button>
|
53 |
+
</div>
|
54 |
+
</footer>
|
55 |
+
</section>
|
56 |
+
</div>
|
57 |
+
</div>
|
58 |
+
<div class="wc-backbone-modal-backdrop modal-close"></div>
|
59 |
+
</script>
|
includes/admin/settings/class-wc-stripe-api-settings.php
ADDED
@@ -0,0 +1,103 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
class WC_Stripe_API_Settings extends WC_Stripe_Settings_API {
|
3 |
+
|
4 |
+
public function __construct() {
|
5 |
+
$this->id = 'stripe_api';
|
6 |
+
$this->tab_title = __ ( 'API Settings', 'woo-stripe' );
|
7 |
+
parent::__construct ();
|
8 |
+
}
|
9 |
+
|
10 |
+
public function hooks() {
|
11 |
+
parent::hooks ();
|
12 |
+
add_action ( 'woocommerce_update_options_checkout_' . $this->id, array(
|
13 |
+
$this, 'process_admin_options'
|
14 |
+
) );
|
15 |
+
add_filter ( 'wc_stripe_settings_nav_tabs', array(
|
16 |
+
$this, 'admin_nav_tab'
|
17 |
+
) );
|
18 |
+
add_action ( 'woocommerce_settings_checkout_' . $this->id, array(
|
19 |
+
$this, 'admin_options'
|
20 |
+
) );
|
21 |
+
}
|
22 |
+
|
23 |
+
public function init_form_fields() {
|
24 |
+
$this->form_fields = array(
|
25 |
+
'title' => array( 'type' => 'title',
|
26 |
+
'title' => __ ( 'API Settings', 'woo-stripe' )
|
27 |
+
),
|
28 |
+
'mode' => array( 'type' => 'select',
|
29 |
+
'title' => __ ( 'Mode', 'woo-stripe' ),
|
30 |
+
'class' => 'wc-enhanced-select',
|
31 |
+
'options' => array(
|
32 |
+
'test' => __ ( 'Test', 'woo-stripe' ),
|
33 |
+
'live' => __ ( 'Live', 'woo-stripe' )
|
34 |
+
), 'default' => 'test',
|
35 |
+
'desc_tip' => true,
|
36 |
+
'description' => __ ( 'The mode determines if you are processing test transaction or live transactions on your site. Test mode allows you to simulate payments so you can test your integration.', 'woo-stripe' )
|
37 |
+
),
|
38 |
+
'publishable_key_test' => array(
|
39 |
+
'title' => __ ( 'Test Publishable Key', 'woo-stripe' ),
|
40 |
+
'type' => 'text', 'default' => '',
|
41 |
+
'desc_tip' => true,
|
42 |
+
'description' => __ ( 'Your publishable key is used to initialize Stripe assets.', 'woo-stripe' ),
|
43 |
+
'custom_attributes' => array(
|
44 |
+
'data-show-if' => array(
|
45 |
+
'mode' => 'test'
|
46 |
+
)
|
47 |
+
)
|
48 |
+
),
|
49 |
+
'secret_key_test' => array(
|
50 |
+
'title' => __ ( 'Test Secret Key', 'woo-stripe' ),
|
51 |
+
'type' => 'password',
|
52 |
+
'default' => '', 'desc_tip' => true,
|
53 |
+
'description' => __ ( 'Your secret key is used to authenticate requests to Stripe.', 'woo-stripe' ),
|
54 |
+
'custom_attributes' => array(
|
55 |
+
'data-show-if' => array(
|
56 |
+
'mode' => 'test'
|
57 |
+
)
|
58 |
+
)
|
59 |
+
),
|
60 |
+
'publishable_key_live' => array(
|
61 |
+
'title' => __ ( 'Live Publishable Key', 'woo-stripe' ),
|
62 |
+
'type' => 'text', 'default' => '',
|
63 |
+
'desc_tip' => true,
|
64 |
+
'description' => __ ( 'Your publishable key is used to initialize Stripe assets.', 'woo-stripe' ),
|
65 |
+
'custom_attributes' => array(
|
66 |
+
'data-show-if' => array(
|
67 |
+
'mode' => 'live'
|
68 |
+
)
|
69 |
+
)
|
70 |
+
),
|
71 |
+
'secret_key_live' => array(
|
72 |
+
'title' => __ ( 'Live Secret Key', 'woo-stripe' ),
|
73 |
+
'type' => 'password',
|
74 |
+
'default' => '', 'desc_tip' => true,
|
75 |
+
'description' => __ ( 'Your secret key is used to authenticate requests to Stripe.', 'woo-stripe' ),
|
76 |
+
'custom_attributes' => array(
|
77 |
+
'data-show-if' => array(
|
78 |
+
'mode' => 'live'
|
79 |
+
)
|
80 |
+
)
|
81 |
+
),
|
82 |
+
'webhook_url' => array(
|
83 |
+
'type' => 'paragraph',
|
84 |
+
'title' => __ ( 'Webhook url', 'woo-stripe' ),
|
85 |
+
'class' => 'wc-stripe-webhook',
|
86 |
+
'text' => wc_stripe ()->rest_api->webhook->rest_url ( 'webhook' ),
|
87 |
+
'description' => sprintf ( __ ( '<strong>Important:</strong> the webhook url is called by Stripe when events occur in your account, like a source becomes chargeable. You must add this webhook to your Stripe Dashboard if you are using any of the local gateways. %sWebhook guide%s', 'woo-stripe' ), '<a target="_blank" href="https://docs.paymentplugins.com/wc-stripe/config/#/webhooks?id=confgure-webooks">', '</a>' )
|
88 |
+
),
|
89 |
+
'webhook_secret' => array(
|
90 |
+
'type' => 'password',
|
91 |
+
'title' => __ ( 'Webhook Secret', 'woo-stripe' ),
|
92 |
+
'description' => __ ( 'The webhook secret is used to authenticate webhooks sent from Stripe. It ensures no 3rd party can send you events, pretending to be Stripe.', 'woo-stripe' )
|
93 |
+
),
|
94 |
+
'debug_log' => array(
|
95 |
+
'title' => __ ( 'Debug Log', 'woo-stripe' ),
|
96 |
+
'type' => 'checkbox',
|
97 |
+
'desc_tip' => true,
|
98 |
+
'default' => 'yes',
|
99 |
+
'description' => __ ( 'When enabled, the plugin logs important errors and info that can help you troubleshoot potential issues.', 'woo-stripe' )
|
100 |
+
)
|
101 |
+
);
|
102 |
+
}
|
103 |
+
}
|
includes/admin/views/html-button-demo.php
ADDED
@@ -0,0 +1,13 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<tr valign="top">
|
2 |
+
<th scope="row" class="titledesc">
|
3 |
+
<label for="<?php echo esc_attr( $field_key ); ?>"><?php echo wp_kses_post( $data['title'] ); ?> <?php echo $this->get_tooltip_html( $data ); // WPCS: XSS ok. ?></label>
|
4 |
+
</th>
|
5 |
+
<td class="forminp">
|
6 |
+
<fieldset>
|
7 |
+
<legend class="screen-reader-text"><span><?php echo wp_kses_post( $data['title'] ); ?></span></legend>
|
8 |
+
<label for="<?php echo esc_attr( $field_key ); ?>">
|
9 |
+
<div id="<?php echo $data['id']?>"></div>
|
10 |
+
<?php echo $this->get_description_html( $data ); // WPCS: XSS ok. ?>
|
11 |
+
</fieldset>
|
12 |
+
</td>
|
13 |
+
</tr>
|
includes/admin/views/html-description.php
ADDED
@@ -0,0 +1 @@
|
|
Â
|
1 |
+
<p class="<?php echo $data['class']?>"><?php echo wp_kses_post( $data['description'] ); ?></p>
|
includes/admin/views/html-paragraph.php
ADDED
@@ -0,0 +1,14 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<tr valign="top">
|
2 |
+
<th scope="row" class="titledesc"><label
|
3 |
+
for="<?php echo esc_attr( $field_key ); ?>"><?php echo wp_kses_post( $data['title'] ); ?> <?php echo $this->get_tooltip_html( $data ); // WPCS: XSS ok. ?></label>
|
4 |
+
</th>
|
5 |
+
<td class="forminp">
|
6 |
+
<fieldset>
|
7 |
+
<legend class="screen-reader-text">
|
8 |
+
<span><?php echo wp_kses_post( $data['title'] ); ?></span>
|
9 |
+
</legend>
|
10 |
+
<p class="<?php echo esc_attr( $data['class'] );?>" <?php echo $this->get_custom_attribute_html( $data );?>><?php echo $data['text']?></p>
|
11 |
+
<?php echo $this->get_description_html( $data ); // WPCS: XSS ok. ?>
|
12 |
+
</fieldset>
|
13 |
+
</td>
|
14 |
+
</tr>
|
includes/admin/views/html-settings-local-payments-nav.php
ADDED
@@ -0,0 +1,12 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
global $wc_stripe_subsection;
|
3 |
+
$tabs = apply_filters ( 'wc_stripe_local_gateways_tab', array() );
|
4 |
+
?>
|
5 |
+
<div class="wc-stripe-advanced-settings-nav local-gateways">
|
6 |
+
<?php foreach($tabs as $id => $tab):?>
|
7 |
+
<a
|
8 |
+
class="nav-link <?php if($wc_stripe_subsection === $id){echo 'nav-link-active';}?>"
|
9 |
+
href="<?php echo admin_url( 'admin.php?page=wc-settings&tab=checkout§ion=stripe_local_gateways&stripe_sub_section=' . $id)?>"><?php echo esc_attr($tab)?></a>
|
10 |
+
<?php endforeach;?>
|
11 |
+
</div>
|
12 |
+
<div class="clear"></div>
|
includes/admin/views/html-settings-nav.php
ADDED
@@ -0,0 +1,18 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
global $current_section;
|
3 |
+
$tabs = apply_filters('wc_stripe_settings_nav_tabs', array());
|
4 |
+
?>
|
5 |
+
<div class="wc-stripe-settings-logo">
|
6 |
+
<img src="<?php echo wc_stripe()->assets_url() . 'img/stripe_logo.svg'?>"/>
|
7 |
+
</div>
|
8 |
+
<div class="stripe-settings-nav">
|
9 |
+
<?php foreach($tabs as $id => $tab):?>
|
10 |
+
<a
|
11 |
+
class="nav-tab <?php if($current_section === $id){echo 'nav-tab-active';}?>"
|
12 |
+
href="<?php echo admin_url( 'admin.php?page=wc-settings&tab=checkout§ion=' . $id)?>"><?php echo esc_attr($tab)?></a>
|
13 |
+
<?php endforeach;?>
|
14 |
+
</div>
|
15 |
+
<div class="clear"></div>
|
16 |
+
<div class="wc-stripe-docs">
|
17 |
+
<a target="_blank" class="button button-secondary" href="https://docs.paymentplugins.com/wc-stripe/config/#/<?php echo $current_section?>"><?php _e('Documentation', 'woo-stripe')?></a>
|
18 |
+
</div>
|
includes/admin/views/html-user-profile.php
ADDED
@@ -0,0 +1,95 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var WP_User $user
|
4 |
+
*/
|
5 |
+
?>
|
6 |
+
<div class="wc-stripe-user-info">
|
7 |
+
<h2><?php _e('Stripe Customer ID\'s', 'woo-stripe')?></h2>
|
8 |
+
<p><?php _e('If you change a customer ID, the customer\'s payment methods will be imported from your Stripe account.')?></p>
|
9 |
+
<p><?php _e('If you remove a customer ID, the customer\'s payment methods will be removed from the WC payment methods table.')?></p>
|
10 |
+
<table class="form-table">
|
11 |
+
<tbody>
|
12 |
+
<tr>
|
13 |
+
<th><?php _e('Live ID', 'woo-stripe')?></th>
|
14 |
+
<td>
|
15 |
+
<input type="text" id="wc_stripe_live_id" name="wc_stripe_live_id" value="<?php echo wc_stripe_get_customer_id($user->ID, 'live')?>"
|
16 |
+
</td>
|
17 |
+
</tr>
|
18 |
+
<tr>
|
19 |
+
<th><?php _e('Test ID', 'woo-stripe')?></th>
|
20 |
+
<td>
|
21 |
+
<input type="text" id="wc_stripe_test_id" name="wc_stripe_test_id" value="<?php echo wc_stripe_get_customer_id($user->ID, 'test')?>"
|
22 |
+
</td>
|
23 |
+
</tr>
|
24 |
+
</tbody>
|
25 |
+
</table>
|
26 |
+
<h2><?php _e('Stripe Live Payment Methods', 'woo-stripe')?></h2>
|
27 |
+
<?php if($payment_methods['live']):?>
|
28 |
+
<table class="wc-stripe-payment-methods">
|
29 |
+
<thead>
|
30 |
+
<tr>
|
31 |
+
<th><?php _e('Payment Gateway', 'woo-stripe')?></th>
|
32 |
+
<th><?php _e('Payment Method', 'woo-stripe')?></th>
|
33 |
+
<th><?php _e('Token', 'woo-stripe')?></th>
|
34 |
+
<th><?php _e('Actions', 'woo-stripe')?></th>
|
35 |
+
</tr>
|
36 |
+
</thead>
|
37 |
+
<tbody>
|
38 |
+
<?php foreach($payment_methods['live'] as $token):?>
|
39 |
+
<tr>
|
40 |
+
<td><?php echo $token->get_gateway_id()?></td>
|
41 |
+
<td><?php echo $token->get_payment_method_title()?></td>
|
42 |
+
<td><?php echo $token->get_token()?></td>
|
43 |
+
<td><input type="checkbox" name="payment_methods[live][]" value="<?php echo $token->get_id()?>"/></td>
|
44 |
+
</tr>
|
45 |
+
<?php endforeach;?>
|
46 |
+
<tr>
|
47 |
+
<th><?php _e('Action', 'delete')?></th>
|
48 |
+
<td>
|
49 |
+
<select name="live_payment_method_actions">
|
50 |
+
<option value="none" selected><?php _e('No Action', 'woo-stripe')?></option>
|
51 |
+
<option value="delete"><?php _e('Delete', 'woo-stripe')?></option>
|
52 |
+
</select>
|
53 |
+
</td>
|
54 |
+
</tr>
|
55 |
+
</tbody>
|
56 |
+
</table>
|
57 |
+
<?php else:?>
|
58 |
+
<?php _e('No live payment methods saved', 'woo-stripe')?>
|
59 |
+
<?php endif;?>
|
60 |
+
<h2><?php _e('Stripe Test Payment Methods', 'woo-stripe')?></h2>
|
61 |
+
<?php if($payment_methods['test']):?>
|
62 |
+
<table class="wc-stripe-payment-methods">
|
63 |
+
<thead>
|
64 |
+
<tr>
|
65 |
+
<th><?php _e('Payment Gateway', 'woo-stripe')?></th>
|
66 |
+
<th><?php _e('Payment Method', 'woo-stripe')?></th>
|
67 |
+
<th><?php _e('Token', 'woo-stripe')?></th>
|
68 |
+
<th><?php _e('Actions', 'woo-stripe')?></th>
|
69 |
+
</tr>
|
70 |
+
</thead>
|
71 |
+
<tbody>
|
72 |
+
<?php foreach($payment_methods['test'] as $token):?>
|
73 |
+
<tr>
|
74 |
+
<td><?php echo $token->get_gateway_id()?></td>
|
75 |
+
<td><?php echo $token->get_payment_method_title()?></td>
|
76 |
+
<td><?php echo $token->get_token()?></td>
|
77 |
+
<td><input type="checkbox" name="payment_methods[test][]" value="<?php echo $token->get_id()?>"/></td>
|
78 |
+
</tr>
|
79 |
+
<?php endforeach;?>
|
80 |
+
<tr>
|
81 |
+
<th><?php _e('Action', 'delete')?></th>
|
82 |
+
<td>
|
83 |
+
<select name="test_payment_method_actions">
|
84 |
+
<option value="none" selected><?php _e('No Action', 'woo-stripe')?></option>
|
85 |
+
<option value="delete"><?php _e('Delete', 'woo-stripe')?></option>
|
86 |
+
</select>
|
87 |
+
</td>
|
88 |
+
</tr>
|
89 |
+
</tbody>
|
90 |
+
</table>
|
91 |
+
<?php else:?>
|
92 |
+
<?php _e('No test payment methods saved', 'woo-stripe')?>
|
93 |
+
<?php endif;?>
|
94 |
+
<?php printf(__('%snote:%s payment methods will be deleted in Stripe if you use the delete action.', 'woo-stripe'), '<strong>', '</strong>')?>
|
95 |
+
</div>
|
includes/class-stripe.php
ADDED
@@ -0,0 +1,246 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Singleton class that handles plugin functionality like class loading.
|
4 |
+
* @since 3.0.0
|
5 |
+
* @author PaymentPlugins
|
6 |
+
* @package Stripe/Classes
|
7 |
+
*
|
8 |
+
*/
|
9 |
+
class WC_Stripe_Manager {
|
10 |
+
|
11 |
+
public static $_instance;
|
12 |
+
|
13 |
+
public static function instance() {
|
14 |
+
if (self::$_instance == null) {
|
15 |
+
self::$_instance = new self ();
|
16 |
+
}
|
17 |
+
return self::$_instance;
|
18 |
+
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var string
|
23 |
+
*/
|
24 |
+
public $version = '3.0.0';
|
25 |
+
|
26 |
+
/**
|
27 |
+
*
|
28 |
+
* @var WC_Stripe_Settings_API
|
29 |
+
*/
|
30 |
+
public $api_settings;
|
31 |
+
|
32 |
+
/**
|
33 |
+
*
|
34 |
+
* @var WC_Stripe_Rest_API
|
35 |
+
*/
|
36 |
+
public $rest_api;
|
37 |
+
|
38 |
+
/**
|
39 |
+
*
|
40 |
+
* @var WC_Stripe_Frontend_Scripts
|
41 |
+
*/
|
42 |
+
private $scripts;
|
43 |
+
|
44 |
+
/**
|
45 |
+
*
|
46 |
+
* @var array
|
47 |
+
*/
|
48 |
+
private $payment_gateways;
|
49 |
+
|
50 |
+
public function __construct() {
|
51 |
+
add_action ( 'init', array( $this, 'init'
|
52 |
+
) );
|
53 |
+
add_action ( 'admin_init', array( $this,
|
54 |
+
'admin_init'
|
55 |
+
) );
|
56 |
+
add_action ( 'woocommerce_init', array( $this,
|
57 |
+
'woocommerce_dependencies'
|
58 |
+
) );
|
59 |
+
$this->includes ();
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Return the plugin version.
|
64 |
+
*
|
65 |
+
* @return string
|
66 |
+
*/
|
67 |
+
public function version() {
|
68 |
+
return $this->version;
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Return the url for the plugin assets.
|
73 |
+
*
|
74 |
+
* @return string
|
75 |
+
*/
|
76 |
+
public function assets_url($uri = '') {
|
77 |
+
$url = WC_STRIPE_ASSETS . $uri;
|
78 |
+
if (! preg_match ( '/(\.js)|(\.css)|(\.svg)|(\.png)/', $uri )) {
|
79 |
+
return trailingslashit ( $url );
|
80 |
+
}
|
81 |
+
return $url;
|
82 |
+
}
|
83 |
+
|
84 |
+
/**
|
85 |
+
* Return the dir path for the plugin.
|
86 |
+
*
|
87 |
+
* @return string
|
88 |
+
*/
|
89 |
+
public function plugin_path() {
|
90 |
+
return WC_STRIPE_PLUGIN_PATH;
|
91 |
+
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
* Function that is hooked in to the Wordpress init action.
|
95 |
+
*/
|
96 |
+
public function init() {}
|
97 |
+
|
98 |
+
public function includes() {
|
99 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/class-wc-stripe-install.php';
|
100 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/class-wc-stripe-rest-api.php';
|
101 |
+
|
102 |
+
if (is_admin ()) {
|
103 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/admin/class-wc-stripe-admin-menus.php';
|
104 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/admin/class-wc-stripe-admin-assets.php';
|
105 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/admin/class-wc-stripe-admin-settings.php';
|
106 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/admin/meta-boxes/class-wc-stripe-admin-order-metaboxes.php';
|
107 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/admin/class-wc-stripe-admin-user-edit.php';
|
108 |
+
}
|
109 |
+
}
|
110 |
+
|
111 |
+
/**
|
112 |
+
* Function that is hooked in to the Wordpress admin_init action.
|
113 |
+
*/
|
114 |
+
public function admin_init() {}
|
115 |
+
|
116 |
+
public function woocommerce_dependencies() {
|
117 |
+
// load functions
|
118 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/wc-stripe-functions.php';
|
119 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/wc-stripe-webhook-functions.php';
|
120 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/wc-stripe-hooks.php';
|
121 |
+
|
122 |
+
// load gateways
|
123 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/abstract/abstract-wc-payment-gateway-stripe.php';
|
124 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/abstract/abstract-wc-payment-gateway-stripe-charge.php';
|
125 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/abstract/abstract-wc-payment-gateway-stripe-payment-intent.php';
|
126 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php';
|
127 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/gateways/class-wc-payment-gateway-stripe-cc.php';
|
128 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/gateways/class-wc-payment-gateway-stripe-applepay.php';
|
129 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/gateways/class-wc-payment-gateway-stripe-googlepay.php';
|
130 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/gateways/class-wc-payment-gateway-stripe-payment-request.php';
|
131 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/gateways/class-wc-payment-gateway-stripe-ideal.php';
|
132 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/gateways/class-wc-payment-gateway-stripe-p24.php';
|
133 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/gateways/class-wc-payment-gateway-stripe-klarna.php';
|
134 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/gateways/class-wc-payment-gateway-stripe-giropay.php';
|
135 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/gateways/class-wc-payment-gateway-stripe-eps.php';
|
136 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/gateways/class-wc-payment-gateway-stripe-multibanco.php';
|
137 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/gateways/class-wc-payment-gateway-stripe-sepa.php';
|
138 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/gateways/class-wc-payment-gateway-stripe-sofort.php';
|
139 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/gateways/class-wc-payment-gateway-stripe-wechat.php';
|
140 |
+
|
141 |
+
// tokens
|
142 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/abstract/abstract-wc-payment-token-stripe.php';
|
143 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/tokens/class-wc-payment-token-stripe-cc.php';
|
144 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/tokens/class-wc-payment-token-stripe-applepay.php';
|
145 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/tokens/class-wc-payment-token-stripe-googlepay.php';
|
146 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/tokens/class-wc-payment-token-stripe-local-payment.php';
|
147 |
+
|
148 |
+
// main classes
|
149 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/class-wc-stripe-frontend-scripts.php';
|
150 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/class-wc-stripe-field-manager.php';
|
151 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/class-wc-stripe-rest-api.php';
|
152 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/class-wc-stripe-gateway.php';
|
153 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/class-wc-stripe-customer-manager.php';
|
154 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/class-wc-stripe-frontend-notices.php';
|
155 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/class-wc-stripe-redirect-handler.php';
|
156 |
+
|
157 |
+
// settings
|
158 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/abstract/abstract-wc-stripe-settings.php';
|
159 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/admin/settings/class-wc-stripe-api-settings.php';
|
160 |
+
|
161 |
+
$this->payment_gateways = apply_filters ( 'wc_stripe_payment_gateways', array(
|
162 |
+
'WC_Payment_Gateway_Stripe_CC',
|
163 |
+
'WC_Payment_Gateway_Stripe_ApplePay',
|
164 |
+
'WC_Payment_Gateway_Stripe_GooglePay',
|
165 |
+
'WC_Payment_Gateway_Stripe_Payment_Request',
|
166 |
+
'WC_Payment_Gateway_Stripe_Ideal',
|
167 |
+
'WC_Payment_Gateway_Stripe_P24',
|
168 |
+
// 'WC_Payment_Gateway_Stripe_Klarna',
|
169 |
+
'WC_Payment_Gateway_Stripe_Giropay',
|
170 |
+
'WC_Payment_Gateway_Stripe_EPS',
|
171 |
+
'WC_Payment_Gateway_Stripe_Multibanco',
|
172 |
+
'WC_Payment_Gateway_Stripe_Sepa',
|
173 |
+
'WC_Payment_Gateway_Stripe_Sofort',
|
174 |
+
'WC_Payment_Gateway_Stripe_WeChat'
|
175 |
+
) );
|
176 |
+
|
177 |
+
$api_class = apply_filters ( 'wc_stripe_rest_api_class', 'WC_Stripe_Rest_API' );
|
178 |
+
$this->rest_api = new $api_class ();
|
179 |
+
$this->scripts = new WC_Stripe_Frontend_Scripts ();
|
180 |
+
|
181 |
+
// allow other plugins to provide their own settings classes.
|
182 |
+
$setting_classes = apply_filters ( 'wc_stripe_setting_classes', array(
|
183 |
+
'api_settings' => 'WC_Stripe_API_Settings'
|
184 |
+
) );
|
185 |
+
foreach ( $setting_classes as $id => $class_name ) {
|
186 |
+
if (class_exists ( $class_name )) {
|
187 |
+
$this->{$id} = new $class_name ();
|
188 |
+
}
|
189 |
+
}
|
190 |
+
}
|
191 |
+
|
192 |
+
/**
|
193 |
+
* Return the plugin template path.
|
194 |
+
*/
|
195 |
+
public function template_path() {
|
196 |
+
return 'woo-stripe-payment';
|
197 |
+
}
|
198 |
+
|
199 |
+
/**
|
200 |
+
* Return the plguins default directory path for template files.
|
201 |
+
*/
|
202 |
+
public function default_template_path() {
|
203 |
+
return WC_STRIPE_PLUGIN_PATH . 'templates/';
|
204 |
+
}
|
205 |
+
|
206 |
+
/**
|
207 |
+
*
|
208 |
+
* @return string
|
209 |
+
*/
|
210 |
+
public function rest_uri() {
|
211 |
+
return 'wc-stripe/v1/';
|
212 |
+
}
|
213 |
+
|
214 |
+
/**
|
215 |
+
*
|
216 |
+
* @return string
|
217 |
+
*/
|
218 |
+
public function rest_url() {
|
219 |
+
return get_rest_url ( null, $this->rest_uri () );
|
220 |
+
}
|
221 |
+
|
222 |
+
/**
|
223 |
+
*
|
224 |
+
* @return WC_Stripe_Frontend_Scripts
|
225 |
+
*/
|
226 |
+
public function scripts() {
|
227 |
+
return $this->scripts;
|
228 |
+
}
|
229 |
+
|
230 |
+
public function payment_gateways() {
|
231 |
+
return $this->payment_gateways;
|
232 |
+
}
|
233 |
+
}
|
234 |
+
|
235 |
+
/**
|
236 |
+
* Returns the global instance of the WC_Stripe_Manager.
|
237 |
+
*
|
238 |
+
* @package Stripe/Functions
|
239 |
+
* @return WC_Stripe_Manager
|
240 |
+
*/
|
241 |
+
function wc_stripe() {
|
242 |
+
return WC_Stripe_Manager::instance ();
|
243 |
+
}
|
244 |
+
|
245 |
+
// load singleton
|
246 |
+
wc_stripe ();
|
includes/class-wc-stripe-customer-manager.php
ADDED
@@ -0,0 +1,126 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class that manages customer creation and custom updates.
|
4 |
+
* @since 3.0.0
|
5 |
+
* @package Stripe/Classes
|
6 |
+
* @author PaymentPlugins
|
7 |
+
*
|
8 |
+
*/
|
9 |
+
class WC_Stripe_Customer_Manager {
|
10 |
+
|
11 |
+
public function __construct() {
|
12 |
+
add_action ( 'woocommerce_checkout_update_customer', array(
|
13 |
+
$this, 'checkout_update_customer'
|
14 |
+
), 10, 2 );
|
15 |
+
add_action ( 'wp_loaded', array( $this,
|
16 |
+
'wp_loaded'
|
17 |
+
) );
|
18 |
+
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @param WC_Customer $customer
|
23 |
+
* @param array $data
|
24 |
+
*/
|
25 |
+
public function checkout_update_customer($customer, $data) {
|
26 |
+
if ($this->user_has_id ( $customer )) {
|
27 |
+
if ($this->should_update_customer ( $customer )) {
|
28 |
+
$result = $this->update_customer ( $customer );
|
29 |
+
if (is_wp_error ( $result )) {
|
30 |
+
wc_add_notice ( __ ( 'Error saving customer. Reason: %s', 'woo-stripe' ), $customer_id->get_error_message () );
|
31 |
+
}
|
32 |
+
}
|
33 |
+
} else {
|
34 |
+
// create the customer
|
35 |
+
$gateway = new WC_Stripe_Gateway ();
|
36 |
+
$customer_id = $this->create_customer ( $customer );
|
37 |
+
if (! is_wp_error ( $customer_id )) {
|
38 |
+
wc_stripe_save_customer ( $customer_id, $customer->get_id () );
|
39 |
+
} else {
|
40 |
+
wc_add_notice ( __ ( 'Error saving customer. Reason: %s', 'woo-stripe' ), $customer_id->get_error_message () );
|
41 |
+
}
|
42 |
+
}
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
*
|
47 |
+
* @param WC_Customer $customer
|
48 |
+
*/
|
49 |
+
private function create_customer($customer) {
|
50 |
+
$gateway = new WC_Stripe_Gateway ();
|
51 |
+
return $gateway->create_customer ( apply_filters ( 'wc_stripe_customer_args', array(
|
52 |
+
'email' => $customer->get_email (),
|
53 |
+
'name' => sprintf ( '%s %s', $customer->get_first_name (), $customer->get_last_name () ),
|
54 |
+
'phone' => $customer->get_billing_phone (),
|
55 |
+
'metadata' => array(
|
56 |
+
'user_id' => $customer->get_id (),
|
57 |
+
'username' => $customer->get_username (),
|
58 |
+
'website' => get_site_url ()
|
59 |
+
)
|
60 |
+
) ) );
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
*
|
65 |
+
* @param WC_Customer $customer
|
66 |
+
*/
|
67 |
+
private function update_customer($customer) {
|
68 |
+
$gateway = new WC_Stripe_Gateway ();
|
69 |
+
return $gateway->update_customer ( wc_stripe_get_customer_id ( $customer->get_id () ), array(
|
70 |
+
'email' => $customer->get_email (),
|
71 |
+
'name' => sprintf ( '%s %s', $customer->get_first_name (), $customer->get_last_name () ),
|
72 |
+
'phone' => $customer->get_billing_phone ()
|
73 |
+
) );
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Check if the Stripe customer has been created for the WC user.
|
78 |
+
* If there is no Stripe customer then
|
79 |
+
* create one and save it to the WC user.
|
80 |
+
*/
|
81 |
+
public function wp_loaded() {
|
82 |
+
$customer = WC ()->customer;
|
83 |
+
if ($customer && $customer->get_id ()) {
|
84 |
+
if (! $this->user_has_id ( $customer )) {
|
85 |
+
$customer_id = $this->create_customer ( $customer );
|
86 |
+
if (! is_wp_error ( $customer_id )) {
|
87 |
+
wc_stripe_save_customer ( $customer_id, $customer->get_id () );
|
88 |
+
}
|
89 |
+
}
|
90 |
+
}
|
91 |
+
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
*
|
95 |
+
* @param WC_Customer $customer
|
96 |
+
*/
|
97 |
+
private function user_has_id($customer) {
|
98 |
+
$id = wc_stripe_get_customer_id ( $customer->get_id () );
|
99 |
+
return ! empty ( $id );
|
100 |
+
}
|
101 |
+
|
102 |
+
/**
|
103 |
+
* Returns true if the customer should be updated in Stripe.
|
104 |
+
*
|
105 |
+
* @param WC_Customer $customer
|
106 |
+
* @return bool
|
107 |
+
*/
|
108 |
+
private function should_update_customer($customer) {
|
109 |
+
$changes = $customer->get_changes ();
|
110 |
+
if (! empty ( $changes[ 'billing' ] )) {
|
111 |
+
return array_intersect_key ( $changes[ 'billing' ], array_flip ( $this->get_attribute_keys () ) );
|
112 |
+
}
|
113 |
+
return false;
|
114 |
+
}
|
115 |
+
|
116 |
+
/**
|
117 |
+
* Returns an array of user attributes.
|
118 |
+
*
|
119 |
+
* @return array
|
120 |
+
*/
|
121 |
+
private function get_attribute_keys() {
|
122 |
+
return [ 'first_name', 'last_name', 'email'
|
123 |
+
];
|
124 |
+
}
|
125 |
+
}
|
126 |
+
new WC_Stripe_Customer_Manager ();
|
includes/class-wc-stripe-field-manager.php
ADDED
@@ -0,0 +1,163 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @since 3.0.0
|
4 |
+
* @package Stripe/Classes
|
5 |
+
* @author Payment Plugins
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
class WC_Stripe_Field_Manager {
|
9 |
+
|
10 |
+
public static function init() {
|
11 |
+
add_action ( 'woocommerce_checkout_before_customer_details', array(
|
12 |
+
__CLASS__, 'output_banner_checkout_fields'
|
13 |
+
) );
|
14 |
+
add_action ( 'woocommerce_after_add_to_cart_button', array(
|
15 |
+
__CLASS__, 'output_product_checkout_fields'
|
16 |
+
) );
|
17 |
+
add_action ( 'woocommerce_proceed_to_checkout', [
|
18 |
+
__CLASS__, 'output_cart_fields'
|
19 |
+
] );
|
20 |
+
add_action ( 'woocommerce_review_order_after_order_total', [
|
21 |
+
__CLASS__, 'output_checkout_fields'
|
22 |
+
] );
|
23 |
+
add_action ( 'before_woocommerce_add_payment_method', array(
|
24 |
+
__CLASS__, 'add_payment_method_fields'
|
25 |
+
) );
|
26 |
+
add_action ( 'before_woocommerce_pay', array(
|
27 |
+
__CLASS__, 'change_payment_request'
|
28 |
+
) );
|
29 |
+
}
|
30 |
+
|
31 |
+
public static function output_banner_checkout_fields() {
|
32 |
+
$gateways = [];
|
33 |
+
foreach ( WC ()->payment_gateways ()->get_available_payment_gateways () as $gateway ) {
|
34 |
+
if ($gateway->supports ( 'wc_stripe_banner_checkout' ) && $gateway->banner_checkout_enabled ()) {
|
35 |
+
$gateways[ $gateway->id ] = $gateway;
|
36 |
+
}
|
37 |
+
}
|
38 |
+
if ($gateways) {
|
39 |
+
wc_stripe_get_template ( 'checkout/checkout-banner.php', [
|
40 |
+
'gateways' => $gateways
|
41 |
+
] );
|
42 |
+
}
|
43 |
+
}
|
44 |
+
|
45 |
+
public static function output_checkout_fields() {
|
46 |
+
// now that sources have been printed, clear them.
|
47 |
+
WC ()->session->set ( 'wc_stripe_local_payment_sources', [] );
|
48 |
+
|
49 |
+
self::output_required_fields ();
|
50 |
+
|
51 |
+
do_action ( 'wc_stripe_output_checkout_fields' );
|
52 |
+
}
|
53 |
+
|
54 |
+
public static function output_product_checkout_fields() {
|
55 |
+
global $product;
|
56 |
+
$gateways = [];
|
57 |
+
foreach ( WC ()->payment_gateways ()->get_available_payment_gateways () as $id => $gateway ) {
|
58 |
+
/**
|
59 |
+
*
|
60 |
+
* @var WC_Payment_Gateway_Stripe $gateway
|
61 |
+
*/
|
62 |
+
if ($gateway->supports ( 'wc_stripe_product_checkout' ) && $gateway->product_checkout_enabled ()) {
|
63 |
+
$gateways[ $gateway->id ] = $gateway;
|
64 |
+
}
|
65 |
+
}
|
66 |
+
self::output_required_fields ();
|
67 |
+
printf ( '<input type="hidden" id="product_id", value="%s"/>', $product->get_id () );
|
68 |
+
printf ( '<input type="hidden" id="wc_stripe_product_data" data-product="%s"/>', htmlspecialchars ( wp_json_encode ( [
|
69 |
+
'product_id' => $product->get_id (),
|
70 |
+
'price' => $product->get_price (),
|
71 |
+
'needs_shipping' => $product->needs_shipping ()
|
72 |
+
] ) ) );
|
73 |
+
printf ( '<input type="hidden" id="wc_stripe_display_items" data-items="%s"/>', htmlspecialchars ( wp_json_encode ( [
|
74 |
+
[
|
75 |
+
'amount' => wc_stripe_add_number_precision ( $product->get_price () ),
|
76 |
+
'label' => esc_attr ( $product->get_name () ),
|
77 |
+
'pending' => true
|
78 |
+
]
|
79 |
+
] ) ) );
|
80 |
+
printf ( '<input type="hidden" id="wc_stripe_shipping_options" data-items="%s"/>', htmlspecialchars ( wp_json_encode ( [] ) ) );
|
81 |
+
printf ( '<input type="hidden" id="wc_stripe_order_total_cents" data-amount="%s"/>', wc_stripe_add_number_precision ( $product->get_price () ) );
|
82 |
+
|
83 |
+
self::output_fields ( 'billing' );
|
84 |
+
|
85 |
+
// don't always need shipping fields but doesn't hurt to output them anyway.
|
86 |
+
self::output_fields ( 'shipping' );
|
87 |
+
|
88 |
+
wc_stripe_get_template ( 'product/payment-methods.php', [
|
89 |
+
'gateways' => $gateways
|
90 |
+
] );
|
91 |
+
}
|
92 |
+
|
93 |
+
public static function output_cart_fields() {
|
94 |
+
$gateways = [];
|
95 |
+
foreach ( WC ()->payment_gateways ()->get_available_payment_gateways () as $id => $gateway ) {
|
96 |
+
/**
|
97 |
+
*
|
98 |
+
* @var WC_Payment_Gateway_Stripe $gateway
|
99 |
+
*/
|
100 |
+
if ($gateway->supports ( 'wc_stripe_cart_checkout' ) && $gateway->cart_checkout_enabled ()) {
|
101 |
+
$gateways[ $gateway->id ] = $gateway;
|
102 |
+
}
|
103 |
+
}
|
104 |
+
if (! empty ( $gateways )) {
|
105 |
+
echo '<form>';
|
106 |
+
self::output_required_fields ();
|
107 |
+
|
108 |
+
self::output_fields ( 'billing' );
|
109 |
+
|
110 |
+
if (WC ()->cart->needs_shipping ()) {
|
111 |
+
self::output_needs_shipping ( true );
|
112 |
+
self::output_fields ( 'shipping' );
|
113 |
+
} else {
|
114 |
+
self::output_needs_shipping ( false );
|
115 |
+
}
|
116 |
+
|
117 |
+
wc_stripe_get_template ( 'cart/payment-methods.php', [
|
118 |
+
'gateways' => $gateways
|
119 |
+
] );
|
120 |
+
echo '</form>';
|
121 |
+
}
|
122 |
+
}
|
123 |
+
|
124 |
+
public static function change_payment_request() {
|
125 |
+
if (wcs_stripe_active () && WC_Subscriptions_Change_Payment_Gateway::$is_request_to_change_payment) {
|
126 |
+
$subscription = wcs_get_subscription ( absint ( $_GET[ 'change_payment_method' ] ) );
|
127 |
+
self::output_required_fields ( $subscription );
|
128 |
+
}
|
129 |
+
}
|
130 |
+
|
131 |
+
public static function add_payment_method_fields() {
|
132 |
+
wc_stripe_hidden_field ( 'billing_first_name', '', WC ()->customer->get_first_name () );
|
133 |
+
wc_stripe_hidden_field ( 'billing_last_name', '', WC ()->customer->get_last_name () );
|
134 |
+
}
|
135 |
+
|
136 |
+
/**
|
137 |
+
*
|
138 |
+
* @param WC_Order $order
|
139 |
+
*/
|
140 |
+
public static function output_required_fields($order = null) {
|
141 |
+
printf ( '<input type="hidden" id="%1$s" value="%2$s"/>', 'wc_stripe_currency', get_woocommerce_currency () );
|
142 |
+
printf ( '<input type="hidden" id="%1$s" data-amount="%2$s"/>', 'wc_stripe_order_total', $order ? $order->get_total () : WC ()->cart->total );
|
143 |
+
if (is_cart () || is_checkout ()) {
|
144 |
+
printf ( '<input type="hidden" id="wc_stripe_display_items" data-items="%s"/>', wc_stripe_get_display_items ( true, $order ) );
|
145 |
+
printf ( '<input type="hidden" id="wc_stripe_shipping_options" data-items="%s"/>', wc_stripe_get_shipping_options ( true, $order ) );
|
146 |
+
printf ( '<input type="hidden" id="wc_stripe_order_total_cents" data-amount="%s"/>', wc_stripe_add_number_precision ( $order ? $order->get_total () : WC ()->cart->total ) );
|
147 |
+
}
|
148 |
+
}
|
149 |
+
|
150 |
+
public static function output_fields($prefix) {
|
151 |
+
$fields = WC ()->checkout ()->get_checkout_fields ( $prefix );
|
152 |
+
foreach ( $fields as $key => $field ) {
|
153 |
+
printf ( '<input type="hidden" id="%1$s" name="%1$s" value="%2$s"/>', $key, WC ()->checkout ()->get_value ( $key ) );
|
154 |
+
}
|
155 |
+
}
|
156 |
+
|
157 |
+
public static function output_needs_shipping($needs_shipping) {
|
158 |
+
printf ( '<input type="hidden" id="wc_stripe_needs_shipping" data-value="%s" />', $needs_shipping );
|
159 |
+
}
|
160 |
+
}
|
161 |
+
if (! is_admin ()) {
|
162 |
+
WC_Stripe_Field_Manager::init ();
|
163 |
+
}
|
includes/class-wc-stripe-frontend-notices.php
ADDED
@@ -0,0 +1,56 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class that manages frontend notices for customers.
|
4 |
+
* @author PaymentPlugins
|
5 |
+
* @package Stripe/Classes
|
6 |
+
* @since 3.0.0
|
7 |
+
*
|
8 |
+
*/
|
9 |
+
class WC_Stripe_Frontend_Notices {
|
10 |
+
|
11 |
+
public static function init() {
|
12 |
+
add_action ( 'wp_enqueue_scripts', [
|
13 |
+
__CLASS__, 'enqueue_scripts'
|
14 |
+
] );
|
15 |
+
}
|
16 |
+
|
17 |
+
public static function enqueue_scripts() {
|
18 |
+
if (isset ( $wp->query_vars[ 'order-received' ] )) {
|
19 |
+
$scripts = wc_stripe ()->scripts ();
|
20 |
+
$order_id = absint ( $wp->query_vars[ 'order-received' ] );
|
21 |
+
$order = wc_get_order ( $order_id );
|
22 |
+
$notices = [];
|
23 |
+
if (( $message = $order->get_meta ( '_wc_stripe_order_error', true ) )) {
|
24 |
+
$notices[] = wc_get_template_html ( "notices/notice.php", [
|
25 |
+
'messages' => [ $message
|
26 |
+
]
|
27 |
+
] );
|
28 |
+
}
|
29 |
+
if ($order->has_status ( 'on-hold' )) {
|
30 |
+
$payment_method = $order->get_payment_method ();
|
31 |
+
$gateway = WC ()->payment_gateways ()->payment_gateways ()[ $payment_method ];
|
32 |
+
if ($gateway instanceof WC_Payment_Gateway_Stripe_Local_Payment) {
|
33 |
+
$notices[] = wc_get_template_html ( "notices/notice.php", [
|
34 |
+
'messages' => [
|
35 |
+
__ ( 'Your payment is being processed and your order status will be updated once the funds are received.', 'woo-stripe' )
|
36 |
+
]
|
37 |
+
] );
|
38 |
+
}
|
39 |
+
if ($notices) {
|
40 |
+
self::enqueue_notices ( $notices );
|
41 |
+
}
|
42 |
+
}
|
43 |
+
}
|
44 |
+
}
|
45 |
+
|
46 |
+
public static function enqueue_notices($notices) {
|
47 |
+
$scripts->enqueue_script ( 'notices', $scripts->assets_url ( 'js/frontend/notices.js' ), [
|
48 |
+
'jquery'
|
49 |
+
], wc_stripe ()->version (), true );
|
50 |
+
$scripts->localize_script ( 'notices', [
|
51 |
+
'container' => '.woocommerce-order',
|
52 |
+
'notices' => $notices
|
53 |
+
] );
|
54 |
+
}
|
55 |
+
}
|
56 |
+
WC_Stripe_Frontend_Notices::init ();
|
includes/class-wc-stripe-frontend-scripts.php
ADDED
@@ -0,0 +1,101 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Handles scrip enqueuement and output of params needed by the plugin.
|
4 |
+
* @package Stripe/Classes
|
5 |
+
* @author PaymentPlugins
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
class WC_Stripe_Frontend_Scripts {
|
9 |
+
|
10 |
+
public $prefix = 'wc-stripe-';
|
11 |
+
|
12 |
+
public $registered_scripts = array();
|
13 |
+
|
14 |
+
public $enqueued_scripts = array();
|
15 |
+
|
16 |
+
public $localized_scripts = array();
|
17 |
+
|
18 |
+
public $global_scripts = array(
|
19 |
+
'external' => 'https://js.stripe.com/v3/',
|
20 |
+
'gpay' => 'https://pay.google.com/gp/p/js/pay.js'
|
21 |
+
);
|
22 |
+
|
23 |
+
public function __construct() {
|
24 |
+
add_action ( 'wp_enqueue_scripts', array( $this,
|
25 |
+
'enqueue_scripts'
|
26 |
+
) );
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Enqueue all frontend scripts needed by the plugin
|
31 |
+
*/
|
32 |
+
public function enqueue_scripts() {
|
33 |
+
// register global scripts
|
34 |
+
foreach ( $this->global_scripts as $handle => $src ) {
|
35 |
+
$this->register_script ( $handle, $src );
|
36 |
+
}
|
37 |
+
|
38 |
+
// register scripts that aren't part of gateways
|
39 |
+
$this->register_script ( 'wc-stripe', $this->assets_url ( 'js/frontend/wc-stripe' . $this->get_min () . '.js' ), array(
|
40 |
+
'jquery', $this->get_handle ( 'external' )
|
41 |
+
) );
|
42 |
+
|
43 |
+
$this->register_script ( 'form-handler', $this->assets_url ( 'js/frontend/form-handler.js' ), array(
|
44 |
+
'jquery'
|
45 |
+
) );
|
46 |
+
|
47 |
+
wp_localize_script ( $this->get_handle ( 'wc-stripe' ), 'wc_stripe_params', [
|
48 |
+
'api_key' => wc_stripe_get_publishable_key ()
|
49 |
+
] );
|
50 |
+
}
|
51 |
+
|
52 |
+
public function register_script($handle, $src, $deps = array(), $version = '', $footer = true) {
|
53 |
+
$version = empty ( $version ) ? wc_stripe ()->version () : $version;
|
54 |
+
$this->registered_scripts[] = $this->get_handle ( $handle );
|
55 |
+
wp_register_script ( $this->get_handle ( $handle ), $src, $deps, $version, $footer );
|
56 |
+
}
|
57 |
+
|
58 |
+
public function enqueue_script($handle, $src = '', $deps = array(), $version = '', $footer = true) {
|
59 |
+
$handle = $this->get_handle ( $handle );
|
60 |
+
$version = empty ( $version ) ? wc_stripe ()->version () : $version;
|
61 |
+
if (! in_array ( $handle, $this->registered_scripts )) {
|
62 |
+
$this->register_script ( $handle, $src, $deps, $version, $footer );
|
63 |
+
}
|
64 |
+
$this->enqueued_scripts[] = $handle;
|
65 |
+
wp_enqueue_script ( $handle );
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
*
|
70 |
+
* @param string $handle
|
71 |
+
* @param array $data
|
72 |
+
*/
|
73 |
+
public function localize_script($handle, $data) {
|
74 |
+
$handle = $this->get_handle ( $handle );
|
75 |
+
if (wp_script_is ( $handle ) && ! in_array ( $handle, $this->localized_scripts )) {
|
76 |
+
$name = str_replace ( $this->prefix, '', $handle );
|
77 |
+
$data = apply_filters ( 'wc_stripe_localize_script_' . $name, $data, $name );
|
78 |
+
if ($data) {
|
79 |
+
$this->localized_scripts[] = $handle;
|
80 |
+
$object_name = str_replace ( '-', '_', $handle ) . '_params';
|
81 |
+
wp_localize_script ( $handle, $object_name, $data );
|
82 |
+
}
|
83 |
+
}
|
84 |
+
}
|
85 |
+
|
86 |
+
public function get_handle($handle) {
|
87 |
+
return strpos ( $handle, $this->prefix ) === false ? $this->prefix . $handle : $handle;
|
88 |
+
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
*
|
92 |
+
* @param string $uri
|
93 |
+
*/
|
94 |
+
public function assets_url($uri = '') {
|
95 |
+
return untrailingslashit ( wc_stripe ()->assets_url ( $uri ) );
|
96 |
+
}
|
97 |
+
|
98 |
+
public function get_min() {
|
99 |
+
return $suffix = SCRIPT_DEBUG ? '' : '.min';
|
100 |
+
}
|
101 |
+
}
|
includes/class-wc-stripe-gateway.php
ADDED
@@ -0,0 +1,368 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
use Stripe\ApiOperations\Create;
|
3 |
+
use Stripe\ApiOperations\Retrieve;
|
4 |
+
use Stripe\ApiOperations\Update;
|
5 |
+
use Stripe\ApiOperations\All;
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Gateway class that abstracts all API calls to Stripe.
|
9 |
+
*
|
10 |
+
* @author Payment Plugins
|
11 |
+
* @package Stripe/Classes
|
12 |
+
*
|
13 |
+
*/
|
14 |
+
class WC_Stripe_Gateway {
|
15 |
+
|
16 |
+
public function __construct() {}
|
17 |
+
|
18 |
+
public static function init() {
|
19 |
+
\Stripe\Stripe::setAppInfo ( 'Wordpress woo-stripe-payment', wc_stripe ()->version (), 'https://wordpress.org/plugins/woo-stripe-payment/', 'pp_partner_FdPtriN2Q7JLOe' );
|
20 |
+
\Stripe\Stripe::setApiVersion ( '2019-05-16' );
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Create a customer within Stripe.
|
25 |
+
*
|
26 |
+
* @param array $args
|
27 |
+
* @return WP_Error|string
|
28 |
+
*/
|
29 |
+
public function create_customer($args, $mode = '') {
|
30 |
+
try {
|
31 |
+
$customer = \Stripe\Customer::create ( apply_filters ( 'wc_stripe_create_customer_args', $args ), $this->get_api_options () );
|
32 |
+
return $customer->id;
|
33 |
+
} catch ( \Stripe\Error\Base $e ) {
|
34 |
+
$err = $e->getJsonBody ();
|
35 |
+
return new WP_Error ( 'customer-error', $err[ 'message' ] );
|
36 |
+
}
|
37 |
+
}
|
38 |
+
|
39 |
+
public function update_customer($id, $args, $mode = '') {
|
40 |
+
try {
|
41 |
+
return \Stripe\Customer::update ( $id, $args, $this->get_api_options ( $mode ) );
|
42 |
+
} catch ( \Stripe\Error\Base $e ) {
|
43 |
+
$err = $e->getJsonBody ();
|
44 |
+
return new WP_Error ( 'customer-error', $err[ 'message' ] );
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
public function charge($args, $mode = '') {
|
49 |
+
try {
|
50 |
+
return \Stripe\Charge::create ( $args, $this->get_api_options ( $mode ) );
|
51 |
+
} catch ( \Stripe\Error\Base $e ) {
|
52 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
53 |
+
return new WP_Error ( 'charge-error', $err[ 'message' ] );
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
*
|
59 |
+
* @param array $args
|
60 |
+
* @param string $mode
|
61 |
+
* @return WP_Error|\Stripe\PaymentIntent
|
62 |
+
*/
|
63 |
+
public function create_payment_intent($args, $mode = '') {
|
64 |
+
try {
|
65 |
+
return \Stripe\PaymentIntent::create ( $args, $this->get_api_options ( $mode ) );
|
66 |
+
} catch ( \Stripe\Error\Base $e ) {
|
67 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
68 |
+
return new WP_Error ( 'payment-intent-error', $err[ 'message' ] );
|
69 |
+
}
|
70 |
+
}
|
71 |
+
|
72 |
+
public function create_setup_intent($args, $mode = '') {
|
73 |
+
try {
|
74 |
+
return \Stripe\SetupIntent::create ( $args, $this->get_api_options ( $mode ) );
|
75 |
+
} catch ( \Stripe\Error\Base $e ) {
|
76 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
77 |
+
return new WP_Error ( 'setup-intent-error', $err[ 'message' ] );
|
78 |
+
}
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
*
|
83 |
+
* @param \Stripe\PaymentIntent $intent
|
84 |
+
* @param array $args
|
85 |
+
* @param string $mode
|
86 |
+
*/
|
87 |
+
public function update_payment_intent($id, $args, $mode = '') {
|
88 |
+
try {
|
89 |
+
return \Stripe\PaymentIntent::update ( $id, $args, $this->get_api_options ( $mode ) );
|
90 |
+
} catch ( \Stripe\Error\Base $e ) {
|
91 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
92 |
+
return new WP_Error ( 'payment-intent-error', $err[ 'message' ] );
|
93 |
+
}
|
94 |
+
}
|
95 |
+
|
96 |
+
/**
|
97 |
+
*
|
98 |
+
* @param \Stripe\PaymentIntent $intent
|
99 |
+
* @param array $args
|
100 |
+
* @param string $mode
|
101 |
+
*/
|
102 |
+
public function confirm_payment_intent($intent, $args = [], $mode = '') {
|
103 |
+
try {
|
104 |
+
/*
|
105 |
+
* $intent = $this->fetch_payment_intent ( $id, $mode );
|
106 |
+
* if (is_wp_error ( $intent )) {
|
107 |
+
* return $intent;
|
108 |
+
* }
|
109 |
+
*/
|
110 |
+
return $intent->confirm ( $args, $this->get_api_options ( $mode ) );
|
111 |
+
} catch ( \Stripe\Error\Base $e ) {
|
112 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
113 |
+
return new WP_Error ( 'payment-intent-error', $err[ 'message' ] );
|
114 |
+
}
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
*
|
119 |
+
* @param string $id
|
120 |
+
* @param string $mode
|
121 |
+
* @return WP_Error|\Stripe\PaymentIntent
|
122 |
+
*/
|
123 |
+
public function fetch_payment_intent($id, $mode = '') {
|
124 |
+
try {
|
125 |
+
return \Stripe\PaymentIntent::retrieve ( $id, $this->get_api_options ( $mode ) );
|
126 |
+
} catch ( \Stripe\Error\Base $e ) {
|
127 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
128 |
+
return new WP_Error ( 'payment-intent-error', $err[ 'message' ] );
|
129 |
+
}
|
130 |
+
}
|
131 |
+
|
132 |
+
public function capture_payment_intent($id, $args = [], $mode = '') {
|
133 |
+
try {
|
134 |
+
$payment_intent = $this->fetch_payment_intent ( $id, $mode );
|
135 |
+
return $payment_intent->capture ( $args, $this->get_api_options ( $mode ) );
|
136 |
+
} catch ( \Stripe\Error\Base $e ) {
|
137 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
138 |
+
return new WP_Error ( 'payment-intent-error', $err[ 'message' ] );
|
139 |
+
}
|
140 |
+
}
|
141 |
+
|
142 |
+
public function cancel_payment_intent($id, $mode = '') {
|
143 |
+
try {
|
144 |
+
$payment_intent = $this->fetch_payment_intent ( $id, $mode );
|
145 |
+
return $payment_intent->cancel ( [], $this->get_api_options ( $mode ) );
|
146 |
+
} catch ( \Stripe\Error\Base $e ) {
|
147 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
148 |
+
return new WP_Error ( 'payment-intent-error', $err[ 'message' ] );
|
149 |
+
}
|
150 |
+
}
|
151 |
+
|
152 |
+
/**
|
153 |
+
*
|
154 |
+
* @param string $id
|
155 |
+
* @param string $mode
|
156 |
+
* @return WP_Error|\Stripe\SetupIntent
|
157 |
+
*/
|
158 |
+
public function fetch_setup_intent($id, $mode = '') {
|
159 |
+
try {
|
160 |
+
return \Stripe\SetupIntent::retrieve ( $id, $this->get_api_options ( $mode ) );
|
161 |
+
} catch ( \Stripe\Error\Base $e ) {
|
162 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
163 |
+
return new WP_Error ( $err[ 'code' ], $err[ 'message' ] );
|
164 |
+
}
|
165 |
+
}
|
166 |
+
|
167 |
+
public function capture($id, $args, $mode = '') {
|
168 |
+
$charge = $this->get_charge ( $id, $mode );
|
169 |
+
if (! is_wp_error ( $charge )) {
|
170 |
+
try {
|
171 |
+
return $charge->capture ( $args, $this->get_api_options ( $mode ) );
|
172 |
+
} catch ( \Stripe\Error\Base $e ) {
|
173 |
+
return new WP_Error ( 'capture-error', sprintf ( __ ( 'Error capturing charge. Reason: %s', 'woo-stripe' ), $e->getMessage () ) );
|
174 |
+
}
|
175 |
+
} else {
|
176 |
+
return $charge;
|
177 |
+
}
|
178 |
+
}
|
179 |
+
|
180 |
+
/**
|
181 |
+
*
|
182 |
+
* @param string $charge_id
|
183 |
+
* @param string $mode
|
184 |
+
* @return \Stripe\Charge|WP_Error
|
185 |
+
*/
|
186 |
+
public function get_charge($charge_id, $mode = '') {
|
187 |
+
try {
|
188 |
+
return \Stripe\Charge::retrieve ( $charge_id, $this->get_api_options ( $mode ) );
|
189 |
+
} catch ( \Stripe\Error\Base $e ) {
|
190 |
+
return new WP_Error ( $err[ 'code' ], $err[ 'message' ] );
|
191 |
+
}
|
192 |
+
}
|
193 |
+
|
194 |
+
public function refund($args, $mode = '') {
|
195 |
+
try {
|
196 |
+
return \Stripe\Refund::create ( $args, $this->get_api_options ( $mode ) );
|
197 |
+
} catch ( \Stripe\Error\Base $e ) {
|
198 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
199 |
+
return new WP_Error ( 'refund', $err[ 'message' ] );
|
200 |
+
}
|
201 |
+
}
|
202 |
+
|
203 |
+
public function get_payment_method($id, $mode = '') {
|
204 |
+
try {
|
205 |
+
return \Stripe\PaymentMethod::retrieve ( $id, $this->get_api_options ( $mode ) );
|
206 |
+
} catch ( \Stripe\Error\Base $e ) {
|
207 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
208 |
+
return new WP_Error ( 'payment-method', $err[ 'message' ] );
|
209 |
+
}
|
210 |
+
}
|
211 |
+
|
212 |
+
/**
|
213 |
+
*
|
214 |
+
* @param \Stripe\PaymentMethod $payment_method
|
215 |
+
* @param array $args
|
216 |
+
* @param string $mode
|
217 |
+
*/
|
218 |
+
public function attach_payment_method($payment_method, $args = [], $mode = '') {
|
219 |
+
try {
|
220 |
+
return $payment_method->attach ( $args, $this->get_api_options ( $mode ) );
|
221 |
+
} catch ( \Stripe\Error\Base $e ) {
|
222 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
223 |
+
return new WP_Error ( 'attach-payment-error', $err[ 'message' ] );
|
224 |
+
}
|
225 |
+
}
|
226 |
+
|
227 |
+
public function fetch_payment_method($id, $mode = '') {
|
228 |
+
try {
|
229 |
+
return \Stripe\PaymentMethod::retrieve ( $id, $this->get_api_options ( $mode ) );
|
230 |
+
} catch ( \Stripe\Error\Base $e ) {
|
231 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
232 |
+
return new WP_Error ( 'fetch-payment-error', $err[ 'message' ] );
|
233 |
+
}
|
234 |
+
}
|
235 |
+
|
236 |
+
/**
|
237 |
+
*
|
238 |
+
* @param \Stripe\PaymentMethod $payment_method
|
239 |
+
* @param string $mode
|
240 |
+
*/
|
241 |
+
public function delete_payment_method($payment_method, $mode = '') {
|
242 |
+
try {
|
243 |
+
return $payment_method->detach ( [], $this->get_api_options ( $mode ) );
|
244 |
+
} catch ( \Stripe\Error\Base $e ) {
|
245 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
246 |
+
return new WP_Error ( 'delete-source-error', $err[ 'message' ] );
|
247 |
+
}
|
248 |
+
}
|
249 |
+
|
250 |
+
/**
|
251 |
+
*
|
252 |
+
* @param string $id
|
253 |
+
* card id
|
254 |
+
* @param string $customer
|
255 |
+
* @param string $mode
|
256 |
+
*/
|
257 |
+
public function delete_card($id, $customer, $mode = '') {
|
258 |
+
try {
|
259 |
+
\Stripe\Customer::deleteSource ( $customer, $id, null, $this->get_api_options ( $mode ) );
|
260 |
+
} catch ( \Stripe\Error\Base $e ) {
|
261 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
262 |
+
return new WP_Error ( 'delete-source-error', $err[ 'message' ] );
|
263 |
+
}
|
264 |
+
}
|
265 |
+
|
266 |
+
/**
|
267 |
+
*
|
268 |
+
* @param array $args
|
269 |
+
* @param string $mode
|
270 |
+
* @return WP_Error|\Stripe\PaymentMethod
|
271 |
+
*/
|
272 |
+
public function create_payment_method($args, $mode = '') {
|
273 |
+
try {
|
274 |
+
return \Stripe\PaymentMethod::create ( $args, $this->get_api_options ( $mode ) );
|
275 |
+
} catch ( \Stripe\Error\Base $e ) {
|
276 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
277 |
+
return new WP_Error ( 'delete-source-error', $err[ 'message' ] );
|
278 |
+
}
|
279 |
+
}
|
280 |
+
|
281 |
+
/**
|
282 |
+
*
|
283 |
+
* @param string $id
|
284 |
+
* @param string $mode
|
285 |
+
* @return WP_Error|\Stripe\Source
|
286 |
+
*
|
287 |
+
*/
|
288 |
+
public function fetch_payment_source($id, $mode = '') {
|
289 |
+
try {
|
290 |
+
return \Stripe\Source::retrieve ( $id, $this->get_api_options ( $mode ) );
|
291 |
+
} catch ( \Stripe\Error\Base $e ) {
|
292 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
293 |
+
return new WP_Error ( 'source-error', $err[ 'message' ] );
|
294 |
+
}
|
295 |
+
}
|
296 |
+
|
297 |
+
/**
|
298 |
+
*
|
299 |
+
* @param string $customer_id
|
300 |
+
* @param string $id
|
301 |
+
* @param string $mode
|
302 |
+
* @return WP_Error|\Stripe\Source
|
303 |
+
*/
|
304 |
+
public function create_customer_source($customer_id, $id, $mode = '') {
|
305 |
+
try {
|
306 |
+
return \Stripe\Customer::createSource ( $customer_id, [
|
307 |
+
'source' => $id
|
308 |
+
], $this->get_api_options ( $mode ) );
|
309 |
+
} catch ( \Stripe\Error\Base $e ) {
|
310 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
311 |
+
return new WP_Error ( 'source-error', $err[ 'message' ] );
|
312 |
+
}
|
313 |
+
}
|
314 |
+
|
315 |
+
/**
|
316 |
+
*
|
317 |
+
* @param array $args
|
318 |
+
* @param string $mode
|
319 |
+
* @return WP_Error|\Stripe\Source
|
320 |
+
*/
|
321 |
+
public function create_source($args, $mode = '') {
|
322 |
+
try {
|
323 |
+
return \Stripe\Source::create ( $args, $this->get_api_options ( $mode ) );
|
324 |
+
} catch ( \Stripe\Error\Base $e ) {
|
325 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
326 |
+
return new WP_Error ( 'source-error', $err[ 'message' ] );
|
327 |
+
}
|
328 |
+
}
|
329 |
+
|
330 |
+
public function fetch_customer($customer_id, $mode = '') {
|
331 |
+
try {
|
332 |
+
return \Stripe\Customer::retrieve ( $customer_id, $this->get_api_options ( $mode ) );
|
333 |
+
} catch ( \Stripe\Error\Base $e ) {
|
334 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
335 |
+
return new WP_Error ( 'source-error', $err[ 'message' ] );
|
336 |
+
}
|
337 |
+
}
|
338 |
+
|
339 |
+
public function fetch_payment_methods($customer_id, $mode = '') {
|
340 |
+
try {
|
341 |
+
return \Stripe\PaymentMethod::all ( [
|
342 |
+
'customer' => $customer_id,
|
343 |
+
'type' => 'card'
|
344 |
+
], $this->get_api_options ( $mode ) );
|
345 |
+
} catch ( \Stripe\Error\Base $e ) {
|
346 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
347 |
+
return new WP_Error ( 'source-error', $err[ 'message' ] );
|
348 |
+
}
|
349 |
+
}
|
350 |
+
|
351 |
+
public function register_domain($domain, $mode = '') {
|
352 |
+
try {
|
353 |
+
\Stripe\ApplePayDomain::create ( [
|
354 |
+
'domain_name' => $domain
|
355 |
+
], $this->get_api_options ( $mode ) );
|
356 |
+
} catch ( \Stripe\Error\Base $e ) {
|
357 |
+
$err = $e->getJsonBody ()[ 'error' ];
|
358 |
+
return new WP_Error ( 'source-error', $err[ 'message' ] );
|
359 |
+
}
|
360 |
+
}
|
361 |
+
|
362 |
+
private function get_api_options($mode = '') {
|
363 |
+
return apply_filters ( 'wc_stripe_api_options', [
|
364 |
+
'api_key' => wc_stripe_get_secret_key ( $mode )
|
365 |
+
] );
|
366 |
+
}
|
367 |
+
}
|
368 |
+
WC_Stripe_Gateway::init ();
|
includes/class-wc-stripe-install.php
ADDED
@@ -0,0 +1,26 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
*@package Stripe/Classes
|
4 |
+
*
|
5 |
+
*/
|
6 |
+
class WC_Stripe_Install {
|
7 |
+
|
8 |
+
public static function init() {
|
9 |
+
add_filter ( 'plugin_action_links_' . WC_STRIPE_PLUGIN_NAME, array(
|
10 |
+
__CLASS__, 'plugin_action_links'
|
11 |
+
) );
|
12 |
+
}
|
13 |
+
|
14 |
+
/**
|
15 |
+
*
|
16 |
+
* @param array $links
|
17 |
+
*/
|
18 |
+
public static function plugin_action_links($links) {
|
19 |
+
$action_links = array(
|
20 |
+
'settings' => sprintf ( '<a href="%1$s">%2$s</a>', admin_url ( 'admin.php?page=wc-settings&tab=checkout§ion=stripe_api' ), esc_html__ ( 'Settings', 'woo-stripe' ) ),
|
21 |
+
'docs' => sprintf ( '<a target="_blank" href="https://docs.paymentplugins.com/wc-stripe/config">%s</a>', __ ( 'Documentation', 'woo-stripe' ) )
|
22 |
+
);
|
23 |
+
return array_merge ( $action_links, $links );
|
24 |
+
}
|
25 |
+
}
|
26 |
+
WC_Stripe_Install::init ();
|
includes/class-wc-stripe-redirect-handler.php
ADDED
@@ -0,0 +1,74 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
*
|
4 |
+
* @author PaymentPlugins
|
5 |
+
* @package Stripe/Classes
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
class WC_Stripe_Redirect_Handler {
|
9 |
+
|
10 |
+
public static function init() {
|
11 |
+
add_action ( 'template_redirect', [ __CLASS__,
|
12 |
+
'local_payment_redirect'
|
13 |
+
] );
|
14 |
+
}
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Check if this request is for a local payment redirect.
|
18 |
+
*/
|
19 |
+
public static function local_payment_redirect() {
|
20 |
+
// resource created server side.
|
21 |
+
if (isset ( $_GET[ 'wc-stripe-local-gateway' ], $_GET[ '_payment_nonce' ], $_GET[ 'order_id' ] ) && wp_verify_nonce ( $_GET[ '_payment_nonce' ], 'local-payment-' . $_GET[ 'order_id' ] )) {
|
22 |
+
self::process_redirect ( wc_clean ( absint ( $_GET[ 'order_id' ] ) ) );
|
23 |
+
}
|
24 |
+
// resource created client side.
|
25 |
+
if (isset ( $_GET[ 'wc-stripe-local-gateway' ], $_GET[ '_payment_nonce' ] ) && wp_verify_nonce ( $_GET[ '_payment_nonce' ], 'local-payment' )) {
|
26 |
+
self::process_redirect ( WC ()->session->get ( 'wc_stripe_order_id', 0 ) );
|
27 |
+
}
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
*/
|
32 |
+
public static function process_redirect($order_id) {
|
33 |
+
$order = wc_get_order ( $order_id );
|
34 |
+
$payment_method = wc_clean ( $_GET[ 'wc-stripe-local-gateway' ] );
|
35 |
+
// first do some validations on the source
|
36 |
+
$stripe_gateway = new WC_Stripe_Gateway ();
|
37 |
+
|
38 |
+
$source = $stripe_gateway->fetch_payment_source ( wc_clean ( $_GET[ 'source' ] ) );
|
39 |
+
if (is_wp_error ( $source )) {
|
40 |
+
wc_add_notice ( sprintf ( __ ( 'Error retrieving payment source. Reason: %s', 'woo-stripe' ), $source->get_error_message () ), 'error' );
|
41 |
+
return;
|
42 |
+
} else {
|
43 |
+
if ('failed' === $source->status) {
|
44 |
+
wc_add_notice ( __ ( 'Payment authorization failed. Please select another payment method.', 'woo-stripe' ), 'error' );
|
45 |
+
return;
|
46 |
+
}
|
47 |
+
}
|
48 |
+
$transaction_id = $order->get_transaction_id ();
|
49 |
+
// if there is no transaction ID then the order hasn't been processed via webhooks yet.
|
50 |
+
if (! $$transaction_id) {
|
51 |
+
$order->update_status ( 'on-hold', __ ( 'Status updated to on hold. Charge will be created when source.chargeable webhook received.', 'woo-stripe' ) );
|
52 |
+
}
|
53 |
+
wp_safe_redirect ( $order->get_checkout_order_received_url () );
|
54 |
+
exit ();
|
55 |
+
|
56 |
+
/**
|
57 |
+
*
|
58 |
+
* @var WC_Payment_Gateway_Stripe_Local_Payment $gateway
|
59 |
+
*/
|
60 |
+
/*
|
61 |
+
* $gateway = WC ()->payment_gateways ()->payment_gateways ()[ $payment_method ];
|
62 |
+
* $gateway->processing_payment = true;
|
63 |
+
* $_POST[ $gateway->token_key ] = wc_clean ( $_GET[ 'source' ] );
|
64 |
+
*
|
65 |
+
* $result = $gateway->process_payment ( $order_id );
|
66 |
+
*
|
67 |
+
* if (isset ( $result[ 'result' ] ) && 'success' === $result[ 'result' ]) {
|
68 |
+
* wp_safe_redirect ( $result[ 'redirect' ] );
|
69 |
+
* exit ();
|
70 |
+
* }
|
71 |
+
*/
|
72 |
+
}
|
73 |
+
}
|
74 |
+
WC_Stripe_Redirect_Handler::init ();
|
includes/class-wc-stripe-rest-api.php
ADDED
@@ -0,0 +1,114 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
*
|
4 |
+
* @author PaymentPlugins
|
5 |
+
* @package Stripe/Classes
|
6 |
+
* @propertyWC_Stripe_Rest_Controller $order_actions
|
7 |
+
* @property WC_Stripe_Rest_Controller $cart
|
8 |
+
* @property WC_Stripe_Rest_Controller $checkout
|
9 |
+
* @propertyWC_Stripe_Rest_Controller $payment_intent
|
10 |
+
* @property WC_Stripe_Rest_Controller $googlepay
|
11 |
+
* @property WC_Stripe_Rest_Controller $settings
|
12 |
+
* @property WC_Stripe_Rest_Controller $webhook
|
13 |
+
*/
|
14 |
+
class WC_Stripe_Rest_API {
|
15 |
+
|
16 |
+
/**
|
17 |
+
*
|
18 |
+
* @var array
|
19 |
+
*/
|
20 |
+
private $controllers = array();
|
21 |
+
|
22 |
+
public function __construct() {
|
23 |
+
$this->include_classes ();
|
24 |
+
add_action ( 'rest_api_init', array( $this,
|
25 |
+
'register_routes'
|
26 |
+
) );
|
27 |
+
}
|
28 |
+
|
29 |
+
public static function init() {
|
30 |
+
add_filter ( 'woocommerce_is_rest_api_request', array(
|
31 |
+
__CLASS__, 'is_rest_api_request'
|
32 |
+
) );
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
*
|
37 |
+
* @param WC_Braintree_Rest_Controller $key
|
38 |
+
*/
|
39 |
+
public function __get($key) {
|
40 |
+
$controller = isset ( $this->controllers[ $key ] ) ? $this->controllers[ $key ] : '';
|
41 |
+
if (empty ( $controller )) {
|
42 |
+
wc_doing_it_wrong ( __FUNCTION__, sprintf ( __ ( '%1$s is an invalid controller name.', 'woo-stripe' ), $key ), wc_stripe ()->version );
|
43 |
+
}
|
44 |
+
return $controller;
|
45 |
+
}
|
46 |
+
|
47 |
+
public function __set($key, $value) {
|
48 |
+
$this->controllers[ $key ] = $value;
|
49 |
+
}
|
50 |
+
|
51 |
+
private function include_classes() {
|
52 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/abstract/abstract-wc-stripe-rest-controller.php';
|
53 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/controllers/class-wc-stripe-controller-order-actions.php';
|
54 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/controllers/class-wc-stripe-controller-payment-intent.php';
|
55 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/controllers/class-wc-stripe-controller-cart.php';
|
56 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/controllers/class-wc-stripe-controller-checkout.php';
|
57 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/controllers/class-wc-stripe-controller-googlepay.php';
|
58 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/controllers/class-wc-stripe-controller-payment-method.php';
|
59 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/controllers/class-wc-stripe-controller-gateway-settings.php';
|
60 |
+
include_once WC_STRIPE_PLUGIN_PATH . 'includes/controllers/class-wc-stripe-controller-webhook.php';
|
61 |
+
|
62 |
+
foreach ( $this->get_controllers () as $key => $class_name ) {
|
63 |
+
if (class_exists ( $class_name )) {
|
64 |
+
$this->{$key} = new $class_name ();
|
65 |
+
}
|
66 |
+
}
|
67 |
+
}
|
68 |
+
|
69 |
+
public function register_routes() {
|
70 |
+
WC ()->payment_gateways ();
|
71 |
+
foreach ( $this->controllers as $key => $controller ) {
|
72 |
+
if (is_callable ( array( $controller,
|
73 |
+
'register_routes'
|
74 |
+
) )) {
|
75 |
+
$controller->{ 'register_routes' } ();
|
76 |
+
}
|
77 |
+
}
|
78 |
+
}
|
79 |
+
|
80 |
+
public function get_controllers() {
|
81 |
+
$controllers = array(
|
82 |
+
'order_actions' => 'WC_Stripe_Controller_Order_Actions',
|
83 |
+
'checkout' => 'WC_Stripe_Controller_Checkout',
|
84 |
+
'cart' => 'WC_Stripe_Controller_Cart',
|
85 |
+
'payment_intent' => 'WC_Stripe_Controller_Payment_Intent',
|
86 |
+
'googlepay' => 'WC_Stripe_Controller_GooglePay',
|
87 |
+
'payment_method' => 'WC_Stripe_Controller_Payment_Method',
|
88 |
+
'settings' => 'WC_Stripe_Controller_Gateway_Settings',
|
89 |
+
'webhook' => 'WC_Stripe_Controller_Webhook'
|
90 |
+
);
|
91 |
+
return apply_filters ( 'wc_stripe_api_controllers', $controllers );
|
92 |
+
}
|
93 |
+
|
94 |
+
public function rest_url() {
|
95 |
+
return wc_stripe ()->rest_url ();
|
96 |
+
}
|
97 |
+
|
98 |
+
public function rest_uri() {
|
99 |
+
return wc_stripe ()->rest_uri ();
|
100 |
+
}
|
101 |
+
|
102 |
+
/**
|
103 |
+
* Added after WC 3.6 so WC_STRIPE_PLUGIN_PATH, and Session are loaded for Stripe rest requests.
|
104 |
+
*
|
105 |
+
* @param bool $bool
|
106 |
+
*/
|
107 |
+
public static function is_rest_api_request($bool) {
|
108 |
+
if (! empty ( $_SERVER[ 'REQUEST_URI' ] ) && strpos ( $_SERVER[ 'REQUEST_URI' ], wc_stripe ()->rest_uri () ) !== - 1) {
|
109 |
+
$bool = false;
|
110 |
+
}
|
111 |
+
return $bool;
|
112 |
+
}
|
113 |
+
}
|
114 |
+
WC_Stripe_Rest_API::init ();
|
includes/controllers/class-wc-stripe-controller-cart.php
ADDED
@@ -0,0 +1,237 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Controller class that perfors cart operations for client side requests.
|
4 |
+
* @author PaymentPlugins
|
5 |
+
* @package Stripe/Controllers
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
class WC_Stripe_Controller_Cart extends WC_Stripe_Rest_Controller {
|
9 |
+
|
10 |
+
protected $namespace = 'cart/';
|
11 |
+
|
12 |
+
public function register_routes() {
|
13 |
+
register_rest_route ( $this->rest_uri (), 'shipping-method', [
|
14 |
+
'methods' => WP_REST_Server::CREATABLE,
|
15 |
+
'callback' => [ $this,
|
16 |
+
'update_shipping_method'
|
17 |
+
],
|
18 |
+
'args' => [
|
19 |
+
'shipping_methods' => [
|
20 |
+
'required' => true
|
21 |
+
],
|
22 |
+
'payment_method' => [
|
23 |
+
'required' => true
|
24 |
+
]
|
25 |
+
]
|
26 |
+
] );
|
27 |
+
register_rest_route ( $this->rest_uri (), 'shipping-address', [
|
28 |
+
'methods' => WP_REST_Server::CREATABLE,
|
29 |
+
'callback' => [ $this,
|
30 |
+
'update_shipping_address'
|
31 |
+
],
|
32 |
+
'args' => [
|
33 |
+
'address' => [
|
34 |
+
'required' => true
|
35 |
+
],
|
36 |
+
'payment_method' => [
|
37 |
+
'required' => true
|
38 |
+
]
|
39 |
+
]
|
40 |
+
] );
|
41 |
+
register_rest_route ( $this->rest_uri (), 'add-to-cart', [
|
42 |
+
'methods' => WP_REST_Server::CREATABLE,
|
43 |
+
'callback' => [ $this, 'add_to_cart'
|
44 |
+
],
|
45 |
+
'args' => [
|
46 |
+
'product_id' => [
|
47 |
+
'required' => true
|
48 |
+
],
|
49 |
+
'qty' => [ 'required' => true,
|
50 |
+
'validate_callback' => [
|
51 |
+
$this,
|
52 |
+
'validate_quantity'
|
53 |
+
]
|
54 |
+
],
|
55 |
+
'payment_method' => [
|
56 |
+
'required' => true
|
57 |
+
]
|
58 |
+
]
|
59 |
+
] );
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
*
|
64 |
+
* @param int $qty
|
65 |
+
* @param WP_REST_Request $request
|
66 |
+
*/
|
67 |
+
public function validate_quantity($qty, $request) {
|
68 |
+
if ($qty == 0) {
|
69 |
+
return $this->add_validation_error ( new WP_Error ( 'cart-error', __ ( 'Quantity must be greater than zero.', 'woo-stripe' ) ) );
|
70 |
+
}
|
71 |
+
return true;
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* Update the shipping method chosen by the customer.
|
76 |
+
*
|
77 |
+
* @param WP_REST_Request $request
|
78 |
+
*/
|
79 |
+
public function update_shipping_method($request) {
|
80 |
+
wc_maybe_define_constant ( 'WOOCOMMERCE_CART', true );
|
81 |
+
$shipping_methods = $request->get_param ( 'shipping_methods' );
|
82 |
+
$payment_method = $request->get_param ( 'payment_method' );
|
83 |
+
/**
|
84 |
+
*
|
85 |
+
* @var WC_Payment_Gateway_Stripe $gateway
|
86 |
+
*/
|
87 |
+
$gateway = WC ()->payment_gateways ()->payment_gateways ()[ $payment_method ];
|
88 |
+
|
89 |
+
wc_stripe_update_shipping_methods ( $shipping_methods );
|
90 |
+
|
91 |
+
WC ()->cart->calculate_totals ();
|
92 |
+
|
93 |
+
return rest_ensure_response ( apply_filters ( 'wc_stripe_update_shipping_method_response', [
|
94 |
+
'data' => $gateway->get_update_shipping_method_response ( [
|
95 |
+
'newData' => [
|
96 |
+
'status' => 'success',
|
97 |
+
'total' => [
|
98 |
+
'amount' => wc_stripe_add_number_precision ( WC ()->cart->total ),
|
99 |
+
'label' => __ ( 'Total', 'woo-stripe' ),
|
100 |
+
'pending' => false
|
101 |
+
],
|
102 |
+
'displayItems' => wc_stripe_get_display_items (),
|
103 |
+
'shippingOptions' => wc_stripe_get_shipping_options ()
|
104 |
+
],
|
105 |
+
'shipping_methods' => WC ()->session->get ( 'chosen_shipping_methods', [] )
|
106 |
+
] )
|
107 |
+
] ) );
|
108 |
+
}
|
109 |
+
|
110 |
+
/**
|
111 |
+
*
|
112 |
+
* @param WP_REST_Request $request
|
113 |
+
*/
|
114 |
+
public function update_shipping_address($request) {
|
115 |
+
wc_maybe_define_constant ( 'WOOCOMMERCE_CART', true );
|
116 |
+
$address = $request->get_param ( 'address' );
|
117 |
+
$payment_method = $request->get_param ( 'payment_method' );
|
118 |
+
/**
|
119 |
+
*
|
120 |
+
* @var WC_Payment_Gateway_Stripe $gateway
|
121 |
+
*/
|
122 |
+
$gateway = WC ()->payment_gateways ()->payment_gateways ()[ $payment_method ];
|
123 |
+
try {
|
124 |
+
wc_stripe_update_customer_location ( $address );
|
125 |
+
|
126 |
+
// calculate cart totals so shipping etc is updated.
|
127 |
+
WC ()->cart->calculate_totals ();
|
128 |
+
|
129 |
+
if (! $this->has_shipping_methods ( WC ()->shipping ()->get_packages () )) {
|
130 |
+
throw new Exception ( 'No valid shipping methods.' );
|
131 |
+
}
|
132 |
+
|
133 |
+
return rest_ensure_response ( apply_filters ( 'wc_stripe_update_shipping_method_response', [
|
134 |
+
'data' => $gateway->get_update_shipping_address_response ( [
|
135 |
+
'newData' => [
|
136 |
+
'status' => 'success',
|
137 |
+
'total' => [
|
138 |
+
'amount' => wc_stripe_add_number_precision ( WC ()->cart->total ),
|
139 |
+
'label' => __ ( 'Total', 'woo-stripe' ),
|
140 |
+
'pending' => false
|
141 |
+
],
|
142 |
+
'displayItems' => wc_stripe_get_display_items (),
|
143 |
+
'shippingOptions' => wc_stripe_get_shipping_options ()
|
144 |
+
]
|
145 |
+
] )
|
146 |
+
] ) );
|
147 |
+
} catch ( Exception $e ) {
|
148 |
+
return new WP_Error ( 'address-error', $e->getMessage (), [
|
149 |
+
'status' => 200,
|
150 |
+
'newData' => [
|
151 |
+
'status' => 'invalid_shipping_address'
|
152 |
+
]
|
153 |
+
] );
|
154 |
+
}
|
155 |
+
}
|
156 |
+
|
157 |
+
/**
|
158 |
+
*
|
159 |
+
* @param WP_REST_Request $request
|
160 |
+
*/
|
161 |
+
public function add_to_cart($request) {
|
162 |
+
// WC 3.0.0 requires WOOCOMMERCE_CART to be defined.
|
163 |
+
wc_maybe_define_constant ( 'WOOCOMMERCE_CART', true );
|
164 |
+
$payment_method = $request->get_param ( 'payment_method' );
|
165 |
+
/**
|
166 |
+
*
|
167 |
+
* @var WC_Payment_Gateway_Stripe $gateway
|
168 |
+
*/
|
169 |
+
$gateway = WC ()->payment_gateways ()->payment_gateways ()[ $payment_method ];
|
170 |
+
|
171 |
+
// empty the cart since we only care about adding the product selected by the customer
|
172 |
+
WC ()->cart->empty_cart ();
|
173 |
+
$product_id = $request->get_param ( 'product_id' );
|
174 |
+
$qty = $request->get_param ( 'qty' );
|
175 |
+
$variation_id = $request->get_param ( 'variation_id' ) == null ? 0 : $request->get_param ( 'variation_id' );
|
176 |
+
if (WC ()->cart->add_to_cart ( $product_id, $qty, $variation_id ) == false) {
|
177 |
+
return new WP_Error ( 'cart-error', $this->get_error_messages (), [
|
178 |
+
'status' => 200
|
179 |
+
] );
|
180 |
+
} else {
|
181 |
+
WC ()->cart->calculate_totals ();
|
182 |
+
// add to cart was successful. Send a new X-WP-Nonce since it will be different now that a WC session exists.
|
183 |
+
rest_get_server ()->send_header ( 'X-WP-Nonce', wp_create_nonce ( 'wp_rest' ) );
|
184 |
+
return rest_ensure_response ( apply_filters ( 'wc_stripe_add_to_cart_response', [
|
185 |
+
'data' => $gateway->add_to_cart_response ( [
|
186 |
+
'total' => WC ()->cart->total,
|
187 |
+
'subtotal' => WC ()->cart->subtotal,
|
188 |
+
'totalCents' => wc_stripe_add_number_precision ( WC ()->cart->total ),
|
189 |
+
'displayItems' => wc_stripe_get_display_items (),
|
190 |
+
'shippingOptions' => wc_stripe_get_shipping_options ()
|
191 |
+
] )
|
192 |
+
], $gateway, $request ) );
|
193 |
+
}
|
194 |
+
}
|
195 |
+
|
196 |
+
protected function get_error_messages() {
|
197 |
+
return $this->get_messages ( 'error' );
|
198 |
+
}
|
199 |
+
|
200 |
+
/**
|
201 |
+
*
|
202 |
+
* {@inheritDoc}
|
203 |
+
*
|
204 |
+
* @see WC_Stripe_Rest_Controller::get_messages()
|
205 |
+
*/
|
206 |
+
protected function get_messages($types = 'all') {
|
207 |
+
$notices = wc_get_notices ();
|
208 |
+
$message = '';
|
209 |
+
if ($types !== 'all') {
|
210 |
+
$types = ( array ) $types;
|
211 |
+
foreach ( $notices as $type => $notice ) {
|
212 |
+
if (! in_array ( $type, $types )) {
|
213 |
+
unset ( $notices[ $type ] );
|
214 |
+
}
|
215 |
+
}
|
216 |
+
}
|
217 |
+
foreach ( $notices as $notice ) {
|
218 |
+
$message .= sprintf ( ' %s', $notice );
|
219 |
+
}
|
220 |
+
|
221 |
+
return trim ( $message );
|
222 |
+
}
|
223 |
+
|
224 |
+
/**
|
225 |
+
* Return true if the provided packages have shipping methods.
|
226 |
+
*
|
227 |
+
* @param array $packages
|
228 |
+
*/
|
229 |
+
private function has_shipping_methods($packages) {
|
230 |
+
foreach ( $packages as $i => $package ) {
|
231 |
+
if (! empty ( $package[ 'rates' ] )) {
|
232 |
+
return true;
|
233 |
+
}
|
234 |
+
}
|
235 |
+
return false;
|
236 |
+
}
|
237 |
+
}
|
includes/controllers/class-wc-stripe-controller-checkout.php
ADDED
@@ -0,0 +1,134 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! class_exists ( 'WC_Stripe_Rest_Controller' )) {
|
3 |
+
return;
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
*
|
7 |
+
* @author PaymentPlugins
|
8 |
+
* @since 3.0.0
|
9 |
+
* @package Stripe/Controllers
|
10 |
+
*
|
11 |
+
*/
|
12 |
+
class WC_Stripe_Controller_Checkout extends WC_Stripe_Rest_Controller {
|
13 |
+
|
14 |
+
protected $namespace = '';
|
15 |
+
|
16 |
+
public function register_routes() {
|
17 |
+
register_rest_route ( $this->rest_uri (), 'checkout', [
|
18 |
+
'methods' => WP_REST_Server::CREATABLE,
|
19 |
+
'callback' => [ $this,
|
20 |
+
'process_checkout'
|
21 |
+
]
|
22 |
+
] );
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Process the WC Order
|
27 |
+
*
|
28 |
+
* @param WP_REST_Request $request
|
29 |
+
*/
|
30 |
+
public function process_checkout($request) {
|
31 |
+
wc_maybe_define_constant ( 'DOING_AJAX', true );
|
32 |
+
$this->actions ();
|
33 |
+
$checkout = WC ()->checkout ();
|
34 |
+
$payment_method = $request->get_param ( 'payment_method' );
|
35 |
+
/**
|
36 |
+
*
|
37 |
+
* @var WC_Payment_Gateway_Stripe $gateway
|
38 |
+
*/
|
39 |
+
$gateway = WC ()->payment_gateways ()->payment_gateways ()[ $payment_method ];
|
40 |
+
|
41 |
+
$this->required_post_data ();
|
42 |
+
|
43 |
+
try {
|
44 |
+
do_action ( 'wc_stripe_rest_process_checkout', $request, $gateway );
|
45 |
+
if (! is_user_logged_in ()) {
|
46 |
+
$this->create_customer ( $request );
|
47 |
+
}
|
48 |
+
// set the checkout nonce so no exceptions are thrown.
|
49 |
+
$_REQUEST[ '_wpnonce' ] = $_POST[ '_wpnonce' ] = wp_create_nonce ( 'woocommerce-process_checkout' );
|
50 |
+
$checkout->process_checkout ();
|
51 |
+
} catch ( Exception $e ) {
|
52 |
+
wc_add_notice ( $e->getMessage (), 'error' );
|
53 |
+
}
|
54 |
+
if (wc_notice_count ( 'error' ) > 0) {
|
55 |
+
return $this->send_response ( false );
|
56 |
+
}
|
57 |
+
return $this->send_response ( true );
|
58 |
+
}
|
59 |
+
|
60 |
+
/**
|
61 |
+
*
|
62 |
+
* @param WP_REST_Request $request
|
63 |
+
*/
|
64 |
+
private function create_customer($request) {
|
65 |
+
$create = WC ()->checkout ()->is_registration_required ();
|
66 |
+
// create an account for the user if it's required for things like subscriptions.
|
67 |
+
if (wcs_stripe_active () && WC_Subscriptions_Cart::cart_contains_subscription ()) {
|
68 |
+
$create = true;
|
69 |
+
}
|
70 |
+
if ($create) {
|
71 |
+
$password = wp_generate_password ();
|
72 |
+
$username = $email = $request->get_param ( 'billing_email' );
|
73 |
+
$result = wc_create_new_customer ( $email, $username, $password );
|
74 |
+
if ($result instanceof WP_Error) {
|
75 |
+
// for email exists errors you want customer to either login or use a different email address.
|
76 |
+
throw new Exception ( $result->get_error_message () );
|
77 |
+
}
|
78 |
+
$this->customer_id = $result;
|
79 |
+
|
80 |
+
// log the customer in
|
81 |
+
wp_set_current_user ( $this->customer_id );
|
82 |
+
wc_set_customer_auth_cookie ( $this->customer_id );
|
83 |
+
|
84 |
+
// As we are now logged in, cart will need to refresh to receive updated nonces
|
85 |
+
WC ()->session->set ( 'reload_checkout', true );
|
86 |
+
}
|
87 |
+
}
|
88 |
+
|
89 |
+
private function send_response($success) {
|
90 |
+
$reload = WC ()->session->get ( 'reload_checkout', false );
|
91 |
+
$data = array(
|
92 |
+
'result' => $success ? 'success' : 'failure',
|
93 |
+
'messages' => $reload ? null : $this->get_error_messages (),
|
94 |
+
'reload' => $reload
|
95 |
+
);
|
96 |
+
unset ( WC ()->session->reload_checkout );
|
97 |
+
return rest_ensure_response ( $data );
|
98 |
+
}
|
99 |
+
|
100 |
+
public function validate_payment_method($payment_method) {
|
101 |
+
$gateways = WC ()->payment_gateways ()->payment_gateways ();
|
102 |
+
return isset ( $gateways[ $payment_method ] ) ? true : new WP_Error ( 'validation-error', 'Please choose a valid payment method.' );
|
103 |
+
}
|
104 |
+
|
105 |
+
private function actions() {
|
106 |
+
add_action ( 'woocommerce_after_checkout_validation', array(
|
107 |
+
$this, 'after_checkout_validation'
|
108 |
+
), 10, 2 );
|
109 |
+
}
|
110 |
+
|
111 |
+
/**
|
112 |
+
*
|
113 |
+
* @param array $data
|
114 |
+
* @param WP_Error $errors
|
115 |
+
*/
|
116 |
+
public function after_checkout_validation($data, $errors) {
|
117 |
+
if ($errors->get_error_message ( 'required-field' )) {
|
118 |
+
wc_add_notice ( apply_filters ( 'wc_stripe_after_checkout_validation_notice', sprintf ( __ ( 'Some required fields were missing. Please click %shere%s to complete your payment.', 'woo-stripe-payments' ), '<a href="' . wc_get_checkout_url () . '">', '</a>' ), $data, $errors ), 'notice' );
|
119 |
+
wp_send_json ( array( 'result' => 'failure',
|
120 |
+
'messages' => $this->get_messages ( 'notice' ),
|
121 |
+
'reload' => false
|
122 |
+
), 200 );
|
123 |
+
}
|
124 |
+
}
|
125 |
+
|
126 |
+
private function required_post_data() {
|
127 |
+
if (WC ()->cart->needs_shipping ()) {
|
128 |
+
$_POST[ 'ship_to_different_address' ] = true;
|
129 |
+
}
|
130 |
+
if (wc_get_page_id ( 'terms' ) > 0) {
|
131 |
+
$_POST[ 'terms' ] = 1;
|
132 |
+
}
|
133 |
+
}
|
134 |
+
}
|
includes/controllers/class-wc-stripe-controller-gateway-settings.php
ADDED
@@ -0,0 +1,69 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @package Stripe/Controllers
|
4 |
+
* @author PaymentPlugins
|
5 |
+
*
|
6 |
+
*/
|
7 |
+
class WC_Stripe_Controller_Gateway_Settings extends WC_Stripe_Rest_Controller {
|
8 |
+
|
9 |
+
protected $namespace = 'gateway-settings/';
|
10 |
+
|
11 |
+
public function register_routes() {
|
12 |
+
register_rest_route ( $this->rest_uri (), 'apple-domain', [
|
13 |
+
'methods' => WP_REST_Server::CREATABLE,
|
14 |
+
'callback' => [ $this,
|
15 |
+
'register_apple_domain'
|
16 |
+
],
|
17 |
+
'permission_callback' => array( $this,
|
18 |
+
'admin_permission_check'
|
19 |
+
)
|
20 |
+
] );
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Register the site domain with Stripe for Apple Pay.
|
25 |
+
*
|
26 |
+
* @param WP_REST_Request $request
|
27 |
+
*/
|
28 |
+
public function register_apple_domain($request) {
|
29 |
+
$gateway = new WC_Stripe_Gateway ();
|
30 |
+
// try to add domain association file.
|
31 |
+
if (defined ( 'ABSPATH' )) {
|
32 |
+
$path = ABSPATH . '.well-known';
|
33 |
+
$file = $path . '/apple-developer-merchantid-domain-association';
|
34 |
+
if (! file_exists ( $file )) {
|
35 |
+
require_once ( ABSPATH . '/wp-admin/includes/file.php' );
|
36 |
+
if (function_exists ( 'WP_Filesystem' ) && ( WP_Filesystem () )) {
|
37 |
+
/**
|
38 |
+
*
|
39 |
+
* @var WP_Filesystem_Base $wp_filesystem
|
40 |
+
*/
|
41 |
+
global $wp_filesystem;
|
42 |
+
if (! $wp_filesystem->is_dir ( $path )) {
|
43 |
+
$wp_filesystem->mkdir ( $path );
|
44 |
+
}
|
45 |
+
$contents = $wp_filesystem->get_contents ( WC_STRIPE_PLUGIN_PATH . 'apple-developer-merchantid-domain-association' );
|
46 |
+
$wp_filesystem->put_contents ( $file, $contents, 0755 );
|
47 |
+
}
|
48 |
+
}
|
49 |
+
}
|
50 |
+
$server_name = $_SERVER[ 'SERVER_NAME' ];
|
51 |
+
try {
|
52 |
+
$api_key = wc_stripe_get_secret_key ( 'live' );
|
53 |
+
if (empty ( $api_key )) {
|
54 |
+
throw new Exception ( __ ( 'You cannot register your domain until you have configured your Live API keys.', 'woo-stripe' ) );
|
55 |
+
}
|
56 |
+
$result = $gateway->register_domain ( $server_name, 'live' );
|
57 |
+
if (is_wp_error ( $result )) {
|
58 |
+
throw new Exception ( $result->get_error_message () );
|
59 |
+
}
|
60 |
+
return rest_ensure_response ( [
|
61 |
+
'message' => sprintf ( __ ( 'Domain %s registered successfully. You can confirm in your Stripe Dashboard at https://dashboard.stripe.com/account/apple_pay.', 'woo-stripe' ), $server_name )
|
62 |
+
] );
|
63 |
+
} catch ( Exception $e ) {
|
64 |
+
return new WP_Error ( 'domain-error', $e->getMessage (), [
|
65 |
+
'status' => 200
|
66 |
+
] );
|
67 |
+
}
|
68 |
+
}
|
69 |
+
}
|
includes/controllers/class-wc-stripe-controller-googlepay.php
ADDED
@@ -0,0 +1,141 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! class_exists ( 'WC_Stripe_Rest_Controller' )) {
|
3 |
+
return;
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
*
|
7 |
+
* @author PaymentPlugins
|
8 |
+
* @package Stripe/Controllers
|
9 |
+
*/
|
10 |
+
class WC_Stripe_Controller_GooglePay extends WC_Stripe_Rest_Controller {
|
11 |
+
|
12 |
+
protected $namespace = 'googlepay/';
|
13 |
+
|
14 |
+
/**
|
15 |
+
*
|
16 |
+
* @var WC_Payment_Gateway_Stripe
|
17 |
+
*/
|
18 |
+
private $gateway;
|
19 |
+
|
20 |
+
/**
|
21 |
+
*
|
22 |
+
* @var string
|
23 |
+
*/
|
24 |
+
private $shipping_method_id;
|
25 |
+
|
26 |
+
/**
|
27 |
+
*
|
28 |
+
* @var array
|
29 |
+
*/
|
30 |
+
private $shipping_methods = [];
|
31 |
+
|
32 |
+
/**
|
33 |
+
*
|
34 |
+
* @var string
|
35 |
+
*/
|
36 |
+
private $reason_code;
|
37 |
+
|
38 |
+
public function register_routes() {
|
39 |
+
register_rest_route ( $this->rest_uri (), 'shipping-data', [
|
40 |
+
'methods' => WP_REST_Server::CREATABLE,
|
41 |
+
'callback' => [ $this,
|
42 |
+
'update_shipping_data'
|
43 |
+
],
|
44 |
+
'args' => [
|
45 |
+
'shipping_address' => [
|
46 |
+
'required' => true
|
47 |
+
],
|
48 |
+
'shipping_methods' => [
|
49 |
+
'required' => false
|
50 |
+
],
|
51 |
+
'shipping_method_id' => [
|
52 |
+
'required' => true
|
53 |
+
]
|
54 |
+
]
|
55 |
+
] );
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Update the WC shipping data from the Google payment sheet.
|
60 |
+
*
|
61 |
+
* @param WP_REST_Request $request
|
62 |
+
*/
|
63 |
+
public function update_shipping_data($request) {
|
64 |
+
wc_maybe_define_constant ( 'WOOCOMMERCE_CART', true );
|
65 |
+
$address = $request->get_param ( 'shipping_address' );
|
66 |
+
$this->shipping_methods = $request->get_param ( 'shipping_methods' );
|
67 |
+
$this->shipping_methods = null == $this->shipping_methods ? [] : $this->shipping_methods;
|
68 |
+
$this->shipping_method_id = $request->get_param ( 'shipping_method_id' );
|
69 |
+
|
70 |
+
$this->gateway = WC ()->payment_gateways ()->payment_gateways ()[ 'stripe_googlepay' ];
|
71 |
+
|
72 |
+
try {
|
73 |
+
wc_stripe_update_customer_location ( $address );
|
74 |
+
|
75 |
+
wc_stripe_update_shipping_methods ( $this->shipping_methods );
|
76 |
+
|
77 |
+
// update the WC cart with the new shipping options
|
78 |
+
WC ()->cart->calculate_totals ();
|
79 |
+
|
80 |
+
// if shipping address is not serviceable, throw an error.
|
81 |
+
if (! wc_stripe_shipping_address_serviceable ()) {
|
82 |
+
$this->reason_code = 'SHIPPING_ADDRESS_UNSERVICEABLE';
|
83 |
+
throw new Exception ( __ ( 'Your shipping address is not serviceable.', 'woo-stripe' ) );
|
84 |
+
}
|
85 |
+
|
86 |
+
return rest_ensure_response ( apply_filters ( 'wc_stripe_googlepay_paymentdata_response', [
|
87 |
+
'data' => [
|
88 |
+
'shipping_methods' => $this->get_shipping_methods (),
|
89 |
+
'paymentRequestUpdate' => $this->get_payment_response_data ()
|
90 |
+
]
|
91 |
+
] ) );
|
92 |
+
} catch ( Exception $e ) {
|
93 |
+
return new WP_Error ( 'payment-data-error', $e->getMessage (), [
|
94 |
+
'status' => 200,
|
95 |
+
'data' => [
|
96 |
+
'error' => [
|
97 |
+
'reason' => $this->reason_code,
|
98 |
+
'message' => $e->getMessage (),
|
99 |
+
'intent' => 'SHIPPING_ADDRESS'
|
100 |
+
]
|
101 |
+
]
|
102 |
+
] );
|
103 |
+
}
|
104 |
+
}
|
105 |
+
|
106 |
+
/**
|
107 |
+
* Return a formatted array of response data required by the Google payment sheet.
|
108 |
+
*/
|
109 |
+
public function get_payment_response_data() {
|
110 |
+
return [
|
111 |
+
'newTransactionInfo' => [
|
112 |
+
'currencyCode' => get_woocommerce_currency (),
|
113 |
+
'totalPriceStatus' => 'FINAL',
|
114 |
+
'totalPrice' => strval ( WC ()->cart->total ),
|
115 |
+
'displayItems' => $this->gateway->get_display_items (),
|
116 |
+
'totalPriceLabel' => __ ( 'Total', 'woo-stripe' )
|
117 |
+
],
|
118 |
+
'newShippingOptionParameters' => [
|
119 |
+
'shippingOptions' => $this->gateway->get_shipping_methods (),
|
120 |
+
'defaultSelectedOptionId' => $this->get_default_shipping_method ()
|
121 |
+
]
|
122 |
+
];
|
123 |
+
}
|
124 |
+
|
125 |
+
private function get_shipping_methods() {
|
126 |
+
return WC ()->session->get ( 'chosen_shipping_methods', [] );
|
127 |
+
}
|
128 |
+
|
129 |
+
/**
|
130 |
+
* Returns a default shipping method based on the chosen shipping methods.
|
131 |
+
*
|
132 |
+
* @return string
|
133 |
+
*/
|
134 |
+
private function get_default_shipping_method() {
|
135 |
+
$chosen_shipping_methods = WC ()->session->get ( 'chosen_shipping_methods', [] );
|
136 |
+
if (! empty ( $chosen_shipping_methods )) {
|
137 |
+
return sprintf ( '%s:%s', 0, current ( $chosen_shipping_methods ) );
|
138 |
+
}
|
139 |
+
return $this->shipping_method_id;
|
140 |
+
}
|
141 |
+
}
|
includes/controllers/class-wc-stripe-controller-order-actions.php
ADDED
@@ -0,0 +1,285 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
class WC_Stripe_Controller_Order_Actions extends WC_Stripe_Rest_Controller {
|
3 |
+
|
4 |
+
protected $namespace = 'order~action/';
|
5 |
+
|
6 |
+
public function register_routes() {
|
7 |
+
register_rest_route ( $this->rest_uri (), 'capture', array(
|
8 |
+
'methods' => WP_REST_Server::CREATABLE,
|
9 |
+
'callback' => array( $this, 'capture'
|
10 |
+
),
|
11 |
+
'permission_callback' => array( $this,
|
12 |
+
'admin_permission_check'
|
13 |
+
),
|
14 |
+
'args' => array(
|
15 |
+
'order_id' => array(
|
16 |
+
'required' => true,
|
17 |
+
'type' => 'int',
|
18 |
+
'validate_callback' => array(
|
19 |
+
$this,
|
20 |
+
'validate_order_id'
|
21 |
+
)
|
22 |
+
),
|
23 |
+
'amount' => array(
|
24 |
+
'required' => true,
|
25 |
+
'type' => 'float'
|
26 |
+
)
|
27 |
+
)
|
28 |
+
) );
|
29 |
+
register_rest_route ( $this->rest_uri (), 'void', array(
|
30 |
+
'methods' => WP_REST_Server::CREATABLE,
|
31 |
+
'callback' => array( $this, 'void'
|
32 |
+
),
|
33 |
+
'permission_callback' => array( $this,
|
34 |
+
'admin_permission_check'
|
35 |
+
),
|
36 |
+
'args' => array(
|
37 |
+
'order_id' => array(
|
38 |
+
'required' => true,
|
39 |
+
'type' => 'number',
|
40 |
+
'validate_callback' => array(
|
41 |
+
$this,
|
42 |
+
'validate_order_id'
|
43 |
+
)
|
44 |
+
)
|
45 |
+
)
|
46 |
+
) );
|
47 |
+
register_rest_route ( $this->rest_uri (), 'pay', array(
|
48 |
+
'methods' => WP_REST_Server::CREATABLE,
|
49 |
+
'callback' => array( $this,
|
50 |
+
'process_payment'
|
51 |
+
),
|
52 |
+
'permission_callback' => array( $this,
|
53 |
+
'admin_permission_check'
|
54 |
+
),
|
55 |
+
'args' => array(
|
56 |
+
'order_id' => array(
|
57 |
+
'required' => true,
|
58 |
+
'type' => 'number',
|
59 |
+
'validate_callback' => array(
|
60 |
+
$this,
|
61 |
+
'validate_order_id'
|
62 |
+
)
|
63 |
+
)
|
64 |
+
)
|
65 |
+
) );
|
66 |
+
register_rest_route ( $this->rest_uri (), 'customer-payment-methods', array(
|
67 |
+
'methods' => WP_REST_Server::READABLE,
|
68 |
+
'callback' => array( $this,
|
69 |
+
'customer_payment_methods'
|
70 |
+
),
|
71 |
+
'permission_callback' => array( $this,
|
72 |
+
'admin_permission_check'
|
73 |
+
),
|
74 |
+
'args' => array(
|
75 |
+
'customer_id' => array(
|
76 |
+
'required' => true,
|
77 |
+
'type' => 'number'
|
78 |
+
)
|
79 |
+
)
|
80 |
+
) );
|
81 |
+
register_rest_route ( $this->rest_uri (), 'charge-view', array(
|
82 |
+
'methods' => WP_REST_Server::READABLE,
|
83 |
+
'callback' => array( $this, 'charge_view'
|
84 |
+
),
|
85 |
+
'permission_callback' => array( $this,
|
86 |
+
'admin_permission_check'
|
87 |
+
),
|
88 |
+
'args' => array(
|
89 |
+
'order_id' => array(
|
90 |
+
'required' => true,
|
91 |
+
'type' => 'number'
|
92 |
+
)
|
93 |
+
)
|
94 |
+
) );
|
95 |
+
}
|
96 |
+
|
97 |
+
/**
|
98 |
+
* Return true if the order_id is a valid post.
|
99 |
+
*
|
100 |
+
* @param int $order_id
|
101 |
+
*/
|
102 |
+
public function validate_order_id($order_id) {
|
103 |
+
return null !== get_post ( $order_id );
|
104 |
+
}
|
105 |
+
|
106 |
+
/**
|
107 |
+
*
|
108 |
+
* @param WP_REST_Request $request
|
109 |
+
*/
|
110 |
+
public function capture($request) {
|
111 |
+
$order_id = $request->get_param ( 'order_id' );
|
112 |
+
$order = wc_get_order ( $order_id );
|
113 |
+
$amount = $request->get_param ( 'amount' );
|
114 |
+
if (! is_numeric ( $amount )) {
|
115 |
+
return new WP_Error ( 'invalid_data', __ ( 'Invalid amount entered.', 'woo-stripe' ), array(
|
116 |
+
'success' => false, 'status' => 200
|
117 |
+
) );
|
118 |
+
}
|
119 |
+
try {
|
120 |
+
/**
|
121 |
+
*
|
122 |
+
* @var WC_Payment_Gateway_Stripe $gateway
|
123 |
+
*/
|
124 |
+
$gateway = WC ()->payment_gateways ()->payment_gateways ()[ $order->get_payment_method () ];
|
125 |
+
$result = $gateway->capture_charge ( $amount, $order );
|
126 |
+
if (is_wp_error ( $result )) {
|
127 |
+
throw new Exception ( $result->get_error_message () );
|
128 |
+
}
|
129 |
+
return rest_ensure_response ( array() );
|
130 |
+
} catch ( Exception $e ) {
|
131 |
+
return new WP_Error ( 'capture-error', $e->getMessage (), array(
|
132 |
+
'status' => 200
|
133 |
+
) );
|
134 |
+
}
|
135 |
+
}
|
136 |
+
|
137 |
+
/**
|
138 |
+
*
|
139 |
+
* @param WP_REST_Request $request
|
140 |
+
*/
|
141 |
+
public function void($request) {
|
142 |
+
$order_id = $request->get_param ( 'order_id' );
|
143 |
+
$order = wc_get_order ( $order_id );
|
144 |
+
/**
|
145 |
+
* When the order's status is set to cancelled, the wc_stripe_order_cancelled
|
146 |
+
* function is called, which voids the charge.
|
147 |
+
*/
|
148 |
+
$order->update_status ( 'cancelled' );
|
149 |
+
return rest_ensure_response ( array() );
|
150 |
+
}
|
151 |
+
|
152 |
+
/**
|
153 |
+
* Process a payment as an admin.
|
154 |
+
*
|
155 |
+
* @param WP_REST_Request $request
|
156 |
+
*/
|
157 |
+
public function process_payment($request) {
|
158 |
+
$order_id = $request->get_param ( 'order_id' );
|
159 |
+
$payment_type = $request->get_param ( 'payment_type' );
|
160 |
+
$order = wc_get_order ( $order_id );
|
161 |
+
$use_token = $payment_type === 'token';
|
162 |
+
try {
|
163 |
+
// perform some validations
|
164 |
+
if ($order->get_total () == 0) {
|
165 |
+
if (! wcs_stripe_active ()) {
|
166 |
+
throw new Exception ( __ ( 'Order total must be greater than zero.', 'woo-stripe' ) );
|
167 |
+
} else {
|
168 |
+
if (! wcs_order_contains_subscription ( $order )) {
|
169 |
+
throw new Exception ( __ ( 'Order total must be greater than zero.', 'woo-stripe' ) );
|
170 |
+
}
|
171 |
+
}
|
172 |
+
}
|
173 |
+
if ($order->get_transaction_id ()) {
|
174 |
+
throw new Exception ( sprintf ( __ ( 'This order has already been processed. Transaction ID: %s. Payment method: %s', 'woo-stripe' ), $order->get_transaction_id (), $order->get_payment_method_title () ) );
|
175 |
+
}
|
176 |
+
if (! $use_token) {
|
177 |
+
// only credit card payments are allowed for one off payments as an admin.
|
178 |
+
$payment_method = 'stripe_cc';
|
179 |
+
} else if ($payment_type === 'token') {
|
180 |
+
$token_id = intval ( $request->get_param ( 'payment_token_id' ) );
|
181 |
+
$token = WC_Payment_Tokens::get ( $token_id );
|
182 |
+
if ($token->get_user_id () !== $order->get_customer_id ()) {
|
183 |
+
throw new Exception ( __ ( 'Order customer Id and payment method customer Id do not match.', 'woo-stripe' ) );
|
184 |
+
}
|
185 |
+
$payment_method = $token->get_gateway_id ();
|
186 |
+
}
|
187 |
+
/**
|
188 |
+
*
|
189 |
+
* @var WC_Payment_Gateway_Stripe $gateway
|
190 |
+
*/
|
191 |
+
$gateway = WC ()->payment_gateways ()->payment_gateways ()[ $payment_method ];
|
192 |
+
// temporarily set the charge type of the gateway to whatever the admin has selected.
|
193 |
+
$gateway->settings[ 'charge_type' ] = $request->get_param ( 'wc_stripe_charge_type' );
|
194 |
+
// set the payment gateway to the order.
|
195 |
+
$order->set_payment_method ( $gateway->id );
|
196 |
+
$order->save ();
|
197 |
+
if (! $use_token) {
|
198 |
+
$_POST[ $gateway->token_key ] = $request->get_param ( 'payment_nonce' );
|
199 |
+
} else {
|
200 |
+
$gateway->set_payment_method_token ( $token->get_token () );
|
201 |
+
}
|
202 |
+
|
203 |
+
// set intent atttribute off_session. Stripe requires confirm to be true to use off session.
|
204 |
+
add_filter ( 'wc_stripe_payment_intent_args', function ($args) {
|
205 |
+
$args[ 'confirm' ] = true;
|
206 |
+
$args[ 'off_session' ] = true;
|
207 |
+
return $args;
|
208 |
+
} );
|
209 |
+
|
210 |
+
$result = $gateway->process_payment ( $order_id );
|
211 |
+
|
212 |
+
if (isset ( $result[ 'result' ] ) && $result[ 'result' ] === 'success') {
|
213 |
+
return rest_ensure_response ( array(
|
214 |
+
'success' => true
|
215 |
+
) );
|
216 |
+
} else {
|
217 |
+
// create a new order since updates to the order were made during the process_payment call.
|
218 |
+
$order = wc_get_order ( $order_id );
|
219 |
+
$order->update_status ( 'pending' );
|
220 |
+
return new WP_Error ( 'order-error', $this->get_error_messages (), [
|
221 |
+
'status' => 200, 'success' => false
|
222 |
+
] );
|
223 |
+
}
|
224 |
+
} catch ( Exception $e ) {
|
225 |
+
return new WP_Error ( 'order-error', '<div class="woocommerce-error">' . $e->getMessage () . '</div>', [
|
226 |
+
'status' => 200
|
227 |
+
] );
|
228 |
+
}
|
229 |
+
}
|
230 |
+
|
231 |
+
/**
|
232 |
+
*
|
233 |
+
* @param WP_REST_Request $request
|
234 |
+
*/
|
235 |
+
public function customer_payment_methods($request) {
|
236 |
+
$customer_id = $request->get_param ( 'customer_id' );
|
237 |
+
$tokens = array();
|
238 |
+
foreach ( WC ()->payment_gateways ()->payment_gateways () as $gateway ) {
|
239 |
+
if ($gateway instanceof WC_Braintree_Payment_Gateway) {
|
240 |
+
$tokens = array_merge ( $tokens, WC_Payment_Tokens::get_customer_tokens ( $customer_id, $gateway->id ) );
|
241 |
+
}
|
242 |
+
}
|
243 |
+
$tokens = array_values ( WC_Payment_Tokens::get_customer_tokens ( $customer_id, 'braintree_cc' ) );
|
244 |
+
return rest_ensure_response ( array(
|
245 |
+
'payment_methods' => array_map ( function ($payment_method) {
|
246 |
+
return $payment_method->to_json ();
|
247 |
+
}, $tokens )
|
248 |
+
) );
|
249 |
+
}
|
250 |
+
|
251 |
+
/**
|
252 |
+
*
|
253 |
+
* @param WP_REST_Request $request
|
254 |
+
*/
|
255 |
+
public function charge_view($request) {
|
256 |
+
$order = wc_get_order ( absint ( $request->get_param ( 'order_id' ) ) );
|
257 |
+
/**
|
258 |
+
*
|
259 |
+
* @var WC_Payment_Gateway_Stripe $gateway
|
260 |
+
*/
|
261 |
+
$gateway = WC ()->payment_gateways ()->payment_gateways ()[ $order->get_payment_method () ];
|
262 |
+
try {
|
263 |
+
// fetch the charge so data is up to date.
|
264 |
+
$charge = $gateway->retrieve_charge ( $order->get_transaction_id (), wc_stripe_order_mode ( $order ) );
|
265 |
+
|
266 |
+
$order->update_meta_data ( '_wc_stripe_charge_status', $charge->status );
|
267 |
+
$order->save ();
|
268 |
+
ob_start ();
|
269 |
+
include wc_stripe ()->plugin_path () . 'includes/admin/meta-boxes/views/html-charge-data-subview.php';
|
270 |
+
$html = ob_get_clean ();
|
271 |
+
return rest_ensure_response ( array(
|
272 |
+
'data' => array(
|
273 |
+
'order_id' => $order->get_id (),
|
274 |
+
'order_number' => $order->get_order_number (),
|
275 |
+
'charge' => $charge->jsonSerialize (),
|
276 |
+
'html' => $html
|
277 |
+
)
|
278 |
+
) );
|
279 |
+
} catch ( Exception $e ) {
|
280 |
+
return new WP_Error ( 'charge-error', $e->getMessage (), array(
|
281 |
+
'status' => 200
|
282 |
+
) );
|
283 |
+
}
|
284 |
+
}
|
285 |
+
}
|
includes/controllers/class-wc-stripe-controller-payment-intent.php
ADDED
@@ -0,0 +1,45 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Controller which handles Payment Intent related actions such as creation.
|
4 |
+
* @author PaymentPlugins
|
5 |
+
* @package Stripe/Classes
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
class WC_Stripe_Controller_Payment_Intent extends WC_Stripe_Rest_Controller {
|
9 |
+
|
10 |
+
protected $namespace = '';
|
11 |
+
|
12 |
+
public function register_routes() {
|
13 |
+
register_rest_route ( $this->rest_uri (), 'setup-intent', array(
|
14 |
+
'methods' => WP_REST_Server::READABLE,
|
15 |
+
'callback' => array( $this,
|
16 |
+
'create_setup_intent'
|
17 |
+
)
|
18 |
+
) );
|
19 |
+
}
|
20 |
+
|
21 |
+
/**
|
22 |
+
*
|
23 |
+
* @param WP_REST_Request $request
|
24 |
+
*/
|
25 |
+
public function create_setup_intent($request) {
|
26 |
+
$gateway = new WC_Stripe_Gateway ();
|
27 |
+
$intent = $gateway->create_setup_intent ( array(
|
28 |
+
'usage' => 'off_session'
|
29 |
+
) );
|
30 |
+
try {
|
31 |
+
if (is_wp_error ( $intent )) {
|
32 |
+
throw new Exception ( $result->get_error_message () );
|
33 |
+
}
|
34 |
+
return rest_ensure_response ( array(
|
35 |
+
'intent' => array(
|
36 |
+
'client_secret' => $intent->client_secret
|
37 |
+
)
|
38 |
+
) );
|
39 |
+
} catch ( Exception $e ) {
|
40 |
+
return new WP_Error ( 'payment-intent-error', sprintf ( __ ( 'Error creating payment intent. Reason: %s', 'woo-stripe' ), $e->getMessage () ), array(
|
41 |
+
'status' => 200
|
42 |
+
) );
|
43 |
+
}
|
44 |
+
}
|
45 |
+
}
|
includes/controllers/class-wc-stripe-controller-payment-method.php
ADDED
@@ -0,0 +1,47 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @package Stripe/Controllers
|
4 |
+
* @author PaymentPlugins
|
5 |
+
* @since 3.0.0
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
class WC_Stripe_Controller_Payment_Method extends WC_Stripe_Rest_Controller {
|
9 |
+
|
10 |
+
protected $namespace = 'payment-method';
|
11 |
+
|
12 |
+
public function register_routes() {
|
13 |
+
register_rest_route ( $this->rest_uri (), 'token', [
|
14 |
+
'methods' => WP_REST_Server::CREATABLE,
|
15 |
+
'callback' => [ $this,
|
16 |
+
'payment_method_from_token'
|
17 |
+
]
|
18 |
+
] );
|
19 |
+
}
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Creates a PaymentMethod from a Token.
|
23 |
+
* Use case for this controller would be if a token
|
24 |
+
* is provided on the client side, but PaymentIntent is desired instead of a Charge. The token must be converted to
|
25 |
+
* a PaymentMethod for use in a PaymentIntent.
|
26 |
+
*
|
27 |
+
* @param WP_REST_Request $request
|
28 |
+
* @return WP_Error|WP_REST_Response|mixed
|
29 |
+
*/
|
30 |
+
public function payment_method_from_token($request) {
|
31 |
+
$gateway = new WC_Stripe_Gateway ();
|
32 |
+
$result = $gateway->create_payment_method ( [
|
33 |
+
'type' => 'card',
|
34 |
+
'card' => [
|
35 |
+
'token' => $request->get_param ( 'token' )
|
36 |
+
]
|
37 |
+
] );
|
38 |
+
if (is_wp_error ( $result )) {
|
39 |
+
return new WP_Error ( 'payment-method', $result->get_error_message (), [
|
40 |
+
'status' => 200
|
41 |
+
] );
|
42 |
+
}
|
43 |
+
return rest_ensure_response ( [
|
44 |
+
'payment_method' => $result->jsonSerialize ()
|
45 |
+
] );
|
46 |
+
}
|
47 |
+
}
|
includes/controllers/class-wc-stripe-controller-webhook.php
ADDED
@@ -0,0 +1,53 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
*
|
4 |
+
* @author PaymentPlugins
|
5 |
+
* @package Stripe/Controllers
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
class WC_Stripe_Controller_Webhook extends WC_Stripe_Rest_Controller {
|
9 |
+
|
10 |
+
protected $namespace = '';
|
11 |
+
|
12 |
+
private $secret;
|
13 |
+
|
14 |
+
public function register_routes() {
|
15 |
+
register_rest_route ( $this->rest_uri (), 'webhook', [
|
16 |
+
'methods' => WP_REST_Server::CREATABLE,
|
17 |
+
'callback' => [ $this, 'webhook'
|
18 |
+
]
|
19 |
+
] );
|
20 |
+
}
|
21 |
+
|
22 |
+
/**
|
23 |
+
*
|
24 |
+
* @param WP_REST_Request $request
|
25 |
+
*/
|
26 |
+
public function webhook($request) {
|
27 |
+
$payload = $request->get_body ();
|
28 |
+
$this->secret = wc_stripe ()->api_settings->get_option ( 'webhook_secret' );
|
29 |
+
$header = isset ( $_SERVER[ 'HTTP_STRIPE_SIGNATURE' ] ) ? $_SERVER[ 'HTTP_STRIPE_SIGNATURE' ] : '';
|
30 |
+
try {
|
31 |
+
$event = \Stripe\Webhook::constructEvent ( $payload, $header, $this->secret );
|
32 |
+
wc_stripe_log_info ( sprintf ( 'Webhook notficiation received: Event: %s. Payload: %s', $event->type, print_r ( $payload, true ) ) );
|
33 |
+
$type = $event->type;
|
34 |
+
$type = str_replace ( '.', '_', $type );
|
35 |
+
|
36 |
+
// allow functionality to hook in to the event action
|
37 |
+
do_action ( 'wc_stripe_webhook_' . $type, $event->data->object, $request, $event );
|
38 |
+
|
39 |
+
return rest_ensure_response ( apply_filters ( 'wc_stripe_webhook_response', [], $event, $request ) );
|
40 |
+
} catch ( \Stripe\Error\SignatureVerification $e ) {
|
41 |
+
wc_stripe_log_info ( __ ( 'Invalid signaute received. Verify that your webhook secret is correct.', 'woo-stripe' ) );
|
42 |
+
return $this->send_error_response ( __ ( 'Invalid signaute received. Verify that your webhook secret is correct.', 'woo-stripe' ) );
|
43 |
+
} catch ( Exception $e ) {
|
44 |
+
return $this->send_error_response ( $e->getMessage () );
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
private function send_error_response($message, $code = 400) {
|
49 |
+
return new WP_Error ( 'webhook-error', $message, [
|
50 |
+
'status' => $code
|
51 |
+
] );
|
52 |
+
}
|
53 |
+
}
|
includes/gateways/class-wc-payment-gateway-stripe-applepay.php
ADDED
@@ -0,0 +1,82 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! class_exists ( 'WC_Payment_Gateway_Stripe' )) {
|
3 |
+
return;
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
* @package Stripe/Gateways
|
7 |
+
* @author PaymentPlugins
|
8 |
+
*
|
9 |
+
*/
|
10 |
+
class WC_Payment_Gateway_Stripe_ApplePay extends WC_Payment_Gateway_Stripe_Payment_Intent {
|
11 |
+
|
12 |
+
public function __construct() {
|
13 |
+
$this->id = 'stripe_applepay';
|
14 |
+
$this->tab_title = __ ( 'Apple Pay', 'woo-stripe' );
|
15 |
+
$this->template_name = 'applepay.php';
|
16 |
+
$this->token_type = 'Stripe_ApplePay';
|
17 |
+
$this->method_title = __ ( 'Stripe Apple Pay', 'woo-stripe' );
|
18 |
+
$this->method_description = __ ( 'Apple Pay gateway that integrates with your Stripe account.', 'woo-stripe' );
|
19 |
+
parent::__construct ();
|
20 |
+
$this->icon = wc_stripe ()->assets_url ( 'img/applepay.svg' );
|
21 |
+
}
|
22 |
+
|
23 |
+
public function init_supports() {
|
24 |
+
parent::init_supports ();
|
25 |
+
$this->supports[] = 'wc_stripe_cart_checkout';
|
26 |
+
$this->supports[] = 'wc_stripe_product_checkout';
|
27 |
+
$this->supports[] = 'wc_stripe_banner_checkout';
|
28 |
+
}
|
29 |
+
|
30 |
+
public function enqueue_product_scripts($scripts) {
|
31 |
+
$scripts->enqueue_script ( 'applepay-product', $scripts->assets_url ( 'js/frontend/applepay-product.js' ), [
|
32 |
+
$scripts->get_handle ( 'wc-stripe' ),
|
33 |
+
$scripts->get_handle ( 'external' )
|
34 |
+
], wc_stripe ()->version (), true );
|
35 |
+
$scripts->localize_script ( 'applepay-product', $this->get_localized_params () );
|
36 |
+
}
|
37 |
+
|
38 |
+
public function enqueue_cart_scripts($scripts) {
|
39 |
+
$scripts->enqueue_script ( 'applepay-cart', $scripts->assets_url ( 'js/frontend/applepay-cart.js' ), [
|
40 |
+
$scripts->get_handle ( 'wc-stripe' ),
|
41 |
+
$scripts->get_handle ( 'external' )
|
42 |
+
], wc_stripe ()->version (), true );
|
43 |
+
$scripts->localize_script ( 'applepay-cart', $this->get_localized_params () );
|
44 |
+
}
|
45 |
+
|
46 |
+
public function enqueue_checkout_scripts($scripts) {
|
47 |
+
$scripts->enqueue_script ( 'applepay-checkout', $scripts->assets_url ( 'js/frontend/applepay-checkout.js' ), [
|
48 |
+
$scripts->get_handle ( 'wc-stripe' ),
|
49 |
+
$scripts->get_handle ( 'external' )
|
50 |
+
], wc_stripe ()->version (), true );
|
51 |
+
$scripts->localize_script ( 'applepay-checkout', $this->get_localized_params () );
|
52 |
+
}
|
53 |
+
|
54 |
+
public function get_localized_params() {
|
55 |
+
return array_merge_recursive ( parent::get_localized_params (), [
|
56 |
+
'messages' => [
|
57 |
+
'invalid_amount' => __ ( 'Please update you product quantity before using Apple Pay.', 'woo-stripe' )
|
58 |
+
],
|
59 |
+
'button' => wc_stripe_get_template_html ( 'applepay-button.php', [
|
60 |
+
'style' => $this->get_option ( 'button_style' ),
|
61 |
+
'type' => $this->get_button_type ()
|
62 |
+
] )
|
63 |
+
] );
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Returns the Apple Pay button type based on the current page.
|
68 |
+
*
|
69 |
+
* @return string
|
70 |
+
*/
|
71 |
+
protected function get_button_type() {
|
72 |
+
if (is_checkout ()) {
|
73 |
+
return $this->get_option ( 'button_type_checkout' );
|
74 |
+
}
|
75 |
+
if (is_cart ()) {
|
76 |
+
return $this->get_option ( 'button_type_cart' );
|
77 |
+
}
|
78 |
+
if (is_product ()) {
|
79 |
+
return $this->get_option ( 'button_type_product' );
|
80 |
+
}
|
81 |
+
}
|
82 |
+
}
|
includes/gateways/class-wc-payment-gateway-stripe-cc.php
ADDED
@@ -0,0 +1,127 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @since 3.0.0
|
4 |
+
* @package Stripe/Gateways
|
5 |
+
* @author User
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
class WC_Payment_Gateway_Stripe_CC extends WC_Payment_Gateway_Stripe_Payment_Intent {
|
9 |
+
|
10 |
+
public function __construct() {
|
11 |
+
$this->id = 'stripe_cc';
|
12 |
+
$this->tab_title = __ ( 'Credit Cards', 'woo-stripe' );
|
13 |
+
$this->template_name = 'credit-card.php';
|
14 |
+
$this->token_type = 'Stripe_CC';
|
15 |
+
$this->method_title = __ ( 'Stripe Credit Cards', 'woo-stripe' );
|
16 |
+
$this->method_description = __ ( 'Credit card gateway that integrates with your Stripe account.', 'woo-stripe' );
|
17 |
+
parent::__construct ();
|
18 |
+
}
|
19 |
+
|
20 |
+
public function hooks() {
|
21 |
+
parent::hooks ();
|
22 |
+
}
|
23 |
+
|
24 |
+
public function get_icon() {
|
25 |
+
return wc_stripe_get_template ( 'card-icons.php', array(
|
26 |
+
'cards' => $this->get_option ( 'cards' ),
|
27 |
+
'style' => $this->get_option ( 'icon_style' )
|
28 |
+
) );
|
29 |
+
}
|
30 |
+
|
31 |
+
public function enqueue_checkout_scripts($scripts) {
|
32 |
+
$scripts->enqueue_script ( 'credit-card', $scripts->assets_url ( 'js/frontend/credit-card.js' ), array(
|
33 |
+
$scripts->prefix . 'external',
|
34 |
+
$scripts->prefix . 'wc-stripe'
|
35 |
+
) );
|
36 |
+
$scripts->localize_script ( 'credit-card', $this->get_localized_params () );
|
37 |
+
}
|
38 |
+
|
39 |
+
public function get_localized_params() {
|
40 |
+
$data = parent::get_localized_params ();
|
41 |
+
return array_merge ( $data, array(
|
42 |
+
'style' => $this->get_form_style (),
|
43 |
+
'elementOptions' => $this->get_element_options (),
|
44 |
+
'custom_form' => $this->is_custom_form_active (),
|
45 |
+
'html' => [
|
46 |
+
'card_brand' => sprintf ( '<img id="wc-stripe-card" src="%s" />', $this->get_custom_form ()[ 'cardBrand' ] )
|
47 |
+
],
|
48 |
+
'cards' => [
|
49 |
+
'visa' => wc_stripe ()->assets_url ( 'img/cards/visa.svg' ),
|
50 |
+
'amex' => wc_stripe ()->assets_url ( 'img/cards/amex.svg' ),
|
51 |
+
'mastercard' => wc_stripe ()->assets_url ( 'img/cards/mastercard.svg' ),
|
52 |
+
'discover' => wc_stripe ()->assets_url ( 'img/cards/discover.svg' ),
|
53 |
+
'diners' => wc_stripe ()->assets_url ( 'img/cards/diners.svg' ),
|
54 |
+
'jcb' => wc_stripe ()->assets_url ( 'img/cards/jcb.svg' ),
|
55 |
+
'unionpay' => wc_stripe ()->assets_url ( 'img/cards/china_union_pay.svg' ),
|
56 |
+
'unknown' => $this->get_custom_form ()[ 'cardBrand' ]
|
57 |
+
]
|
58 |
+
) );
|
59 |
+
}
|
60 |
+
|
61 |
+
private function get_form_style() {
|
62 |
+
if ($this->is_custom_form_active ()) {
|
63 |
+
$style = $this->get_custom_form ()[ 'elementStyles' ];
|
64 |
+
} else {
|
65 |
+
$style = array(
|
66 |
+
'base' => array( 'color' => '#32325d',
|
67 |
+
'fontFamily' => '"Helvetica Neue", Helvetica, sans-serif',
|
68 |
+
'fontSmoothing' => 'antialiased',
|
69 |
+
'fontSize' => '18px',
|
70 |
+
'::placeholder' => array(
|
71 |
+
'color' => '#aab7c4'
|
72 |
+
), ':focus' => []
|
73 |
+
),
|
74 |
+
'invalid' => array(
|
75 |
+
'color' => '#fa755a',
|
76 |
+
'iconColor' => '#fa755a'
|
77 |
+
)
|
78 |
+
);
|
79 |
+
}
|
80 |
+
return apply_filters ( 'wc_stripe_cc_element_style', $style );
|
81 |
+
}
|
82 |
+
|
83 |
+
private function get_custom_form() {
|
84 |
+
return wc_stripe_get_custom_forms ()[ $this->get_option ( 'custom_form' ) ];
|
85 |
+
}
|
86 |
+
|
87 |
+
private function get_element_options() {
|
88 |
+
return $this->get_custom_form ()[ 'elementOptions' ];
|
89 |
+
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
* Returns true if custom forms are enabled.
|
93 |
+
*
|
94 |
+
* @return bool
|
95 |
+
*/
|
96 |
+
public function is_custom_form_active() {
|
97 |
+
return $this->get_option ( 'form_type' ) === 'custom';
|
98 |
+
}
|
99 |
+
|
100 |
+
public function get_custom_form_template() {
|
101 |
+
$form = $this->get_option ( 'custom_form' );
|
102 |
+
return wc_stripe_get_custom_forms ()[ $form ][ 'template' ];
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* Returns true if the postal code field is enabled.
|
107 |
+
*
|
108 |
+
* @return bool
|
109 |
+
*/
|
110 |
+
public function postal_enabled() {
|
111 |
+
if (is_checkout ()) {
|
112 |
+
return $this->is_active ( 'postal_enabled' );
|
113 |
+
}
|
114 |
+
if (is_add_payment_method_page ()) {
|
115 |
+
return true;
|
116 |
+
}
|
117 |
+
}
|
118 |
+
|
119 |
+
/**
|
120 |
+
* Returns true if the cvv field is enabled.
|
121 |
+
*
|
122 |
+
* @return bool
|
123 |
+
*/
|
124 |
+
public function cvv_enabled() {
|
125 |
+
return $this->is_active ( 'cvv_enabled' );
|
126 |
+
}
|
127 |
+
}
|
includes/gateways/class-wc-payment-gateway-stripe-eps.php
ADDED
@@ -0,0 +1,57 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! class_exists ( 'WC_Payment_Gateway_Local_Payment' )) {
|
3 |
+
return;
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
* @package Stripe/Gateways
|
7 |
+
* @author PaymentPlugins
|
8 |
+
*
|
9 |
+
*/
|
10 |
+
class WC_Payment_Gateway_Stripe_EPS extends WC_Payment_Gateway_Stripe_Local_Payment {
|
11 |
+
|
12 |
+
public function __construct() {
|
13 |
+
$this->local_payment_type = 'eps';
|
14 |
+
$this->currencies = [ 'EUR'
|
15 |
+
];
|
16 |
+
$this->id = 'stripe_eps';
|
17 |
+
$this->tab_title = __ ( 'EPS', 'woo-stripe' );
|
18 |
+
$this->template_name = 'local-payment.php';
|
19 |
+
$this->token_type = 'Stripe_Local';
|
20 |
+
$this->method_title = __ ( 'EPS', 'woo-stripe' );
|
21 |
+
$this->method_description = __ ( 'EPS gateway that integrates with your Stripe account.', 'woo-stripe' );
|
22 |
+
$this->icon = wc_stripe ()->assets_url ( 'img/eps.svg' );
|
23 |
+
$this->order_button_text = __ ( 'EPS', 'woo-stripe' );
|
24 |
+
parent::__construct ();
|
25 |
+
}
|
26 |
+
|
27 |
+
public function get_local_payment_settings() {
|
28 |
+
return [
|
29 |
+
'desc' => array( 'type' => 'description',
|
30 |
+
'description' => $this->get_payment_description()
|
31 |
+
),
|
32 |
+
'enabled' => array(
|
33 |
+
'title' => __ ( 'Enabled', 'woo-stripe' ),
|
34 |
+
'type' => 'checkbox',
|
35 |
+
'default' => 'no', 'value' => 'yes',
|
36 |
+
'desc_tip' => true,
|
37 |
+
'description' => __ ( 'If enabled, your site can accept P24 payments through Stripe.', 'woo-stripe' )
|
38 |
+
),
|
39 |
+
'general_settings' => array(
|
40 |
+
'type' => 'title',
|
41 |
+
'title' => __ ( 'General Settings', 'woo-stripe' )
|
42 |
+
),
|
43 |
+
'title_text' => array( 'type' => 'text',
|
44 |
+
'title' => __ ( 'Title', 'woo-stripe' ),
|
45 |
+
'default' => __ ( 'EPS', 'woo-stripe' ),
|
46 |
+
'desc_tip' => true,
|
47 |
+
'description' => __ ( 'Title of the p24 gateway' )
|
48 |
+
),
|
49 |
+
'description' => array(
|
50 |
+
'title' => __ ( 'Description', 'woo-stripe' ),
|
51 |
+
'type' => 'text', 'default' => '',
|
52 |
+
'description' => __ ( 'Leave blank if you don\'t want a description to show for the gateway.', 'woo-stripe' ),
|
53 |
+
'desc_tip' => true
|
54 |
+
)
|
55 |
+
];
|
56 |
+
}
|
57 |
+
}
|
includes/gateways/class-wc-payment-gateway-stripe-giropay.php
ADDED
@@ -0,0 +1,59 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! class_exists ( 'WC_Payment_Gateway_Local_Payment' )) {
|
3 |
+
return;
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
* @package Stripe/Gateways
|
7 |
+
* @author PaymentPlugins
|
8 |
+
*
|
9 |
+
*/
|
10 |
+
class WC_Payment_Gateway_Stripe_Giropay extends WC_Payment_Gateway_Stripe_Local_Payment {
|
11 |
+
|
12 |
+
public function __construct() {
|
13 |
+
$this->local_payment_type = 'giropay';
|
14 |
+
$this->currencies = [ 'EUR'
|
15 |
+
];
|
16 |
+
$this->countries = [ 'DE'
|
17 |
+
];
|
18 |
+
$this->id = 'stripe_giropay';
|
19 |
+
$this->tab_title = __ ( 'Giropay', 'woo-stripe' );
|
20 |
+
$this->template_name = 'local-payment.php';
|
21 |
+
$this->token_type = 'Stripe_Local';
|
22 |
+
$this->method_title = __ ( 'Giropay', 'woo-stripe' );
|
23 |
+
$this->method_description = __ ( 'Giropay gateway that integrates with your Stripe account.', 'woo-stripe' );
|
24 |
+
$this->icon = wc_stripe ()->assets_url ( 'img/giropay.svg' );
|
25 |
+
$this->order_button_text = __ ( 'Giropay', 'woo-stripe' );
|
26 |
+
parent::__construct ();
|
27 |
+
}
|
28 |
+
|
29 |
+
public function get_local_payment_settings() {
|
30 |
+
return [
|
31 |
+
'desc' => array( 'type' => 'description',
|
32 |
+
'description' => $this->get_payment_description()
|
33 |
+
),
|
34 |
+
'enabled' => array(
|
35 |
+
'title' => __ ( 'Enabled', 'woo-stripe' ),
|
36 |
+
'type' => 'checkbox',
|
37 |
+
'default' => 'no', 'value' => 'yes',
|
38 |
+
'desc_tip' => true,
|
39 |
+
'description' => __ ( 'If enabled, your site can Giropay card payments through Stripe.', 'woo-stripe' )
|
40 |
+
),
|
41 |
+
'general_settings' => array(
|
42 |
+
'type' => 'title',
|
43 |
+
'title' => __ ( 'General Settings', 'woo-stripe' )
|
44 |
+
),
|
45 |
+
'title_text' => array( 'type' => 'text',
|
46 |
+
'title' => __ ( 'Title', 'woo-stripe' ),
|
47 |
+
'default' => __ ( 'Giropay', 'woo-stripe' ),
|
48 |
+
'desc_tip' => true,
|
49 |
+
'description' => __ ( 'Title of the Giropay gateway' )
|
50 |
+
),
|
51 |
+
'description' => array(
|
52 |
+
'title' => __ ( 'Description', 'woo-stripe' ),
|
53 |
+
'type' => 'text', 'default' => '',
|
54 |
+
'description' => __ ( 'Leave blank if you don\'t want a description to show for the gateway.', 'woo-stripe' ),
|
55 |
+
'desc_tip' => true
|
56 |
+
)
|
57 |
+
];
|
58 |
+
}
|
59 |
+
}
|
includes/gateways/class-wc-payment-gateway-stripe-googlepay.php
ADDED
@@ -0,0 +1,173 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! class_exists ( 'WC_Payment_Gateway_Stripe' )) {
|
3 |
+
return;
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
*
|
7 |
+
* @author PaymentPlugins
|
8 |
+
* @since 3.0.0
|
9 |
+
* @package Stripe/Gateways
|
10 |
+
*
|
11 |
+
*/
|
12 |
+
class WC_Payment_Gateway_Stripe_GooglePay extends WC_Payment_Gateway_Stripe_Charge {
|
13 |
+
|
14 |
+
public function __construct() {
|
15 |
+
$this->id = 'stripe_googlepay';
|
16 |
+
$this->tab_title = __ ( 'Google Pay', 'woo-stripe' );
|
17 |
+
$this->template_name = 'googlepay.php';
|
18 |
+
$this->token_type = 'Stripe_GooglePay';
|
19 |
+
$this->method_title = __ ( 'Stripe Google Pay', 'woo-stripe' );
|
20 |
+
$this->method_description = __ ( 'Google Pay gateway that integrates with your Stripe account.', 'woo-stripe' );
|
21 |
+
parent::__construct ();
|
22 |
+
$this->icon = wc_stripe ()->assets_url ( 'img/' . $this->get_option ( 'icon' ) . '.svg' );
|
23 |
+
}
|
24 |
+
|
25 |
+
public function init_supports() {
|
26 |
+
parent::init_supports ();
|
27 |
+
$this->supports[] = 'wc_stripe_cart_checkout';
|
28 |
+
$this->supports[] = 'wc_stripe_product_checkout';
|
29 |
+
$this->supports[] = 'wc_stripe_banner_checkout';
|
30 |
+
}
|
31 |
+
|
32 |
+
public function enqueue_checkout_scripts($scripts) {
|
33 |
+
$scripts->enqueue_script ( 'googlepay-checkout', $scripts->assets_url ( 'js/frontend/googlepay-checkout.js' ), array(
|
34 |
+
$scripts->get_handle ( 'wc-stripe' ),
|
35 |
+
$scripts->get_handle ( 'gpay' )
|
36 |
+
), wc_stripe ()->version (), true );
|
37 |
+
$scripts->localize_script ( 'googlepay-checkout', $this->get_localized_params () );
|
38 |
+
}
|
39 |
+
|
40 |
+
public function enqueue_product_scripts($scripts) {
|
41 |
+
$scripts->enqueue_script ( 'googlepay-product', $scripts->assets_url ( 'js/frontend/googlepay-product.js' ), array(
|
42 |
+
$scripts->get_handle ( 'wc-stripe' ),
|
43 |
+
$scripts->get_handle ( 'gpay' )
|
44 |
+
), wc_stripe ()->version (), true );
|
45 |
+
$scripts->localize_script ( 'googlepay-product', $this->get_localized_params () );
|
46 |
+
}
|
47 |
+
|
48 |
+
public function enqueue_cart_scripts($scripts) {
|
49 |
+
$scripts->enqueue_script ( 'googlepay-cart', $scripts->assets_url ( 'js/frontend/googlepay-cart.js' ), array(
|
50 |
+
$scripts->get_handle ( 'wc-stripe' ),
|
51 |
+
$scripts->get_handle ( 'gpay' )
|
52 |
+
), wc_stripe ()->version (), true );
|
53 |
+
$scripts->localize_script ( 'googlepay-cart', $this->get_localized_params () );
|
54 |
+
}
|
55 |
+
|
56 |
+
public function enqueue_admin_scripts() {
|
57 |
+
wp_register_script ( 'gpay-external', wc_stripe ()->scripts ()->global_scripts[ 'gpay' ], [], wc_stripe ()->version (), true );
|
58 |
+
wp_enqueue_script ( 'wc-stripe-gpay-admin', wc_stripe ()->assets_url ( 'js/admin/googlepay.js' ), [
|
59 |
+
'gpay-external', 'wc-stripe-admin-settings'
|
60 |
+
], wc_stripe ()->version (), true );
|
61 |
+
}
|
62 |
+
|
63 |
+
public function get_localized_params() {
|
64 |
+
$data = array_merge_recursive ( parent::get_localized_params (), [
|
65 |
+
'environment' => wc_stripe_mode () === 'test' ? 'TEST' : 'PRODUCTION',
|
66 |
+
'merchant_id' => wc_stripe_mode () === 'test' ? '' : $this->get_option ( 'merchant_id' ),
|
67 |
+
'merchant_name' => $this->get_option ( 'merchant_name' ),
|
68 |
+
'button_color' => $this->get_option ( 'button_color' ),
|
69 |
+
'button_style' => $this->get_option ( 'button_style' ),
|
70 |
+
'total_price_label' => __ ( 'Total', 'woo-stripe' ),
|
71 |
+
'routes' => [
|
72 |
+
'payment_data' => wc_stripe ()->rest_api->googlepay->rest_url ( 'shipping-data' )
|
73 |
+
],
|
74 |
+
'messages' => [
|
75 |
+
'invalid_amount' => __ ( 'Please update you product quantity before using Google Pay.', 'woo-stripe' )
|
76 |
+
]
|
77 |
+
] );
|
78 |
+
return $data;
|
79 |
+
}
|
80 |
+
|
81 |
+
public function get_display_items($encode = false) {
|
82 |
+
$items = [];
|
83 |
+
if (wcs_stripe_active () && WC_Subscriptions_Change_Payment_Gateway::$is_request_to_change_payment) {
|
84 |
+
$subscription = wcs_get_subscription ( absint ( $_GET[ 'change_payment_method' ] ) );
|
85 |
+
$items[] = [
|
86 |
+
'label' => __ ( 'Subscription', 'woo-stripe' ),
|
87 |
+
'type' => 'SUBTOTAL',
|
88 |
+
'price' => strval ( $subscription->get_total () )
|
89 |
+
];
|
90 |
+
} else {
|
91 |
+
foreach ( WC ()->cart->get_cart () as $cart_item ) {
|
92 |
+
/**
|
93 |
+
*
|
94 |
+
* @var WC_Product $product
|
95 |
+
*/
|
96 |
+
$product = $cart_item[ 'data' ];
|
97 |
+
$qty = $cart_item[ 'quantity' ];
|
98 |
+
$items[] = [
|
99 |
+
'label' => $qty > 1 ? sprintf ( '%s X %s', $product->get_name (), $qty ) : $product->get_name (),
|
100 |
+
'type' => 'LINE_ITEM',
|
101 |
+
'price' => strval ( round ( $product->get_price () * $qty, 2, PHP_ROUND_HALF_UP ) )
|
102 |
+
];
|
103 |
+
}
|
104 |
+
if (WC ()->cart->needs_shipping ()) {
|
105 |
+
$items[] = [
|
106 |
+
'label' => __ ( 'Shipping', 'woo-stripe' ),
|
107 |
+
'type' => 'LINE_ITEM',
|
108 |
+
'price' => strval ( WC ()->cart->shipping_total )
|
109 |
+
];
|
110 |
+
}
|
111 |
+
if (wc_tax_enabled ()) {
|
112 |
+
$items[] = [
|
113 |
+
'label' => __ ( 'Tax', 'woo-stripe' ),
|
114 |
+
'type' => 'LINE_ITEM',
|
115 |
+
'price' => strval ( WC ()->cart->get_taxes_total () )
|
116 |
+
];
|
117 |
+
}
|
118 |
+
}
|
119 |
+
return $encode ? htmlspecialchars ( json_encode ( $items ) ) : $items;
|
120 |
+
}
|
121 |
+
|
122 |
+
public function get_shipping_methods($encode = false) {
|
123 |
+
if (wcs_stripe_active () && WC_Subscriptions_Change_Payment_Gateway::$is_request_to_change_payment) {
|
124 |
+
$methods = [];
|
125 |
+
} else {
|
126 |
+
$methods = [];
|
127 |
+
$packages = WC ()->shipping ()->get_packages ();
|
128 |
+
foreach ( $packages as $i => $package ) {
|
129 |
+
foreach ( $package[ 'rates' ] as $rate ) {
|
130 |
+
/**
|
131 |
+
*
|
132 |
+
* @var WC_Shipping_Rate $rate
|
133 |
+
*/
|
134 |
+
$methods[] = [
|
135 |
+
'id' => sprintf ( '%s:%s', $i, $rate->id ),
|
136 |
+
'label' => $this->get_shipping_method_label ( $rate ),
|
137 |
+
'description' => ''
|
138 |
+
];
|
139 |
+
}
|
140 |
+
}
|
141 |
+
if (empty ( $methods )) {
|
142 |
+
// GPay does not like empty shipping methods. Make a temporary one;
|
143 |
+
$methods[] = [ 'id' => 'default',
|
144 |
+
'label' => __ ( 'Waiting...', 'woo-stripe' ),
|
145 |
+
'description' => __ ( 'loading shipping methods...', 'woo-stripe' )
|
146 |
+
];
|
147 |
+
}
|
148 |
+
}
|
149 |
+
return $encode ? htmlspecialchars ( json_encode ( $methods ) ) : $methods;
|
150 |
+
}
|
151 |
+
|
152 |
+
/**
|
153 |
+
* Return a formatted shipping method label.
|
154 |
+
* <strong>Example</strong> 5 Day shipping: 5 USD
|
155 |
+
*
|
156 |
+
* @param WC_Shipping_Rate $rate
|
157 |
+
* @return
|
158 |
+
*
|
159 |
+
*/
|
160 |
+
public function get_shipping_method_label($rate) {
|
161 |
+
if (wc_stripe_display_prices_including_tax ()) {
|
162 |
+
$total = $rate->cost + $rate->get_shipping_tax ();
|
163 |
+
} else {
|
164 |
+
$total = $rate->cost;
|
165 |
+
}
|
166 |
+
return sprintf ( '%s: %s %s', $rate->get_label (), $total, get_woocommerce_currency () );
|
167 |
+
}
|
168 |
+
|
169 |
+
public function add_to_cart_response($data) {
|
170 |
+
$data[ 'googlepay' ][ 'displayItems' ] = $this->get_display_items ();
|
171 |
+
return $data;
|
172 |
+
}
|
173 |
+
}
|
includes/gateways/class-wc-payment-gateway-stripe-ideal.php
ADDED
@@ -0,0 +1,55 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! class_exists ( 'WC_Payment_Gateway_Local_Payment' )) {
|
3 |
+
return;
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
* @package Stripe/Gateways
|
7 |
+
* @author PaymentPlugins
|
8 |
+
*
|
9 |
+
*/
|
10 |
+
class WC_Payment_Gateway_Stripe_Ideal extends WC_Payment_Gateway_Stripe_Local_Payment {
|
11 |
+
|
12 |
+
public function __construct() {
|
13 |
+
$this->local_payment_type = 'ideal';
|
14 |
+
$this->currencies = [ 'EUR'
|
15 |
+
];
|
16 |
+
$this->id = 'stripe_ideal';
|
17 |
+
$this->tab_title = __ ( 'iDEAL', 'woo-stripe' );
|
18 |
+
$this->method_title = __ ( 'iDEAL', 'woo-stripe' );
|
19 |
+
$this->method_description = __ ( 'Ideal gateway that integrates with your Stripe account.', 'woo-stripe' );
|
20 |
+
$this->icon = wc_stripe ()->assets_url ( 'img/ideal.svg' );
|
21 |
+
$this->order_button_text = __ ( 'iDEAL', 'woo-stripe' );
|
22 |
+
parent::__construct ();
|
23 |
+
}
|
24 |
+
|
25 |
+
public function get_local_payment_settings() {
|
26 |
+
return [
|
27 |
+
'desc' => array( 'type' => 'description',
|
28 |
+
'description' => $this->get_payment_description()
|
29 |
+
),
|
30 |
+
'enabled' => array(
|
31 |
+
'title' => __ ( 'Enabled', 'woo-stripe' ),
|
32 |
+
'type' => 'checkbox',
|
33 |
+
'default' => 'no', 'value' => 'yes',
|
34 |
+
'desc_tip' => true,
|
35 |
+
'description' => __ ( 'If enabled, your site can accept credit card payments through Stripe.', 'woo-stripe' )
|
36 |
+
),
|
37 |
+
'general_settings' => array(
|
38 |
+
'type' => 'title',
|
39 |
+
'title' => __ ( 'General Settings', 'woo-stripe' )
|
40 |
+
),
|
41 |
+
'title_text' => array( 'type' => 'text',
|
42 |
+
'title' => __ ( 'Title', 'woo-stripe' ),
|
43 |
+
'default' => __ ( 'iDEAL', 'woo-stripe' ),
|
44 |
+
'desc_tip' => true,
|
45 |
+
'description' => __ ( 'Title of the iDEAL gateway' )
|
46 |
+
),
|
47 |
+
'description' => array(
|
48 |
+
'title' => __ ( 'Description', 'woo-stripe' ),
|
49 |
+
'type' => 'text', 'default' => '',
|
50 |
+
'description' => __ ( 'Leave blank if you don\'t want a description to show for the gateway.', 'woo-stripe' ),
|
51 |
+
'desc_tip' => true
|
52 |
+
)
|
53 |
+
];
|
54 |
+
}
|
55 |
+
}
|
includes/gateways/class-wc-payment-gateway-stripe-klarna.php
ADDED
@@ -0,0 +1,105 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! class_exists ( 'WC_Payment_Gateway_Local_Payment' )) {
|
3 |
+
return;
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
* @package Stripe/Gateways
|
7 |
+
* @author PaymentPlugins
|
8 |
+
*
|
9 |
+
*/
|
10 |
+
class WC_Payment_Gateway_Stripe_Klarna extends WC_Payment_Gateway_Stripe_Local_Payment {
|
11 |
+
|
12 |
+
public function __construct() {
|
13 |
+
$this->local_payment_type = 'klarna';
|
14 |
+
$this->currencies = [ 'EUR', 'SEK', 'NOK',
|
15 |
+
'DKK', 'GBP', 'USD'
|
16 |
+
];
|
17 |
+
$this->id = 'stripe_klarna';
|
18 |
+
$this->tab_title = __ ( 'Klarna', 'woo-stripe' );
|
19 |
+
$this->template_name = 'local-payment.php';
|
20 |
+
$this->token_type = 'Stripe_Local';
|
21 |
+
$this->method_title = __ ( 'Klarna', 'woo-stripe' );
|
22 |
+
$this->method_description = __ ( 'Klarna gateway that integrates with your Stripe account.', 'woo-stripe' );
|
23 |
+
$this->icon = wc_stripe ()->assets_url ( 'img/klarna.svg' );
|
24 |
+
$this->order_button_text = __ ( 'Klarna', 'woo-stripe' );
|
25 |
+
parent::__construct ();
|
26 |
+
}
|
27 |
+
|
28 |
+
public function get_local_payment_settings() {
|
29 |
+
return [
|
30 |
+
'desc' => array( 'type' => 'description',
|
31 |
+
'description' => $this->get_payment_description()
|
32 |
+
),
|
33 |
+
'enabled' => array(
|
34 |
+
'title' => __ ( 'Enabled', 'woo-stripe' ),
|
35 |
+
'type' => 'checkbox',
|
36 |
+
'default' => 'no', 'value' => 'yes',
|
37 |
+
'desc_tip' => true,
|
38 |
+
'description' => __ ( 'If enabled, your site can accept Klarna payments through Stripe.', 'woo-stripe' )
|
39 |
+
),
|
40 |
+
'general_settings' => array(
|
41 |
+
'type' => 'title',
|
42 |
+
'title' => __ ( 'General Settings', 'woo-stripe' )
|
43 |
+
),
|
44 |
+
'title_text' => array( 'type' => 'text',
|
45 |
+
'title' => __ ( 'Title', 'woo-stripe' ),
|
46 |
+
'default' => __ ( 'Klarna', 'woo-stripe' ),
|
47 |
+
'desc_tip' => true,
|
48 |
+
'description' => __ ( 'Title of the Klarna gateway' )
|
49 |
+
),
|
50 |
+
'description' => array(
|
51 |
+
'title' => __ ( 'Description', 'woo-stripe' ),
|
52 |
+
'type' => 'text', 'default' => '',
|
53 |
+
'description' => __ ( 'Leave blank if you don\'t want a description to show for the gateway.', 'woo-stripe' ),
|
54 |
+
'desc_tip' => true
|
55 |
+
)
|
56 |
+
];
|
57 |
+
}
|
58 |
+
|
59 |
+
public function get_required_parameters() {
|
60 |
+
return [ 'USD' => [ 'US'
|
61 |
+
], 'EUR' => [ 'AT', 'FI', 'DE', 'NL'
|
62 |
+
], 'DKK' => [ 'DK'
|
63 |
+
], 'NOK' => [ 'NO'
|
64 |
+
], 'SEK' => [ 'SE'
|
65 |
+
], 'GBP' => [ 'GB'
|
66 |
+
]
|
67 |
+
];
|
68 |
+
}
|
69 |
+
|
70 |
+
public function is_local_payment_available() {
|
71 |
+
$currency = get_woocommerce_currency ();
|
72 |
+
$country = WC ()->customer->get_billing_country ();
|
73 |
+
if ($country) {
|
74 |
+
$params = $this->get_required_parameters ();
|
75 |
+
return isset ( $params[ $currency ] ) && array_search ( $country, $params[ $currency ] ) !== false;
|
76 |
+
}
|
77 |
+
return false;
|
78 |
+
}
|
79 |
+
|
80 |
+
private function get_source_items() {
|
81 |
+
return [ 'type' => 'sku',
|
82 |
+
'description' => 'WC Order', 'quantity' => 1,
|
83 |
+
'currency' => get_woocommerce_currency (),
|
84 |
+
'amount' => wc_stripe_add_number_precision ( WC ()->cart->total )
|
85 |
+
];
|
86 |
+
}
|
87 |
+
|
88 |
+
public function get_source_args($order) {
|
89 |
+
return array_merge_recursive ( parent::get_source_args ( $order ), [
|
90 |
+
'klarna' => [ 'product' => 'payment',
|
91 |
+
'purchase_country' => $order->get_billing_country ()
|
92 |
+
],
|
93 |
+
'owner' => [
|
94 |
+
'address' => [
|
95 |
+
'city' => $order->get_billing_city (),
|
96 |
+
'country' => $order->get_billing_country (),
|
97 |
+
'line1' => $order->get_billing_address_1 (),
|
98 |
+
'line2' => $order->get_billing_address_2 (),
|
99 |
+
'postal_code' => $order->get_billing_postcode (),
|
100 |
+
'state' => $order->get_billing_state ()
|
101 |
+
]
|
102 |
+
], 'source_order' => []
|
103 |
+
] );
|
104 |
+
}
|
105 |
+
}
|
includes/gateways/class-wc-payment-gateway-stripe-multibanco.php
ADDED
@@ -0,0 +1,58 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! class_exists ( 'WC_Payment_Gateway_Local_Payment' )) {
|
3 |
+
return;
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
*
|
7 |
+
* @package Stripe/Gateways
|
8 |
+
* @author PaymentPlugins
|
9 |
+
*
|
10 |
+
*/
|
11 |
+
class WC_Payment_Gateway_Stripe_Multibanco extends WC_Payment_Gateway_Stripe_Local_Payment {
|
12 |
+
|
13 |
+
public function __construct() {
|
14 |
+
$this->local_payment_type = 'multibanco';
|
15 |
+
$this->currencies = [ 'EUR'
|
16 |
+
];
|
17 |
+
$this->id = 'stripe_multibanco';
|
18 |
+
$this->tab_title = __ ( 'Multibanco', 'woo-stripe' );
|
19 |
+
$this->template_name = 'local-payment.php';
|
20 |
+
$this->token_type = 'Stripe_Local';
|
21 |
+
$this->method_title = __ ( 'EPS', 'woo-stripe' );
|
22 |
+
$this->method_description = __ ( 'Multibanco gateway that integrates with your Stripe account.', 'woo-stripe' );
|
23 |
+
$this->icon = wc_stripe ()->assets_url ( 'img/multibanco.svg' );
|
24 |
+
$this->order_button_text = __ ( 'Multibanco', 'woo-stripe' );
|
25 |
+
parent::__construct ();
|
26 |
+
}
|
27 |
+
|
28 |
+
public function get_local_payment_settings() {
|
29 |
+
return [
|
30 |
+
'desc' => array( 'type' => 'description',
|
31 |
+
'description' => $this->get_payment_description()
|
32 |
+
),
|
33 |
+
'enabled' => array(
|
34 |
+
'title' => __ ( 'Enabled', 'woo-stripe' ),
|
35 |
+
'type' => 'checkbox',
|
36 |
+
'default' => 'no', 'value' => 'yes',
|
37 |
+
'desc_tip' => true,
|
38 |
+
'description' => __ ( 'If enabled, your site can accept Multibanco payments through Stripe.', 'woo-stripe' )
|
39 |
+
),
|
40 |
+
'general_settings' => array(
|
41 |
+
'type' => 'title',
|
42 |
+
'title' => __ ( 'General Settings', 'woo-stripe' )
|
43 |
+
),
|
44 |
+
'title_text' => array( 'type' => 'text',
|
45 |
+
'title' => __ ( 'Title', 'woo-stripe' ),
|
46 |
+
'default' => __ ( 'Multibanco', 'woo-stripe' ),
|
47 |
+
'desc_tip' => true,
|
48 |
+
'description' => __ ( 'Title of the Multibanco gateway' )
|
49 |
+
),
|
50 |
+
'description' => array(
|
51 |
+
'title' => __ ( 'Description', 'woo-stripe' ),
|
52 |
+
'type' => 'text', 'default' => '',
|
53 |
+
'description' => __ ( 'Leave blank if you don\'t want a description to show for the gateway.', 'woo-stripe' ),
|
54 |
+
'desc_tip' => true
|
55 |
+
)
|
56 |
+
];
|
57 |
+
}
|
58 |
+
}
|
includes/gateways/class-wc-payment-gateway-stripe-p24.php
ADDED
@@ -0,0 +1,57 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! class_exists ( 'WC_Payment_Gateway_Local_Payment' )) {
|
3 |
+
return;
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
* @package Stripe/Gateways
|
7 |
+
* @author PaymentPlugins
|
8 |
+
*
|
9 |
+
*/
|
10 |
+
class WC_Payment_Gateway_Stripe_P24 extends WC_Payment_Gateway_Stripe_Local_Payment {
|
11 |
+
|
12 |
+
public function __construct() {
|
13 |
+
$this->local_payment_type = 'p24';
|
14 |
+
$this->currencies = [ 'EUR', 'PLN'
|
15 |
+
];
|
16 |
+
$this->id = 'stripe_p24';
|
17 |
+
$this->tab_title = __ ( 'Przelewy24', 'woo-stripe' );
|
18 |
+
$this->template_name = 'local-payment.php';
|
19 |
+
$this->token_type = 'Stripe_Local';
|
20 |
+
$this->method_title = __ ( 'Przelewy24', 'woo-stripe' );
|
21 |
+
$this->method_description = __ ( 'P24 gateway that integrates with your Stripe account.', 'woo-stripe' );
|
22 |
+
$this->icon = wc_stripe ()->assets_url ( 'img/p24.svg' );
|
23 |
+
$this->order_button_text = __ ( 'P24', 'woo-stripe' );
|
24 |
+
parent::__construct ();
|
25 |
+
}
|
26 |
+
|
27 |
+
public function get_local_payment_settings() {
|
28 |
+
return [
|
29 |
+
'desc' => array( 'type' => 'description',
|
30 |
+
'description' => $this->get_payment_description()
|
31 |
+
),
|
32 |
+
'enabled' => array(
|
33 |
+
'title' => __ ( 'Enabled', 'woo-stripe' ),
|
34 |
+
'type' => 'checkbox',
|
35 |
+
'default' => 'no', 'value' => 'yes',
|
36 |
+
'desc_tip' => true,
|
37 |
+
'description' => __ ( 'If enabled, your site can accept P24 payments through Stripe.', 'woo-stripe' )
|
38 |
+
),
|
39 |
+
'general_settings' => array(
|
40 |
+
'type' => 'title',
|
41 |
+
'title' => __ ( 'General Settings', 'woo-stripe' )
|
42 |
+
),
|
43 |
+
'title_text' => array( 'type' => 'text',
|
44 |
+
'title' => __ ( 'Title', 'woo-stripe' ),
|
45 |
+
'default' => __ ( 'P24', 'woo-stripe' ),
|
46 |
+
'desc_tip' => true,
|
47 |
+
'description' => __ ( 'Title of the p24 gateway' )
|
48 |
+
),
|
49 |
+
'description' => array(
|
50 |
+
'title' => __ ( 'Description', 'woo-stripe' ),
|
51 |
+
'type' => 'text', 'default' => '',
|
52 |
+
'description' => __ ( 'Leave blank if you don\'t want a description to show for the gateway.', 'woo-stripe' ),
|
53 |
+
'desc_tip' => true
|
54 |
+
)
|
55 |
+
];
|
56 |
+
}
|
57 |
+
}
|
includes/gateways/class-wc-payment-gateway-stripe-payment-request.php
ADDED
@@ -0,0 +1,80 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! class_exists ( 'WC_Payment_Gateway_Stripe' )) {
|
3 |
+
return;
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
* This gateway is provided so merchants can accept Chrome Payments, Microsoft Pay, etc.
|
7 |
+
*
|
8 |
+
* @author PaymentPlugins
|
9 |
+
* @package Stripe/Gateways
|
10 |
+
*
|
11 |
+
*/
|
12 |
+
class WC_Payment_Gateway_Stripe_Payment_Request extends WC_Payment_Gateway_Stripe_Payment_Intent {
|
13 |
+
|
14 |
+
public function __construct() {
|
15 |
+
$this->id = 'stripe_payment_request';
|
16 |
+
$this->tab_title = __ ( 'PaymentRequest Gateway', 'woo-stripe' );
|
17 |
+
$this->template_name = 'payment-request.php';
|
18 |
+
$this->token_type = 'Stripe_CC';
|
19 |
+
$this->method_title = __ ( 'Stripe Payment Request', 'woo-stripe' );
|
20 |
+
$this->method_description = __ ( 'Gateway that renders based on the user\'s browser. Chrome payment methods, Microsoft pay, etc.', 'woo-stripe' );
|
21 |
+
parent::__construct ();
|
22 |
+
}
|
23 |
+
|
24 |
+
public function init_supports() {
|
25 |
+
parent::init_supports ();
|
26 |
+
$this->supports[] = 'wc_stripe_cart_checkout';
|
27 |
+
$this->supports[] = 'wc_stripe_product_checkout';
|
28 |
+
$this->supports[] = 'wc_stripe_banner_checkout';
|
29 |
+
}
|
30 |
+
|
31 |
+
public function get_icon() {
|
32 |
+
return wc_stripe_get_template ( 'payment-request-icons.php' );
|
33 |
+
}
|
34 |
+
|
35 |
+
public function enqueue_product_scripts($scripts) {
|
36 |
+
$this->enqueue_checkout_scripts ( $scripts );
|
37 |
+
}
|
38 |
+
|
39 |
+
public function enqueue_cart_scripts($scripts) {
|
40 |
+
$this->enqueue_checkout_scripts ( $scripts );
|
41 |
+
}
|
42 |
+
|
43 |
+
public function enqueue_checkout_scripts($scripts) {
|
44 |
+
$scripts->enqueue_script ( 'payment-request', $scripts->assets_url ( 'js/frontend/payment-request.js' ), [
|
45 |
+
$scripts->get_handle ( 'wc-stripe' ),
|
46 |
+
$scripts->get_handle ( 'external' )
|
47 |
+
], wc_stripe ()->version (), true );
|
48 |
+
|
49 |
+
$scripts->localize_script ( 'payment-request', $this->get_localized_params () );
|
50 |
+
}
|
51 |
+
|
52 |
+
public function get_localized_params() {
|
53 |
+
return array_merge_recursive ( parent::get_localized_params (), [
|
54 |
+
'button' => [
|
55 |
+
'type' => $this->get_option ( 'button_type' ),
|
56 |
+
'theme' => $this->get_option ( 'button_theme' ),
|
57 |
+
'height' => $this->get_button_height ()
|
58 |
+
],
|
59 |
+
'icons' => [
|
60 |
+
'chrome' => wc_stripe ()->assets_url ( 'img/chrome.svg' )
|
61 |
+
],
|
62 |
+
'messages' => [
|
63 |
+
'add_to_cart' => __ ( 'Adding to cart...', 'woo-stripe' ),
|
64 |
+
'choose_product' => __ ( 'Please select a product option before updating quantity.', 'woo-stripe' )
|
65 |
+
]
|
66 |
+
] );
|
67 |
+
}
|
68 |
+
|
69 |
+
private function get_button_height() {
|
70 |
+
$value = $this->get_option ( 'button_height' );
|
71 |
+
$value .= strpos ( $value, 'px' ) === false ? 'px' : '';
|
72 |
+
return $value;
|
73 |
+
}
|
74 |
+
|
75 |
+
private function get_icon_for_payment_request() {
|
76 |
+
$user_agent = isset ( $_SERVER[ 'HTTP_USER_AGENT' ] ) ? $_SERVER[ 'HTTP_USER_AGENT' ] : '';
|
77 |
+
if (! empty ( $user_agent )) {
|
78 |
+
}
|
79 |
+
}
|
80 |
+
}
|
includes/gateways/class-wc-payment-gateway-stripe-sepa.php
ADDED
@@ -0,0 +1,66 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! class_exists ( 'WC_Payment_Gateway_Local_Payment' )) {
|
3 |
+
return;
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
*
|
7 |
+
* @package Stripe/Gateways
|
8 |
+
* @author PaymentPlugins
|
9 |
+
*
|
10 |
+
*/
|
11 |
+
class WC_Payment_Gateway_Stripe_Sepa extends WC_Payment_Gateway_Stripe_Local_Payment {
|
12 |
+
|
13 |
+
public function __construct() {
|
14 |
+
$this->synchronous = false;
|
15 |
+
$this->local_payment_type = 'sepa_debit';
|
16 |
+
$this->currencies = [ 'EUR'
|
17 |
+
];
|
18 |
+
$this->id = 'stripe_sepa';
|
19 |
+
$this->tab_title = __ ( 'SEPA', 'woo-stripe' );
|
20 |
+
$this->template_name = 'local-payment.php';
|
21 |
+
$this->token_type = 'Stripe_Local';
|
22 |
+
$this->method_title = __ ( 'Sepa', 'woo-stripe' );
|
23 |
+
$this->method_description = __ ( 'Sepa gateway that integrates with your Stripe account.', 'woo-stripe' );
|
24 |
+
$this->icon = wc_stripe ()->assets_url ( 'img/sepa.svg' );
|
25 |
+
$this->order_button_text = __ ( 'SEPA', 'woo-stripe' );
|
26 |
+
parent::__construct ();
|
27 |
+
}
|
28 |
+
|
29 |
+
public function get_local_payment_settings() {
|
30 |
+
return [
|
31 |
+
'desc' => array( 'type' => 'description',
|
32 |
+
'description' => $this->get_payment_description()
|
33 |
+
),
|
34 |
+
'enabled' => array(
|
35 |
+
'title' => __ ( 'Enabled', 'woo-stripe' ),
|
36 |
+
'type' => 'checkbox',
|
37 |
+
'default' => 'no', 'value' => 'yes',
|
38 |
+
'desc_tip' => true,
|
39 |
+
'description' => __ ( 'If enabled, your site can accept P24 payments through Stripe.', 'woo-stripe' )
|
40 |
+
),
|
41 |
+
'general_settings' => array(
|
42 |
+
'type' => 'title',
|
43 |
+
'title' => __ ( 'General Settings', 'woo-stripe' )
|
44 |
+
),
|
45 |
+
'title_text' => array( 'type' => 'text',
|
46 |
+
'title' => __ ( 'Title', 'woo-stripe' ),
|
47 |
+
'default' => __ ( 'SEPA Direct Debit', 'woo-stripe' ),
|
48 |
+
'desc_tip' => true,
|
49 |
+
'description' => __ ( 'Title of the Sepa gateway' )
|
50 |
+
),
|
51 |
+
'description' => array(
|
52 |
+
'title' => __ ( 'Description', 'woo-stripe' ),
|
53 |
+
'type' => 'text', 'default' => '',
|
54 |
+
'description' => __ ( 'Leave blank if you don\'t want a description to show for the gateway.', 'woo-stripe' ),
|
55 |
+
'desc_tip' => true
|
56 |
+
)
|
57 |
+
];
|
58 |
+
}
|
59 |
+
|
60 |
+
public function get_element_params() {
|
61 |
+
return array_merge ( parent::get_element_params (), [
|
62 |
+
'supportedCountries' => [ 'SEPA'
|
63 |
+
]
|
64 |
+
] );
|
65 |
+
}
|
66 |
+
}
|
includes/gateways/class-wc-payment-gateway-stripe-sofort.php
ADDED
@@ -0,0 +1,70 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! class_exists ( 'WC_Payment_Gateway_Local_Payment' )) {
|
3 |
+
return;
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
*
|
7 |
+
* @package Stripe/Gateways
|
8 |
+
* @author PaymentPlugins
|
9 |
+
*
|
10 |
+
*/
|
11 |
+
class WC_Payment_Gateway_Stripe_Sofort extends WC_Payment_Gateway_Stripe_Local_Payment {
|
12 |
+
|
13 |
+
public function __construct() {
|
14 |
+
$this->synchronous = false;
|
15 |
+
$this->local_payment_type = 'sofort';
|
16 |
+
$this->currencies = [ 'EUR'
|
17 |
+
];
|
18 |
+
$this->countries = [ 'AT', 'BE', 'DE', 'ES',
|
19 |
+
'IT', 'NL'
|
20 |
+
];
|
21 |
+
$this->id = 'stripe_sofort';
|
22 |
+
$this->tab_title = __ ( 'Sofort', 'woo-stripe' );
|
23 |
+
$this->template_name = 'local-payment.php';
|
24 |
+
$this->token_type = 'Stripe_Local';
|
25 |
+
$this->method_title = __ ( 'Sofort', 'woo-stripe' );
|
26 |
+
$this->method_description = __ ( 'Sofort gateway that integrates with your Stripe account.', 'woo-stripe' );
|
27 |
+
$this->icon = wc_stripe ()->assets_url ( 'img/sofort.svg' );
|
28 |
+
$this->order_button_text = __ ( 'SOFORT', 'woo-stripe' );
|
29 |
+
parent::__construct ();
|
30 |
+
}
|
31 |
+
|
32 |
+
public function get_local_payment_settings() {
|
33 |
+
return [
|
34 |
+
'desc' => array( 'type' => 'description',
|
35 |
+
'description' => $this->get_payment_description()
|
36 |
+
),
|
37 |
+
'enabled' => array(
|
38 |
+
'title' => __ ( 'Enabled', 'woo-stripe' ),
|
39 |
+
'type' => 'checkbox',
|
40 |
+
'default' => 'no', 'value' => 'yes',
|
41 |
+
'desc_tip' => true,
|
42 |
+
'description' => __ ( 'If enabled, your site can accept Sofort payments through Stripe.', 'woo-stripe' )
|
43 |
+
),
|
44 |
+
'general_settings' => array(
|
45 |
+
'type' => 'title',
|
46 |
+
'title' => __ ( 'General Settings', 'woo-stripe' )
|
47 |
+
),
|
48 |
+
'title_text' => array( 'type' => 'text',
|
49 |
+
'title' => __ ( 'Title', 'woo-stripe' ),
|
50 |
+
'default' => __ ( 'SOFORT', 'woo-stripe' ),
|
51 |
+
'desc_tip' => true,
|
52 |
+
'description' => __ ( 'Title of the Sofort gateway' )
|
53 |
+
),
|
54 |
+
'description' => array(
|
55 |
+
'title' => __ ( 'Description', 'woo-stripe' ),
|
56 |
+
'type' => 'text', 'default' => '',
|
57 |
+
'description' => __ ( 'Leave blank if you don\'t want a description to show for the gateway.', 'woo-stripe' ),
|
58 |
+
'desc_tip' => true
|
59 |
+
)
|
60 |
+
];
|
61 |
+
}
|
62 |
+
|
63 |
+
public function get_source_args($order) {
|
64 |
+
return array_merge ( parent::get_source_args ( $order ), [
|
65 |
+
'sofort' => [
|
66 |
+
'country' => $order->get_billing_country ()
|
67 |
+
]
|
68 |
+
] );
|
69 |
+
}
|
70 |
+
}
|
includes/gateways/class-wc-payment-gateway-stripe-wechat.php
ADDED
@@ -0,0 +1,63 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! class_exists ( 'WC_Payment_Gateway_Local_Payment' )) {
|
3 |
+
return;
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
*
|
7 |
+
* @package Stripe/Gateways
|
8 |
+
* @author PaymentPlugins
|
9 |
+
*
|
10 |
+
*/
|
11 |
+
class WC_Payment_Gateway_Stripe_WeChat extends WC_Payment_Gateway_Stripe_Local_Payment {
|
12 |
+
|
13 |
+
public function __construct() {
|
14 |
+
$this->local_payment_type = 'wechat';
|
15 |
+
$this->currencies = [ 'AUD', 'CAD', 'EUR',
|
16 |
+
'GBP', 'HKD', 'JPY', 'SGD', 'USD'
|
17 |
+
];
|
18 |
+
$this->id = 'stripe_wechat';
|
19 |
+
$this->tab_title = __ ( 'WeChat', 'woo-stripe' );
|
20 |
+
$this->template_name = 'local-payment.php';
|
21 |
+
$this->token_type = 'Stripe_Local';
|
22 |
+
$this->method_title = __ ( 'WeChat', 'woo-stripe' );
|
23 |
+
$this->method_description = __ ( 'WeChat gateway that integrates with your Stripe account.', 'woo-stripe' );
|
24 |
+
$this->icon = wc_stripe ()->assets_url ( 'img/wechat.svg' );
|
25 |
+
$this->order_button_text = __ ( 'WeChat', 'woo-stripe' );
|
26 |
+
parent::__construct ();
|
27 |
+
}
|
28 |
+
|
29 |
+
public function get_local_payment_settings() {
|
30 |
+
return [
|
31 |
+
'desc' => array( 'type' => 'description',
|
32 |
+
'description' => $this->get_payment_description()
|
33 |
+
),
|
34 |
+
'enabled' => array(
|
35 |
+
'title' => __ ( 'Enabled', 'woo-stripe' ),
|
36 |
+
'type' => 'checkbox',
|
37 |
+
'default' => 'no', 'value' => 'yes',
|
38 |
+
'desc_tip' => true,
|
39 |
+
'description' => __ ( 'If enabled, your site can accept P24 payments through Stripe.', 'woo-stripe' )
|
40 |
+
),
|
41 |
+
'general_settings' => array(
|
42 |
+
'type' => 'title',
|
43 |
+
'title' => __ ( 'General Settings', 'woo-stripe' )
|
44 |
+
),
|
45 |
+
'title_text' => array( 'type' => 'text',
|
46 |
+
'title' => __ ( 'Title', 'woo-stripe' ),
|
47 |
+
'default' => __ ( 'WeChat', 'woo-stripe' ),
|
48 |
+
'desc_tip' => true,
|
49 |
+
'description' => __ ( 'Title of the WeChat gateway', 'woo-stripe' )
|
50 |
+
),
|
51 |
+
'description' => array(
|
52 |
+
'title' => __ ( 'Description', 'woo-stripe' ),
|
53 |
+
'type' => 'text', 'default' => '',
|
54 |
+
'description' => __ ( 'Leave blank if you don\'t want a description to show for the gateway.', 'woo-stripe' ),
|
55 |
+
'desc_tip' => true
|
56 |
+
)
|
57 |
+
];
|
58 |
+
}
|
59 |
+
|
60 |
+
protected function get_source_redirect_url($source) {
|
61 |
+
return $source->wechat->qr_code_url;
|
62 |
+
}
|
63 |
+
}
|
includes/gateways/settings/applepay-settings.php
ADDED
@@ -0,0 +1,126 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
return array(
|
3 |
+
'desc' => array( 'type' => 'description',
|
4 |
+
'description' => sprintf ( '<div class="wc-stripe-register-domain"><button class="button button-secondary api-register-domain">%s</button></div><p>%s</p>', __ ( 'Register Domain', 'woo-stripe' ), sprintf ( __ ( 'This plugin attemps to add the domain association file to your server automatically when you click the Register Domain button. If that fails due to file permssions, you must add the <strong>%s.well-known/apple-developer-merchantid-domain-association%s</strong> file to your domain and register your domain within the Stripe Dashboard.', 'woo-stripe' ), '<a href="https://stripe.com/files/apple-pay/apple-developer-merchantid-domain-association">', '</a>' ) )
|
5 |
+
),
|
6 |
+
'enabled' => array(
|
7 |
+
'title' => __ ( 'Enabled', 'woo-stripe' ),
|
8 |
+
'type' => 'checkbox', 'default' => 'no',
|
9 |
+
'value' => 'yes', 'desc_tip' => true,
|
10 |
+
'description' => __ ( 'If enabled, your site can accept Apple Pay payments through Stripe.', 'woo-stripe' )
|
11 |
+
),
|
12 |
+
'general_settings' => array( 'type' => 'title',
|
13 |
+
'title' => __ ( 'General Settings', 'woo-stripe' )
|
14 |
+
),
|
15 |
+
'title_text' => array( 'type' => 'text',
|
16 |
+
'title' => __ ( 'Title', 'woo-stripe' ),
|
17 |
+
'default' => __ ( 'Apple Pay', 'woo-stripe' ),
|
18 |
+
'desc_tip' => true,
|
19 |
+
'description' => __ ( 'Title of the credit card gateway' )
|
20 |
+
),
|
21 |
+
'description' => array(
|
22 |
+
'title' => __ ( 'Description', 'woo-stripe' ),
|
23 |
+
'type' => 'text', 'default' => '',
|
24 |
+
'description' => __ ( 'Leave blank if you don\'t want a description to show for the gateway.', 'woo-stripe' ),
|
25 |
+
'desc_tip' => true
|
26 |
+
),
|
27 |
+
'method_format' => array(
|
28 |
+
'title' => __ ( 'Credit Card Display', 'woo-stripe' ),
|
29 |
+
'type' => 'select',
|
30 |
+
'class' => 'wc-enhanced-select',
|
31 |
+
'options' => wp_list_pluck ( $this->get_method_formats (), 'example' ),
|
32 |
+
'value' => '', 'default' => 'type_ending_in',
|
33 |
+
'desc_tip' => true,
|
34 |
+
'description' => __ ( 'This option allows you to customize how the credit card will display for your customers on orders, subscriptions, etc.' )
|
35 |
+
),
|
36 |
+
'charge_type' => array( 'type' => 'select',
|
37 |
+
'title' => __ ( 'Charge Type', 'woo-stripe' ),
|
38 |
+
'default' => 'capture',
|
39 |
+
'class' => 'wc-enhanced-select',
|
40 |
+
'options' => array(
|
41 |
+
'capture' => __ ( 'Capture', 'woo-stripe' ),
|
42 |
+
'authorize' => __ ( 'Authorize', 'woo-stripe' )
|
43 |
+
), 'desc_tip' => true,
|
44 |
+
'description' => __ ( 'This option determines whether the customer\'s funds are captured immediately or authorized and can be captured at a later date.', 'woo-stripe' )
|
45 |
+
),
|
46 |
+
'payment_sections' => array(
|
47 |
+
'type' => 'multiselect',
|
48 |
+
'title' => __ ( 'Payment Sections', 'woo-stripe' ),
|
49 |
+
'class' => 'wc-enhanced-select',
|
50 |
+
'options' => [
|
51 |
+
'product' => __ ( 'Product Page', 'woo-stripe' ),
|
52 |
+
'cart' => __ ( 'Cart Page', 'woo-stripe' ),
|
53 |
+
'checkout_banner' => __ ( 'Top of Checkout', 'woo-stripe' )
|
54 |
+
], 'default' => [ 'product', 'cart'
|
55 |
+
],
|
56 |
+
'description' => __ ( 'Increase your conversion rate by offering Apple Pay on your Product and Cart pages, or at the top of the checkout page.', 'woo-stripe' )
|
57 |
+
),
|
58 |
+
'order_status' => array( 'type' => 'select',
|
59 |
+
'title' => __ ( 'Order Status', 'woo-stripe' ),
|
60 |
+
'default' => 'default',
|
61 |
+
'class' => 'wc-enhanced-select',
|
62 |
+
'options' => array_merge ( array(
|
63 |
+
'default' => __ ( 'Default', 'woo-stripe' )
|
64 |
+
), wc_get_order_statuses () ),
|
65 |
+
'tool_tip' => true,
|
66 |
+
'description' => __ ( 'This is the status of the order once payment is complete. If <b>Default</b> is selected, then WooCommerce will set the order status automatically based on internal logic which states if a product is virtual and downloadable then status is set to complete. Products that require shipping are set to Processing. Default is the recommended setting as it allows standard WooCommerce code to process the order status.', 'woo-stripe' )
|
67 |
+
),
|
68 |
+
/* 'order_prefix' => array( 'type' => 'text',
|
69 |
+
'title' => __ ( 'Order Prefix', 'woo-stripe' ),
|
70 |
+
'value' => '', 'default' => '',
|
71 |
+
'class' => '', 'desc_tip' => true,
|
72 |
+
'description' => __ ( 'The order prefix is prepended to the WooCommerce order id and will appear within Braintree as the Order ID. This setting can be helpful if you want to distinguish
|
73 |
+
orders that came from this particular site, plugin, or gateway.', 'woo-stripe' )
|
74 |
+
),
|
75 |
+
'order_suffix' => array( 'type' => 'text',
|
76 |
+
'title' => __ ( 'Order Suffix', 'woo-stripe' ),
|
77 |
+
'value' => '', 'default' => '',
|
78 |
+
'class' => '', 'desc_tip' => true,
|
79 |
+
'description' => __ ( 'The order suffix is appended to the WooCommerce order id and will appear within Braintree as the Order ID. This setting can be helpful if you want to distinguish
|
80 |
+
orders that came from this particular site, plugin, or gateway.', 'woo-stripe' )
|
81 |
+
), */
|
82 |
+
'button_section' => [ 'type' => 'title',
|
83 |
+
'title' => __ ( 'Button Settings', 'woo-stripe' )
|
84 |
+
],
|
85 |
+
'button_style' => [ 'type' => 'select',
|
86 |
+
'title' => __ ( 'Button Design', 'woo-stripe' ),
|
87 |
+
'class' => 'wc-enhanced-select',
|
88 |
+
'default' => 'apple-pay-button-black',
|
89 |
+
'options' => array(
|
90 |
+
'apple-pay-button-black' => __ ( 'Black Button', 'woo-stripe' ),
|
91 |
+
'apple-pay-button-white-with-line' => __ ( 'White With Black Line', 'woo-stripe' ),
|
92 |
+
'apple-pay-button-white' => __ ( 'White Button', 'woo-stripe' )
|
93 |
+
),
|
94 |
+
'description' => __ ( 'This is the style for all Apple Pay buttons presented on your store.', 'woo-stripe' )
|
95 |
+
],
|
96 |
+
'button_type_checkout' => array(
|
97 |
+
'title' => __ ( 'Checkout button type', 'woo-stripe' ),
|
98 |
+
'type' => 'select',
|
99 |
+
'options' => array(
|
100 |
+
'plain' => __ ( 'Standard Button', 'woo-stripe' ),
|
101 |
+
'buy' => __ ( 'Buy with Apple Pay', 'woo-stripe' )
|
102 |
+
),
|
103 |
+
// 'check-out' => __ ( 'Checkout with Apple Pay', 'woo-stripe' )
|
104 |
+
'default' => 'plain'
|
105 |
+
),
|
106 |
+
'button_type_cart' => array(
|
107 |
+
'title' => __ ( 'Cart button type', 'woo-stripe' ),
|
108 |
+
'type' => 'select',
|
109 |
+
'options' => array(
|
110 |
+
'plain' => __ ( 'Standard Button', 'woo-stripe' ),
|
111 |
+
'buy' => __ ( 'Buy with Apple Pay', 'woo-stripe' )
|
112 |
+
),
|
113 |
+
// 'check-out' => __ ( 'Checkout with Apple Pay', 'woo-stripe' )
|
114 |
+
'default' => 'plain'
|
115 |
+
),
|
116 |
+
'button_type_product' => array(
|
117 |
+
'title' => __ ( 'Product button type', 'woo-stripe' ),
|
118 |
+
'type' => 'select',
|
119 |
+
'options' => array(
|
120 |
+
'plain' => __ ( 'Standard Button', 'woo-stripe' ),
|
121 |
+
'buy' => __ ( 'Buy with Apple Pay', 'woo-stripe' )
|
122 |
+
),
|
123 |
+
// 'check-out' => __ ( 'Checkout with Apple Pay', 'woo-stripe' )
|
124 |
+
'default' => 'buy'
|
125 |
+
)
|
126 |
+
);
|
includes/gateways/settings/cc-settings.php
ADDED
@@ -0,0 +1,127 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
return array(
|
3 |
+
'enabled' => array(
|
4 |
+
'title' => __ ( 'Enabled', 'woo-stripe' ),
|
5 |
+
'type' => 'checkbox', 'default' => 'yes',
|
6 |
+
'value' => 'yes', 'desc_tip' => true,
|
7 |
+
'description' => __ ( 'If enabled, your site can accept credit card payments through Stripe.', 'woo-stripe' )
|
8 |
+
),
|
9 |
+
'desc1' => array( 'type' => 'description',
|
10 |
+
'description' => sprintf ( __ ( '%sTest cards%s', 'woo-stripe' ), '<a target="_blank" href="https://stripe.com/docs/testing#cards">', '</a>' )
|
11 |
+
),
|
12 |
+
'general_settings' => array( 'type' => 'title',
|
13 |
+
'title' => __ ( 'General Settings', 'woo-stripe' )
|
14 |
+
),
|
15 |
+
'title_text' => array( 'type' => 'text',
|
16 |
+
'title' => __ ( 'Title', 'woo-stripe' ),
|
17 |
+
'default' => __ ( 'Credit Cards', 'woo-stripe' ),
|
18 |
+
'desc_tip' => true,
|
19 |
+
'description' => __ ( 'Title of the credit card gateway' )
|
20 |
+
),
|
21 |
+
'description' => array(
|
22 |
+
'title' => __ ( 'Description', 'woo-stripe' ),
|
23 |
+
'type' => 'text', 'default' => '',
|
24 |
+
'description' => __ ( 'Leave blank if you don\'t want a description to show for the gateway.', 'woo-stripe' ),
|
25 |
+
'desc_tip' => true
|
26 |
+
),
|
27 |
+
'method_format' => array(
|
28 |
+
'title' => __ ( 'Credit Card Display', 'woo-stripe' ),
|
29 |
+
'type' => 'select',
|
30 |
+
'class' => 'wc-enhanced-select',
|
31 |
+
'options' => wp_list_pluck ( $this->get_method_formats (), 'example' ),
|
32 |
+
'value' => '', 'default' => 'type_ending_in',
|
33 |
+
'desc_tip' => true,
|
34 |
+
'description' => __ ( 'This option allows you to customize how the credit card will display for your customers on orders, subscriptions, etc.' )
|
35 |
+
),
|
36 |
+
'charge_type' => array( 'type' => 'select',
|
37 |
+
'title' => __ ( 'Charge Type', 'woo-stripe' ),
|
38 |
+
'default' => 'capture',
|
39 |
+
'class' => 'wc-enhanced-select',
|
40 |
+
'options' => array(
|
41 |
+
'capture' => __ ( 'Capture', 'woo-stripe' ),
|
42 |
+
'authorize' => __ ( 'Authorize', 'woo-stripe' )
|
43 |
+
), 'desc_tip' => true,
|
44 |
+
'description' => __ ( 'This option determines whether the customer\'s funds are captured immediately or authorized and can be captured at a later date.', 'woo-stripe' )
|
45 |
+
),
|
46 |
+
'order_status' => array( 'type' => 'select',
|
47 |
+
'title' => __ ( 'Order Status', 'woo-stripe' ),
|
48 |
+
'default' => 'default',
|
49 |
+
'class' => 'wc-enhanced-select',
|
50 |
+
'options' => array_merge ( array(
|
51 |
+
'default' => __ ( 'Default', 'woo-stripe' )
|
52 |
+
), wc_get_order_statuses () ),
|
53 |
+
'tool_tip' => true,
|
54 |
+
'description' => __ ( 'This is the status of the order once payment is complete. If <b>Default</b> is selected, then WooCommerce will set the order status automatically based on internal logic which states if a product is virtual and downloadable then status is set to complete. Products that require shipping are set to Processing. Default is the recommended setting as it allows standard WooCommerce code to process the order status.', 'woo-stripe' )
|
55 |
+
),
|
56 |
+
'save_card_enabled' => array( 'type' => 'checkbox',
|
57 |
+
'value' => 'yes', 'default' => 'yes',
|
58 |
+
'title' => __ ( 'Allow Credit Card Save', 'woo-stripe' ),
|
59 |
+
'desc_tip' => false,
|
60 |
+
'description' => __ ( 'If enabled, a checkbox will be available on the checkout page allowing your customer\'s to save their credit card. The payment methods are stored securely in Stripe\'s vault and never touch your server. Note: if the cart contains a subscription, there will be no checkbox because the payment method will be saved automatically. There will also be no checkbox for guest checkout as a user must be logged in to save a payment method.', 'woo-stripe' )
|
61 |
+
),
|
62 |
+
'cards' => array( 'type' => 'multiselect',
|
63 |
+
'title' => __ ( 'Accepted Payment Methods', 'wwoo-stripe' ),
|
64 |
+
'class' => 'wc-enhanced-select stripe-accepted-cards',
|
65 |
+
'default' => array( 'amex', 'discover',
|
66 |
+
'visa', 'mastercard'
|
67 |
+
),
|
68 |
+
'options' => array(
|
69 |
+
'visa' => __ ( 'Visa', 'wwoo-stripe' ),
|
70 |
+
'amex' => __ ( 'Amex', 'wwoo-stripe' ),
|
71 |
+
'discover' => __ ( 'Discover', 'wwoo-stripe' ),
|
72 |
+
'mastercard' => __ ( 'MasterCard', 'wwoo-stripe' ),
|
73 |
+
'jcb' => __ ( 'JCB', 'wwoo-stripe' ),
|
74 |
+
'maestro' => __ ( 'Maestro', 'wwoo-stripe' ),
|
75 |
+
'diners' => __ ( 'Diners Club', 'wwoo-stripe' ),
|
76 |
+
'china_union_pay' => __ ( 'Union Pay', 'wwoo-stripe' )
|
77 |
+
), 'desc_tip' => true,
|
78 |
+
'description' => __ ( 'The selected icons will show customers which credit card brands you accept.', 'wwoo-stripe' )
|
79 |
+
),
|
80 |
+
'form_title' => array( 'type' => 'title',
|
81 |
+
'title' => __ ( 'Credit Card Form', 'woo-stripe' )
|
82 |
+
),
|
83 |
+
'form_type' => array(
|
84 |
+
'title' => __ ( 'Card Form', 'woo-stripe' ),
|
85 |
+
'type' => 'select',
|
86 |
+
'options' => array(
|
87 |
+
'inline' => __ ( 'Stripe form', 'woo-stripe' ),
|
88 |
+
'custom' => __ ( 'Custom form', 'woo-stripe' )
|
89 |
+
), 'default' => 'inline',
|
90 |
+
'description' => __ ( 'The Stripe form option displays a CC form rendered by Stripe. It works well with most themes. The custom card forms are offered if you want more options on the CC form design.', 'woo-stripe' )
|
91 |
+
),
|
92 |
+
'custom_form' => array(
|
93 |
+
'title' => __ ( 'Custom Form', 'woo-stripe' ),
|
94 |
+
'type' => 'select',
|
95 |
+
'options' => wp_list_pluck ( wc_stripe_get_custom_forms (), 'label' ),
|
96 |
+
'default' => 'bootstrap',
|
97 |
+
'description' => __ ( 'The design of the credit card form.', 'woo-stripe' ),
|
98 |
+
'desc_tip' => true,
|
99 |
+
'custom_attributes' => array(
|
100 |
+
'data-show-if' => array(
|
101 |
+
'form_type' => 'custom'
|
102 |
+
)
|
103 |
+
)
|
104 |
+
),
|
105 |
+
'postal_enabled' => array(
|
106 |
+
'title' => __ ( 'Postal Code', 'woo-stripe' ),
|
107 |
+
'type' => 'checkbox', 'default' => 'yes',
|
108 |
+
'description' => __ ( 'If enabled, the CC form will show the postal code on the checkout page. If disabled, the billing field\'s postal code will be used. The postal code will show on the Add Payment Method page for security reasons.', 'woo-stripe' ),
|
109 |
+
'desc_tip' => true,
|
110 |
+
'custom_attributes' => array(
|
111 |
+
'data-show-if' => array(
|
112 |
+
'form_type' => 'custom'
|
113 |
+
)
|
114 |
+
)
|
115 |
+
),
|
116 |
+
/* 'cvv_enabled' => array(
|
117 |
+
'title' => __ ( 'CVV Code', 'woo-stripe' ),
|
118 |
+
'type' => 'checkbox', 'default' => 'yes',
|
119 |
+
'description' => __ ( 'If enabled, the CC form will show the cvv field.', 'woo-stripe' ),
|
120 |
+
'desc_tip' => true,
|
121 |
+
'custom_attributes' => array(
|
122 |
+
'data-show-if' => array(
|
123 |
+
'form_type' => 'custom'
|
124 |
+
)
|
125 |
+
)
|
126 |
+
) */
|
127 |
+
);
|
includes/gateways/settings/googlepay-settings.php
ADDED
@@ -0,0 +1,144 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
return array(
|
3 |
+
'desc1' => array( 'type' => 'description',
|
4 |
+
'description' => '<p><a target="_blank" href="https://services.google.com/fb/forms/googlepayAPIenable/">' . __ ( 'Google Pay Request', 'woo-stripe' ) . '</a>. ' . __ ( 'When you submit your request for Google Pay, request to be whitelisted for callbackintents. This ensures that the order items are displayed on the Google Payment sheet.', 'woo-stripe' ) . '</p>' . __ ( 'To have the Google API team approve your integration you can enable test mode and Google Pay. When test mode is enabled, Google Pay will work, allowing you to capture the necessary screenshots the Google API team needs to approve your Merchant ID request.', 'woo-stripe' )
|
5 |
+
),
|
6 |
+
'desc2' => array( 'type' => 'description',
|
7 |
+
'description' => sprintf ( '<p>%s</p>', sprintf ( __ ( 'If you don\'t want to request a Google Merchant ID, you can use the %sPayment Request Gateway%s which has a Google Pay integration through Stripe via the Chrome browser.', 'woo-stripe' ), '<a target="_blank" href="' . admin_url ( 'admin.php?page=wc-settings&tab=checkout§ion=stripe_payment_request' ) . '">', '</a>' ) )
|
8 |
+
),
|
9 |
+
'enabled' => array(
|
10 |
+
'title' => __ ( 'Enabled', 'woo-stripe' ),
|
11 |
+
'type' => 'checkbox', 'default' => 'no',
|
12 |
+
'value' => 'yes', 'desc_tip' => true,
|
13 |
+
'description' => __ ( 'If enabled, your site can accept Google Pay payments through Stripe.', 'woo-stripe' )
|
14 |
+
),
|
15 |
+
'general_settings' => array( 'type' => 'title',
|
16 |
+
'title' => __ ( 'General Settings', 'woo-stripe' )
|
17 |
+
),
|
18 |
+
'merchant_id' => array( 'type' => 'text',
|
19 |
+
'title' => __ ( 'Merchant ID', 'woo-stripe' ),
|
20 |
+
'default' => '',
|
21 |
+
'description' => __ ( 'Your Google Merchant ID is given to you by the Google API team once you register for Google Pay. While testing in TEST mode you can leave this value blank and Google Pay will work.', 'woo-stripe' )
|
22 |
+
),
|
23 |
+
'title_text' => array( 'type' => 'text',
|
24 |
+
'title' => __ ( 'Title', 'woo-stripe' ),
|
25 |
+
'default' => __ ( 'Google Pay', 'woo-stripe' ),
|
26 |
+
'desc_tip' => true,
|
27 |
+
'description' => __ ( 'Title of the credit card gateway' )
|
28 |
+
),
|
29 |
+
'description' => array(
|
30 |
+
'title' => __ ( 'Description', 'woo-stripe' ),
|
31 |
+
'type' => 'text', 'default' => '',
|
32 |
+
'description' => __ ( 'Leave blank if you don\'t want a description to show for the gateway.', 'woo-stripe' ),
|
33 |
+
'desc_tip' => true
|
34 |
+
),
|
35 |
+
'method_format' => array(
|
36 |
+
'title' => __ ( 'Credit Card Display', 'woo-stripe' ),
|
37 |
+
'type' => 'select',
|
38 |
+
'class' => 'wc-enhanced-select',
|
39 |
+
'options' => wp_list_pluck ( $this->get_method_formats (), 'example' ),
|
40 |
+
'value' => '', 'default' => 'type_ending_in',
|
41 |
+
'desc_tip' => true,
|
42 |
+
'description' => __ ( 'This option allows you to customize how the credit card will display for your customers on orders, subscriptions, etc.' )
|
43 |
+
),
|
44 |
+
'charge_type' => array( 'type' => 'select',
|
45 |
+
'title' => __ ( 'Charge Type', 'woo-stripe' ),
|
46 |
+
'default' => 'capture',
|
47 |
+
'class' => 'wc-enhanced-select',
|
48 |
+
'options' => array(
|
49 |
+
'capture' => __ ( 'Capture', 'woo-stripe' ),
|
50 |
+
'authorize' => __ ( 'Authorize', 'woo-stripe' )
|
51 |
+
), 'desc_tip' => true,
|
52 |
+
'description' => __ ( 'This option determines whether the customer\'s funds are capture immediately or authorized and can be captured at a later date.', 'woo-stripe' )
|
53 |
+
),
|
54 |
+
'payment_sections' => array(
|
55 |
+
'type' => 'multiselect',
|
56 |
+
'title' => __ ( 'Payment Sections', 'woo-stripe' ),
|
57 |
+
'class' => 'wc-enhanced-select',
|
58 |
+
'options' => [
|
59 |
+
'product' => __ ( 'Product Page', 'woo-stripe' ),
|
60 |
+
'cart' => __ ( 'Cart Page', 'woo-stripe' ),
|
61 |
+
'checkout_banner' => __ ( 'Top of Checkout', 'woo-stripe' )
|
62 |
+
], 'default' => [ 'product', 'cart'
|
63 |
+
],
|
64 |
+
'description' => __ ( 'Increase your conversion rate by offering Google Pay on your Product and Cart pages, or at the top of the checkout page.', 'woo-stripe' )
|
65 |
+
),
|
66 |
+
'order_status' => array( 'type' => 'select',
|
67 |
+
'title' => __ ( 'Order Status', 'woo-stripe' ),
|
68 |
+
'default' => 'default',
|
69 |
+
'class' => 'wc-enhanced-select',
|
70 |
+
'options' => array_merge ( array(
|
71 |
+
'default' => __ ( 'Default', 'woo-stripe' )
|
72 |
+
), wc_get_order_statuses () ),
|
73 |
+
'tool_tip' => true,
|
74 |
+
'description' => __ ( 'This is the status of the order once payment is complete. If <b>Default</b> is selected, then WooCommerce will set the order status automatically based on internal logic which states if a product is virtual and downloadable then status is set to complete. Products that require shipping are set to Processing. Default is the recommended setting as it allows standard WooCommerce code to process the order status.', 'woo-stripe' )
|
75 |
+
),
|
76 |
+
'merchant_name' => [ 'type' => 'text',
|
77 |
+
'title' => __ ( 'Merchant Name', 'woo-stripe' ),
|
78 |
+
'default' => get_bloginfo ( 'name' ),
|
79 |
+
'description' => __ ( 'The name of your business as it appears on the Google Pay payment sheet.', 'woo-stripe' ),
|
80 |
+
'desc_tip' => true
|
81 |
+
],
|
82 |
+
'icon' => array(
|
83 |
+
'title' => __ ( 'Icon', 'woo-stripe' ),
|
84 |
+
'type' => 'select',
|
85 |
+
'options' => array(
|
86 |
+
'googlepay_outline' => __ ( 'With Outline', 'woo-stripe' ),
|
87 |
+
'googlepay_standard' => __ ( 'Standard', 'woo-stripe' )
|
88 |
+
), 'default' => 'googlepay_standard',
|
89 |
+
'desc_tip' => true,
|
90 |
+
'description' => __ ( 'This is the icon style that appears next to the gateway on the checkout page.', 'woo-stripe' )
|
91 |
+
),
|
92 |
+
/* 'order_prefix' => array( 'type' => 'text',
|
93 |
+
'title' => __ ( 'Order Prefix', 'woo-stripe' ),
|
94 |
+
'value' => '', 'default' => '',
|
95 |
+
'class' => '', 'desc_tip' => true,
|
96 |
+
'description' => __ ( 'The order prefix is prepended to the WooCommerce order id and will appear within Braintree as the Order ID. This setting can be helpful if you want to distinguish
|
97 |
+
orders that came from this particular site, plugin, or gateway.', 'woo-stripe' )
|
98 |
+
),
|
99 |
+
'order_suffix' => array( 'type' => 'text',
|
100 |
+
'title' => __ ( 'Order Suffix', 'woo-stripe' ),
|
101 |
+
'value' => '', 'default' => '',
|
102 |
+
'class' => '', 'desc_tip' => true,
|
103 |
+
'description' => __ ( 'The order suffix is appended to the WooCommerce order id and will appear within Braintree as the Order ID. This setting can be helpful if you want to distinguish
|
104 |
+
orders that came from this particular site, plugin, or gateway.', 'woo-stripe' )
|
105 |
+
), */
|
106 |
+
/* 'order_status' => array( 'type' => 'select',
|
107 |
+
'title' => __ ( 'Order Status', 'woo-stripe' ),
|
108 |
+
'default' => 'default',
|
109 |
+
'class' => 'wc-enhanced-select',
|
110 |
+
'options' => array_merge ( array(
|
111 |
+
'default' => __ ( 'Default', 'woo-stripe' )
|
112 |
+
), wc_get_order_statuses () ),
|
113 |
+
'tool_tip' => true,
|
114 |
+
'description' => __ ( 'This is the status of the order once payment is complete. If <b>Default</b> is selected, then WooCommerce will set the order status automatically based on internal logic which states if a product is virtual and downloadable then status is set to complete. Products that require shipping are set to Processing. Default is the recommended setting as it allows standard WooCommerce code to process the order status.', 'woo-stripe' )
|
115 |
+
), */
|
116 |
+
'button_section' => array( 'type' => 'title',
|
117 |
+
'title' => __ ( 'Button Options', 'woo-stripe' )
|
118 |
+
),
|
119 |
+
'button_color' => array(
|
120 |
+
'title' => __ ( 'Button Color', 'woo-stripe' ),
|
121 |
+
'type' => 'select',
|
122 |
+
'class' => 'gpay-button-option button-color',
|
123 |
+
'options' => array(
|
124 |
+
'black' => __ ( 'Black', 'woo-stripe' ),
|
125 |
+
'white' => __ ( 'White', 'woo-stripe' )
|
126 |
+
), 'default' => 'black',
|
127 |
+
'description' => __ ( 'The button color of the GPay button.', 'woo-stripe' )
|
128 |
+
),
|
129 |
+
'button_style' => array(
|
130 |
+
'title' => __ ( 'Button Style', 'woo-stripe' ),
|
131 |
+
'type' => 'select',
|
132 |
+
'class' => 'gpay-button-option button-style',
|
133 |
+
'options' => array(
|
134 |
+
'long' => __ ( 'Long', 'woo-stripe' ),
|
135 |
+
'short' => __ ( 'Short', 'woo-stripe' )
|
136 |
+
), 'default' => 'long',
|
137 |
+
'description' => __ ( 'The button style of the GPay button.', 'woo-stripe' )
|
138 |
+
),
|
139 |
+
'button_render' => [ 'type' => 'button_demo',
|
140 |
+
'title' => __ ( 'Button Design', 'woo-stripe' ),
|
141 |
+
'id' => 'gpay-button',
|
142 |
+
'description' => __ ( 'If you can\'t see the Google Pay button, try switching to a Chrome browser.', 'woo-stripe' )
|
143 |
+
]
|
144 |
+
);
|
includes/gateways/settings/payment-request-settings.php
ADDED
@@ -0,0 +1,109 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
return array(
|
3 |
+
'desc' => array( 'type' => 'description',
|
4 |
+
'description' => __ ( 'The PaymentRequest gateway uses your customer\'s browser to render payment options like Google Pay and Microsoft Pay. You can either use the Google Pay gateway for example, or this gateway.
|
5 |
+
The difference is this gateway uses Stripe\'s PaymentRequest Button rather than render a Google Pay specific button.', 'woo-stripe' )
|
6 |
+
),
|
7 |
+
'enabled' => array(
|
8 |
+
'title' => __ ( 'Enabled', 'woo-stripe' ),
|
9 |
+
'type' => 'checkbox', 'default' => 'no',
|
10 |
+
'value' => 'yes', 'desc_tip' => true,
|
11 |
+
'description' => __ ( 'If enabled, your site can accept Apple Pay payments through Stripe.', 'woo-stripe' )
|
12 |
+
),
|
13 |
+
'general_settings' => array( 'type' => 'title',
|
14 |
+
'title' => __ ( 'General Settings', 'woo-stripe' )
|
15 |
+
),
|
16 |
+
'title_text' => array( 'type' => 'text',
|
17 |
+
'title' => __ ( 'Title', 'woo-stripe' ),
|
18 |
+
'default' => __ ( 'Browser Payments', 'woo-stripe' ),
|
19 |
+
'desc_tip' => true,
|
20 |
+
'description' => __ ( 'Title of the credit card gateway' )
|
21 |
+
),
|
22 |
+
'description' => array(
|
23 |
+
'title' => __ ( 'Description', 'woo-stripe' ),
|
24 |
+
'type' => 'text', 'default' => '',
|
25 |
+
'description' => __ ( 'Leave blank if you don\'t want a description to show for the gateway.', 'woo-stripe' ),
|
26 |
+
'desc_tip' => true
|
27 |
+
),
|
28 |
+
'method_format' => array(
|
29 |
+
'title' => __ ( 'Credit Card Display', 'woo-stripe' ),
|
30 |
+
'type' => 'select',
|
31 |
+
'class' => 'wc-enhanced-select',
|
32 |
+
'options' => wp_list_pluck ( $this->get_method_formats (), 'example' ),
|
33 |
+
'value' => '', 'default' => 'type_ending_in',
|
34 |
+
'desc_tip' => true,
|
35 |
+
'description' => __ ( 'This option allows you to customize how the credit card will display for your customers on orders, subscriptions, etc.' )
|
36 |
+
),
|
37 |
+
'charge_type' => array( 'type' => 'select',
|
38 |
+
'title' => __ ( 'Charge Type', 'woo-stripe' ),
|
39 |
+
'default' => 'capture',
|
40 |
+
'class' => 'wc-enhanced-select',
|
41 |
+
'options' => array(
|
42 |
+
'capture' => __ ( 'Capture', 'woo-stripe' ),
|
43 |
+
'authorize' => __ ( 'Authorize', 'woo-stripe' )
|
44 |
+
), 'desc_tip' => true,
|
45 |
+
'description' => __ ( 'This option determines whether the customer\'s funds are captured immediately or authorized and can be captured at a later date.', 'woo-stripe' )
|
46 |
+
),
|
47 |
+
'payment_sections' => array(
|
48 |
+
'type' => 'multiselect',
|
49 |
+
'title' => __ ( 'Payment Sections', 'woo-stripe' ),
|
50 |
+
'class' => 'wc-enhanced-select',
|
51 |
+
'options' => [
|
52 |
+
'product' => __ ( 'Product Page', 'woo-stripe' ),
|
53 |
+
'cart' => __ ( 'Cart Page', 'woo-stripe' ),
|
54 |
+
'checkout_banner' => __ ( 'Top of Checkout', 'woo-stripe' )
|
55 |
+
], 'default' => [ 'product', 'cart'
|
56 |
+
],
|
57 |
+
'description' => __ ( 'Increase your conversion rate by offering Apple Pay on your Product and Cart pages, or at the top of the checkout page.', 'woo-stripe' )
|
58 |
+
),
|
59 |
+
/* 'order_prefix' => array( 'type' => 'text',
|
60 |
+
'title' => __ ( 'Order Prefix', 'woo-stripe' ),
|
61 |
+
'value' => '', 'default' => '',
|
62 |
+
'class' => '', 'desc_tip' => true,
|
63 |
+
'description' => __ ( 'The order prefix is prepended to the WooCommerce order id and will appear within Braintree as the Order ID. This setting can be helpful if you want to distinguish
|
64 |
+
orders that came from this particular site, plugin, or gateway.', 'woo-stripe' )
|
65 |
+
),
|
66 |
+
'order_suffix' => array( 'type' => 'text',
|
67 |
+
'title' => __ ( 'Order Suffix', 'woo-stripe' ),
|
68 |
+
'value' => '', 'default' => '',
|
69 |
+
'class' => '', 'desc_tip' => true,
|
70 |
+
'description' => __ ( 'The order suffix is appended to the WooCommerce order id and will appear within Braintree as the Order ID. This setting can be helpful if you want to distinguish
|
71 |
+
orders that came from this particular site, plugin, or gateway.', 'woo-stripe' )
|
72 |
+
), */
|
73 |
+
'order_status' => array( 'type' => 'select',
|
74 |
+
'title' => __ ( 'Order Status', 'woo-stripe' ),
|
75 |
+
'default' => 'default',
|
76 |
+
'class' => 'wc-enhanced-select',
|
77 |
+
'options' => array_merge ( array(
|
78 |
+
'default' => __ ( 'Default', 'woo-stripe' )
|
79 |
+
), wc_get_order_statuses () ),
|
80 |
+
'tool_tip' => true,
|
81 |
+
'description' => __ ( 'This is the status of the order once payment is complete. If <b>Default</b> is selected, then WooCommerce will set the order status automatically based on internal logic which states if a product is virtual and downloadable then status is set to complete. Products that require shipping are set to Processing. Default is the recommended setting as it allows standard WooCommerce code to process the order status.', 'woo-stripe' )
|
82 |
+
),
|
83 |
+
'button_section' => [ 'type' => 'title',
|
84 |
+
'title' => __ ( 'Button Settings', 'woo-stripe' )
|
85 |
+
],
|
86 |
+
'button_type' => [ 'type' => 'select',
|
87 |
+
'title' => __ ( 'Type', 'woo-stripe' ),
|
88 |
+
'options' => [
|
89 |
+
'default' => __ ( 'default', 'woo-stripe' ),
|
90 |
+
// 'donate' => __ ( 'donate', 'woo-stripe' ),
|
91 |
+
'buy' => __ ( 'buy', 'woo-stripe' )
|
92 |
+
], 'default' => 'buy', 'desc_tip' => true,
|
93 |
+
'description' => __ ( 'This defines the type of button that will display.', 'woo-stripe' )
|
94 |
+
],
|
95 |
+
'button_theme' => [ 'type' => 'select',
|
96 |
+
'title' => __ ( 'Theme', 'woo-stripe' ),
|
97 |
+
'options' => [
|
98 |
+
'dark' => __ ( 'dark', 'woo-stripe' ),
|
99 |
+
'light' => __ ( 'light', 'woo-stripe' ),
|
100 |
+
'light-outline' => __ ( 'light-outline', 'woo-stripe' )
|
101 |
+
], 'default' => 'dark', 'desc_tip' => true,
|
102 |
+
'description' => __ ( 'This defines the color scheme for the button.', 'woo-stripe' )
|
103 |
+
],
|
104 |
+
'button_height' => [ 'type' => 'text',
|
105 |
+
'title' => __ ( 'Height', 'woo-stripe' ),
|
106 |
+
'default' => '40', 'desc_tip' => true,
|
107 |
+
'description' => __ ( 'The height of the button. Max height is 64', 'woo-stripe' )
|
108 |
+
]
|
109 |
+
);
|
includes/tokens/class-wc-payment-token-stripe-applepay.php
ADDED
@@ -0,0 +1,24 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! class_exists ( 'WC_Payment_Token_Stripe_CC' )) {
|
3 |
+
return;
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
*
|
7 |
+
* @author PaymentPlugins
|
8 |
+
* @package Stripe/Tokens
|
9 |
+
*
|
10 |
+
*/
|
11 |
+
class WC_Payment_Token_Stripe_ApplePay extends WC_Payment_Token_Stripe_CC {
|
12 |
+
|
13 |
+
protected $type = 'Stripe_ApplePay';
|
14 |
+
|
15 |
+
/**
|
16 |
+
*
|
17 |
+
* {@inheritDoc}
|
18 |
+
*
|
19 |
+
* @see WC_Payment_Token_Stripe_CC::details_to_props()
|
20 |
+
*/
|
21 |
+
public function details_to_props($details) {
|
22 |
+
parent::details_to_props ( $details );
|
23 |
+
}
|
24 |
+
}
|
includes/tokens/class-wc-payment-token-stripe-cc.php
ADDED
@@ -0,0 +1,126 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! class_exists ( 'WC_Payment_Token_Stripe' )) {
|
3 |
+
return;
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
* @sin 3.0.0
|
7 |
+
* @author PaymentPlugins
|
8 |
+
* @package Stripe/Tokens
|
9 |
+
*
|
10 |
+
*/
|
11 |
+
class WC_Payment_Token_Stripe_CC extends WC_Payment_Token_Stripe {
|
12 |
+
|
13 |
+
protected $type = 'Stripe_CC';
|
14 |
+
|
15 |
+
protected $stripe_data = array( 'brand' => '',
|
16 |
+
'exp_month' => '', 'exp_year' => '',
|
17 |
+
'last4' => '', 'fingerprint' => '',
|
18 |
+
'masked_number' => ''
|
19 |
+
);
|
20 |
+
|
21 |
+
public function details_to_props($details) {
|
22 |
+
if (isset ( $details[ 'card' ] )) {
|
23 |
+
$card = $details[ 'card' ];
|
24 |
+
}
|
25 |
+
if ($details instanceof \Stripe\Card) {
|
26 |
+
$card = $details;
|
27 |
+
}
|
28 |
+
$this->set_brand ( ucfirst ( $card[ 'brand' ] ) );
|
29 |
+
$this->set_last4 ( $card[ 'last4' ] );
|
30 |
+
$this->set_exp_month ( $card[ 'exp_month' ] );
|
31 |
+
$this->set_exp_year ( $card[ 'exp_year' ] );
|
32 |
+
$this->set_masked_number ( sprintf ( '********%s', $card[ 'last4' ] ) );
|
33 |
+
}
|
34 |
+
|
35 |
+
public function get_brand($context = 'view') {
|
36 |
+
return $this->get_prop ( 'brand', $context );
|
37 |
+
}
|
38 |
+
|
39 |
+
public function set_brand($value) {
|
40 |
+
$this->set_prop ( 'brand', $value );
|
41 |
+
}
|
42 |
+
|
43 |
+
public function get_last4($context = 'view') {
|
44 |
+
return $this->get_prop ( 'last4', $context );
|
45 |
+
}
|
46 |
+
|
47 |
+
public function get_masked_number($context = 'view') {
|
48 |
+
return $this->get_prop ( 'masked_number', $context );
|
49 |
+
}
|
50 |
+
|
51 |
+
public function set_last4($last4) {
|
52 |
+
$this->set_prop ( 'last4', $last4 );
|
53 |
+
}
|
54 |
+
|
55 |
+
public function set_masked_number($value) {
|
56 |
+
$this->set_prop ( 'masked_number', $value );
|
57 |
+
}
|
58 |
+
|
59 |
+
public function set_fingerprint($value) {
|
60 |
+
$this->set_prop ( 'fingerprint', $value );
|
61 |
+
}
|
62 |
+
|
63 |
+
public function get_fingerprint($context = 'view') {
|
64 |
+
return $this->get_prop ( 'fingerprint', $context );
|
65 |
+
}
|
66 |
+
|
67 |
+
public function get_exp_year($context = 'view') {
|
68 |
+
return $this->get_prop ( 'exp_year', $context );
|
69 |
+
}
|
70 |
+
|
71 |
+
public function set_exp_year($year) {
|
72 |
+
$this->set_prop ( 'exp_year', $year );
|
73 |
+
}
|
74 |
+
|
75 |
+
public function get_exp_month($context = 'view') {
|
76 |
+
return $this->get_prop ( 'exp_month', $context );
|
77 |
+
}
|
78 |
+
|
79 |
+
public function set_exp_month($month) {
|
80 |
+
$this->set_prop ( 'exp_month', str_pad ( $month, 2, '0', STR_PAD_LEFT ) );
|
81 |
+
}
|
82 |
+
|
83 |
+
public function get_html_classes() {
|
84 |
+
return sprintf ( '%s', str_replace ( ' ', '', ucfirst ( $this->get_brand () ) ) );
|
85 |
+
}
|
86 |
+
|
87 |
+
public function get_formats() {
|
88 |
+
return array(
|
89 |
+
'type_ending_in' => array(
|
90 |
+
'label' => __ ( 'Type Ending In', 'woo-stripe' ),
|
91 |
+
'example' => 'Visa ending in 1111',
|
92 |
+
'format' => __ ( '{brand} ending in {last4}', 'woo-stripe' )
|
93 |
+
),
|
94 |
+
'type_masked_number' => array(
|
95 |
+
'label' => __ ( 'Type Masked Number', 'woo-stripe' ),
|
96 |
+
'example' => 'Visa ********1111',
|
97 |
+
'format' => '{brand} {masked_number}'
|
98 |
+
),
|
99 |
+
'type_dash_masked_number' => array(
|
100 |
+
'label' => __ ( 'Type Dash Masked Number', 'woo-stripe' ),
|
101 |
+
'example' => 'Visa - ********1111',
|
102 |
+
'format' => '{brand} - {masked_number}'
|
103 |
+
),
|
104 |
+
'type_last4' => array(
|
105 |
+
'label' => __ ( 'Type Last 4', 'woo-stripe' ),
|
106 |
+
'example' => 'Visa 1111',
|
107 |
+
'format' => '{brand} {last4}'
|
108 |
+
),
|
109 |
+
'type_dash_last4' => array(
|
110 |
+
'label' => __ ( 'Type Dash & Last 4', 'woo-stripe' ),
|
111 |
+
'example' => 'Visa - 1111',
|
112 |
+
'format' => '{brand} - {last4}'
|
113 |
+
),
|
114 |
+
'last4' => array(
|
115 |
+
'label' => __ ( 'Last Four', 'woo-stripe' ),
|
116 |
+
'example' => '1111',
|
117 |
+
'format' => '{last4}'
|
118 |
+
),
|
119 |
+
'card_type' => array(
|
120 |
+
'label' => __ ( 'Card Type', 'woo-stripe' ),
|
121 |
+
'example' => 'Visa',
|
122 |
+
'format' => '{brand}'
|
123 |
+
)
|
124 |
+
);
|
125 |
+
}
|
126 |
+
}
|
includes/tokens/class-wc-payment-token-stripe-googlepay.php
ADDED
@@ -0,0 +1,24 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
if (! class_exists ( 'WC_Payment_Token_Stripe_CC' )) {
|
3 |
+
return;
|
4 |
+
}
|
5 |
+
/**
|
6 |
+
*
|
7 |
+
* @author PaymentPlugins
|
8 |
+
* @package Stripe/Tokens
|
9 |
+
*
|
10 |
+
*/
|
11 |
+
class WC_Payment_Token_Stripe_GooglePay extends WC_Payment_Token_Stripe_CC {
|
12 |
+
|
13 |
+
protected $type = 'Stripe_GooglePay';
|
14 |
+
|
15 |
+
/**
|
16 |
+
*
|
17 |
+
* {@inheritDoc}
|
18 |
+
*
|
19 |
+
* @see WC_Payment_Token_Stripe_CC::details_to_props()
|
20 |
+
*/
|
21 |
+
public function details_to_props($details) {
|
22 |
+
parent::details_to_props ( $details );
|
23 |
+
}
|
24 |
+
}
|
includes/tokens/class-wc-payment-token-stripe-local-payment.php
ADDED
@@ -0,0 +1,34 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @since 3.0.0
|
4 |
+
* @package Stripe/Tokens
|
5 |
+
* @author PaymentPlugins
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
class WC_Payment_Token_Stripe_Local extends WC_Payment_Token_Stripe {
|
9 |
+
|
10 |
+
protected $type = 'Stripe_Local';
|
11 |
+
|
12 |
+
protected $stripe_data = [ 'gateway_title' => ''
|
13 |
+
];
|
14 |
+
|
15 |
+
public function details_to_props($details) {}
|
16 |
+
|
17 |
+
public function set_gateway_title($value) {
|
18 |
+
$this->set_prop ( 'gateway_title', $value );
|
19 |
+
}
|
20 |
+
|
21 |
+
public function get_gateway_title($context = 'view') {
|
22 |
+
return $this->get_prop ( 'gateway_title', $context );
|
23 |
+
}
|
24 |
+
|
25 |
+
public function get_formats() {
|
26 |
+
return [
|
27 |
+
'gateway_title' => [
|
28 |
+
'label' => __ ( 'Gateway Title', 'woo-stripe' ),
|
29 |
+
'example' => 'P24',
|
30 |
+
'format' => '{gateway_title}'
|
31 |
+
]
|
32 |
+
];
|
33 |
+
}
|
34 |
+
}
|
includes/wc-stripe-functions.php
ADDED
@@ -0,0 +1,771 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @since 3.0.0
|
5 |
+
* @package Stripe/Functions
|
6 |
+
* Wrapper for wc_get_template that returns Stripe specfic templates.
|
7 |
+
* @param string $template_name
|
8 |
+
* @param array $args
|
9 |
+
*/
|
10 |
+
function wc_stripe_get_template($template_name, $args = array()) {
|
11 |
+
wc_get_template ( $template_name, $args, wc_stripe ()->template_path (), wc_stripe ()->default_template_path () );
|
12 |
+
}
|
13 |
+
|
14 |
+
/**
|
15 |
+
*
|
16 |
+
*
|
17 |
+
* Wrapper for wc_get_template_html that returns Stripe specififc templates in an html string.
|
18 |
+
*
|
19 |
+
* @package Stripe/Functions
|
20 |
+
* @since 3.0.0
|
21 |
+
* @param string $template_name
|
22 |
+
* @param array $args
|
23 |
+
* @return string
|
24 |
+
*/
|
25 |
+
function wc_stripe_get_template_html($template_name, $args = array()) {
|
26 |
+
return wc_get_template_html ( $template_name, $args, wc_stripe ()->template_path (), wc_stripe ()->default_template_path () );
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Return true if WCS is active.
|
31 |
+
*
|
32 |
+
* @package Stripe/Functions
|
33 |
+
* @return boolean
|
34 |
+
*/
|
35 |
+
function wcs_stripe_active() {
|
36 |
+
return function_exists ( 'wcs_is_subscription' );
|
37 |
+
}
|
38 |
+
|
39 |
+
/**
|
40 |
+
*
|
41 |
+
* @package Stripe/Functions
|
42 |
+
* @param WC_Payment_Gateway_Stripe $gateway
|
43 |
+
*/
|
44 |
+
function wc_stripe_token_field($gateway) {
|
45 |
+
wc_stripe_hidden_field ( $gateway->token_key, 'wc-stripe-token-field' );
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
*
|
50 |
+
* @package Stripe/Functions
|
51 |
+
* @param WC_Payment_Gateway_Stripe $gateway
|
52 |
+
*/
|
53 |
+
function wc_stripe_payment_intent_field($gateway) {
|
54 |
+
wc_stripe_hidden_field ( $gateway->payment_intent_key, 'wc-stripe-payment-intent-field' );
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
*
|
59 |
+
* @package Stripe/Functions
|
60 |
+
* @param string $id
|
61 |
+
* @param string $class
|
62 |
+
* @param string $value
|
63 |
+
*/
|
64 |
+
function wc_stripe_hidden_field($id, $class = '', $value = '') {
|
65 |
+
printf ( '<input type="hidden" class="%1$s" id="%2$s" name="%2$s" value="%3$s"/>', $class, $id, $value );
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Return the mode for the plugin.
|
70 |
+
*
|
71 |
+
* @package Stripe/Functions
|
72 |
+
* @return string
|
73 |
+
*/
|
74 |
+
function wc_stripe_mode() {
|
75 |
+
return wc_stripe ()->api_settings->get_option ( 'mode' );
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Return the secret key for the provided mode.
|
80 |
+
* If no mode given, the key for the active mode is returned.
|
81 |
+
*
|
82 |
+
* @package Stripe/Functions
|
83 |
+
* @since 3.0.0
|
84 |
+
* @param string $mode
|
85 |
+
*/
|
86 |
+
function wc_stripe_get_secret_key($mode = '') {
|
87 |
+
$mode = empty ( $mode ) ? wc_stripe_mode () : $mode;
|
88 |
+
return wc_stripe ()->api_settings->get_option ( "secret_key_{$mode}" );
|
89 |
+
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
* Return the publishable key for the provided mode.
|
93 |
+
* If no mode given, the key for the active mode is returned.
|
94 |
+
*
|
95 |
+
* @package Stripe/Functions
|
96 |
+
* @since 3.0.0
|
97 |
+
* @param string $mode
|
98 |
+
*/
|
99 |
+
function wc_stripe_get_publishable_key($mode = '') {
|
100 |
+
$mode = empty ( $mode ) ? wc_stripe_mode () : $mode;
|
101 |
+
return wc_stripe ()->api_settings->get_option ( "publishable_key_{$mode}" );
|
102 |
+
}
|
103 |
+
|
104 |
+
/**
|
105 |
+
* Return the stripe customer ID
|
106 |
+
*
|
107 |
+
* @package Stripe/Functions
|
108 |
+
* @since 3.0.0
|
109 |
+
* @param int $user_id
|
110 |
+
* @param string $mode
|
111 |
+
*/
|
112 |
+
function wc_stripe_get_customer_id($user_id = '', $mode = '') {
|
113 |
+
$mode = empty ( $mode ) ? wc_stripe_mode () : $mode;
|
114 |
+
if ($user_id === 0) {
|
115 |
+
return '';
|
116 |
+
}
|
117 |
+
if (empty ( $user_id )) {
|
118 |
+
$user_id = get_current_user_id ();
|
119 |
+
}
|
120 |
+
return get_user_meta ( $user_id, "wc_stripe_customer_{$mode}", true );
|
121 |
+
}
|
122 |
+
|
123 |
+
/**
|
124 |
+
*
|
125 |
+
* @package Stripe/Functions
|
126 |
+
* @param string $customer_id
|
127 |
+
* @param int $user_id
|
128 |
+
* @param string $mode
|
129 |
+
*/
|
130 |
+
function wc_stripe_save_customer($customer_id, $user_id, $mode = '') {
|
131 |
+
$mode = empty ( $mode ) ? wc_stripe_mode () : $mode;
|
132 |
+
$key = "wc_stripe_customer_{$mode}";
|
133 |
+
update_user_meta ( $user_id, $key, $customer_id );
|
134 |
+
}
|
135 |
+
|
136 |
+
/**
|
137 |
+
*
|
138 |
+
* @since 3.0.0
|
139 |
+
* @package Stripe/Functions
|
140 |
+
* @param int $token_id
|
141 |
+
* @param WC_Payment_Token $token
|
142 |
+
*/
|
143 |
+
function wc_stripe_woocommerce_payment_token_deleted($token_id, $token) {
|
144 |
+
if (! did_action ( 'woocommerce_payment_gateways' )) {
|
145 |
+
WC_Payment_Gateways::instance ();
|
146 |
+
}
|
147 |
+
do_action ( 'wc_stripe_payment_token_deleted_' . $token->get_gateway_id (), $token_id, $token );
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
* Log the provided message in the WC logs directory.
|
152 |
+
*
|
153 |
+
* @since 3.0.0
|
154 |
+
* @package Stripe/Functions
|
155 |
+
* @param int $level
|
156 |
+
* @param string $message
|
157 |
+
*/
|
158 |
+
function wc_stripe_log($level, $message) {
|
159 |
+
if (wc_stripe ()->api_settings->is_active ( 'debug_log' )) {
|
160 |
+
$log = wc_get_logger ();
|
161 |
+
$log->log ( $level, $message, array(
|
162 |
+
'source' => 'wc-stripe'
|
163 |
+
) );
|
164 |
+
}
|
165 |
+
}
|
166 |
+
|
167 |
+
/**
|
168 |
+
*
|
169 |
+
* @since 3.0.0
|
170 |
+
* @package Stripe/Functions
|
171 |
+
* @param string $message
|
172 |
+
*/
|
173 |
+
function wc_stripe_log_error($message) {
|
174 |
+
wc_stripe_log ( WC_Log_Levels::ERROR, $message );
|
175 |
+
}
|
176 |
+
|
177 |
+
/**
|
178 |
+
*
|
179 |
+
* @since 3.0.0
|
180 |
+
* @package Stripe/Functions
|
181 |
+
* @param string $message
|
182 |
+
*/
|
183 |
+
function wc_stripe_log_info($message) {
|
184 |
+
wc_stripe_log ( WC_Log_Levels::INFO, $message );
|
185 |
+
}
|
186 |
+
|
187 |
+
/**
|
188 |
+
* Return the mode that the order was created in.
|
189 |
+
* Values can be <strong>live</strong> or <strong>test</strong>
|
190 |
+
*
|
191 |
+
* @since 3.0.0
|
192 |
+
* @package Stripe/Functions
|
193 |
+
* @param WC_Order $order
|
194 |
+
*/
|
195 |
+
function wc_stripe_order_mode($order) {
|
196 |
+
return $order->get_meta ( '_wc_stripe_mode', true );
|
197 |
+
}
|
198 |
+
|
199 |
+
/**
|
200 |
+
*
|
201 |
+
* @since 3.0.0
|
202 |
+
* @package Stripe\Functions
|
203 |
+
* @param array $gateways
|
204 |
+
*/
|
205 |
+
function wc_stripe_payment_gateways($gateways) {
|
206 |
+
return array_merge ( $gateways, wc_stripe ()->payment_gateways () );
|
207 |
+
}
|
208 |
+
|
209 |
+
/**
|
210 |
+
* Cancel the Stripe charge
|
211 |
+
*
|
212 |
+
* @package Stripe/Functions
|
213 |
+
* @param int $order_id
|
214 |
+
* @param WC_Order $order
|
215 |
+
*/
|
216 |
+
function wc_stripe_order_cancelled($order_id, $order) {
|
217 |
+
/**
|
218 |
+
*
|
219 |
+
* @var WC_Payment_Gateway_Stripe $gateway
|
220 |
+
*/
|
221 |
+
$gateway = WC ()->payment_gateways ()->payment_gateways ()[ $order->get_payment_method () ];
|
222 |
+
$gateway->void_charge ( $order );
|
223 |
+
}
|
224 |
+
|
225 |
+
/**
|
226 |
+
*
|
227 |
+
* @package Stripe/Functions
|
228 |
+
* @param int $order_id
|
229 |
+
* @param WC_Order $order
|
230 |
+
*/
|
231 |
+
function wc_stripe_order_status_completed($order_id, $order) {
|
232 |
+
/**
|
233 |
+
*
|
234 |
+
* @var WC_Payment_Gateway_Stripe $gateway
|
235 |
+
*/
|
236 |
+
$gateway = WC ()->payment_gateways ()->payment_gateways ()[ $order->get_payment_method () ];
|
237 |
+
if (! $gateway->processing_payment) {
|
238 |
+
$gateway->capture_charge ( $order->get_total (), $order );
|
239 |
+
}
|
240 |
+
}
|
241 |
+
|
242 |
+
/**
|
243 |
+
*
|
244 |
+
* @since 3.0.0
|
245 |
+
* @package Stripe/Functions
|
246 |
+
* @param [] $address
|
247 |
+
* @throws Exception
|
248 |
+
*/
|
249 |
+
function wc_stripe_update_customer_location($address) {
|
250 |
+
// address validation for countries other than US is problematic when using responses from payment sources like Apple Pay.
|
251 |
+
if ($address[ 'postcode' ] && $address[ 'country' ] === 'US' && ! WC_Validation::is_postcode ( $address[ 'postcode' ], $address[ 'country' ] )) {
|
252 |
+
throw new Exception ( __ ( 'Please enter a valid postcode / ZIP.', 'woocommerce' ) );
|
253 |
+
} elseif ($address[ 'postcode' ]) {
|
254 |
+
$address[ 'postcode' ] = wc_format_postcode ( $address[ 'postcode' ], $address[ 'country' ] );
|
255 |
+
}
|
256 |
+
|
257 |
+
if ($address[ 'country' ]) {
|
258 |
+
WC ()->customer->set_billing_location ( $address[ 'country' ], $address[ 'state' ], $address[ 'postcode' ], $address[ 'city' ] );
|
259 |
+
WC ()->customer->set_shipping_location ( $address[ 'country' ], $address[ 'state' ], $address[ 'postcode' ], $address[ 'city' ] );
|
260 |
+
// set the customer's address if it's in the $address array
|
261 |
+
if (! empty ( $address[ 'address_1' ] )) {
|
262 |
+
WC ()->customer->set_shipping_address_1 ( wc_clean ( $address[ 'address_1' ] ) );
|
263 |
+
}
|
264 |
+
if (! empty ( $address[ 'address_2' ] )) {
|
265 |
+
WC ()->customer->set_shipping_address_2 ( wc_clean ( $address[ 'address_2' ] ) );
|
266 |
+
}
|
267 |
+
if (! empty ( $address[ 'first_name' ] )) {
|
268 |
+
WC ()->customer->set_shipping_first_name ( $address[ 'first_name' ] );
|
269 |
+
}
|
270 |
+
if (! empty ( $address[ 'last_name' ] )) {
|
271 |
+
WC ()->customer->set_shipping_last_name ( $address[ 'last_name' ] );
|
272 |
+
}
|
273 |
+
} else {
|
274 |
+
WC ()->customer->set_billing_address_to_base ();
|
275 |
+
WC ()->customer->set_shipping_address_to_base ();
|
276 |
+
}
|
277 |
+
|
278 |
+
WC ()->customer->set_calculated_shipping ( true );
|
279 |
+
WC ()->customer->save ();
|
280 |
+
|
281 |
+
do_action ( 'woocommerce_calculated_shipping' );
|
282 |
+
}
|
283 |
+
|
284 |
+
/**
|
285 |
+
*
|
286 |
+
* @since 3.0.0
|
287 |
+
* @package Stripe/Functions
|
288 |
+
* @param [] $methods
|
289 |
+
*/
|
290 |
+
function wc_stripe_update_shipping_methods($methods) {
|
291 |
+
$chosen_shipping_methods = WC ()->session->get ( 'chosen_shipping_methods', [] );
|
292 |
+
|
293 |
+
foreach ( $methods as $i => $method ) {
|
294 |
+
$chosen_shipping_methods[ $i ] = $method;
|
295 |
+
}
|
296 |
+
|
297 |
+
WC ()->session->set ( 'chosen_shipping_methods', $chosen_shipping_methods );
|
298 |
+
}
|
299 |
+
|
300 |
+
/**
|
301 |
+
* Return true if there are shipping packages that contain rates.
|
302 |
+
*
|
303 |
+
* @since 3.0.0
|
304 |
+
* @package Stripe/Functions
|
305 |
+
* @return boolean
|
306 |
+
*/
|
307 |
+
function wc_stripe_shipping_address_serviceable() {
|
308 |
+
$packages = WC ()->shipping ()->get_packages ();
|
309 |
+
if ($packages) {
|
310 |
+
foreach ( $packages as $package ) {
|
311 |
+
if (count ( $package[ 'rates' ] ) > 0) {
|
312 |
+
return true;
|
313 |
+
}
|
314 |
+
}
|
315 |
+
}
|
316 |
+
return false;
|
317 |
+
}
|
318 |
+
|
319 |
+
/**
|
320 |
+
*
|
321 |
+
* @package Stripe/Functions
|
322 |
+
* @param bool $encode
|
323 |
+
* @param WC_Order $order
|
324 |
+
* @since 3.0.0
|
325 |
+
*/
|
326 |
+
function wc_stripe_get_display_items($encode = false, $order = null) {
|
327 |
+
$items = [];
|
328 |
+
if (! $order) {
|
329 |
+
foreach ( WC ()->cart->get_cart () as $cart_item ) {
|
330 |
+
/**
|
331 |
+
*
|
332 |
+
* @var WC_Product $product
|
333 |
+
*/
|
334 |
+
$product = $cart_item[ 'data' ];
|
335 |
+
$qty = $cart_item[ 'quantity' ];
|
336 |
+
$items[] = [
|
337 |
+
'label' => $qty > 1 ? sprintf ( '%s X %s', $product->get_name (), $qty ) : $product->get_name (),
|
338 |
+
'pending' => false,
|
339 |
+
'amount' => wc_stripe_add_number_precision ( $product->get_price () * $qty )
|
340 |
+
];
|
341 |
+
}
|
342 |
+
if (WC ()->cart->needs_shipping ()) {
|
343 |
+
$items[] = [
|
344 |
+
'label' => __ ( 'Shipping', 'woo-stripe' ),
|
345 |
+
'pending' => false,
|
346 |
+
'amount' => wc_stripe_add_number_precision ( WC ()->cart->shipping_total )
|
347 |
+
];
|
348 |
+
}
|
349 |
+
if (wc_tax_enabled ()) {
|
350 |
+
$items[] = [
|
351 |
+
'label' => __ ( 'Tax', 'woo-stripe' ),
|
352 |
+
'pending' => false,
|
353 |
+
'amount' => wc_stripe_add_number_precision ( WC ()->cart->get_taxes_total () )
|
354 |
+
];
|
355 |
+
}
|
356 |
+
} else {
|
357 |
+
$items[] = [
|
358 |
+
'label' => __ ( 'Subscription', 'woo-stripe' ),
|
359 |
+
'pending' => false,
|
360 |
+
'amount' => wc_stripe_add_number_precision ( $order->get_total () )
|
361 |
+
];
|
362 |
+
}
|
363 |
+
$items = apply_filters ( 'wc_stripe_get_display_items', $items, $order );
|
364 |
+
return $encode ? htmlspecialchars ( wp_json_encode ( $items ) ) : $items;
|
365 |
+
}
|
366 |
+
|
367 |
+
/**
|
368 |
+
*
|
369 |
+
* @since 3.0.0
|
370 |
+
* @package Stripe/Functions
|
371 |
+
* @param bool $encode
|
372 |
+
* @param WC_Order $order
|
373 |
+
* @return mixed
|
374 |
+
*/
|
375 |
+
function wc_stripe_get_shipping_options($encode = false, $order = null) {
|
376 |
+
$methods = [];
|
377 |
+
if (! $order) {
|
378 |
+
$ids = [];
|
379 |
+
$chosen_shipping_methods = WC ()->session->get ( 'chosen_shipping_methods', [] );
|
380 |
+
$packages = WC ()->shipping ()->get_packages ();
|
381 |
+
foreach ( $packages as $i => $package ) {
|
382 |
+
foreach ( $package[ 'rates' ] as $rate ) {
|
383 |
+
/**
|
384 |
+
*
|
385 |
+
* @var WC_Shipping_Rate $rate
|
386 |
+
*/
|
387 |
+
$methods[] = [
|
388 |
+
'id' => sprintf ( '%s:%s', $i, $rate->id ),
|
389 |
+
'label' => sprintf ( '%s', esc_attr ( $rate->get_label () ) ),
|
390 |
+
'detail' => '',
|
391 |
+
'amount' => wc_stripe_add_number_precision ( $rate->cost )
|
392 |
+
];
|
393 |
+
$ids[] = $rate->id;
|
394 |
+
}
|
395 |
+
// Stripe always shows the first shipping option as selected. Make sure the chosen method
|
396 |
+
// is first in the array.
|
397 |
+
if (isset ( $chosen_shipping_methods[ $i ] )) {
|
398 |
+
$index = array_search ( $chosen_shipping_methods[ $i ], $ids );
|
399 |
+
if ($index != 0) {
|
400 |
+
$temp = $methods[ 0 ];
|
401 |
+
$methods[ 0 ] = $methods[ $index ];
|
402 |
+
$methods[ $index ] = $temp;
|
403 |
+
}
|
404 |
+
}
|
405 |
+
}
|
406 |
+
if (empty ( $methods )) {
|
407 |
+
// GPay does not like empty shipping methods. Make a temporary one;
|
408 |
+
$methods[] = [ 'id' => 'default',
|
409 |
+
'label' => __ ( 'Waiting...', 'woo-stripe' ),
|
410 |
+
'detail' => __ ( 'loading shipping methods...', 'woo-stripe' ),
|
411 |
+
'amount' => 0
|
412 |
+
];
|
413 |
+
}
|
414 |
+
}
|
415 |
+
$methods = apply_filters ( 'wc_stripe_get_shipping_options', $methods, $order );
|
416 |
+
return $encode ? htmlspecialchars ( wp_json_encode ( $methods ) ) : $methods;
|
417 |
+
}
|
418 |
+
|
419 |
+
/**
|
420 |
+
*
|
421 |
+
* @since 3.0.0
|
422 |
+
* @package Stripe/Functions
|
423 |
+
*/
|
424 |
+
function wc_stripe_set_checkout_error() {
|
425 |
+
add_action ( 'woocommerce_after_template_part', 'wc_stripe_output_checkout_error' );
|
426 |
+
}
|
427 |
+
|
428 |
+
/**
|
429 |
+
*
|
430 |
+
* @since 3.0.0
|
431 |
+
* @package Stripe/Functions
|
432 |
+
* @param string $template_name
|
433 |
+
*/
|
434 |
+
function wc_stripe_output_checkout_error($template_name) {
|
435 |
+
if ($template_name === 'notices/error.php' && is_ajax ()) {
|
436 |
+
echo '<input type="hidden" id="wc_stripe_checkout_error" value="true"/>';
|
437 |
+
remove_action ( 'woocommerce_after_template_part', 'wc_braintree_output_checkout_error' );
|
438 |
+
add_filter ( 'wp_kses_allowed_html', 'wc_stripe_add_allowed_html', 10, 2 );
|
439 |
+
}
|
440 |
+
}
|
441 |
+
|
442 |
+
/**
|
443 |
+
*
|
444 |
+
* @since 3.0.0
|
445 |
+
* @package Stripe/Functions
|
446 |
+
*/
|
447 |
+
function wc_stripe_add_allowed_html($tags, $context) {
|
448 |
+
if ($context === 'post') {
|
449 |
+
$tags[ 'input' ] = array( 'id' => true,
|
450 |
+
'type' => true, 'value' => true
|
451 |
+
);
|
452 |
+
}
|
453 |
+
return $tags;
|
454 |
+
}
|
455 |
+
|
456 |
+
/**
|
457 |
+
* Save WCS meta data when it's changed in the admin section.
|
458 |
+
* By default WCS saves the
|
459 |
+
* payment method title as the gateway title. This method saves the payment method title in
|
460 |
+
* a human readable format suitable for the frontend.
|
461 |
+
*
|
462 |
+
* @package Stripe/Functions
|
463 |
+
* @param int $post_id
|
464 |
+
* @param WP_Post $post
|
465 |
+
*/
|
466 |
+
function wc_stripe_process_shop_subscription_meta($post_id, $post) {
|
467 |
+
$subscription = wcs_get_subscription ( $post_id );
|
468 |
+
$gateway_id = $subscription->get_payment_method ();
|
469 |
+
$gateways = WC ()->payment_gateways ()->payment_gateways ();
|
470 |
+
if (isset ( $gateways[ $gateway_id ] )) {
|
471 |
+
$gateway = $gateways[ $gateway_id ];
|
472 |
+
if ($gateway instanceof WC_Payment_Gateway_Stripe) {
|
473 |
+
$token = $gateway->get_token ( $subscription->get_meta ( '_payment_method_token' ), $subscription->get_customer_id () );
|
474 |
+
if ($token) {
|
475 |
+
$subscription->set_payment_method_title ( $token->get_payment_method_title () );
|
476 |
+
$subscription->save ();
|
477 |
+
}
|
478 |
+
}
|
479 |
+
}
|
480 |
+
}
|
481 |
+
|
482 |
+
/**
|
483 |
+
* Filter the WC payment gateways based on criteria specific to Stripe functionality.
|
484 |
+
*
|
485 |
+
* <strong>Example:</strong> on add payment method page, only show the CC gateway for Stripe.
|
486 |
+
*
|
487 |
+
* @since 3.0.0
|
488 |
+
* @package Stripe/Functions
|
489 |
+
* @param WC_Payment_Gateway[] $gateways
|
490 |
+
*/
|
491 |
+
function wc_stripe_available_payment_gateways($gateways) {
|
492 |
+
global $wp;
|
493 |
+
if (is_add_payment_method_page () && ! isset ( $wp->query_vars[ 'payment-methods' ] )) {
|
494 |
+
foreach ( $gateways as $gateway ) {
|
495 |
+
if ($gateway instanceof WC_Payment_Gateway_Stripe) {
|
496 |
+
if ('stripe_cc' !== $gateway->id) {
|
497 |
+
unset ( $gateways[ $gateway->id ] );
|
498 |
+
}
|
499 |
+
}
|
500 |
+
}
|
501 |
+
}
|
502 |
+
return $gateways;
|
503 |
+
}
|
504 |
+
|
505 |
+
/**
|
506 |
+
*
|
507 |
+
* @since 3.0.0
|
508 |
+
* @package Stripe/Functions
|
509 |
+
* @return array
|
510 |
+
*/
|
511 |
+
function wc_stripe_get_local_payment_params() {
|
512 |
+
$data = [];
|
513 |
+
$gateways = WC ()->payment_gateways ()->payment_gateways ();
|
514 |
+
foreach ( $gateways as $gateway ) {
|
515 |
+
if ($gateway instanceof WC_Payment_Gateway_Stripe_Local_Payment) {
|
516 |
+
$data[ 'gateways' ][ $gateway->id ] = $gateway->get_localized_params ();
|
517 |
+
}
|
518 |
+
}
|
519 |
+
$data[ 'api_key' ] = wc_stripe_get_publishable_key ();
|
520 |
+
return $data;
|
521 |
+
}
|
522 |
+
|
523 |
+
/**
|
524 |
+
*
|
525 |
+
* @package Stripe/Functions
|
526 |
+
* @since 3.0.0
|
527 |
+
* @param array $gateways
|
528 |
+
* @return WC_Payment_Gateway[]
|
529 |
+
*/
|
530 |
+
function wc_stripe_get_available_local_gateways($gateways) {
|
531 |
+
foreach ( $gateways as $gateway ) {
|
532 |
+
if ($gateway instanceof WC_Payment_Gateway_Stripe_Local_Payment) {
|
533 |
+
if (! $gateway->is_local_payment_available ()) {
|
534 |
+
unset ( $gateways[ $gateway->id ] );
|
535 |
+
}
|
536 |
+
}
|
537 |
+
}
|
538 |
+
return $gateways;
|
539 |
+
}
|
540 |
+
|
541 |
+
/**
|
542 |
+
*
|
543 |
+
* @since 3.0.0
|
544 |
+
* @package Stripe/Functions
|
545 |
+
* @param string|int $key
|
546 |
+
*/
|
547 |
+
function wc_stripe_set_idempotency_key($key) {
|
548 |
+
global $wc_stripe_idempotency_key;
|
549 |
+
$wc_stripe_idempotency_key = $key;
|
550 |
+
}
|
551 |
+
|
552 |
+
/**
|
553 |
+
*
|
554 |
+
* @since 3.0.0
|
555 |
+
* @package Stripe/Functions
|
556 |
+
* @return mixed
|
557 |
+
*/
|
558 |
+
function wc_stripe_get_idempotency_key() {
|
559 |
+
global $wc_stripe_idempotency_key;
|
560 |
+
return $wc_stripe_idempotency_key;
|
561 |
+
}
|
562 |
+
|
563 |
+
/**
|
564 |
+
*
|
565 |
+
* @since 3.0.0
|
566 |
+
* @package Stripe/Functions
|
567 |
+
* @param array $options
|
568 |
+
* @return array
|
569 |
+
*/
|
570 |
+
function wc_stripe_api_options($options) {
|
571 |
+
$key = wc_stripe_get_idempotency_key ();
|
572 |
+
if ($key) {
|
573 |
+
$options[ 'idempotency_key' ] = $key;
|
574 |
+
}
|
575 |
+
return $options;
|
576 |
+
}
|
577 |
+
|
578 |
+
/**
|
579 |
+
*
|
580 |
+
* @since 3.0.0
|
581 |
+
* @package Stripe/Functions
|
582 |
+
* @param string $order_status
|
583 |
+
* @param int $order_id
|
584 |
+
* @param WC_Order $order
|
585 |
+
*/
|
586 |
+
function wc_stripe_payment_complete_order_status($order_status, $order_id, $order) {
|
587 |
+
if (is_checkout ()) {
|
588 |
+
/**
|
589 |
+
*
|
590 |
+
* @var WC_Payment_Gateway_Stripe $gateway
|
591 |
+
*/
|
592 |
+
$gateway = WC ()->payment_gateways ()->payment_gateways ()[ $order->get_payment_method () ];
|
593 |
+
if ('default' !== $gateway->get_option ( 'order_status' )) {
|
594 |
+
$order_status = $gateway->get_option ( 'order_status' );
|
595 |
+
}
|
596 |
+
}
|
597 |
+
return $order_status;
|
598 |
+
}
|
599 |
+
|
600 |
+
/**
|
601 |
+
* Wrapper for wc_stripe_add_number_precision if WC 3.2 or greater.If function doesn't exist, then
|
602 |
+
* plugin does rounding.
|
603 |
+
*
|
604 |
+
* @since 3.0.0
|
605 |
+
* @package Stripe/Functions
|
606 |
+
* @param float $value
|
607 |
+
* @param string $round
|
608 |
+
* @return number
|
609 |
+
*/
|
610 |
+
function wc_stripe_add_number_precision($value, $round = true) {
|
611 |
+
if (function_exists ( 'wc_add_number_precision' )) {
|
612 |
+
return wc_add_number_precision ( $value, $round );
|
613 |
+
} else {
|
614 |
+
$cent_precision = pow ( 10, wc_get_price_decimals () );
|
615 |
+
$value = $value * $cent_precision;
|
616 |
+
return $round ? round ( $value, wc_get_rounding_precision () - wc_get_price_decimals () ) : $value;
|
617 |
+
}
|
618 |
+
}
|
619 |
+
|
620 |
+
/**
|
621 |
+
* Return an array of credit card forms.
|
622 |
+
*
|
623 |
+
* @since 3.0.0
|
624 |
+
* @package Stripe/Functions
|
625 |
+
* @return mixed
|
626 |
+
*/
|
627 |
+
function wc_stripe_get_custom_forms() {
|
628 |
+
return apply_filters ( 'wc_stripe_get_custom_forms', [
|
629 |
+
'simple' => [
|
630 |
+
'template' => 'cc-forms/simple.php',
|
631 |
+
'label' => __ ( 'Simple form', 'woo-stripe' ),
|
632 |
+
'cardBrand' => wc_stripe ()->assets_url ( 'img/card_brand2.svg' ),
|
633 |
+
'elementStyles' => [
|
634 |
+
'base' => [
|
635 |
+
'color' => '#32325D',
|
636 |
+
'fontWeight' => 500,
|
637 |
+
'fontFamily' => 'Source Code Pro, Consolas, Menlo, monospace',
|
638 |
+
'fontSize' => '16px',
|
639 |
+
'fontSmoothing' => 'antialiased',
|
640 |
+
'::placeholder' => [
|
641 |
+
'color' => '#CFD7DF'
|
642 |
+
],
|
643 |
+
':-webkit-autofill' => [
|
644 |
+
'color' => '#e39f48'
|
645 |
+
]
|
646 |
+
],
|
647 |
+
'invalid' => [
|
648 |
+
'color' => '#E25950',
|
649 |
+
'::placeholder' => [
|
650 |
+
'color' => '#FFCCA5'
|
651 |
+
]
|
652 |
+
]
|
653 |
+
],
|
654 |
+
'elementOptions' => [
|
655 |
+
'fonts' => [
|
656 |
+
[
|
657 |
+
'cssSrc' => 'https://fonts.googleapis.com/css?family=Source+Code+Pro'
|
658 |
+
]
|
659 |
+
]
|
660 |
+
]
|
661 |
+
],
|
662 |
+
'inline' => [
|
663 |
+
'template' => 'cc-forms/inline.php',
|
664 |
+
'label' => __ ( 'Inline Form', 'woo-stripe' ),
|
665 |
+
'cardBrand' => wc_stripe ()->assets_url ( 'img/card_brand.svg' ),
|
666 |
+
'elementStyles' => [
|
667 |
+
'base' => [
|
668 |
+
'color' => '#fff',
|
669 |
+
'fontWeight' => 600,
|
670 |
+
'fontFamily' => 'Roboto, Open Sans, Segoe UI, sans-serif',
|
671 |
+
'fontSize' => '16px',
|
672 |
+
'fontSmoothing' => 'antialiased',
|
673 |
+
':focus' => [
|
674 |
+
'color' => '#fff'
|
675 |
+
],
|
676 |
+
'::placeholder' => [
|
677 |
+
'color' => '#87BBFD'
|
678 |
+
],
|
679 |
+
':focus::placeholder' => [
|
680 |
+
'color' => '#CFD7DF'
|
681 |
+
],
|
682 |
+
':-webkit-autofill' => [
|
683 |
+
'color' => '#fce883'
|
684 |
+
]
|
685 |
+
],
|
686 |
+
'invalid' => [
|
687 |
+
'color' => '#ffc7ee'
|
688 |
+
]
|
689 |
+
],
|
690 |
+
'elementOptions' => [
|
691 |
+
'fonts' => [
|
692 |
+
[
|
693 |
+
'cssSrc' => 'https://fonts.googleapis.com/css?family=Roboto'
|
694 |
+
]
|
695 |
+
]
|
696 |
+
]
|
697 |
+
],
|
698 |
+
'rounded' => [
|
699 |
+
'template' => 'cc-forms/round.php',
|
700 |
+
'label' => __ ( 'Rounded Form', 'woo-stripe' ),
|
701 |
+
'cardBrand' => wc_stripe ()->assets_url ( 'img/card_brand.svg' ),
|
702 |
+
'elementStyles' => [
|
703 |
+
'base' => [
|
704 |
+
'color' => '#fff',
|
705 |
+
'fontWeight' => 600,
|
706 |
+
'fontFamily' => 'Quicksand, Open Sans, Segoe UI, sans-serif',
|
707 |
+
'fontSize' => '16px',
|
708 |
+
'fontSmoothing' => 'antialiased',
|
709 |
+
':focus' => [
|
710 |
+
'color' => '#424770'
|
711 |
+
],
|
712 |
+
'::placeholder' => [
|
713 |
+
'color' => '#9BACC8'
|
714 |
+
],
|
715 |
+
':focus::placeholder' => [
|
716 |
+
'color' => '#CFD7DF'
|
717 |
+
],
|
718 |
+
':-webkit-autofill' => [
|
719 |
+
'color' => '#e39f48'
|
720 |
+
]
|
721 |
+
],
|
722 |
+
'invalid' => [
|
723 |
+
'color' => '#fff',
|
724 |
+
':focus' => [
|
725 |
+
'color' => '#FA755A'
|
726 |
+
],
|
727 |
+
'::placeholder' => [
|
728 |
+
'color' => '#FFCCA5'
|
729 |
+
]
|
730 |
+
]
|
731 |
+
],
|
732 |
+
'elementOptions' => [
|
733 |
+
'fonts' => [
|
734 |
+
[
|
735 |
+
'cssSrc' => 'https://fonts.googleapis.com/css?family=Quicksand'
|
736 |
+
]
|
737 |
+
]
|
738 |
+
]
|
739 |
+
]
|
740 |
+
] );
|
741 |
+
}
|
742 |
+
|
743 |
+
/**
|
744 |
+
*
|
745 |
+
* @package Stripe/Functions
|
746 |
+
* @since 3.0.0
|
747 |
+
* @param WC_Order $order
|
748 |
+
*/
|
749 |
+
function wc_stripe_order_has_shipping_address($order) {
|
750 |
+
if (method_exists ( $order, 'has_shipping_address' )) {
|
751 |
+
return $order->has_shipping_address ();
|
752 |
+
} else {
|
753 |
+
return $order->get_shipping_address_1 () || $order->get_shipping_address_2 ();
|
754 |
+
}
|
755 |
+
}
|
756 |
+
|
757 |
+
/**
|
758 |
+
*
|
759 |
+
* @since 3.0.0
|
760 |
+
* @package Stripe/Functions
|
761 |
+
*/
|
762 |
+
function wc_stripe_display_prices_including_tax() {
|
763 |
+
$cart = WC ()->cart;
|
764 |
+
if (method_exists ( $cart, 'display_prices_including_tax' )) {
|
765 |
+
return $cart->display_prices_including_tax ();
|
766 |
+
} else {
|
767 |
+
$customer = WC ()->customer;
|
768 |
+
$customer_exempt = $customer && $customer->get_is_vat_exempt ();
|
769 |
+
'incl' === $cart->tax_display_cart && ! $customer_exempt;
|
770 |
+
}
|
771 |
+
}
|
includes/wc-stripe-hooks.php
ADDED
@@ -0,0 +1,21 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Actions
|
4 |
+
*/
|
5 |
+
add_action ( 'woocommerce_payment_token_deleted', 'wc_stripe_woocommerce_payment_token_deleted', 10, 2 );
|
6 |
+
add_action ( 'woocommerce_order_status_cancelled', 'wc_stripe_order_cancelled', 10, 2 );
|
7 |
+
add_action ( 'woocommerce_order_status_completed', 'wc_stripe_order_status_completed', 10, 2 );
|
8 |
+
/**
|
9 |
+
* * Webhook Actions ***
|
10 |
+
*/
|
11 |
+
add_action ( 'wc_stripe_webhook_source_chargeable', 'wc_stripe_process_source_chargeable', 10, 2 );
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Filters
|
15 |
+
*/
|
16 |
+
add_filter ( 'wc_stripe_api_options', 'wc_stripe_api_options' );
|
17 |
+
add_filter ( 'woocommerce_payment_gateways', 'wc_stripe_payment_gateways' );
|
18 |
+
add_filter ( 'woocommerce_available_payment_gateways', 'wc_stripe_available_payment_gateways' );
|
19 |
+
add_action ( 'woocommerce_process_shop_subscription_meta', 'wc_stripe_process_shop_subscription_meta', 10, 2 );
|
20 |
+
add_filter ( 'woocommerce_available_payment_gateways', 'wc_stripe_get_available_local_gateways' );
|
21 |
+
add_filter ( 'woocommerce_payment_complete_order_status', 'wc_stripe_payment_complete_order_status', 10, 3 );
|
includes/wc-stripe-webhook-functions.php
ADDED
@@ -0,0 +1,45 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Processes the charge via webhooks for local payment methods like iDEAL, EPS, etc.
|
5 |
+
* @version 3.0.0
|
6 |
+
* @package Stripe/Functions
|
7 |
+
*
|
8 |
+
* @param \Stripe\Source $source
|
9 |
+
* @param WP_REST_Request $request
|
10 |
+
*/
|
11 |
+
function wc_stripe_process_source_chargeable($source, $request) {
|
12 |
+
// first retrieve the order_id using the source ID.
|
13 |
+
global $wpdb;
|
14 |
+
|
15 |
+
$order_id = $wpdb->get_var ( $wpdb->prepare ( "SELECT ID FROM {$wpdb->posts} AS posts LEFT JOIN {$wpdb->postmeta} AS meta ON posts.ID = meta.post_id WHERE meta.meta_key = %s AND meta.meta_value = %s LIMIT 1", '_stripe_source_id', $source->id ) );
|
16 |
+
if (! $order_id) {
|
17 |
+
wc_stripe_log_error ( sprintf ( 'Could not create a charge for source %s. No order ID was found in your Wordpress database.' ), $source->id );
|
18 |
+
return;
|
19 |
+
}
|
20 |
+
// get the gateway
|
21 |
+
$order = wc_get_order ( $order_id );
|
22 |
+
|
23 |
+
// if the order has a transaction ID, then a charge has already been created.
|
24 |
+
if (( $transaction_id = $order->get_transaction_id () )) {
|
25 |
+
wc_stripe_log_info ( sprintf ( 'source.chargeable event received. Charge has already been created for order %s. Event exited.', $order_id ) );
|
26 |
+
return;
|
27 |
+
}
|
28 |
+
$payment_method = $order->get_payment_method ();
|
29 |
+
|
30 |
+
/**
|
31 |
+
*
|
32 |
+
* @var WC_Payment_Gateway_Stripe $gateway
|
33 |
+
*/
|
34 |
+
$gateway = WC ()->payment_gateways ()->payment_gateways ()[ $payment_method ];
|
35 |
+
|
36 |
+
$gateway->set_payment_method_token ( $source->id );
|
37 |
+
|
38 |
+
// only process webhook charges for local payment methods.
|
39 |
+
if ($gateway instanceof WC_Payment_Gateway_Stripe_Local_Payment) {
|
40 |
+
$gateway->processing_payment = true;
|
41 |
+
|
42 |
+
// if the payment fails, then should rety be performed?
|
43 |
+
$gateway->process_payment ( $order_id );
|
44 |
+
}
|
45 |
+
}
|
readme.txt
ADDED
@@ -0,0 +1,55 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
=== Stripe For WooCommerce ===
|
2 |
+
Contributors: mr.clayton
|
3 |
+
Tags: stripe, credit cards, apple pay, google pay, ideal, sepa, sofort
|
4 |
+
Requires at least: 3.0.1
|
5 |
+
Tested up to: 5.2.2
|
6 |
+
Requires PHP: 5.4
|
7 |
+
Stable tag: 3.0.0
|
8 |
+
Copyright: Payment Plugins
|
9 |
+
License: GPLv2 or later
|
10 |
+
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
+
|
12 |
+
== Description ==
|
13 |
+
Accept Credit Cards, Google Pay, ApplePay, P24, iDEAL and more all in one plugin for free!
|
14 |
+
|
15 |
+
= Boost conversion by offering product and cart page checkout =
|
16 |
+
Stripe for WooCommerce is made to supercharge your conversion rate by decreasing payment friction for your customer.
|
17 |
+
Offer Google Pay, Apple Pay, and Stripe's Browser payment methods on product pages, cart pages, and at the top of your checkout page.
|
18 |
+
|
19 |
+
= Visit our demo site to see all the payment methods in action =
|
20 |
+
[Demo Site](https://demos.paymentplugins.com/wc-stripe/product/pullover/)
|
21 |
+
|
22 |
+
To see Apple Pay, visit the site using an iOS device. Google Pay will display for supported browsers like Chrome.
|
23 |
+
|
24 |
+
= Features =
|
25 |
+
- Credit Cards
|
26 |
+
- Google Pay
|
27 |
+
- Apple Pay
|
28 |
+
- 3DS 2.0
|
29 |
+
- WooCommerce Subscriptions
|
30 |
+
|
31 |
+
== Frequently Asked Questions ==
|
32 |
+
= How do I test this plugin? =
|
33 |
+
You can enable the plugin's test mode, which allows you to simulate transactions.
|
34 |
+
|
35 |
+
= Does your plugin support WooCommerce Subscriptions? =
|
36 |
+
Yes, the plugin supports all functionality related to WooCommerce Subscriptions.
|
37 |
+
|
38 |
+
= Where is your documentation? =
|
39 |
+
https://docs.paymentplugins.com/wc-stripe/config/#/
|
40 |
+
|
41 |
+
= Why isn't the Payment Request button showing on my local machine? =
|
42 |
+
If you're site is not loading over https, then Stripe won't render the Payment Request button. Make sure you are using https.
|
43 |
+
|
44 |
+
== Screenshots ==
|
45 |
+
1. Let customers pay directly from product pages
|
46 |
+
2. Apple pay on the cart page
|
47 |
+
3. Custom credit card forms
|
48 |
+
4. Local payment methods liek iDEAL and P24
|
49 |
+
5. Configuration pages
|
50 |
+
|
51 |
+
== Changelog ==
|
52 |
+
3.0.0 - First commit
|
53 |
+
|
54 |
+
== Upgrade Notice ==
|
55 |
+
= 3.0.0 =
|
stripe-payments.php
ADDED
@@ -0,0 +1,32 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Plugin Name: Stripe For WooCommerce
|
5 |
+
* Plugin URI: https://docs.paymentplugins.com/wc-stripe/config/
|
6 |
+
* Description: Accept credit cards, Google Pay, & Apple Pay using Stripe.
|
7 |
+
* Version: 3.0.0
|
8 |
+
* Author: Payment Plugins, support@paymentplugins.com
|
9 |
+
* Text Domain: woo-stripe
|
10 |
+
* Domain Path: /i18n/languages/
|
11 |
+
* Tested up to: 5.2
|
12 |
+
* WC requires at least: 3.0.0
|
13 |
+
* WC tested up to: 3.7.0
|
14 |
+
*/
|
15 |
+
function wc_stripe_php_version_notice() {
|
16 |
+
$message = sprintf ( __ ( 'Your PHP version is %s but Stripe requires version 5.4+.', 'woo-stripe' ), PHP_VERSION );
|
17 |
+
echo '<div class="notice notice-error"><p style="font-size: 16px">' . $message . '</p></div>';
|
18 |
+
}
|
19 |
+
|
20 |
+
if (version_compare ( PHP_VERSION, '5.4', '<' )) {
|
21 |
+
add_action ( 'admin_init', 'wc_stripe_php_version_notice' );
|
22 |
+
return;
|
23 |
+
}
|
24 |
+
|
25 |
+
define ( 'WC_STRIPE_PLUGIN_PATH', plugin_dir_path ( __FILE__ ) );
|
26 |
+
define ( 'WC_STRIPE_ASSETS', plugin_dir_url ( __FILE__ ) . 'assets/' );
|
27 |
+
define ( 'WC_STRIPE_PLUGIN_NAME', plugin_basename ( __FILE__ ) );
|
28 |
+
define ( 'WC_STRIPE_CLASS_VERSION', '6.40.0' );
|
29 |
+
// include main plugin file.
|
30 |
+
require_once ( WC_STRIPE_PLUGIN_PATH . 'includes/class-stripe.php' );
|
31 |
+
// load Stripe classes
|
32 |
+
require_once ( WC_STRIPE_PLUGIN_PATH . 'stripe-php-' . WC_STRIPE_CLASS_VERSION . '/init.php' );
|
stripe-php-6.40.0/.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
|
stripe-php-6.40.0/CHANGELOG.md
ADDED
@@ -0,0 +1,715 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
# Changelog
|
2 |
+
|
3 |
+
## 6.40.0 - 2019-06-27
|
4 |
+
* [#675](https://github.com/stripe/stripe-php/pull/675) Add support for `SetupIntent` resource and APIs
|
5 |
+
|
6 |
+
## 6.39.2 - 2019-06-26
|
7 |
+
* [#676](https://github.com/stripe/stripe-php/pull/676) Fix exception message in `CustomerBalanceTransaction::update()`
|
8 |
+
|
9 |
+
## 6.39.1 - 2019-06-25
|
10 |
+
* [#674](https://github.com/stripe/stripe-php/pull/674) Add new constants for `collection_method` on `Invoice`
|
11 |
+
|
12 |
+
## 6.39.0 - 2019-06-24
|
13 |
+
* [#673](https://github.com/stripe/stripe-php/pull/673) Enable request latency telemetry by default
|
14 |
+
|
15 |
+
## 6.38.0 - 2019-06-17
|
16 |
+
* [#649](https://github.com/stripe/stripe-php/pull/649) Add support for `CustomerBalanceTransaction` resource and APIs
|
17 |
+
|
18 |
+
## 6.37.2 - 2019-06-17
|
19 |
+
* [#671](https://github.com/stripe/stripe-php/pull/671) Add new PHPDoc
|
20 |
+
* [#672](https://github.com/stripe/stripe-php/pull/672) Add constants for `submit_type` on Checkout `Session`
|
21 |
+
|
22 |
+
## 6.37.1 - 2019-06-14
|
23 |
+
* [#670](https://github.com/stripe/stripe-php/pull/670) Add new PHPDoc
|
24 |
+
|
25 |
+
## 6.37.0 - 2019-05-23
|
26 |
+
* [#663](https://github.com/stripe/stripe-php/pull/663) Add support for `radar.early_fraud_warning` resource
|
27 |
+
|
28 |
+
## 6.36.0 - 2019-05-22
|
29 |
+
* [#661](https://github.com/stripe/stripe-php/pull/661) Add constants for new TaxId types
|
30 |
+
* [#662](https://github.com/stripe/stripe-php/pull/662) Add constants for BalanceTransaction types
|
31 |
+
|
32 |
+
## 6.35.2 - 2019-05-20
|
33 |
+
* [#655](https://github.com/stripe/stripe-php/pull/655) Add constants for payment intent statuses
|
34 |
+
* [#659](https://github.com/stripe/stripe-php/pull/659) Fix PHPDoc for various nested Account actions
|
35 |
+
* [#660](https://github.com/stripe/stripe-php/pull/660) Fix various PHPDoc
|
36 |
+
|
37 |
+
## 6.35.1 - 2019-05-20
|
38 |
+
* [#658](https://github.com/stripe/stripe-php/pull/658) Use absolute value when checking timestamp tolerance
|
39 |
+
|
40 |
+
## 6.35.0 - 2019-05-14
|
41 |
+
* [#651](https://github.com/stripe/stripe-php/pull/651) Add support for the Capability resource and APIs
|
42 |
+
|
43 |
+
## 6.34.6 - 2019-05-13
|
44 |
+
* [#654](https://github.com/stripe/stripe-php/pull/654) Fix typo in definition of `Event::PAYMENT_METHOD_ATTACHED` constant
|
45 |
+
|
46 |
+
## 6.34.5 - 2019-05-06
|
47 |
+
* [#647](https://github.com/stripe/stripe-php/pull/647) Set the return type to static for more operations
|
48 |
+
|
49 |
+
## 6.34.4 - 2019-05-06
|
50 |
+
* [#650](https://github.com/stripe/stripe-php/pull/650) Add missing constants for Event types
|
51 |
+
|
52 |
+
## 6.34.3 - 2019-05-01
|
53 |
+
* [#644](https://github.com/stripe/stripe-php/pull/644) Update return type to `static` to improve static analysis
|
54 |
+
* [#645](https://github.com/stripe/stripe-php/pull/645) Fix constant for `payment_intent.payment_failed`
|
55 |
+
|
56 |
+
## 6.34.2 - 2019-04-26
|
57 |
+
* [#642](https://github.com/stripe/stripe-php/pull/642) Fix an issue where existing idempotency keys would be overwritten when using automatic retries
|
58 |
+
|
59 |
+
## 6.34.1 - 2019-04-25
|
60 |
+
* [#640](https://github.com/stripe/stripe-php/pull/640) Add missing phpdocs
|
61 |
+
|
62 |
+
## 6.34.0 - 2019-04-24
|
63 |
+
* [#626](https://github.com/stripe/stripe-php/pull/626) Add support for the `TaxRate` resource and APIs
|
64 |
+
* [#639](https://github.com/stripe/stripe-php/pull/639) Fix multiple phpdoc issues
|
65 |
+
|
66 |
+
## 6.33.0 - 2019-04-22
|
67 |
+
* [#630](https://github.com/stripe/stripe-php/pull/630) Add support for the `TaxId` resource and APIs
|
68 |
+
|
69 |
+
## 6.32.1 - 2019-04-19
|
70 |
+
* [#636](https://github.com/stripe/stripe-php/pull/636) Correct type of `$personId` in PHPDoc
|
71 |
+
|
72 |
+
## 6.32.0 - 2019-04-18
|
73 |
+
* [#621](https://github.com/stripe/stripe-php/pull/621) Add support for `CreditNote`
|
74 |
+
|
75 |
+
## 6.31.5 - 2019-04-12
|
76 |
+
* [#628](https://github.com/stripe/stripe-php/pull/628) Add constants for `person.*` event types
|
77 |
+
* [#628](https://github.com/stripe/stripe-php/pull/628) Add missing constants for `Account` and `Person`
|
78 |
+
|
79 |
+
## 6.31.4 - 2019-04-05
|
80 |
+
* [#624](https://github.com/stripe/stripe-php/pull/624) Fix encoding of nested parameters in multipart requests
|
81 |
+
|
82 |
+
## 6.31.3 - 2019-04-02
|
83 |
+
* [#623](https://github.com/stripe/stripe-php/pull/623) Only use HTTP/2 with curl >= 7.60.0
|
84 |
+
|
85 |
+
## 6.31.2 - 2019-03-25
|
86 |
+
* [#619](https://github.com/stripe/stripe-php/pull/619) Fix PHPDoc return types for list methods for nested resources
|
87 |
+
|
88 |
+
## 6.31.1 - 2019-03-22
|
89 |
+
* [#612](https://github.com/stripe/stripe-php/pull/612) Add a lot of constants
|
90 |
+
* [#614](https://github.com/stripe/stripe-php/pull/614) Add missing subscription status constants
|
91 |
+
|
92 |
+
## 6.31.0 - 2019-03-18
|
93 |
+
* [#600](https://github.com/stripe/stripe-php/pull/600) Add support for the `PaymentMethod` resource and APIs
|
94 |
+
* [#606](https://github.com/stripe/stripe-php/pull/606) Add support for retrieving a Checkout `Session`
|
95 |
+
* [#611](https://github.com/stripe/stripe-php/pull/611) Add support for deleting a Terminal `Location` and `Reader`
|
96 |
+
|
97 |
+
## 6.30.5 - 2019-03-11
|
98 |
+
* [#607](https://github.com/stripe/stripe-php/pull/607) Correctly handle case where a metadata key is called `metadata`
|
99 |
+
|
100 |
+
## 6.30.4 - 2019-02-27
|
101 |
+
* [#602](https://github.com/stripe/stripe-php/pull/602) Add `subscription_schedule` to `Subscription` for PHPDoc.
|
102 |
+
|
103 |
+
## 6.30.3 - 2019-02-26
|
104 |
+
* [#603](https://github.com/stripe/stripe-php/pull/603) Improve PHPDoc on the `Source` object to cover all types of Sources currently supported.
|
105 |
+
|
106 |
+
## 6.30.2 - 2019-02-25
|
107 |
+
* [#601](https://github.com/stripe/stripe-php/pull/601) Fix PHPDoc across multiple resources and add support for new events.
|
108 |
+
|
109 |
+
## 6.30.1 - 2019-02-16
|
110 |
+
* [#599](https://github.com/stripe/stripe-php/pull/599) Fix PHPDoc for `SubscriptionSchedule` and `SubscriptionScheduleRevision`
|
111 |
+
|
112 |
+
## 6.30.0 - 2019-02-12
|
113 |
+
* [#590](https://github.com/stripe/stripe-php/pull/590) Add support for `SubscriptionSchedule` and `SubscriptionScheduleRevision`
|
114 |
+
|
115 |
+
## 6.29.3 - 2019-01-31
|
116 |
+
* [#592](https://github.com/stripe/stripe-php/pull/592) Some more PHPDoc fixes
|
117 |
+
|
118 |
+
## 6.29.2 - 2019-01-31
|
119 |
+
* [#591](https://github.com/stripe/stripe-php/pull/591) Fix PHPDoc for nested resources
|
120 |
+
|
121 |
+
## 6.29.1 - 2019-01-25
|
122 |
+
* [#566](https://github.com/stripe/stripe-php/pull/566) Fix dangling message contents
|
123 |
+
* [#586](https://github.com/stripe/stripe-php/pull/586) Don't overwrite `CURLOPT_HTTP_VERSION` option
|
124 |
+
|
125 |
+
## 6.29.0 - 2019-01-23
|
126 |
+
* [#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.
|
127 |
+
|
128 |
+
## 6.28.1 - 2019-01-21
|
129 |
+
* [#580](https://github.com/stripe/stripe-php/pull/580) Properly serialize `individual` on `Account` objects
|
130 |
+
|
131 |
+
## 6.28.0 - 2019-01-03
|
132 |
+
* [#576](https://github.com/stripe/stripe-php/pull/576) Add support for iterating directly over `Collection` instances
|
133 |
+
|
134 |
+
## 6.27.0 - 2018-12-21
|
135 |
+
* [#571](https://github.com/stripe/stripe-php/pull/571) Add support for the `CheckoutSession` resource
|
136 |
+
|
137 |
+
## 6.26.0 - 2018-12-11
|
138 |
+
* [#568](https://github.com/stripe/stripe-php/pull/568) Enable persistent connections
|
139 |
+
|
140 |
+
## 6.25.0 - 2018-12-10
|
141 |
+
* [#567](https://github.com/stripe/stripe-php/pull/567) Add support for account links
|
142 |
+
|
143 |
+
## 6.24.0 - 2018-11-28
|
144 |
+
* [#562](https://github.com/stripe/stripe-php/pull/562) Add support for the Review resource
|
145 |
+
* [#564](https://github.com/stripe/stripe-php/pull/564) Add event name constants for subscription schedule aborted/expiring
|
146 |
+
|
147 |
+
## 6.23.0 - 2018-11-27
|
148 |
+
* [#542](https://github.com/stripe/stripe-php/pull/542) Add support for `ValueList` and `ValueListItem` for Radar
|
149 |
+
|
150 |
+
## 6.22.1 - 2018-11-20
|
151 |
+
* [#561](https://github.com/stripe/stripe-php/pull/561) Add cast and some docs to telemetry introduced in 6.22.0/#549
|
152 |
+
|
153 |
+
## 6.22.0 - 2018-11-15
|
154 |
+
* [#549](https://github.com/stripe/stripe-php/pull/549) Add support for client telemetry
|
155 |
+
|
156 |
+
## 6.21.1 - 2018-11-12
|
157 |
+
* [#548](https://github.com/stripe/stripe-php/pull/548) Don't mutate `Exception` class properties from `OAuthBase` error
|
158 |
+
|
159 |
+
## 6.21.0 - 2018-11-08
|
160 |
+
* [#537](https://github.com/stripe/stripe-php/pull/537) Add new API endpoints for the `Invoice` resource.
|
161 |
+
|
162 |
+
## 6.20.1 - 2018-11-07
|
163 |
+
* [#546](https://github.com/stripe/stripe-php/pull/546) Drop files from the Composer package that aren't needed in the release
|
164 |
+
|
165 |
+
## 6.20.0 - 2018-10-30
|
166 |
+
* [#536](https://github.com/stripe/stripe-php/pull/536) Add support for the `Person` resource
|
167 |
+
* [#541](https://github.com/stripe/stripe-php/pull/541) Add support for the `WebhookEndpoint` resource
|
168 |
+
|
169 |
+
## 6.19.5 - 2018-10-17
|
170 |
+
* [#539](https://github.com/stripe/stripe-php/pull/539) Fix methods on `\Stripe\PaymentIntent` to properly pass arguments to the API.
|
171 |
+
|
172 |
+
## 6.19.4 - 2018-10-11
|
173 |
+
* [#534](https://github.com/stripe/stripe-php/pull/534) Fix PSR-4 autoloading for `\Stripe\FileUpload` class alias
|
174 |
+
|
175 |
+
## 6.19.3 - 2018-10-09
|
176 |
+
* [#530](https://github.com/stripe/stripe-php/pull/530) Add constants for `flow` (`FLOW_*`), `status` (`STATUS_*`) and `usage` (`USAGE_*`) on `\Stripe\Source`
|
177 |
+
|
178 |
+
## 6.19.2 - 2018-10-08
|
179 |
+
* [#531](https://github.com/stripe/stripe-php/pull/531) Store HTTP response headers in case-insensitive array
|
180 |
+
|
181 |
+
## 6.19.1 - 2018-09-25
|
182 |
+
* [#526](https://github.com/stripe/stripe-php/pull/526) Ignore null values in request parameters
|
183 |
+
|
184 |
+
## 6.19.0 - 2018-09-24
|
185 |
+
* [#523](https://github.com/stripe/stripe-php/pull/523) Add support for Stripe Terminal
|
186 |
+
|
187 |
+
## 6.18.0 - 2018-09-24
|
188 |
+
* [#520](https://github.com/stripe/stripe-php/pull/520) Rename `\Stripe\FileUpload` to `\Stripe\File`
|
189 |
+
|
190 |
+
## 6.17.2 - 2018-09-18
|
191 |
+
* [#522](https://github.com/stripe/stripe-php/pull/522) Fix warning when adding a new additional owner to an existing array
|
192 |
+
|
193 |
+
## 6.17.1 - 2018-09-14
|
194 |
+
* [#517](https://github.com/stripe/stripe-php/pull/517) Integer-index encode all sequential arrays
|
195 |
+
|
196 |
+
## 6.17.0 - 2018-09-05
|
197 |
+
* [#514](https://github.com/stripe/stripe-php/pull/514) Add support for reporting resources
|
198 |
+
|
199 |
+
## 6.16.0 - 2018-08-23
|
200 |
+
* [#509](https://github.com/stripe/stripe-php/pull/509) Add support for usage record summaries
|
201 |
+
|
202 |
+
## 6.15.0 - 2018-08-03
|
203 |
+
* [#504](https://github.com/stripe/stripe-php/pull/504) Add cancel support for topups
|
204 |
+
|
205 |
+
## 6.14.0 - 2018-08-02
|
206 |
+
* [#505](https://github.com/stripe/stripe-php/pull/505) Add support for file links
|
207 |
+
|
208 |
+
## 6.13.0 - 2018-07-31
|
209 |
+
* [#502](https://github.com/stripe/stripe-php/pull/502) Add `isDeleted()` method to `\Stripe\StripeObject`
|
210 |
+
|
211 |
+
## 6.12.0 - 2018-07-28
|
212 |
+
* [#501](https://github.com/stripe/stripe-php/pull/501) Add support for scheduled query runs (`\Stripe\Sigma\ScheduledQueryRun`) for Sigma
|
213 |
+
|
214 |
+
## 6.11.0 - 2018-07-26
|
215 |
+
* [#500](https://github.com/stripe/stripe-php/pull/500) Add support for Stripe Issuing
|
216 |
+
|
217 |
+
## 6.10.4 - 2018-07-19
|
218 |
+
* [#498](https://github.com/stripe/stripe-php/pull/498) Internal improvements to the `\Stripe\ApiResource.classUrl()` method
|
219 |
+
|
220 |
+
## 6.10.3 - 2018-07-16
|
221 |
+
* [#497](https://github.com/stripe/stripe-php/pull/497) Use HTTP/2 only for HTTPS requests
|
222 |
+
|
223 |
+
## 6.10.2 - 2018-07-11
|
224 |
+
* [#494](https://github.com/stripe/stripe-php/pull/494) Enable HTTP/2 support
|
225 |
+
|
226 |
+
## 6.10.1 - 2018-07-10
|
227 |
+
* [#493](https://github.com/stripe/stripe-php/pull/493) Add PHPDoc for `auto_advance` on `\Stripe\Invoice`
|
228 |
+
|
229 |
+
## 6.10.0 - 2018-06-28
|
230 |
+
* [#488](https://github.com/stripe/stripe-php/pull/488) Add support for `$appPartnerId` to `Stripe::setAppInfo()`
|
231 |
+
|
232 |
+
## 6.9.0 - 2018-06-28
|
233 |
+
* [#487](https://github.com/stripe/stripe-php/pull/487) Add support for payment intents
|
234 |
+
|
235 |
+
## 6.8.2 - 2018-06-24
|
236 |
+
* [#486](https://github.com/stripe/stripe-php/pull/486) Make `Account.deauthorize()` return the `StripeObject` from the API
|
237 |
+
|
238 |
+
## 6.8.1 - 2018-06-13
|
239 |
+
* [#472](https://github.com/stripe/stripe-php/pull/472) Added phpDoc for `ApiRequestor` and others, especially regarding thrown errors
|
240 |
+
|
241 |
+
## 6.8.0 - 2018-06-13
|
242 |
+
* [#481](https://github.com/stripe/stripe-php/pull/481) Add new `\Stripe\Discount` and `\Stripe\OrderItem` classes, add more PHPDoc describing object attributes
|
243 |
+
|
244 |
+
## 6.7.4 - 2018-05-29
|
245 |
+
* [#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
|
246 |
+
|
247 |
+
## 6.7.3 - 2018-05-28
|
248 |
+
* [#479](https://github.com/stripe/stripe-php/pull/479) Fix unnecessary traits on `\Stripe\InvoiceLineItem`
|
249 |
+
|
250 |
+
## 6.7.2 - 2018-05-28
|
251 |
+
* [#471](https://github.com/stripe/stripe-php/pull/471) Add `OBJECT_NAME` constant to all API resource classes, add `\Stripe\InvoiceLineItem` class
|
252 |
+
|
253 |
+
## 6.7.1 - 2018-05-13
|
254 |
+
* [#468](https://github.com/stripe/stripe-php/pull/468) Update fields in PHP docs for accuracy
|
255 |
+
|
256 |
+
## 6.7.0 - 2018-05-09
|
257 |
+
* [#466](https://github.com/stripe/stripe-php/pull/466) Add support for issuer fraud records
|
258 |
+
|
259 |
+
## 6.6.0 - 2018-04-11
|
260 |
+
* [#460](https://github.com/stripe/stripe-php/pull/460) Add support for flexible billing primitives
|
261 |
+
|
262 |
+
## 6.5.0 - 2018-04-05
|
263 |
+
* [#461](https://github.com/stripe/stripe-php/pull/461) Don't zero keys on non-`metadata` subobjects
|
264 |
+
|
265 |
+
## 6.4.2 - 2018-03-17
|
266 |
+
* [#458](https://github.com/stripe/stripe-php/pull/458) Add PHPDoc for `account` on `\Stripe\Event`
|
267 |
+
|
268 |
+
## 6.4.1 - 2018-03-02
|
269 |
+
* [#455](https://github.com/stripe/stripe-php/pull/455) Fix namespaces in PHPDoc
|
270 |
+
* [#456](https://github.com/stripe/stripe-php/pull/456) Fix namespaces for some exceptions
|
271 |
+
|
272 |
+
## 6.4.0 - 2018-02-28
|
273 |
+
* [#453](https://github.com/stripe/stripe-php/pull/453) Add constants for `reason` (`REASON_*`) and `status` (`STATUS_*`) on `\Stripe\Dispute`
|
274 |
+
|
275 |
+
## 6.3.2 - 2018-02-27
|
276 |
+
* [#452](https://github.com/stripe/stripe-php/pull/452) Add PHPDoc for `amount_paid` and `amount_remaining` on `\Stripe\Invoice`
|
277 |
+
|
278 |
+
## 6.3.1 - 2018-02-26
|
279 |
+
* [#443](https://github.com/stripe/stripe-php/pull/443) Add event types as constants to `\Stripe\Event` class
|
280 |
+
|
281 |
+
## 6.3.0 - 2018-02-23
|
282 |
+
* [#450](https://github.com/stripe/stripe-php/pull/450) Add support for `code` attribute on all Stripe exceptions
|
283 |
+
|
284 |
+
## 6.2.0 - 2018-02-21
|
285 |
+
* [#440](https://github.com/stripe/stripe-php/pull/440) Add support for topups
|
286 |
+
* [#442](https://github.com/stripe/stripe-php/pull/442) Fix PHPDoc for `\Stripe\Error\SignatureVerification`
|
287 |
+
|
288 |
+
## 6.1.0 - 2018-02-12
|
289 |
+
* [#435](https://github.com/stripe/stripe-php/pull/435) Fix header persistence on `Collection` objects
|
290 |
+
* [#436](https://github.com/stripe/stripe-php/pull/436) Introduce new `Idempotency` error class
|
291 |
+
|
292 |
+
## 6.0.0 - 2018-02-07
|
293 |
+
Major version release. List of backwards incompatible changes to watch out for:
|
294 |
+
+ 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.
|
295 |
+
* `\Stripe\AttachedObject` no longer exists. Attributes that used to be instances of `\Stripe\AttachedObject` (such as `metadata`) are now instances of `\Stripe\StripeObject`.
|
296 |
+
+ 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.
|
297 |
+
* `\Stripe\Collection` now derives from `\Stripe\StripeObject` rather than from `\Stripe\ApiResource`.
|
298 |
+
|
299 |
+
Pull requests included in this release:
|
300 |
+
* [#410](https://github.com/stripe/stripe-php/pull/410) Drop support for PHP 5.3
|
301 |
+
* [#411](https://github.com/stripe/stripe-php/pull/411) Use traits for common API operations
|
302 |
+
* [#414](https://github.com/stripe/stripe-php/pull/414) Use short array syntax
|
303 |
+
* [#404](https://github.com/stripe/stripe-php/pull/404) Fix serialization logic
|
304 |
+
* [#417](https://github.com/stripe/stripe-php/pull/417) Remove `ExternalAccount` class
|
305 |
+
* [#418](https://github.com/stripe/stripe-php/pull/418) Increase test coverage
|
306 |
+
* [#421](https://github.com/stripe/stripe-php/pull/421) Update CA bundle and add script for future updates
|
307 |
+
* [#422](https://github.com/stripe/stripe-php/pull/422) Use vendored CA bundle for all requests
|
308 |
+
* [#428](https://github.com/stripe/stripe-php/pull/428) Support for automatic request retries
|
309 |
+
|
310 |
+
## 5.9.2 - 2018-02-07
|
311 |
+
* [#431](https://github.com/stripe/stripe-php/pull/431) Update PHPDoc @property tags for latest API version
|
312 |
+
|
313 |
+
## 5.9.1 - 2018-02-06
|
314 |
+
* [#427](https://github.com/stripe/stripe-php/pull/427) Add and update PHPDoc @property tags on all API resources
|
315 |
+
|
316 |
+
## 5.9.0 - 2018-01-17
|
317 |
+
* [#421](https://github.com/stripe/stripe-php/pull/421) Updated bundled CA certificates
|
318 |
+
* [#423](https://github.com/stripe/stripe-php/pull/423) Escape unsanitized input in OAuth example
|
319 |
+
|
320 |
+
## 5.8.0 - 2017-12-20
|
321 |
+
* [#403](https://github.com/stripe/stripe-php/pull/403) Add `__debugInfo()` magic method to `StripeObject`
|
322 |
+
|
323 |
+
## 5.7.0 - 2017-11-28
|
324 |
+
* [#390](https://github.com/stripe/stripe-php/pull/390) Remove some unsupported API methods
|
325 |
+
* [#391](https://github.com/stripe/stripe-php/pull/391) Alphabetize the list of API resources in `Util::convertToStripeObject()` and add missing resources
|
326 |
+
* [#393](https://github.com/stripe/stripe-php/pull/393) Fix expiry date update for card sources
|
327 |
+
|
328 |
+
## 5.6.0 - 2017-10-31
|
329 |
+
* [#386](https://github.com/stripe/stripe-php/pull/386) Support for exchange rates APIs
|
330 |
+
|
331 |
+
## 5.5.1 - 2017-10-30
|
332 |
+
* [#387](https://github.com/stripe/stripe-php/pull/387) Allow `personal_address_kana` and `personal_address_kanji` to be updated on an account
|
333 |
+
|
334 |
+
## 5.5.0 - 2017-10-27
|
335 |
+
* [#385](https://github.com/stripe/stripe-php/pull/385) Support for listing source transactions
|
336 |
+
|
337 |
+
## 5.4.0 - 2017-10-24
|
338 |
+
* [#383](https://github.com/stripe/stripe-php/pull/383) Add static methods to manipulate resources from parent
|
339 |
+
* `Account` gains methods for external accounts and login links (e.g. `createExternalAccount`, `createLoginLink`)
|
340 |
+
* `ApplicationFee` gains methods for refunds
|
341 |
+
* `Customer` gains methods for sources
|
342 |
+
* `Transfer` gains methods for reversals
|
343 |
+
|
344 |
+
## 5.3.0 - 2017-10-11
|
345 |
+
* [#378](https://github.com/stripe/stripe-php/pull/378) Rename source `delete` to `detach` (and deprecate the former)
|
346 |
+
|
347 |
+
## 5.2.3 - 2017-09-27
|
348 |
+
* Add PHPDoc for `Card`
|
349 |
+
|
350 |
+
## 5.2.2 - 2017-09-20
|
351 |
+
* Fix deserialization mapping of `FileUpload` objects
|
352 |
+
|
353 |
+
## 5.2.1 - 2017-09-14
|
354 |
+
* Serialized `shipping` nested attribute
|
355 |
+
|
356 |
+
## 5.2.0 - 2017-08-29
|
357 |
+
* Add support for `InvalidClient` OAuth error
|
358 |
+
|
359 |
+
## 5.1.3 - 2017-08-14
|
360 |
+
* Allow `address_kana` and `address_kanji` to be updated for custom accounts
|
361 |
+
|
362 |
+
## 5.1.2 - 2017-08-01
|
363 |
+
* Fix documented return type of `autoPagingIterator()` (was missing namespace)
|
364 |
+
|
365 |
+
## 5.1.1 - 2017-07-03
|
366 |
+
* Fix order returns to use the right URL `/v1/order_returns`
|
367 |
+
|
368 |
+
## 5.1.0 - 2017-06-30
|
369 |
+
* Add support for OAuth
|
370 |
+
|
371 |
+
## 5.0.0 - 2017-06-27
|
372 |
+
* `pay` on invoice now takes params as well as opts
|
373 |
+
|
374 |
+
## 4.13.0 - 2017-06-19
|
375 |
+
* Add support for ephemeral keys
|
376 |
+
|
377 |
+
## 4.12.0 - 2017-06-05
|
378 |
+
* Clients can implement `getUserAgentInfo()` to add additional user agent information
|
379 |
+
|
380 |
+
## 4.11.0 - 2017-06-05
|
381 |
+
* Implement `Countable` for `AttachedObject` (`metadata` and `additional_owners`)
|
382 |
+
|
383 |
+
## 4.10.0 - 2017-05-25
|
384 |
+
* Add support for login links
|
385 |
+
|
386 |
+
## 4.9.1 - 2017-05-10
|
387 |
+
* Fix docs to include arrays on `$id` parameter for retrieve methods
|
388 |
+
|
389 |
+
## 4.9.0 - 2017-04-28
|
390 |
+
* Support for checking webhook signatures
|
391 |
+
|
392 |
+
## 4.8.1 - 2017-04-24
|
393 |
+
* Allow nested field `payout_schedule` to be updated
|
394 |
+
|
395 |
+
## 4.8.0 - 2017-04-20
|
396 |
+
* Add `\Stripe\Stripe::setLogger()` to support an external PSR-3 compatible logger
|
397 |
+
|
398 |
+
## 4.7.0 - 2017-04-10
|
399 |
+
* Add support for payouts and recipient transfers
|
400 |
+
|
401 |
+
## 4.6.0 - 2017-04-06
|
402 |
+
* Please see 4.7.0 instead (no-op release)
|
403 |
+
|
404 |
+
## 4.5.1 - 2017-03-22
|
405 |
+
* Remove hard dependency on cURL
|
406 |
+
|
407 |
+
## 4.5.0 - 2017-03-20
|
408 |
+
* Support for detaching sources from customers
|
409 |
+
|
410 |
+
## 4.4.2 - 2017-02-27
|
411 |
+
* Correct handling of `owner` parameter when updating sources
|
412 |
+
|
413 |
+
## 4.4.1 - 2017-02-24
|
414 |
+
* Correct the error check on a bad JSON decoding
|
415 |
+
|
416 |
+
## 4.4.0 - 2017-01-18
|
417 |
+
* Add support for updating sources
|
418 |
+
|
419 |
+
## 4.3.0 - 2016-11-30
|
420 |
+
* Add support for verifying sources
|
421 |
+
|
422 |
+
## 4.2.0 - 2016-11-21
|
423 |
+
* Add retrieve method for 3-D Secure resources
|
424 |
+
|
425 |
+
## 4.1.1 - 2016-10-21
|
426 |
+
* Add docblock with model properties for `Plan`
|
427 |
+
|
428 |
+
## 4.1.0 - 2016-10-18
|
429 |
+
* Support for 403 status codes (permission denied)
|
430 |
+
|
431 |
+
## 4.0.1 - 2016-10-17
|
432 |
+
* Fix transfer reversal materialization
|
433 |
+
* Fixes for some property definitions in docblocks
|
434 |
+
|
435 |
+
## 4.0.0 - 2016-09-28
|
436 |
+
* Support for subscription items
|
437 |
+
* 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!)
|
438 |
+
|
439 |
+
## 3.23.0 - 2016-09-15
|
440 |
+
* Add support for Apple Pay domains
|
441 |
+
|
442 |
+
## 3.22.0 - 2016-09-13
|
443 |
+
* Add `Stripe::setAppInfo` to allow plugins to register user agent information
|
444 |
+
|
445 |
+
## 3.21.0 - 2016-08-25
|
446 |
+
* Add `Source` model for generic payment sources
|
447 |
+
|
448 |
+
## 3.20.0 - 2016-08-08
|
449 |
+
* Add `getDeclineCode` to card errors
|
450 |
+
|
451 |
+
## 3.19.0 - 2016-07-29
|
452 |
+
* Opt requests directly into TLS 1.2 where OpenSSL >= 1.0.1 (see #277 for context)
|
453 |
+
|
454 |
+
## 3.18.0 - 2016-07-28
|
455 |
+
* Add new `STATUS_` constants for subscriptions
|
456 |
+
|
457 |
+
## 3.17.1 - 2016-07-28
|
458 |
+
* Fix auto-paging iterator so that it plays nicely with `iterator_to_array`
|
459 |
+
|
460 |
+
## 3.17.0 - 2016-07-14
|
461 |
+
* Add field annotations to model classes for better editor hinting
|
462 |
+
|
463 |
+
## 3.16.0 - 2016-07-12
|
464 |
+
* Add `ThreeDSecure` model for 3-D secure payments
|
465 |
+
|
466 |
+
## 3.15.0 - 2016-06-29
|
467 |
+
* Add static `update` method to all resources that can be changed.
|
468 |
+
|
469 |
+
## 3.14.3 - 2016-06-20
|
470 |
+
* Make sure that cURL never sends `Expects: 100-continue`, even on large request bodies
|
471 |
+
|
472 |
+
## 3.14.2 - 2016-06-03
|
473 |
+
* Add `inventory` under `SKU` to list of keys that have nested data and can be updated
|
474 |
+
|
475 |
+
## 3.14.1 - 2016-05-27
|
476 |
+
* Fix some inconsistencies in PHPDoc
|
477 |
+
|
478 |
+
## 3.14.0 - 2016-05-25
|
479 |
+
* Add support for returning Relay orders
|
480 |
+
|
481 |
+
## 3.13.0 - 2016-05-04
|
482 |
+
* Add `list`, `create`, `update`, `retrieve`, and `delete` methods to the Subscription class
|
483 |
+
|
484 |
+
## 3.12.1 - 2016-04-07
|
485 |
+
* Additional check on value arrays for some extra safety
|
486 |
+
|
487 |
+
## 3.12.0 - 2016-03-31
|
488 |
+
* Fix bug `refreshFrom` on `StripeObject` would not take an `$opts` array
|
489 |
+
* Fix bug where `$opts` not passed to parent `save` method in `Account`
|
490 |
+
* Fix bug where non-existent variable was referenced in `reverse` in `Transfer`
|
491 |
+
* Update CA cert bundle for compatibility with OpenSSL versions below 1.0.1
|
492 |
+
|
493 |
+
## 3.11.0 - 2016-03-22
|
494 |
+
* Allow `CurlClient` to be initialized with default `CURLOPT_*` options
|
495 |
+
|
496 |
+
## 3.10.1 - 2016-03-22
|
497 |
+
* Fix bug where request params and options were ignored in `ApplicationFee`'s `refund.`
|
498 |
+
|
499 |
+
## 3.10.0 - 2016-03-15
|
500 |
+
* Add `reject` on `Account` to support the new API feature
|
501 |
+
|
502 |
+
## 3.9.2 - 2016-03-04
|
503 |
+
* Fix error when an object's metadata is set more than once
|
504 |
+
|
505 |
+
## 3.9.1 - 2016-02-24
|
506 |
+
* Fix encoding behavior of nested arrays for requests (see #227)
|
507 |
+
|
508 |
+
## 3.9.0 - 2016-02-09
|
509 |
+
* Add automatic pagination mechanism with `autoPagingIterator()`
|
510 |
+
* Allow global account ID to be set with `Stripe::setAccountId()`
|
511 |
+
|
512 |
+
## 3.8.0 - 2016-02-08
|
513 |
+
* Add `CountrySpec` model for looking up country payment information
|
514 |
+
|
515 |
+
## 3.7.1 - 2016-02-01
|
516 |
+
* Update bundled CA certs
|
517 |
+
|
518 |
+
## 3.7.0 - 2016-01-27
|
519 |
+
* Support deleting Relay products and SKUs
|
520 |
+
|
521 |
+
## 3.6.0 - 2016-01-05
|
522 |
+
* Allow configuration of HTTP client timeouts
|
523 |
+
|
524 |
+
## 3.5.0 - 2015-12-01
|
525 |
+
* Add a verification routine for external accounts
|
526 |
+
|
527 |
+
## 3.4.0 - 2015-09-14
|
528 |
+
* Products, SKUs, and Orders -- https://stripe.com/relay
|
529 |
+
|
530 |
+
## 3.3.0 - 2015-09-11
|
531 |
+
* Add support for 429 Rate Limit response
|
532 |
+
|
533 |
+
## 3.2.0 - 2015-08-17
|
534 |
+
* Add refund listing and retrieval without an associated charge
|
535 |
+
|
536 |
+
## 3.1.0 - 2015-08-03
|
537 |
+
* Add dispute listing and retrieval
|
538 |
+
* Add support for manage account deletion
|
539 |
+
|
540 |
+
## 3.0.0 - 2015-07-28
|
541 |
+
* Rename `\Stripe\Object` to `\Stripe\StripeObject` (PHP 7 compatibility)
|
542 |
+
* Rename `getCode` and `getParam` in exceptions to `getStripeCode` and `getStripeParam`
|
543 |
+
* Add support for calling `json_encode` on Stripe objects in PHP 5.4+
|
544 |
+
* Start supporting/testing PHP 7
|
545 |
+
|
546 |
+
## 2.3.0 - 2015-07-06
|
547 |
+
* Add request ID to all Stripe exceptions
|
548 |
+
|
549 |
+
## 2.2.0 - 2015-06-01
|
550 |
+
* Add support for Alipay accounts as sources
|
551 |
+
* Add support for bank accounts as sources (private beta)
|
552 |
+
* Add support for bank accounts and cards as external_accounts on Account objects
|
553 |
+
|
554 |
+
## 2.1.4 - 2015-05-13
|
555 |
+
* Fix CA certificate file path (thanks @lphilps & @matthewarkin)
|
556 |
+
|
557 |
+
## 2.1.3 - 2015-05-12
|
558 |
+
* Fix to account updating to permit `tos_acceptance` and `personal_address` to be set properly
|
559 |
+
* Fix to Transfer reversal creation (thanks @neatness!)
|
560 |
+
* Network requests are now done through a swappable class for easier mocking
|
561 |
+
|
562 |
+
## 2.1.2 - 2015-04-10
|
563 |
+
* Remove SSL cert revokation checking (all pre-Heartbleed certs have expired)
|
564 |
+
* Bug fixes to account updating
|
565 |
+
|
566 |
+
## 2.1.1 - 2015-02-27
|
567 |
+
* Support transfer reversals
|
568 |
+
|
569 |
+
## 2.1.0 - 2015-02-19
|
570 |
+
* Support new API version (2015-02-18)
|
571 |
+
* Added Bitcoin Receiever update and delete actions
|
572 |
+
* Edited tests to prefer "source" over "card" as per new API version
|
573 |
+
|
574 |
+
## 2.0.1 - 2015-02-16
|
575 |
+
* Fix to fetching endpoints that use a non-default baseUrl (`FileUpload`)
|
576 |
+
|
577 |
+
## 2.0.0 - 2015-02-14
|
578 |
+
* Bumped minimum version to 5.3.3
|
579 |
+
* Switched to Stripe namespace instead of Stripe_ class name prefiexes (thanks @chadicus!)
|
580 |
+
* Switched tests to PHPUnit (thanks @chadicus!)
|
581 |
+
* Switched style guide to PSR2 (thanks @chadicus!)
|
582 |
+
* 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.
|
583 |
+
* Added support for retrieving Account by ID
|
584 |
+
|
585 |
+
## 1.18.0 - 2015-01-21
|
586 |
+
* Support making bitcoin charges through BitcoinReceiver source object
|
587 |
+
|
588 |
+
## 1.17.5 - 2014-12-23
|
589 |
+
* Adding support for creating file uploads.
|
590 |
+
|
591 |
+
## 1.17.4 - 2014-12-15
|
592 |
+
* Saving objects fetched with a custom key now works (thanks @JustinHook & @jpasilan)
|
593 |
+
* Added methods for reporting charges as safe or fraudulent and for specifying the reason for refunds
|
594 |
+
|
595 |
+
## 1.17.3 - 2014-11-06
|
596 |
+
* Better handling of HHVM support for SSL certificate blacklist checking.
|
597 |
+
|
598 |
+
## 1.17.2 - 2014-09-23
|
599 |
+
* Coupons now are backed by a `Stripe_Coupon` instead of `Stripe_Object`, and support updating metadata
|
600 |
+
* Running operations (`create`, `retrieve`, `all`) on upcoming invoice items now works
|
601 |
+
|
602 |
+
## 1.17.1 - 2014-07-31
|
603 |
+
* Requests now send Content-Type header
|
604 |
+
|
605 |
+
## 1.17.0 - 2014-07-29
|
606 |
+
* Application Fee refunds now a list instead of array
|
607 |
+
* HHVM now works
|
608 |
+
* Small bug fixes (thanks @bencromwell & @fastest963)
|
609 |
+
* `__toString` now returns the name of the object in addition to its JSON representation
|
610 |
+
|
611 |
+
## 1.16.0 - 2014-06-17
|
612 |
+
* Add metadata for refunds and disputes
|
613 |
+
|
614 |
+
## 1.15.0 - 2014-05-28
|
615 |
+
* Support canceling transfers
|
616 |
+
|
617 |
+
## 1.14.1 - 2014-05-21
|
618 |
+
* Support cards for recipients.
|
619 |
+
|
620 |
+
## 1.13.1 - 2014-05-15
|
621 |
+
* Fix bug in account resource where `id` wasn't in the result
|
622 |
+
|
623 |
+
## 1.13.0 - 2014-04-10
|
624 |
+
* Add support for certificate blacklisting
|
625 |
+
* Update ca bundle
|
626 |
+
* Drop support for HHVM (Temporarily)
|
627 |
+
|
628 |
+
## 1.12.0 - 2014-04-01
|
629 |
+
* Add Stripe_RateLimitError for catching rate limit errors.
|
630 |
+
* Update to Zend coding style (thanks, @jpiasetz)
|
631 |
+
|
632 |
+
## 1.11.0 - 2014-01-29
|
633 |
+
* Add support for multiple subscriptions per customer
|
634 |
+
|
635 |
+
## 1.10.1 - 2013-12-02
|
636 |
+
* Add new ApplicationFee
|
637 |
+
|
638 |
+
## 1.9.1 - 2013-11-08
|
639 |
+
* Fix a bug where a null nestable object causes warnings to fire.
|
640 |
+
|
641 |
+
## 1.9.0 - 2013-10-16
|
642 |
+
* Add support for metadata API.
|
643 |
+
|
644 |
+
## 1.8.4 - 2013-09-18
|
645 |
+
* Add support for closing disputes.
|
646 |
+
|
647 |
+
## 1.8.3 - 2013-08-13
|
648 |
+
* Add new Balance and BalanceTransaction
|
649 |
+
|
650 |
+
## 1.8.2 - 2013-08-12
|
651 |
+
* Add support for unsetting attributes by updating to NULL. Setting properties to a blank string is now an error.
|
652 |
+
|
653 |
+
## 1.8.1 - 2013-07-12
|
654 |
+
* Add support for multiple cards API (Stripe API version 2013-07-12: https://stripe.com/docs/upgrades#2013-07-05)
|
655 |
+
|
656 |
+
## 1.8.0 - 2013-04-11
|
657 |
+
* Allow Transfers to be creatable
|
658 |
+
* Add new Recipient resource
|
659 |
+
|
660 |
+
## 1.7.15 - 2013-02-21
|
661 |
+
* Add 'id' to the list of permanent object attributes
|
662 |
+
|
663 |
+
## 1.7.14 - 2013-02-20
|
664 |
+
|
665 |
+
* 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.
|
666 |
+
* Ensure that all input is encoded in UTF-8 before submitting it to Stripe's servers. (github issue #27)
|
667 |
+
|
668 |
+
## 1.7.13 - 2013-02-01
|
669 |
+
* 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
|
670 |
+
|
671 |
+
## 1.7.12 - 2013-01-15
|
672 |
+
* Add support for setting a Stripe API version override
|
673 |
+
|
674 |
+
## 1.7.11 - 2012-12-30
|
675 |
+
* Version bump to cleanup constants and such (fix issue #26)
|
676 |
+
|
677 |
+
## 1.7.10 - 2012-11-08
|
678 |
+
* Add support for updating charge disputes.
|
679 |
+
* Fix bug preventing retrieval of null attributes
|
680 |
+
|
681 |
+
## 1.7.9 - 2012-11-08
|
682 |
+
* Fix usage under autoloaders such as the one generated by composer (fix issue #22)
|
683 |
+
|
684 |
+
## 1.7.8 - 2012-10-30
|
685 |
+
* Add support for creating invoices.
|
686 |
+
* Add support for new invoice lines return format
|
687 |
+
* Add support for new list objects
|
688 |
+
|
689 |
+
## 1.7.7 - 2012-09-14
|
690 |
+
* Get all of the various version numbers in the repo in sync (no other changes)
|
691 |
+
|
692 |
+
## 1.7.6 - 2012-08-31
|
693 |
+
* Add update and pay methods to Invoice resource
|
694 |
+
|
695 |
+
## 1.7.5 - 2012-08-23
|
696 |
+
* Change internal function names so that Stripe_SingletonApiRequest is E_STRICT-clean (github issue #16)
|
697 |
+
|
698 |
+
## 1.7.4 - 2012-08-21
|
699 |
+
* Bugfix so that Stripe objects (e.g. Customer, Charge objects) used in API calls are transparently converted to their object IDs
|
700 |
+
|
701 |
+
## 1.7.3 - 2012-08-15
|
702 |
+
* Add new Account resource
|
703 |
+
|
704 |
+
## 1.7.2 - 2012-06-26
|
705 |
+
* Make clearer that you should be including lib/Stripe.php, not test/Stripe.php (github issue #14)
|
706 |
+
|
707 |
+
## 1.7.1 - 2012-05-24
|
708 |
+
* 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)
|
709 |
+
|
710 |
+
## 1.7.0 - 2012-05-17
|
711 |
+
* Support Composer and Packagist (github issue #9)
|
712 |
+
* Add new deleteDiscount method to Stripe_Customer
|
713 |
+
* Add new Transfer resource
|
714 |
+
* 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)
|
715 |
+
* Numerous test suite improvements
|
stripe-php-6.40.0/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.
|
stripe-php-6.40.0/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
|
stripe-php-6.40.0/VERSION
ADDED
@@ -0,0 +1 @@
|
|
Â
|
1 |
+
6.40.0
|
stripe-php-6.40.0/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 |
+
}
|
stripe-php-6.40.0/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 |
+
}
|
stripe-php-6.40.0/data/ca-certificates.crt
ADDED
@@ -0,0 +1,3646 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
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 |
+
|
21 |
+
GlobalSign Root CA
|
22 |
+
==================
|
23 |
+
-----BEGIN CERTIFICATE-----
|
24 |
+
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
|
25 |
+
GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
|
26 |
+
b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
|
27 |
+
BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
|
28 |
+
VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
|
29 |
+
DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
|
30 |
+
THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
|
31 |
+
Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
|
32 |
+
c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
|
33 |
+
gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
|
34 |
+
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
|
35 |
+
AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
|
36 |
+
Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
|
37 |
+
j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
|
38 |
+
hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
|
39 |
+
X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
|
40 |
+
-----END CERTIFICATE-----
|
41 |
+
|
42 |
+
GlobalSign Root CA - R2
|
43 |
+
=======================
|
44 |
+
-----BEGIN CERTIFICATE-----
|
45 |
+
MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv
|
46 |
+
YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
|
47 |
+
bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
|
48 |
+
aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
|
49 |
+
bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6
|
50 |
+
ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp
|
51 |
+
s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN
|
52 |
+
S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL
|
53 |
+
TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C
|
54 |
+
ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
|
55 |
+
FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i
|
56 |
+
YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN
|
57 |
+
BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp
|
58 |
+
9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu
|
59 |
+
01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7
|
60 |
+
9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
|
61 |
+
TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
|
62 |
+
-----END CERTIFICATE-----
|
63 |
+
|
64 |
+
Verisign Class 3 Public Primary Certification Authority - G3
|
65 |
+
============================================================
|
66 |
+
-----BEGIN CERTIFICATE-----
|
67 |
+
MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
|
68 |
+
UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
|
69 |
+
cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
70 |
+
IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
|
71 |
+
dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
|
72 |
+
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
|
73 |
+
dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
|
74 |
+
cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg
|
75 |
+
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
76 |
+
ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1
|
77 |
+
EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc
|
78 |
+
cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw
|
79 |
+
EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj
|
80 |
+
055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
|
81 |
+
ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
|
82 |
+
j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
|
83 |
+
/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0
|
84 |
+
xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
|
85 |
+
t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
|
86 |
+
-----END CERTIFICATE-----
|
87 |
+
|
88 |
+
Entrust.net Premium 2048 Secure Server CA
|
89 |
+
=========================================
|
90 |
+
-----BEGIN CERTIFICATE-----
|
91 |
+
MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
|
92 |
+
ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp
|
93 |
+
bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
|
94 |
+
BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx
|
95 |
+
NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
|
96 |
+
d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
|
97 |
+
MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
|
98 |
+
ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
99 |
+
MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL
|
100 |
+
Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr
|
101 |
+
hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW
|
102 |
+
nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi
|
103 |
+
VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E
|
104 |
+
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ
|
105 |
+
KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy
|
106 |
+
T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
|
107 |
+
zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT
|
108 |
+
J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e
|
109 |
+
nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE=
|
110 |
+
-----END CERTIFICATE-----
|
111 |
+
|
112 |
+
Baltimore CyberTrust Root
|
113 |
+
=========================
|
114 |
+
-----BEGIN CERTIFICATE-----
|
115 |
+
MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE
|
116 |
+
ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li
|
117 |
+
ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC
|
118 |
+
SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs
|
119 |
+
dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME
|
120 |
+
uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB
|
121 |
+
UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C
|
122 |
+
G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9
|
123 |
+
XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr
|
124 |
+
l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI
|
125 |
+
VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
|
126 |
+
BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh
|
127 |
+
cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5
|
128 |
+
hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa
|
129 |
+
Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
|
130 |
+
RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
|
131 |
+
-----END CERTIFICATE-----
|
132 |
+
|
133 |
+
AddTrust External Root
|
134 |
+
======================
|
135 |
+
-----BEGIN CERTIFICATE-----
|
136 |
+
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
|
137 |
+
QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD
|
138 |
+
VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw
|
139 |
+
NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU
|
140 |
+
cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg
|
141 |
+
Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821
|
142 |
+
+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw
|
143 |
+
Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo
|
144 |
+
aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy
|
145 |
+
2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7
|
146 |
+
7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P
|
147 |
+
BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL
|
148 |
+
VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk
|
149 |
+
VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB
|
150 |
+
IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
|
151 |
+
j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
|
152 |
+
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355
|
153 |
+
e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
|
154 |
+
G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
|
155 |
+
-----END CERTIFICATE-----
|
156 |
+
|
157 |
+
Entrust Root Certification Authority
|
158 |
+
====================================
|
159 |
+
-----BEGIN CERTIFICATE-----
|
160 |
+
MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV
|
161 |
+
BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw
|
162 |
+
b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG
|
163 |
+
A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0
|
164 |
+
MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
|
165 |
+
MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu
|
166 |
+
Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v
|
167 |
+
dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
168 |
+
ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz
|
169 |
+
A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww
|
170 |
+
Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68
|
171 |
+
j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN
|
172 |
+
rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw
|
173 |
+
DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1
|
174 |
+
MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH
|
175 |
+
hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
|
176 |
+
A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM
|
177 |
+
Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa
|
178 |
+
v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS
|
179 |
+
W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
|
180 |
+
tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
|
181 |
+
-----END CERTIFICATE-----
|
182 |
+
|
183 |
+
GeoTrust Global CA
|
184 |
+
==================
|
185 |
+
-----BEGIN CERTIFICATE-----
|
186 |
+
MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
|
187 |
+
Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw
|
188 |
+
MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
|
189 |
+
LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
190 |
+
CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo
|
191 |
+
BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet
|
192 |
+
8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc
|
193 |
+
T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU
|
194 |
+
vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD
|
195 |
+
AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk
|
196 |
+
DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q
|
197 |
+
zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4
|
198 |
+
d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2
|
199 |
+
mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p
|
200 |
+
XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
|
201 |
+
Mw==
|
202 |
+
-----END CERTIFICATE-----
|
203 |
+
|
204 |
+
GeoTrust Universal CA
|
205 |
+
=====================
|
206 |
+
-----BEGIN CERTIFICATE-----
|
207 |
+
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
|
231 |
+
P/rmMuGNG2+k5o7Y+SlIis5z/iw=
|
232 |
+
-----END CERTIFICATE-----
|
233 |
+
|
234 |
+
GeoTrust Universal CA 2
|
235 |
+
=======================
|
236 |
+
-----BEGIN CERTIFICATE-----
|
237 |
+
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
|
261 |
+
X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
|
262 |
+
-----END CERTIFICATE-----
|
263 |
+
|
264 |
+
Visa eCommerce Root
|
265 |
+
===================
|
266 |
+
-----BEGIN CERTIFICATE-----
|
267 |
+
MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG
|
268 |
+
EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug
|
269 |
+
QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2
|
270 |
+
WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm
|
271 |
+
VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
|
272 |
+
bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL
|
273 |
+
F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b
|
274 |
+
RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0
|
275 |
+
TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI
|
276 |
+
/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs
|
277 |
+
GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG
|
278 |
+
MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc
|
279 |
+
CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW
|
280 |
+
YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz
|
281 |
+
zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu
|
282 |
+
YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
|
283 |
+
398znM/jra6O1I7mT1GvFpLgXPYHDw==
|
284 |
+
-----END CERTIFICATE-----
|
285 |
+
|
286 |
+
Certum Root CA
|
287 |
+
==============
|
288 |
+
-----BEGIN CERTIFICATE-----
|
289 |
+
MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK
|
290 |
+
ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla
|
291 |
+
Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u
|
292 |
+
by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x
|
293 |
+
wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL
|
294 |
+
kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ
|
295 |
+
89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K
|
296 |
+
Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P
|
297 |
+
NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
|
298 |
+
hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+
|
299 |
+
GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg
|
300 |
+
GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/
|
301 |
+
0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS
|
302 |
+
qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw==
|
303 |
+
-----END CERTIFICATE-----
|
304 |
+
|
305 |
+
Comodo AAA Services root
|
306 |
+
========================
|
307 |
+
-----BEGIN CERTIFICATE-----
|
308 |
+
MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
|
309 |
+
R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
|
310 |
+
TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw
|
311 |
+
MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
|
312 |
+
c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
|
313 |
+
BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
314 |
+
ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG
|
315 |
+
C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs
|
316 |
+
i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW
|
317 |
+
Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH
|
318 |
+
Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK
|
319 |
+
Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f
|
320 |
+
BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl
|
321 |
+
cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
|
322 |
+
LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
|
323 |
+
7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
|
324 |
+
Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
|
325 |
+
8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C
|
326 |
+
12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
|
327 |
+
-----END CERTIFICATE-----
|
328 |
+
|
329 |
+
QuoVadis Root CA
|
330 |
+
================
|
331 |
+
-----BEGIN CERTIFICATE-----
|
332 |
+
MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE
|
333 |
+
ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
|
334 |
+
eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz
|
335 |
+
MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp
|
336 |
+
cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD
|
337 |
+
EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
|
338 |
+
AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk
|
339 |
+
J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL
|
340 |
+
F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL
|
341 |
+
YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen
|
342 |
+
AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w
|
343 |
+
PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y
|
344 |
+
ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7
|
345 |
+
MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj
|
346 |
+
YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
|
347 |
+
ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
|
348 |
+
Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW
|
349 |
+
Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu
|
350 |
+
BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw
|
351 |
+
FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
|
352 |
+
aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6
|
353 |
+
tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo
|
354 |
+
fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul
|
355 |
+
LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x
|
356 |
+
gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi
|
357 |
+
5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi
|
358 |
+
5nrQNiOKSnQ2+Q==
|
359 |
+
-----END CERTIFICATE-----
|
360 |
+
|
361 |
+
QuoVadis Root CA 2
|
362 |
+
==================
|
363 |
+
-----BEGIN CERTIFICATE-----
|
364 |
+
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
|
390 |
+
-----END CERTIFICATE-----
|
391 |
+
|
392 |
+
QuoVadis Root CA 3
|
393 |
+
==================
|
394 |
+
-----BEGIN CERTIFICATE-----
|
395 |
+
MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
|
396 |
+
EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx
|
397 |
+
OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
|
398 |
+
aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
|
399 |
+
DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg
|
400 |
+
DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij
|
401 |
+
KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K
|
402 |
+
DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv
|
403 |
+
BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp
|
404 |
+
p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8
|
405 |
+
nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX
|
406 |
+
MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM
|
407 |
+
Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz
|
408 |
+
uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT
|
409 |
+
BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj
|
410 |
+
YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
|
411 |
+
aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB
|
412 |
+
BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD
|
413 |
+
VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4
|
414 |
+
ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE
|
415 |
+
AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV
|
416 |
+
qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s
|
417 |
+
hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z
|
418 |
+
POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2
|
419 |
+
Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp
|
420 |
+
8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC
|
421 |
+
bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu
|
422 |
+
g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p
|
423 |
+
vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr
|
424 |
+
qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
|
425 |
+
-----END CERTIFICATE-----
|
426 |
+
|
427 |
+
Security Communication Root CA
|
428 |
+
==============================
|
429 |
+
-----BEGIN CERTIFICATE-----
|
430 |
+
MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
|
431 |
+
U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
|
432 |
+
HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
|
433 |
+
U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
|
434 |
+
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
|
435 |
+
8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
|
436 |
+
DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
|
437 |
+
5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
|
438 |
+
DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
|
439 |
+
JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
|
440 |
+
DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
|
441 |
+
0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
|
442 |
+
mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
|
443 |
+
s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
|
444 |
+
6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
|
445 |
+
FL39vmwLAw==
|
446 |
+
-----END CERTIFICATE-----
|
447 |
+
|
448 |
+
Sonera Class 2 Root CA
|
449 |
+
======================
|
450 |
+
-----BEGIN CERTIFICATE-----
|
451 |
+
MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
|
452 |
+
U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw
|
453 |
+
NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
|
454 |
+
IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3
|
455 |
+
/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT
|
456 |
+
dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG
|
457 |
+
f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P
|
458 |
+
tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH
|
459 |
+
nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT
|
460 |
+
XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt
|
461 |
+
0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI
|
462 |
+
cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph
|
463 |
+
Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx
|
464 |
+
EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
|
465 |
+
llpwrN9M
|
466 |
+
-----END CERTIFICATE-----
|
467 |
+
|
468 |
+
Camerfirma Chambers of Commerce Root
|
469 |
+
====================================
|
470 |
+
-----BEGIN CERTIFICATE-----
|
471 |
+
MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
|
472 |
+
QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
|
473 |
+
ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx
|
474 |
+
NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp
|
475 |
+
cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn
|
476 |
+
MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC
|
477 |
+
AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU
|
478 |
+
xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH
|
479 |
+
NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW
|
480 |
+
DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV
|
481 |
+
d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud
|
482 |
+
EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v
|
483 |
+
cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P
|
484 |
+
AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh
|
485 |
+
bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD
|
486 |
+
VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
|
487 |
+
aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi
|
488 |
+
fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD
|
489 |
+
L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN
|
490 |
+
UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n
|
491 |
+
ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1
|
492 |
+
erfutGWaIZDgqtCYvDi1czyL+Nw=
|
493 |
+
-----END CERTIFICATE-----
|
494 |
+
|
495 |
+
Camerfirma Global Chambersign Root
|
496 |
+
==================================
|
497 |
+
-----BEGIN CERTIFICATE-----
|
498 |
+
MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
|
499 |
+
QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
|
500 |
+
ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx
|
501 |
+
NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt
|
502 |
+
YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg
|
503 |
+
MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw
|
504 |
+
ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J
|
505 |
+
1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O
|
506 |
+
by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl
|
507 |
+
6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c
|
508 |
+
8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/
|
509 |
+
BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j
|
510 |
+
aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B
|
511 |
+
Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj
|
512 |
+
aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y
|
513 |
+
ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
|
514 |
+
bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA
|
515 |
+
PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y
|
516 |
+
gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ
|
517 |
+
PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4
|
518 |
+
IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
|
519 |
+
t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
|
520 |
+
-----END CERTIFICATE-----
|
521 |
+
|
522 |
+
XRamp Global CA Root
|
523 |
+
====================
|
524 |
+
-----BEGIN CERTIFICATE-----
|
525 |
+
MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE
|
526 |
+
BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj
|
527 |
+
dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
|
528 |
+
dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx
|
529 |
+
HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg
|
530 |
+
U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
|
531 |
+
dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu
|
532 |
+
IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx
|
533 |
+
foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE
|
534 |
+
zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs
|
535 |
+
AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry
|
536 |
+
xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
|
537 |
+
EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap
|
538 |
+
oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC
|
539 |
+
AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc
|
540 |
+
/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
|
541 |
+
qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n
|
542 |
+
nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz
|
543 |
+
8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw=
|
544 |
+
-----END CERTIFICATE-----
|
545 |
+
|
546 |
+
Go Daddy Class 2 CA
|
547 |
+
===================
|
548 |
+
-----BEGIN CERTIFICATE-----
|
549 |
+
MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY
|
550 |
+
VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp
|
551 |
+
ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG
|
552 |
+
A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
|
553 |
+
RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD
|
554 |
+
ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
|
555 |
+
2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32
|
556 |
+
qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j
|
557 |
+
YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY
|
558 |
+
vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O
|
559 |
+
BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o
|
560 |
+
atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu
|
561 |
+
MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG
|
562 |
+
A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim
|
563 |
+
PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt
|
564 |
+
I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
|
565 |
+
HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI
|
566 |
+
Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b
|
567 |
+
vZ8=
|
568 |
+
-----END CERTIFICATE-----
|
569 |
+
|
570 |
+
Starfield Class 2 CA
|
571 |
+
====================
|
572 |
+
-----BEGIN CERTIFICATE-----
|
573 |
+
MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc
|
574 |
+
U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg
|
575 |
+
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo
|
576 |
+
MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG
|
577 |
+
A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG
|
578 |
+
SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY
|
579 |
+
bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ
|
580 |
+
JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm
|
581 |
+
epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN
|
582 |
+
F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF
|
583 |
+
MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f
|
584 |
+
hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo
|
585 |
+
bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g
|
586 |
+
QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs
|
587 |
+
afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM
|
588 |
+
PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
|
589 |
+
xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD
|
590 |
+
KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
|
591 |
+
QBFGmh95DmK/D5fs4C8fF5Q=
|
592 |
+
-----END CERTIFICATE-----
|
593 |
+
|
594 |
+
StartCom Certification Authority
|
595 |
+
================================
|
596 |
+
-----BEGIN CERTIFICATE-----
|
597 |
+
MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
|
598 |
+
U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
|
599 |
+
ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
|
600 |
+
NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
|
601 |
+
LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
|
602 |
+
U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
|
603 |
+
ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
|
604 |
+
o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
|
605 |
+
Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
|
606 |
+
eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
|
607 |
+
2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
|
608 |
+
6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
|
609 |
+
osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
|
610 |
+
untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
|
611 |
+
UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
|
612 |
+
37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
|
613 |
+
FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0
|
614 |
+
Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj
|
615 |
+
YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH
|
616 |
+
AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw
|
617 |
+
Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg
|
618 |
+
U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5
|
619 |
+
LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl
|
620 |
+
cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh
|
621 |
+
cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT
|
622 |
+
dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC
|
623 |
+
AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh
|
624 |
+
3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm
|
625 |
+
vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk
|
626 |
+
fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3
|
627 |
+
fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ
|
628 |
+
EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
|
629 |
+
yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl
|
630 |
+
1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/
|
631 |
+
lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro
|
632 |
+
g14=
|
633 |
+
-----END CERTIFICATE-----
|
634 |
+
|
635 |
+
Taiwan GRCA
|
636 |
+
===========
|
637 |
+
-----BEGIN CERTIFICATE-----
|
638 |
+
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
|
663 |
+
-----END CERTIFICATE-----
|
664 |
+
|
665 |
+
DigiCert Assured ID Root CA
|
666 |
+
===========================
|
667 |
+
-----BEGIN CERTIFICATE-----
|
668 |
+
MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG
|
669 |
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
|
670 |
+
IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx
|
671 |
+
MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
|
672 |
+
ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew
|
673 |
+
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO
|
674 |
+
9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy
|
675 |
+
UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW
|
676 |
+
/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy
|
677 |
+
oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
|
678 |
+
GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF
|
679 |
+
66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
|
680 |
+
hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc
|
681 |
+
EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn
|
682 |
+
SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
|
683 |
+
8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
|
684 |
+
+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
|
685 |
+
-----END CERTIFICATE-----
|
686 |
+
|
687 |
+
DigiCert Global Root CA
|
688 |
+
=======================
|
689 |
+
-----BEGIN CERTIFICATE-----
|
690 |
+
MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG
|
691 |
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
|
692 |
+
HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw
|
693 |
+
MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
|
694 |
+
dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq
|
695 |
+
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn
|
696 |
+
TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5
|
697 |
+
BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H
|
698 |
+
4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y
|
699 |
+
7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB
|
700 |
+
o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm
|
701 |
+
8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF
|
702 |
+
BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr
|
703 |
+
EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt
|
704 |
+
tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
|
705 |
+
UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
|
706 |
+
CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
|
707 |
+
-----END CERTIFICATE-----
|
708 |
+
|
709 |
+
DigiCert High Assurance EV Root CA
|
710 |
+
==================================
|
711 |
+
-----BEGIN CERTIFICATE-----
|
712 |
+
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
|
713 |
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
|
714 |
+
KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
|
715 |
+
MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
|
716 |
+
MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
|
717 |
+
Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
|
718 |
+
Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
|
719 |
+
OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
|
720 |
+
MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
|
721 |
+
NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
|
722 |
+
h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
|
723 |
+
Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
|
724 |
+
JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
|
725 |
+
V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
|
726 |
+
myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
|
727 |
+
mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
|
728 |
+
vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
|
729 |
+
-----END CERTIFICATE-----
|
730 |
+
|
731 |
+
Certplus Class 2 Primary CA
|
732 |
+
===========================
|
733 |
+
-----BEGIN CERTIFICATE-----
|
734 |
+
MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
|
735 |
+
BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
|
736 |
+
OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
|
737 |
+
dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
738 |
+
ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
|
739 |
+
5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
|
740 |
+
Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
|
741 |
+
YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
|
742 |
+
e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
|
743 |
+
CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
|
744 |
+
YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
|
745 |
+
L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
|
746 |
+
P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
|
747 |
+
TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
|
748 |
+
7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
|
749 |
+
//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
|
750 |
+
l7+ijrRU
|
751 |
+
-----END CERTIFICATE-----
|
752 |
+
|
753 |
+
DST Root CA X3
|
754 |
+
==============
|
755 |
+
-----BEGIN CERTIFICATE-----
|
756 |
+
MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK
|
757 |
+
ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X
|
758 |
+
DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1
|
759 |
+
cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD
|
760 |
+
ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT
|
761 |
+
rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9
|
762 |
+
UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy
|
763 |
+
xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d
|
764 |
+
utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T
|
765 |
+
AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ
|
766 |
+
MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug
|
767 |
+
dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE
|
768 |
+
GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw
|
769 |
+
RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
|
770 |
+
fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
|
771 |
+
-----END CERTIFICATE-----
|
772 |
+
|
773 |
+
DST ACES CA X6
|
774 |
+
==============
|
775 |
+
-----BEGIN CERTIFICATE-----
|
776 |
+
MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG
|
777 |
+
EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT
|
778 |
+
MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha
|
779 |
+
MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE
|
780 |
+
CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC
|
781 |
+
AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI
|
782 |
+
DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa
|
783 |
+
pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow
|
784 |
+
GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy
|
785 |
+
MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud
|
786 |
+
EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu
|
787 |
+
Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy
|
788 |
+
dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU
|
789 |
+
CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2
|
790 |
+
5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t
|
791 |
+
Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
|
792 |
+
nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs
|
793 |
+
vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
|
794 |
+
oKfN5XozNmr6mis=
|
795 |
+
-----END CERTIFICATE-----
|
796 |
+
|
797 |
+
SwissSign Gold CA - G2
|
798 |
+
======================
|
799 |
+
-----BEGIN CERTIFICATE-----
|
800 |
+
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
|
826 |
+
-----END CERTIFICATE-----
|
827 |
+
|
828 |
+
SwissSign Silver CA - G2
|
829 |
+
========================
|
830 |
+
-----BEGIN CERTIFICATE-----
|
831 |
+
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
|
857 |
+
-----END CERTIFICATE-----
|
858 |
+
|
859 |
+
GeoTrust Primary Certification Authority
|
860 |
+
========================================
|
861 |
+
-----BEGIN CERTIFICATE-----
|
862 |
+
MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG
|
863 |
+
EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD
|
864 |
+
ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx
|
865 |
+
CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ
|
866 |
+
cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
867 |
+
CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN
|
868 |
+
b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9
|
869 |
+
nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge
|
870 |
+
RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt
|
871 |
+
tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
|
872 |
+
AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI
|
873 |
+
hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K
|
874 |
+
Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN
|
875 |
+
NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa
|
876 |
+
Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
|
877 |
+
1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
|
878 |
+
-----END CERTIFICATE-----
|
879 |
+
|
880 |
+
thawte Primary Root CA
|
881 |
+
======================
|
882 |
+
-----BEGIN CERTIFICATE-----
|
883 |
+
MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE
|
884 |
+
BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
|
885 |
+
aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
|
886 |
+
cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3
|
887 |
+
MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
|
888 |
+
SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv
|
889 |
+
KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT
|
890 |
+
FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs
|
891 |
+
oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ
|
892 |
+
1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc
|
893 |
+
q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K
|
894 |
+
aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p
|
895 |
+
afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
|
896 |
+
VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF
|
897 |
+
AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
|
898 |
+
uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
|
899 |
+
xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89
|
900 |
+
jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH
|
901 |
+
z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
|
902 |
+
-----END CERTIFICATE-----
|
903 |
+
|
904 |
+
VeriSign Class 3 Public Primary Certification Authority - G5
|
905 |
+
============================================================
|
906 |
+
-----BEGIN CERTIFICATE-----
|
907 |
+
MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
|
908 |
+
BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
|
909 |
+
ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
|
910 |
+
IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
|
911 |
+
ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
|
912 |
+
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
|
913 |
+
biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
|
914 |
+
dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
|
915 |
+
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
916 |
+
ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
|
917 |
+
j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
|
918 |
+
Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
|
919 |
+
Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
|
920 |
+
fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
|
921 |
+
BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
|
922 |
+
Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
|
923 |
+
aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
|
924 |
+
SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
|
925 |
+
X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
|
926 |
+
KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
|
927 |
+
Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
|
928 |
+
ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
|
929 |
+
-----END CERTIFICATE-----
|
930 |
+
|
931 |
+
SecureTrust CA
|
932 |
+
==============
|
933 |
+
-----BEGIN CERTIFICATE-----
|
934 |
+
MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG
|
935 |
+
EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy
|
936 |
+
dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe
|
937 |
+
BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC
|
938 |
+
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX
|
939 |
+
OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t
|
940 |
+
DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH
|
941 |
+
GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b
|
942 |
+
01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH
|
943 |
+
ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/
|
944 |
+
BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj
|
945 |
+
aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
|
946 |
+
KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu
|
947 |
+
SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf
|
948 |
+
mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ
|
949 |
+
nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
|
950 |
+
3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
|
951 |
+
-----END CERTIFICATE-----
|
952 |
+
|
953 |
+
Secure Global CA
|
954 |
+
================
|
955 |
+
-----BEGIN CERTIFICATE-----
|
956 |
+
MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG
|
957 |
+
EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH
|
958 |
+
bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg
|
959 |
+
MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg
|
960 |
+
Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx
|
961 |
+
YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ
|
962 |
+
bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g
|
963 |
+
8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV
|
964 |
+
HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi
|
965 |
+
0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
|
966 |
+
EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn
|
967 |
+
oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA
|
968 |
+
MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+
|
969 |
+
OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn
|
970 |
+
CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5
|
971 |
+
3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
|
972 |
+
f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
|
973 |
+
-----END CERTIFICATE-----
|
974 |
+
|
975 |
+
COMODO Certification Authority
|
976 |
+
==============================
|
977 |
+
-----BEGIN CERTIFICATE-----
|
978 |
+
MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE
|
979 |
+
BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
|
980 |
+
A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1
|
981 |
+
dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb
|
982 |
+
MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
|
983 |
+
T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
|
984 |
+
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH
|
985 |
+
+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww
|
986 |
+
xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV
|
987 |
+
4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA
|
988 |
+
1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI
|
989 |
+
rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E
|
990 |
+
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k
|
991 |
+
b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC
|
992 |
+
AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP
|
993 |
+
OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
|
994 |
+
RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc
|
995 |
+
IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
|
996 |
+
+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
|
997 |
+
-----END CERTIFICATE-----
|
998 |
+
|
999 |
+
Network Solutions Certificate Authority
|
1000 |
+
=======================================
|
1001 |
+
-----BEGIN CERTIFICATE-----
|
1002 |
+
MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
|
1003 |
+
EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
|
1004 |
+
IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
|
1005 |
+
MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
|
1006 |
+
MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
|
1007 |
+
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
|
1008 |
+
jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
|
1009 |
+
aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
|
1010 |
+
crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
|
1011 |
+
/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
|
1012 |
+
AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
|
1013 |
+
BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
|
1014 |
+
bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
|
1015 |
+
A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
|
1016 |
+
4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
|
1017 |
+
GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
|
1018 |
+
wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
|
1019 |
+
ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
|
1020 |
+
-----END CERTIFICATE-----
|
1021 |
+
|
1022 |
+
COMODO ECC Certification Authority
|
1023 |
+
==================================
|
1024 |
+
-----BEGIN CERTIFICATE-----
|
1025 |
+
MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC
|
1026 |
+
R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
|
1027 |
+
ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB
|
1028 |
+
dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix
|
1029 |
+
GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
|
1030 |
+
Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo
|
1031 |
+
b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X
|
1032 |
+
4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni
|
1033 |
+
wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E
|
1034 |
+
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG
|
1035 |
+
FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
|
1036 |
+
U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
|
1037 |
+
-----END CERTIFICATE-----
|
1038 |
+
|
1039 |
+
Security Communication EV RootCA1
|
1040 |
+
=================================
|
1041 |
+
-----BEGIN CERTIFICATE-----
|
1042 |
+
MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
|
1043 |
+
U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh
|
1044 |
+
dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE
|
1045 |
+
BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl
|
1046 |
+
Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
|
1047 |
+
AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO
|
1048 |
+
/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX
|
1049 |
+
WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z
|
1050 |
+
ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4
|
1051 |
+
bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK
|
1052 |
+
9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
|
1053 |
+
SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm
|
1054 |
+
iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG
|
1055 |
+
Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW
|
1056 |
+
mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW
|
1057 |
+
T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
|
1058 |
+
-----END CERTIFICATE-----
|
1059 |
+
|
1060 |
+
OISTE WISeKey Global Root GA CA
|
1061 |
+
===============================
|
1062 |
+
-----BEGIN CERTIFICATE-----
|
1063 |
+
MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE
|
1064 |
+
BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG
|
1065 |
+
A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH
|
1066 |
+
bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD
|
1067 |
+
VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw
|
1068 |
+
IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5
|
1069 |
+
IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9
|
1070 |
+
Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg
|
1071 |
+
Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD
|
1072 |
+
d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ
|
1073 |
+
/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R
|
1074 |
+
LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
|
1075 |
+
AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
|
1076 |
+
KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm
|
1077 |
+
MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4
|
1078 |
+
+vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
|
1079 |
+
hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY
|
1080 |
+
okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
|
1081 |
+
-----END CERTIFICATE-----
|
1082 |
+
|
1083 |
+
Certigna
|
1084 |
+
========
|
1085 |
+
-----BEGIN CERTIFICATE-----
|
1086 |
+
MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw
|
1087 |
+
EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3
|
1088 |
+
MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI
|
1089 |
+
Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q
|
1090 |
+
XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH
|
1091 |
+
GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p
|
1092 |
+
ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg
|
1093 |
+
DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf
|
1094 |
+
Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ
|
1095 |
+
tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ
|
1096 |
+
BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J
|
1097 |
+
SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA
|
1098 |
+
hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+
|
1099 |
+
ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu
|
1100 |
+
PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
|
1101 |
+
1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
|
1102 |
+
WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
|
1103 |
+
-----END CERTIFICATE-----
|
1104 |
+
|
1105 |
+
Deutsche Telekom Root CA 2
|
1106 |
+
==========================
|
1107 |
+
-----BEGIN CERTIFICATE-----
|
1108 |
+
MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT
|
1109 |
+
RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG
|
1110 |
+
A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5
|
1111 |
+
MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G
|
1112 |
+
A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS
|
1113 |
+
b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5
|
1114 |
+
bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI
|
1115 |
+
KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY
|
1116 |
+
AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK
|
1117 |
+
Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV
|
1118 |
+
jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV
|
1119 |
+
HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr
|
1120 |
+
E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy
|
1121 |
+
zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8
|
1122 |
+
rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G
|
1123 |
+
dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
|
1124 |
+
Cm26OWMohpLzGITY+9HPBVZkVw==
|
1125 |
+
-----END CERTIFICATE-----
|
1126 |
+
|
1127 |
+
Cybertrust Global Root
|
1128 |
+
======================
|
1129 |
+
-----BEGIN CERTIFICATE-----
|
1130 |
+
MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li
|
1131 |
+
ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4
|
1132 |
+
MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD
|
1133 |
+
ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
|
1134 |
+
+Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW
|
1135 |
+
0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL
|
1136 |
+
AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin
|
1137 |
+
89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT
|
1138 |
+
8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP
|
1139 |
+
BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2
|
1140 |
+
MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G
|
1141 |
+
A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO
|
1142 |
+
lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi
|
1143 |
+
5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2
|
1144 |
+
hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T
|
1145 |
+
X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
|
1146 |
+
WL1WMRJOEcgh4LMRkWXbtKaIOM5V
|
1147 |
+
-----END CERTIFICATE-----
|
1148 |
+
|
1149 |
+
ePKI Root Certification Authority
|
1150 |
+
=================================
|
1151 |
+
-----BEGIN CERTIFICATE-----
|
1152 |
+
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
|
1178 |
+
-----END CERTIFICATE-----
|
1179 |
+
|
1180 |
+
T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3
|
1181 |
+
=============================================================================================================================
|
1182 |
+
-----BEGIN CERTIFICATE-----
|
1183 |
+
MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH
|
1184 |
+
DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q
|
1185 |
+
aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry
|
1186 |
+
b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV
|
1187 |
+
BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg
|
1188 |
+
S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4
|
1189 |
+
MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl
|
1190 |
+
IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF
|
1191 |
+
n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl
|
1192 |
+
IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft
|
1193 |
+
dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl
|
1194 |
+
cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B
|
1195 |
+
AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO
|
1196 |
+
Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1
|
1197 |
+
xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR
|
1198 |
+
6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
|
1199 |
+
hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd
|
1200 |
+
BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
|
1201 |
+
MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4
|
1202 |
+
N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT
|
1203 |
+
y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh
|
1204 |
+
LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M
|
1205 |
+
dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
|
1206 |
+
-----END CERTIFICATE-----
|
1207 |
+
|
1208 |
+
certSIGN ROOT CA
|
1209 |
+
================
|
1210 |
+
-----BEGIN CERTIFICATE-----
|
1211 |
+
MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD
|
1212 |
+
VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa
|
1213 |
+
Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE
|
1214 |
+
CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I
|
1215 |
+
JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH
|
1216 |
+
rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2
|
1217 |
+
ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD
|
1218 |
+
0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943
|
1219 |
+
AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
|
1220 |
+
Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB
|
1221 |
+
AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8
|
1222 |
+
SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0
|
1223 |
+
x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt
|
1224 |
+
vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
|
1225 |
+
TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
|
1226 |
+
-----END CERTIFICATE-----
|
1227 |
+
|
1228 |
+
GeoTrust Primary Certification Authority - G3
|
1229 |
+
=============================================
|
1230 |
+
-----BEGIN CERTIFICATE-----
|
1231 |
+
MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE
|
1232 |
+
BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0
|
1233 |
+
IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy
|
1234 |
+
eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz
|
1235 |
+
NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo
|
1236 |
+
YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT
|
1237 |
+
LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
|
1238 |
+
hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j
|
1239 |
+
K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE
|
1240 |
+
c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C
|
1241 |
+
IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu
|
1242 |
+
dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC
|
1243 |
+
MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr
|
1244 |
+
2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9
|
1245 |
+
cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE
|
1246 |
+
Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
|
1247 |
+
AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s
|
1248 |
+
t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt
|
1249 |
+
-----END CERTIFICATE-----
|
1250 |
+
|
1251 |
+
thawte Primary Root CA - G2
|
1252 |
+
===========================
|
1253 |
+
-----BEGIN CERTIFICATE-----
|
1254 |
+
MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC
|
1255 |
+
VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu
|
1256 |
+
IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg
|
1257 |
+
Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV
|
1258 |
+
MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG
|
1259 |
+
b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt
|
1260 |
+
IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS
|
1261 |
+
LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5
|
1262 |
+
8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
|
1263 |
+
mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN
|
1264 |
+
G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K
|
1265 |
+
rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
|
1266 |
+
-----END CERTIFICATE-----
|
1267 |
+
|
1268 |
+
thawte Primary Root CA - G3
|
1269 |
+
===========================
|
1270 |
+
-----BEGIN CERTIFICATE-----
|
1271 |
+
MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE
|
1272 |
+
BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
|
1273 |
+
aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
|
1274 |
+
cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w
|
1275 |
+
ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
|
1276 |
+
d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD
|
1277 |
+
VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG
|
1278 |
+
A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
1279 |
+
MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At
|
1280 |
+
P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC
|
1281 |
+
+BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY
|
1282 |
+
7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW
|
1283 |
+
vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E
|
1284 |
+
BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ
|
1285 |
+
KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK
|
1286 |
+
A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
|
1287 |
+
t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC
|
1288 |
+
8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm
|
1289 |
+
er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A=
|
1290 |
+
-----END CERTIFICATE-----
|
1291 |
+
|
1292 |
+
GeoTrust Primary Certification Authority - G2
|
1293 |
+
=============================================
|
1294 |
+
-----BEGIN CERTIFICATE-----
|
1295 |
+
MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC
|
1296 |
+
VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu
|
1297 |
+
Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD
|
1298 |
+
ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1
|
1299 |
+
OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
|
1300 |
+
MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl
|
1301 |
+
b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG
|
1302 |
+
BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc
|
1303 |
+
KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD
|
1304 |
+
VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+
|
1305 |
+
EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m
|
1306 |
+
ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2
|
1307 |
+
npaqBA+K
|
1308 |
+
-----END CERTIFICATE-----
|
1309 |
+
|
1310 |
+
VeriSign Universal Root Certification Authority
|
1311 |
+
===============================================
|
1312 |
+
-----BEGIN CERTIFICATE-----
|
1313 |
+
MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE
|
1314 |
+
BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
|
1315 |
+
ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
|
1316 |
+
IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u
|
1317 |
+
IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV
|
1318 |
+
UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
|
1319 |
+
cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
1320 |
+
IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0
|
1321 |
+
aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj
|
1322 |
+
1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP
|
1323 |
+
MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72
|
1324 |
+
9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I
|
1325 |
+
AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR
|
1326 |
+
tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G
|
1327 |
+
CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O
|
1328 |
+
a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
|
1329 |
+
DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3
|
1330 |
+
Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx
|
1331 |
+
Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx
|
1332 |
+
P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P
|
1333 |
+
wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
|
1334 |
+
mJO37M2CYfE45k+XmCpajQ==
|
1335 |
+
-----END CERTIFICATE-----
|
1336 |
+
|
1337 |
+
VeriSign Class 3 Public Primary Certification Authority - G4
|
1338 |
+
============================================================
|
1339 |
+
-----BEGIN CERTIFICATE-----
|
1340 |
+
MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC
|
1341 |
+
VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3
|
1342 |
+
b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz
|
1343 |
+
ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj
|
1344 |
+
YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL
|
1345 |
+
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
|
1346 |
+
cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo
|
1347 |
+
b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5
|
1348 |
+
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8
|
1349 |
+
Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz
|
1350 |
+
rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB
|
1351 |
+
/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw
|
1352 |
+
HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u
|
1353 |
+
Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD
|
1354 |
+
A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx
|
1355 |
+
AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
|
1356 |
+
-----END CERTIFICATE-----
|
1357 |
+
|
1358 |
+
NetLock Arany (Class Gold) FÅ‘tanúsÃtvány
|
1359 |
+
========================================
|
1360 |
+
-----BEGIN CERTIFICATE-----
|
1361 |
+
MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
|
1362 |
+
A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
|
1363 |
+
dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB
|
1364 |
+
cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx
|
1365 |
+
MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO
|
1366 |
+
ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv
|
1367 |
+
biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6
|
1368 |
+
c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu
|
1369 |
+
0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw
|
1370 |
+
/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk
|
1371 |
+
H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw
|
1372 |
+
fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1
|
1373 |
+
neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB
|
1374 |
+
BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW
|
1375 |
+
qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta
|
1376 |
+
YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
|
1377 |
+
bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna
|
1378 |
+
NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
|
1379 |
+
dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
|
1380 |
+
-----END CERTIFICATE-----
|
1381 |
+
|
1382 |
+
Staat der Nederlanden Root CA - G2
|
1383 |
+
==================================
|
1384 |
+
-----BEGIN CERTIFICATE-----
|
1385 |
+
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
|
1411 |
+
66+KAQ==
|
1412 |
+
-----END CERTIFICATE-----
|
1413 |
+
|
1414 |
+
Hongkong Post Root CA 1
|
1415 |
+
=======================
|
1416 |
+
-----BEGIN CERTIFICATE-----
|
1417 |
+
MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT
|
1418 |
+
DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx
|
1419 |
+
NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n
|
1420 |
+
IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF
|
1421 |
+
AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1
|
1422 |
+
ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr
|
1423 |
+
auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh
|
1424 |
+
qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY
|
1425 |
+
V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV
|
1426 |
+
HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i
|
1427 |
+
h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio
|
1428 |
+
l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei
|
1429 |
+
IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps
|
1430 |
+
T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT
|
1431 |
+
c4afU9hDDl3WY4JxHYB0yvbiAmvZWg==
|
1432 |
+
-----END CERTIFICATE-----
|
1433 |
+
|
1434 |
+
SecureSign RootCA11
|
1435 |
+
===================
|
1436 |
+
-----BEGIN CERTIFICATE-----
|
1437 |
+
MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi
|
1438 |
+
SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS
|
1439 |
+
b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw
|
1440 |
+
KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1
|
1441 |
+
cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL
|
1442 |
+
TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO
|
1443 |
+
wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq
|
1444 |
+
g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP
|
1445 |
+
O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA
|
1446 |
+
bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX
|
1447 |
+
t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh
|
1448 |
+
OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r
|
1449 |
+
bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ
|
1450 |
+
Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01
|
1451 |
+
y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
|
1452 |
+
lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
|
1453 |
+
-----END CERTIFICATE-----
|
1454 |
+
|
1455 |
+
ACEDICOM Root
|
1456 |
+
=============
|
1457 |
+
-----BEGIN CERTIFICATE-----
|
1458 |
+
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
|
1484 |
+
-----END CERTIFICATE-----
|
1485 |
+
|
1486 |
+
Microsec e-Szigno Root CA 2009
|
1487 |
+
==============================
|
1488 |
+
-----BEGIN CERTIFICATE-----
|
1489 |
+
MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER
|
1490 |
+
MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv
|
1491 |
+
c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
|
1492 |
+
dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE
|
1493 |
+
BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt
|
1494 |
+
U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw
|
1495 |
+
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA
|
1496 |
+
fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG
|
1497 |
+
0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA
|
1498 |
+
pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm
|
1499 |
+
1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC
|
1500 |
+
AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf
|
1501 |
+
QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE
|
1502 |
+
FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o
|
1503 |
+
lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX
|
1504 |
+
I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
|
1505 |
+
tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02
|
1506 |
+
yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi
|
1507 |
+
LXpUq3DDfSJlgnCW
|
1508 |
+
-----END CERTIFICATE-----
|
1509 |
+
|
1510 |
+
GlobalSign Root CA - R3
|
1511 |
+
=======================
|
1512 |
+
-----BEGIN CERTIFICATE-----
|
1513 |
+
MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv
|
1514 |
+
YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
|
1515 |
+
bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
|
1516 |
+
aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
|
1517 |
+
bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt
|
1518 |
+
iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ
|
1519 |
+
0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3
|
1520 |
+
rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl
|
1521 |
+
OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2
|
1522 |
+
xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
|
1523 |
+
FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7
|
1524 |
+
lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8
|
1525 |
+
EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E
|
1526 |
+
bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18
|
1527 |
+
YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r
|
1528 |
+
kpeDMdmztcpHWD9f
|
1529 |
+
-----END CERTIFICATE-----
|
1530 |
+
|
1531 |
+
Autoridad de Certificacion Firmaprofesional CIF A62634068
|
1532 |
+
=========================================================
|
1533 |
+
-----BEGIN CERTIFICATE-----
|
1534 |
+
MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA
|
1535 |
+
BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
|
1536 |
+
MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw
|
1537 |
+
QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB
|
1538 |
+
NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD
|
1539 |
+
Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P
|
1540 |
+
B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY
|
1541 |
+
7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH
|
1542 |
+
ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI
|
1543 |
+
plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX
|
1544 |
+
MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX
|
1545 |
+
LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK
|
1546 |
+
bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU
|
1547 |
+
vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud
|
1548 |
+
EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH
|
1549 |
+
DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
|
1550 |
+
cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA
|
1551 |
+
bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx
|
1552 |
+
ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx
|
1553 |
+
51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk
|
1554 |
+
R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP
|
1555 |
+
T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f
|
1556 |
+
Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl
|
1557 |
+
osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR
|
1558 |
+
crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR
|
1559 |
+
saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD
|
1560 |
+
KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi
|
1561 |
+
6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
|
1562 |
+
-----END CERTIFICATE-----
|
1563 |
+
|
1564 |
+
Izenpe.com
|
1565 |
+
==========
|
1566 |
+
-----BEGIN CERTIFICATE-----
|
1567 |
+
MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG
|
1568 |
+
EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz
|
1569 |
+
MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu
|
1570 |
+
QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ
|
1571 |
+
03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK
|
1572 |
+
ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU
|
1573 |
+
+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC
|
1574 |
+
PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT
|
1575 |
+
OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK
|
1576 |
+
F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK
|
1577 |
+
0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+
|
1578 |
+
0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB
|
1579 |
+
leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID
|
1580 |
+
AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+
|
1581 |
+
SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG
|
1582 |
+
NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx
|
1583 |
+
MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
|
1584 |
+
BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l
|
1585 |
+
Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga
|
1586 |
+
kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q
|
1587 |
+
hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs
|
1588 |
+
g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5
|
1589 |
+
aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5
|
1590 |
+
nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC
|
1591 |
+
ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo
|
1592 |
+
Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z
|
1593 |
+
WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==
|
1594 |
+
-----END CERTIFICATE-----
|
1595 |
+
|
1596 |
+
Chambers of Commerce Root - 2008
|
1597 |
+
================================
|
1598 |
+
-----BEGIN CERTIFICATE-----
|
1599 |
+
MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD
|
1600 |
+
MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
|
1601 |
+
bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
|
1602 |
+
QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy
|
1603 |
+
Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl
|
1604 |
+
ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF
|
1605 |
+
EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl
|
1606 |
+
cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
|
1607 |
+
AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA
|
1608 |
+
XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj
|
1609 |
+
h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/
|
1610 |
+
ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk
|
1611 |
+
NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g
|
1612 |
+
D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331
|
1613 |
+
lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ
|
1614 |
+
0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
|
1615 |
+
ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2
|
1616 |
+
EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI
|
1617 |
+
G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ
|
1618 |
+
BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh
|
1619 |
+
bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh
|
1620 |
+
bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC
|
1621 |
+
CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH
|
1622 |
+
AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1
|
1623 |
+
wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH
|
1624 |
+
3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU
|
1625 |
+
RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6
|
1626 |
+
M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1
|
1627 |
+
YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF
|
1628 |
+
9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK
|
1629 |
+
zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG
|
1630 |
+
nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
|
1631 |
+
OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ
|
1632 |
+
-----END CERTIFICATE-----
|
1633 |
+
|
1634 |
+
Global Chambersign Root - 2008
|
1635 |
+
==============================
|
1636 |
+
-----BEGIN CERTIFICATE-----
|
1637 |
+
MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD
|
1638 |
+
MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
|
1639 |
+
bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
|
1640 |
+
QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx
|
1641 |
+
NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg
|
1642 |
+
Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ
|
1643 |
+
QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
|
1644 |
+
aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf
|
1645 |
+
VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf
|
1646 |
+
XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0
|
1647 |
+
ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB
|
1648 |
+
/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA
|
1649 |
+
TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M
|
1650 |
+
H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe
|
1651 |
+
Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF
|
1652 |
+
HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
|
1653 |
+
wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB
|
1654 |
+
AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT
|
1655 |
+
BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE
|
1656 |
+
BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm
|
1657 |
+
aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm
|
1658 |
+
aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp
|
1659 |
+
1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0
|
1660 |
+
dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG
|
1661 |
+
/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6
|
1662 |
+
ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s
|
1663 |
+
dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg
|
1664 |
+
9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH
|
1665 |
+
foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du
|
1666 |
+
qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr
|
1667 |
+
P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq
|
1668 |
+
c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
|
1669 |
+
09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
|
1670 |
+
-----END CERTIFICATE-----
|
1671 |
+
|
1672 |
+
Go Daddy Root Certificate Authority - G2
|
1673 |
+
========================================
|
1674 |
+
-----BEGIN CERTIFICATE-----
|
1675 |
+
MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
|
1676 |
+
B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu
|
1677 |
+
MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
|
1678 |
+
MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
|
1679 |
+
b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G
|
1680 |
+
A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
|
1681 |
+
hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq
|
1682 |
+
9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD
|
1683 |
+
+qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd
|
1684 |
+
fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl
|
1685 |
+
NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC
|
1686 |
+
MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9
|
1687 |
+
BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac
|
1688 |
+
vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r
|
1689 |
+
5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV
|
1690 |
+
N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
|
1691 |
+
LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1
|
1692 |
+
-----END CERTIFICATE-----
|
1693 |
+
|
1694 |
+
Starfield Root Certificate Authority - G2
|
1695 |
+
=========================================
|
1696 |
+
-----BEGIN CERTIFICATE-----
|
1697 |
+
MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
|
1698 |
+
B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
|
1699 |
+
b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
|
1700 |
+
eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw
|
1701 |
+
DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg
|
1702 |
+
VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB
|
1703 |
+
dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv
|
1704 |
+
W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs
|
1705 |
+
bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk
|
1706 |
+
N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf
|
1707 |
+
ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU
|
1708 |
+
JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
|
1709 |
+
AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol
|
1710 |
+
TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx
|
1711 |
+
4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw
|
1712 |
+
F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
|
1713 |
+
pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ
|
1714 |
+
c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
|
1715 |
+
-----END CERTIFICATE-----
|
1716 |
+
|
1717 |
+
Starfield Services Root Certificate Authority - G2
|
1718 |
+
==================================================
|
1719 |
+
-----BEGIN CERTIFICATE-----
|
1720 |
+
MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
|
1721 |
+
B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
|
1722 |
+
b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl
|
1723 |
+
IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV
|
1724 |
+
BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT
|
1725 |
+
dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg
|
1726 |
+
Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
|
1727 |
+
AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2
|
1728 |
+
h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa
|
1729 |
+
hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP
|
1730 |
+
LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB
|
1731 |
+
rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
|
1732 |
+
AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG
|
1733 |
+
SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP
|
1734 |
+
E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy
|
1735 |
+
xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
|
1736 |
+
iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza
|
1737 |
+
YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6
|
1738 |
+
-----END CERTIFICATE-----
|
1739 |
+
|
1740 |
+
AffirmTrust Commercial
|
1741 |
+
======================
|
1742 |
+
-----BEGIN CERTIFICATE-----
|
1743 |
+
MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS
|
1744 |
+
BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw
|
1745 |
+
MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
|
1746 |
+
bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF
|
1747 |
+
AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb
|
1748 |
+
DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV
|
1749 |
+
C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6
|
1750 |
+
BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww
|
1751 |
+
MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV
|
1752 |
+
HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
|
1753 |
+
AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG
|
1754 |
+
hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi
|
1755 |
+
qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv
|
1756 |
+
0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh
|
1757 |
+
sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
|
1758 |
+
-----END CERTIFICATE-----
|
1759 |
+
|
1760 |
+
AffirmTrust Networking
|
1761 |
+
======================
|
1762 |
+
-----BEGIN CERTIFICATE-----
|
1763 |
+
MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS
|
1764 |
+
BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw
|
1765 |
+
MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
|
1766 |
+
bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF
|
1767 |
+
AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE
|
1768 |
+
Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI
|
1769 |
+
dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24
|
1770 |
+
/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb
|
1771 |
+
h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV
|
1772 |
+
HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
|
1773 |
+
AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu
|
1774 |
+
UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6
|
1775 |
+
12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23
|
1776 |
+
WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9
|
1777 |
+
/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
|
1778 |
+
-----END CERTIFICATE-----
|
1779 |
+
|
1780 |
+
AffirmTrust Premium
|
1781 |
+
===================
|
1782 |
+
-----BEGIN CERTIFICATE-----
|
1783 |
+
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
|
1807 |
+
-----END CERTIFICATE-----
|
1808 |
+
|
1809 |
+
AffirmTrust Premium ECC
|
1810 |
+
=======================
|
1811 |
+
-----BEGIN CERTIFICATE-----
|
1812 |
+
MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV
|
1813 |
+
BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx
|
1814 |
+
MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U
|
1815 |
+
cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA
|
1816 |
+
IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ
|
1817 |
+
N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW
|
1818 |
+
BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK
|
1819 |
+
BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X
|
1820 |
+
57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM
|
1821 |
+
eQ==
|
1822 |
+
-----END CERTIFICATE-----
|
1823 |
+
|
1824 |
+
Certum Trusted Network CA
|
1825 |
+
=========================
|
1826 |
+
-----BEGIN CERTIFICATE-----
|
1827 |
+
MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK
|
1828 |
+
ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv
|
1829 |
+
biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy
|
1830 |
+
MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU
|
1831 |
+
ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
|
1832 |
+
MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
1833 |
+
AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC
|
1834 |
+
l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J
|
1835 |
+
J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4
|
1836 |
+
fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0
|
1837 |
+
cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB
|
1838 |
+
Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw
|
1839 |
+
DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj
|
1840 |
+
jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1
|
1841 |
+
mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj
|
1842 |
+
Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
|
1843 |
+
03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
|
1844 |
+
-----END CERTIFICATE-----
|
1845 |
+
|
1846 |
+
Certinomis - Autorité Racine
|
1847 |
+
============================
|
1848 |
+
-----BEGIN CERTIFICATE-----
|
1849 |
+
MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
|
1850 |
+
Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg
|
1851 |
+
LSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkG
|
1852 |
+
A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYw
|
1853 |
+
JAYDVQQDDB1DZXJ0aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQAD
|
1854 |
+
ggIPADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jYF1AMnmHa
|
1855 |
+
wE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N8y4oH3DfVS9O7cdxbwly
|
1856 |
+
Lu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWerP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw
|
1857 |
+
2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92N
|
1858 |
+
jMD2AR5vpTESOH2VwnHu7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9q
|
1859 |
+
c1pkIuVC28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6lSTC
|
1860 |
+
lrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1Enn1So2+WLhl+HPNb
|
1861 |
+
xxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB0iSVL1N6aaLwD4ZFjliCK0wi1F6g
|
1862 |
+
530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql095gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna
|
1863 |
+
4NH4+ej9Uji29YnfAgMBAAGjWzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
|
1864 |
+
A1UdDgQWBBQNjLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ
|
1865 |
+
KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9sov3/4gbIOZ/x
|
1866 |
+
WqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZMOH8oMDX/nyNTt7buFHAAQCva
|
1867 |
+
R6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40
|
1868 |
+
nJ+U8/aGH88bc62UeYdocMMzpXDn2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1B
|
1869 |
+
CxMjidPJC+iKunqjo3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjv
|
1870 |
+
JL1vnxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG5ERQL1TE
|
1871 |
+
qkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWqpdEdnV1j6CTmNhTih60b
|
1872 |
+
WfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZbdsLLO7XSAPCjDuGtbkD326C00EauFddE
|
1873 |
+
wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/
|
1874 |
+
vgt2Fl43N+bYdJeimUV5
|
1875 |
+
-----END CERTIFICATE-----
|
1876 |
+
|
1877 |
+
TWCA Root Certification Authority
|
1878 |
+
=================================
|
1879 |
+
-----BEGIN CERTIFICATE-----
|
1880 |
+
MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ
|
1881 |
+
VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh
|
1882 |
+
dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG
|
1883 |
+
EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB
|
1884 |
+
IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
|
1885 |
+
AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx
|
1886 |
+
QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC
|
1887 |
+
oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP
|
1888 |
+
4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r
|
1889 |
+
y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
|
1890 |
+
BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG
|
1891 |
+
9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC
|
1892 |
+
mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW
|
1893 |
+
QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY
|
1894 |
+
T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny
|
1895 |
+
Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
|
1896 |
+
-----END CERTIFICATE-----
|
1897 |
+
|
1898 |
+
Security Communication RootCA2
|
1899 |
+
==============================
|
1900 |
+
-----BEGIN CERTIFICATE-----
|
1901 |
+
MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
|
1902 |
+
U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh
|
1903 |
+
dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC
|
1904 |
+
SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy
|
1905 |
+
aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
1906 |
+
ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++
|
1907 |
+
+T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R
|
1908 |
+
3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV
|
1909 |
+
spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K
|
1910 |
+
EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8
|
1911 |
+
QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
|
1912 |
+
CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj
|
1913 |
+
u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk
|
1914 |
+
3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q
|
1915 |
+
tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29
|
1916 |
+
mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
|
1917 |
+
-----END CERTIFICATE-----
|
1918 |
+
|
1919 |
+
EC-ACC
|
1920 |
+
======
|
1921 |
+
-----BEGIN CERTIFICATE-----
|
1922 |
+
MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE
|
1923 |
+
BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w
|
1924 |
+
ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD
|
1925 |
+
VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE
|
1926 |
+
CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT
|
1927 |
+
BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7
|
1928 |
+
MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt
|
1929 |
+
SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl
|
1930 |
+
Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh
|
1931 |
+
cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND
|
1932 |
+
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK
|
1933 |
+
w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT
|
1934 |
+
ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4
|
1935 |
+
HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a
|
1936 |
+
E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw
|
1937 |
+
0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
|
1938 |
+
BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD
|
1939 |
+
VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0
|
1940 |
+
Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l
|
1941 |
+
dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ
|
1942 |
+
lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa
|
1943 |
+
Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe
|
1944 |
+
l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2
|
1945 |
+
E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D
|
1946 |
+
5EI=
|
1947 |
+
-----END CERTIFICATE-----
|
1948 |
+
|
1949 |
+
Hellenic Academic and Research Institutions RootCA 2011
|
1950 |
+
=======================================================
|
1951 |
+
-----BEGIN CERTIFICATE-----
|
1952 |
+
MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT
|
1953 |
+
O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y
|
1954 |
+
aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
|
1955 |
+
IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT
|
1956 |
+
AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
|
1957 |
+
IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo
|
1958 |
+
IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
1959 |
+
AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI
|
1960 |
+
1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa
|
1961 |
+
71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u
|
1962 |
+
8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH
|
1963 |
+
3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/
|
1964 |
+
MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8
|
1965 |
+
MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu
|
1966 |
+
b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt
|
1967 |
+
XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
|
1968 |
+
TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD
|
1969 |
+
/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N
|
1970 |
+
7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4
|
1971 |
+
-----END CERTIFICATE-----
|
1972 |
+
|
1973 |
+
Actalis Authentication Root CA
|
1974 |
+
==============================
|
1975 |
+
-----BEGIN CERTIFICATE-----
|
1976 |
+
MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM
|
1977 |
+
BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE
|
1978 |
+
AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky
|
1979 |
+
MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz
|
1980 |
+
IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
|
1981 |
+
IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ
|
1982 |
+
wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa
|
1983 |
+
by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6
|
1984 |
+
zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f
|
1985 |
+
YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2
|
1986 |
+
oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l
|
1987 |
+
EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7
|
1988 |
+
hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8
|
1989 |
+
EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5
|
1990 |
+
jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY
|
1991 |
+
iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
|
1992 |
+
ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI
|
1993 |
+
WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0
|
1994 |
+
JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx
|
1995 |
+
K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+
|
1996 |
+
Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC
|
1997 |
+
4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo
|
1998 |
+
2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz
|
1999 |
+
lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem
|
2000 |
+
OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9
|
2001 |
+
vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
|
2002 |
+
-----END CERTIFICATE-----
|
2003 |
+
|
2004 |
+
Trustis FPS Root CA
|
2005 |
+
===================
|
2006 |
+
-----BEGIN CERTIFICATE-----
|
2007 |
+
MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG
|
2008 |
+
EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290
|
2009 |
+
IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV
|
2010 |
+
BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ
|
2011 |
+
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ
|
2012 |
+
RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk
|
2013 |
+
H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa
|
2014 |
+
cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt
|
2015 |
+
o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA
|
2016 |
+
AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd
|
2017 |
+
BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c
|
2018 |
+
GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC
|
2019 |
+
yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P
|
2020 |
+
8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV
|
2021 |
+
l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl
|
2022 |
+
iB6XzCGcKQENZetX2fNXlrtIzYE=
|
2023 |
+
-----END CERTIFICATE-----
|
2024 |
+
|
2025 |
+
StartCom Certification Authority
|
2026 |
+
================================
|
2027 |
+
-----BEGIN CERTIFICATE-----
|
2028 |
+
MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
|
2029 |
+
U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
|
2030 |
+
ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
|
2031 |
+
NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
|
2032 |
+
LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
|
2033 |
+
U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
|
2034 |
+
ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
|
2035 |
+
o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
|
2036 |
+
Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
|
2037 |
+
eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
|
2038 |
+
2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
|
2039 |
+
6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
|
2040 |
+
osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
|
2041 |
+
untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
|
2042 |
+
UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
|
2043 |
+
37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
|
2044 |
+
VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ
|
2045 |
+
Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0
|
2046 |
+
dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu
|
2047 |
+
c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv
|
2048 |
+
bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0
|
2049 |
+
aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0
|
2050 |
+
aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t
|
2051 |
+
L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG
|
2052 |
+
cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5
|
2053 |
+
fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm
|
2054 |
+
N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN
|
2055 |
+
Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T
|
2056 |
+
tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX
|
2057 |
+
e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA
|
2058 |
+
2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs
|
2059 |
+
HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
|
2060 |
+
JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib
|
2061 |
+
D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8=
|
2062 |
+
-----END CERTIFICATE-----
|
2063 |
+
|
2064 |
+
StartCom Certification Authority G2
|
2065 |
+
===================================
|
2066 |
+
-----BEGIN CERTIFICATE-----
|
2067 |
+
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
|
2091 |
+
obp573PYtlNXLfbQ4ddI
|
2092 |
+
-----END CERTIFICATE-----
|
2093 |
+
|
2094 |
+
Buypass Class 2 Root CA
|
2095 |
+
=======================
|
2096 |
+
-----BEGIN CERTIFICATE-----
|
2097 |
+
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
|
2121 |
+
rJgWVqA=
|
2122 |
+
-----END CERTIFICATE-----
|
2123 |
+
|
2124 |
+
Buypass Class 3 Root CA
|
2125 |
+
=======================
|
2126 |
+
-----BEGIN CERTIFICATE-----
|
2127 |
+
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
|
2151 |
+
Cp/HuZc=
|
2152 |
+
-----END CERTIFICATE-----
|
2153 |
+
|
2154 |
+
T-TeleSec GlobalRoot Class 3
|
2155 |
+
============================
|
2156 |
+
-----BEGIN CERTIFICATE-----
|
2157 |
+
MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
|
2158 |
+
IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
|
2159 |
+
cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx
|
2160 |
+
MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
|
2161 |
+
dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
|
2162 |
+
ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3
|
2163 |
+
DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK
|
2164 |
+
9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU
|
2165 |
+
NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF
|
2166 |
+
iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W
|
2167 |
+
0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA
|
2168 |
+
MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr
|
2169 |
+
AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb
|
2170 |
+
fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT
|
2171 |
+
ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h
|
2172 |
+
P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
|
2173 |
+
e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw==
|
2174 |
+
-----END CERTIFICATE-----
|
2175 |
+
|
2176 |
+
EE Certification Centre Root CA
|
2177 |
+
===============================
|
2178 |
+
-----BEGIN CERTIFICATE-----
|
2179 |
+
MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
|
2180 |
+
EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy
|
2181 |
+
dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw
|
2182 |
+
MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB
|
2183 |
+
UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy
|
2184 |
+
ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
|
2185 |
+
DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM
|
2186 |
+
TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2
|
2187 |
+
rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw
|
2188 |
+
93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN
|
2189 |
+
P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T
|
2190 |
+
AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ
|
2191 |
+
MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF
|
2192 |
+
BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj
|
2193 |
+
xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM
|
2194 |
+
lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
|
2195 |
+
uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU
|
2196 |
+
3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM
|
2197 |
+
dcGWxZ0=
|
2198 |
+
-----END CERTIFICATE-----
|
2199 |
+
|
2200 |
+
TURKTRUST Certificate Services Provider Root 2007
|
2201 |
+
=================================================
|
2202 |
+
-----BEGIN CERTIFICATE-----
|
2203 |
+
MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
|
2204 |
+
bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
|
2205 |
+
MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
|
2206 |
+
QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X
|
2207 |
+
DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl
|
2208 |
+
a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN
|
2209 |
+
BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
|
2210 |
+
bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw
|
2211 |
+
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N
|
2212 |
+
YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv
|
2213 |
+
KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya
|
2214 |
+
KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT
|
2215 |
+
rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC
|
2216 |
+
AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP
|
2217 |
+
BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s
|
2218 |
+
Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I
|
2219 |
+
aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO
|
2220 |
+
Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb
|
2221 |
+
BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK
|
2222 |
+
poRq0Tl9
|
2223 |
+
-----END CERTIFICATE-----
|
2224 |
+
|
2225 |
+
D-TRUST Root Class 3 CA 2 2009
|
2226 |
+
==============================
|
2227 |
+
-----BEGIN CERTIFICATE-----
|
2228 |
+
MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK
|
2229 |
+
DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe
|
2230 |
+
Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE
|
2231 |
+
LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw
|
2232 |
+
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD
|
2233 |
+
ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA
|
2234 |
+
BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv
|
2235 |
+
KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z
|
2236 |
+
p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC
|
2237 |
+
AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ
|
2238 |
+
4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y
|
2239 |
+
eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw
|
2240 |
+
MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G
|
2241 |
+
PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw
|
2242 |
+
OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm
|
2243 |
+
2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
|
2244 |
+
o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV
|
2245 |
+
dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph
|
2246 |
+
X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I=
|
2247 |
+
-----END CERTIFICATE-----
|
2248 |
+
|
2249 |
+
D-TRUST Root Class 3 CA 2 EV 2009
|
2250 |
+
=================================
|
2251 |
+
-----BEGIN CERTIFICATE-----
|
2252 |
+
MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
|
2253 |
+
DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
|
2254 |
+
OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
|
2255 |
+
DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
|
2256 |
+
OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS
|
2257 |
+
egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh
|
2258 |
+
zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T
|
2259 |
+
7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60
|
2260 |
+
sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35
|
2261 |
+
11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv
|
2262 |
+
cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v
|
2263 |
+
ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El
|
2264 |
+
MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp
|
2265 |
+
b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh
|
2266 |
+
c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+
|
2267 |
+
PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
|
2268 |
+
nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX
|
2269 |
+
ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA
|
2270 |
+
NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv
|
2271 |
+
w9y4AyHqnxbxLFS1
|
2272 |
+
-----END CERTIFICATE-----
|
2273 |
+
|
2274 |
+
PSCProcert
|
2275 |
+
==========
|
2276 |
+
-----BEGIN CERTIFICATE-----
|
2277 |
+
MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1dG9yaWRhZCBk
|
2278 |
+
ZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9sYW5vMQswCQYDVQQGEwJWRTEQ
|
2279 |
+
MA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlzdHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lz
|
2280 |
+
dGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBl
|
2281 |
+
cmludGVuZGVuY2lhIGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUw
|
2282 |
+
IwYJKoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEwMFoXDTIw
|
2283 |
+
MTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHByb2NlcnQubmV0LnZlMQ8w
|
2284 |
+
DQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGExKjAoBgNVBAsTIVByb3ZlZWRvciBkZSBD
|
2285 |
+
ZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZp
|
2286 |
+
Y2FjaW9uIEVsZWN0cm9uaWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIw
|
2287 |
+
DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo97BVC
|
2288 |
+
wfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74BCXfgI8Qhd19L3uA
|
2289 |
+
3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38GieU89RLAu9MLmV+QfI4tL3czkkoh
|
2290 |
+
RqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmO
|
2291 |
+
EO8GqQKJ/+MMbpfg353bIdD0PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG2
|
2292 |
+
0qCZyFSTXai20b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH
|
2293 |
+
0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/6mnbVSKVUyqU
|
2294 |
+
td+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1mv6JpIzi4mWCZDlZTOpx+FIyw
|
2295 |
+
Bm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvp
|
2296 |
+
r2uKGcfLFFb14dq12fy/czja+eevbqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/
|
2297 |
+
AgEBMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAz
|
2298 |
+
Ni0wMB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFDgBStuyId
|
2299 |
+
xuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRp
|
2300 |
+
ZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQH
|
2301 |
+
EwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5h
|
2302 |
+
Y2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5k
|
2303 |
+
ZW5jaWEgZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG
|
2304 |
+
9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQDAgEGME0GA1UdEQRG
|
2305 |
+
MESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0wMDAwMDKgGwYFYIZeAgKgEgwQUklG
|
2306 |
+
LUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEagRKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52
|
2307 |
+
ZS9sY3IvQ0VSVElGSUNBRE8tUkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNy
|
2308 |
+
YWl6LnN1c2NlcnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v
|
2309 |
+
Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsGAQUFBwIBFh5o
|
2310 |
+
dHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcNAQELBQADggIBACtZ6yKZu4Sq
|
2311 |
+
T96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmN
|
2312 |
+
g7+mvTV+LFwxNG9s2/NkAZiqlCxB3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4q
|
2313 |
+
uxtxj7mkoP3YldmvWb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1
|
2314 |
+
n8GhHVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHmpHmJWhSn
|
2315 |
+
FFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXzsOfIt+FTvZLm8wyWuevo
|
2316 |
+
5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bEqCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq
|
2317 |
+
3TNWOByyrYDT13K9mmyZY+gAu0F2BbdbmRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5
|
2318 |
+
poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y
|
2319 |
+
eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km
|
2320 |
+
-----END CERTIFICATE-----
|
2321 |
+
|
2322 |
+
CA Disig Root R1
|
2323 |
+
================
|
2324 |
+
-----BEGIN CERTIFICATE-----
|
2325 |
+
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
|
2349 |
+
a7+h89n07eLw4+1knj0vllJPgFOL
|
2350 |
+
-----END CERTIFICATE-----
|
2351 |
+
|
2352 |
+
CA Disig Root R2
|
2353 |
+
================
|
2354 |
+
-----BEGIN CERTIFICATE-----
|
2355 |
+
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
|
2379 |
+
7+ZtsH8tZ/3zbBt1RqPlShfppNcL
|
2380 |
+
-----END CERTIFICATE-----
|
2381 |
+
|
2382 |
+
ACCVRAIZ1
|
2383 |
+
=========
|
2384 |
+
-----BEGIN CERTIFICATE-----
|
2385 |
+
MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB
|
2386 |
+
SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1
|
2387 |
+
MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH
|
2388 |
+
UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
|
2389 |
+
DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM
|
2390 |
+
jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0
|
2391 |
+
RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD
|
2392 |
+
aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ
|
2393 |
+
0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG
|
2394 |
+
WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7
|
2395 |
+
8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR
|
2396 |
+
5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J
|
2397 |
+
9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK
|
2398 |
+
Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw
|
2399 |
+
Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu
|
2400 |
+
Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2
|
2401 |
+
VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM
|
2402 |
+
Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA
|
2403 |
+
QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh
|
2404 |
+
AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA
|
2405 |
+
YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj
|
2406 |
+
AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA
|
2407 |
+
IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk
|
2408 |
+
aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0
|
2409 |
+
dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2
|
2410 |
+
MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI
|
2411 |
+
hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E
|
2412 |
+
R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN
|
2413 |
+
YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49
|
2414 |
+
nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ
|
2415 |
+
TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3
|
2416 |
+
sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h
|
2417 |
+
I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg
|
2418 |
+
Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd
|
2419 |
+
3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p
|
2420 |
+
EfbRD0tVNEYqi4Y7
|
2421 |
+
-----END CERTIFICATE-----
|
2422 |
+
|
2423 |
+
TWCA Global Root CA
|
2424 |
+
===================
|
2425 |
+
-----BEGIN CERTIFICATE-----
|
2426 |
+
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
|
2450 |
+
-----END CERTIFICATE-----
|
2451 |
+
|
2452 |
+
TeliaSonera Root CA v1
|
2453 |
+
======================
|
2454 |
+
-----BEGIN CERTIFICATE-----
|
2455 |
+
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
|
2478 |
+
WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
|
2479 |
+
-----END CERTIFICATE-----
|
2480 |
+
|
2481 |
+
E-Tugra Certification Authority
|
2482 |
+
===============================
|
2483 |
+
-----BEGIN CERTIFICATE-----
|
2484 |
+
MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w
|
2485 |
+
DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls
|
2486 |
+
ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
|
2487 |
+
ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw
|
2488 |
+
NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx
|
2489 |
+
QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl
|
2490 |
+
cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD
|
2491 |
+
DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
|
2492 |
+
MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd
|
2493 |
+
hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K
|
2494 |
+
CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g
|
2495 |
+
ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ
|
2496 |
+
BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0
|
2497 |
+
E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz
|
2498 |
+
rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq
|
2499 |
+
jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
|
2500 |
+
rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5
|
2501 |
+
dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB
|
2502 |
+
/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG
|
2503 |
+
MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK
|
2504 |
+
kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO
|
2505 |
+
XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807
|
2506 |
+
VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo
|
2507 |
+
a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc
|
2508 |
+
dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV
|
2509 |
+
KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT
|
2510 |
+
Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0
|
2511 |
+
8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G
|
2512 |
+
C7TbO6Orb1wdtn7os4I07QZcJA==
|
2513 |
+
-----END CERTIFICATE-----
|
2514 |
+
|
2515 |
+
T-TeleSec GlobalRoot Class 2
|
2516 |
+
============================
|
2517 |
+
-----BEGIN CERTIFICATE-----
|
2518 |
+
MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
|
2519 |
+
IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
|
2520 |
+
cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx
|
2521 |
+
MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
|
2522 |
+
dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
|
2523 |
+
ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3
|
2524 |
+
DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ
|
2525 |
+
SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F
|
2526 |
+
vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970
|
2527 |
+
2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV
|
2528 |
+
WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA
|
2529 |
+
MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy
|
2530 |
+
YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4
|
2531 |
+
r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf
|
2532 |
+
vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR
|
2533 |
+
3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN
|
2534 |
+
9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg==
|
2535 |
+
-----END CERTIFICATE-----
|
2536 |
+
|
2537 |
+
Atos TrustedRoot 2011
|
2538 |
+
=====================
|
2539 |
+
-----BEGIN CERTIFICATE-----
|
2540 |
+
MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU
|
2541 |
+
cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4
|
2542 |
+
MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG
|
2543 |
+
A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV
|
2544 |
+
hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr
|
2545 |
+
54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+
|
2546 |
+
DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320
|
2547 |
+
HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR
|
2548 |
+
z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R
|
2549 |
+
l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ
|
2550 |
+
bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
|
2551 |
+
CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h
|
2552 |
+
k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh
|
2553 |
+
TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9
|
2554 |
+
61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G
|
2555 |
+
3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
|
2556 |
+
-----END CERTIFICATE-----
|
2557 |
+
|
2558 |
+
QuoVadis Root CA 1 G3
|
2559 |
+
=====================
|
2560 |
+
-----BEGIN CERTIFICATE-----
|
2561 |
+
MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG
|
2562 |
+
A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
|
2563 |
+
b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN
|
2564 |
+
MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg
|
2565 |
+
RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE
|
2566 |
+
PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm
|
2567 |
+
PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6
|
2568 |
+
Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN
|
2569 |
+
ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l
|
2570 |
+
g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV
|
2571 |
+
7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX
|
2572 |
+
9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f
|
2573 |
+
iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg
|
2574 |
+
t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
|
2575 |
+
AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI
|
2576 |
+
hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC
|
2577 |
+
MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3
|
2578 |
+
GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct
|
2579 |
+
Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP
|
2580 |
+
+V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh
|
2581 |
+
3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa
|
2582 |
+
wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6
|
2583 |
+
O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0
|
2584 |
+
FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV
|
2585 |
+
hMJKzRwuJIczYOXD
|
2586 |
+
-----END CERTIFICATE-----
|
2587 |
+
|
2588 |
+
QuoVadis Root CA 2 G3
|
2589 |
+
=====================
|
2590 |
+
-----BEGIN CERTIFICATE-----
|
2591 |
+
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
|
2615 |
+
O3jtZsSOeWmD3n+M
|
2616 |
+
-----END CERTIFICATE-----
|
2617 |
+
|
2618 |
+
QuoVadis Root CA 3 G3
|
2619 |
+
=====================
|
2620 |
+
-----BEGIN CERTIFICATE-----
|
2621 |
+
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
|
2645 |
+
PpxxVJkES/1Y+Zj0
|
2646 |
+
-----END CERTIFICATE-----
|
2647 |
+
|
2648 |
+
DigiCert Assured ID Root G2
|
2649 |
+
===========================
|
2650 |
+
-----BEGIN CERTIFICATE-----
|
2651 |
+
MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG
|
2652 |
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
|
2653 |
+
IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw
|
2654 |
+
MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
|
2655 |
+
ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw
|
2656 |
+
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH
|
2657 |
+
35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq
|
2658 |
+
bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw
|
2659 |
+
VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP
|
2660 |
+
YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn
|
2661 |
+
lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO
|
2662 |
+
w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv
|
2663 |
+
0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz
|
2664 |
+
d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW
|
2665 |
+
hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M
|
2666 |
+
jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo
|
2667 |
+
IhNzbM8m9Yop5w==
|
2668 |
+
-----END CERTIFICATE-----
|
2669 |
+
|
2670 |
+
DigiCert Assured ID Root G3
|
2671 |
+
===========================
|
2672 |
+
-----BEGIN CERTIFICATE-----
|
2673 |
+
MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV
|
2674 |
+
UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD
|
2675 |
+
VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
|
2676 |
+
MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
2677 |
+
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ
|
2678 |
+
BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb
|
2679 |
+
RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs
|
2680 |
+
KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF
|
2681 |
+
UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy
|
2682 |
+
YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy
|
2683 |
+
1vUhZscv6pZjamVFkpUBtA==
|
2684 |
+
-----END CERTIFICATE-----
|
2685 |
+
|
2686 |
+
DigiCert Global Root G2
|
2687 |
+
=======================
|
2688 |
+
-----BEGIN CERTIFICATE-----
|
2689 |
+
MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG
|
2690 |
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
|
2691 |
+
HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx
|
2692 |
+
MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
|
2693 |
+
dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq
|
2694 |
+
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ
|
2695 |
+
kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO
|
2696 |
+
3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV
|
2697 |
+
BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM
|
2698 |
+
UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB
|
2699 |
+
o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu
|
2700 |
+
5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr
|
2701 |
+
F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U
|
2702 |
+
WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH
|
2703 |
+
QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/
|
2704 |
+
iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
|
2705 |
+
MrY=
|
2706 |
+
-----END CERTIFICATE-----
|
2707 |
+
|
2708 |
+
DigiCert Global Root G3
|
2709 |
+
=======================
|
2710 |
+
-----BEGIN CERTIFICATE-----
|
2711 |
+
MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV
|
2712 |
+
UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD
|
2713 |
+
VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw
|
2714 |
+
MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k
|
2715 |
+
aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C
|
2716 |
+
AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O
|
2717 |
+
YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP
|
2718 |
+
BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp
|
2719 |
+
Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y
|
2720 |
+
3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34
|
2721 |
+
VOKa5Vt8sycX
|
2722 |
+
-----END CERTIFICATE-----
|
2723 |
+
|
2724 |
+
DigiCert Trusted Root G4
|
2725 |
+
========================
|
2726 |
+
-----BEGIN CERTIFICATE-----
|
2727 |
+
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
|
2752 |
+
82Z+
|
2753 |
+
-----END CERTIFICATE-----
|
2754 |
+
|
2755 |
+
WoSign
|
2756 |
+
======
|
2757 |
+
-----BEGIN CERTIFICATE-----
|
2758 |
+
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
|
2783 |
+
-----END CERTIFICATE-----
|
2784 |
+
|
2785 |
+
WoSign China
|
2786 |
+
============
|
2787 |
+
-----BEGIN CERTIFICATE-----
|
2788 |
+
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
|
2812 |
+
kI26oQ==
|
2813 |
+
-----END CERTIFICATE-----
|
2814 |
+
|
2815 |
+
COMODO RSA Certification Authority
|
2816 |
+
==================================
|
2817 |
+
-----BEGIN CERTIFICATE-----
|
2818 |
+
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
|
2844 |
+
LaZRfyHBNVOFBkpdn627G190
|
2845 |
+
-----END CERTIFICATE-----
|
2846 |
+
|
2847 |
+
USERTrust RSA Certification Authority
|
2848 |
+
=====================================
|
2849 |
+
-----BEGIN CERTIFICATE-----
|
2850 |
+
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
|
2876 |
+
Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9
|
2877 |
+
-----END CERTIFICATE-----
|
2878 |
+
|
2879 |
+
USERTrust ECC Certification Authority
|
2880 |
+
=====================================
|
2881 |
+
-----BEGIN CERTIFICATE-----
|
2882 |
+
MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC
|
2883 |
+
VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
|
2884 |
+
aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv
|
2885 |
+
biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC
|
2886 |
+
VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
|
2887 |
+
aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv
|
2888 |
+
biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2
|
2889 |
+
0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez
|
2890 |
+
nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV
|
2891 |
+
HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB
|
2892 |
+
HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu
|
2893 |
+
9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg=
|
2894 |
+
-----END CERTIFICATE-----
|
2895 |
+
|
2896 |
+
GlobalSign ECC Root CA - R4
|
2897 |
+
===========================
|
2898 |
+
-----BEGIN CERTIFICATE-----
|
2899 |
+
MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UECxMb
|
2900 |
+
R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
|
2901 |
+
EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb
|
2902 |
+
R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
|
2903 |
+
EwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprl
|
2904 |
+
OQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAwDgYDVR0P
|
2905 |
+
AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61FuOJAf/sKbvu+M8k8o4TV
|
2906 |
+
MAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGXkPoUVy0D7O48027KqGx2vKLeuwIgJ6iF
|
2907 |
+
JzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q=
|
2908 |
+
-----END CERTIFICATE-----
|
2909 |
+
|
2910 |
+
GlobalSign ECC Root CA - R5
|
2911 |
+
===========================
|
2912 |
+
-----BEGIN CERTIFICATE-----
|
2913 |
+
MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb
|
2914 |
+
R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
|
2915 |
+
EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb
|
2916 |
+
R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
|
2917 |
+
EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6
|
2918 |
+
SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS
|
2919 |
+
h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd
|
2920 |
+
BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx
|
2921 |
+
uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7
|
2922 |
+
yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3
|
2923 |
+
-----END CERTIFICATE-----
|
2924 |
+
|
2925 |
+
Staat der Nederlanden Root CA - G3
|
2926 |
+
==================================
|
2927 |
+
-----BEGIN CERTIFICATE-----
|
2928 |
+
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
|
2953 |
+
-----END CERTIFICATE-----
|
2954 |
+
|
2955 |
+
Staat der Nederlanden EV Root CA
|
2956 |
+
================================
|
2957 |
+
-----BEGIN CERTIFICATE-----
|
2958 |
+
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
|
2982 |
+
eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg==
|
2983 |
+
-----END CERTIFICATE-----
|
2984 |
+
|
2985 |
+
IdenTrust Commercial Root CA 1
|
2986 |
+
==============================
|
2987 |
+
-----BEGIN CERTIFICATE-----
|
2988 |
+
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
|
3012 |
+
cGzM7vRX+Bi6hG6H
|
3013 |
+
-----END CERTIFICATE-----
|
3014 |
+
|
3015 |
+
IdenTrust Public Sector Root CA 1
|
3016 |
+
=================================
|
3017 |
+
-----BEGIN CERTIFICATE-----
|
3018 |
+
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
|
3042 |
+
3Wl9af0AVqW3rLatt8o+Ae+c
|
3043 |
+
-----END CERTIFICATE-----
|
3044 |
+
|
3045 |
+
Entrust Root Certification Authority - G2
|
3046 |
+
=========================================
|
3047 |
+
-----BEGIN CERTIFICATE-----
|
3048 |
+
MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV
|
3049 |
+
BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy
|
3050 |
+
bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug
|
3051 |
+
b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw
|
3052 |
+
HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT
|
3053 |
+
DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx
|
3054 |
+
OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s
|
3055 |
+
eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi
|
3056 |
+
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP
|
3057 |
+
/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz
|
3058 |
+
HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU
|
3059 |
+
s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y
|
3060 |
+
TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx
|
3061 |
+
AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6
|
3062 |
+
0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z
|
3063 |
+
iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ
|
3064 |
+
Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi
|
3065 |
+
nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+
|
3066 |
+
vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO
|
3067 |
+
e4pIb4tF9g==
|
3068 |
+
-----END CERTIFICATE-----
|
3069 |
+
|
3070 |
+
Entrust Root Certification Authority - EC1
|
3071 |
+
==========================================
|
3072 |
+
-----BEGIN CERTIFICATE-----
|
3073 |
+
MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx
|
3074 |
+
FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn
|
3075 |
+
YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl
|
3076 |
+
ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
|
3077 |
+
IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw
|
3078 |
+
FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs
|
3079 |
+
LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg
|
3080 |
+
dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt
|
3081 |
+
IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy
|
3082 |
+
AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef
|
3083 |
+
9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
|
3084 |
+
FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h
|
3085 |
+
vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8
|
3086 |
+
kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G
|
3087 |
+
-----END CERTIFICATE-----
|
3088 |
+
|
3089 |
+
CFCA EV ROOT
|
3090 |
+
============
|
3091 |
+
-----BEGIN CERTIFICATE-----
|
3092 |
+
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
|
3117 |
+
-----END CERTIFICATE-----
|
3118 |
+
|
3119 |
+
TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5
|
3120 |
+
====================================================
|
3121 |
+
-----BEGIN CERTIFICATE-----
|
3122 |
+
MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN
|
3123 |
+
BgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
|
3124 |
+
bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1Qg
|
3125 |
+
RWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAw
|
3126 |
+
ODA3MDFaFw0yMzA0MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0w
|
3127 |
+
SwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnE
|
3128 |
+
n2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRp
|
3129 |
+
ZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
3130 |
+
CgKCAQEApCUZ4WWe60ghUEoI5RHwWrom/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537
|
3131 |
+
jVJp45wnEFPzpALFp/kRGml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1m
|
3132 |
+
ep5Fimh34khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z5UNP
|
3133 |
+
9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0hO8EuPbJbKoCPrZV
|
3134 |
+
4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QIDAQABo0IwQDAdBgNVHQ4EFgQUVpkH
|
3135 |
+
HtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
|
3136 |
+
hvcNAQELBQADggEBAJ5FdnsXSDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPo
|
3137 |
+
BP5yCccLqh0lVX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq
|
3138 |
+
URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nfpeYVhDfwwvJl
|
3139 |
+
lpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CFYv4HAqGEVka+lgqaE9chTLd8
|
3140 |
+
B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU=
|
3141 |
+
-----END CERTIFICATE-----
|
3142 |
+
|
3143 |
+
Certinomis - Root CA
|
3144 |
+
====================
|
3145 |
+
-----BEGIN CERTIFICATE-----
|
3146 |
+
MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
|
3147 |
+
Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAbBgNVBAMTFENlcnRpbm9taXMg
|
3148 |
+
LSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMzMTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIx
|
3149 |
+
EzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRD
|
3150 |
+
ZXJ0aW5vbWlzIC0gUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQos
|
3151 |
+
P5L2fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJflLieY6pOo
|
3152 |
+
d5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQVWZUKxkd8aRi5pwP5ynap
|
3153 |
+
z8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDFTKWrteoB4owuZH9kb/2jJZOLyKIOSY00
|
3154 |
+
8B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09x
|
3155 |
+
RLWtwHkziOC/7aOgFLScCbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE
|
3156 |
+
6OXWk6RiwsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJwx3t
|
3157 |
+
FvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SGm/lg0h9tkQPTYKbV
|
3158 |
+
PZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4F2iw4lNVYC2vPsKD2NkJK/DAZNuH
|
3159 |
+
i5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZngWVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGj
|
3160 |
+
YzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I
|
3161 |
+
6tNxIqSSaHh02TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF
|
3162 |
+
AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/0KGRHCwPT5iV
|
3163 |
+
WVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWwF6YSjNRieOpWauwK0kDDPAUw
|
3164 |
+
Pk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZSg081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAX
|
3165 |
+
lCOotQqSD7J6wWAsOMwaplv/8gzjqh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJ
|
3166 |
+
y29SWwNyhlCVCNSNh4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9
|
3167 |
+
Iff/ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8Vbtaw5Bng
|
3168 |
+
DwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwjY/M50n92Uaf0yKHxDHYi
|
3169 |
+
I0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nM
|
3170 |
+
cyrDflOR1m749fPH0FFNjkulW+YZFzvWgQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVr
|
3171 |
+
hkIGuUE=
|
3172 |
+
-----END CERTIFICATE-----
|
3173 |
+
|
3174 |
+
OISTE WISeKey Global Root GB CA
|
3175 |
+
===============================
|
3176 |
+
-----BEGIN CERTIFICATE-----
|
3177 |
+
MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQG
|
3178 |
+
EwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl
|
3179 |
+
ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAw
|
3180 |
+
MzJaFw0zOTEyMDExNTEwMzFaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYD
|
3181 |
+
VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEds
|
3182 |
+
b2JhbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3HEokKtaX
|
3183 |
+
scriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGxWuR51jIjK+FTzJlFXHtP
|
3184 |
+
rby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk
|
3185 |
+
9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNku7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4o
|
3186 |
+
Qnc/nSMbsrY9gBQHTC5P99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvg
|
3187 |
+
GUpuuy9rM2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
|
3188 |
+
/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZI
|
3189 |
+
hvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrghcViXfa43FK8+5/ea4n32cZiZBKpD
|
3190 |
+
dHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0
|
3191 |
+
VQreUGdNZtGn//3ZwLWoo4rOZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEui
|
3192 |
+
HZeeevJuQHHfaPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic
|
3193 |
+
Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM=
|
3194 |
+
-----END CERTIFICATE-----
|
3195 |
+
|
3196 |
+
Certification Authority of WoSign G2
|
3197 |
+
====================================
|
3198 |
+
-----BEGIN CERTIFICATE-----
|
3199 |
+
MIIDfDCCAmSgAwIBAgIQayXaioidfLwPBbOxemFFRDANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQG
|
3200 |
+
EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxLTArBgNVBAMTJENlcnRpZmljYXRpb24g
|
3201 |
+
QXV0aG9yaXR5IG9mIFdvU2lnbiBHMjAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4NThaMFgx
|
3202 |
+
CzAJBgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEtMCsGA1UEAxMkQ2VydGlm
|
3203 |
+
aWNhdGlvbiBBdXRob3JpdHkgb2YgV29TaWduIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
3204 |
+
CgKCAQEAvsXEoCKASU+/2YcRxlPhuw+9YH+v9oIOH9ywjj2X4FA8jzrvZjtFB5sg+OPXJYY1kBai
|
3205 |
+
XW8wGQiHC38Gsp1ij96vkqVg1CuAmlI/9ZqD6TRay9nVYlzmDuDfBpgOgHzKtB0TiGsOqCR3A9Du
|
3206 |
+
W/PKaZE1OVbFbeP3PU9ekzgkyhjpJMuSA93MHD0JcOQg5PGurLtzaaNjOg9FD6FKmsLRY6zLEPg9
|
3207 |
+
5k4ot+vElbGs/V6r+kHLXZ1L3PR8du9nfwB6jdKgGlxNIuG12t12s9R23164i5jIFFTMaxeSt+BK
|
3208 |
+
v0mUYQs4kI9dJGwlezt52eJ+na2fmKEG/HgUYFf47oB3sQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC
|
3209 |
+
AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU+mCp62XF3RYUCE4MD42b4Pdkr2cwDQYJKoZI
|
3210 |
+
hvcNAQELBQADggEBAFfDejaCnI2Y4qtAqkePx6db7XznPWZaOzG73/MWM5H8fHulwqZm46qwtyeY
|
3211 |
+
P0nXYGdnPzZPSsvxFPpahygc7Y9BMsaV+X3avXtbwrAh449G3CE4Q3RM+zD4F3LBMvzIkRfEzFg3
|
3212 |
+
TgvMWvchNSiDbGAtROtSjFA9tWwS1/oJu2yySrHFieT801LYYRf+epSEj3m2M1m6D8QL4nCgS3gu
|
3213 |
+
+sif/a+RZQp4OBXllxcU3fngLDT4ONCEIgDAFFEYKwLcMFrw6AF8NTojrwjkr6qOKEJJLvD1mTS+
|
3214 |
+
7Q9LGOHSJDy7XUe3IfKN0QqZjuNuPq1w4I+5ysxugTH2e5x6eeRncRg=
|
3215 |
+
-----END CERTIFICATE-----
|
3216 |
+
|
3217 |
+
CA WoSign ECC Root
|
3218 |
+
==================
|
3219 |
+
-----BEGIN CERTIFICATE-----
|
3220 |
+
MIICCTCCAY+gAwIBAgIQaEpYcIBr8I8C+vbe6LCQkDAKBggqhkjOPQQDAzBGMQswCQYDVQQGEwJD
|
3221 |
+
TjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMTEkNBIFdvU2lnbiBFQ0MgUm9v
|
3222 |
+
dDAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4NThaMEYxCzAJBgNVBAYTAkNOMRowGAYDVQQK
|
3223 |
+
ExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAxMSQ0EgV29TaWduIEVDQyBSb290MHYwEAYHKoZI
|
3224 |
+
zj0CAQYFK4EEACIDYgAE4f2OuEMkq5Z7hcK6C62N4DrjJLnSsb6IOsq/Srj57ywvr1FQPEd1bPiU
|
3225 |
+
t5v8KB7FVMxjnRZLU8HnIKvNrCXSf4/CwVqCXjCLelTOA7WRf6qU0NGKSMyCBSah1VES1ns2o0Iw
|
3226 |
+
QDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUqv3VWqP2h4syhf3R
|
3227 |
+
MluARZPzA7gwCgYIKoZIzj0EAwMDaAAwZQIxAOSkhLCB1T2wdKyUpOgOPQB0TKGXa/kNUTyh2Tv0
|
3228 |
+
Daupn75OcsqF1NnstTJFGG+rrQIwfcf3aWMvoeGY7xMQ0Xk/0f7qO3/eVvSQsRUR2LIiFdAvwyYu
|
3229 |
+
a/GRspBl9JrmkO5K
|
3230 |
+
-----END CERTIFICATE-----
|
3231 |
+
|
3232 |
+
SZAFIR ROOT CA2
|
3233 |
+
===============
|
3234 |
+
-----BEGIN CERTIFICATE-----
|
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 |
+
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
|
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 |
+
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
|
3408 |
+
OXXUc0ECd97N4EOH1uS6SsNsEn/+KuYj1oxx
|
3409 |
+
-----END CERTIFICATE-----
|
3410 |
+
|
3411 |
+
OpenTrust Root CA G2
|
3412 |
+
====================
|
3413 |
+
-----BEGIN CERTIFICATE-----
|
3414 |
+
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
|
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 |
+
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
|
3483 |
+
m+kXQ99b21/+jh5Xos1AnX5iItreGCc=
|
3484 |
+
-----END CERTIFICATE-----
|
3485 |
+
|
3486 |
+
AC RAIZ FNMT-RCM
|
3487 |
+
================
|
3488 |
+
-----BEGIN CERTIFICATE-----
|
3489 |
+
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
|
3514 |
+
-----END CERTIFICATE-----
|
3515 |
+
|
3516 |
+
Amazon Root CA 1
|
3517 |
+
================
|
3518 |
+
-----BEGIN CERTIFICATE-----
|
3519 |
+
MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsFADA5MQswCQYD
|
3520 |
+
VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAxMB4XDTE1
|
3521 |
+
MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv
|
3522 |
+
bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
3523 |
+
ggEBALJ4gHHKeNXjca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgH
|
3524 |
+
FzZM9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qwIFAGbHrQ
|
3525 |
+
gLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6VOujw5H5SNz/0egwLX0t
|
3526 |
+
dHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L93FcXmn/6pUCyziKrlA4b9v7LWIbxcce
|
3527 |
+
VOF34GfID5yHI9Y/QCB/IIDEgEw+OyQmjgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB
|
3528 |
+
/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3
|
3529 |
+
DQEBCwUAA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDIU5PM
|
3530 |
+
CCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUsN+gDS63pYaACbvXy
|
3531 |
+
8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vvo/ufQJVtMVT8QtPHRh8jrdkPSHCa
|
3532 |
+
2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2
|
3533 |
+
xJNDd2ZhwLnoQdeXeGADbkpyrqXRfboQnoZsG4q5WTP468SQvvG5
|
3534 |
+
-----END CERTIFICATE-----
|
3535 |
+
|
3536 |
+
Amazon Root CA 2
|
3537 |
+
================
|
3538 |
+
-----BEGIN CERTIFICATE-----
|
3539 |
+
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
|
3563 |
+
-----END CERTIFICATE-----
|
3564 |
+
|
3565 |
+
Amazon Root CA 3
|
3566 |
+
================
|
3567 |
+
-----BEGIN CERTIFICATE-----
|
3568 |
+
MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG
|
3569 |
+
EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy
|
3570 |
+
NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ
|
3571 |
+
MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB
|
3572 |
+
f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr
|
3573 |
+
Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43
|
3574 |
+
rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc
|
3575 |
+
eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw==
|
3576 |
+
-----END CERTIFICATE-----
|
3577 |
+
|
3578 |
+
Amazon Root CA 4
|
3579 |
+
================
|
3580 |
+
-----BEGIN CERTIFICATE-----
|
3581 |
+
MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYDVQQG
|
3582 |
+
EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTE1MDUy
|
3583 |
+
NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ
|
3584 |
+
MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN
|
3585 |
+
/sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri
|
3586 |
+
83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
|
3587 |
+
HQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WBMAoGCCqGSM49BAMDA2gA
|
3588 |
+
MGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlwCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1
|
3589 |
+
AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJElMzrdfkviT8tQp21KW8EA==
|
3590 |
+
-----END CERTIFICATE-----
|
3591 |
+
|
3592 |
+
LuxTrust Global Root 2
|
3593 |
+
======================
|
3594 |
+
-----BEGIN CERTIFICATE-----
|
3595 |
+
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
|
3621 |
+
-----END CERTIFICATE-----
|
3622 |
+
|
3623 |
+
TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1
|
3624 |
+
=============================================
|
3625 |
+
-----BEGIN CERTIFICATE-----
|
3626 |
+
MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIxGDAWBgNVBAcT
|
3627 |
+
D0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxpbXNlbCB2ZSBUZWtub2xvamlr
|
3628 |
+
IEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0wKwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24g
|
3629 |
+
TWVya2V6aSAtIEthbXUgU00xNjA0BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRp
|
3630 |
+
ZmlrYXNpIC0gU3VydW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYD
|
3631 |
+
VQQGEwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXllIEJpbGlt
|
3632 |
+
c2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklUQUsxLTArBgNVBAsTJEth
|
3633 |
+
bXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBTTTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11
|
3634 |
+
IFNNIFNTTCBLb2sgU2VydGlmaWthc2kgLSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
3635 |
+
MIIBCgKCAQEAr3UwM6q7a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y8
|
3636 |
+
6Ij5iySrLqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INrN3wc
|
3637 |
+
wv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2XYacQuFWQfw4tJzh0
|
3638 |
+
3+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/iSIzL+aFCr2lqBs23tPcLG07xxO9
|
3639 |
+
WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4fAJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQU
|
3640 |
+
ZT/HiobGPN08VFw1+DrtUgxHV8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJ
|
3641 |
+
KoZIhvcNAQELBQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh
|
3642 |
+
AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPfIPP54+M638yc
|
3643 |
+
lNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4lzwDGrpDxpa5RXI4s6ehlj2R
|
3644 |
+
e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0j
|
3645 |
+
q5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM=
|
3646 |
+
-----END CERTIFICATE-----
|
stripe-php-6.40.0/init.php
ADDED
@@ -0,0 +1,145 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// Stripe singleton
|
4 |
+
require(dirname(__FILE__) . '/lib/Stripe.php');
|
5 |
+
|
6 |
+
// Utilities
|
7 |
+
require(dirname(__FILE__) . '/lib/Util/AutoPagingIterator.php');
|
8 |
+
require(dirname(__FILE__) . '/lib/Util/CaseInsensitiveArray.php');
|
9 |
+
require(dirname(__FILE__) . '/lib/Util/LoggerInterface.php');
|
10 |
+
require(dirname(__FILE__) . '/lib/Util/DefaultLogger.php');
|
11 |
+
require(dirname(__FILE__) . '/lib/Util/RandomGenerator.php');
|
12 |
+
require(dirname(__FILE__) . '/lib/Util/RequestOptions.php');
|
13 |
+
require(dirname(__FILE__) . '/lib/Util/Set.php');
|
14 |
+
require(dirname(__FILE__) . '/lib/Util/Util.php');
|
15 |
+
|
16 |
+
// HttpClient
|
17 |
+
require(dirname(__FILE__) . '/lib/HttpClient/ClientInterface.php');
|
18 |
+
require(dirname(__FILE__) . '/lib/HttpClient/CurlClient.php');
|
19 |
+
|
20 |
+
// Errors
|
21 |
+
require(dirname(__FILE__) . '/lib/Error/Base.php');
|
22 |
+
require(dirname(__FILE__) . '/lib/Error/Api.php');
|
23 |
+
require(dirname(__FILE__) . '/lib/Error/ApiConnection.php');
|
24 |
+
require(dirname(__FILE__) . '/lib/Error/Authentication.php');
|
25 |
+
require(dirname(__FILE__) . '/lib/Error/Card.php');
|
26 |
+
require(dirname(__FILE__) . '/lib/Error/Idempotency.php');
|
27 |
+
require(dirname(__FILE__) . '/lib/Error/InvalidRequest.php');
|
28 |
+
require(dirname(__FILE__) . '/lib/Error/Permission.php');
|
29 |
+
require(dirname(__FILE__) . '/lib/Error/RateLimit.php');
|
30 |
+
require(dirname(__FILE__) . '/lib/Error/SignatureVerification.php');
|
31 |
+
|
32 |
+
// OAuth errors
|
33 |
+
require(dirname(__FILE__) . '/lib/Error/OAuth/OAuthBase.php');
|
34 |
+
require(dirname(__FILE__) . '/lib/Error/OAuth/InvalidClient.php');
|
35 |
+
require(dirname(__FILE__) . '/lib/Error/OAuth/InvalidGrant.php');
|
36 |
+
require(dirname(__FILE__) . '/lib/Error/OAuth/InvalidRequest.php');
|
37 |
+
require(dirname(__FILE__) . '/lib/Error/OAuth/InvalidScope.php');
|
38 |
+
require(dirname(__FILE__) . '/lib/Error/OAuth/UnsupportedGrantType.php');
|
39 |
+
require(dirname(__FILE__) . '/lib/Error/OAuth/UnsupportedResponseType.php');
|
40 |
+
|
41 |
+
// API operations
|
42 |
+
require(dirname(__FILE__) . '/lib/ApiOperations/All.php');
|
43 |
+
require(dirname(__FILE__) . '/lib/ApiOperations/Create.php');
|
44 |
+
require(dirname(__FILE__) . '/lib/ApiOperations/Delete.php');
|
45 |
+
require(dirname(__FILE__) . '/lib/ApiOperations/NestedResource.php');
|
46 |
+
require(dirname(__FILE__) . '/lib/ApiOperations/Request.php');
|
47 |
+
require(dirname(__FILE__) . '/lib/ApiOperations/Retrieve.php');
|
48 |
+
require(dirname(__FILE__) . '/lib/ApiOperations/Update.php');
|
49 |
+
|
50 |
+
// Plumbing
|
51 |
+
require(dirname(__FILE__) . '/lib/ApiResponse.php');
|
52 |
+
require(dirname(__FILE__) . '/lib/RequestTelemetry.php');
|
53 |
+
require(dirname(__FILE__) . '/lib/StripeObject.php');
|
54 |
+
require(dirname(__FILE__) . '/lib/ApiRequestor.php');
|
55 |
+
require(dirname(__FILE__) . '/lib/ApiResource.php');
|
56 |
+
require(dirname(__FILE__) . '/lib/SingletonApiResource.php');
|
57 |
+
|
58 |
+
// Stripe API Resources
|
59 |
+
require(dirname(__FILE__) . '/lib/Account.php');
|
60 |
+
require(dirname(__FILE__) . '/lib/AccountLink.php');
|
61 |
+
require(dirname(__FILE__) . '/lib/AlipayAccount.php');
|
62 |
+
require(dirname(__FILE__) . '/lib/ApplePayDomain.php');
|
63 |
+
require(dirname(__FILE__) . '/lib/ApplicationFee.php');
|
64 |
+
require(dirname(__FILE__) . '/lib/ApplicationFeeRefund.php');
|
65 |
+
require(dirname(__FILE__) . '/lib/Balance.php');
|
66 |
+
require(dirname(__FILE__) . '/lib/BalanceTransaction.php');
|
67 |
+
require(dirname(__FILE__) . '/lib/BankAccount.php');
|
68 |
+
require(dirname(__FILE__) . '/lib/BitcoinReceiver.php');
|
69 |
+
require(dirname(__FILE__) . '/lib/BitcoinTransaction.php');
|
70 |
+
require(dirname(__FILE__) . '/lib/Capability.php');
|
71 |
+
require(dirname(__FILE__) . '/lib/Card.php');
|
72 |
+
require(dirname(__FILE__) . '/lib/Charge.php');
|
73 |
+
require(dirname(__FILE__) . '/lib/Checkout/Session.php');
|
74 |
+
require(dirname(__FILE__) . '/lib/Collection.php');
|
75 |
+
require(dirname(__FILE__) . '/lib/CountrySpec.php');
|
76 |
+
require(dirname(__FILE__) . '/lib/Coupon.php');
|
77 |
+
require(dirname(__FILE__) . '/lib/CreditNote.php');
|
78 |
+
require(dirname(__FILE__) . '/lib/Customer.php');
|
79 |
+
require(dirname(__FILE__) . '/lib/CustomerBalanceTransaction.php');
|
80 |
+
require(dirname(__FILE__) . '/lib/Discount.php');
|
81 |
+
require(dirname(__FILE__) . '/lib/Dispute.php');
|
82 |
+
require(dirname(__FILE__) . '/lib/EphemeralKey.php');
|
83 |
+
require(dirname(__FILE__) . '/lib/Event.php');
|
84 |
+
require(dirname(__FILE__) . '/lib/ExchangeRate.php');
|
85 |
+
require(dirname(__FILE__) . '/lib/File.php');
|
86 |
+
require(dirname(__FILE__) . '/lib/FileLink.php');
|
87 |
+
require(dirname(__FILE__) . '/lib/FileUpload.php');
|
88 |
+
require(dirname(__FILE__) . '/lib/Invoice.php');
|
89 |
+
require(dirname(__FILE__) . '/lib/InvoiceItem.php');
|
90 |
+
require(dirname(__FILE__) . '/lib/InvoiceLineItem.php');
|
91 |
+
require(dirname(__FILE__) . '/lib/IssuerFraudRecord.php');
|
92 |
+
require(dirname(__FILE__) . '/lib/Issuing/Authorization.php');
|
93 |
+
require(dirname(__FILE__) . '/lib/Issuing/Card.php');
|
94 |
+
require(dirname(__FILE__) . '/lib/Issuing/CardDetails.php');
|
95 |
+
require(dirname(__FILE__) . '/lib/Issuing/Cardholder.php');
|
96 |
+
require(dirname(__FILE__) . '/lib/Issuing/Dispute.php');
|
97 |
+
require(dirname(__FILE__) . '/lib/Issuing/Transaction.php');
|
98 |
+
require(dirname(__FILE__) . '/lib/LoginLink.php');
|
99 |
+
require(dirname(__FILE__) . '/lib/Order.php');
|
100 |
+
require(dirname(__FILE__) . '/lib/OrderItem.php');
|
101 |
+
require(dirname(__FILE__) . '/lib/OrderReturn.php');
|
102 |
+
require(dirname(__FILE__) . '/lib/PaymentIntent.php');
|
103 |
+
require(dirname(__FILE__) . '/lib/PaymentMethod.php');
|
104 |
+
require(dirname(__FILE__) . '/lib/Payout.php');
|
105 |
+
require(dirname(__FILE__) . '/lib/Person.php');
|
106 |
+
require(dirname(__FILE__) . '/lib/Plan.php');
|
107 |
+
require(dirname(__FILE__) . '/lib/Product.php');
|
108 |
+
require(dirname(__FILE__) . '/lib/Radar/EarlyFraudWarning.php');
|
109 |
+
require(dirname(__FILE__) . '/lib/Radar/ValueList.php');
|
110 |
+
require(dirname(__FILE__) . '/lib/Radar/ValueListItem.php');
|
111 |
+
require(dirname(__FILE__) . '/lib/Recipient.php');
|
112 |
+
require(dirname(__FILE__) . '/lib/RecipientTransfer.php');
|
113 |
+
require(dirname(__FILE__) . '/lib/Refund.php');
|
114 |
+
require(dirname(__FILE__) . '/lib/Reporting/ReportRun.php');
|
115 |
+
require(dirname(__FILE__) . '/lib/Reporting/ReportType.php');
|
116 |
+
require(dirname(__FILE__) . '/lib/Review.php');
|
117 |
+
require(dirname(__FILE__) . '/lib/SetupIntent.php');
|
118 |
+
require(dirname(__FILE__) . '/lib/SKU.php');
|
119 |
+
require(dirname(__FILE__) . '/lib/Sigma/ScheduledQueryRun.php');
|
120 |
+
require(dirname(__FILE__) . '/lib/Source.php');
|
121 |
+
require(dirname(__FILE__) . '/lib/SourceTransaction.php');
|
122 |
+
require(dirname(__FILE__) . '/lib/Subscription.php');
|
123 |
+
require(dirname(__FILE__) . '/lib/SubscriptionItem.php');
|
124 |
+
require(dirname(__FILE__) . '/lib/SubscriptionSchedule.php');
|
125 |
+
require(dirname(__FILE__) . '/lib/SubscriptionScheduleRevision.php');
|
126 |
+
require(dirname(__FILE__) . '/lib/TaxId.php');
|
127 |
+
require(dirname(__FILE__) . '/lib/TaxRate.php');
|
128 |
+
require(dirname(__FILE__) . '/lib/Terminal/ConnectionToken.php');
|
129 |
+
require(dirname(__FILE__) . '/lib/Terminal/Location.php');
|
130 |
+
require(dirname(__FILE__) . '/lib/Terminal/Reader.php');
|
131 |
+
require(dirname(__FILE__) . '/lib/ThreeDSecure.php');
|
132 |
+
require(dirname(__FILE__) . '/lib/Token.php');
|
133 |
+
require(dirname(__FILE__) . '/lib/Topup.php');
|
134 |
+
require(dirname(__FILE__) . '/lib/Transfer.php');
|
135 |
+
require(dirname(__FILE__) . '/lib/TransferReversal.php');
|
136 |
+
require(dirname(__FILE__) . '/lib/UsageRecord.php');
|
137 |
+
require(dirname(__FILE__) . '/lib/UsageRecordSummary.php');
|
138 |
+
|
139 |
+
// OAuth
|
140 |
+
require(dirname(__FILE__) . '/lib/OAuth.php');
|
141 |
+
|
142 |
+
// Webhooks
|
143 |
+
require(dirname(__FILE__) . '/lib/Webhook.php');
|
144 |
+
require(dirname(__FILE__) . '/lib/WebhookEndpoint.php');
|
145 |
+
require(dirname(__FILE__) . '/lib/WebhookSignature.php');
|
stripe-php-6.40.0/lib/Account.php
ADDED
@@ -0,0 +1,393 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Account
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property mixed $business_profile
|
11 |
+
* @property string $business_type
|
12 |
+
* @property mixed $capabilities
|
13 |
+
* @property bool $charges_enabled
|
14 |
+
* @property mixed $company
|
15 |
+
* @property string $country
|
16 |
+
* @property int $created
|
17 |
+
* @property string $default_currency
|
18 |
+
* @property bool $details_submitted
|
19 |
+
* @property string $email
|
20 |
+
* @property Collection $external_accounts
|
21 |
+
* @property mixed $individual
|
22 |
+
* @property StripeObject $metadata
|
23 |
+
* @property bool $payouts_enabled
|
24 |
+
* @property mixed $requirements
|
25 |
+
* @property mixed $settings
|
26 |
+
* @property mixed $tos_acceptance
|
27 |
+
* @property string $type
|
28 |
+
*
|
29 |
+
* @package Stripe
|
30 |
+
*/
|
31 |
+
class Account extends ApiResource
|
32 |
+
{
|
33 |
+
|
34 |
+
const OBJECT_NAME = "account";
|
35 |
+
|
36 |
+
use ApiOperations\All;
|
37 |
+
use ApiOperations\Create;
|
38 |
+
use ApiOperations\Delete;
|
39 |
+
use ApiOperations\NestedResource;
|
40 |
+
use ApiOperations\Retrieve {
|
41 |
+
retrieve as protected _retrieve;
|
42 |
+
}
|
43 |
+
use ApiOperations\Update;
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Possible string representations of an account's business type.
|
47 |
+
* @link https://stripe.com/docs/api/accounts/object#account_object-business_type
|
48 |
+
*/
|
49 |
+
const BUSINESS_TYPE_COMPANY = 'company';
|
50 |
+
const BUSINESS_TYPE_INDIVIDUAL = 'individual';
|
51 |
+
|
52 |
+
/**
|
53 |
+
* Possible string representations of an account's capabilities.
|
54 |
+
* @link https://stripe.com/docs/api/accounts/object#account_object-capabilities
|
55 |
+
*/
|
56 |
+
const CAPABILITY_CARD_PAYMENTS = 'card_payments';
|
57 |
+
const CAPABILITY_LEGACY_PAYMENTS = 'legacy_payments';
|
58 |
+
const CAPABILITY_PLATFORM_PAYMENTS = 'platform_payments';
|
59 |
+
|
60 |
+
/**
|
61 |
+
* Possible string representations of an account's capability status.
|
62 |
+
* @link https://stripe.com/docs/api/accounts/object#account_object-capabilities
|
63 |
+
*/
|
64 |
+
const CAPABILITY_STATUS_ACTIVE = 'active';
|
65 |
+
const CAPABILITY_STATUS_INACTIVE = 'inactive';
|
66 |
+
const CAPABILITY_STATUS_PENDING = 'pending';
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Possible string representations of an account's type.
|
70 |
+
* @link https://stripe.com/docs/api/accounts/object#account_object-type
|
71 |
+
*/
|
72 |
+
const TYPE_CUSTOM = 'custom';
|
73 |
+
const TYPE_EXPRESS = 'express';
|
74 |
+
const TYPE_STANDARD = 'standard';
|
75 |
+
|
76 |
+
public static function getSavedNestedResources()
|
77 |
+
{
|
78 |
+
static $savedNestedResources = null;
|
79 |
+
if ($savedNestedResources === null) {
|
80 |
+
$savedNestedResources = new Util\Set([
|
81 |
+
'external_account',
|
82 |
+
'bank_account',
|
83 |
+
]);
|
84 |
+
}
|
85 |
+
return $savedNestedResources;
|
86 |
+
}
|
87 |
+
|
88 |
+
const PATH_CAPABILITIES = '/capabilities';
|
89 |
+
const PATH_EXTERNAL_ACCOUNTS = '/external_accounts';
|
90 |
+
const PATH_LOGIN_LINKS = '/login_links';
|
91 |
+
const PATH_PERSONS = '/persons';
|
92 |
+
|
93 |
+
public function instanceUrl()
|
94 |
+
{
|
95 |
+
if ($this['id'] === null) {
|
96 |
+
return '/v1/account';
|
97 |
+
} else {
|
98 |
+
return parent::instanceUrl();
|
99 |
+
}
|
100 |
+
}
|
101 |
+
|
102 |
+
/**
|
103 |
+
* @param array|string|null $id The ID of the account to retrieve, or an
|
104 |
+
* options array containing an `id` key.
|
105 |
+
* @param array|string|null $opts
|
106 |
+
*
|
107 |
+
* @return Account
|
108 |
+
*/
|
109 |
+
public static function retrieve($id = null, $opts = null)
|
110 |
+
{
|
111 |
+
if (!$opts && is_string($id) && substr($id, 0, 3) === 'sk_') {
|
112 |
+
$opts = $id;
|
113 |
+
$id = null;
|
114 |
+
}
|
115 |
+
return self::_retrieve($id, $opts);
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* @param array|null $params
|
120 |
+
* @param array|string|null $opts
|
121 |
+
*
|
122 |
+
* @return Account The rejected account.
|
123 |
+
*/
|
124 |
+
public function reject($params = null, $opts = null)
|
125 |
+
{
|
126 |
+
$url = $this->instanceUrl() . '/reject';
|
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 $clientId
|
134 |
+
* @param array|string|null $opts
|
135 |
+
*
|
136 |
+
* @return StripeObject Object containing the response from the API.
|
137 |
+
*/
|
138 |
+
public function deauthorize($clientId = null, $opts = null)
|
139 |
+
{
|
140 |
+
$params = [
|
141 |
+
'client_id' => $clientId,
|
142 |
+
'stripe_user_id' => $this->id,
|
143 |
+
];
|
144 |
+
return OAuth::deauthorize($params, $opts);
|
145 |
+
}
|
146 |
+
|
147 |
+
/*
|
148 |
+
* Capabilities methods
|
149 |
+
* We can not add the capabilities() method today as the Account object already has a
|
150 |
+
* capabilities property which is a hash and not the sub-list of capabilities.
|
151 |
+
*/
|
152 |
+
|
153 |
+
|
154 |
+
/**
|
155 |
+
* @param string $id The ID of the account to which the capability belongs.
|
156 |
+
* @param string $capabilityId The ID of the capability to retrieve.
|
157 |
+
* @param array|null $params
|
158 |
+
* @param array|string|null $opts
|
159 |
+
*
|
160 |
+
* @return Capability
|
161 |
+
*/
|
162 |
+
public static function retrieveCapability($id, $capabilityId, $params = null, $opts = null)
|
163 |
+
{
|
164 |
+
return self::_retrieveNestedResource($id, static::PATH_CAPABILITIES, $capabilityId, $params, $opts);
|
165 |
+
}
|
166 |
+
|
167 |
+
/**
|
168 |
+
* @param string $id The ID of the account to which the capability belongs.
|
169 |
+
* @param string $capabilityId The ID of the capability to update.
|
170 |
+
* @param array|null $params
|
171 |
+
* @param array|string|null $opts
|
172 |
+
*
|
173 |
+
* @return Capability
|
174 |
+
*/
|
175 |
+
public static function updateCapability($id, $capabilityId, $params = null, $opts = null)
|
176 |
+
{
|
177 |
+
return self::_updateNestedResource($id, static::PATH_CAPABILITIES, $capabilityId, $params, $opts);
|
178 |
+
}
|
179 |
+
|
180 |
+
/**
|
181 |
+
* @param string $id The ID of the account on which to retrieve the capabilities.
|
182 |
+
* @param array|null $params
|
183 |
+
* @param array|string|null $opts
|
184 |
+
*
|
185 |
+
* @return Collection The list of capabilities.
|
186 |
+
*/
|
187 |
+
public static function allCapabilities($id, $params = null, $opts = null)
|
188 |
+
{
|
189 |
+
return self::_allNestedResources($id, static::PATH_CAPABILITIES, $params, $opts);
|
190 |
+
}
|
191 |
+
|
192 |
+
/**
|
193 |
+
* @param string $id The ID of the account on which to create the external account.
|
194 |
+
* @param array|null $params
|
195 |
+
* @param array|string|null $opts
|
196 |
+
*
|
197 |
+
* @return BankAccount|Card
|
198 |
+
*/
|
199 |
+
public static function createExternalAccount($id, $params = null, $opts = null)
|
200 |
+
{
|
201 |
+
return self::_createNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $params, $opts);
|
202 |
+
}
|
203 |
+
|
204 |
+
/**
|
205 |
+
* @param string $id The ID of the account to which the external account belongs.
|
206 |
+
* @param string $externalAccountId The ID of the external account to retrieve.
|
207 |
+
* @param array|null $params
|
208 |
+
* @param array|string|null $opts
|
209 |
+
*
|
210 |
+
* @return BankAccount|Card
|
211 |
+
*/
|
212 |
+
public static function retrieveExternalAccount($id, $externalAccountId, $params = null, $opts = null)
|
213 |
+
{
|
214 |
+
return self::_retrieveNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts);
|
215 |
+
}
|
216 |
+
|
217 |
+
/**
|
218 |
+
* @param string $id The ID of the account to which the external account belongs.
|
219 |
+
* @param string $externalAccountId The ID of the external account to update.
|
220 |
+
* @param array|null $params
|
221 |
+
* @param array|string|null $opts
|
222 |
+
*
|
223 |
+
* @return BankAccount|Card
|
224 |
+
*/
|
225 |
+
public static function updateExternalAccount($id, $externalAccountId, $params = null, $opts = null)
|
226 |
+
{
|
227 |
+
return self::_updateNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts);
|
228 |
+
}
|
229 |
+
|
230 |
+
/**
|
231 |
+
* @param string $id The ID of the account to which the external account belongs.
|
232 |
+
* @param string $externalAccountId The ID of the external account to delete.
|
233 |
+
* @param array|null $params
|
234 |
+
* @param array|string|null $opts
|
235 |
+
*
|
236 |
+
* @return BankAccount|Card
|
237 |
+
*/
|
238 |
+
public static function deleteExternalAccount($id, $externalAccountId, $params = null, $opts = null)
|
239 |
+
{
|
240 |
+
return self::_deleteNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts);
|
241 |
+
}
|
242 |
+
|
243 |
+
/**
|
244 |
+
* @param string $id The ID of the account on which to retrieve the external accounts.
|
245 |
+
* @param array|null $params
|
246 |
+
* @param array|string|null $opts
|
247 |
+
*
|
248 |
+
* @return Collection The list of external accounts (BankAccount or Card).
|
249 |
+
*/
|
250 |
+
public static function allExternalAccounts($id, $params = null, $opts = null)
|
251 |
+
{
|
252 |
+
return self::_allNestedResources($id, static::PATH_EXTERNAL_ACCOUNTS, $params, $opts);
|
253 |
+
}
|
254 |
+
|
255 |
+
/**
|
256 |
+
* @param string $id The ID of the account on which to create the login link.
|
257 |
+
* @param array|null $params
|
258 |
+
* @param array|string|null $opts
|
259 |
+
*
|
260 |
+
* @return LoginLink
|
261 |
+
*/
|
262 |
+
public static function createLoginLink($id, $params = null, $opts = null)
|
263 |
+
{
|
264 |
+
return self::_createNestedResource($id, static::PATH_LOGIN_LINKS, $params, $opts);
|
265 |
+
}
|
266 |
+
|
267 |
+
/**
|
268 |
+
* @param array|null $params
|
269 |
+
* @param array|string|null $options
|
270 |
+
*
|
271 |
+
* @return Collection The list of persons.
|
272 |
+
*/
|
273 |
+
public function persons($params = null, $options = null)
|
274 |
+
{
|
275 |
+
$url = $this->instanceUrl() . '/persons';
|
276 |
+
list($response, $opts) = $this->_request('get', $url, $params, $options);
|
277 |
+
$obj = Util\Util::convertToStripeObject($response, $opts);
|
278 |
+
$obj->setLastResponse($response);
|
279 |
+
return $obj;
|
280 |
+
}
|
281 |
+
|
282 |
+
/**
|
283 |
+
* @param string $id The ID of the account on which to create the person.
|
284 |
+
* @param array|null $params
|
285 |
+
* @param array|string|null $opts
|
286 |
+
*
|
287 |
+
* @return Person
|
288 |
+
*/
|
289 |
+
public static function createPerson($id, $params = null, $opts = null)
|
290 |
+
{
|
291 |
+
return self::_createNestedResource($id, static::PATH_PERSONS, $params, $opts);
|
292 |
+
}
|
293 |
+
|
294 |
+
/**
|
295 |
+
* @param string $id The ID of the account to which the person belongs.
|
296 |
+
* @param string $personId The ID of the person to retrieve.
|
297 |
+
* @param array|null $params
|
298 |
+
* @param array|string|null $opts
|
299 |
+
*
|
300 |
+
* @return Person
|
301 |
+
*/
|
302 |
+
public static function retrievePerson($id, $personId, $params = null, $opts = null)
|
303 |
+
{
|
304 |
+
return self::_retrieveNestedResource($id, static::PATH_PERSONS, $personId, $params, $opts);
|
305 |
+
}
|
306 |
+
|
307 |
+
/**
|
308 |
+
* @param string $id The ID of the account to which the person belongs.
|
309 |
+
* @param string $personId The ID of the person to update.
|
310 |
+
* @param array|null $params
|
311 |
+
* @param array|string|null $opts
|
312 |
+
*
|
313 |
+
* @return Person
|
314 |
+
*/
|
315 |
+
public static function updatePerson($id, $personId, $params = null, $opts = null)
|
316 |
+
{
|
317 |
+
return self::_updateNestedResource($id, static::PATH_PERSONS, $personId, $params, $opts);
|
318 |
+
}
|
319 |
+
|
320 |
+
/**
|
321 |
+
* @param string $id The ID of the account to which the person belongs.
|
322 |
+
* @param string $personId The ID of the person to delete.
|
323 |
+
* @param array|null $params
|
324 |
+
* @param array|string|null $opts
|
325 |
+
*
|
326 |
+
* @return Person
|
327 |
+
*/
|
328 |
+
public static function deletePerson($id, $personId, $params = null, $opts = null)
|
329 |
+
{
|
330 |
+
return self::_deleteNestedResource($id, static::PATH_PERSONS, $personId, $params, $opts);
|
331 |
+
}
|
332 |
+
|
333 |
+
/**
|
334 |
+
* @param string $id The ID of the account on which to retrieve the persons.
|
335 |
+
* @param array|null $params
|
336 |
+
* @param array|string|null $opts
|
337 |
+
*
|
338 |
+
* @return Collection The list of persons.
|
339 |
+
*/
|
340 |
+
public static function allPersons($id, $params = null, $opts = null)
|
341 |
+
{
|
342 |
+
return self::_allNestedResources($id, static::PATH_PERSONS, $params, $opts);
|
343 |
+
}
|
344 |
+
|
345 |
+
public function serializeParameters($force = false)
|
346 |
+
{
|
347 |
+
$update = parent::serializeParameters($force);
|
348 |
+
if (isset($this->_values['legal_entity'])) {
|
349 |
+
$entity = $this['legal_entity'];
|
350 |
+
if (isset($entity->_values['additional_owners'])) {
|
351 |
+
$owners = $entity['additional_owners'];
|
352 |
+
$entityUpdate = isset($update['legal_entity']) ? $update['legal_entity'] : [];
|
353 |
+
$entityUpdate['additional_owners'] = $this->serializeAdditionalOwners($entity, $owners);
|
354 |
+
$update['legal_entity'] = $entityUpdate;
|
355 |
+
}
|
356 |
+
}
|
357 |
+
if (isset($this->_values['individual'])) {
|
358 |
+
$individual = $this['individual'];
|
359 |
+
if (($individual instanceof Person) && !isset($update['individual'])) {
|
360 |
+
$update['individual'] = $individual->serializeParameters($force);
|
361 |
+
}
|
362 |
+
}
|
363 |
+
return $update;
|
364 |
+
}
|
365 |
+
|
366 |
+
private function serializeAdditionalOwners($legalEntity, $additionalOwners)
|
367 |
+
{
|
368 |
+
if (isset($legalEntity->_originalValues['additional_owners'])) {
|
369 |
+
$originalValue = $legalEntity->_originalValues['additional_owners'];
|
370 |
+
} else {
|
371 |
+
$originalValue = [];
|
372 |
+
}
|
373 |
+
if (($originalValue) && (count($originalValue) > count($additionalOwners))) {
|
374 |
+
throw new \InvalidArgumentException(
|
375 |
+
"You cannot delete an item from an array, you must instead set a new array"
|
376 |
+
);
|
377 |
+
}
|
378 |
+
|
379 |
+
$updateArr = [];
|
380 |
+
foreach ($additionalOwners as $i => $v) {
|
381 |
+
$update = ($v instanceof StripeObject) ? $v->serializeParameters() : $v;
|
382 |
+
|
383 |
+
if ($update !== []) {
|
384 |
+
if (!$originalValue ||
|
385 |
+
!array_key_exists($i, $originalValue) ||
|
386 |
+
($update != $legalEntity->serializeParamsValue($originalValue[$i], null, false, true))) {
|
387 |
+
$updateArr[$i] = $update;
|
388 |
+
}
|
389 |
+
}
|
390 |
+
}
|
391 |
+
return $updateArr;
|
392 |
+
}
|
393 |
+
}
|
stripe-php-6.40.0/lib/AccountLink.php
ADDED
@@ -0,0 +1,21 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
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 |
+
|
18 |
+
const OBJECT_NAME = "account_link";
|
19 |
+
|
20 |
+
use ApiOperations\Create;
|
21 |
+
}
|
stripe-php-6.40.0/lib/AlipayAccount.php
ADDED
@@ -0,0 +1,72 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class AlipayAccount
|
7 |
+
*
|
8 |
+
* @package Stripe
|
9 |
+
*
|
10 |
+
* @deprecated Alipay accounts are deprecated. Please use the sources API instead.
|
11 |
+
* @link https://stripe.com/docs/sources/alipay
|
12 |
+
*/
|
13 |
+
class AlipayAccount extends ApiResource
|
14 |
+
{
|
15 |
+
|
16 |
+
const OBJECT_NAME = "alipay_account";
|
17 |
+
|
18 |
+
use ApiOperations\Delete;
|
19 |
+
use ApiOperations\Update;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* @return string The instance URL for this resource. It needs to be special
|
23 |
+
* cased because it doesn't fit into the standard resource pattern.
|
24 |
+
*/
|
25 |
+
public function instanceUrl()
|
26 |
+
{
|
27 |
+
if ($this['customer']) {
|
28 |
+
$base = Customer::classUrl();
|
29 |
+
$parent = $this['customer'];
|
30 |
+
$path = 'sources';
|
31 |
+
} else {
|
32 |
+
$msg = "Alipay accounts cannot be accessed without a customer ID.";
|
33 |
+
throw new Error\InvalidRequest($msg, null);
|
34 |
+
}
|
35 |
+
$parentExtn = urlencode(Util\Util::utf8($parent));
|
36 |
+
$extn = urlencode(Util\Util::utf8($this['id']));
|
37 |
+
return "$base/$parentExtn/$path/$extn";
|
38 |
+
}
|
39 |
+
|
40 |
+
/**
|
41 |
+
* @param array|string $_id
|
42 |
+
* @param array|string|null $_opts
|
43 |
+
*
|
44 |
+
* @throws \Stripe\Error\InvalidRequest
|
45 |
+
*
|
46 |
+
* @deprecated Alipay accounts are deprecated. Please use the sources API instead.
|
47 |
+
* @link https://stripe.com/docs/sources/alipay
|
48 |
+
*/
|
49 |
+
public static function retrieve($_id, $_opts = null)
|
50 |
+
{
|
51 |
+
$msg = "Alipay accounts cannot be accessed without a customer ID. " .
|
52 |
+
"Retrieve an Alipay account using \$customer->sources->retrieve('alipay_account_id') instead.";
|
53 |
+
throw new Error\InvalidRequest($msg, null);
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* @param string $_id
|
58 |
+
* @param array|null $_params
|
59 |
+
* @param array|string|null $_options
|
60 |
+
*
|
61 |
+
* @throws \Stripe\Error\InvalidRequest
|
62 |
+
*
|
63 |
+
* @deprecated Alipay accounts are deprecated. Please use the sources API instead.
|
64 |
+
* @link https://stripe.com/docs/sources/alipay
|
65 |
+
*/
|
66 |
+
public static function update($_id, $_params = null, $_options = null)
|
67 |
+
{
|
68 |
+
$msg = "Alipay accounts cannot be accessed without a customer ID. " .
|
69 |
+
"Call save() on \$customer->sources->retrieve('alipay_account_id') instead.";
|
70 |
+
throw new Error\InvalidRequest($msg, null);
|
71 |
+
}
|
72 |
+
}
|
stripe-php-6.40.0/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 |
+
}
|
stripe-php-6.40.0/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 |
+
}
|
stripe-php-6.40.0/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 |
+
}
|
stripe-php-6.40.0/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 |
+
}
|
stripe-php-6.40.0/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 |
+
}
|
stripe-php-6.40.0/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 |
+
}
|
stripe-php-6.40.0/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 |
+
}
|
stripe-php-6.40.0/lib/ApiRequestor.php
ADDED
@@ -0,0 +1,508 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class ApiRequestor
|
7 |
+
*
|
8 |
+
* @package Stripe
|
9 |
+
*/
|
10 |
+
class ApiRequestor
|
11 |
+
{
|
12 |
+
/**
|
13 |
+
* @var string|null
|
14 |
+
*/
|
15 |
+
private $_apiKey;
|
16 |
+
|
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;
|
41 |
+
if (!$apiBase) {
|
42 |
+
$apiBase = Stripe::$apiBase;
|
43 |
+
}
|
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) {
|
81 |
+
return Util\Util::utf8($d->id);
|
82 |
+
} elseif ($d === true) {
|
83 |
+
return 'true';
|
84 |
+
} elseif ($d === false) {
|
85 |
+
return 'false';
|
86 |
+
} elseif (is_array($d)) {
|
87 |
+
$res = [];
|
88 |
+
foreach ($d as $k => $v) {
|
89 |
+
$res[$k] = self::_encodeObjects($v);
|
90 |
+
}
|
91 |
+
return $res;
|
92 |
+
} else {
|
93 |
+
return Util\Util::utf8($d);
|
94 |
+
}
|
95 |
+
}
|
96 |
+
|
97 |
+
/**
|
98 |
+
* @param string $method
|
99 |
+
* @param string $url
|
100 |
+
* @param array|null $params
|
101 |
+
* @param array|null $headers
|
102 |
+
*
|
103 |
+
* @return array An array whose first element is an API response and second
|
104 |
+
* element is the API key used to make the request.
|
105 |
+
* @throws Error\Api
|
106 |
+
* @throws Error\Authentication
|
107 |
+
* @throws Error\Card
|
108 |
+
* @throws Error\InvalidRequest
|
109 |
+
* @throws Error\OAuth\InvalidClient
|
110 |
+
* @throws Error\OAuth\InvalidGrant
|
111 |
+
* @throws Error\OAuth\InvalidRequest
|
112 |
+
* @throws Error\OAuth\InvalidScope
|
113 |
+
* @throws Error\OAuth\UnsupportedGrantType
|
114 |
+
* @throws Error\OAuth\UnsupportedResponseType
|
115 |
+
* @throws Error\Permission
|
116 |
+
* @throws Error\RateLimit
|
117 |
+
* @throws Error\Idempotency
|
118 |
+
* @throws Error\ApiConnection
|
119 |
+
*/
|
120 |
+
public function request($method, $url, $params = null, $headers = null)
|
121 |
+
{
|
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 |
+
/**
|
132 |
+
* @param string $rbody A JSON string.
|
133 |
+
* @param int $rcode
|
134 |
+
* @param array $rheaders
|
135 |
+
* @param array $resp
|
136 |
+
*
|
137 |
+
* @throws Error\InvalidRequest if the error is caused by the user.
|
138 |
+
* @throws Error\Authentication if the error is caused by a lack of
|
139 |
+
* permissions.
|
140 |
+
* @throws Error\Permission if the error is caused by insufficient
|
141 |
+
* permissions.
|
142 |
+
* @throws Error\Card if the error is the error code is 402 (payment
|
143 |
+
* required)
|
144 |
+
* @throws Error\InvalidRequest if the error is caused by the user.
|
145 |
+
* @throws Error\Idempotency if the error is caused by an idempotency key.
|
146 |
+
* @throws Error\OAuth\InvalidClient
|
147 |
+
* @throws Error\OAuth\InvalidGrant
|
148 |
+
* @throws Error\OAuth\InvalidRequest
|
149 |
+
* @throws Error\OAuth\InvalidScope
|
150 |
+
* @throws Error\OAuth\UnsupportedGrantType
|
151 |
+
* @throws Error\OAuth\UnsupportedResponseType
|
152 |
+
* @throws Error\Permission if the error is caused by insufficient
|
153 |
+
* permissions.
|
154 |
+
* @throws Error\RateLimit if the error is caused by too many requests
|
155 |
+
* hitting the API.
|
156 |
+
* @throws Error\Api otherwise.
|
157 |
+
*/
|
158 |
+
public function handleErrorResponse($rbody, $rcode, $rheaders, $resp)
|
159 |
+
{
|
160 |
+
if (!is_array($resp) || !isset($resp['error'])) {
|
161 |
+
$msg = "Invalid response object from API: $rbody "
|
162 |
+
. "(HTTP response code was $rcode)";
|
163 |
+
throw new Error\Api($msg, $rcode, $rbody, $resp, $rheaders);
|
164 |
+
}
|
165 |
+
|
166 |
+
$errorData = $resp['error'];
|
167 |
+
|
168 |
+
$error = null;
|
169 |
+
if (is_string($errorData)) {
|
170 |
+
$error = self::_specificOAuthError($rbody, $rcode, $rheaders, $resp, $errorData);
|
171 |
+
}
|
172 |
+
if (!$error) {
|
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 |
+
// intentional fall-through
|
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;
|
333 |
+
if (!$myApiKey) {
|
334 |
+
$myApiKey = Stripe::$apiKey;
|
335 |
+
}
|
336 |
+
|
337 |
+
if (!$myApiKey) {
|
338 |
+
$msg = 'No API key provided. (HINT: set your API key using '
|
339 |
+
. '"Stripe::setApiKey(<API-KEY>)". You can generate API keys from '
|
340 |
+
. 'the Stripe web interface. See https://stripe.com/api for '
|
341 |
+
. 'details, or email support@stripe.com if you have any questions.';
|
342 |
+
throw new Error\Authentication($msg);
|
343 |
+
}
|
344 |
+
|
345 |
+
// Clients can supply arbitrary additional keys to be included in the
|
346 |
+
// X-Stripe-Client-User-Agent header via the optional getUserAgentInfo()
|
347 |
+
// method
|
348 |
+
$clientUAInfo = null;
|
349 |
+
if (method_exists($this->httpClient(), 'getUserAgentInfo')) {
|
350 |
+
$clientUAInfo = $this->httpClient()->getUserAgentInfo();
|
351 |
+
}
|
352 |
+
|
353 |
+
$absUrl = $this->_apiBase.$url;
|
354 |
+
$params = self::_encodeObjects($params);
|
355 |
+
$defaultHeaders = $this->_defaultHeaders($myApiKey, $clientUAInfo);
|
356 |
+
if (Stripe::$apiVersion) {
|
357 |
+
$defaultHeaders['Stripe-Version'] = Stripe::$apiVersion;
|
358 |
+
}
|
359 |
+
|
360 |
+
if (Stripe::$accountId) {
|
361 |
+
$defaultHeaders['Stripe-Account'] = Stripe::$accountId;
|
362 |
+
}
|
363 |
+
|
364 |
+
if (Stripe::$enableTelemetry && self::$requestTelemetry != null) {
|
365 |
+
$defaultHeaders["X-Stripe-Client-Telemetry"] = self::_telemetryJson(self::$requestTelemetry);
|
366 |
+
}
|
367 |
+
|
368 |
+
$hasFile = false;
|
369 |
+
$hasCurlFile = class_exists('\CURLFile', false);
|
370 |
+
foreach ($params as $k => $v) {
|
371 |
+
if (is_resource($v)) {
|
372 |
+
$hasFile = true;
|
373 |
+
$params[$k] = self::_processResourceParam($v, $hasCurlFile);
|
374 |
+
} elseif ($hasCurlFile && $v instanceof \CURLFile) {
|
375 |
+
$hasFile = true;
|
376 |
+
}
|
377 |
+
}
|
378 |
+
|
379 |
+
if ($hasFile) {
|
380 |
+
$defaultHeaders['Content-Type'] = 'multipart/form-data';
|
381 |
+
} else {
|
382 |
+
$defaultHeaders['Content-Type'] = 'application/x-www-form-urlencoded';
|
383 |
+
}
|
384 |
+
|
385 |
+
$combinedHeaders = array_merge($defaultHeaders, $headers);
|
386 |
+
$rawHeaders = [];
|
387 |
+
|
388 |
+
foreach ($combinedHeaders as $header => $value) {
|
389 |
+
$rawHeaders[] = $header . ': ' . $value;
|
390 |
+
}
|
391 |
+
|
392 |
+
$requestStartMs = Util\Util::currentTimeMillis();
|
393 |
+
|
394 |
+
list($rbody, $rcode, $rheaders) = $this->httpClient()->request(
|
395 |
+
$method,
|
396 |
+
$absUrl,
|
397 |
+
$rawHeaders,
|
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') {
|
422 |
+
throw new Error\Api(
|
423 |
+
'Attempted to upload a resource that is not a stream'
|
424 |
+
);
|
425 |
+
}
|
426 |
+
|
427 |
+
$metaData = stream_get_meta_data($resource);
|
428 |
+
if ($metaData['wrapper_type'] !== 'plainfile') {
|
429 |
+
throw new Error\Api(
|
430 |
+
'Only plainfile resource streams are supported'
|
431 |
+
);
|
432 |
+
}
|
433 |
+
|
434 |
+
if ($hasCurlFile) {
|
435 |
+
// We don't have the filename or mimetype, but the API doesn't care
|
436 |
+
return new \CURLFile($metaData['uri']);
|
437 |
+
} else {
|
438 |
+
return '@'.$metaData['uri'];
|
439 |
+
}
|
440 |
+
}
|
441 |
+
|
442 |
+
/**
|
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) {
|
504 |
+
self::$_httpClient = HttpClient\CurlClient::instance();
|
505 |
+
}
|
506 |
+
return self::$_httpClient;
|
507 |
+
}
|
508 |
+
}
|
stripe-php-6.40.0/lib/ApiResource.php
ADDED
@@ -0,0 +1,112 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class ApiResource
|
7 |
+
*
|
8 |
+
* @package Stripe
|
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 |
+
/**
|
51 |
+
* @return ApiResource The refreshed resource.
|
52 |
+
*/
|
53 |
+
public function refresh()
|
54 |
+
{
|
55 |
+
$requestor = new ApiRequestor($this->_opts->apiKey, static::baseUrl());
|
56 |
+
$url = $this->instanceUrl();
|
57 |
+
|
58 |
+
list($response, $this->_opts->apiKey) = $requestor->request(
|
59 |
+
'get',
|
60 |
+
$url,
|
61 |
+
$this->_retrieveOptions,
|
62 |
+
$this->_opts->headers
|
63 |
+
);
|
64 |
+
$this->setLastResponse($response);
|
65 |
+
$this->refreshFrom($response->json, $this->_opts);
|
66 |
+
return $this;
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* @return string The base URL for the given class.
|
71 |
+
*/
|
72 |
+
public static function baseUrl()
|
73 |
+
{
|
74 |
+
return Stripe::$apiBase;
|
75 |
+
}
|
76 |
+
|
77 |
+
/**
|
78 |
+
* @return string The endpoint URL for the given class.
|
79 |
+
*/
|
80 |
+
public static function classUrl()
|
81 |
+
{
|
82 |
+
// Replace dots with slashes for namespaced resources, e.g. if the object's name is
|
83 |
+
// "foo.bar", then its URL will be "/v1/foo/bars".
|
84 |
+
$base = str_replace('.', '/', static::OBJECT_NAME);
|
85 |
+
return "/v1/${base}s";
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* @return string The instance endpoint URL for the given class.
|
90 |
+
*/
|
91 |
+
public static function resourceUrl($id)
|
92 |
+
{
|
93 |
+
if ($id === null) {
|
94 |
+
$class = get_called_class();
|
95 |
+
$message = "Could not determine which URL to request: "
|
96 |
+
. "$class instance has invalid ID: $id";
|
97 |
+
throw new Error\InvalidRequest($message, null);
|
98 |
+
}
|
99 |
+
$id = Util\Util::utf8($id);
|
100 |
+
$base = static::classUrl();
|
101 |
+
$extn = urlencode($id);
|
102 |
+
return "$base/$extn";
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* @return string The full API URL for this API resource.
|
107 |
+
*/
|
108 |
+
public function instanceUrl()
|
109 |
+
{
|
110 |
+
return static::resourceUrl($this['id']);
|
111 |
+
}
|
112 |
+
}
|
stripe-php-6.40.0/lib/ApiResponse.php
ADDED
@@ -0,0 +1,32 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class ApiResponse
|
7 |
+
*
|
8 |
+
* @package Stripe
|
9 |
+
*/
|
10 |
+
class ApiResponse
|
11 |
+
{
|
12 |
+
public $headers;
|
13 |
+
public $body;
|
14 |
+
public $json;
|
15 |
+
public $code;
|
16 |
+
|
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
|
24 |
+
*/
|
25 |
+
public function __construct($body, $code, $headers, $json)
|
26 |
+
{
|
27 |
+
$this->body = $body;
|
28 |
+
$this->code = $code;
|
29 |
+
$this->headers = $headers;
|
30 |
+
$this->json = $json;
|
31 |
+
}
|
32 |
+
}
|
stripe-php-6.40.0/lib/ApplePayDomain.php
ADDED
@@ -0,0 +1,28 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class ApplePayDomain
|
7 |
+
*
|
8 |
+
* @package Stripe
|
9 |
+
*/
|
10 |
+
class ApplePayDomain extends ApiResource
|
11 |
+
{
|
12 |
+
|
13 |
+
const OBJECT_NAME = "apple_pay_domain";
|
14 |
+
|
15 |
+
use ApiOperations\All;
|
16 |
+
use ApiOperations\Create;
|
17 |
+
use ApiOperations\Delete;
|
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.
|
23 |
+
*/
|
24 |
+
public static function classUrl()
|
25 |
+
{
|
26 |
+
return '/v1/apple_pay/domains';
|
27 |
+
}
|
28 |
+
}
|
stripe-php-6.40.0/lib/ApplicationFee.php
ADDED
@@ -0,0 +1,98 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class ApplicationFee
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property string $account
|
11 |
+
* @property int $amount
|
12 |
+
* @property int $amount_refunded
|
13 |
+
* @property string $application
|
14 |
+
* @property string $balance_transaction
|
15 |
+
* @property string $charge
|
16 |
+
* @property int $created
|
17 |
+
* @property string $currency
|
18 |
+
* @property bool $livemode
|
19 |
+
* @property string $originating_transaction
|
20 |
+
* @property bool $refunded
|
21 |
+
* @property Collection $refunds
|
22 |
+
*
|
23 |
+
* @package Stripe
|
24 |
+
*/
|
25 |
+
class ApplicationFee extends ApiResource
|
26 |
+
{
|
27 |
+
|
28 |
+
const OBJECT_NAME = "application_fee";
|
29 |
+
|
30 |
+
use ApiOperations\All;
|
31 |
+
use ApiOperations\NestedResource;
|
32 |
+
use ApiOperations\Retrieve;
|
33 |
+
|
34 |
+
const PATH_REFUNDS = '/refunds';
|
35 |
+
|
36 |
+
/**
|
37 |
+
* @param array|null $params
|
38 |
+
* @param array|string|null $opts
|
39 |
+
*
|
40 |
+
* @return ApplicationFee The refunded application fee.
|
41 |
+
*/
|
42 |
+
public function refund($params = null, $opts = null)
|
43 |
+
{
|
44 |
+
$this->refunds->create($params, $opts);
|
45 |
+
$this->refresh();
|
46 |
+
return $this;
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* @param string|null $id The ID of the application fee on which to create the refund.
|
51 |
+
* @param array|null $params
|
52 |
+
* @param array|string|null $opts
|
53 |
+
*
|
54 |
+
* @return ApplicationFeeRefund
|
55 |
+
*/
|
56 |
+
public static function createRefund($id, $params = null, $opts = null)
|
57 |
+
{
|
58 |
+
return self::_createNestedResource($id, static::PATH_REFUNDS, $params, $opts);
|
59 |
+
}
|
60 |
+
|
61 |
+
/**
|
62 |
+
* @param string|null $id The ID of the application fee to which the refund belongs.
|
63 |
+
* @param array|null $refundId The ID of the refund to retrieve.
|
64 |
+
* @param array|null $params
|
65 |
+
* @param array|string|null $opts
|
66 |
+
*
|
67 |
+
* @return ApplicationFeeRefund
|
68 |
+
*/
|
69 |
+
public static function retrieveRefund($id, $refundId, $params = null, $opts = null)
|
70 |
+
{
|
71 |
+
return self::_retrieveNestedResource($id, static::PATH_REFUNDS, $refundId, $params, $opts);
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* @param string|null $id The ID of the application fee to which the refund belongs.
|
76 |
+
* @param array|null $refundId The ID of the refund to update.
|
77 |
+
* @param array|null $params
|
78 |
+
* @param array|string|null $opts
|
79 |
+
*
|
80 |
+
* @return ApplicationFeeRefund
|
81 |
+
*/
|
82 |
+
public static function updateRefund($id, $refundId, $params = null, $opts = null)
|
83 |
+
{
|
84 |
+
return self::_updateNestedResource($id, static::PATH_REFUNDS, $refundId, $params, $opts);
|
85 |
+
}
|
86 |
+
|
87 |
+
/**
|
88 |
+
* @param string|null $id The ID of the application fee on which to retrieve the refunds.
|
89 |
+
* @param array|null $params
|
90 |
+
* @param array|string|null $opts
|
91 |
+
*
|
92 |
+
* @return Collection The list of refunds.
|
93 |
+
*/
|
94 |
+
public static function allRefunds($id, $params = null, $opts = null)
|
95 |
+
{
|
96 |
+
return self::_allNestedResources($id, static::PATH_REFUNDS, $params, $opts);
|
97 |
+
}
|
98 |
+
}
|
stripe-php-6.40.0/lib/ApplicationFeeRefund.php
ADDED
@@ -0,0 +1,60 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class ApplicationFeeRefund
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $amount
|
11 |
+
* @property string $balance_transaction
|
12 |
+
* @property int $created
|
13 |
+
* @property string $currency
|
14 |
+
* @property string $fee
|
15 |
+
* @property StripeObject $metadata
|
16 |
+
*
|
17 |
+
* @package Stripe
|
18 |
+
*/
|
19 |
+
class ApplicationFeeRefund extends ApiResource
|
20 |
+
{
|
21 |
+
|
22 |
+
const OBJECT_NAME = "fee_refund";
|
23 |
+
|
24 |
+
use ApiOperations\Update {
|
25 |
+
save as protected _save;
|
26 |
+
}
|
27 |
+
|
28 |
+
/**
|
29 |
+
* @return string The API URL for this Stripe refund.
|
30 |
+
*/
|
31 |
+
public function instanceUrl()
|
32 |
+
{
|
33 |
+
$id = $this['id'];
|
34 |
+
$fee = $this['fee'];
|
35 |
+
if (!$id) {
|
36 |
+
throw new Error\InvalidRequest(
|
37 |
+
"Could not determine which URL to request: " .
|
38 |
+
"class instance has invalid ID: $id",
|
39 |
+
null
|
40 |
+
);
|
41 |
+
}
|
42 |
+
$id = Util\Util::utf8($id);
|
43 |
+
$fee = Util\Util::utf8($fee);
|
44 |
+
|
45 |
+
$base = ApplicationFee::classUrl();
|
46 |
+
$feeExtn = urlencode($fee);
|
47 |
+
$extn = urlencode($id);
|
48 |
+
return "$base/$feeExtn/refunds/$extn";
|
49 |
+
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* @param array|string|null $opts
|
53 |
+
*
|
54 |
+
* @return ApplicationFeeRefund The saved refund.
|
55 |
+
*/
|
56 |
+
public function save($opts = null)
|
57 |
+
{
|
58 |
+
return $this->_save($opts);
|
59 |
+
}
|
60 |
+
}
|
stripe-php-6.40.0/lib/Balance.php
ADDED
@@ -0,0 +1,30 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Balance
|
7 |
+
*
|
8 |
+
* @property string $object
|
9 |
+
* @property array $available
|
10 |
+
* @property array $connect_reserved
|
11 |
+
* @property bool $livemode
|
12 |
+
* @property array $pending
|
13 |
+
*
|
14 |
+
* @package Stripe
|
15 |
+
*/
|
16 |
+
class Balance extends SingletonApiResource
|
17 |
+
{
|
18 |
+
|
19 |
+
const OBJECT_NAME = "balance";
|
20 |
+
|
21 |
+
/**
|
22 |
+
* @param array|string|null $opts
|
23 |
+
*
|
24 |
+
* @return Balance
|
25 |
+
*/
|
26 |
+
public static function retrieve($opts = null)
|
27 |
+
{
|
28 |
+
return self::_singletonRetrieve($opts);
|
29 |
+
}
|
30 |
+
}
|
stripe-php-6.40.0/lib/BalanceTransaction.php
ADDED
@@ -0,0 +1,75 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class BalanceTransaction
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $amount
|
11 |
+
* @property int $available_on
|
12 |
+
* @property int $created
|
13 |
+
* @property string $currency
|
14 |
+
* @property string $description
|
15 |
+
* @property float $exchange_rate
|
16 |
+
* @property int $fee
|
17 |
+
* @property mixed $fee_details
|
18 |
+
* @property int $net
|
19 |
+
* @property string $source
|
20 |
+
* @property string $status
|
21 |
+
* @property string $type
|
22 |
+
*
|
23 |
+
* @package Stripe
|
24 |
+
*/
|
25 |
+
class BalanceTransaction extends ApiResource
|
26 |
+
{
|
27 |
+
|
28 |
+
const OBJECT_NAME = "balance_transaction";
|
29 |
+
|
30 |
+
use ApiOperations\All;
|
31 |
+
use ApiOperations\Retrieve;
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Possible string representations of the type of balance transaction.
|
35 |
+
* @link https://stripe.com/docs/api/balance/balance_transaction#balance_transaction_object-type
|
36 |
+
*/
|
37 |
+
const TYPE_ADJUSTMENT = 'adjustment';
|
38 |
+
const TYPE_ADVANCE = 'advance';
|
39 |
+
const TYPE_ADVANCE_FUNDING = 'advance_funding';
|
40 |
+
const TYPE_APPLICATION_FEE = 'application_fee';
|
41 |
+
const TYPE_APPLICATION_FEE_REFUND = 'application_fee_refund';
|
42 |
+
const TYPE_CHARGE = 'charge';
|
43 |
+
const TYPE_CONNECT_COLLECTION_TRANSFER = 'connect_collection_transfer';
|
44 |
+
const TYPE_ISSUING_AUTHORIZATION_HOLD = 'issuing_authorization_hold';
|
45 |
+
const TYPE_ISSUING_AUTHORIZATION_RELEASE = 'issuing_authorization_release';
|
46 |
+
const TYPE_ISSUING_TRANSACTION = 'issuing_transaction';
|
47 |
+
const TYPE_PAYMENT = 'payment';
|
48 |
+
const TYPE_PAYMENT_FAILURE_REFUND = 'payment_failure_refund';
|
49 |
+
const TYPE_PAYMENT_REFUND = 'payment_refund';
|
50 |
+
const TYPE_PAYOUT = 'payout';
|
51 |
+
const TYPE_PAYOUT_CANCEL = 'payout_cancel';
|
52 |
+
const TYPE_PAYOUT_FAILURE = 'payout_failure';
|
53 |
+
const TYPE_REFUND = 'refund';
|
54 |
+
const TYPE_REFUND_FAILURE = 'refund_failure';
|
55 |
+
const TYPE_RESERVE_TRANSACTION = 'reserve_transaction';
|
56 |
+
const TYPE_RESERVED_FUNDS = 'reserved_funds';
|
57 |
+
const TYPE_STRIPE_FEE = 'stripe_fee';
|
58 |
+
const TYPE_STRIPE_FX_FEE = 'stripe_fx_fee';
|
59 |
+
const TYPE_TAX_FEE = 'tax_fee';
|
60 |
+
const TYPE_TOPUP = 'topup';
|
61 |
+
const TYPE_TOPUP_REVERSAL = 'topup_reversal';
|
62 |
+
const TYPE_TRANSFER = 'transfer';
|
63 |
+
const TYPE_TRANSFER_CANCEL = 'transfer_cancel';
|
64 |
+
const TYPE_TRANSFER_FAILURE = 'transfer_failure';
|
65 |
+
const TYPE_TRANSFER_REFUND = 'transfer_refund';
|
66 |
+
|
67 |
+
/**
|
68 |
+
* @return string The class URL for this resource. It needs to be special
|
69 |
+
* cased because it doesn't fit into the standard resource pattern.
|
70 |
+
*/
|
71 |
+
public static function classUrl()
|
72 |
+
{
|
73 |
+
return "/v1/balance/history";
|
74 |
+
}
|
75 |
+
}
|
stripe-php-6.40.0/lib/BankAccount.php
ADDED
@@ -0,0 +1,109 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class BankAccount
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property string $account
|
11 |
+
* @property string $account_holder_name
|
12 |
+
* @property string $account_holder_type
|
13 |
+
* @property string $bank_name
|
14 |
+
* @property string $country
|
15 |
+
* @property string $currency
|
16 |
+
* @property string $customer
|
17 |
+
* @property bool $default_for_currency
|
18 |
+
* @property string $fingerprint
|
19 |
+
* @property string $last4
|
20 |
+
* @property StripeObject $metadata
|
21 |
+
* @property string $routing_number
|
22 |
+
* @property string $status
|
23 |
+
*
|
24 |
+
* @package Stripe
|
25 |
+
*/
|
26 |
+
class BankAccount extends ApiResource
|
27 |
+
{
|
28 |
+
|
29 |
+
const OBJECT_NAME = "bank_account";
|
30 |
+
|
31 |
+
use ApiOperations\Delete;
|
32 |
+
use ApiOperations\Update;
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Possible string representations of the bank verification status.
|
36 |
+
* @link https://stripe.com/docs/api/external_account_bank_accounts/object#account_bank_account_object-status
|
37 |
+
*/
|
38 |
+
const STATUS_NEW = 'new';
|
39 |
+
const STATUS_VALIDATED = 'validated';
|
40 |
+
const STATUS_VERIFIED = 'verified';
|
41 |
+
const STATUS_VERIFICATION_FAILED = 'verification_failed';
|
42 |
+
const STATUS_ERRORED = 'errored';
|
43 |
+
|
44 |
+
/**
|
45 |
+
* @return string The instance URL for this resource. It needs to be special
|
46 |
+
* cased because it doesn't fit into the standard resource pattern.
|
47 |
+
*/
|
48 |
+
public function instanceUrl()
|
49 |
+
{
|
50 |
+
if ($this['customer']) {
|
51 |
+
$base = Customer::classUrl();
|
52 |
+
$parent = $this['customer'];
|
53 |
+
$path = 'sources';
|
54 |
+
} elseif ($this['account']) {
|
55 |
+
$base = Account::classUrl();
|
56 |
+
$parent = $this['account'];
|
57 |
+
$path = 'external_accounts';
|
58 |
+
} else {
|
59 |
+
$msg = "Bank accounts cannot be accessed without a customer ID or account ID.";
|
60 |
+
throw new Error\InvalidRequest($msg, null);
|
61 |
+
}
|
62 |
+
$parentExtn = urlencode(Util\Util::utf8($parent));
|
63 |
+
$extn = urlencode(Util\Util::utf8($this['id']));
|
64 |
+
return "$base/$parentExtn/$path/$extn";
|
65 |
+
}
|
66 |
+
|
67 |
+
/**
|
68 |
+
* @param array|string $_id
|
69 |
+
* @param array|string|null $_opts
|
70 |
+
*
|
71 |
+
* @throws \Stripe\Error\InvalidRequest
|
72 |
+
*/
|
73 |
+
public static function retrieve($_id, $_opts = null)
|
74 |
+
{
|
75 |
+
$msg = "Bank accounts cannot be accessed without a customer ID or account ID. " .
|
76 |
+
"Retrieve a bank account using \$customer->sources->retrieve('bank_account_id') or " .
|
77 |
+
"\$account->external_accounts->retrieve('bank_account_id') instead.";
|
78 |
+
throw new Error\InvalidRequest($msg, null);
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
* @param string $_id
|
83 |
+
* @param array|null $_params
|
84 |
+
* @param array|string|null $_options
|
85 |
+
*
|
86 |
+
* @throws \Stripe\Error\InvalidRequest
|
87 |
+
*/
|
88 |
+
public static function update($_id, $_params = null, $_options = null)
|
89 |
+
{
|
90 |
+
$msg = "Bank accounts cannot be accessed without a customer ID or account ID. " .
|
91 |
+
"Call save() on \$customer->sources->retrieve('bank_account_id') or " .
|
92 |
+
"\$account->external_accounts->retrieve('bank_account_id') instead.";
|
93 |
+
throw new Error\InvalidRequest($msg, null);
|
94 |
+
}
|
95 |
+
|
96 |
+
/**
|
97 |
+
* @param array|null $params
|
98 |
+
* @param array|string|null $options
|
99 |
+
*
|
100 |
+
* @return BankAccount The verified bank account.
|
101 |
+
*/
|
102 |
+
public function verify($params = null, $options = null)
|
103 |
+
{
|
104 |
+
$url = $this->instanceUrl() . '/verify';
|
105 |
+
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
106 |
+
$this->refreshFrom($response, $opts);
|
107 |
+
return $this;
|
108 |
+
}
|
109 |
+
}
|
stripe-php-6.40.0/lib/BitcoinReceiver.php
ADDED
@@ -0,0 +1,49 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class BitcoinReceiver
|
7 |
+
*
|
8 |
+
* @package Stripe
|
9 |
+
*
|
10 |
+
* @deprecated Bitcoin receivers are deprecated. Please use the sources API instead.
|
11 |
+
* @link https://stripe.com/docs/sources/bitcoin
|
12 |
+
*/
|
13 |
+
class BitcoinReceiver extends ApiResource
|
14 |
+
{
|
15 |
+
|
16 |
+
const OBJECT_NAME = "bitcoin_receiver";
|
17 |
+
|
18 |
+
use ApiOperations\All;
|
19 |
+
use ApiOperations\Retrieve;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* @return string The class URL for this resource. It needs to be special
|
23 |
+
* cased because it doesn't fit into the standard resource pattern.
|
24 |
+
*/
|
25 |
+
public static function classUrl()
|
26 |
+
{
|
27 |
+
return "/v1/bitcoin/receivers";
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* @return string The instance URL for this resource. It needs to be special
|
32 |
+
* cased because it doesn't fit into the standard resource pattern.
|
33 |
+
*/
|
34 |
+
public function instanceUrl()
|
35 |
+
{
|
36 |
+
if ($this['customer']) {
|
37 |
+
$base = Customer::classUrl();
|
38 |
+
$parent = $this['customer'];
|
39 |
+
$path = 'sources';
|
40 |
+
$parentExtn = urlencode(Util\Util::utf8($parent));
|
41 |
+
$extn = urlencode(Util\Util::utf8($this['id']));
|
42 |
+
return "$base/$parentExtn/$path/$extn";
|
43 |
+
} else {
|
44 |
+
$base = BitcoinReceiver::classUrl();
|
45 |
+
$extn = urlencode(Util\Util::utf8($this['id']));
|
46 |
+
return "$base/$extn";
|
47 |
+
}
|
48 |
+
}
|
49 |
+
}
|
stripe-php-6.40.0/lib/BitcoinTransaction.php
ADDED
@@ -0,0 +1,14 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class BitcoinTransaction
|
7 |
+
*
|
8 |
+
* @package Stripe
|
9 |
+
*/
|
10 |
+
class BitcoinTransaction extends ApiResource
|
11 |
+
{
|
12 |
+
|
13 |
+
const OBJECT_NAME = "bitcoin_transaction";
|
14 |
+
}
|
stripe-php-6.40.0/lib/Capability.php
ADDED
@@ -0,0 +1,83 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
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 |
+
|
21 |
+
const OBJECT_NAME = "capability";
|
22 |
+
|
23 |
+
use ApiOperations\Update;
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Possible string representations of a capability's status.
|
27 |
+
* @link https://stripe.com/docs/api/capabilities/object#capability_object-status
|
28 |
+
*/
|
29 |
+
const STATUS_ACTIVE = 'active';
|
30 |
+
const STATUS_INACTIVE = 'inactive';
|
31 |
+
const STATUS_PENDING = 'pending';
|
32 |
+
const STATUS_UNREQUESTED = 'unrequested';
|
33 |
+
|
34 |
+
/**
|
35 |
+
* @return string The API URL for this Stripe account reversal.
|
36 |
+
*/
|
37 |
+
public function instanceUrl()
|
38 |
+
{
|
39 |
+
$id = $this['id'];
|
40 |
+
$account = $this['account'];
|
41 |
+
if (!$id) {
|
42 |
+
throw new Error\InvalidRequest(
|
43 |
+
"Could not determine which URL to request: " .
|
44 |
+
"class instance has invalid ID: $id",
|
45 |
+
null
|
46 |
+
);
|
47 |
+
}
|
48 |
+
$id = Util\Util::utf8($id);
|
49 |
+
$account = Util\Util::utf8($account);
|
50 |
+
|
51 |
+
$base = Account::classUrl();
|
52 |
+
$accountExtn = urlencode($account);
|
53 |
+
$extn = urlencode($id);
|
54 |
+
return "$base/$accountExtn/capabilities/$extn";
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
* @param array|string $_id
|
59 |
+
* @param array|string|null $_opts
|
60 |
+
*
|
61 |
+
* @throws \Stripe\Error\InvalidRequest
|
62 |
+
*/
|
63 |
+
public static function retrieve($_id, $_opts = null)
|
64 |
+
{
|
65 |
+
$msg = "Capabilities cannot be accessed without an account ID. " .
|
66 |
+
"Retrieve a Capability using \$account->retrieveCapability('acap_123') instead.";
|
67 |
+
throw new Error\InvalidRequest($msg, null);
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* @param string $_id
|
72 |
+
* @param array|null $_params
|
73 |
+
* @param array|string|null $_options
|
74 |
+
*
|
75 |
+
* @throws \Stripe\Error\InvalidRequest
|
76 |
+
*/
|
77 |
+
public static function update($_id, $_params = null, $_options = null)
|
78 |
+
{
|
79 |
+
$msg = "Capabilities cannot be accessed without an account ID. " .
|
80 |
+
"Update a Capability using \$account->updateCapability('acap_123') instead.";
|
81 |
+
throw new Error\InvalidRequest($msg, null);
|
82 |
+
}
|
83 |
+
}
|
stripe-php-6.40.0/lib/Card.php
ADDED
@@ -0,0 +1,130 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Card
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property string $account
|
11 |
+
* @property string $address_city
|
12 |
+
* @property string $address_country
|
13 |
+
* @property string $address_line1
|
14 |
+
* @property string $address_line1_check
|
15 |
+
* @property string $address_line2
|
16 |
+
* @property string $address_state
|
17 |
+
* @property string $address_zip
|
18 |
+
* @property string $address_zip_check
|
19 |
+
* @property string[] $available_payout_methods
|
20 |
+
* @property string $brand
|
21 |
+
* @property string $country
|
22 |
+
* @property string $currency
|
23 |
+
* @property string $customer
|
24 |
+
* @property string $cvc_check
|
25 |
+
* @property bool $default_for_currency
|
26 |
+
* @property string $dynamic_last4
|
27 |
+
* @property int $exp_month
|
28 |
+
* @property int $exp_year
|
29 |
+
* @property string $fingerprint
|
30 |
+
* @property string $funding
|
31 |
+
* @property string $last4
|
32 |
+
* @property StripeObject $metadata
|
33 |
+
* @property string $name
|
34 |
+
* @property string $recipient
|
35 |
+
* @property string $tokenization_method
|
36 |
+
*
|
37 |
+
* @package Stripe
|
38 |
+
*/
|
39 |
+
class Card extends ApiResource
|
40 |
+
{
|
41 |
+
|
42 |
+
const OBJECT_NAME = "card";
|
43 |
+
|
44 |
+
use ApiOperations\Delete;
|
45 |
+
use ApiOperations\Update;
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Possible string representations of the CVC check status.
|
49 |
+
* @link https://stripe.com/docs/api/cards/object#card_object-cvc_check
|
50 |
+
*/
|
51 |
+
const CVC_CHECK_FAIL = 'fail';
|
52 |
+
const CVC_CHECK_PASS = 'pass';
|
53 |
+
const CVC_CHECK_UNAVAILABLE = 'unavailable';
|
54 |
+
const CVC_CHECK_UNCHECKED = 'unchecked';
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Possible string representations of the funding of the card.
|
58 |
+
* @link https://stripe.com/docs/api/cards/object#card_object-funding
|
59 |
+
*/
|
60 |
+
const FUNDING_CREDIT = 'credit';
|
61 |
+
const FUNDING_DEBIT = 'debit';
|
62 |
+
const FUNDING_PREPAID = 'prepaid';
|
63 |
+
const FUNDING_UNKNOWN = 'unknown';
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Possible string representations of the tokenization method when using Apple Pay or Google Pay.
|
67 |
+
* @link https://stripe.com/docs/api/cards/object#card_object-tokenization_method
|
68 |
+
*/
|
69 |
+
const TOKENIZATION_METHOD_APPLE_PAY = 'apple_pay';
|
70 |
+
const TOKENIZATION_METHOD_GOOGLE_PAY = 'google_pay';
|
71 |
+
|
72 |
+
/**
|
73 |
+
* @return string The instance URL for this resource. It needs to be special
|
74 |
+
* cased because cards are nested resources that may belong to different
|
75 |
+
* top-level resources.
|
76 |
+
*/
|
77 |
+
public function instanceUrl()
|
78 |
+
{
|
79 |
+
if ($this['customer']) {
|
80 |
+
$base = Customer::classUrl();
|
81 |
+
$parent = $this['customer'];
|
82 |
+
$path = 'sources';
|
83 |
+
} elseif ($this['account']) {
|
84 |
+
$base = Account::classUrl();
|
85 |
+
$parent = $this['account'];
|
86 |
+
$path = 'external_accounts';
|
87 |
+
} elseif ($this['recipient']) {
|
88 |
+
$base = Recipient::classUrl();
|
89 |
+
$parent = $this['recipient'];
|
90 |
+
$path = 'cards';
|
91 |
+
} else {
|
92 |
+
$msg = "Cards cannot be accessed without a customer ID, account ID or recipient ID.";
|
93 |
+
throw new Error\InvalidRequest($msg, null);
|
94 |
+
}
|
95 |
+
$parentExtn = urlencode(Util\Util::utf8($parent));
|
96 |
+
$extn = urlencode(Util\Util::utf8($this['id']));
|
97 |
+
return "$base/$parentExtn/$path/$extn";
|
98 |
+
}
|
99 |
+
|
100 |
+
/**
|
101 |
+
* @param array|string $_id
|
102 |
+
* @param array|string|null $_opts
|
103 |
+
*
|
104 |
+
* @throws \Stripe\Error\InvalidRequest
|
105 |
+
*/
|
106 |
+
public static function retrieve($_id, $_opts = null)
|
107 |
+
{
|
108 |
+
$msg = "Cards cannot be accessed without a customer, recipient or account ID. " .
|
109 |
+
"Retrieve a card using \$customer->sources->retrieve('card_id'), " .
|
110 |
+
"\$recipient->cards->retrieve('card_id'), or " .
|
111 |
+
"\$account->external_accounts->retrieve('card_id') instead.";
|
112 |
+
throw new Error\InvalidRequest($msg, null);
|
113 |
+
}
|
114 |
+
|
115 |
+
/**
|
116 |
+
* @param string $_id
|
117 |
+
* @param array|null $_params
|
118 |
+
* @param array|string|null $_options
|
119 |
+
*
|
120 |
+
* @throws \Stripe\Error\InvalidRequest
|
121 |
+
*/
|
122 |
+
public static function update($_id, $_params = null, $_options = null)
|
123 |
+
{
|
124 |
+
$msg = "Cards cannot be accessed without a customer, recipient or account ID. " .
|
125 |
+
"Call save() on \$customer->sources->retrieve('card_id'), " .
|
126 |
+
"\$recipient->cards->retrieve('card_id'), or " .
|
127 |
+
"\$account->external_accounts->retrieve('card_id') instead.";
|
128 |
+
throw new Error\InvalidRequest($msg, null);
|
129 |
+
}
|
130 |
+
}
|
stripe-php-6.40.0/lib/Charge.php
ADDED
@@ -0,0 +1,207 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Charge
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $amount
|
11 |
+
* @property int $amount_refunded
|
12 |
+
* @property string $application
|
13 |
+
* @property string $application_fee
|
14 |
+
* @property int $application_fee_amount
|
15 |
+
* @property string $balance_transaction
|
16 |
+
* @property mixed $billing_details
|
17 |
+
* @property bool $captured
|
18 |
+
* @property int $created
|
19 |
+
* @property string $currency
|
20 |
+
* @property string $customer
|
21 |
+
* @property string $description
|
22 |
+
* @property string $destination
|
23 |
+
* @property string $dispute
|
24 |
+
* @property string $failure_code
|
25 |
+
* @property string $failure_message
|
26 |
+
* @property mixed $fraud_details
|
27 |
+
* @property string $invoice
|
28 |
+
* @property bool $livemode
|
29 |
+
* @property StripeObject $metadata
|
30 |
+
* @property string $on_behalf_of
|
31 |
+
* @property string $order
|
32 |
+
* @property mixed $outcome
|
33 |
+
* @property bool $paid
|
34 |
+
* @property string $payment_intent
|
35 |
+
* @property string $payment_method
|
36 |
+
* @property mixed $payment_method_details
|
37 |
+
* @property string $receipt_email
|
38 |
+
* @property string $receipt_number
|
39 |
+
* @property string $receipt_url
|
40 |
+
* @property bool $refunded
|
41 |
+
* @property Collection $refunds
|
42 |
+
* @property string $review
|
43 |
+
* @property mixed $shipping
|
44 |
+
* @property mixed $source
|
45 |
+
* @property string $source_transfer
|
46 |
+
* @property string $statement_descriptor
|
47 |
+
* @property string $status
|
48 |
+
* @property string $transfer
|
49 |
+
* @property mixed $transfer_data
|
50 |
+
* @property string $transfer_group
|
51 |
+
*
|
52 |
+
* @package Stripe
|
53 |
+
*/
|
54 |
+
class Charge extends ApiResource
|
55 |
+
{
|
56 |
+
|
57 |
+
const OBJECT_NAME = "charge";
|
58 |
+
|
59 |
+
use ApiOperations\All;
|
60 |
+
use ApiOperations\Create;
|
61 |
+
use ApiOperations\Retrieve;
|
62 |
+
use ApiOperations\Update;
|
63 |
+
|
64 |
+
/**
|
65 |
+
* Possible string representations of decline codes.
|
66 |
+
* These strings are applicable to the decline_code property of the \Stripe\Error\Card exception.
|
67 |
+
* @link https://stripe.com/docs/declines/codes
|
68 |
+
*/
|
69 |
+
const DECLINED_APPROVE_WITH_ID = 'approve_with_id';
|
70 |
+
const DECLINED_CALL_ISSUER = 'call_issuer';
|
71 |
+
const DECLINED_CARD_NOT_SUPPORTED = 'card_not_supported';
|
72 |
+
const DECLINED_CARD_VELOCITY_EXCEEDED = 'card_velocity_exceeded';
|
73 |
+
const DECLINED_CURRENCY_NOT_SUPPORTED = 'currency_not_supported';
|
74 |
+
const DECLINED_DO_NOT_HONOR = 'do_not_honor';
|
75 |
+
const DECLINED_DO_NOT_TRY_AGAIN = 'do_not_try_again';
|
76 |
+
const DECLINED_DUPLICATED_TRANSACTION = 'duplicate_transaction';
|
77 |
+
const DECLINED_EXPIRED_CARD = 'expired_card';
|
78 |
+
const DECLINED_FRAUDULENT = 'fraudulent';
|
79 |
+
const DECLINED_GENERIC_DECLINE = 'generic_decline';
|
80 |
+
const DECLINED_INCORRECT_NUMBER = 'incorrect_number';
|
81 |
+
const DECLINED_INCORRECT_CVC = 'incorrect_cvc';
|
82 |
+
const DECLINED_INCORRECT_PIN = 'incorrect_pin';
|
83 |
+
const DECLINED_INCORRECT_ZIP = 'incorrect_zip';
|
84 |
+
const DECLINED_INSUFFICIENT_FUNDS = 'insufficient_funds';
|
85 |
+
const DECLINED_INVALID_ACCOUNT = 'invalid_account';
|
86 |
+
const DECLINED_INVALID_AMOUNT = 'invalid_amount';
|
87 |
+
const DECLINED_INVALID_CVC = 'invalid_cvc';
|
88 |
+
const DECLINED_INVALID_EXPIRY_YEAR = 'invalid_expiry_year';
|
89 |
+
const DECLINED_INVALID_NUMBER = 'invalid_number';
|
90 |
+
const DECLINED_INVALID_PIN = 'invalid_pin';
|
91 |
+
const DECLINED_ISSUER_NOT_AVAILABLE = 'issuer_not_available';
|
92 |
+
const DECLINED_LOST_CARD = 'lost_card';
|
93 |
+
const DECLINED_MERCHANT_BLACKLIST = 'merchant_blacklist';
|
94 |
+
const DECLINED_NEW_ACCOUNT_INFORMATION_AVAILABLE = 'new_account_information_available';
|
95 |
+
const DECLINED_NO_ACTION_TAKEN = 'no_action_taken';
|
96 |
+
const DECLINED_NOT_PERMITTED = 'not_permitted';
|
97 |
+
const DECLINED_PICKUP_CARD = 'pickup_card';
|
98 |
+
const DECLINED_PIN_TRY_EXCEEDED = 'pin_try_exceeded';
|
99 |
+
const DECLINED_PROCESSING_ERROR = 'processing_error';
|
100 |
+
const DECLINED_REENTER_TRANSACTION = 'reenter_transaction';
|
101 |
+
const DECLINED_RESTRICTED_CARD = 'restricted_card';
|
102 |
+
const DECLINED_REVOCATION_OF_ALL_AUTHORIZATIONS = 'revocation_of_all_authorizations';
|
103 |
+
const DECLINED_REVOCATION_OF_AUTHORIZATION = 'revocation_of_authorization';
|
104 |
+
const DECLINED_SECURITY_VIOLATION = 'security_violation';
|
105 |
+
const DECLINED_SERVICE_NOT_ALLOWED = 'service_not_allowed';
|
106 |
+
const DECLINED_STOLEN_CARD = 'stolen_card';
|
107 |
+
const DECLINED_STOP_PAYMENT_ORDER = 'stop_payment_order';
|
108 |
+
const DECLINED_TESTMODE_DECLINE = 'testmode_decline';
|
109 |
+
const DECLINED_TRANSACTION_NOT_ALLOWED = 'transaction_not_allowed';
|
110 |
+
const DECLINED_TRY_AGAIN_LATER = 'try_again_later';
|
111 |
+
const DECLINED_WITHDRAWAL_COUNT_LIMIT_EXCEEDED = 'withdrawal_count_limit_exceeded';
|
112 |
+
|
113 |
+
/**
|
114 |
+
* Possible string representations of the status of the charge.
|
115 |
+
* @link https://stripe.com/docs/api/charges/object#charge_object-status
|
116 |
+
*/
|
117 |
+
const STATUS_FAILED = 'failed';
|
118 |
+
const STATUS_PENDING = 'pending';
|
119 |
+
const STATUS_SUCCEEDED = 'succeeded';
|
120 |
+
|
121 |
+
/**
|
122 |
+
* @param array|null $params
|
123 |
+
* @param array|string|null $options
|
124 |
+
*
|
125 |
+
* @return Charge The refunded charge.
|
126 |
+
*/
|
127 |
+
public function refund($params = null, $options = null)
|
128 |
+
{
|
129 |
+
$url = $this->instanceUrl() . '/refund';
|
130 |
+
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
131 |
+
$this->refreshFrom($response, $opts);
|
132 |
+
return $this;
|
133 |
+
}
|
134 |
+
|
135 |
+
/**
|
136 |
+
* @param array|null $params
|
137 |
+
* @param array|string|null $options
|
138 |
+
*
|
139 |
+
* @return Charge The captured charge.
|
140 |
+
*/
|
141 |
+
public function capture($params = null, $options = null)
|
142 |
+
{
|
143 |
+
$url = $this->instanceUrl() . '/capture';
|
144 |
+
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
145 |
+
$this->refreshFrom($response, $opts);
|
146 |
+
return $this;
|
147 |
+
}
|
148 |
+
|
149 |
+
/**
|
150 |
+
* @param array|null $params
|
151 |
+
* @param array|string|null $options
|
152 |
+
*
|
153 |
+
* @deprecated Use the `save` method on the Dispute object
|
154 |
+
*
|
155 |
+
* @return array The updated dispute.
|
156 |
+
*/
|
157 |
+
public function updateDispute($params = null, $options = null)
|
158 |
+
{
|
159 |
+
$url = $this->instanceUrl() . '/dispute';
|
160 |
+
list($response, $opts) = $this->_request('post', $url, $params, $options);
|
161 |
+
$this->refreshFrom(['dispute' => $response], $opts, true);
|
162 |
+
return $this->dispute;
|
163 |
+
}
|
164 |
+
|
165 |
+
/**
|
166 |
+
* @param array|string|null $options
|
167 |
+
*
|
168 |
+
* @deprecated Use the `close` method on the Dispute object
|
169 |
+
*
|
170 |
+
* @return Charge The updated charge.
|
171 |
+
*/
|
172 |
+
public function closeDispute($options = null)
|
173 |
+
{
|
174 |
+
$url = $this->instanceUrl() . '/dispute/close';
|
175 |
+
list($response, $opts) = $this->_request('post', $url, null, $options);
|
176 |
+
$this->refreshFrom($response, $opts);
|
177 |
+
return $this;
|
178 |
+
}
|
179 |
+
|
180 |
+
/**
|
181 |
+
* @param array|string|null $opts
|
182 |
+
*
|
183 |
+
* @return Charge The updated charge.
|
184 |
+
*/
|
185 |
+
public function markAsFraudulent($opts = null)
|
186 |
+
{
|
187 |
+
$params = ['fraud_details' => ['user_report' => 'fraudulent']];
|
188 |
+
$url = $this->instanceUrl();
|
189 |
+
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
190 |
+
$this->refreshFrom($response, $opts);
|
191 |
+
return $this;
|
192 |
+
}
|
193 |
+
|
194 |
+
/**
|
195 |
+
* @param array|string|null $opts
|
196 |
+
*
|
197 |
+
* @return Charge The updated charge.
|
198 |
+
*/
|
199 |
+
public function markAsSafe($opts = null)
|
200 |
+
{
|
201 |
+
$params = ['fraud_details' => ['user_report' => 'safe']];
|
202 |
+
$url = $this->instanceUrl();
|
203 |
+
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
204 |
+
$this->refreshFrom($response, $opts);
|
205 |
+
return $this;
|
206 |
+
}
|
207 |
+
}
|
stripe-php-6.40.0/lib/Checkout/Session.php
ADDED
@@ -0,0 +1,40 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
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 |
+
|
27 |
+
const OBJECT_NAME = "checkout.session";
|
28 |
+
|
29 |
+
use \Stripe\ApiOperations\Create;
|
30 |
+
use \Stripe\ApiOperations\Retrieve;
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Possible string representations of submit type.
|
34 |
+
* @link https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-submit_type
|
35 |
+
*/
|
36 |
+
const SUBMIT_TYPE_AUTO = 'auto';
|
37 |
+
const SUBMIT_TYPE_BOOK = 'book';
|
38 |
+
const SUBMIT_TYPE_DONATE = 'donate';
|
39 |
+
const SUBMIT_TYPE_PAY = 'pay';
|
40 |
+
}
|
stripe-php-6.40.0/lib/Collection.php
ADDED
@@ -0,0 +1,108 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Collection
|
7 |
+
*
|
8 |
+
* @property string $object
|
9 |
+
* @property string $url
|
10 |
+
* @property bool $has_more
|
11 |
+
* @property mixed $data
|
12 |
+
*
|
13 |
+
* @package Stripe
|
14 |
+
*/
|
15 |
+
class Collection extends StripeObject implements \IteratorAggregate
|
16 |
+
{
|
17 |
+
|
18 |
+
const OBJECT_NAME = "list";
|
19 |
+
|
20 |
+
use ApiOperations\Request;
|
21 |
+
|
22 |
+
protected $_requestParams = [];
|
23 |
+
|
24 |
+
/**
|
25 |
+
* @return string The base URL for the given class.
|
26 |
+
*/
|
27 |
+
public static function baseUrl()
|
28 |
+
{
|
29 |
+
return Stripe::$apiBase;
|
30 |
+
}
|
31 |
+
|
32 |
+
public function setRequestParams($params)
|
33 |
+
{
|
34 |
+
$this->_requestParams = $params;
|
35 |
+
}
|
36 |
+
|
37 |
+
public function all($params = null, $opts = null)
|
38 |
+
{
|
39 |
+
list($url, $params) = $this->extractPathAndUpdateParams($params);
|
40 |
+
|
41 |
+
list($response, $opts) = $this->_request('get', $url, $params, $opts);
|
42 |
+
$this->_requestParams = $params;
|
43 |
+
return Util\Util::convertToStripeObject($response, $opts);
|
44 |
+
}
|
45 |
+
|
46 |
+
public function create($params = null, $opts = null)
|
47 |
+
{
|
48 |
+
list($url, $params) = $this->extractPathAndUpdateParams($params);
|
49 |
+
|
50 |
+
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
51 |
+
$this->_requestParams = $params;
|
52 |
+
return Util\Util::convertToStripeObject($response, $opts);
|
53 |
+
}
|
54 |
+
|
55 |
+
public function retrieve($id, $params = null, $opts = null)
|
56 |
+
{
|
57 |
+
list($url, $params) = $this->extractPathAndUpdateParams($params);
|
58 |
+
|
59 |
+
$id = Util\Util::utf8($id);
|
60 |
+
$extn = urlencode($id);
|
61 |
+
list($response, $opts) = $this->_request(
|
62 |
+
'get',
|
63 |
+
"$url/$extn",
|
64 |
+
$params,
|
65 |
+
$opts
|
66 |
+
);
|
67 |
+
$this->_requestParams = $params;
|
68 |
+
return Util\Util::convertToStripeObject($response, $opts);
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* @return \ArrayIterator An iterator that can be used to iterate
|
73 |
+
* across objects in the current page.
|
74 |
+
*/
|
75 |
+
public function getIterator()
|
76 |
+
{
|
77 |
+
return new \ArrayIterator($this->data);
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* @return Util\AutoPagingIterator An iterator that can be used to iterate
|
82 |
+
* across all objects across all pages. As page boundaries are
|
83 |
+
* encountered, the next page will be fetched automatically for
|
84 |
+
* continued iteration.
|
85 |
+
*/
|
86 |
+
public function autoPagingIterator()
|
87 |
+
{
|
88 |
+
return new Util\AutoPagingIterator($this, $this->_requestParams);
|
89 |
+
}
|
90 |
+
|
91 |
+
private function extractPathAndUpdateParams($params)
|
92 |
+
{
|
93 |
+
$url = parse_url($this->url);
|
94 |
+
if (!isset($url['path'])) {
|
95 |
+
throw new Error\Api("Could not parse list url into parts: $url");
|
96 |
+
}
|
97 |
+
|
98 |
+
if (isset($url['query'])) {
|
99 |
+
// If the URL contains a query param, parse it out into $params so they
|
100 |
+
// don't interact weirdly with each other.
|
101 |
+
$query = [];
|
102 |
+
parse_str($url['query'], $query);
|
103 |
+
$params = array_merge($params ?: [], $query);
|
104 |
+
}
|
105 |
+
|
106 |
+
return [$url['path'], $params];
|
107 |
+
}
|
108 |
+
}
|
stripe-php-6.40.0/lib/CountrySpec.php
ADDED
@@ -0,0 +1,26 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class CountrySpec
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property string $default_currency
|
11 |
+
* @property mixed $supported_bank_account_currencies
|
12 |
+
* @property string[] $supported_payment_currencies
|
13 |
+
* @property string[] $supported_payment_methods
|
14 |
+
* @property string[] $supported_transfer_countries
|
15 |
+
* @property mixed $verification_fields
|
16 |
+
*
|
17 |
+
* @package Stripe
|
18 |
+
*/
|
19 |
+
class CountrySpec extends ApiResource
|
20 |
+
{
|
21 |
+
|
22 |
+
const OBJECT_NAME = "country_spec";
|
23 |
+
|
24 |
+
use ApiOperations\All;
|
25 |
+
use ApiOperations\Retrieve;
|
26 |
+
}
|
stripe-php-6.40.0/lib/Coupon.php
ADDED
@@ -0,0 +1,36 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Coupon
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property int $amount_off
|
11 |
+
* @property int $created
|
12 |
+
* @property string $currency
|
13 |
+
* @property string $duration
|
14 |
+
* @property int $duration_in_months
|
15 |
+
* @property bool $livemode
|
16 |
+
* @property int $max_redemptions
|
17 |
+
* @property StripeObject $metadata
|
18 |
+
* @property string $name
|
19 |
+
* @property float $percent_off
|
20 |
+
* @property int $redeem_by
|
21 |
+
* @property int $times_redeemed
|
22 |
+
* @property bool $valid
|
23 |
+
*
|
24 |
+
* @package Stripe
|
25 |
+
*/
|
26 |
+
class Coupon extends ApiResource
|
27 |
+
{
|
28 |
+
|
29 |
+
const OBJECT_NAME = "coupon";
|
30 |
+
|
31 |
+
use ApiOperations\All;
|
32 |
+
use ApiOperations\Create;
|
33 |
+
use ApiOperations\Delete;
|
34 |
+
use ApiOperations\Retrieve;
|
35 |
+
use ApiOperations\Update;
|
36 |
+
}
|
stripe-php-6.40.0/lib/CreditNote.php
ADDED
@@ -0,0 +1,74 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
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 |
+
|
31 |
+
const OBJECT_NAME = "credit_note";
|
32 |
+
|
33 |
+
use ApiOperations\All;
|
34 |
+
use ApiOperations\Create;
|
35 |
+
use ApiOperations\Retrieve;
|
36 |
+
use ApiOperations\Update;
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Possible string representations of the credit note reason.
|
40 |
+
* @link https://stripe.com/docs/api/credit_notes/object#credit_note_object-reason
|
41 |
+
*/
|
42 |
+
const REASON_DUPLICATE = 'duplicate';
|
43 |
+
const REASON_FRAUDULENT = 'fraudulent';
|
44 |
+
const REASON_ORDER_CHANGE = 'order_change';
|
45 |
+
const REASON_PRODUCT_UNSATISFACTORY = 'product_unsatisfactory';
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Possible string representations of the credit note status.
|
49 |
+
* @link https://stripe.com/docs/api/credit_notes/object#credit_note_object-status
|
50 |
+
*/
|
51 |
+
const STATUS_ISSUED = 'issued';
|
52 |
+
const STATUS_VOID = 'void';
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Possible string representations of the credit note type.
|
56 |
+
* @link https://stripe.com/docs/api/credit_notes/object#credit_note_object-status
|
57 |
+
*/
|
58 |
+
const TYPE_POST_PAYMENT = 'post_payment';
|
59 |
+
const TYPE_PRE_PAYMENT = 'pre_payment';
|
60 |
+
|
61 |
+
/**
|
62 |
+
* @param array|null $params
|
63 |
+
* @param array|string|null $opts
|
64 |
+
*
|
65 |
+
* @return CreditNote The voided credit note.
|
66 |
+
*/
|
67 |
+
public function voidCreditNote($params = null, $opts = null)
|
68 |
+
{
|
69 |
+
$url = $this->instanceUrl() . '/void';
|
70 |
+
list($response, $opts) = $this->_request('post', $url, $params, $opts);
|
71 |
+
$this->refreshFrom($response, $opts);
|
72 |
+
return $this;
|
73 |
+
}
|
74 |
+
}
|
stripe-php-6.40.0/lib/Customer.php
ADDED
@@ -0,0 +1,320 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace Stripe;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Customer
|
7 |
+
*
|
8 |
+
* @property string $id
|
9 |
+
* @property string $object
|
10 |
+
* @property mixed $address
|
11 |
+
* @property int $balance
|
12 |
+
* @property string $created
|
13 |
+
* @property string $currency
|
14 |
+
* @property string $default_source
|
15 |
+
* @property bool $delinquent
|
16 |
+
* @property string $description
|
17 |
+
* @property Discount $discount
|
18 |
+
* @property string $email
|
19 |
+
* @property string $invoice_prefix
|
20 |
+
* @property mixed $invoice_settings
|
21 |
+
* @property bool $livemode
|
22 |
+
* @property StripeObject $metadata
|
23 |
+
* @property string $name
|
24 |
+
* @property string $phone
|
25 |
+
* @property string[] preferred_locales
|
26 |
+
* @property mixed $shipping
|
27 |
+
* @property Collection $sources
|
28 |
+
* @property Collection $subscriptions
|
29 |
+
* @property string $tax_exempt
|
30 |
+
* @property Collection $tax_ids
|
31 |
+
*
|
32 |
+
* @package Stripe
|
33 |
+
*/
|
34 |
+
class Customer extends ApiResource
|
35 |
+
{
|
36 |
+
|
37 |
+
const OBJECT_NAME = "customer";
|
38 |
+
|
39 |
+
use ApiOperations\All;
|
40 |
+
use ApiOperations\Create;
|
41 |
+
use ApiOperations\Delete;
|
42 |
+
use ApiOperations\NestedResource;
|
43 |
+
use ApiOperations\Retrieve;
|
44 |
+
use ApiOperations\Update;
|
45 |
+
|
46 |
+
/**
|
47 |
+
* Possible string representations of the customer's type of tax exemption.
|
48 |
+
* @link https://stripe.com/docs/api/customers/object#customer_object-tax_exempt
|
49 |
+
*/
|
50 |
+
const TAX_EXEMPT_NONE = 'none';
|
51 |
+
const TAX_EXEMPT_EXEMPT = 'exempt';
|
52 |
+
const TAX_EXEMPT_REVERSE = 'reverse';
|
53 |
+
|
54 |
+
public static function getSavedNestedResources()
|
55 |
+
{
|
56 |
+
static $savedNestedResources = null;
|
57 |
+
if ($savedNestedResources === null) {
|
58 |
+
$savedNestedResources = new Util\Set([
|
59 |
+
'source',
|
60 |
+
]);
|
61 |
+
}
|
62 |
+
return $savedNestedResources;
|
63 |
+
}
|
64 |
+
|
65 |
+
const PATH_BALANCE_TRANSACTIONS = '/balance_transactions';
|
66 |
+
const PATH_SOURCES = '/sources';
|
67 |
+
const PATH_TAX_IDS = '/tax_ids';
|
68 |
+
|
69 |
+
/**
|
70 |
+
* @param array|null $params
|
71 |
+
*
|
72 |
+
* @return InvoiceItem The resulting invoice item.
|
73 |
+
*/
|
74 |
+
public function addInvoiceItem($params = null)
|
75 |
+
{
|
76 |
+
$params = $params ?: [];
|
77 |
+
$params['customer'] = $this->id;
|
78 |
+
$ii = InvoiceItem::create($params, $this->_opts);
|
79 |
+
return $ii;
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* @param array|null $params
|
84 |
+
*
|
85 |
+
* @return array An array of the customer's Invoices.
|
86 |
+
*/
|
87 |
+
public function invoices($params = null)
|
88 |
+
{
|
89 |
+
$params = $params ?: [];
|
90 |
+
$params['customer'] = $this->id;
|
91 |
+
$invoices = Invoice::all($params, $this->_opts);
|
92 |
+
return $invoices;
|
93 |
+
}
|
94 |
+
|
95 |
+
/**
|
96 |
+
* @param array|null $params
|
97 |
+
*
|
98 |
+
* @return array An array of the customer's InvoiceItems.
|
99 |
+
*/
|
100 |
+
public function invoiceItems($params = null)
|
101 |
+
{
|
102 |
+
$params = $params ?: [];
|
103 |
+
$params['customer'] = $this->id;
|
104 |
+
$iis = InvoiceItem::all($params, $this->_opts);
|
105 |
+
return $iis;
|
106 |
+
}
|
107 |
+
|
108 |
+
/**
|
109 |
+
* @param array|null $params
|
110 |
+
*
|
111 |
+
* @return array An array of the customer's Charges.
|
112 |
+
*/
|
113 |
+
public function charges($params = null)
|
114 |
+
{
|
115 |
+
$params = $params ?: [];
|
116 |
+
$params['customer'] = $this->id;
|
117 |
+
$charges = Charge::all($params, $this->_opts);
|
118 |
+
return $charges;
|
119 |
+
}
|
120 |
+
|
121 |
+
/**
|
122 |
+
* @param array|null $params
|
123 |
+
*
|
124 |
+
* @return Subscription The updated subscription.
|
125 |
+
*/
|
126 |
+
public function updateSubscription($params = null)
|
127 |
+
{
|
128 |
+
$url = $this->instanceUrl() . '/subscription';
|
129 |
+
list($response, $opts) = $this->_request('post', $url, $params);
|
130 |
+
$this->refreshFrom(['subscription' => $response], $opts, true);
|
131 |
+
return $this->subscription;
|
132 |
+
}
|
133 |
+
|
134 |
+
/**
|
135 |
+
* @param array|null $params
|
136 |
+
*
|
137 |
+
* @return Subscription The cancelled subscription.
|
138 |
+
*/
|
139 |
+
public function cancelSubscription($params = null)
|
140 |
+
{
|
141 |
+
$url = $this->instanceUrl() . '/subscription';
|
142 |
+
list($response, $opts) = $this->_request('delete', $url, $params);
|
143 |
+
$this->refreshFrom(['subscription' => $response], $opts, true);
|
144 |
+
return $this->subscription;
|
145 |
+
}
|
146 |
+
|
147 |
+
/**
|
148 |
+
* @return Customer The updated customer.
|
149 |
+
*/
|
150 |
+
public function deleteDiscount()
|
151 |
+
{
|
152 |
+
$url = $this->instanceUrl() . '/discount';
|
153 |
+
list($response, $opts) = $this->_request('delete', $url);
|
154 |
+
$this->refreshFrom(['discount' => null], $opts, true);
|
155 |
+
}
|
156 |
+
|
157 |
+
/**
|
158 |
+
* @param string|null $id The ID of the customer on which to create the source.
|
159 |
+
* @param array|null $params
|
160 |
+
* @param array|string|null $opts
|
161 |
+
*
|
162 |
+
* @return ApiResource
|
163 |
+
*/
|
164 |
+
public static function createSource($id, $params = null, $opts = null)
|
165 |
+
{
|
166 |
+
return self::_createNestedResource($id, static::PATH_SOURCES, $params, $opts);
|
167 |
+
}
|
168 |
+
|
169 |
+
/**
|
170 |
+
* @param string|null $id The ID of the customer to which the source belongs.
|
171 |
+
* @param string|null $sourceId The ID of the source to retrieve.
|
172 |
+
* @param array|null $params
|
173 |
+
* @param array|string|null $opts
|
174 |
+
*
|
175 |
+
* @return ApiResource
|
176 |
+
*/
|
177 |
+
public static function retrieveSource($id, $sourceId, $params = null, $opts = null)
|
178 |
+
{
|
179 |
+
return self::_retrieveNestedResource($id, static::PATH_SOURCES, $sourceId, $params, $opts);
|
180 |
+
}
|
181 |
+
|
182 |
+
/**
|
183 |
+
* @param string|null $id The ID of the customer to which the source belongs.
|
184 |
+
* @param string|null $sourceId The ID of the source to update.
|
185 |
+
* @param array|null $params
|
186 |
+
* @param array|string|null $opts
|
187 |
+
*
|
188 |
+
* @return ApiResource
|
189 |
+
*/
|
190 |
+
public static function updateSource($id, $sourceId, $params = null, $opts = null)
|
191 |
+
{
|
192 |
+
return self::_updateNestedResource($id, static::PATH_SOURCES, $sourceId, $params, $opts);
|
193 |
+
}
|
194 |
+
|
195 |
+
/**
|
196 |
+
* @param string|null $id The ID of the customer to which the source belongs.
|
197 |
+
* @param string|null $sourceId The ID of the source to delete.
|
198 |
+
* @param array|null $params
|
199 |
+
* @param array|string|null $opts
|
200 |
+
*
|
201 |
+
* @return ApiResource
|
202 |
+
*/
|
203 |
+
public static function deleteSource($id, $sourceId, $params = null, $opts = null)
|
204 |
+
{
|
205 |
+
return self::_deleteNestedResource($id, static::PATH_SOURCES, $sourceId, $params, $opts);
|
206 |
+
}
|
207 |
+
|
208 |
+
/**
|
209 |
+
* @param string|null $id The ID of the customer on which to retrieve the sources.
|
210 |
+
* @param array|null $params
|
211 |
+
* @param array|string|null $opts
|
212 |
+
*
|
213 |
+
* @return Collection The list of sources.
|
214 |
+
*/
|
215 |
+
public static function allSources($id, $params = null, $opts = null)
|
216 |
+
{
|
217 |
+
return self::_allNestedResources($id, static::PATH_SOURCES, $params, $opts);
|
218 |
+
}
|
219 |
+
|
220 |
+
/**
|
221 |
+
* @param string|null $id The ID of the customer on which to create the tax id.
|
222 |
+
* @param array|null $params
|
223 |
+
* @param array|string|null $opts
|
224 |
+
*
|
225 |
+
* @return ApiResource
|
226 |
+
*/
|
227 |
+
public static function createTaxId($id, $params = null, $opts = null)
|
228 |
+
{
|
229 |
+
return self::_createNestedResource($id, static::PATH_TAX_IDS, $params, $opts);
|
230 |
+
}
|
231 |
+
|
232 |
+
/**
|
233 |
+
* @param string|null $id The ID of the customer to which the tax id belongs.
|
234 |
+
* @param string|null $taxIdId The ID of the tax id to retrieve.
|
235 |
+
* @param array|null $params
|