diff --git a/.gitignore b/.gitignore index 55a842d..a5d592a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ db/ assets/html/adminSignup.php -*.env \ No newline at end of file diff --git a/README.md b/README.md index 65eb270..991aa1a 100644 --- a/README.md +++ b/README.md @@ -1,34 +1 @@ -# HopeBridge - Charity Website - -HopeBridge is a charity donation platform built using **PHP**, enabling users to contribute seamlessly. It integrates **Razorpay Payment Gateway (Testing Mode)** to facilitate secure online donations. - -![HopeBridge Logo](screenshots/image.png) - -## 🌟 Features -- User-friendly interface for seamless donations -- Secure payment processing via **Razorpay (Test Mode)** -- Admin panel to manage donations and user data -- Responsive design for all devices -- Contact and about sections to increase trust - -## 🛠️ Technologies Used -- **Frontend**: HTML, CSS, JavaScript, Bootstrap -- **Backend**: PHP, MySQL -- **Payment Gateway**: Razorpay (Test Mode) - -## 📂 Project Setup - -### Prerequisites -- XAMPP / WAMP installed -- MySQL database setup -- Razorpay test API credentials - -### Environmental Variable -- Rename `.env.example` to `.env` -- Fill in the environment variables by visiting the [Razorpay Dashboard](https://dashboard.razorpay.com/app/website-app-settings/api-keys) -- Acquire the API keys and paste them into the corresponding values - -### Steps to Run -1. Clone this repository: - ```sh - git clone https://github.com/OnkVerse/HopeBridge + \ No newline at end of file diff --git a/assets/css/indexStyle.css b/assets/css/indexStyle.css index 843517d..d5d1fa8 100644 --- a/assets/css/indexStyle.css +++ b/assets/css/indexStyle.css @@ -116,6 +116,53 @@ color: inherit; } + + .ngo-introduction { + background-color: #f8f9fa; + } + + .ngo-introduction h2 { + color: #333; + font-weight: 600; + } + + .mission-vision { + box-shadow: 0 0 20px rgba(0,0,0,0.1); + border-radius: 15px; + overflow: hidden; + padding: 20px; + background: #ffffff; + } + + .mission, .vision { + transition: all 0.3s ease; + border: 2px solid #85A947; + border-radius: 12px; + margin-bottom: 20px; + background: #fff; + box-shadow: 0 5px 15px rgba(133, 169, 71, 0.1); + } + + .mission:hover, .vision:hover { + transform: translateY(-5px); + box-shadow: 0 8px 20px rgba(133, 169, 71, 0.2); + } + + .mission h4, .vision h4 { + border-bottom: 2px solid #85A947; + } + + .text-success { + color: #85A947 !important; + font-weight: bold; + } + + @media (max-width: 768px) { + .mission-vision { + margin-top: 2rem; + } + } + /*new styling for boxes*/ .section-2 { background-color: #f9f9f9; @@ -151,11 +198,7 @@ } .section-2 img { - width: 120px; - height: 120px; - border-radius: 50%; - border: 4px solid #3E7B27; - margin-bottom: 15px; + } .section-2 h3 { @@ -183,7 +226,7 @@ .third_h2 { font-size: 2.5rem; font-weight: bold; - color: #3E7B27; + color: #85A947 !important; margin-bottom: 30px; } @@ -260,10 +303,10 @@ .py-5 h2 { font-size: 2.5rem; font-weight: bold; - color: #3E7B27; + color: #85A947 !important; margin-bottom: 20px; } - + /* Paragraph Styling */ .py-5 p { font-size: 1.2rem; diff --git a/assets/html/about.html b/assets/html/about.html new file mode 100644 index 0000000..8ddfdc3 --- /dev/null +++ b/assets/html/about.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + About us + + + + + + + + + + + + +

+ + +
+
+

About Us

+
+
+ + +
+
+

+ We recognize the **unique value** of children in our community and the urgent need for infrastructure improvements in various regions. Our mission is to expand and enhance our services, making them more accessible to ensure a **better quality of life** for all. + + We are deeply concerned about the rising prevalence of **special needs** among children and young adults. Addressing this issue requires **immediate action** at multiple levels—including nurseries, schools, universities, and workplaces—to ensure that these individuals receive the **support and opportunities** needed to become active, contributing members of society. + + By fostering inclusivity and accessibility, we aim to create a **healthier, more productive, and compassionate community** for future generations. +

+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/assets/html/about.php b/assets/html/about.php index 0be2a1f..db17c6a 100644 --- a/assets/html/about.php +++ b/assets/html/about.php @@ -99,32 +99,302 @@ + + + + + + + + + + + + +
+
+
+
+

Welcome to Charity

+

+ Since 2017, we've been dedicated to making a positive impact in communities across the nation. + Through education, healthcare, and infrastructure development, we work tirelessly to create + lasting change and build a better future for all. +

+
+
+
+
+ + +
+
+

What We Do

+
+
+
+ +

Education Support

+

Providing educational resources, scholarships, and infrastructure to empower future generations.

+
+
+
+
+ +

Healthcare Initiatives

+

Ensuring access to quality healthcare services and medical support for communities in need.

+
+
+
+
+ +

Infrastructure Development

+

Building and improving community infrastructure for sustainable development.

+
+
+
+
+
+ + +
+
+

Our Journey

+
+
+

2017 - Foundation

+

Established with a vision to create positive change in communities.

+
+
+

2018 - First Major Project

+

Launched our first educational support program reaching 500 students.

+
+
+

2020 - Expansion

+

Extended our services to healthcare and infrastructure development.

+
+
+

2022 - Milestone Achievement

+

Successfully completed 100+ projects across multiple sectors.

+
+
+
+
+ + +
+
+

Our Impact

+
+
+
+

2800+

+

Lives Impacted

+
+
+
+
+

₹1.3cr+

+

Funds Raised

+
+
+
+
+

180+

+

Projects Completed

+
+
+
+
+

25+

+

Cities Reached

+
+
+
+
+
+ + +
+
+

Our Leadership Team

+
+
+
+ Team Member +

John Doe

+

Founder & CEO

+
+
+
+
+ Team Member +

Anastasia lea

+

Operations Director

+
+
+
+
+ Team Member +

Mark Lee

+

Program Manager

+
+
+
+
+
+ + +
+
+

Our Partners

+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+

- We recognize the **unique value** of children in our community and the urgent need for infrastructure + We recognize the unique value of children in our community and the urgent need for infrastructure improvements in various regions. Our mission is to expand and enhance our services, making them more - accessible to ensure a **better quality of life** for all. - - We are deeply concerned about the rising prevalence of **special needs** among children and young - adults. Addressing this issue requires **immediate action** at multiple levels—including nurseries, - schools, universities, and workplaces—to ensure that these individuals receive the **support and - opportunities** needed to become active, contributing members of society. - - By fostering inclusivity and accessibility, we aim to create a **healthier, more productive, and - compassionate community** for future generations. + accessible to ensure a better quality of life for all. We are deeply concerned about the rising prevalence of special needs among children and young + adults. Addressing this issue requires immediate action at multiple levels—including nurseries, + schools, universities, and workplaces—to ensure that these individuals receive the support and + opportunities needed to become active, contributing members of society. By fostering inclusivity and accessibility, we aim to create a healthier, more productive, and + compassionate community for future generations.

- + +
+
+

Join Our Mission

+

Together, we can make a difference in the lives of those who need it most.

+ +
+
+ + - diff --git a/assets/php/env.php b/assets/php/env.php deleted file mode 100644 index 4b36b78..0000000 --- a/assets/php/env.php +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/assets/php/razorpay-php/.editorconfig b/assets/php/razorpay-php/.editorconfig deleted file mode 100644 index 1cb3220..0000000 --- a/assets/php/razorpay-php/.editorconfig +++ /dev/null @@ -1,14 +0,0 @@ -# This file is for unifying the coding style for different editors and IDEs -# editorconfig.org - -root = true - -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[**.php] -indent_style = space -indent_size = 4 diff --git a/assets/php/razorpay-php/.github/ISSUE_TEMPLATE/feature.yml b/assets/php/razorpay-php/.github/ISSUE_TEMPLATE/feature.yml deleted file mode 100644 index b13ce74..0000000 --- a/assets/php/razorpay-php/.github/ISSUE_TEMPLATE/feature.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: feature.md -description: Submit a proposal for a new feature -title: '[Feature]: ' -labels: [':rocket: Feature Request'] -body: - - type: markdown - attributes: - value: | - ### Thank you for taking the time to suggest a new feature! - We kindly ask that you search to see if an issue [already exists](https://github.com/razorpay/razorpay-php/issues?q=is%3Aissue+sort%3Acreated-desc+) for your feature. - We are also happy to accept contributions from our users. - - type: textarea - id: description - attributes: - label: '🚀 Feature Proposal' - description: - validations: - required: true - - type: textarea - id: solution - attributes: - label: Suggested Solution - description: - validations: - required: true - - type: textarea - id: alternatives - attributes: - label: Alternatives - description: - validations: - required: false - - type: textarea - id: extra - attributes: - label: Additional Information - description: - validations: - required: true diff --git a/assets/php/razorpay-php/.github/ISSUE_TEMPLATE/issue_report.yml b/assets/php/razorpay-php/.github/ISSUE_TEMPLATE/issue_report.yml deleted file mode 100644 index c8e894d..0000000 --- a/assets/php/razorpay-php/.github/ISSUE_TEMPLATE/issue_report.yml +++ /dev/null @@ -1,62 +0,0 @@ -name: issue.md -description: Create a report to help us improve -labels: ["issue"] -body: - - type: markdown - attributes: - value: | - Thanks for taking the time to fill out this issue report! - - type: textarea - id: repro-steps - attributes: - label: Steps to reproduce the behavior - description: - placeholder: | - 1. Fetch a '...' - 2. Update the '....' - 3. See error - validations: - required: true - - type: textarea - id: expected-behavior - attributes: - label: Expected behavior - description: A clear and concise description of what you expected to happen. - validations: - required: true - - type: textarea - id: actual-behavior - attributes: - label: Actual behavior - description: A clear and concise description of what actually happen. - validations: - required: true - - type: textarea - id: code-snippets - attributes: - label: Code snippets - description: If applicable, add code snippets to help explain your problem. - render: Php - validations: - required: false - - type: input - id: language-version - attributes: - label: Php version - placeholder: Php v7.4 - validations: - required: true - - type: input - id: lib-version - attributes: - label: Library version - placeholder: razorpay-php v2.8.4 - validations: - required: true - - type: textarea - id: additional-context - attributes: - label: Additional Information - description: Add any other information about the problem here. - validations: - required: false diff --git a/assets/php/razorpay-php/.github/dependabot.yml b/assets/php/razorpay-php/.github/dependabot.yml deleted file mode 100644 index 7d29770..0000000 --- a/assets/php/razorpay-php/.github/dependabot.yml +++ /dev/null @@ -1,8 +0,0 @@ -version: 2 -updates: -- package-ecosystem: composer - directory: "/" - schedule: - interval: daily - time: "04:00" - timezone: Asia/Calcutta diff --git a/assets/php/razorpay-php/.github/pull_request_template.md b/assets/php/razorpay-php/.github/pull_request_template.md deleted file mode 100644 index ccbd370..0000000 --- a/assets/php/razorpay-php/.github/pull_request_template.md +++ /dev/null @@ -1,8 +0,0 @@ -## Note :- Please follow the below points while attaching test cases document link below: - ### - If label `Tested` is added then test cases document URL is mandatory. - ### - Link added should be a valid URL and accessible throughout the org. - ### - If the branch name contains hotfix / revert by default the BVT workflow check will pass. - -| Test Case Document URL | -|-----------------------------------------------| -| Please paste test case document link here.... | diff --git a/assets/php/razorpay-php/.github/workflows/ci.yml b/assets/php/razorpay-php/.github/workflows/ci.yml deleted file mode 100644 index 869955d..0000000 --- a/assets/php/razorpay-php/.github/workflows/ci.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: CI -on: - push: - branches: - - master - tags: - - v[0-9]+.[0-9]+.[0-9]+* - pull_request: - branches: - - master -jobs: - run: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Set up php 8.0 - uses: shivammathur/setup-php@v2 - with: - php-version: '8.0' - - name: 'Create env file' - run: | - touch ${{ github.workspace }}/tests/.env - echo RAZORPAY_API_KEY=${{ secrets.RAZORPAY_API_KEY }} >> ${{ github.workspace }}/tests/.env - echo RAZORPAY_API_SECRET=${{ secrets.RAZORPAY_API_SECRET }} >> ${{ github.workspace }}/tests/.env - cat ${{ github.workspace }}/tests/.env - - name: Install dependencies - run: composer self-update && composer install && composer require vlucas/phpdotenv && composer dump-autoload - - name: Run tests and collect coverage - run: vendor/bin/phpunit ./tests/CoverageTest.php --coverage-clover coverage.xml . - env: - RAZORPAY_API_KEY: ${{ secrets.RAZORPAY_API_KEY }} - RAZORPAY_API_SECRET: ${{ secrets.RAZORPAY_API_SECRET }} - RAZORPAY_PARTNER_API_KEY: ${{ secrets.RAZORPAY_PARTNER_API_KEY }} - RAZORPAY_PARTNER_API_SECRET: ${{ secrets.RAZORPAY_PARTNER_API_SECRET }} - - name: Upload coverage to Codecov - uses: codecov/codecov-action@v3 diff --git a/assets/php/razorpay-php/.github/workflows/security.yml b/assets/php/razorpay-php/.github/workflows/security.yml deleted file mode 100644 index 65b89bc..0000000 --- a/assets/php/razorpay-php/.github/workflows/security.yml +++ /dev/null @@ -1,51 +0,0 @@ -name: SecurityChecks -on: - pull_request: {} - push: - branches: ["master"] - schedule: - - cron: '30 20 * * *' -jobs: - semgrep: - name: Semgrep - runs-on: [ubuntu-latest] - container: - image: returntocorp/semgrep - steps: - - uses: actions/checkout@v4.0.0 - - name: Run semgrep - run: semgrep ci - env: - SEMGREP_APP_TOKEN: ${{ secrets.SEMGREP_APP_TOKEN }} - - workflow_status: - runs-on: [ ubuntu-latest ] # nosemgrep : semgrep.dev/s/swati31196:github_provided_runner - name: Update Status Check - needs: [ semgrep ] - if: always() - env: - githubCommit: ${{ github.event.pull_request.head.sha }} - steps: - - name: Set github commit id - run: | - if [ "${{ github.event_name }}" = "push" ] || [ "${{ github.event_name }}" = "schedule" ]; then - echo "githubCommit=${{ github.sha }}" >> $GITHUB_ENV - fi - exit 0 - - name: Failed - id: failed - if: (contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')) && github.ref != 'refs/heads/master' - run: | - echo 'Failing the workflow for github security status check.' - curl -X POST -H "Content-Type: application/json" -H "Authorization: token ${{ github.token }}" \ - -d '{ "state" : "failure" , "context" : "github/security-status-check" , "description" : "github/security-status-check", "target_url" : "https://github.com/${{ github.repository }}" }' \ - https://api.github.com/repos/${{ github.repository }}/statuses/${{ env.githubCommit }} - exit 1 - - name: Success - if: steps.failed.conclusion == 'skipped' || github.ref != 'refs/heads/master' - run: | - echo 'Status check has passed!' - curl -X POST -H "Content-Type: application/json" -H "Authorization: token ${{ github.token }}" \ - -d '{ "state" : "success" , "context" : "github/security-status-check" , "description" : "github/security-status-check", "target_url" : "https://github.com/${{ github.repository }}" }' \ - https://api.github.com/repos/${{ github.repository }}/statuses/${{ env.githubCommit }} - exit 0 diff --git a/assets/php/razorpay-php/.gitignore b/assets/php/razorpay-php/.gitignore deleted file mode 100644 index 4100c39..0000000 --- a/assets/php/razorpay-php/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -composer.lock -phpunit.xml -vendor/ -reports/ -**/.DS_Store \ No newline at end of file diff --git a/assets/php/razorpay-php/.semgrepignore b/assets/php/razorpay-php/.semgrepignore deleted file mode 100644 index e69de29..0000000 diff --git a/assets/php/razorpay-php/.travis.yml b/assets/php/razorpay-php/.travis.yml deleted file mode 100644 index f267144..0000000 --- a/assets/php/razorpay-php/.travis.yml +++ /dev/null @@ -1,45 +0,0 @@ -dist: precise -language: php -php: -- 7.3 -- 7.4 -- 8.0 -- 8.1 - -install: composer install -before_script: - - cp phpunit.xml.dist phpunit.xml - # These two are required in the build step for non-composer-tests - - mkdir -p libs - - cd libs && wget https://github.com/rmccue/Requests/archive/v2.0.4.zip -O requests.zip && unzip requests.zip && rm requests.zip && cd .. - - rm -rf libs/Requests-2.0.4/examples libs/Requests-2.0.4/docs libs/Requests-2.0.4/bin libs/Requests-2.0.4/tests -script: - # Run a syntax validation check on all PHP files - - find . -path ./vendor -prune -o -iname '*.php' |xargs -n1 php -l - - ./vendor/bin/phpunit - -notifications: - slack: - secure: fLT1x7BCXi8+sP1Qk1lP74+60JIBCw2clUTSOmB0OuoQGWYIJ4qelKcGH5FFsADGuC1GX2pf0fKRiLdavVrGpBkD4MGFPpyYKPYb0S/FyArN3PjdaNvAqE1VgQCtKkbugP5bHH9bp631+lo2EGQVLWTjlwiijWbCEyDu3L0YVMY= -# We are doing the releases for non-composer folks -# So this includes the vendor directory -before_deploy: - - echo $TRAVIS_TAG > version.txt - - cat release.txt |zip -r@ "razorpay-php.zip" -deploy: - provider: releases - # Otherwise, we lose the vendor/ directory - skip_cleanup: true - api_key: - secure: bHcu1jUASH6aVSD1LmzXdjQC4hc0o8EBbVs9X8e5j+/OC7+UuBBRu+jh6gQje/XWu9Nj1W2LkWhv0IKX1tJbcs0uRstggx+xC0ZayRzkscsqErqeM4WeyJjxe5ewb2eeGujtl9+WWFB3wpUQJtxXaaPuGYtroYGGYuI23wzKN4A= - # travis doesn't support multi file deployes yet, not that we need them - file: razorpay-php.zip - on: - # Only do the release for one build every tag - php: 7.3 - # GitHub refuses to accept releases that are not tagged - tags: true - # Allow builds for non-master branches as well - all_branches: true - # Only do the releases if the repo is not a fork - repo: razorpay/razorpay-php diff --git a/assets/php/razorpay-php/CHANGELOG.md b/assets/php/razorpay-php/CHANGELOG.md deleted file mode 100644 index 6a788fb..0000000 --- a/assets/php/razorpay-php/CHANGELOG.md +++ /dev/null @@ -1,260 +0,0 @@ -# Change Log - -Changelog for Razorpay-PHP SDK. Follows [keepachangelog.com](https://keepachangelog.com/en/1.0.0/) for formatting. - -## Unreleased - -## [2.9.0] - 2023-12-18 -feat: Added new API endpoints - -* Added support for `addBankAccount`, `deleteBankAccount`, `requestEligibilityCheck` & `fetchEligibility` on customer -* Added support for `uploadAccountDoc` & `fetchAccountDoc` on account -* Added support for [Dispute](https://razorpay.com/docs/api/disputes/) -* Added support for [Document](https://razorpay.com/docs/api/documents/) -* Added support for fetch all IINs Supporting native otps & fetch all IINs with business sub-type using `all` -* Added support for `viewRtoReview` & `editFulfillment` on order -* Added support for fetch a payment (emi/ offer/ card/ upi) using `expandedDetails` on payments -* Added support for `uploadStakeholderDoc` & `fetchStakeholderDoc` on stakeholder - - -## [2.8.7] - 2023-09-11 -[#357](https://github.com/razorpay/razorpay-php/pull/357) [`b29754f`](https://github.com/razorpay/razorpay-php/commit/b29754f8892e0c2035055cf73fd7ab132de18e52) Chore: Changed Content-Type `application/json` for `order create` API from default `application/x-www-form-urlencoded` - - -## [2.8.6] - 2023-06-16 -[#348](https://github.com/razorpay/razorpay-php/pull/348) [`68b2028`](https://github.com/razorpay/razorpay-php/commit/68b2028bafda49af970a098d6d11aa8e5a575d40) feat: Added new API endpoints - -* Added account onboarding API (create, fetch, edit, delete) -* Added stakeholders API (create, fetch, fetchAll, edit) -* Added product configuration API (requestProductConfiguration, fetch, edit, fetchTnc) -* Added webhooks API (create, fetch, fetchAll, edit, delete) -* Added token sharing API (create, fetch, delete, processPaymentOnAlternatePAorPG) - -## [2.8.5] - 2022-10-19 - -### Added -- Update [Request](https://github.com/WordPress/Requests/tree/v2.0.4) library to v2.0.4 - -## [2.8.4] - 2022-06-28 - -- New APIs for Third party validation (createUpi, validateVpa, fetchPaymentMethods) -- Update documentation - -## [2.8.3] - 2022-04-29 - -- PHP v8.1 is officially supported -- Update [Request](https://github.com/WordPress/Requests/tree/v2.0.0) library to v2.0 -- Improve documentation -- Add PHPUnit v9 - -## [2.8.2] - 2022-03-08 - -- Change name convention to standard in Unit test -- Removed test api key due to security concern from test cases - -## [2.8.1] - 2021-11-08 - -### Added - -- Added Item Api -- Added Unit Tests - -## [2.8.0][2.8.0] - 2021-10-07 - -### Added -- QR code end point API [[#235](https://github.com/razorpay/razorpay-php/pull/235)] -- Update, cancel, create subscription link,fetch details of a Pending Update,cancel, pause and resume subscription API[[#236](https://github.com/razorpay/razorpay-php/pull/236)] -- Smart Collect(Virtual Account) TPV API's [[#238](https://github.com/razorpay/razorpay-php/pull/238)] -- Add/Delete TPV Bank Account [[#239](https://github.com/razorpay/razorpay-php/pull/239)] -- Card end point api [[#240](https://github.com/razorpay/razorpay-php/pull/240)] -- Route end point api [[#241](https://github.com/razorpay/razorpay-php/pull/241)] -- Register emandate and charge first payment together [[#245](https://github.com/razorpay/razorpay-php/pull/245)] -- PaperNACH/Register NACH and charge first payment together [[#246](https://github.com/razorpay/razorpay-php/pull/246)] -- Added payment and Settlements methods [[#247](https://github.com/razorpay/razorpay-php/pull/247)] -- Added edit and notify API's for payment links [[#248](https://github.com/razorpay/razorpay-php/pull/248)] -- Added fetch, fetch multiple refund,edit and notify API's for refunds [[#250](https://github.com/razorpay/razorpay-php/pull/250)] -- Added edit order API [[#251](https://github.com/razorpay/razorpay-php/pull/251)] -- Fund API's end point [[#252](https://github.com/razorpay/razorpay-php/pull/252)] -- UPI [[#253](https://github.com/razorpay/razorpay-php/pull/253)] -- Added payment link paymentverification [[#255](https://github.com/razorpay/razorpay-php/pull/255)] -- Update readme file [[#254](https://github.com/razorpay/razorpay-php/pull/254)] - -## [2.7.1][2.7.1] - 2021-09-16 - -### Added - -- Added Payment Link end point API [[#233](https://github.com/razorpay/razorpay-php/pull/233)] - -## [2.7.0][2.7.0] - 2021-05-07 - -### Added - -- Adds support for payment page enity API [[#224](https://github.com/razorpay/razorpay-php/pull/224)] - -## [2.6.1][2.6.1] - 2021-04-30 - -### Changed - -- Upgrades [requests](https://github.com/rmccue/Requests/) to v1.8. [[#221](https://github.com/razorpay/razorpay-php/pull/221)] - -## [2.6.0][2.6.0] - 2021-04-05 - -### Added - -- Adds support for webhook enity API [[#212](https://github.com/razorpay/razorpay-php/pull/212)] - -## [2.4.0-beta][2.4.0-beta] - 2018-11-28 - -### Changed - -- Upgrades [requests](https://github.com/rmccue/Requests/) to v1.7. [[#89](https://github.com/razorpay/razorpay-php/pull/89)] -- Enforces TLS1.1+ for all requests. Workaround for a bug in RHEL 6. [[#76](https://github.com/razorpay/razorpay-php/pull/76)] - -## [2.3.0][2.3.0] - 2018-09-15 - -### Added - -- Add parameters to Subscription Cancel API -- Support for fetching Settlements - -## [2.2.1][2.2.1] - 2018-05-28 - -### Added - -- Support for fetching all customer entities - -## [2.2.0][2.2.0] - 2017-10-23 - -### Added - -- Support for VirtualAccount entity -- Support for Subscriptions - -## [2.1.0][2.1.0] - 2017-10-10 - -### Added - -- Support for new actions(cancel, notifyBy, edit, issue, delete) on invoices -- Removes PHP 5.3 from list of versions to test build against - -## [2.0.2][2.0.2] - 2017-08-03 - -### Added - -- Support for creating and fetching Transfers -- Support for creating Reversals on transfers - -## [2.0.1][2.0.1] - 2017-07-31 - -### Fixed - -- Webhook signature verification -- Conditional require of Request class - -## [2.0.0][2.0.0] - 2017-03-07 - -### Added - -- Support for custom Application header -- Support for card entity -- Support for Webhook and Order Signature verification -- Support for direct refund creation via Razorpay\Api\Refund::create() -- Support for Utility functions via Razorpay\Api\Utility::verifyPaymentSignature and Razorpay\Api\Utility::verifyWebhookSignature -- Support for case insensitive error codes -- Support for 2xx HTTP status codes - -### Changed - -- Razorpay\Api\Payment::refunds() now returns a Razorpay\Api\Collection object instead of Razorpay\Api\Refund object -- Razorpay\Api\Api::$baseUrl, Razorpay\Api\Api::$key and Razorpay\Api\Api::$secret are now `protected` instead of `public` - -## [1.2.9][1.2.9] - 2017-01-03 - -### Added - -- Support for creating and fetching Invoices - -## [1.2.8][1.2.8] - 2016-10-12 - -### Added - -- Support for Customer and Token entities - -## [1.2.7][1.2.7] - 2016-09-21 - -### Added - -- Increases the request timeout to 30 seconds for all requests. - -## [1.2.6][1.2.6] - 2016-03-28 - -### Added - -- Adds better tracing when client is not able to recognize server response. - -## [1.2.5][1.2.5] - 2016-03-28 - -### Added - -- Add support for overriding request headers via setHeader - -## [1.2.3][1.2.3] - 2016-02-24 - -### Added - -- Add support for Orders - -## [1.2.2][1.2.2] - 2016-02-17 - -### Changed - -- Razorpay\Api\Request::checkErrors is now `protected` instead of `private` -- The final build is now leaner and includes just requests, instead of entire vendor directory - -## [1.2.1][1.2.1] - 2016-01-21 - -### Added - -- Add version.txt in release with current git tag -- This changelog file -- `Api\Request::getHeaders()` method - -## [1.2.0][1.2.0] - 2015-10-23 - -### Added - -- Add version string to User Agent - -### Changed - -- New release process that pushes pre-packaged zip files to GitHub - -## 1.0.0 - 2015-01-18 - -### Added - -- Initial Release - -[unreleased]: https://github.com/razorpay/razorpay-php/compare/2.5.0...HEAD -[1.2.1]: https://github.com/razorpay/razorpay-php/compare/1.2.0...1.2.1 -[1.2.0]: https://github.com/razorpay/razorpay-php/compare/1.1.0...1.2.0 -[1.2.2]: https://github.com/razorpay/razorpay-php/compare/1.2.1...1.2.2 -[1.2.3]: https://github.com/razorpay/razorpay-php/compare/1.2.2...1.2.3 -[1.2.4]: https://github.com/razorpay/razorpay-php/compare/1.2.3...1.2.4 -[1.2.5]: https://github.com/razorpay/razorpay-php/compare/1.2.4...1.2.5 -[1.2.6]: https://github.com/razorpay/razorpay-php/compare/1.2.5...1.2.6 -[1.2.7]: https://github.com/razorpay/razorpay-php/compare/1.2.6...1.2.7 -[1.2.8]: https://github.com/razorpay/razorpay-php/compare/1.2.7...1.2.8 -[1.2.9]: https://github.com/razorpay/razorpay-php/compare/1.2.8...1.2.9 -[2.0.0]: https://github.com/razorpay/razorpay-php/compare/1.2.9...2.0.0 -[2.0.1]: https://github.com/razorpay/razorpay-php/compare/2.0.0...2.0.1 -[2.0.2]: https://github.com/razorpay/razorpay-php/compare/2.0.1...2.0.2 -[2.1.0]: https://github.com/razorpay/razorpay-php/compare/2.0.2...2.1.0 -[2.2.0]: https://github.com/razorpay/razorpay-php/compare/2.1.0...2.2.0 -[2.2.1]: https://github.com/razorpay/razorpay-php/compare/2.2.0...2.2.1 -[2.3.0]: https://github.com/razorpay/razorpay-php/compare/2.2.1...2.3.0 -[2.4.0-beta]: https://github.com/razorpay/razorpay-php/compare/2.3.0...2.4.0-beta -[2.5.0]: https://github.com/razorpay/razorpay-php/compare/2.4.0-beta...2.5.0 -[2.8.0]: https://github.com/razorpay/razorpay-php/compare/2.7.1...2.8.0 -[2.8.1]: https://github.com/razorpay/razorpay-php/compare/2.8.0...2.8.1 -[2.8.2]: https://github.com/razorpay/razorpay-php/compare/2.8.0...2.8.2 diff --git a/assets/php/razorpay-php/Deprecated.php b/assets/php/razorpay-php/Deprecated.php deleted file mode 100644 index ca439da..0000000 --- a/assets/php/razorpay-php/Deprecated.php +++ /dev/null @@ -1,20 +0,0 @@ - - -### Prerequisites -- A minimum of PHP 7.3 upto 8.1 - - -## Installation - -- If your project using composer, run the below command - -``` -composer require razorpay/razorpay:2.* -``` - -- If you are not using composer, download the latest release from [the releases section](https://github.com/razorpay/razorpay-php/releases). - **You should download the `razorpay-php.zip` file**. - After that, include `Razorpay.php` in your application and you can use the API as usual. - -##Note: -This PHP library follows the following practices: - -- Namespaced under `Razorpay\Api` -- API throws exceptions instead of returning errors -- Options are passed as an array instead of multiple arguments wherever possible -- All requests and responses are communicated over JSON - -## Documentation - -Documentation of Razorpay's API and their usage is available at - -## Basic Usage - -Instantiate the razorpay php instance with `key_id` & `key_secret`. You can obtain the keys from the dashboard app ([https://dashboard.razorpay.com/#/app/keys](https://dashboard.razorpay.com/#/app/keys)) - -```php -use Razorpay\Api\Api; - -$api = new Api($api_key, $api_secret); -``` - -The resources can be accessed via the `$api` object. All the methods invocations follows the following pattern - -```php - // $api->class->function() to access the API - //Example - $api->payment->fetch($paymentId); -``` -## Supported Resources -- [Account](documents/account.md) -- [Customer](documents/customer.md) -- [Dispute](documents/dispute.md) -- [Document](documents/document.md) -- [Token](documents/token.md) -- [Order](documents/order.md) -- [Payments](documents/payment.md) -- [Settlements](documents/settlement.md) -- [Refunds](documents/refund.md) -- [Fund](documents/fund.md) -- [Invoice](documents/invoice.md) -- [Iin](documents/Iin.md) -- [Plan](documents/plan.md) -- [Item](documents/item.md) -- [Subscriptions](documents/subscription.md) -- [Add-on](documents/addon.md) -- [Payment Links](documents/paymentLink.md) -- [Product Configuration](documents/productConfiguration.md) -- [Smart Collect](documents/virtualaccount.md) -- [Stakeholder](documents/stakeholder.md) -- [Transfer](documents/transfer.md) -- [QR Code](documents/qrcode.md) -- [Emandate](documents/emandate.md) -- [Cards](documents/card.md) -- [Paper NACH](documents/papernach.md) -- [UPI](documents/upi.md) -- [Register Emandate and Charge First Payment Together](documents/registeremandate.md) -- [Register NACH and Charge First Payment Together](documents/registernach.md) -- [Payment Verification](documents/paymentVerfication.md) -- [Webhook](documents/webhook.md) - - -## Development - -See the [doc.md](doc.md) file for getting started with development. - -## Release - -Steps to follow for a release: - -0. Merge the branch with the new code to master. -1. Bump the Version in `src/Api.php`. -2. Rename Unreleased to the new tag in `CHANGELOG.md` -3. Add a new empty "Unreleased" section at the top of `CHANGELOG.md` -4. Fix links at bottom in `CHANGELOG.md` -5. Commit -6. Tag the release and push to GitHub -7. A release should automatically be created once the travis build passes. Edit the release to add some description. - -## License - -The Razorpay PHP SDK is released under the MIT License. See [LICENSE](LICENSE) file for more details. diff --git a/assets/php/razorpay-php/Razorpay.php b/assets/php/razorpay-php/Razorpay.php deleted file mode 100644 index 9a00b18..0000000 --- a/assets/php/razorpay-php/Razorpay.php +++ /dev/null @@ -1,60 +0,0 @@ -=7.3", - "rmccue/requests": "^2.0", - "ext-json": "*" - }, - "require-dev": { - "raveren/kint": "1.*", - "phpunit/phpunit": "^9" - }, - "autoload": { - "psr-4": { - "Razorpay\\Api\\": "src/", - "Razorpay\\Tests\\": "tests/" - }, - "files" : ["Deprecated.php"] - } -} diff --git a/assets/php/razorpay-php/doc.md b/assets/php/razorpay-php/doc.md deleted file mode 100644 index a358708..0000000 --- a/assets/php/razorpay-php/doc.md +++ /dev/null @@ -1,48 +0,0 @@ -This document talks about the implementation of the code for the Api. - -Everything comes under namespace Razorpay\Api\. -Namespaces put a requirement of PHP 5.3 minimum - -```php -namespace Razorpay\ - -class Api -{ - - // Contains a __get function that returns the appropriate - // class object when one tries to access them. -} - - - -namespace Razorpay\ - -class Client -{ - // Handles request and response - // Uses Composer:Requests internally -} - -class Payment -{ - public function get($id) - { - - } - - public function fetch($options) - { - - } - - public function capture($id) - { - - } - - public function refund($id) - { - - } -} -``` \ No newline at end of file diff --git a/assets/php/razorpay-php/documents/Iin.md b/assets/php/razorpay-php/documents/Iin.md deleted file mode 100644 index bedb86b..0000000 --- a/assets/php/razorpay-php/documents/Iin.md +++ /dev/null @@ -1,104 +0,0 @@ -### Iin - -### Token IIN API - -```php -$tokenIin = "412345"; -$api->iin->fetch($tokenIin); -``` - -**Parameters:** - -| Name | Type | Description | -|------------|--------|-----------------------------------| -| tokenIin* | string | The token IIN. | - -**Response:** -```json -{ - "iin": "412345", - "entity": "iin", - "network": "Visa", - "type": "credit", - "sub_type": "business", - "issuer_code": "HDFC", - "issuer_name": "HDFC Bank Ltd", - "international": false, - "is_tokenized": true, - "card_iin": "411111", - "emi":{ - "available": true - }, - "recurring": { - "available": true - }, - "authentication_types": [ - { - "type":"3ds" - }, - { - "type":"otp" - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch All IINs Supporting Native OTP - -```php -$api->iin->all(array("flow" => "otp")); -``` - -**Response:** -```json -{ - "count": 24, - "iins": [ - "512967", - "180005", - "401704", - "401806", - "123456", - "411111", - "123512967", - "180012305", - "401123704" - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch All IINs with Business Sub-type - -```php -$api->iin->all(array("sub_type" => "business")); -``` - -**Response:** -```json -{ - "count": 24, - "iins": [ - "512967", - "180005", - "401704", - "401806", - "607389", - "652203", - "414367", - "787878", - "123456", - "411111", - "123512967", - "180012305", - "401123704" - ] -} -``` -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/payments/cards/iin-api/#iin-entity)** \ No newline at end of file diff --git a/assets/php/razorpay-php/documents/account.md b/assets/php/razorpay-php/documents/account.md deleted file mode 100644 index 38b7190..0000000 --- a/assets/php/razorpay-php/documents/account.md +++ /dev/null @@ -1,447 +0,0 @@ -## Account - -### Create an Account -```php -$api->account->create(array( - "email" => "gauriagain.kumar@example.org", - "phone" => "9000090000", - "legal_business_name" => "Acme Corp", - "business_type" => "partnership", - "customer_facing_business_name" => "Example", - "profile" => array( - "category" => "healthcare", - "subcategory" => "clinic", - "description" => "Healthcare E-commerce platform", - "addresses" => array( - "operation" => array( - "street1" => "507, Koramangala 6th block", - "street2" => "Kormanagala", - "city" => "Bengaluru", - "state" => "Karnataka", - "postal_code" => 560047, - "country" => "IN" - ), - "registered" => array( - "street1" => "507, Koramangala 1st block", - "street2" => "MG Road", - "city" => "Bengaluru", - "state" => "Karnataka", - "postal_code" => 560034, - "country" => "IN" - ) - ), - "business_model" => "Online Clothing ( men, women, ethnic, modern ) fashion and lifestyle, accessories, t-shirt, shirt, track pant, shoes." - ), - "legal_info" => array( - "pan" => "AAACL1234C", - "gst" => "18AABCU9603R1ZM" - ), - "brand" => array( - "color" => "FFFFFF" - ), - "notes" => array( - "internal_ref_id" => "123123" - ), - "contact_name" => "Gaurav Kumar", - "contact_info" => array( - "chargeback" => array( - "email" => "cb@example.org" - ), - "refund" => array( - "email" => "cb@example.org" - ), - "support" => array( - "email" => "support@example.org", - "phone" => "9999999998", - "policy_url" => "https://www.google.com" - ) - ), - "apps" => array( - "websites" => array( - "https://www.example.org" - ), - "android" => array( - array( - "url" => "playstore.example.org", - "name" => "Example" - ) - ), - "ios" => array( - array( - "url" => "appstore.example.org", - "name" => "Example" - ) - ) - ) -)); - -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| email* | string | The sub-merchant's business email address. | -| phone* | integer | The sub-merchant's business phone number. The minimum length is 8 characters and the maximum length is 15. | -| legal_business_name* | string | The name of the sub-merchant's business. For example, Acme Corp. The minimum length is 4 characters and the maximum length is 200. | -| customer_facing_business_name | string | The sub-merchant billing label as it appears on the Razorpay Dashboard. The minimum length is 1 character and the maximum length is 255. | -| business_type | string | The type of business operated by the sub-merchant.Possible value is `proprietorship`, `partnership`, `private_limited`, `public_limited`, `llp`, `ngo`, `trust`, `society`, `not_yet_registered`, `huf` | -| reference_id | string | Partner's external account reference id. The minimum length is 1 character and the maximum length is 512. | -| profile | object | All keys listed [here](https://razorpay.com/docs/api/partners/account-onboarding/#create-an-account) are supported | -| legal_info | object | All keys listed [here](hhttps://razorpay.com/docs/api/partners/account-onboarding/#create-an-account) are supported | -| brand | object | All keys listed [here](https://razorpay.com/docs/api/partners/account-onboarding/#create-an-account) are supported | -| notes | object | A key-value pair | -| contact_name* | string | The name of the contact. The minimum length is 4 and the maximum length is 255 characters. | -| contact_info | object | All keys listed [here](https://razorpay.com/docs/api/partners/account-onboarding/#create-an-account) are supported | -| apps | object | All keys listed [here](https://razorpay.com/docs/api/partners/account-onboarding/#create-an-account) are supported | - - -**Response:** -```json -{ - "id": "acc_GRWKk7qQsLnDjX", - "type": "standard", - "status": "created", - "email": "gauriagain.kumar@example.org", - "profile": { - "category": "healthcare", - "subcategory": "clinic", - "addresses": { - "registered": { - "street1": "507, Koramangala 1st block", - "street2": "MG Road", - "city": "Bengaluru", - "state": "KARNATAKA", - "postal_code": 560034, - "country": "IN" - }, - "operation": { - "street1": "507, Koramangala 6th block", - "street2": "Kormanagalo", - "city": "Bengaluru", - "state": "KARNATAKA", - "country": "IN", - "postal_code": 560047 - } - }, - "business_model": "Online Clothing ( men, women, ethnic, modern ) fashion and lifestyle, accessories, t-shirt, shirt, track pant, shoes." - }, - "notes": { - "internal_ref_id": "123123" - }, - "created_at": 1611136837, - "phone": "9000090000", - "business_type": "partnership", - "legal_business_name": "Acme Corp", - "customer_facing_business_name": "Example", - "legal_info": { - "pan": "AAACL1234C", - "gst": "18AABCU9603R1ZM" - }, - "apps": { - "websites": [ - "https://www.example.org" - ], - "android": [ - { - "url": "playstore.example.org", - "name": "Example" - } - ], - "ios": [ - { - "url": "appstore.example.org", - "name": "Example" - } - ] - }, - "brand": { - "color": "#FFFFFF" - }, - "contact_info": { - "chargeback": { - "email": "cb@example.org", - "phone": null, - "policy_url": null - }, - "refund": { - "email": "cb@example.org", - "phone": null, - "policy_url": null - }, - "support": { - "email": "support@example.org", - "phone": "9999999998", - "policy_url": "https://www.google.com" - } - } -} -``` - -------------------------------------------------------------------------------------------------------- - -### Edit Account - -```php -$accountId = "acc_GP4lfNA0iIMn5B"; - -$api->account->edit($accountId,array( - "customer_facing_business_name" => "ABCD Ltd" -)); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| phone | integer | The sub-merchant's business phone number. The minimum length is 8 characters and the maximum length is 15. | -| legal_business_name | string | The name of the sub-merchant's business. For example, Acme Corp. The minimum length is 4 characters and the maximum length is 200. | -| customer_facing_business_name | string | The sub-merchant billing label as it appears on the Razorpay Dashboard. The minimum length is 1 character and the maximum length is 255. | -| profile | object | All keys listed [here](https://razorpay.com/docs/api/partners/account-onboarding/#update-an-account) are supported | -| legal_info | object | All keys listed [here](hhttps://razorpay.com/docs/api/partners/account-onboarding/#update-an-account) are supported | -| brand | object | All keys listed [here](https://razorpay.com/docs/api/partners/account-onboarding/#update-an-account) are supported | -| notes | object | A key-value pair | -| contact_name* | string | The name of the contact. The minimum length is 4 and the maximum length is 255 characters. | -| contact_info | object | All keys listed [here](https://razorpay.com/docs/api/partners/account-onboarding/#update-an-account) are supported | -| apps | object | All keys listed [here](https://razorpay.com/docs/api/partners/account-onboarding/#update-an-account) are supported | - -**Response:** -```json -{ - "id": "acc_GP4lfNA0iIMn5B", - "type": "standard", - "status": "created", - "email": "gauri@example.org", - "profile": { - "category": "healthcare", - "subcategory": "clinic", - "addresses": { - "registered": { - "street1": "507, Koramangala 1st block", - "street2": "MG Road-1", - "city": "Bengalore", - "state": "KARNATAKA", - "postal_code": "560034", - "country": "IN" - } - } - }, - "notes": [], - "created_at": 1610603081, - "phone": "9000090000", - "reference_id": "randomId", - "business_type": "partnership", - "legal_business_name": "Acme Corp", - "customer_facing_business_name": "ABCD Ltd" -} -``` -------------------------------------------------------------------------------------------------------- - -### Delete an account -```php -$accountId = "acc_GP4lfNA0iIMn5B"; -$api->account->delete($accountId); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| accountId* | string | The unique identifier of a sub-merchant account that must be deleted. | - -**Response:** -```json -{ - "id": "acc_GXQAkO2MrvBYg4", - "type": "standard", - "status": "suspended", - "email": "gaurav.kumar@acme.org", - "profile": { - "category": "healthcare", - "subcategory": "clinic", - "addresses": { - "registered": { - "street1": "507, Koramangala 1st block", - "street2": "MG Road", - "city": "Bengaluru", - "state": "KARNATAKA", - "postal_code": "560034", - "country": "IN" - }, - "operation": { - "street1": "507, Koramangala 1st block", - "street2": "MG Road", - "city": "Bengaluru", - "state": "KARNATAKA", - "country": "IN", - "postal_code": "560034" - } - }, - "business_model": "Online Clothing ( men, women, ethnic, modern ) fashion and lifestyle, accessories, t-shirt, shirt, track pant, shoes." - }, - "notes": { - "internal_ref_id": "123123" - }, - "created_at": 1612425180, - "suspended_at": 1612425235, - "phone": "9000090000", - "reference_id": "account_COdeRandom", - "business_type": "partnership", - "legal_business_name": "Acme Corp Pvt Ltd", - "customer_facing_business_name": "Acme", - "legal_info": { - "pan": "AAACL1234C", - "gst": "18AABCU9603R1ZM" - }, - "apps": { - "websites": [ - "https://www.acme.org" - ], - "android": [ - { - "url": "playstore.acme.org", - "name": "Acme" - } - ], - "ios": [ - { - "url": "appstore.acme.org", - "name": "Acme" - } - ] - }, - "brand": { - "color": "#FFFFFF" - }, - "contact_name": "Gaurav Kumar", - "contact_info": { - "chargeback": { - "email": "cb@acme.org", - "phone": "9000090000", - "policy_url": "https://www.google.com" - }, - "refund": { - "email": "cb@acme.org", - "phone": "9898989898", - "policy_url": "https://www.google.com" - }, - "support": { - "email": "support@acme.org", - "phone": "9898989898", - "policy_url": "https://www.google.com" - } - } -} -``` - -------------------------------------------------------------------------------------------------------- - -### Fetch an account -```php -$accountId = "acc_GP4lfNA0iIMn5B"; -$api->account->fetch($accountId); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|-------------|---------------------------------------------| -| accountId* | string | The unique identifier of a sub-merchant account generated by Razorpay. | - -**Response:** -```json -{ - "id": "acc_GP4lfNA0iIMn5B", - "type": "standard", - "status": "created", - "email": "gauri@example.org", - "profile": { - "category": "healthcare", - "subcategory": "clinic", - "addresses": { - "registered": { - "street1": "507, Koramangala 1st block", - "street2": "MG Road-1", - "city": "Bengalore", - "state": "KARNATAKA", - "postal_code": "560034", - "country": "IN" - } - } - }, - "notes": [], - "created_at": 1610603081, - "phone": "9000090000", - "reference_id": "randomId", - "business_type": "partnership", - "legal_business_name": "Acme Corp", - "customer_facing_business_name": "Example Pvt. Ltd." -} -``` - -------------------------------------------------------------------------------------------------------- - -### Upload account documents -```php - -$accountId = "acc_M83Uw27KXuC7c8"; - -$payload = [ - 'file'=> '/Users/your_name/Downloads/sample_uploaded.pdf' - "document_type" => "business_proof_url" -]; - -$api->account->fetch($accoundId)->uploadAccountDoc($payload); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|-------------|---------------------------------------------| -| accountId* | string | The unique identifier of a sub-merchant account generated by Razorpay. | -| file* | string | The URL generated once the business proof document is uploaded. | -| document_type* | string | The documents valid for the proof type to be shared. Possible values :
business_proof_of_identification: `shop_establishment_certificate`, `gst_certificate`, `msme_certificate`, `business_proof_url`, `business_pan_url`,

additional_documents : `form_12_a_url`, `form_80g_url`, `cancelled_cheque` | - -**Response:** -```json -{ - "business_proof_of_identification": [ - { - "type": "business_proof_url", - "url": "" - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch account documents -```php -$accountId = "acc_M83Uw27KXuC7c8"; - -$api->account->fetch($accoundId)->fetchAccountDoc(); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|-------------|---------------------------------------------| -| accountId* | string | The unique identifier of a sub-merchant account generated by Razorpay. | - -**Response:** -```json -{ - "business_proof_of_identification": [ - { - "type": "business_proof_url", - "url": "" - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/partners/account-onboarding/)** \ No newline at end of file diff --git a/assets/php/razorpay-php/documents/addon.md b/assets/php/razorpay-php/documents/addon.md deleted file mode 100644 index 70def94..0000000 --- a/assets/php/razorpay-php/documents/addon.md +++ /dev/null @@ -1,167 +0,0 @@ -## Addons - -### Create an addon - -```php -$api->subscription->fetch($subscriptionId)->createAddon(array('item' => array('name' => 'Extra Chair', 'amount' => 30000, 'currency' => 'INR'), 'quantity' => 2)); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| subscriptionId* | boolean | The subscription ID to which the add-on is being added. | -| items | array | All parameters listed [here](https://razorpay.com/docs/api/payments/subscriptions/#create-an-add-on) | -| quantity | integer | This specifies the number of units of the add-on to be charged to the customer. | - -**Response:** -```json -{ - "id":"ao_00000000000001", - "entity":"addon", - "item":{ - "id":"item_00000000000001", - "active":true, - "name":"Extra appala (papadum)", - "description":"1 extra oil fried appala with meals", - "amount":30000, - "unit_amount":30000, - "currency":"INR", - "type":"addon", - "unit":null, - "tax_inclusive":false, - "hsn_code":null, - "sac_code":null, - "tax_rate":null, - "tax_id":null, - "tax_group_id":null, - "created_at":1581597318, - "updated_at":1581597318 - }, - "quantity":2, - "created_at":1581597318, - "subscription_id":"sub_00000000000001", - "invoice_id":null -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch all addons - -```php -$api->addon->all($options); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| from | timestamp | timestamp after which the addons were created | -| to | timestamp | timestamp before which the addons were created | -| count | integer | number of addons to fetch (default: 10) | -| skip | integer | number of addons to be skipped (default: 0) | - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "ao_00000000000002", - "entity": "addon", - "item": { - "id": "item_00000000000002", - "active": true, - "name": "Extra sweet", - "description": "1 extra sweet of the day with meals", - "amount": 90000, - "unit_amount": 90000, - "currency": "INR", - "type": "addon", - "unit": null, - "tax_inclusive": false, - "hsn_code": null, - "sac_code": null, - "tax_rate": null, - "tax_id": null, - "tax_group_id": null, - "created_at": 1581597318, - "updated_at": 1581597318 - }, - "quantity": 1, - "created_at": 1581597318, - "subscription_id": "sub_00000000000001", - "invoice_id": "inv_00000000000001" - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch an addon - -```php -$api->addon->fetch($addonId); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| addonId* | string | addon id to be fetched | - -**Response:** -```json -{ - "id":"ao_00000000000001", - "entity":"addon", - "item":{ - "id":"item_00000000000001", - "active":true, - "name":"Extra appala (papadum)", - "description":"1 extra oil fried appala with meals", - "amount":30000, - "unit_amount":30000, - "currency":"INR", - "type":"addon", - "unit":null, - "tax_inclusive":false, - "hsn_code":null, - "sac_code":null, - "tax_rate":null, - "tax_id":null, - "tax_group_id":null, - "created_at":1581597318, - "updated_at":1581597318 - }, - "quantity":2, - "created_at":1581597318, - "subscription_id":"sub_00000000000001", - "invoice_id":null -} -``` -------------------------------------------------------------------------------------------------------- - -### Delete an addon - -```php -$api->addon->fetch($addonId)->delete(); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|--------------| -| addonId* | string | addon id to be deleted | - -**Response:** -```json -[] -``` -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/subscriptions/#add-ons)** diff --git a/assets/php/razorpay-php/documents/card.md b/assets/php/razorpay-php/documents/card.md deleted file mode 100644 index 5c81cfe..0000000 --- a/assets/php/razorpay-php/documents/card.md +++ /dev/null @@ -1,547 +0,0 @@ -## Cards - -### Create customer -```php -$api->customer->create(array('name' => 'Razorpay User', 'email' => 'customer@razorpay.com','contact'=>'9123456780', 'fail_existing'=> '0', 'notes'=> array('notes_key_1'=> 'Tea, Earl Grey, Hot','notes_key_2'=> 'Tea, Earl Grey… decaf'))); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| name* | string | Name of the customer | -| email | string | Email of the customer | -| contact | string | Contact number of the customer | -| fail_existing | string | If a customer with the same details already exists, the request throws an exception by default. Possible value is `0` or `1`| -| notes | array | A key-value pair | - -**Response:** -```json -{ - "id": "cust_1Aa00000000003", - "entity": "customer", - "name": "Gaurav Kumar", - "email": "Gaurav.Kumar@example.com", - "contact": "9000000000", - "gstin": null, - "notes": { - "notes_key_1": "Tea, Earl Grey, Hot", - "notes_key_2": "Tea, Earl Grey… decaf." - }, - "created_at": 1582033731 -} -``` -------------------------------------------------------------------------------------------------------- - -### Create Order - -```php -$api->order->create(array('amount' => 100, 'currency' => 'INR', 'receipt' => '123', 'customer_id'=> $customerId, 'method'=>'card', 'token'=>array('max_amount'=>'5000', 'expire_at'=>'2709971120', 'frequency'=>'monthly'), 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| amount* | integer | The amount to be captured (should be equal to the authorized amount, in paise) | -| currency* | string | The currency of the payment (defaults to INR) | -| customerId* | string | The id of the customer to be fetched | -| receipt | string | Your system order reference id. | -| method | string | Payment method used to make the registration transaction. Possible value is `card`. | -| token | array | All keys listed [here](https://razorpay.com/docs/api/recurring-payments/cards/authorization-transaction/#112-create-an-order) are supported | -| notes | array | A key-value pair | - -**Response:** -```json -{ - "id":"order_1Aa00000000002", - "entity":"order", - "amount":100, - "amount_paid":0, - "amount_due":100, - "currency":"INR", - "receipt":"Receipt No. 1", - "method":"card", - "description":null, - "customer_id":"cust_4xbQrmEoA5WJ01", - "token":{ - "max_amount":5000, - "expire_at":2709971120, - "frequency":"monthly" - }, - "offer_id":null, - "status":"created", - "attempts":0, - "notes":{ - "notes_key_1":"Tea, Earl Grey, Hot", - "notes_key_2":"Tea, Earl Grey… decaf." - }, - "created_at":1565172642 -} -``` -------------------------------------------------------------------------------------------------------- - -### Create registration link - -```php -$api->subscription->createSubscriptionRegistration(array('customer'=>array('name'=>'Gaurav Kumar','email'=>'gaurav.kumar@example.com','contact'=>'9123456780'),'type'=>'link','amount'=>100,'currency'=>'INR','description'=>'Registration Link for Gaurav Kumar','subscription_registration'=>array('method'=>'card','max_amount'=>'500','expire_at'=>'1634215992'),'receipt'=>'Receipt No. 5','email_notify'=>1,'sms_notify'=>1,'expire_by'=>1634215992, 'notes'=> array('note_key 1'=> 'Beam me up Scotty','note_key 2'=> 'Tea. Earl Gray. Hot.'))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| customer | array | All parameters listed [here](https://razorpay.com/docs/api/payments/recurring-payments/cards/create-authorization-transaction/#121-create-a-registration-link) are supported | -| type* | array | the value is `link`. | -| amount* | integer | The amount to be captured (should be equal to the authorized amount, in paise) | -| currency* | string | The currency of the payment (defaults to INR) | -| description* | string | A brief description of the payment. | -| subscription_registration | array | All keys listed [here](https://razorpay.com/docs/api/recurring-payments/cards/authorization-transaction/#121-create-a-registration-link) are supported | -| receipt | string | Your system order reference id. | -| sms_notify | boolean | SMS notifications are to be sent by Razorpay (default : 1) | -| email_notify | boolean | Email notifications are to be sent by Razorpay (default : 1) | -| expire_by | integer | The timestamp, in Unix format, till when the customer can make the authorization payment. | -| notes | array | A key-value pair | - -**Response:** -```json -{ - "id": "inv_FHrXGIpd3N17DX", - "entity": "invoice", - "receipt": "Receipt No. 24", - "invoice_number": "Receipt No. 24", - "customer_id": "cust_BMB3EwbqnqZ2EI", - "customer_details": { - "id": "cust_BMB3EwbqnqZ2EI", - "name": "Gaurav Kumar", - "email": "gaurav.kumar@example.com", - "contact": "9123456780", - "gstin": null, - "billing_address": null, - "shipping_address": null, - "customer_name": "Gaurav Kumar", - "customer_email": "gaurav.kumar@example.com", - "customer_contact": "9123456780" - }, - "order_id": "order_FHrXGJNngJyEAe", - "line_items": [], - "payment_id": null, - "status": "issued", - "expire_by": 4102444799, - "issued_at": 1595491014, - "paid_at": null, - "cancelled_at": null, - "expired_at": null, - "sms_status": "pending", - "email_status": "pending", - "date": 1595491014, - "terms": null, - "partial_payment": false, - "gross_amount": 100, - "tax_amount": 0, - "taxable_amount": 0, - "amount": 100, - "amount_paid": 0, - "amount_due": 100, - "currency": "INR", - "currency_symbol": "₹", - "description": "Registration Link for Gaurav Kumar", - "notes": { - "note_key 1": "Beam me up Scotty", - "note_key 2": "Tea. Earl Gray. Hot." - }, - "comment": null, - "short_url": "https://rzp.io/i/VSriCfn", - "view_less": true, - "billing_start": null, - "billing_end": null, - "type": "link", - "group_taxes_discounts": false, - "created_at": 1595491014, - "idempotency_key": null -} -``` -------------------------------------------------------------------------------------------------------- - -## Create an order to charge the customer - -```php -$api->order->create(array('amount' => '100', 'currency' => 'INR', 'customer_id'=> $customerId, 'method'=>'card', 'receipt' => 'Receipt No. 1', 'token'=>array('max_amount'=>'5000', 'expire_at'=>'2709971120', 'frequency'=>'monthly'), 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); -``` -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| amount* | integer | The amount to be captured (should be equal to the authorized amount, in paise) | -| currency* | string | The currency of the payment (defaults to INR) | -| customerId* | string | The id of the customer to be fetched | -| method | string | Payment method used to make the registration transaction. Possible value is `card`. | -| receipt | string | Your system order reference id. | -| token | array | All keys listed [here](https://razorpay.com/docs/api/recurring-payments/cards/subsequent-payments/#31-create-an-order-to-charge-the-customer) are supported | -| notes | array | A key-value pair | - -**Response:** -```json -{ - "id":"order_1Aa00000000002", - "entity":"order", - "amount":100, - "amount_paid":0, - "amount_due":100, - "currency":"INR", - "receipt":"Receipt No. 1", - "method":"card", - "description":null, - "customer_id":"cust_4xbQrmEoA5WJ01", - "token":{ - "max_amount":5000, - "expire_at":2709971120, - "frequency":"monthly" - }, - "offer_id":null, - "status":"created", - "attempts":0, - "notes":{ - "notes_key_1":"Tea, Earl Grey, Hot", - "notes_key_2":"Tea, Earl Grey… decaf." - }, - "created_at":1565172642 -} -``` -------------------------------------------------------------------------------------------------------- - -## Create a recurring payment - -```php -$api->payment->createRecurring(array('email'=>'gaurav.kumar@example.com','contact'=>'9123456789','amount'=>100,'currency'=>'INR','order_id'=>$orderid,'customer_id'=>$customerId,'token'=>$tokenId,'recurring'=>'1','description'=>'Creating recurring payment for Gaurav Kumar', 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); -``` -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| email* | string | The customer's email address | -| contact* | string | The customer's phone number | -| amount* | integer | The amount to be captured (should be equal to the authorized amount, in paise) | -| currency* | string | The currency of the payment (defaults to INR) | -| orderId* | string | The id of the order to be fetched | -| customerId* | string | The id of the customer to be fetched | -| tokenId* | string | The id of the token to be fetched | -| recurring* | boolean | Possible values is `0` or `1` | -| description | string | A brief description of the payment. | -| notes | array | A key-value pair | - -**Response:** -```json -{ - "razorpay_payment_id" : "pay_1Aa00000000001", - "razorpay_order_id" : "order_1Aa00000000001", - "razorpay_signature" : "9ef4dffbfd84f1318f6739a3ce19f9d85851857ae648f114332d8401e0949a3d" -} -``` -------------------------------------------------------------------------------------------------------- - -### Create an Authorization Payment - -Please refer this [doc](https://razorpay.com/docs/api/recurring-payments/cards/authorization-transaction/#113-create-an-authorization-payment) for authorization payment - -------------------------------------------------------------------------------------------------------- - -## Send/Resend notifications - -```php -$api->invoice->fetch($invoiceId)->notifyBy($medium); -``` -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| invoiceId* | string | The id of the invoice to be fetched | -| medium* | string | Possible values are `sms` or `email` | - -**Response:** -```json -{ - "success": true -} -``` -------------------------------------------------------------------------------------------------------- - -## Cancel registration link - -```php -$api->invoice->fetch($invoiceId)->cancel(); -``` -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| invoiceId* | string | The id of the invoice to be fetched | - -**Response:** -```json -{ - "id": "inv_FHrfRupD2ouKIt", - "entity": "invoice", - "receipt": "Receipt No. 1", - "invoice_number": "Receipt No. 1", - "customer_id": "cust_BMB3EwbqnqZ2EI", - "customer_details": { - "id": "cust_BMB3EwbqnqZ2EI", - "name": "Gaurav Kumar", - "email": "gaurav.kumar@example.com", - "contact": "9123456780", - "gstin": null, - "billing_address": null, - "shipping_address": null, - "customer_name": "Gaurav Kumar", - "customer_email": "gaurav.kumar@example.com", - "customer_contact": "9123456780" - }, - "order_id": "order_FHrfRw4TZU5Q2L", - "line_items": [], - "payment_id": null, - "status": "cancelled", - "expire_by": 4102444799, - "issued_at": 1595491479, - "paid_at": null, - "cancelled_at": 1595491488, - "expired_at": null, - "sms_status": "sent", - "email_status": "sent", - "date": 1595491479, - "terms": null, - "partial_payment": false, - "gross_amount": 100, - "tax_amount": 0, - "taxable_amount": 0, - "amount": 100, - "amount_paid": 0, - "amount_due": 100, - "currency": "INR", - "currency_symbol": "₹", - "description": "Registration Link for Gaurav Kumar", - "notes": { - "note_key 1": "Beam me up Scotty", - "note_key 2": "Tea. Earl Gray. Hot." - }, - "comment": null, - "short_url": "https://rzp.io/i/QlfexTj", - "view_less": true, - "billing_start": null, - "billing_end": null, - "type": "link", - "group_taxes_discounts": false, - "created_at": 1595491480, - "idempotency_key": null -} -``` -------------------------------------------------------------------------------------------------------- - -## Fetch token by payment id - -```php -$api->payment->fetch($paymentId); -``` -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| paymentId* | string | The id of the payment to be fetched | - -**Response:** -```json -{ - "id": "pay_FHfqtkRzWvxky4", - "entity": "payment", - "amount": 100, - "currency": "INR", - "status": "captured", - "order_id": "order_FHfnswDdfu96HQ", - "invoice_id": null, - "international": false, - "method": "card", - "amount_refunded": 0, - "refund_status": null, - "captured": true, - "description": null, - "card_id": "card_F0zoXUp4IPPGoI", - "bank": null, - "wallet": null, - "vpa": null, - "email": "gaurav.kumar@example.com", - "contact": "+919876543210", - "customer_id": "cust_DtHaBuooGHTuyZ", - "token_id": "token_FHfn3rIiM1Z8nr", - "notes": { - "note_key 1": "Beam me up Scotty", - "note_key 2": "Tea. Earl Gray. Hot." - }, - "fee": 0, - "tax": 0, - "error_code": null, - "error_description": null, - "error_source": null, - "error_step": null, - "error_reason": null, - "acquirer_data": { - "auth_code": "541898" - }, - "created_at": 1595449871 -} -``` -------------------------------------------------------------------------------------------------------- - -## Fetch tokens by customer id - -```php -$api->customer->fetch($customerId)->tokens()->all(); -``` -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| customerId* | string | The id of the customer to be fetched | - -**Response:** -```json -{ - "entity":"collection", - "count":1, - "items":[ - { - "id":"token_HouA2OQR5Z2jTL", - "entity":"token", - "token":"2JPRk664pZHUWG", - "bank":null, - "wallet":null, - "method":"card", - "card":{ - "entity":"card", - "name":"Gaurav Kumar", - "last4":"8950", - "network":"Visa", - "type":"credit", - "issuer":"STCB", - "international":false, - "emi":false, - "sub_type":"consumer", - "expiry_month":12, - "expiry_year":2021, - "flows":{ - "otp":true, - "recurring":true - } - }, - "recurring":true, - "recurring_details":{ - "status":"confirmed", - "failure_reason":null - }, - "auth_type":null, - "mrn":null, - "used_at":1629779657, - "created_at":1629779657, - "expired_at":1640975399, - "dcc_enabled":false, - "billing_address":null - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch card - -```php -$api->card->fetch($cardId); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| cardId* | string | card id to be fetched | - -```json -{ - "id": "card_JXPULjlKqC5j0i", - "entity": "card", - "name": "Gaurav", - "last4": "4366", - "network": "Visa", - "type": "credit", - "issuer": "UTIB", - "international": false, - "emi": true, - "sub_type": "consumer", - "token_iin": null -} -``` -------------------------------------------------------------------------------------------------------- - -## Delete tokens - -```php -$api->customer->fetch($customerId)->tokens()->delete($tokenId); -``` -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| customerId* | string | The id of the customer to be fetched | -| tokenId* | string | The id of the token to be fetched | - -**Response:** -```json -{ - "deleted": true -} -``` -------------------------------------------------------------------------------------------------------- - -## Using Card Number/ Tokenised Card Number - -```php -$api->card->requestCardReference(array("number" =>"4854980604708430")); -``` -**Parameters:** - -| Name | Type | Description | -|-------------|---------|------------------------------------------------------------------------------| -| number* | string | The card number whose PAR or network reference id should be retrieved. | -| tokenised | string | Determines if the card is saved as a token. Possible value is `true` or `false` | - -**Response:** -```json -{ - "network": "Visa", - "payment_account_reference": "V0010013819231376539033235990", - "network_reference_id": null -} -``` -------------------------------------------------------------------------------------------------------- - -## Using Razporpay token - -```php -$api->card->requestCardReference(array("token" =>"token_4lsdksD31GaZ09")); -``` -**Parameters:** - -| Name | Type | Description | -|-------------|---------|------------------------------------------------------------------------------| -| token* | string | The token whose PAR or network reference id should be retrieved.| - -**Response:** -```json -{ - "network": "Visa", - "payment_account_reference": "V0010013819231376539033235990", - "network_reference_id": null -} -``` -------------------------------------------------------------------------------------------------------- -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/recurring-payments/cards/authorization-transaction/)** diff --git a/assets/php/razorpay-php/documents/customer.md b/assets/php/razorpay-php/documents/customer.md deleted file mode 100644 index f5e8388..0000000 --- a/assets/php/razorpay-php/documents/customer.md +++ /dev/null @@ -1,376 +0,0 @@ -## Customer - -### Create customer -```php -$api->customer->create(array('name' => 'Razorpay User', 'email' => 'customer@razorpay.com','contact'=>'9123456780','notes'=> array('notes_key_1'=> 'Tea, Earl Grey, Hot','notes_key_2'=> 'Tea, Earl Grey… decaf'))); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| name* | string | Name of the customer | -| email | string | Email of the customer | -| contact | string | Contact number of the customer | -| fail_existing | string | If a customer with the same details already exists, the request throws an exception by default. Possible value is `0` or `1`| -| gstin | string | Customer's GST number, if available. For example, 29XAbbA4369J1PA | -| notes | array | A key-value pair | - -**Response:** -```json -{ - "id" : "cust_1Aa00000000004", - "entity": "customer", - "name" : "Gaurav Kumar", - "email" : "gaurav.kumar@example.com", - "contact" : "9123456780", - "gstin": "29XAbbA4369J1PA", - "notes":{ - "notes_key_1":"Tea, Earl Grey, Hot", - "notes_key_2":"Tea, Earl Grey… decaf." - }, - "created_at ": 1234567890 -} -``` - -------------------------------------------------------------------------------------------------------- - -### Edit customer -```php -$api->customer->fetch($customerId)->edit(array('name' => 'Razorpay User', 'email' => 'customer@razorpay.com', 'contact' => '9999999999')); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| customerId* | string | The id of the customer to be updated | -| email | string | Email of the customer | -| contact | string | Contact number of the customer | -| notes | array | A key-value pair | - -**Response:** -```json -{ - "id": "cust_1Aa00000000003", - "entity": "customer", - "name": "Gaurav Kumar", - "email": "Gaurav.Kumar@example.com", - "contact": "9000000000", - "gstin": null, - "notes": { - "notes_key_1": "Tea, Earl Grey, Hot", - "notes_key_2": "Tea, Earl Grey… decaf." - }, - "created_at": 1582033731 -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch all customer -```php -$api->customer->all($options); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| count | integer | number of payments to fetch (default: 10) | -| skip | integer | number of payments to be skipped (default: 0) | - -**Response:** -```json -{ - "entity":"collection", - "count":1, - "items":[ - { - "id":"cust_1Aa00000000001", - "entity":"customer", - "name":"Gaurav Kumar", - "email":"gaurav.kumar@example.com", - "contact":"9876543210", - "gstin":"29XAbbA4369J1PA", - "notes":{ - "note_key_1":"September", - "note_key_2":"Make it so." - }, - "created_at ":1234567890 - } - ] -} -``` - -------------------------------------------------------------------------------------------------------- - -### Fetch a customer -```php -$api->customer->fetch($customerId); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| customerId* | string | The id of the customer to be fetched | - -**Response:** -```json -{ - "id" : "cust_1Aa00000000001", - "entity": "customer", - "name" : "Saurav Kumar", - "email" : "Saurav.kumar@example.com", - "contact" : "+919000000000", - "gstin":"29XAbbA4369J1PA", - "notes" : [], - "created_at ": 1234567890 -} -``` - -------------------------------------------------------------------------------------------------------- - -### Add Bank Account of Customer - -```php -$customerId = "cust_N5mywh91sXB69O" - -$api->customer->fetch($customerId)->addBankAccount([ - "ifsc_code" => "UTIB0000194", - "account_number" => "919999999999", - "beneficiary_name" => "Pratheek", - "beneficiary_address1" => "address 1", - "beneficiary_address2" => "address 2", - "beneficiary_address3" => "address 3", - "beneficiary_address4" => "address 4", - "beneficiary_email" => "random@email.com", - "beneficiary_mobile" => "8762489310", - "beneficiary_city" => "Bangalore", - "beneficiary_state" => "KA", - "beneficiary_country" => "IN", -]); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| customerId* | string | Customer's bank account number | -| account_number | integer | The id of the customer to be fetched | -| account_number | string | The name of the beneficiary associated with the bank account. | -| beneficiary_name | string | The virtual payment address. | -| beneficiary_address1 | string | The id of the customer to be fetched | -| beneficiary_email | string | Email address of the beneficiary. | -| beneficiary_mobile | integer | Mobile number of the beneficiary. | -| beneficiary_city | string | The name of the city of the beneficiary. | -| beneficiary_state | string | The state of the beneficiary. | -| beneficiary_pin | interger | The pin code of the beneficiary's address. | -| ifsc_code | string | The IFSC code of the bank branch associated with the account. | - -**Response:** -```json -{ - "id" : "cust_1Aa00000000001", - "entity": "customer", - "name" : "Saurav Kumar", - "email" : "Saurav.kumar@example.com", - "contact" : "+919000000000", - "gstin":"29XAbbA4369J1PA", - "notes" : [], - "created_at ": 1234567890 -} -``` - -------------------------------------------------------------------------------------------------------- - -### Delete Bank Account of Customer - -```php -$customerId = "cust_N5mywh91sXB69O" - -$bankAccountId = "ba_N6aM8uo64IzxHu" - -$api->customer->fetch($customerId)->deleteBankAccount($bankAccountId); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| customerId* | string | Customer's bank account number | -| bank_id | string | The bank_id that needs to be deleted. | - -**Response:** -```json -{ - "id": "ba_Evg09Ll05SIPSD", - "ifsc": "ICIC0001207", - "bank_name": "ICICI Bank", - "name": "Test R4zorpay", - "account_number": "XXXXXXXXXXXXXXX0434", - "status": "deleted" -} -``` - -------------------------------------------------------------------------------------------------------- - -### Eligibility Check API - -```php -$api->customer->requestEligibilityCheck(array( - "inquiry" => "affordability", - "amount" => 500000, - "currency" => "INR", - "customer" => array( - "id" => "cust_MVSyUEwC4qb5sN", - "contact" => "+918220276214", - "ip" => "105.106.107.108", - "referrer" => "https://merchansite.com/example/paybill", - "user_agent" => "Mozilla/5.0", - ) -)); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| customerId* | string | Customer's bank account number | -| bank_id | string | The bank_id that needs to be deleted. | - -**Response:** -```json -{ - "amount": "500000", - "customer": { - "id": "KkBhM9EC1Y0HTm", - "contact": "+918220722114" - }, - "instruments": [ - { - "method": "emi", - "issuer": "HDFC", - "type": "debit", - "eligibility_req_id": "elig_KkCNLzlNeMYQyZ", - "eligibility": { - "status": "eligible" - } - }, - { - "method": "paylater", - "provider": "getsimpl", - "eligibility_req_id": "elig_KkCNLzlNeMYQyZ", - "eligibility": { - "status": "eligible" - } - }, - { - "method": "paylater", - "provider": "icic", - "eligibility_req_id": "elig_KkCNLzlNeMYQyZ", - "eligibility": { - "status": "eligible" - } - }, - { - "method": "cardless_emi", - "provider": "walnut369", - "eligibility_req_id": "elig_KkCNLzlNeMYQyZ", - "eligibility": { - "status": "ineligible", - "error": { - "code": "GATEWAY_ERROR", - "description": "The customer has not been approved by the partner.", - "source": "business", - "step": "inquiry", - "reason": "user_not_approved" - } - } - }, - { - "method": "cardless_emi", - "provider": "zestmoney", - "eligibility_req_id": "elig_KkCNLzlNeMYQyZ", - "eligibility": { - "status": "ineligible", - "error": { - "code": "GATEWAY_ERROR", - "description": "The customer has exhausted their credit limit.", - "source": "business", - "step": "inquiry", - "reason": "credit_limit_exhausted" - } - } - }, - { - "method": "paylater", - "provider": "lazypay", - "eligibility_req_id": "elig_KkCNLzlNeMYQyZ", - "eligibility": { - "status": "ineligible", - "error": { - "code": "GATEWAY_ERROR", - "description": "The order amount is less than the minimum transaction amount.", - "source": "business", - "step": "inquiry", - "reason": "min_amt_required" - } - } - } - ] -} -``` - -------------------------------------------------------------------------------------------------------- - -### Fetch Eligibility by id - -```php -$api->customer->fetchEligibility("elig_F1cxDoHWD4fkQt"); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| customerId* | string | Customer's bank account number | -| bank_id | string | The bank_id that needs to be deleted. | - -**Response:** -```json -{ - "instruments": [ - { - "method": "paylater", - "provider": "lazypay", - "eligibility_req_id": "elig_LBwGKVvS2X48Lq", - "eligibility": { - "status": "eligible" - } - }, - { - "method": "paylater", - "provider": "getsimpl", - "eligibility_req_id": "elig_LBwGKVvS2X48Lq", - "eligibility": { - "status": "ineligible", - "error": { - "code": "GATEWAY_ERROR", - "description": "The customer has exhausted their credit limit", - "source": "gateway", - "step": "inquiry", - "reason": "credit_limit_exhausted" - } - } - } - ] -} -``` - -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/customers/)** diff --git a/assets/php/razorpay-php/documents/dispute.md b/assets/php/razorpay-php/documents/dispute.md deleted file mode 100644 index ee275f4..0000000 --- a/assets/php/razorpay-php/documents/dispute.md +++ /dev/null @@ -1,248 +0,0 @@ -## Document - -### Fetch All Disputes - -```php -$api->dispute->all(); -``` - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "disp_Esz7KAitoYM7PJ", - "entity": "dispute", - "payment_id": "pay_EsyWjHrfzb59eR", - "amount": 10000, - "currency": "INR", - "amount_deducted": 0, - "reason_code": "pre_arbitration", - "respond_by": 1590604200, - "status": "open", - "phase": "pre_arbitration", - "created_at": 1590059211, - "evidence": { - "amount": 10000, - "summary": null, - "shipping_proof": null, - "billing_proof": null, - "cancellation_proof": null, - "customer_communication": null, - "proof_of_service": null, - "explanation_letter": null, - "refund_confirmation": null, - "access_activity_log": null, - "refund_cancellation_policy": null, - "term_and_conditions": null, - "others": null, - "submitted_at": null - } - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch a Dispute - -```php -$disputeId = "disp_0000000000000"; - -$api->dispute->fetch($disputeId); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| id* | string | The unique identifier of the dispute. | - -**Response:** -```json -{ - "id": "disp_AHfqOvkldwsbqt", - "entity": "dispute", - "payment_id": "pay_EsyWjHrfzb59eR", - "amount": 10000, - "currency": "INR", - "amount_deducted": 0, - "reason_code": "pre_arbitration", - "respond_by": 1590604200, - "status": "open", - "phase": "pre_arbitration", - "created_at": 1590059211, - "evidence": { - "amount": 10000, - "summary": "goods delivered", - "shipping_proof": null, - "billing_proof": null, - "cancellation_proof": null, - "customer_communication": null, - "proof_of_service": null, - "explanation_letter": null, - "refund_confirmation": null, - "access_activity_log": null, - "refund_cancellation_policy": null, - "term_and_conditions": null, - "others": null, - "submitted_at": null - } -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch a Dispute - -```php -$disputeId = "disp_0000000000000"; - -$api->dispute->fetch($disputeId)->accept(); -``` - -**Response:** -```json -{ - "id": "disp_AHfqOvkldwsbqt", - "entity": "dispute", - "payment_id": "pay_EsyWjHrfzb59eR", - "amount": 10000, - "currency": "INR", - "amount_deducted": 10000, - "reason_code": "pre_arbitration", - "respond_by": 1590604200, - "status": "lost", - "phase": "pre_arbitration", - "created_at": 1590059211, - "evidence": { - "amount": 10000, - "summary": null, - "shipping_proof": null, - "billing_proof": null, - "cancellation_proof": null, - "customer_communication": null, - "proof_of_service": null, - "explanation_letter": null, - "refund_confirmation": null, - "access_activity_log": null, - "refund_cancellation_policy": null, - "term_and_conditions": null, - "others": null, - "submitted_at": null - } -} -``` -------------------------------------------------------------------------------------------------------- -### Contest a Dispute - -```php - -//Use this API sample code for draft - -$disputeId = "disp_0000000000000"; - -$api->dispute->fetch($disputeId)->contest(array("amount" => 5000, "summary" => "goods delivered", "shipping_proof" => array("doc_EFtmUsbwpXwBH9", "doc_EFtmUsbwpXwBH8"), "others" => array(array("type" => "receipt_signed_by_customer", "document_ids" => array("doc_EFtmUsbwpXwBH1", "doc_EFtmUsbwpXwBH7"))), "action" => "draft")); - - -//Use this API sample code for submit - -$api->dispute->fetch($disputeId)->contest(array("billing_proof" => array("doc_EFtmUsbwpXwBG9", "doc_EFtmUsbwpXwBG8"), "action" => "submit")); -``` - -**Response:** -```json - -// Draft -{ - "id": "disp_AHfqOvkldwsbqt", - "entity": "dispute", - "payment_id": "pay_EsyWjHrfzb59eR", - "amount": 10000, - "currency": "INR", - "amount_deducted": 0, - "reason_code": "chargeback", - "respond_by": 1590604200, - "status": "open", - "phase": "chargeback", - "created_at": 1590059211, - "evidence": { - "amount": 5000, - "summary": "goods delivered", - "shipping_proof": [ - "doc_EFtmUsbwpXwBH9", - "doc_EFtmUsbwpXwBH8" - ], - "billing_proof": null, - "cancellation_proof": null, - "customer_communication": null, - "proof_of_service": null, - "explanation_letter": null, - "refund_confirmation": null, - "access_activity_log": null, - "refund_cancellation_policy": null, - "term_and_conditions": null, - "others": [ - { - "type": "receipt_signed_by_customer", - "document_ids": [ - "doc_EFtmUsbwpXwBH1", - "doc_EFtmUsbwpXwBH7" - ] - } - ], - "submitted_at": null - } -} - -//Submit -{ - "id": "disp_AHfqOvkldwsbqt", - "entity": "dispute", - "payment_id": "pay_EsyWjHrfzb59eR", - "amount": 10000, - "currency": "INR", - "amount_deducted": 0, - "reason_code": "chargeback", - "respond_by": 1590604200, - "status": "under_review", - "phase": "chargeback", - "created_at": 1590059211, - "evidence": { - "amount": 5000, - "summary": "goods delivered", - "shipping_proof": [ - "doc_EFtmUsbwpXwBH9", - "doc_EFtmUsbwpXwBH8" - ], - "billing_proof": [ - "doc_EFtmUsbwpXwBG9", - "doc_EFtmUsbwpXwBG8" - ], - "cancellation_proof": null, - "customer_communication": null, - "proof_of_service": null, - "explanation_letter": null, - "refund_confirmation": null, - "access_activity_log": null, - "refund_cancellation_policy": null, - "term_and_conditions": null, - "others": [ - { - "type": "receipt_signed_by_customer", - "document_ids": [ - "doc_EFtmUsbwpXwBH1", - "doc_EFtmUsbwpXwBH7" - ] - } - ], - "submitted_at": 1590603200 - } -} -``` -------------------------------------------------------------------------------------------------------- -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/documents)** \ No newline at end of file diff --git a/assets/php/razorpay-php/documents/document.md b/assets/php/razorpay-php/documents/document.md deleted file mode 100644 index 9308c77..0000000 --- a/assets/php/razorpay-php/documents/document.md +++ /dev/null @@ -1,71 +0,0 @@ -## Document - -### Create a Document - -```php - -$payload = array( - 'file'=> '/Users/your_name/Downloads/sample_uploaded.pdf' - "purpose" => "dispute_evidence" -); - -$api->document->create($payload); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| file* | string | The URL generated once the business proof document is uploaded. | -| purpose | string | Possible value is `dispute_evidence` | - -**Response:** -```json -{ - "id": "doc_EsyWjHrfzb59Re", - "entity": "document", - "purpose": "dispute_evidence", - "name": "doc_19_12_2020.jpg", - "mime_type": "image/png", - "size": 2863, - "created_at": 1590604200 -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch Document Information - -```php -$documentId = ""; - -$api->document->fetch($documentId); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| from | timestamp | timestamp after which the addons were created | -| to | timestamp | timestamp before which the addons were created | -| count | integer | number of addons to fetch (default: 10) | -| skip | integer | number of addons to be skipped (default: 0) | - -**Response:** -```json -{ - "entity": "document", - "id": "doc_00000000000000", - "purpose": "dispute_evidence", - "created_at": 1701701378, - "mime_type": "application/pdf", - "display_name": "ppm_00000000000000", - "size": 404678, - "url": "" -} -``` -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/documents)** \ No newline at end of file diff --git a/assets/php/razorpay-php/documents/emandate.md b/assets/php/razorpay-php/documents/emandate.md deleted file mode 100644 index 0589b81..0000000 --- a/assets/php/razorpay-php/documents/emandate.md +++ /dev/null @@ -1,381 +0,0 @@ -## Emandates - -### Create customer -```php -$api->customer->create(array('name' => 'Razorpay User', 'email' => 'customer@razorpay.com','contact'=>'9123456780', 'fail_existing'=> '0', 'notes'=> array('notes_key_1'=> 'Tea, Earl Grey, Hot','notes_key_2'=> 'Tea, Earl Grey… decaf'))); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| name* | string | Name of the customer | -| email | string | Email of the customer | -| fail_existing | string | If a customer with the same details already exists, the request throws an exception by default. Possible value is `0` or `1`| -| contact | string | Contact number of the customer | -| notes | array | A key-value pair | - -**Response:** -```json -{ - "id": "cust_1Aa00000000003", - "entity": "customer", - "name": "Gaurav Kumar", - "email": "Gaurav.Kumar@example.com", - "contact": "9000000000", - "gstin": null, - "notes": { - "notes_key_1": "Tea, Earl Grey, Hot", - "notes_key_2": "Tea, Earl Grey… decaf." - }, - "created_at": 1582033731 -} -``` -------------------------------------------------------------------------------------------------------- - -### Create order - -```php -$api->order->create(array('amount' => 0,'currency' => 'INR','method' => 'emandate','payment_capture' => true, 'customer_id' => 'cust_JdumbHq5F3kKu6','receipt' => 'Receipt No. #19','notes' => array('notes_key_1' => 'Beam me up Scotty','notes_key_2' => 'Engage'),'token' => array('auth_type' => 'netbanking','max_amount' => 9999900,'expire_at' => 4102444799,'notes' => array('notes_key_1' => 'Tea, Earl Grey, Hot','notes_key_2' => 'Tea, Earl Grey… decaf.'),'bank_account' => array('beneficiary_name' => 'Gaurav Kumar','account_number' => '1121431121541121','account_type' => 'savings','ifsc_code' => 'HDFC0000001')))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| amount* | integer | The amount to be captured (should be equal to the authorized amount, in paise) | -| currency* | string | The currency of the payment (defaults to INR) | -| customerId* | string | The id of the customer to be fetched | -| method* | string | Payment method used to make the registration transaction. Possible value is `emandate`. | -| receipt | string | Your system order reference id. | -| payment_capture* | boolean | Indicates whether payment status should be changed to captured automatically or not. Possible values: true - Payments are captured automatically. false - Payments are not captured automatically. | -| token | array | All parameters listed [here](https://razorpay.com/docs/api/payments/recurring-payments/emandate/create-authorization-transaction/#112-create-an-order) are supported| -| notes | object | A key-value pair | - -**Response:** -Create order response please click [here](https://razorpay.com/docs/api/recurring-payments/emandate/authorization-transaction/#112-create-an-order) - -------------------------------------------------------------------------------------------------------- - -### Create an Authorization Payment - -Please refer this [doc](https://razorpay.com/docs/api/recurring-payments/emandate/authorization-transaction/#113-create-an-authorization-payment) for authorization payment - -------------------------------------------------------------------------------------------------------- - -### Create registration link - -```php -$api->subscription->createSubscriptionRegistration(array('customer'=>array('name'=>'Gaurav Kumar','email'=>'gaurav.kumar@example.com','contact'=>'9123456780'),'type'=>'link','amount'=>0,'currency'=>'INR','description'=>'Registration Link for Gaurav Kumar','subscription_registration'=>array('method'=>'emandate', 'auth_type'=>'netbanking', 'max_amount'=>'500', 'bank_account' => array('beneficiary_name' => 'Gaurav Kumar','account_number' => '1121431121541121','account_type' => 'savings','ifsc_code' => 'HDFC0001233'), 'expire_at'=>'1634215992'),'receipt'=>'Receipt No. 5','email_notify'=>1,'sms_notify'=>1,'expire_by'=>1634215992,'notes' => array('note_key 1' => 'Beam me up Scotty','note_key 2' => 'Tea. Earl Gray. Hot.'))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| customer* | array | All parameters listed [here](https://razorpay.com/docs/api/payments/recurring-payments/emandate/create-authorization-transaction/#121-create-a-registration-link) are supported | -| type* | string | In this case, the value is `link`. | -| currency* | string | The 3-letter ISO currency code for the payment. Currently, only `INR` is supported. | -| amount* | integer | The payment amount in the smallest currency sub-unit. | -| description* | string | A description that appears on the hosted page. For example, `12:30 p.m. Thali meals (Gaurav Kumar`). | -| subscription_registration | array | All parameters listed [here](https://razorpay.com/docs/api/payments/recurring-payments/emandate/create-authorization-transaction/#121-create-a-registration-link) are supported | -| email_notify | boolean | Email notifications are to be sent by Razorpay (default : 1) | -| expire_by | integer | The timestamp, in Unix format, till when the customer can make the authorization payment. | -| receipt | string | Your system order reference id. | -| notes | array | A key-value pair | - -**Response:** -Create registration link response please click [here](https://razorpay.com/docs/api/payments/recurring-payments/emandate/create-authorization-transaction/#121-create-a-registration-link) - -------------------------------------------------------------------------------------------------------- - -### Send/Resend notifications - -```php -$api->invoice->fetch($invoiceId)->notifyBy($medium); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| invoiceId* | string | The id of the invoice to be notified | -| medium* | string | `sms`/`email`, Medium through which notification should be sent. | - -**Response:** -```json -{ - "success": true -} -``` -------------------------------------------------------------------------------------------------------- - -### Cancel a registration link - -```php -$api->invoice->fetch($invoiceId)->cancel(); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| invoiceId* | string | The id of the invoice to be cancelled | - -**Response:** -```json -{ - "id": "inv_FHrfRupD2ouKIt", - "entity": "invoice", - "receipt": "Receipt No. 1", - "invoice_number": "Receipt No. 1", - "customer_id": "cust_BMB3EwbqnqZ2EI", - "customer_details": { - "id": "cust_BMB3EwbqnqZ2EI", - "name": "Gaurav Kumar", - "email": "gaurav.kumar@example.com", - "contact": "9123456780", - "gstin": null, - "billing_address": null, - "shipping_address": null, - "customer_name": "Gaurav Kumar", - "customer_email": "gaurav.kumar@example.com", - "customer_contact": "9123456780" - }, - "order_id": "order_FHrfRw4TZU5Q2L", - "line_items": [], - "payment_id": null, - "status": "cancelled", - "expire_by": 4102444799, - "issued_at": 1595491479, - "paid_at": null, - "cancelled_at": 1595491488, - "expired_at": null, - "sms_status": "sent", - "email_status": "sent", - "date": 1595491479, - "terms": null, - "partial_payment": false, - "gross_amount": 100, - "tax_amount": 0, - "taxable_amount": 0, - "amount": 100, - "amount_paid": 0, - "amount_due": 100, - "currency": "INR", - "currency_symbol": "₹", - "description": "Registration Link for Gaurav Kumar", - "notes": { - "note_key 1": "Beam me up Scotty", - "note_key 2": "Tea. Earl Gray. Hot." - }, - "comment": null, - "short_url": "https://rzp.io/i/QlfexTj", - "view_less": true, - "billing_start": null, - "billing_end": null, - "type": "link", - "group_taxes_discounts": false, - "created_at": 1595491480, - "idempotency_key": null -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch token by payment ID - -```php -$api->payment->fetch($paymentId); -``` - -**Parameters:** - -| Name | Type | Description | -|------------|--------|-----------------------------------| -| paymentId* | string | Id of the payment to be retrieved | - -**Response:** -```json -{ - "id": "pay_FHf9a7AO0iXM9I", - "entity": "payment", - "amount": 0, - "currency": "INR", - "status": "captured", - "order_id": "order_FHf9OwSeyetnKC", - "invoice_id": "inv_FHf9P2hhXEti7i", - "international": false, - "method": "emandate", - "amount_refunded": 0, - "refund_status": null, - "captured": true, - "description": null, - "card_id": null, - "bank": "HDFC", - "wallet": null, - "vpa": null, - "email": "gaurav.kumar@example.com", - "contact": "+919876543210", - "customer_id": "cust_DtHaBuooGHTuyZ", - "token_id": "token_FHf9aAZR9hWJkq", - "notes": { - "note_key 1": "Beam me up Scotty", - "note_key 2": "Tea. Earl Gray. Hot." - }, - "fee": 0, - "tax": 0, - "error_code": null, - "error_description": null, - "error_source": null, - "error_step": null, - "error_reason": null, - "acquirer_data": {}, - "created_at": 1595447410 -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch tokens by customer ID - -```php -$api->customer->fetch($customerId)->tokens()->all(); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| customerId* | string | The id of the customer to be fetched | - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "token_FHf94Uym9tdYFJ", - "entity": "token", - "token": "2wDPM7VAlXtjAR", - "bank": "HDFC", - "wallet": null, - "method": "emandate", - "vpa": null, - "recurring": true, - "recurring_details": { - "status": "confirmed", - "failure_reason": null - }, - "auth_type": "netbanking", - "mrn": null, - "used_at": 1595447381, - "created_at": 1595447381, - "bank_details": { - "beneficiary_name": "Gaurav Kumar", - "account_number": "1121431121541121", - "ifsc": "HDFC0000001", - "account_type": "savings" - }, - "max_amount": 9999900, - "expired_at": 1689971140, - "dcc_enabled": false - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Delete token - -```php -$api->customer->fetch($customerId)->tokens()->delete($tokenId); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| customerId* | string | The id of the customer to be fetched | -| tokenId* | string | The id of the token to be fetched | - -**Response:** -```json -{ - "deleted": true -} -``` -------------------------------------------------------------------------------------------------------- - -### Create an order to charge the customer - -```php -$api->order->create(array('amount' => 1000,'currency' => 'INR','payment_capture' => true,'receipt' => 'Receipt No. 1','notes'=> array('notes_key_1' => 'Tea, Earl Grey, Hot', 'notes_key_2' => 'Tea, Earl Grey… decaf.'))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| amount* | integer | Amount of the order to be paid | -| currency* | string | Currency of the order. Currently only `INR` is supported. | -| receipt | string | Your system order reference id. | -| notes | array | A key-value pair | -| payment_capture | boolean | Indicates whether payment status should be changed to captured automatically or not. Possible values: true - Payments are captured automatically. false - Payments are not captured automatically. | - -**Response:** -```json -{ - "id":"order_1Aa00000000002", - "entity":"order", - "amount":1000, - "amount_paid":0, - "amount_due":1000, - "currency":"INR", - "receipt":"Receipt No. 1", - "offer_id":null, - "status":"created", - "attempts":0, - "notes":{ - "notes_key_1":"Tea, Earl Grey, Hot", - "notes_key_2":"Tea, Earl Grey… decaf." - }, - "created_at":1579782776 -} -``` -------------------------------------------------------------------------------------------------------- - -### Create a Recurring Payment - -```php -$api->payment->createRecurring(array('email'=>'gaurav.kumar@example.com','contact'=>'9123456789','amount'=>100,'currency'=>'INR','order_id'=>'order_1Aa00000000002','customer_id'=>'cust_1Aa00000000001','token'=>'token_1Aa00000000001','recurring'=>'1','description'=>'Creating recurring payment for Gaurav Kumar')); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| email* | string | The customer's email address. | -| contact* | string | The customer's phone number. | -| amount* | integer | The amount you want to charge your customer. This should be the same as the amount in the order. | -| currency* | string | The 3-letter ISO currency code for the payment. Currently, only `INR` is supported. | -| order_id* | string | The unique identifier of the order created. | -| customer_id* | string | The `customer_id` for the customer you want to charge. | -| token* | string | The `token_id` generated when the customer successfully completes the authorization payment. Different payment instruments for the same customer have different `token_id`.| -| recurring* | string | Determines if recurring payment is enabled or not. Possible values:
* `1` - Recurring is enabled.* `0` - Recurring is not enabled.| -| description | string | A user-entered description for the payment.| -| notes | array | Key-value pair that can be used to store additional information about the entity. Maximum 15 key-value pairs, 256 characters (maximum) each. | - -**Response:** -```json -{ - "razorpay_payment_id" : "pay_1Aa00000000001", - "razorpay_order_id" : "order_1Aa00000000001", - "razorpay_signature" : "9ef4dffbfd84f1318f6739a3ce19f9d85851857ae648f114332d8401e0949a3d" -} -``` -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/recurring-payments/emandate/authorization-transaction/)** diff --git a/assets/php/razorpay-php/documents/fund.md b/assets/php/razorpay-php/documents/fund.md deleted file mode 100644 index 933cda4..0000000 --- a/assets/php/razorpay-php/documents/fund.md +++ /dev/null @@ -1,79 +0,0 @@ -## Funds - -### Create a fund account -```php -$api->fundAccount->create(array('customer_id'=>$customerId,'account_type'=>'bank_account','bank_account'=>array('name'=>'Gaurav Kumar', 'account_number'=>'11214311215411', 'ifsc'=>'HDFC0000053'))); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| customerId* | string | The id of the customer to be fetched | -| account_type* | string | The bank_account to be linked to the customer ID | -| bank_account* | array | All keys listed [here](https://razorpay.com/docs/payments/customers/customer-fund-account-api/#create-a-fund-account) are supported | - -**Response:** -```json -{ - "id": "fa_JcXaLomo4ck5IY", - "entity": "fund_account", - "customer_id": "cust_JZse2vlC5nK9AQ", - "account_type": "bank_account", - "bank_account": { - "ifsc": "HDFC0000053", - "bank_name": "HDFC Bank", - "name": "Gaurav Kumar", - "notes": [], - "account_number": "11214311215411" - }, - "batch_id": null, - "active": true, - "created_at": 1654154246 -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch all fund accounts - -```php -$api->fundAccount->all(array('customer_id'=>$customerIds)); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| customerId* | string | The id of the customer to be fetched | - -**Response:** -```json -{ - "entity": "collection", - "count": 2, - "items": [ - { - "id": "fa_JcXYtecLkhW74k", - "entity": "fund_account", - "customer_id": "cust_JZse2vlC5nK9AQ", - "account_type": "bank_account", - "bank_account": { - "ifsc": "HDFC0000053", - "bank_name": "HDFC Bank", - "name": "Gaurav Kumar", - "notes": [], - "account_number": "11214311215411" - }, - "batch_id": null, - "active": true, - "created_at": 1654154163 - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/payments/customers/customer-fund-account-api/)** diff --git a/assets/php/razorpay-php/documents/invoice.md b/assets/php/razorpay-php/documents/invoice.md deleted file mode 100644 index abeb711..0000000 --- a/assets/php/razorpay-php/documents/invoice.md +++ /dev/null @@ -1,540 +0,0 @@ -## Invoices - -### Create Invoice - -Request #1 -In this example, an invoice is created using the customer and item details. Here, the customer and item are created while creating the invoice. -```php -$api->invoice->create(array ('type' => 'invoice','description' => 'Invoice for the month of January 2020','partial_payment' => true,'customer' =>array ('name' => 'Gaurav Kumar','contact' => 9999999999,'email' => 'gaurav.kumar@example.com','billing_address' => array ('line1' => 'Ground & 1st Floor, SJR Cyber Laskar','line2' => 'Hosur Road','zipcode' => '560068','city' => 'Bengaluru','state' => 'Karnataka','country' => 'in'),'shipping_address' => array ('line1' => 'Ground & 1st Floor, SJR Cyber Laskar','line2' => 'Hosur Road','zipcode' => '560068','city' => 'Bengaluru','state' => 'Karnataka','country' => 'in')),'line_items' => array (array ('name' => 'Master Cloud Computing in 30 Days','description' => 'Book by Ravena Ravenclaw','amount' => 399,'currency' => 'USD','quantity' => 1)),'sms_notify' => 1,'email_notify' => 1,'currency' => 'USD','expire_by' => 1589765167)); -``` -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -|type* | string | entity type (here its invoice) | -|description | string | A brief description of the invoice. | -|customer_id | string | customer id for which invoice need be raised | -|draft | string | Invoice is created in draft state when value is set to `1` | -| customer* | array | All parameters listed [here](https://razorpay.com/docs/api/payments/invoices/#create-an-invoice) are supported | -| line_items | array | All parameters listed [here](https://razorpay.com/docs/api/payments/invoices/#create-an-invoice) are supported | -|expire_by | array | Details of the line item that is billed in the invoice. | -|sms_notify | array | Details of the line item that is billed in the invoice. | -|email_notify | array | Details of the line item that is billed in the invoice. | -|partial_payment | boolean | Indicates whether customers can make partial payments on the invoice . Possible values: true - Customer can make partial payments. false (default) - Customer cannot make partial payments. | -| currency* | string | The currency of the payment (defaults to INR) | - - -Request #2 -In this example, an invoice is created using existing `customer_id` and `item_id` -```php -$api->invoice->create(array ('type' => 'invoice','date' => 1589994898, 'customer_id'=> 'cust_E7q0trFqXgExmT', 'line_items'=>array(array('item_id'=>'item_DRt61i2NnL8oy6')))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -|type* | string | entity type (here its invoice) | -|description | string | A brief description of the invoice. | -|customer_id | string | customer id for which invoice need be raised | -| customer* | array | All parameters listed [here](https://razorpay.com/docs/api/payments/invoices/#create-an-invoice) are supported | -| line_items | array | All parameters listed [here](https://razorpay.com/docs/api/payments/invoices/#create-an-invoice) are supported | -| sms_notify | boolean | SMS notifications are to be sent by Razorpay (default : 1) | -| currency* (conditionally mandatory) | string | The 3-letter ISO currency code for the payment. Currently, only `INR` is supported. | -| email_notify | boolean | Email notifications are to be sent by Razorpay (default : 1) | -| expire_by | integer | The timestamp, in Unix format, till when the customer can make the authorization payment. | - -**Response:** -For create invoice response please click [here](https://razorpay.com/docs/api/invoices/#create-an-invoice) -------------------------------------------------------------------------------------------------------- - -### Fetch all invoices - -```php -$api->invoice->all(); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -|type | string | entity type (here its invoice) | -|payment_id | string | The unique identifier of the payment made by the customer against the invoice. | -|customer_id | string | The unique identifier of the customer. | -|receipt | string | The unique receipt number that you entered for internal purposes. | - -**Response:** -For fetch all invoice response please click [here](https://razorpay.com/docs/api/invoices/#fetch-multiple-invoices) - -------------------------------------------------------------------------------------------------------- - -### Fetch invoice - -```php -$api->invoice->fetch($invoiceId); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| invoiceId* | string | The id of the invoice to be fetched | - -**Response:** -```json -{ - "amount": 1000, - "amount_due": 1000, - "amount_paid": 0, - "billing_end": null, - "billing_start": null, - "cancelled_at": null, - "comment": null, - "created_at": 1653596202, - "currency": "INR", - "currency_symbol": "₹", - "customer_details": { - "billing_address": null, - "contact": "99991111999", - "customer_contact": "99991111999", - "customer_email": "gauraa.kumar@example.com", - "customer_name": "Gauravss Kumar", - "email": "gauraa.kumar@example.com", - "gstin": null, - "id": "cust_JDdNazagOgg9Ig", - "name": "Gauravss Kumar", - "shipping_address": null - }, - "customer_id": "cust_JDdNazagOgg9Ig", - "date": 1589994898, - "description": null, - "email_status": "sent", - "entity": "invoice", - "expire_by": null, - "expired_at": null, - "first_payment_min_amount": null, - "gross_amount": 1000, - "group_taxes_discounts": false, - "id": "inv_JZz7g9hSZS9IsG", - "idempotency_key": null, - "invoice_number": null, - "issued_at": 1653596202, - "line_items": [ - { - "amount": 1000, - "currency": "INR", - "description": null, - "gross_amount": 1000, - "hsn_code": null, - "id": "li_JZz7gAI2W3Arg2", - "item_id": "item_J7lZCyxMVeEtYB", - "name": "Test item", - "net_amount": 1000, - "quantity": 1, - "ref_id": null, - "ref_type": null, - "sac_code": null, - "tax_amount": 0, - "tax_inclusive": false, - "tax_rate": null, - "taxable_amount": 1000, - "taxes": [], - "type": "invoice", - "unit": null, - "unit_amount": 1000 - } - ], - "notes": [], - "order_id": "order_JZz7gBTZjtUgBO", - "paid_at": null, - "partial_payment": false, - "payment_id": null, - "receipt": null, - "reminder_status": null, - "short_url": "https://rzp.io/i/DGpanoT", - "sms_status": "pending", - "status": "issued", - "subscription_status": null, - "supply_state_code": null, - "tax_amount": 0, - "taxable_amount": 1000, - "terms": null, - "type": "invoice", - "user_id": null, - "view_less": true -} -``` -------------------------------------------------------------------------------------------------------- - -### Update invoice - -```php -$api->invoice->fetch($invoiceId)->edit(array('line_items' => array(array('id' => 'li_DAweOizsysoJU6','name' => 'Book / English August - Updated name and quantity','quantity' => 1),array('name' => 'Book / A Wild Sheep Chase','amount' => 200,'currency' => 'INR','quantity' => 1)),'notes' => array('updated-key' => 'An updated note.'))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| invoiceId* | string | The id of the invoice to be fetched | -| line_items | array | All parameters listed [here](https://razorpay.com/docs/api/payments/invoices/#update-an-invoice) are supported | -| notes | array | key value pair | - -**Response:** -```json -{ - "id": "inv_DAweOiQ7amIUVd", - "entity": "invoice", - "receipt": "#0961", - "invoice_number": "#0961", - "customer_id": "cust_DAtUWmvpktokrT", - "customer_details": { - "id": "cust_DAtUWmvpktokrT", - "name": "Gaurav Kumar", - "email": "gaurav.kumar@example.com", - "contact": "9977886633", - "gstin": null, - "billing_address": { - "id": "addr_DAtUWoxgu91obl", - "type": "billing_address", - "primary": true, - "line1": "318 C-Wing, Suyog Co. Housing Society Ltd.", - "line2": "T.P.S Road, Vazira, Borivali", - "zipcode": "400092", - "city": "Mumbai", - "state": "Maharashtra", - "country": "in" - }, - "shipping_address": null, - "customer_name": "Gaurav Kumar", - "customer_email": "gaurav.kumar@example.com", - "customer_contact": "9977886633" - }, - "order_id": null, - "line_items": [ - { - "id": "li_DAweOizsysoJU6", - "item_id": null, - "name": "Book / English August - Updated name and quantity", - "description": "150 points in Quidditch", - "amount": 400, - "unit_amount": 400, - "gross_amount": 400, - "tax_amount": 0, - "taxable_amount": 400, - "net_amount": 400, - "currency": "INR", - "type": "invoice", - "tax_inclusive": false, - "hsn_code": null, - "sac_code": null, - "tax_rate": null, - "unit": null, - "quantity": 1, - "taxes": [] - } - ], - "payment_id": null, - "status": "draft", - "expire_by": 1567103399, - "issued_at": null, - "paid_at": null, - "cancelled_at": null, - "expired_at": null, - "sms_status": null, - "email_status": null, - "date": 1566891149, - "terms": null, - "partial_payment": false, - "gross_amount": 600, - "tax_amount": 0, - "taxable_amount": 600, - "amount": 600, - "amount_paid": null, - "amount_due": null, - "currency": "INR", - "currency_symbol": "₹", - "description": "This is a test invoice.", - "notes": { - "updated-key": "An updated note." - }, - "comment": null, - "short_url": null, - "view_less": true, - "billing_start": null, - "billing_end": null, - "type": "invoice", - "group_taxes_discounts": false, - "created_at": 1566906474, - "idempotency_key": null -} -``` -------------------------------------------------------------------------------------------------------- - -### Issue an invoice - -Only an invoice in the `draft` state can be issued. -```php - -$api->invoice->fetch($invoiceId)->issue(); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| invoiceId* | string | The id of the invoice to be issued | - -**Response:** -```json -{ - "id": "inv_DAweOiQ7amIUVd", - "entity": "invoice", - "receipt": "#0961", - "invoice_number": "#0961", - "customer_id": "cust_DAtUWmvpktokrT", - "customer_details": { - "id": "cust_DAtUWmvpktokrT", - "name": "Gaurav Kumar", - "email": "gaurav.kumar@example.com", - "contact": "9977886633", - "gstin": null, - "billing_address": { - "id": "addr_DAtUWoxgu91obl", - "type": "billing_address", - "primary": true, - "line1": "318 C-Wing, Suyog Co. Housing Society Ltd.", - "line2": "T.P.S Road, Vazira, Borivali", - "zipcode": "400092", - "city": "Mumbai", - "state": "Maharashtra", - "country": "in" - }, - "shipping_address": null, - "customer_name": "Gaurav Kumar", - "customer_email": "gaurav.kumar@example.com", - "customer_contact": "9977886633" - }, - "order_id": "order_DBG3P8ZgDd1dsG", - "line_items": [ - { - "id": "li_DAweOizsysoJU6", - "item_id": null, - "name": "Book / English August - Updated name and quantity", - "description": "150 points in Quidditch", - "amount": 400, - "unit_amount": 400, - "gross_amount": 400, - "tax_amount": 0, - "taxable_amount": 400, - "net_amount": 400, - "currency": "INR", - "type": "invoice", - "tax_inclusive": false, - "hsn_code": null, - "sac_code": null, - "tax_rate": null, - "unit": null, - "quantity": 1, - "taxes": [] - }, - { - "id": "li_DAwjWQUo07lnjF", - "item_id": null, - "name": "Book / A Wild Sheep Chase", - "description": null, - "amount": 200, - "unit_amount": 200, - "gross_amount": 200, - "tax_amount": 0, - "taxable_amount": 200, - "net_amount": 200, - "currency": "INR", - "type": "invoice", - "tax_inclusive": false, - "hsn_code": null, - "sac_code": null, - "tax_rate": null, - "unit": null, - "quantity": 1, - "taxes": [] - } - ], - "payment_id": null, - "status": "issued", - "expire_by": 1567103399, - "issued_at": 1566974805, - "paid_at": null, - "cancelled_at": null, - "expired_at": null, - "sms_status": null, - "email_status": null, - "date": 1566891149, - "terms": null, - "partial_payment": false, - "gross_amount": 600, - "tax_amount": 0, - "taxable_amount": 600, - "amount": 600, - "amount_paid": 0, - "amount_due": 600, - "currency": "INR", - "currency_symbol": "₹", - "description": "This is a test invoice.", - "notes": { - "updated-key": "An updated note." - }, - "comment": null, - "short_url": "https://rzp.io/i/K8Zg72C", - "view_less": true, - "billing_start": null, - "billing_end": null, - "type": "invoice", - "group_taxes_discounts": false, - "created_at": 1566906474, - "idempotency_key": null -} -``` -------------------------------------------------------------------------------------------------------- - -### Delete an invoice - -```php -$api->invoice->fetch($invoiceId)->delete(); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| invoiceId* | string | The id of the invoice to be deleted | - -**Response:** -``` -[] -``` -------------------------------------------------------------------------------------------------------- - -### Cancel an invoice - -```php -$api->invoice->fetch($invoiceId)->cancel(); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| invoiceId* | string | The id of the invoice to be cancelled | - -**Response:** -```json -{ - "amount": 1000, - "amount_due": 1000, - "amount_paid": 0, - "billing_end": null, - "billing_start": null, - "cancelled_at": 1654159207, - "comment": null, - "created_at": 1653596202, - "currency": "INR", - "currency_symbol": "₹", - "customer_details": { - "billing_address": null, - "contact": "99991111999", - "customer_contact": "99991111999", - "customer_email": "gauraa.kumar@example.com", - "customer_name": "Gauravss Kumar", - "email": "gauraa.kumar@example.com", - "gstin": null, - "id": "cust_JDdNazagOgg9Ig", - "name": "Gauravss Kumar", - "shipping_address": null - }, - "customer_id": "cust_JDdNazagOgg9Ig", - "date": 1589994898, - "description": null, - "email_status": "sent", - "entity": "invoice", - "expire_by": null, - "expired_at": null, - "first_payment_min_amount": null, - "gross_amount": 1000, - "group_taxes_discounts": false, - "id": "inv_JZz7g9hSZS9IsG", - "idempotency_key": null, - "invoice_number": null, - "issued_at": 1653596202, - "line_items": [ - { - "amount": 1000, - "currency": "INR", - "description": null, - "gross_amount": 1000, - "hsn_code": null, - "id": "li_JZz7gAI2W3Arg2", - "item_id": "item_J7lZCyxMVeEtYB", - "name": "Test item", - "net_amount": 1000, - "quantity": 1, - "ref_id": null, - "ref_type": null, - "sac_code": null, - "tax_amount": 0, - "tax_inclusive": false, - "tax_rate": null, - "taxable_amount": 1000, - "taxes": [], - "type": "invoice", - "unit": null, - "unit_amount": 1000 - } - ], - "notes": [], - "order_id": "order_JZz7gBTZjtUgBO", - "paid_at": null, - "partial_payment": false, - "payment_id": null, - "receipt": null, - "reminder_status": null, - "short_url": "https://rzp.io/i/DGpanoT", - "sms_status": "pending", - "status": "cancelled", - "subscription_status": null, - "supply_state_code": null, - "tax_amount": 0, - "taxable_amount": 1000, - "terms": null, - "type": "invoice", - "user_id": null, - "view_less": true -} -``` -------------------------------------------------------------------------------------------------------- - -### Send notification - -```php -$api->invoice->fetch($invoiceId)->notifyBy($medium); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| invoiceId* | string | The id of the invoice to be notified | -| medium* | string | `sms`/`email`, Medium through which notification should be sent. | - -**Response:** -```json -{ - "success": true -} -``` -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/invoices)** diff --git a/assets/php/razorpay-php/documents/item.md b/assets/php/razorpay-php/documents/item.md deleted file mode 100644 index 1ff6485..0000000 --- a/assets/php/razorpay-php/documents/item.md +++ /dev/null @@ -1,197 +0,0 @@ -## items - -### Create item - -```php -$api->Item->create(array("name" => "Book / English August","description" => "An indian story, Booker prize winner.","amount" => 20000,"currency" => "INR")); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| name* | string | Name of the item. | -| description | string | A brief description of the item. | -| amount* | integer | Amount of the order to be paid | -| currency* | string | Currency of the order. Currently only `INR` is supported. | - -**Response:** -```json -{ - "id": "item_JInaSLODeDUQiQ", - "active": true, - "name": "Book / English August", - "description": "An indian story, Booker prize winner.", - "amount": 20000, - "unit_amount": 20000, - "currency": "INR", - "type": "invoice", - "unit": null, - "tax_inclusive": false, - "hsn_code": null, - "sac_code": null, - "tax_rate": null, - "tax_id": null, - "tax_group_id": null, - "created_at": 1649843796 -} -``` - -------------------------------------------------------------------------------------------------------- - -### Fetch all items - -```php -$api->Item->all($options); -``` -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| from | timestamp | timestamp after which the item were created | -| to | timestamp | timestamp before which the item were created | -| count | integer | number of item to fetch (default: 10) | -| skip | integer | number of item to be skipped (default: 0) | -| active | boolean | Possible values is `0` or `1` | - -**Response:** -```json -{ - "entity": "collection", - "count": 2, - "items": [ - { - "id": "item_JInaSLODeDUQiQ", - "active": true, - "name": "Book / English August", - "description": "An indian story, Booker prize winner.", - "amount": 20000, - "unit_amount": 20000, - "currency": "INR", - "type": "invoice", - "unit": null, - "tax_inclusive": false, - "hsn_code": null, - "sac_code": null, - "tax_rate": null, - "tax_id": null, - "tax_group_id": null, - "created_at": 1649843796 - }, - { - "id": "item_JIPSg5L06yhHie", - "active": false, - "name": "Book / Ignited Minds - Updated name!", - "description": "New descirption too. :).", - "amount": 20000, - "unit_amount": 20000, - "currency": "INR", - "type": "invoice", - "unit": null, - "tax_inclusive": false, - "hsn_code": null, - "sac_code": null, - "tax_rate": null, - "tax_id": null, - "tax_group_id": null, - "created_at": 1649758835 - } - ] -} -``` -------------------------------------------------------------------------------------------------------- -### Fetch particular item - -```php -$api->Item->fetch($itemId); -``` -**Parameters** - -| Name | Type | Description | -|----------|--------|-------------------------------------| -| itemId* | string | The id of the item to be fetched | - -**Response:** -```json -{ - "id": "item_JInaSLODeDUQiQ", - "active": true, - "name": "Book / English August", - "description": "An indian story, Booker prize winner.", - "amount": 20000, - "unit_amount": 20000, - "currency": "INR", - "type": "invoice", - "unit": null, - "tax_inclusive": false, - "hsn_code": null, - "sac_code": null, - "tax_rate": null, - "tax_id": null, - "tax_group_id": null, - "created_at": 1649843796 -} -``` - -------------------------------------------------------------------------------------------------------- - -### Update item - -```php -$api->Item->fetch($itemId)->edit(array("name" => "Book / Ignited Minds - Updated name!","description" => "New descirption too. :).","amount" => 20000,"currency" => "INR","active" => true -)); -``` -**Parameters** - -| Name | Type | Description | -|----------|--------|-------------------------------------| -| itemId* | string | The id of the item to be fetched | -| name | string | Name of the item. | -| description | string | A brief description of the item. | -| amount | integer | Amount of the order to be paid | -| currency | string | Currency of the order. Currently only `INR` is supported. | -| active | boolean | Possible values is `0` or `1` | - -**Response:** -```json -{ - "id": "item_JInaSLODeDUQiQ", - "active": true, - "name": "Book / Ignited Minds - Updated name!", - "description": "New descirption too. :).", - "amount": 20000, - "unit_amount": 20000, - "currency": "INR", - "type": "invoice", - "unit": null, - "tax_inclusive": false, - "hsn_code": null, - "sac_code": null, - "tax_rate": null, - "tax_id": null, - "tax_group_id": null, - "created_at": 1649843796 -} -``` -------------------------------------------------------------------------------------------------------- -### Delete item - -```php -$api->Item->fetch($itemId)->delete(); -``` -**Parameters** - -| Name | Type | Description | -|----------|--------|-------------------------------------| -| itemId* | string | The id of the item to be fetched | - -**Response:** -```json -[] -``` -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/items)** diff --git a/assets/php/razorpay-php/documents/linkedAccount.md b/assets/php/razorpay-php/documents/linkedAccount.md deleted file mode 100644 index 6d3f910..0000000 --- a/assets/php/razorpay-php/documents/linkedAccount.md +++ /dev/null @@ -1,198 +0,0 @@ -## Linked Account - -### Create Linked Accounts for Sub-Merchants and Others -```php - - -$api->setHeader('X-Razorpay-Account', 'acc_sub-merchantId'); - -$api->account->create(array( - "email" => "gauriagain.kumar@example.org", - "phone" => "9999999999", - "type" => "route", - "reference_id" => "124124", - "legal_business_name" => "Acme Corp", - "business_type" => "partnership", - "contact_name" => "Gaurav Kumar", - "profile" => array( - "category" => "healthcare", - "subcategory" => "clinic", - "addresses" => array( - "registered" => array( - "street1" => "507, Koramangala 1st block", - "street2" => "MG Road", - "city" => "Bengaluru", - "state" => "Karnataka", - "postal_code" => 560034, - "country" => "IN" - ) - ), - ), - "legal_info" => array( - "pan" => "AAACL1234C", - "gst" => "18AABCU9603R1ZM" - ), -)); - -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| email* | string | The sub-merchant's business email address. | -| phone* | integer | The sub-merchant's business phone number. The minimum length is 8 characters and the maximum length is 15. | -| legal_business_name* | string | The name of the sub-merchant's business. For example, Acme Corp. The minimum length is 4 characters and the maximum length is 200. | -| customer_facing_business_name | string | The sub-merchant billing label as it appears on the Razorpay Dashboard. The minimum length is 1 character and the maximum length is 255. | -| business_type* | string | The type of business operated by the sub-merchant.Possible value is `proprietorship`, `partnership`, `private_limited`, `public_limited`, `llp`, `ngo`, `trust`, `society`, `not_yet_registered`, `huf` | -| reference_id | string | Partner's external account reference id. The minimum length is 1 character and the maximum length is 512. | -| profile | object | All keys listed [here](https://razorpay.com/docs/partners/route/linked-accounts/#create-linked-accounts-for-sub-merchants-and-others) are supported | -| legal_info | object | All keys listed [here](https://razorpay.com/docs/partners/route/linked-accounts/#create-linked-accounts-for-sub-merchants-and-others) are supported | -| contact_info | object | All keys listed [here](https://razorpay.com/docs/api/partners/account-onboarding/#create-an-account) are supported | -| apps | object | All keys listed [here](https://razorpay.com/docs/api/partners/account-onboarding/#create-an-account) are supported | - - -**Response:** -```json -{ - "id":"acc_GRWKk7qQsLnDjX", - "type":"route", - "status":"created", - "email":"gaurav.kumar@example.com", - "profile":{ - "category":"healthcare", - "subcategory":"clinic", - "addresses":{ - "registered":{ - "street1":"507, Koramangala 1st block", - "street2":"MG Road", - "city":"Bengaluru", - "state":"KARNATAKA", - "postal_code":"560034", - "country":"IN" - } - } - }, - "notes":[ - - ], - "created_at":1611136837, - "phone":"9999999999", - "contact_name":"Gaurav Kumar", - "reference_id":"124124", - "business_type":"partnership", - "legal_business_name":"Acme Corp", - "customer_facing_business_name":"Acme Corp", - "legal_info":{ - "pan":"AAACL1234C", - "gst":"18AABCU9603R1ZM" - } -} -``` - -------------------------------------------------------------------------------------------------------- - -### Fetch a Linked Account of a Sub-Merchant by id -```php -$api->setHeader('X-Razorpay-Account', 'acc_sub-merchantId'); - -$accountId = "acc_GP4lfNA0iIMn5B"; -$api->account->fetch($accountId); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|-------------|---------------------------------------------| -| accountId* | string | The unique identifier of a sub-merchant account generated by Razorpay. | - -**Response:** -```json -{ - "id":"acc_GLGeLkU2JUeyDZ", - "type":"route", - "reference_id":"123123", - "status":"created", - "email":"gaurav.kumar@example.com", - "profile":{ - "category":"healthcare", - "subcategory":"clinic", - "addresses":{ - "registered":{ - "street1":"507, Koramangala 1st block", - "street2":"MG Road", - "city":"Bengaluru", - "state":"KARNATAKA", - "postal_code":560034, - "country":"IN" - }, - "operation":{ - "street1":"507, Koramangala 6th block", - "street2":"Kormanagala", - "city":"Bengaluru", - "state":"KARNATAKA", - "country":"IN", - "postal_code":560047 - } - }, - "business_model":null - }, - "notes":[ - - ], - "created_at":1611136837, - "phone":"9999999998", - "business_type":"partnership", - "legal_business_name":"Acme Corp", - "customer_facing_business_name":"Acme Corp", - "legal_info":{ - "pan":"AAACL1234C", - "gst":"18AABCU9603R1ZM" - }, - "apps":{ - "websites":[ - - ], - "android":[ - { - "url":null, - "name":null - } - ], - "ios":[ - { - "url":null, - "name":null - } - ] - }, - "brand":{ - "color":null - }, - "contact_name":"Gaurav Kumar", - "contact_info":{ - "chargeback":{ - "email":null, - "phone":null, - "policy_url":null - }, - "refund":{ - "email":null, - "phone":null, - "policy_url":null - }, - "support":{ - "email":null, - "phone":null, - "policy_url":null - } - } -} -``` - -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/partners/route/linked-accounts)** \ No newline at end of file diff --git a/assets/php/razorpay-php/documents/order.md b/assets/php/razorpay-php/documents/order.md deleted file mode 100644 index da87327..0000000 --- a/assets/php/razorpay-php/documents/order.md +++ /dev/null @@ -1,419 +0,0 @@ -## Orders - -### Create order - -```php -$api->order->create(array('receipt' => '123', 'amount' => 100, 'currency' => 'INR', 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| amount* | integer | Amount of the order to be paid | -| currency* | string | Currency of the order. Currently only `INR` is supported. | -| receipt | string | Your system order reference id. | -| notes | array | A key-value pair | -|partial_payment | boolean | Indicates whether customers can make partial payments on the invoice . Possible values: true - Customer can make partial payments. false (default) - Customer cannot make partial payments. | - -**Response:** - -```json -{ - "id": "order_EKwxwAgItmmXdp", - "entity": "order", - "amount": 50000, - "amount_paid": 0, - "amount_due": 50000, - "currency": "INR", - "receipt": "receipt#1", - "offer_id": null, - "status": "created", - "attempts": 0, - "notes": [], - "created_at": 1582628071 -} -``` - -------------------------------------------------------------------------------------------------------- -### Create order (Third party validation) - -```php -$api->order->create(array('amount' => 500, 'receipt' => 'BILL13375649', 'method' => 'netbanking', 'currency' => 'INR', 'bank_account'=> array('account_number'=> '765432123456789','name'=> 'Gaurav Kumar','ifsc'=>'HDFC0000053'))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| amount* | integer | Amount of the order to be paid | -| method | string | The payment method used to make the payment. If this parameter is not passed, customers will be able to make payments using both netbanking and UPI payment methods. Possible values is `netbanking` or `upi`| -| notes | array | A key-value pair | -| currency* | string | Currency of the order. Currently only `INR` is supported. | -| receipt | string | Your system order reference id. | -| notes | array | A key-value pair | -|bank_account | array | All keys listed [here](https://razorpay.com/docs/payments/third-party-validation/#step-2-create-an-order) are supported | - -**Response:** - -```json -{ - "id": "order_GAWN9beXgaqRyO", - "entity": "order", - "amount": 500, - "amount_paid": 0, - "amount_due": 500, - "currency": "INR", - "receipt": "BILL13375649", - "offer_id": null, - "status": "created", - "attempts": 0, - "notes": [], - "created_at": 1573044247 -} -``` - -------------------------------------------------------------------------------------------------------- - -### Fetch all orders - -```php -$api->order->all($options); -``` - -**Parameters** - -| Name | Type | Description | -|------------|-----------|--------------------------------------------------------------| -| from | timestamp | timestamp after which the orders were created | -| to | timestamp | timestamp before which the orders were created | -| count | integer | number of orders to fetch (default: 10) | -| skip | integer | number of orders to be skipped (default: 0) | -| authorized | boolean | Orders for which orders are currently in authorized state. | -| receipt | string | Orders with the provided value for receipt. | -| expand[] | string | Used to retrieve additional information about the payment. Possible value is `payments`,`payments.card`,`transfers` or `virtual_account` | - -**Response:** - -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "order_EKzX2WiEWbMxmx", - "entity": "order", - "amount": 1234, - "amount_paid": 0, - "amount_due": 1234, - "currency": "INR", - "receipt": "Receipt No. 1", - "offer_id": null, - "status": "created", - "attempts": 0, - "notes": [], - "created_at": 1582637108 - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch particular order - -```php -$api->order->fetch($orderId); -``` -**Parameters** - -| Name | Type | Description | -|----------|--------|-------------------------------------| -| orderId* | string | The id of the order to be fetched | - -**Response:** - -```json -{ - "id": "order_IXnOAMw6SSqKvN", - "entity": "order", - "amount": 100, - "amount_paid": 0, - "amount_due": 100, - "currency": "INR", - "receipt": "Receipt no. 1", - "offer_id": null, - "status": "created", - "attempts": 0, - "notes": { - "notes_key_1": "Tea, Earl Grey, Hot", - "notes_key_2": "Tea, Earl Grey… decaf." - }, - "created_at": 1639581113 -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch payments for an order - -```php -$api->order->fetch($orderId)->payments(); -``` -**Parameters** - -| Name | Type | Description | -|----------|--------|-------------------------------------| -| orderId* | string | The id of the order to be retrieve payment info | - -**Response:** -```json -{ - "entity":"collection", - "count":1, - "items":[ - { - "id":"pay_DaaSOvhgcOfzgR", - "entity":"payment", - "amount":2200, - "currency":"INR", - "status":"captured", - "order_id":"order_DaaS6LOUAASb7Y", - "invoice_id":null, - "international":false, - "method":"card", - "amount_refunded":0, - "refund_status":null, - "captured":true, - "description":"Beans in every imaginable flavour", - "card_id":"card_DZon6fd8J3IcA2", - "bank":null, - "wallet":null, - "vpa":null, - "email":"gaurav.kumar@example.com", - "contact":"+919999999988", - "notes":[], - "fee":44, - "tax":0, - "error_code":null, - "error_description":null, - "created_at":1572505160 - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Update order - -```php -$api->order->fetch($orderId)->edit(array('notes'=> array('notes_key_1'=>'Beam me up Scotty. 1', 'notes_key_2'=>'Engage'))); -``` -**Parameters** - -| Name | Type | Description | -|----------|--------|-------------------------------------| -| orderId* | string | The id of the order to be retrieve payment info | -| notes* | array | A key-value pair | - -**Response:** -```json -{ - "id":"order_DaaS6LOUAASb7Y", - "entity":"order", - "amount":2200, - "amount_paid":0, - "amount_due":2200, - "currency":"INR", - "receipt":"Receipt #211", - "offer_id":null, - "status":"attempted", - "attempts":1, - "notes":{ - "notes_key_1":"Tea, Earl Grey, Hot", - "notes_key_2":"Tea, Earl Grey… decaf." - }, - "created_at":1572505143 -} -``` -------------------------------------------------------------------------------------------------------- - -### Create an order (Magic checkout) - -```php -$api->order->create(array( - "amount" => 50000, - "currency" => "INR", - "receipt" => "receipt#21", - "notes" => array( - "key1" => "value3", - "key2" => "value2" - ), - "rto_review" => true, - "line_items" => - array(array( - "type" => "e-commerce", - "sku" => "1g234", - "variant_id" => "12r34", - "price" => "3900", - "offer_price" => "3800", - "tax_amount" => 0, - "quantity" => 1, - "name" => "TEST", - "description" => "TEST", - "weight" => "1700", - "dimensions" => array( - "length" => "1700", - "width" => "1700", - "height" => "1700" - ), - "image_url" => "https://unsplash.com/s/photos/new-wallpaper", - "product_url" => "https://unsplash.com/s/photos/new-wallpaper", - "notes" => array())), - "line_items_total" => "1200", - "shipping_fee" => 100, - "cod_fee" => 100, - "promotions" => array(array( - "reference_id" => 1234, - "type" => "coupon", - "code" => "HDFC2000", - "value" => "200", - "value_type" => "fixed_amount", - "description" => "200 discount on your order" - )), - "customer" => array( - "name" => "Test Rto Order", - "contact" => "+919000090000", - "email" => "gaurav.kumar@example.com" - ), - "device_details" => array( - "ip" => "127.0.0.1", - "user_agent" => "abc" - ), - "shipping_details" => array( - "shipping_address" => array( - "line1" => "1", - "line2" => "1", - "zipcode" => - "305001", - "contact" => "+919090909090", - "city" => "Ajmer", - "state" => "Rajasthan", - "country" => "IND", - "tag" => "home", - "landmark" => "Hathibhata" - ) - ) - ) - ); -``` -**Parameters** - -| Name | Type | Description | -|----------|--------|-------------------------------------| -| amount* | integer | The transaction amount, expressed in the currency subunit, such as paise (in case of INR). | -| currency* | string | The currency in which the transaction should be made. default value is `INR`| -| receipt | string | Your receipt id for this order should be passed here. Maximum length of 40 characters. | -| notes | array | Key-value pair that can be used to store additional information about the entity.| -| rto_review | boolean | Identifier to mark the order eligible for RTO risk prediction. Possible values is `0` or `1` | -| line_items | array | All keys listed [here](https://betasite.razorpay.com/docs/razorpay/IN/payments-magic-new-rto-intelligence/payments/magic-checkout/rto-intelligence/#11-create-an-order) are supported | -| line_items_total | integer | Sum of offer_price for all line items added in the cart in paise. | -| shipping_fee | integer | Shipping fee charged on the line items in paisa. | -| cod_fee | integer | COD fee charged on the line items in paisa. | -| promotions | array | Used to pass all offer or discount related information including coupon code discount, method discount and so on. | -| customer | array | All keys listed [here](https://betasite.razorpay.com/docs/razorpay/IN/payments-magic-new-rto-intelligence/payments/magic-checkout/rto-intelligence/#11-create-an-order) are supported | -| device_details | array | All keys listed [here](https://betasite.razorpay.com/docs/razorpay/IN/payments-magic-new-rto-intelligence/payments/magic-checkout/rto-intelligence/#11-create-an-order) are supported | -| shipping_details | array | All keys listed [here](https://betasite.razorpay.com/docs/razorpay/IN/payments-magic-new-rto-intelligence/payments/magic-checkout/rto-intelligence/#11-create-an-order) are supported | - -**Response:** -```json -{ - "id": "order_MpyV7eOsTBn24z", - "entity": "order", - "amount": 50000, - "amount_paid": 0, - "amount_due": 50000, - "currency": "INR", - "receipt": "receipt#22", - "status": "created", - "attempts": 0, - "notes": { - "key1": "value3", - "key2": "value2" - }, - "created_at": 1697698714 -} -``` -------------------------------------------------------------------------------------------------------- - -### View RTO/Risk Reasons - -```php -$orderId = "order_DaaS6LOUAASb7Y"; - -$api->order->fetch($orderId)->viewRtoReview(); -``` -**Parameters** - -| Name | Type | Description | -|----------|--------|-------------------------------------| -| orderId* | string | The id of the order to be retrieve payment info | -| notes* | array | A key-value pair | - -**Response:** -```json -{ - "risk_tier": "high", - "rto_reasons": [ - { - "reason": "short_shipping_address", - "description": "Short shipping address", - "bucket": "address" - }, - { - "reason": "address_pincode_state_mismatch", - "description": "Incorrect pincode state entered", - "bucket": "address" - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -```php -$orderId = "order_DaaS6LOUAASb7Y"; - -$api->order->fetch($orderId)->editFulfillment(array( - 'payment_method' => 'upi', - 'shipping' => array( - 'waybill' => '123456789', - 'status' => 'rto', - 'provider' => 'Bluedart' - ) - ) -); -``` -**Parameters** - -| Name | Type | Description | -|----------|--------|-------------------------------------| -| payment_method | string | The id of the order to be retrieve payment info | -| shipping | array | All keys listed [here](https://betasite.razorpay.com/docs/razorpay/IN/payments-magic-new-rto-intelligence/payments/magic-checkout/rto-intelligence/#13-update-the-fulfillment-details) are supported | - -**Response:** -```json -{ - "entity": "order.fulfillment", - "order_id": "EKwxwAgItXXXX", - "payment_method": "upi", - "shipping": { - "waybill": "123456789", - "status": "rto", - "provider": "Bluedart" - } -} -``` -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/orders/)** diff --git a/assets/php/razorpay-php/documents/papernach.md b/assets/php/razorpay-php/documents/papernach.md deleted file mode 100644 index 404031f..0000000 --- a/assets/php/razorpay-php/documents/papernach.md +++ /dev/null @@ -1,603 +0,0 @@ -## Paper NACH - -### Create customer -```php -$api->customer->create(array('name' => 'Razorpay User', 'email' => 'customer@razorpay.com','contact'=>'9123456780', 'fail_existing'=> '0', 'notes'=> array('notes_key_1'=> 'Tea, Earl Grey, Hot','notes_key_2'=> 'Tea, Earl Grey… decaf'))); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| name* | string | Name of the customer | -| email | string | Email of the customer | -| contact | string | Contact number of the customer | -| fail_existing | string | If a customer with the same details already exists, the request throws an exception by default. Possible value is `0` or `1`| -| notes | array | A key-value pair | - -**Response:** -```json -{ - "id": "cust_1Aa00000000003", - "entity": "customer", - "name": "Gaurav Kumar", - "email": "Gaurav.Kumar@example.com", - "contact": "9000000000", - "gstin": null, - "notes": { - "notes_key_1": "Tea, Earl Grey, Hot", - "notes_key_2": "Tea, Earl Grey… decaf." - }, - "created_at": 1582033731 -} -``` -------------------------------------------------------------------------------------------------------- - -### Create order - -```php -$api->order->create(array('amount' => 0,'currency' => 'INR','method' => 'nach','customer_id' => 'cust_1Aa00000000001','receipt' => 'Receipt No. 1', 'notes' => array('notes_key_1' => 'Beam me up Scotty','notes_key_2' => 'Engage'),'token' => array('auth_type' => 'physical','max_amount' => 10000000,'expire_at' => 2709971120,'notes' => array('notes_key_1' => 'Tea, Earl Grey, Hot','notes_key_2' => 'Tea, Earl Grey… decaf.'),'bank_account' => array('account_number' => '11214311215411','ifsc_code' => 'HDFC0000001','beneficiary_name' => 'Gaurav Kumar','account_type' => 'savings'),'nach' => array('form_reference1' => 'Recurring Payment for Gaurav Kumar','form_reference2' => 'Method Paper NACH','description' => 'Paper NACH Gaurav Kumar')))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| amount* | integer | The amount to be captured (should be equal to the authorized amount, in paise) | -| currency* | string | The currency of the payment (defaults to INR) | -| customerId* | string | The id of the customer to be fetched | -| method* | string | Payment method used to make the registration transaction. Possible value is `nach`. | -| receipt | string | Your system order reference id. | -| token | array | All parameters listed [here](https://razorpay.com/docs/api/payments/recurring-payments/paper-nach/create-authorization-transaction/#112-create-an-order) are supported | -| notes | object | A key-value pair | - -**Response:** -```json -{ - "id":"order_1Aa00000000001", - "entity":"order", - "amount":0, - "amount_paid":0, - "amount_due":0, - "currency":"INR", - "receipt":"rcptid #10", - "offer_id":null, - "offers":{ - "entity":"collection", - "count":0, - "items":[ - - ] - }, - "status":"created", - "attempts":0, - "notes":{ - "notes_key_1":"Beam me up Scotty", - "notes_key_2":"Engage" - }, - "created_at":1579775420, - "token":{ - "method":"nach", - "notes":{ - "notes_key_1":"Tea, Earl Grey, Hot", - "notes_key_2":"Tea, Earl Grey… decaf." - }, - "recurring_status":null, - "failure_reason":null, - "currency":"INR", - "max_amount":10000000, - "auth_type":"physical", - "expire_at":1580480689, - "nach":{ - "create_form":true, - "form_reference1":"Recurring Payment for Gaurav Kumar", - "form_reference2":"Method Paper NACH", - "prefilled_form":"https://rzp.io/i/bitw", - "upload_form_url":"https://rzp.io/i/gts", - "description":"Paper NACH Gaurav Kumar" - }, - "bank_account":{ - "ifsc":"HDFC0000001", - "bank_name":"HDFC Bank", - "name":"Gaurav Kumar", - "account_number":"11214311215411", - "account_type":"savings", - "beneficiary_email":"gaurav.kumar@example.com", - "beneficiary_mobile":"9876543210" - }, - "first_payment_amount":0 - } -} -``` - -------------------------------------------------------------------------------------------------------- - -### Create an Authorization Payment - -Please refer this [doc](https://razorpay.com/docs/api/recurring-payments/paper-nach/authorization-transaction/#113-create-an-authorization-payment) for authorization payment - -------------------------------------------------------------------------------------------------------- - -### Create registration link - -```php -$api->subscription->createSubscriptionRegistration(array('customer' => array('name' => 'Gaurav Kumar','email' => 'gaurav.kumar@example.com','contact' => '9123456780'),'amount' => 0,'currency' => 'INR','type' => 'link','description' => '12 p.m. Meals','subscription_registration' => array('method' => 'nach','auth_type' => 'physical','bank_account' => array('beneficiary_name' => 'Gaurav Kumar','account_number' => '11214311215411','account_type' => 'savings','ifsc_code' => 'HDFC0001233'),'nach' => array('form_reference1' => 'Recurring Payment for Gaurav Kumar','form_reference2' => 'Method Paper NACH'),'expire_at' => 1947483647,'max_amount' => 50000),'receipt' => 'Receipt No. 1','sms_notify' => 1,'email_notify' => 1,'expire_by' => 1647483647,'notes' => array('note_key 1' => 'Beam me up Scotty','note_key 2' => 'Tea. Earl Gray. Hot.'))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| customer | array | All parameters listed [here](https://razorpay.com/docs/api/payments/recurring-payments/paper-nach/create-authorization-transaction/#121-create-a-registration-link) | -| type* | string | In this case, the value is `link`. | -| currency* | string | The 3-letter ISO currency code for the payment. Currently, only `INR` is supported. | -| amount* | integer | The payment amount in the smallest currency sub-unit. | -| description* | string | A description that appears on the hosted page. For example, `12:30 p.m. Thali meals (Gaurav Kumar`). | -| subscription_registration | array | All parameters listed [here](https://razorpay.com/docs/api/payments/recurring-payments/paper-nach/create-authorization-transaction/#121-create-a-registration-link) | -| sms_notify | boolean | SMS notifications are to be sent by Razorpay (default : 1) | -| email_notify | boolean | Email notifications are to be sent by Razorpay (default : 1) | -| expire_by | integer | The timestamp, in Unix format, till when the customer can make the authorization payment. | -| receipt | string | Your system order reference id. | -| notes | array | A key-value pair | - -**Response:** -```json -{ - "id": "inv_FHrZiAubEzDdaq", - "entity": "invoice", - "receipt": "Receipt No. 27", - "invoice_number": "Receipt No. 27", - "customer_id": "cust_BMB3EwbqnqZ2EI", - "customer_details": { - "id": "cust_BMB3EwbqnqZ2EI", - "name": "Gaurav Kumar", - "email": "gaurav.kumar@example.com", - "contact": "9123456780", - "gstin": null, - "billing_address": null, - "shipping_address": null, - "customer_name": "Gaurav Kumar", - "customer_email": "gaurav.kumar@example.com", - "customer_contact": "9123456780" - }, - "order_id": "order_FHrZiBOkWHZPOp", - "line_items": [], - "payment_id": null, - "status": "issued", - "expire_by": 1647483647, - "issued_at": 1595491154, - "paid_at": null, - "cancelled_at": null, - "expired_at": null, - "sms_status": "sent", - "email_status": "sent", - "date": 1595491154, - "terms": null, - "partial_payment": false, - "gross_amount": 0, - "tax_amount": 0, - "taxable_amount": 0, - "amount": 0, - "amount_paid": 0, - "amount_due": 0, - "currency": "INR", - "currency_symbol": "₹", - "description": "12 p.m. Meals", - "notes": { - "note_key 1": "Beam me up Scotty", - "note_key 2": "Tea. Earl Gray. Hot." - }, - "comment": null, - "short_url": "https://rzp.io/i/bzDYbNg", - "view_less": true, - "billing_start": null, - "billing_end": null, - "type": "link", - "group_taxes_discounts": false, - "created_at": 1595491154, - "idempotency_key": null, - "token": { - "method": "nach", - "notes": { - "note_key 1": "Beam me up Scotty", - "note_key 2": "Tea. Earl Gray. Hot." - }, - "recurring_status": null, - "failure_reason": null, - "currency": "INR", - "max_amount": 50000, - "auth_type": "physical", - "expire_at": 1947483647, - "nach": { - "create_form": true, - "form_reference1": "Recurring Payment for Gaurav Kumar", - "form_reference2": "Method Paper NACH", - "prefilled_form": "https://rzp.io/i/exdIzYN", - "upload_form_url": "https://rzp.io/i/bzDYbNg", - "description": "12 p.m. Meals" - }, - "bank_account": { - "ifsc": "HDFC0001233", - "bank_name": "HDFC Bank", - "name": "Gaurav Kumar", - "account_number": "11214311215411", - "account_type": "savings", - "beneficiary_email": "gaurav.kumar@example.com", - "beneficiary_mobile": "9123456780" - }, - "first_payment_amount": 0 - }, - "nach_form_url": "https://rzp.io/i/exdIzYN" -} -``` -------------------------------------------------------------------------------------------------------- - -### Send/Resend notifications - -```php -$api->invoice->fetch($invoiceId)->notifyBy($medium); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| invoiceId* | string | The id of the invoice to be notified | -| medium* | string | `sms`/`email`, Medium through which notification should be sent. | - -**Response:** -```json -{ - "success": true -} -``` -------------------------------------------------------------------------------------------------------- - -### Cancel a registration link - -```php -$api->invoice->fetch($invoiceId)->cancel(); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| invoiceId* | string | The id of the invoice to be cancelled | - -**Response:** -```json -{ - "id": "inv_FHrZiAubEzDdaq", - "entity": "invoice", - "receipt": "Receipt No. 27", - "invoice_number": "Receipt No. 27", - "customer_id": "cust_BMB3EwbqnqZ2EI", - "customer_details": { - "id": "cust_BMB3EwbqnqZ2EI", - "name": "Gaurav Kumar", - "email": "gaurav.kumar@example.com", - "contact": "9123456780", - "gstin": null, - "billing_address": null, - "shipping_address": null, - "customer_name": "Gaurav Kumar", - "customer_email": "gaurav.kumar@example.com", - "customer_contact": "9123456780" - }, - "order_id": "order_FHrZiBOkWHZPOp", - "line_items": [], - "payment_id": null, - "status": "cancelled", - "expire_by": 1647483647, - "issued_at": 1595491154, - "paid_at": null, - "cancelled_at": 1595491339, - "expired_at": null, - "sms_status": "sent", - "email_status": "sent", - "date": 1595491154, - "terms": null, - "partial_payment": false, - "gross_amount": 0, - "tax_amount": 0, - "taxable_amount": 0, - "amount": 0, - "amount_paid": 0, - "amount_due": 0, - "currency": "INR", - "currency_symbol": "₹", - "description": "12 p.m. Meals", - "notes": { - "note_key 1": "Beam me up Scotty", - "note_key 2": "Tea. Earl Gray. Hot." - }, - "comment": null, - "short_url": "https://rzp.io/i/bzDYbNg", - "view_less": true, - "billing_start": null, - "billing_end": null, - "type": "link", - "group_taxes_discounts": false, - "created_at": 1595491154, - "idempotency_key": null, - "token": { - "method": "nach", - "notes": { - "note_key 1": "Beam me up Scotty", - "note_key 2": "Tea. Earl Gray. Hot." - }, - "recurring_status": null, - "failure_reason": null, - "currency": "INR", - "max_amount": 50000, - "auth_type": "physical", - "expire_at": 1947483647, - "nach": { - "create_form": true, - "form_reference1": "Recurring Payment for Gaurav Kumar", - "form_reference2": "Method Paper NACH", - "prefilled_form": "https://rzp.io/i/tSYd5aV", - "upload_form_url": "https://rzp.io/i/bzDYbNg", - "description": "12 p.m. Meals" - }, - "bank_account": { - "ifsc": "HDFC0001233", - "bank_name": "HDFC Bank", - "name": "Gaurav Kumar", - "account_number": "11214311215411", - "account_type": "savings", - "beneficiary_email": "gaurav.kumar@example.com", - "beneficiary_mobile": "9123456780" - }, - "first_payment_amount": 0 - }, - "nach_form_url": "https://rzp.io/i/tSYd5aV" -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch Payment ID using Order ID - -```php -$api->order->fetch($orderId)->payments(); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| orderId* | string | Order id for which payment id need to be fetched | - -**Response:** -```json -{ - "entity":"collection", - "count":1, - "items":[ - { - "id":"pay_1Aa00000000003", - "entity":"payment", - "amount":0, - "currency":"INR", - "status":"captured", - "order_id":"order_1Aa00000000003", - "invoice_id":"inv_1Aa00000000003", - "international":false, - "method":"nach", - "amount_refunded":0, - "refund_status":null, - "captured":true, - "description":"12 p.m. Meals", - "card_id":null, - "bank":"HDFC", - "wallet":null, - "vpa":null, - "email":"gaurav.kumar@example.com", - "contact":"99876543210", - "customer_id":"cust_1Aa00000000002", - "token_id":"token_1Aa00000000003", - "notes":{ - "note_key 1":"Beam me up Scotty", - "note_key 2":"Tea. Earl Gray. Hot." - }, - "fee":0, - "tax":0, - "error_code":null, - "error_description":null, - "created_at":1580109147 - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch token by payment ID - -```php -$api->payment->fetch($paymentId); -``` - -**Parameters:** - -| Name | Type | Description | -|------------|--------|-----------------------------------| -| paymentId* | string | Id of the payment to be retrieved | - -**Response:** -```json -{ - "id": "pay_EnLNTjINiPkMEZ", - "entity": "payment", - "amount": 0, - "currency": "INR", - "status": "captured", - "order_id": "order_EnLLfglmKksr4K", - "invoice_id": "inv_EnLLfgCzRfcMuh", - "international": false, - "method": "nach", - "amount_refunded": 0, - "refund_status": null, - "captured": true, - "description": "Invoice #inv_EnLLfgCzRfcMuh", - "card_id": null, - "bank": "UTIB", - "wallet": null, - "vpa": null, - "email": "gaurav.kumar@example.com", - "contact": "+919876543210", - "customer_id": "cust_DtHaBuooGHTuyZ", - "token_id": "token_EnLNTnn7uyRg5V", - "notes": { - "note_key 1": "Beam me up Scotty", - "note_key 2": "Tea. Earl Gray. Hot." - }, - "fee": 0, - "tax": 0, - "error_code": null, - "error_description": null, - "error_source": null, - "error_step": null, - "error_reason": null, - "acquirer_data": {}, - "created_at": 1588827564 -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch tokens by customer ID - -```php -$api->customer->fetch($customerId)->tokens()->all(); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| customerId* | string | The id of the customer to be fetched | - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "token_EhYgIE3pOyMQpD", - "entity": "token", - "token": "3mQ5Czc6APNppI", - "bank": "HDFC", - "wallet": null, - "method": "nach", - "vpa": null, - "recurring": true, - "recurring_details": { - "status": "confirmed", - "failure_reason": null - }, - "auth_type": "physical", - "mrn": null, - "used_at": 1587564373, - "created_at": 1587564373, - "dcc_enabled": false - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Delete token - -```php -$api->customer->fetch($customerId)->tokens()->delete($tokenId); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| customerId* | string | The id of the customer to be fetched | -| tokenId* | string | The id of the token to be fetched | - -**Response:** -```json -{ - "deleted": true -} -``` -------------------------------------------------------------------------------------------------------- - -### Create an order to charge the customer - -```php -$api->order->create(array('amount' => 1000,'currency' => 'INR','payment_capture' => true,'receipt' => 'Receipt No. 1','notes'=> array('notes_key_1' => 'Tea, Earl Grey, Hot', 'notes_key_2' => 'Tea, Earl Grey… decaf.'))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| amount* | integer | Amount of the order to be paid | -| currency* | string | Currency of the order. Currently only `INR` is supported. | -| payment_capture* | boolean | Indicates whether payment status should be changed to captured automatically or not. Possible values: true - Payments are captured automatically. false - Payments are not captured automatically. | -| receipt | string | Your system order reference id. | -| notes | array | A key-value pair | -**Response:** -```json -{ - "id":"order_1Aa00000000002", - "entity":"order", - "amount":1000, - "amount_paid":0, - "amount_due":1000, - "currency":"INR", - "receipt":"Receipt No. 1", - "offer_id":null, - "status":"created", - "attempts":0, - "notes":{ - "notes_key_1":"Tea, Earl Grey, Hot", - "notes_key_2":"Tea, Earl Grey… decaf." - }, - "created_at":1579782776 -} -``` -------------------------------------------------------------------------------------------------------- - -### Create a Recurring Payment - -```php -$api->payment->createRecurring(array('email'=>'gaurav.kumar@example.com','contact'=>'9123456789','amount'=>100,'currency'=>'INR','order_id'=>'order_1Aa00000000002','customer_id'=>'cust_1Aa00000000001','token'=>'token_1Aa00000000001','recurring'=>'1','description'=>'Creating recurring payment for Gaurav Kumar')); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| email* | string | The customer's email address. | -| contact* | string | The customer's phone number. | -| amount* | integer | The amount you want to charge your customer. This should be the same as the amount in the order. | -| currency* | string | The 3-letter ISO currency code for the payment. Currently, only `INR` is supported. | -| order_id* | string | The unique identifier of the order created. | -| customer_id* | string | The `customer_id` for the customer you want to charge. | -| token* | string | The `token_id` generated when the customer successfully completes the authorization payment. Different payment instruments for the same customer have different `token_id`.| -| recurring* | string | Determines if recurring payment is enabled or not. Possible values:
* `1` - Recurring is enabled.* `0` - Recurring is not enabled.| -| description | string | A user-entered description for the payment.| -| notes | array | Key-value pair that can be used to store additional information about the entity. Maximum 15 key-value pairs, 256 characters (maximum) each. | - -**Response:** -```json -{ - "razorpay_payment_id" : "pay_1Aa00000000001", - "razorpay_order_id" : "order_1Aa00000000001", - "razorpay_signature" : "9ef4dffbfd84f1318f6739a3ce19f9d85851857ae648f114332d8401e0949a3d" -} -``` -------------------------------------------------------------------------------------------------------- - - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/recurring-payments/paper-nach/authorization-transaction/)** diff --git a/assets/php/razorpay-php/documents/payment.md b/assets/php/razorpay-php/documents/payment.md deleted file mode 100644 index 0f1ea19..0000000 --- a/assets/php/razorpay-php/documents/payment.md +++ /dev/null @@ -1,856 +0,0 @@ -## Payments - -### Capture payment - -```php -$api->payment->fetch($paymentId)->capture(array('amount'=>$amount,'currency' => 'INR')); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------|---------|--------------------------------------------------------------------------------| -| paymentId* | string | Id of the payment to capture | -| amount* | integer | The amount to be captured (should be equal to the authorized amount, in paise) | -| currency* | string | The currency of the payment (defaults to INR) | - -**Response:** -```json -{ - "id": "pay_G8VQzjPLoAvm6D", - "entity": "payment", - "amount": 1000, - "currency": "INR", - "status": "captured", - "order_id": "order_G8VPOayFxWEU28", - "invoice_id": null, - "international": false, - "method": "upi", - "amount_refunded": 0, - "refund_status": null, - "captured": true, - "description": "Purchase Shoes", - "card_id": null, - "bank": null, - "wallet": null, - "vpa": "gaurav.kumar@exampleupi", - "email": "gaurav.kumar@example.com", - "contact": "+919999999999", - "customer_id": "cust_DitrYCFtCIokBO", - "notes": [], - "fee": 24, - "tax": 4, - "error_code": null, - "error_description": null, - "error_source": null, - "error_step": null, - "error_reason": null, - "acquirer_data": { - "rrn": "033814379298" - }, - "created_at": 1606985209 -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch all payments - -```php -$api->payment->all($options); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| from | timestamp | timestamp after which the payments were created | -| to | timestamp | timestamp before which the payments were created | -| count | integer | number of payments to fetch (default: 10) | -| skip | integer | number of payments to be skipped (default: 0) | -| expand[] | string | Used to retrieve additional information about the payment. Possible value is `cards` or `emi`| - -**Response:** -```json -{ - "entity": "collection", - "count": 2, - "items": [ - { - "id": "pay_G8VaL2Z68LRtDs", - "entity": "payment", - "amount": 900, - "currency": "INR", - "status": "captured", - "order_id": "order_G8VXfKDWDEOHHd", - "invoice_id": null, - "international": false, - "method": "netbanking", - "amount_refunded": 0, - "refund_status": null, - "captured": true, - "description": "Purchase Shoes", - "card_id": null, - "bank": "KKBK", - "wallet": null, - "vpa": null, - "email": "gaurav.kumar@example.com", - "contact": "+919999999999", - "customer_id": "cust_DitrYCFtCIokBO", - "notes": [], - "fee": 22, - "tax": 4, - "error_code": null, - "error_description": null, - "error_source": null, - "error_step": null, - "error_reason": null, - "acquirer_data": { - "bank_transaction_id": "0125836177" - }, - "created_at": 1606985740 - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch a payment - -```php -$api->payment->fetch($paymentId); -``` - -**Parameters:** - -| Name | Type | Description | -|------------|--------|-----------------------------------| -| paymentId* | string | Id of the payment to be retrieved | - -**Response:** -```json -{ - "id": "pay_G8VQzjPLoAvm6D", - "entity": "payment", - "amount": 1000, - "currency": "INR", - "status": "captured", - "order_id": "order_G8VPOayFxWEU28", - "invoice_id": null, - "international": false, - "method": "upi", - "amount_refunded": 0, - "refund_status": null, - "captured": true, - "description": "Purchase Shoes", - "card_id": null, - "bank": null, - "wallet": null, - "vpa": "gaurav.kumar@exampleupi", - "email": "gaurav.kumar@example.com", - "contact": "+919999999999", - "customer_id": "cust_DitrYCFtCIokBO", - "notes": [], - "fee": 24, - "tax": 4, - "error_code": null, - "error_description": null, - "error_source": null, - "error_step": null, - "error_reason": null, - "acquirer_data": { - "rrn": "033814379298" - }, - "created_at": 1606985209 -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch payments for an order - -```php -$api->order->fetch($orderId)->payments(); -``` -**Parameters** - -| Name | Type | Description | -|----------|--------|-------------------------------------| -| orderId* | string | The id of the order to be retrieve payment info | - -**Response:** -```json -{ - "count": 1, - "entity": "collection", - "items": [ - { - "id": "pay_DovGQXOkPBJjjU", - "entity": "payment", - "amount": 600, - "currency": "INR", - "status": "captured", - "order_id": "order_DovFx48wjYEr2I", - "method": "netbanking", - "amount_refunded": 0, - "refund_status": null, - "captured": true, - "description": "A Wild Sheep Chase is a novel by Japanese author Haruki Murakami", - "card_id": null, - "bank": "SBIN", - "wallet": null, - "vpa": null, - "email": "gaurav.kumar@example.com", - "contact": "9364591752", - "fee": 70, - "tax": 10, - "error_code": null, - "error_description": null, - "error_source": null, - "error_step": null, - "error_reason": null, - "notes": [], - "acquirer_data": { - "bank_transaction_id": "0125836177" - }, - "created_at": 1400826750 - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Update a payment - -```php -$api->payment->fetch($paymentId)->edit(array('notes'=> array('key_1'=> 'value1','key_2'=> 'value2'))); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|---------|--------------------------------------| -| paymentId* | string | Id of the payment to update | -| notes* | array | A key-value pair | - -**Response:** -```json -{ - "id": "pay_CBYy6tLmJTzn3Q", - "entity": "payment", - "amount": 1000, - "currency": "INR", - "status": "authorized", - "order_id": null, - "invoice_id": null, - "international": false, - "method": "netbanking", - "amount_refunded": 0, - "refund_status": null, - "captured": false, - "description": null, - "card_id": null, - "bank": "UTIB", - "wallet": null, - "vpa": null, - "email": "testme@acme.com", - "customer_id": "cust_JR4BVKjKyJ7enk", - "notes": { - "key1": "value1", - "key2": "value2" - }, - "fee": null, - "tax": null, - "error_code": null, - "error_description": null, - "error_source": null, - "error_step": null, - "error_reason": null, - "acquirer_data": { - "bank_transaction_id": "0125836177" - }, - "created_at": 1553504328 -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch expanded card or emi details for payments - -Request #1: Card - -```php -$api->payment->all(array('expand[]'=>'card')); -``` - -Request #2: EMI - -```php -$api->payment->all(array('expand[]'=>'emi')); -``` - -**Response:**
-For expanded card or emi details for payments response please click [here](https://razorpay.com/docs/api/payments/#fetch-expanded-card-or-emi-details-for-payments) - -------------------------------------------------------------------------------------------------------- - -### Fetch card details with paymentId - -```php -$api->payment->fetch($paymentId)->fetchCardDetails(); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|---------|--------------------------------------| -| paymentId* | string | Id of the payment to update | - -**Response:** -```json -{ - "id": "card_6krZ6bcjoeqyV9", - "entity": "card", - "name": "Gaurav", - "last4": "3335", - "network": "Visa", - "type": "debit", - "issuer": "SBIN", - "international": false, - "emi": null, - "sub_type": "business" -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch Payment Downtime Details - -```php -$api->payment->fetchPaymentDowntime(); -``` -**Response:**
-For payment downtime response please click [here](https://razorpay.com/docs/api/payments/downtime/#fetch-payment-downtime-details) - -------------------------------------------------------------------------------------------------------- - -### Fetch Payment Downtime - -```php -$api->payment->fetchPaymentDowntimeById($downtimeId); - -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|---------|--------------------------------------| -| downtimeId* | string | Id to fetch payment downtime | - -**Response:**
-For payment downtime by id response please click [here](https://razorpay.com/docs/api/payments/downtime/#fetch-payment-downtime-details-by-id) -------------------------------------------------------------------------------------------------------- - -### Payment capture settings API - -```php -$api->order->create(array('amount' => 50000,'currency' => 'INR','receipt' => 'rcptid_11','payment' => array('capture' => 'automatic','capture_options' => array('automatic_expiry_period' => 12,'manual_expiry_period' => 7200,'refund_speed' => 'optimum')))); - -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|---------|--------------------------------------| -| amount* | integer | Amount of the order to be paid | -| currency* | string | Currency of the order. Currently only `INR` is supported. | -| receipt | string | Your system order reference id. | -| payment | array | please refer this [doc](https://razorpay.com/docs/payments/payments/capture-settings/api/) for params | - -**Response:**
-```json -{ - "id": "order_DBJOWzybf0sJbb", - "entity": "order", - "amount": 50000, - "amount_paid": 0, - "amount_due": 50000, - "currency": "INR", - "receipt": "rcptid_11", - "status": "created", - "attempts": 0, - "notes": [], - "created_at": 1566986570 -} -``` -------------------------------------------------------------------------------------------------------- - -### Create Payment Json - -```php -$api->payment->createPaymentJson(array('amount' => 100,'currency' => 'INR','email' => 'gaurav.kumar@example.com','contact' => '9123456789','order_id' => 'order_I6LVPRQ6upW3uh','method' => 'card','card' => array('number' => '4854980604708430','cvv' => '123','expiry_month' => '12','expiry_year' => '21','name' => 'Gaurav Kumar'))); -``` - -**Parameters:** -| Name | Type | Description | -|-------------|---------|--------------------------------------| -| amount* | integer | Amount of the order to be paid | -| currency* | string | The currency of the payment (defaults to INR) | -| order_id* | string | The unique identifier of the order created. | -| email* | string | Email of the customer | -| contact* | string | Contact number of the customer | -| method* | string | Possible value is `card`, `netbanking`, `wallet`,`emi`, `upi`, `cardless_emi`, `paylater`. | -| card | array | All keys listed [here](https://razorpay.com/docs/payments/payment-gateway/s2s-integration/payment-methods/#supported-payment-fields) are supported | -| bank | string | Bank code of the bank used for the payment. Required if the method is `netbanking`.| -| bank_account | array | All keys listed [here](https://razorpay.com/docs/payments/customers/customer-fund-account-api/#create-a-fund-account) are supported | -| vpa | string | Virtual payment address of the customer. Required if the method is `upi`. | -| wallet | string | Wallet code for the wallet used for the payment. Required if the method is `wallet`. | -| notes | array | A key-value pair | - - please refer this [doc](https://razorpay.com/docs/payment-gateway/s2s-integration/payment-methods/) for params - -**Response:**
-```json -{ - "razorpay_payment_id": "pay_FVmAstJWfsD3SO", - "next": [ - { - "action": "redirect", - "url": "https://api.razorpay.com/v1/payments/FVmAtLUe9XZSGM/authorize" - }, - { - "action": "otp_generate", - "url": "https://api.razorpay.com/v1/payments/pay_FVmAstJWfsD3SO/otp_generate?track_id=FVmAtLUe9XZSGM&key_id=" - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### OTP Generate - -```php -$api = new Api("key",""); // Use Only razorpay key - -$api->payment->otpGenerate($paymentId); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|---------|--------------------------------------| -| paymentId* | integer | Unique identifier of the payment | - -**Response:**
- -```json -{ - "razorpay_payment_id": "pay_FVmAstJWfsD3SO", - "next": [ - { - "action": "otp_submit", - "url": "https://api.razorpay.com/v1/payments/pay_FVmAstJWfsD3SO/otp_submit/ac2d415a8be7595de09a24b41661729fd9028fdc?key_id=" - }, - { - "action": "otp_resend", - "url": "https://api.razorpay.com/v1/payments/pay_FVmAstJWfsD3SO/otp_resend/json?key_id=" - } - ], - "metadata": { - "issuer": "HDFC", - "network": "MC", - "last4": "1111", - "iin": "411111" - } -} -``` - -------------------------------------------------------------------------------------------------------- - -### OTP Submit - -```php -$api->payment->fetch($paymentId)->otpSubmit(array('otp'=> '12345')); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|---------|--------------------------------------| -| paymentId* | integer | Unique identifier of the payment | -| otp* | string | The customer receives the OTP using their preferred notification medium - SMS or email | - -**Response:**
-Success -```json -{ - "razorpay_payment_id": "pay_D5jmY2H6vC7Cy3", - "razorpay_order_id": "order_9A33XWu170gUtm", - "razorpay_signature": "9ef4dffbfd84f1318f6739a3ce19f9d85851857ae648f114332d8401e0949a3d" -} -``` -Failure -```json -{ - "error": { - "code" : "BAD_REQUEST_ERROR", - "description": "payment processing failed because of incorrect otp" - }, - "next": ["otp_submit", "otp_resend"] -} -``` -------------------------------------------------------------------------------------------------------- - -### Create Payment Json (Third party validation) - -```php -$api->payment->createPaymentJson(array('amount' => 100,'currency' => 'INR','email' => 'gaurav.kumar@example.com','contact' => '9123456789','order_id' => 'order_I6LVPRQ6upW3uh','method' => 'netbanking', 'bank'=>'HDFC')); -``` - -**Parameters:** -| Name | Type | Description | -|-------------|---------|--------------------------------------| -| amount* | integer | Amount of the order to be paid | -| currency* | string | The currency of the payment (defaults to INR) | -| order_id* | string | The unique identifier of the order created. | -| email* | string | Email of the customer | -| contact* | string | Contact number of the customer | -| method* | string | Possible value is `netbanking` | -| bank* | string | The customer's bank code.For example, `HDFC`.| - - please refer this [doc](https://razorpay.com/docs/payments/third-party-validation/s2s-integration/netbanking#step-3-create-a-payment) for params - -**Response:**
-```json -{ - "razorpay_payment_id": "pay_GAWOYqPlvrtPSi", - "next": [ - { - "action": "redirect", - "url": "https://api.razorpay.com/v1/payments/pay_GAWOYqPlvrtPSi/authorize" - } - ] -} -``` -------------------------------------------------------------------------------------------------------- -### Create Payment UPI s2s / VPA token (Third party validation) - -```php -$api->payment->createUpi(array("amount" => 200,"currency" => "INR","order_id" => "order_Jhgp4wIVHQrg5H","email" => "gaurav.kumar@example.com","contact" => "9123456789","method" => "upi","customer_id" => "cust_EIW4T2etiweBmG","save" => 1,"ip" => "192.168.0.103","referer" => "http","user_agent" => "Mozilla/5.0","description" => "Test flow","notes" => array("note_key" => "value1"),"upi" => array("flow" => "collect","vpa" => "gauravkumar@exampleupi","expiry_time" => 5))); -``` - -**Parameters:** -| Name | Type | Description | -|-------------|---------|--------------------------------------| -| amount* | integer | Amount of the order to be paid | -| currency* | string | The currency of the payment (defaults to INR) | -| order_id* | string | The unique identifier of the order created. | -| email* | string | Email of the customer | -| customer_id* | string | The id of the customer to be fetched | -| contact* | string | Contact number of the customer | -| notes | array | A key-value pair | -| description | string | Descriptive text of the payment. | -| save | boolean | Specifies if the VPA should be stored as tokens.Possible value is `0`, `1` | -| callback_url | string | URL where Razorpay will submit the final payment status. | -| ip* | string | The client's browser IP address. For example `117.217.74.98` | -| referer* | string | Value of `referer` header passed by the client's browser. For example, `https://example.com/` | -| user_agent* | string | Value of `user_agent` header passed by the client's browser. For example, `Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36` | -| upi* (for Upi only) | array | All keys listed [here](https://razorpay.com/docs/payments/third-party-validation/s2s-integration/upi/collect#step-14-initiate-a-payment) are supported | - -**Response:**
-```json -{ - "razorpay_payment_id": "pay_EAm09NKReXi2e0" -} -``` -------------------------------------------------------------------------------------------------------- -### Create Payment UPI s2s / VPA token (Third party validation) - -```php -$api->payment->createUpi(array("amount" => 200,"currency" => "INR","order_id" => "order_Jhgp4wIVHQrg5H","email" => "gaurav.kumar@example.com","contact" => "9123456789","method" => "upi","customer_id" => "cust_EIW4T2etiweBmG","ip" => "192.168.0.103","referer" => "http","user_agent" => "Mozilla/5.0","description" => "Test flow","notes" => array("note_key" => "value1"),"upi" => array("flow" => "intent"))); -``` - -**Parameters:** -| Name | Type | Description | -|-------------|---------|--------------------------------------| -| amount* | integer | Amount of the order to be paid | -| currency* | string | The currency of the payment (defaults to INR) | -| order_id* | string | The unique identifier of the order created. | -| email* | string | Email of the customer | -| customer_id* | string | The id of the customer to be fetched | -| contact* | string | Contact number of the customer | -| notes | array | A key-value pair | -| description | string | Descriptive text of the payment. | -| save | boolean | Specifies if the VPA should be stored as tokens.Possible value is `0`, `1` | -| callback_url | string | URL where Razorpay will submit the final payment status. | -| ip* | string | The client's browser IP address. For example `117.217.74.98` | -| referer* | string | Value of `referer` header passed by the client's browser. For example, `https://example.com/` | -| user_agent* | string | Value of `user_agent` header passed by the client's browser. For example, `Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36` | -| upi* (for Upi only) | array | All keys listed [here](https://razorpay.com/docs/payments/third-party-validation/s2s-integration/upi/intent/#step-2-initiate-a-payment) are supported | - -**Response:**
-```json -{ - "razorpay_payment_id": "pay_CMeM6XvOPGFiF", - "link": "upi://pay?pa=success@razorpay&pn=xyz&tr=xxxxxxxxxxx&tn=gourav&am=1&cu=INR&mc=xyzw" -} -``` -------------------------------------------------------------------------------------------------------- - -### Valid VPA (Third party validation) - -```php -$api->payment->validateVpa(array('vpa'=>'gauravkumar@exampleupi')); -``` - -**Parameters:** -| Name | Type | Description | -|-------------|---------|--------------------------------------| -| vpa* | string | The virtual payment address (VPA) you want to validate. For example, `gauravkumar@exampleupi` | - - please refer this [doc](https://razorpay.com/docs/payments/third-party-validation/s2s-integration/upi/collect#step-13-validate-the-vpa) for params - -**Response:**
-```json -{ - "vpa": "gauravkumar@exampleupi", - "success": true, - "customer_name": "Gaurav Kumar" -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch payment methods (Third party validation) - -```php -$api = new Api("key",""); // // Use Only razorpay key - -$api->payment->fetchPaymentMethods(); -``` - -**Response:**
- please refer this [doc](https://razorpay.com/docs/payments/third-party-validation/s2s-integration/methods-api/#fetch-payment-methods) for response - -------------------------------------------------------------------------------------------------------- - -### OTP Resend - -```php -$api->payment->fetch($paymentId)->otpResend(); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|---------|--------------------------------------| -| paymentId* | integer | Unique identifier of the payment | - -Doc reference [doc](https://razorpay.com/docs/payments/payment-methods/cards/authentication/native-otp/#otp-resend) - -**Response:**
- -```json -{ - "next": [ - "otp_submit", - "otp_resend" - ], - "razorpay_payment_id": "pay_JWaNvYmrx75sXo" -} -``` - -------------------------------------------------------------------------------------------------------- - -### Fetch a Payment (With Expanded Card Details) - -```php -$paymentId = "pay_MLzFlOC98cJmHQ"; - -$api->payment->fetch($paymentId)->expandedDetails(["expand[]"=> "card"]); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|---------|--------------------------------------| -| paymentId* | integer | Unique identifier of the payment | -| expand[] | string | Use to expand the card details when the payment method is `card`. | - -**Response:**
- -```json -{ - "id": "pay_H9oR0gLCaVlV6m", - "entity": "payment", - "amount": 100, - "currency": "INR", - "status": "failed", - "order_id": "order_H9o58N6qmLYQKC", - "invoice_id": null, - "terminal_id": "term_G5kJnYM9GhhLYT", - "international": false, - "method": "card", - "amount_refunded": 0, - "refund_status": null, - "captured": false, - "description": null, - "card_id": "card_H9oR0ocen1cmZq", - "card": { - "id": "card_H9oR0ocen1cmZq", - "entity": "card", - "name": "Gaurav", - "last4": "1213", - "network": "RuPay", - "type": "credit", - "issuer": "UTIB", - "international": false, - "emi": false, - "sub_type": "business" - }, - "bank": null, - "wallet": null, - "vpa": null, - "email": "gaurav.kumar@example.com", - "contact": "+919000090000", - "notes": { - "email": "gaurav.kumar@example.com", - "phone": "09000090000" - }, - "fee": null, - "tax": null, - "error_code": "BAD_REQUEST_ERROR", - "error_description": "Card issuer is invalid", - "error_source": "customer", - "error_step": "payment_authentication", - "error_reason": "incorrect_card_details", - "acquirer_data": { - "auth_code": null, - "authentication_reference_number": "100222021120200000000742753928" - }, - "created_at": 1620807547 -} -``` - -------------------------------------------------------------------------------------------------------- - -### Fetch a Payment (With Expanded Offers Details) - -```php -$paymentId = "pay_MLzFlOC98cJmHQ"; - -$api->payment->fetch($paymentId)->expandedDetails(["expand[]"=> "emi"]); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|---------|--------------------------------------| -| paymentId* | integer | Unique identifier of the payment | -| expand[] | string | Use to expand the emi details when the payment method is emi. | - -**Response:**
- -```json -{ - "id": "pay_DG4ZdRK8ZnXC3k", - "entity": "payment", - "amount": 200000, - "currency": "INR", - "status": "authorized", - "order_id": null, - "invoice_id": null, - "international": false, - "method": "emi", - "amount_refunded": 0, - "refund_status": null, - "captured": false, - "description": null, - "card_id": "card_DG4ZdUO3xABb20", - "bank": "ICIC", - "wallet": null, - "vpa": null, - "email": "gaurav@example.com", - "contact": "+919972000005", - "notes": [], - "fee": null, - "tax": null, - "error_code": null, - "error_description": null, - "error_source": null, - "error_step": null, - "error_reason": null, - "emi": { - "issuer": "ICIC", - "rate": 1300, - "duration": 6 - }, - "acquirer_data": { - "auth_code": "828553" - }, - "created_at": 1568026077 -} -``` - -------------------------------------------------------------------------------------------------------- - -### Fetch a Payment (With Expanded UPI Details) - -```php -$paymentId = "pay_MLzFlOC98cJmHQ"; - -$api->payment->fetch($paymentId)->expandedDetails(["expand[]"=> "upi"]); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|---------|--------------------------------------| -| paymentId* | integer | Unique identifier of the payment | -| expand[] | string | Use to expand the UPI details when the payment method is upi. | - -**Response:**
- -```json -{ - "id": "pay_DG4ZdRK8ZnXC3k", - "entity": "payment", - "amount": 100, - "currency": "INR", - "status": "captured", - "order_id": "order_GjCr5oKh4AVC51", - "invoice_id": null, - "international": false, - "method": "upi", - "amount_refunded": 0, - "refund_status": null, - "captured": true, - "description": "Payment for Adidas shoes", - "card_id": null, - "bank": null, - "wallet": null, - "vpa": "gaurav.kumar@upi", - "email": "gaurav.kumar@example.com", - "contact": "9000090000", - "customer_id": "cust_K6fNE0WJZWGqtN", - "token_id": "token_KOdY$DBYQOv08n", - "notes": [], - "fee": 1, - "tax": 0, - "error_code": null, - "error_description": null, - "error_source": null, - "error_step": null, - "error_reason": null, - "acquirer_data": { - "rrn": "303107535132" - }, - "created_at": 1605871409, - "upi": { - "payer_account_type": "credit_card", - "vpa": "gaurav.kumar@upi", - "flow": "in_app" // appears only for Turbo UPI Payments. - } -} -``` - -------------------------------------------------------------------------------------------------------- -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/payments/)** diff --git a/assets/php/razorpay-php/documents/paymentLink.md b/assets/php/razorpay-php/documents/paymentLink.md deleted file mode 100644 index a7b48f0..0000000 --- a/assets/php/razorpay-php/documents/paymentLink.md +++ /dev/null @@ -1,679 +0,0 @@ -## Payment Links - -### Create payment link - -Request #1 -Standard Payment Link - -```php -$api->paymentLink->create(array('amount'=>500, 'currency'=>'INR', 'accept_partial'=>true, -'first_min_partial_amount'=>100,'expire_by' => 1691097057, 'reference_id' => 'TS1989', 'description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar', -'email' => 'gaurav.kumar@example.com', 'contact'=>'+919999999999'), 'notify'=>array('sms'=>true, 'email'=>true) , -'reminder_enable'=>true ,'notes'=>array('policy_name'=> 'Jeevan Bima'),'callback_url' => 'https://example-callback-url.com/', -'callback_method'=>'get')); -``` - -Request #2 -UPI Payment Link - -```php -$api->paymentLink->create(array('upi_link'=>true,'amount'=>500, 'currency'=>'INR', 'expire_by' => 1691097057, 'reference_id' => 'TS1989','description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar','email' => 'gaurav.kumar@example.com', 'contact'=>'+919999999999'),'notify'=>array('sms'=>true, 'email'=>true) ,'reminder_enable'=>true ,'notes'=>array('policy_name'=> 'Jeevan Bima'))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -|upi_link* | boolean | boolean Must be set to true // to creating UPI Payment Link only | -|amount* | integer | Amount to be paid using the Payment Link. | -|currency | string | A three-letter ISO code for the currency in which you want to accept the payment. For example, INR. | -|accept_partial | boolean | Indicates whether customers can make partial payments using the Payment Link. Possible values: true - Customer can make partial payments. false (default) - Customer cannot make partial payments. // UPI Payment Link is not supported partial payment | -|description | string | A brief description of the Payment Link | -|first_min_partial_amount | integer |Minimum amount, in currency subunits, that must be paid by the customer as the first partial payment. // UPI Payment Link is not supported partial payment | -|reference_id | string | AReference number tagged to a Payment Link. | -|customer | array | name, email, contact | -|expire_by | integer | Timestamp, in Unix, at which the Payment Link will expire. By default, a Payment Link will be valid for six months from the date of creation. | -|notify | object | sms or email (boolean) | -|notes | json object | Key-value pair that can be used to store additional information about the entity. Maximum 15 key-value pairs, 256 characters (maximum) each. For example, "note_key": "Beam me up Scotty” | - -**Response:** -For create payment link response please click [here](https://razorpay.com/docs/api/payment-links/#create-payment-link) - -------------------------------------------------------------------------------------------------------- - -### Fetch all payment link - -```php -$api->paymentLink->all(); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -|payment_id | string | Unique identifier of the payment associated with the Payment Link. | -|reference_id | string | The unique reference number entered by you while creating the Payment Link. | - -**Response:** -For fetch all payment link response please click [here](https://razorpay.com/docs/api/payment-links/#all-payment-links) - -------------------------------------------------------------------------------------------------------- - -### Fetch specific payment link - -```php -$api->paymentLink->fetch($paymentLinkId); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| paymentLinkId* | string | Unique identifier of the Payment Link. | - -**Response:** -For fetch specific payment link response please click [here](https://razorpay.com/docs/api/payment-links/#specific-payment-links-by-id) - -------------------------------------------------------------------------------------------------------- - -### Update payment link - -```php -$api->paymentLink->fetch($paymentLinkId)->edit(array("reference_id"=>"TS42", "expire_by"=>"1640270451" , "reminder_enable"=>0, "notes"=>["policy_name"=>"Jeevan Saral 2"])); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| paymentLinkId* | string | The unique identifier of the Payment Link that needs to be updated. | -| accept_partial | boolean | Indicates whether customers can make partial payments using the Payment Link. Possible values: true - Customer can make partial payments. false (default) - Customer cannot make partial payments. | -| reference_id | string | Adds a unique reference number to an existing link. | -| expire_by | integer | Timestamp, in Unix format, when the payment links should expire. | -| notes | string | object Key-value pair that can be used to store additional information about the entity. Maximum 15 key-value pairs, 256 characters (maximum) each. For example, "note_key": "Beam me up Scotty”. | - -**Response:** -For updating payment link response please click [here](https://razorpay.com/docs/api/payment-links/#update-payment-link) - -------------------------------------------------------------------------------------------------------- - -### Cancel a payment link - -```php -$api->paymentLink->fetch($paymentLinkId)->cancel(); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| paymentLinkId* | string | Unique identifier of the Payment Link. | - -**Response:** -For canceling payment link response please click [here](https://razorpay.com/docs/api/payment-links/#cancel-payment-link) -------------------------------------------------------------------------------------------------------- - -### Send notification - -```php -$api->paymentLink->fetch($paymentLinkId)->notifyBy($medium); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| paymentLinkId* | string | Unique identifier of the Payment Link that should be resent. | -| medium* | string | `sms`/`email`,Medium through which the Payment Link must be resent. Allowed values are: | - -**Response:** -```json -{ - "success": true -} -``` -------------------------------------------------------------------------------------------------------- - -### Transfer payments received using payment links - -```php -$api->paymentLink->create(array('amount'=>20000, 'currency'=>'INR', 'accept_partial'=>false, 'description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar', 'email' => 'gaurav.kumar@example.com', 'contact'=>'+919999999999'), 'notify'=>array('sms'=>true, 'email'=>true) ,'reminder_enable'=>true , 'options'=>array('order'=>array('transfers'=>array('account'=>'acc_CPRsN1LkFccllA', 'amount'=>500, 'currency'=>'INR', 'notes'=>array('branch'=>'Acme Corp Bangalore North', 'name'=>'Bhairav Kumar' ,'linked_account_notes'=>array('branch'))), array('account'=>'acc_CNo3jSI8OkFJJJ', 'amount'=>500, 'currency'=>'INR', 'notes'=>array('branch'=>'Acme Corp Bangalore North', 'name'=>'Saurav Kumar' ,'linked_account_notes'=>array('branch'))))))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -|amount* | integer | Amount to be paid using the Payment Link. | -|options* | array | Options to configure the transfer in the Payment Link. Parent parameter under which the order child parameter must be passed. | - -**Response:** -```json -{ - "accept_partial": false, - "amount": 1500, - "amount_paid": 0, - "callback_method": "", - "callback_url": "", - "cancelled_at": 0, - "created_at": 1596526969, - "currency": "INR", - "customer": { - "contact": "+919999999999", - "email": "gaurav.kumar@example.com", - "name": "Gaurav Kumar" - }, - "deleted_at": 0, - "description": "Payment for policy no #23456", - "expire_by": 0, - "expired_at": 0, - "first_min_partial_amount": 0, - "id": "plink_FMbhpT6nqDjDei", - "notes": null, - "notify": { - "email": true, - "sms": true - }, - "payments": null, - "reference_id": "#aasasw8", - "reminder_enable": true, - "reminders": [], - "short_url": "https://rzp.io/i/ORor1MT", - "source": "", - "source_id": "", - "status": "created", - "updated_at": 1596526969, - "user_id": "" -} -``` -------------------------------------------------------------------------------------------------------- - -### Offers on payment links - -```php -$api->paymentLink->create(array('amount'=>20000, 'currency'=>'INR', 'accept_partial'=>false, 'description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar', 'email' => 'gaurav.kumar@example.com', 'contact'=>'+919999999999'), 'notify'=>array('sms'=>true, 'email'=>true) ,'reminder_enable'=>false , 'options'=>array('order'=>array('offers'=>array('offer_I0PqexIiTmMRnA'))))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -|amount* | integer | Amount to be paid using the Payment Link. | -|currency | string | A three-letter ISO code for the currency in which you want to accept the payment. For example, INR. | -|description | string | A brief description of the Payment Link | -|reference_id | string | AReference number tagged to a Payment Link. | -|customer | array | name, email, contact | -|expire_by | integer | Timestamp, in Unix, at which the Payment Link will expire. By default, a Payment Link will be valid for six months from the date of creation. | -|notify | object | sms or email (boolean) | -|options* | array | Options to associate the offer_id with the Payment Link. Parent parameter under which the order child parameter must be passed. | - -**Response:** -```json -{ - "accept_partial": false, - "amount": 3400, - "amount_paid": 0, - "cancelled_at": 0, - "created_at": 1600183040, - "currency": "INR", - "customer": { - "contact": "+919999999999", - "email": "gaurav.kumar@example.com", - "name": "Gaurav Kumar" - }, - "description": "Payment for policy no #23456", - "expire_by": 0, - "expired_at": 0, - "first_min_partial_amount": 0, - "id": "plink_FdLt0WBldRyE5t", - "notes": null, - "notify": { - "email": true, - "sms": true - }, - "payments": null, - "reference_id": "#425", - "reminder_enable": false, - "reminders": [], - "short_url": "https://rzp.io/i/CM5ohDC", - "status": "created", - "user_id": "" -} -``` -------------------------------------------------------------------------------------------------------- - -### Managing reminders for payment links - -```php -$api->paymentLink->create(array('amount'=>500, 'currency'=>'INR', 'accept_partial'=>true, 'first_min_partial_amount'=>100, 'description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar', 'email' => 'gaurav.kumar@example.com', 'contact'=>'+919999999999'), 'notify'=>array('sms'=>true, 'email'=>true) ,'reminder_enable'=>false)); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -|amount* | integer | Amount to be paid using the Payment Link. | -|accept_partial | boolean | Indicates whether customers can make partial payments using the Payment Link. Possible values:true - Customer can make partial payments.false (default) - Customer cannot make partial payments. | -|currency | string | A three-letter ISO code for the currency in which you want to accept the payment. For example, INR. | -|description | string | A brief description of the Payment Link | -|customer | array | name, email, contact | -|expire_by | integer | Timestamp, in Unix, at which the Payment Link will expire. By default, a Payment Link will be valid for six months from the date of creation. | -|notify | object | sms or email (boolean) | -|reminder_enable | boolean | To disable reminders for a Payment Link, pass reminder_enable as false | - -**Response:** -```json -{ - "amount": 340000, - "amount_due": 340000, - "amount_paid": 0, - "billing_end": null, - "billing_start": null, - "cancelled_at": null, - "comment": null, - "created_at": 1592579126, - "currency": "INR", - "currency_symbol": "₹", - "customer_details": { - "billing_address": null, - "contact": "9900990099", - "customer_contact": "9900990099", - "customer_email": "gaurav.kumar@example.com", - "customer_name": "Gaurav Kumar", - "email": "gaurav.kumar@example.com", - "gstin": null, - "id": "cust_F4WNtqj1xb0Duv", - "name": "Gaurav Kumar", - "shipping_address": null - }, - "customer_id": "cust_F4WNtqj1xb0Duv", - "date": 1592579126, - "description": "Salon at Home Service", - "email_status": null, - "entity": "invoice", - "expire_by": 1608390326, - "expired_at": null, - "first_payment_min_amount": 0, - "gross_amount": 340000, - "group_taxes_discounts": false, - "id": "inv_F4WfpZLk1ct35b", - "invoice_number": null, - "issued_at": 1592579126, - "line_items": [], - "notes": [], - "order_id": "order_F4WfpxUzWmYOTl", - "paid_at": null, - "partial_payment": false, - "payment_id": null, - "receipt": "5757", - "reminder_enable": false, - "short_url": "https://rzp.io/i/vitLptM", - "sms_status": null, - "status": "issued", - "tax_amount": 0, - "taxable_amount": 0, - "terms": null, - "type": "link", - "user_id": "", - "view_less": true -} -``` -------------------------------------------------------------------------------------------------------- - -### Rename labels in checkout section - -```php -$api->paymentLink->create(array('amount'=>500, 'currency'=>'INR', 'accept_partial'=>true, 'first_min_partial_amount'=>100, 'description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar', 'email' => 'gaurav.kumar@example.com', 'contact'=>'+919999999999'), 'notify'=>array('sms'=>true, 'email'=>true) ,'reminder_enable'=>true , 'options'=>array('checkout'=>array('partial_payment'=>array('min_amount_label'=>'Minimum Money to be paid', 'partial_amount_label'=>'Pay in parts', 'partial_amount_description'=>'Pay at least ₹100', 'full_amount_label'=>'Pay the entire amount'))))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -|amount* | integer | Amount to be paid using the Payment Link. | -|accept_partial | boolean | Indicates whether customers can make partial payments using the Payment Link. Possible values:true - Customer can make partial payments.false (default) - Customer cannot make partial payments. | -|currency | string | A three-letter ISO code for the currency in which you want to accept the payment. For example, INR. | -|description | string | A brief description of the Payment Link | -|customer | array | name, email, contact | -|expire_by | integer | Timestamp, in Unix, at which the Payment Link will expire. By default, a Payment Link will be valid for six months from the date of creation. | -|notify | object | sms or email (boolean) | -|reminder_enable | boolean | To disable reminders for a Payment Link, pass reminder_enable as false | -|options* | array | Options to rename the labels for partial payment fields in the checkout form. Parent parameter under which the checkout and partial_payment child parameters must be passed. | - -**Response:** -```json -{ - "accept_partial": true, - "amount": 1000, - "amount_paid": 0, - "callback_method": "", - "callback_url": "", - "cancelled_at": 0, - "created_at": 1596193199, - "currency": "INR", - "customer": { - "contact": "+919999999999", - "email": "gaurav.kumar@example.com", - "name": "Gaurav Kumar" - }, - "deleted_at": 0, - "description": "Payment for policy no #23456", - "expire_by": 0, - "expired_at": 0, - "first_min_partial_amount": 100, - "id": "plink_FL4vbXVKfW7PAz", - "notes": null, - "notify": { - "email": true, - "sms": true - }, - "payments": null, - "reference_id": "#42321", - "reminder_enable": true, - "reminders": [], - "short_url": "https://rzp.io/i/F4GC9z1", - "source": "", - "source_id": "", - "status": "created", - "updated_at": 1596193199, - "user_id": "" -} -``` -------------------------------------------------------------------------------------------------------- - -### Change Business name - -```php -$api->paymentLink->create(array('amount'=>500, 'currency'=>'INR', 'accept_partial'=>true, 'first_min_partial_amount'=>100, 'description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar', 'email' => 'gaurav.kumar@example.com', 'contact'=>'+919999999999'), 'notify'=>array('sms'=>true, 'email'=>true) ,'reminder_enable'=>true , 'options'=>array('checkout'=>array('name'=>'Lacme Corp')))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -|amount* | integer | Amount to be paid using the Payment Link. | -|currency | string | A three-letter ISO code for the currency in which you want to accept the payment. For example, INR. | -|accept_partial | boolean | Indicates whether customers can make partial payments using the Payment Link. Possible values:true - Customer can make partial payments.false (default) - Customer cannot make partial payments. | -|first_min_partial_amount | integer | | -|description | string | A brief description of the Payment Link | -|customer | array | name, email, contact | -|notify | object | sms or email (boolean) | -|reminder_enable | boolean | To disable reminders for a Payment Link, pass reminder_enable as false | -|options* | array | Option to customize the business name. Parent parameter under which the checkout child parameter must be passed.| - -**Response:** -```json -{ - "accept_partial": true, - "amount": 1000, - "amount_paid": 0, - "callback_method": "", - "callback_url": "", - "cancelled_at": 0, - "created_at": 1596187657, - "currency": "INR", - "customer": { - "contact": "+919999999999", - "email": "gaurav.kumar@example.com", - "name": "Gaurav Kumar" - }, - "description": "Payment for policy no #23456", - "expire_by": 0, - "expired_at": 0, - "first_min_partial_amount": 100, - "id": "plink_FL3M2gJFs1Jkma", - "notes": null, - "notify": { - "email": true, - "sms": true - }, - "payments": null, - "reference_id": "#2234542", - "reminder_enable": true, - "reminders": [], - "short_url": "https://rzp.io/i/at2OOsR", - "source": "", - "source_id": "", - "status": "created", - "updated_at": 1596187657, - "user_id": "" -} -``` -------------------------------------------------------------------------------------------------------- - -### Prefill checkout fields - -```php -$api->paymentLink->create(array('amount'=>500, 'currency'=>'INR', 'accept_partial'=>true, 'first_min_partial_amount'=>100, 'description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar', 'email' => 'gaurav.kumar@example.com', 'contact'=>'+919999999999'), 'notify'=>array('sms'=>true, 'email'=>true) ,'reminder_enable'=>true , 'options'=>array('checkout'=>array('prefill'=>array('method'=>'card', 'card[name]'=>'Gaurav Kumar', 'card[number]'=>'4111111111111111', 'card[expiry]'=>'12/21', 'card[cvv]'=>'123'))))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -|amount* | integer | Amount to be paid using the Payment Link. | -|currency | string | A three-letter ISO code for the currency in which you want to accept the payment. For example, INR. | -|accept_partial | boolean | Indicates whether customers can make partial payments using the Payment Link. Possible values:true - Customer can make partial payments.false (default) - Customer cannot make partial payments. | -|first_min_partial_amount | integer | | -|description | string | A brief description of the Payment Link | -|customer | array | name, email, contact | -|notify | object | sms or email (boolean) | -|reminder_enable | boolean | To disable reminders for a Payment Link, pass reminder_enable as false | -|options* | array | Options to customize Checkout. Parent parameter under which the checkout and prefill child parameters must be passed.| - -**Response:** -For prefill checkout fields response please click [here](https://razorpay.com/docs/payment-links/api/new/advanced-options/customize/prefill/) - -------------------------------------------------------------------------------------------------------- - -### Customize payment methods - -```php -$api->paymentLink->create(array('amount'=>500, 'currency'=>'INR', 'accept_partial'=>true, 'first_min_partial_amount'=>100, 'description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar', 'email' => 'gaurav.kumar@example.com', 'contact'=>'+919999999999'), 'notify'=>array('sms'=>true, 'email'=>true) ,'reminder_enable'=>true , 'options'=>array('checkout'=>array('method'=>array('netbanking'=>'1', 'card'=>'1', 'upi'=>'0', 'wallet'=>'0'))))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -|amount* | integer | Amount to be paid using the Payment Link. | -|currency | string | A three-letter ISO code for the currency in which you want to accept the payment. For example, INR. | -|accept_partial | boolean | Indicates whether customers can make partial payments using the Payment Link. Possible values:true - Customer can make partial payments.false (default) - Customer cannot make partial payments. | -|first_min_partial_amount | integer | | -|description | string | A brief description of the Payment Link | -|customer | array | name, email, contact | -|notify | object | sms or email (boolean) | -|reminder_enable | boolean | To disable reminders for a Payment Link, pass reminder_enable as false | -|options* | array | Options to display or hide payment methods on the Checkout section. Parent parameter under which the checkout and method child parameters must be passed.| - -**Response:** -```json -{ - "accept_partial": true, - "amount": 1000, - "amount_paid": 0, - "callback_method": "", - "callback_url": "", - "cancelled_at": 0, - "created_at": 1596188371, - "currency": "INR", - "customer": { - "contact": "+919999999999", - "email": "gaurav.kumar@example.com", - "name": "Gaurav Kumar" - }, - "deleted_at": 0, - "description": "Payment for policy no #23456", - "expire_by": 0, - "expired_at": 0, - "first_min_partial_amount": 100, - "id": "plink_FL3YbdvN2Cj6gh", - "notes": null, - "notify": { - "email": true, - "sms": true - }, - "payments": null, - "reference_id": "#543422", - "reminder_enable": true, - "reminders": [], - "short_url": "https://rzp.io/i/wKiXKud", - "source": "", - "source_id": "", - "status": "created", - "updated_at": 1596188371, - "user_id": "" -} -``` -------------------------------------------------------------------------------------------------------- - -### Set checkout fields as read-only - -```php -$api->paymentLink->create(array('amount'=>500, 'currency'=>'INR', 'accept_partial'=>true, 'first_min_partial_amount'=>100, 'description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar', 'email' => 'gaurav.kumar@example.com', 'contact'=>'+919999999999'), 'notify'=>array('sms'=>true, 'email'=>true) ,'reminder_enable'=>true , 'options'=>array('checkout'=>array('readonly'=>array('email'=>'1','contact'=>'1'))))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -|amount* | integer | Amount to be paid using the Payment Link. | -|currency | string | A three-letter ISO code for the currency in which you want to accept the payment. For example, INR. | -|accept_partial | boolean | Indicates whether customers can make partial payments using the Payment Link. Possible values:true - Customer can make partial payments.false (default) - Customer cannot make partial payments. | -|first_min_partial_amount | integer | | -|description | string | A brief description of the Payment Link | -|customer | array | name, email, contact | -|notify | object | sms or email (boolean) | -|reminder_enable | boolean | To disable reminders for a Payment Link, pass reminder_enable as false | -|options* | array | Options to set contact and email as read-only fields on Checkout. Parent parameter under which the checkout and readonly child parameters must be passed.| - -**Response:** -```json -{ - "accept_partial": true, - "amount": 1000, - "amount_paid": 0, - "callback_method": "", - "callback_url": "", - "cancelled_at": 0, - "created_at": 1596190845, - "currency": "INR", - "customer": { - "contact": "+919999999999", - "email": "gaurav.kumar@example.com", - "name": "Gaurav Kumar" - }, - "deleted_at": 0, - "description": "Payment for policy no #23456", - "expire_by": 0, - "expired_at": 0, - "first_min_partial_amount": 100, - "id": "plink_FL4GA1t6FBcaVR", - "notes": null, - "notify": { - "email": true, - "sms": true - }, - "payments": null, - "reference_id": "#19129", - "reminder_enable": true, - "reminders": [], - "short_url": "https://rzp.io/i/QVwUglR", - "source": "", - "source_id": "", - "status": "created", - "updated_at": 1596190845, - "user_id": "" -} -``` -------------------------------------------------------------------------------------------------------- - -### Implement thematic changes in payment links checkout section - -```php -$api->paymentLink->create(array('amount'=>500, 'currency'=>'INR', 'accept_partial'=>true, 'first_min_partial_amount'=>100, 'description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar', 'email' => 'gaurav.kumar@example.com', 'contact'=>'+919999999999'), 'notify'=>array('sms'=>true, 'email'=>true) ,'reminder_enable'=>true , 'options'=>array('checkout'=>array('theme'=>array('hide_topbar'=>'true'))))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -|amount* | integer | Amount to be paid using the Payment Link. | -|currency | string | A three-letter ISO code for the currency in which you want to accept the payment. For example, INR. | -|accept_partial | boolean | Indicates whether customers can make partial payments using the Payment Link. Possible values:true - Customer can make partial payments.false (default) - Customer cannot make partial payments. | -|first_min_partial_amount | integer | | -|description | string | A brief description of the Payment Link | -|customer | array | name, email, contact | -|notify | object | sms or email (boolean) | -|reminder_enable | boolean | To disable reminders for a Payment Link, pass reminder_enable as false | -|options* | array | Options to show or hide the top bar. Parent parameter under which the checkout and theme child parameters must be passed.| - -**Response:** -```json -{ - "accept_partial": true, - "amount": 1000, - "amount_paid": 0, - "callback_method": "", - "callback_url": "", - "cancelled_at": 0, - "created_at": 1596187814, - "currency": "INR", - "customer": { - "contact": "+919999999999", - "email": "gaurav.kumar@example.com", - "name": "Gaurav Kumar" - }, - "description": "Payment for policy no #23456", - "expire_by": 0, - "expired_at": 0, - "first_min_partial_amount": 100, - "id": "plink_FL3Oncr7XxXFf6", - "notes": null, - "notify": { - "email": true, - "sms": true - }, - "payments": null, - "reference_id": "#423212", - "reminder_enable": true, - "reminders": [], - "short_url": "https://rzp.io/i/j45EmLE", - "source": "", - "source_id": "", - "status": "created", - "updated_at": 1596187814, - "user_id": "" -} -``` -------------------------------------------------------------------------------------------------------- - -### Rename labels in payment details section - -```php -$api->paymentLink->create(array('amount'=>500, 'currency'=>'INR', 'accept_partial'=>true, 'first_min_partial_amount'=>100, 'description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar', 'email' => 'gaurav.kumar@example.com', 'contact'=>'+919999999999'), 'notify'=>array('sms'=>true, 'email'=>true) ,'reminder_enable'=>true , 'options'=>array('hosted_page'=>array('label'=>array('receipt'=>'Ref No.', 'description'=>'Course Name', 'amount_payable'=>'Course Fee Payable', 'amount_paid'=>'Course Fee Paid', 'partial_amount_due'=>'Fee Installment Due', 'partial_amount_paid'=>'Fee Installment Paid', 'expire_by'=>'Pay Before', 'expired_on'=>'1632223497','amount_due'=>'Course Fee Due'), 'show_preferences'=>array('issued_to'=>false))))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -|amount* | integer | Amount to be paid using the Payment Link. | -|currency | string | A three-letter ISO code for the currency in which you want to accept the payment. For example, INR. | -|accept_partial | boolean | Indicates whether customers can make partial payments using the Payment Link. Possible values:true - Customer can make partial payments.false (default) - Customer cannot make partial payments. | -|first_min_partial_amount | integer | | -|description | string | A brief description of the Payment Link | -|customer | array | name, email, contact | -|notify | object | sms or email (boolean) | -|reminder_enable | boolean | To disable reminders for a Payment Link, pass reminder_enable as false | -|options* | array | Parent parameter under which the hosted_page and label child parameters must be passed.| - -**Response:** -For rename labels in payment details section response please click [here](https://razorpay.com/docs/payment-links/api/new/advanced-options/customize/rename-payment-details-labels/) - -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/payment-links/)** diff --git a/assets/php/razorpay-php/documents/paymentVerfication.md b/assets/php/razorpay-php/documents/paymentVerfication.md deleted file mode 100644 index daa4267..0000000 --- a/assets/php/razorpay-php/documents/paymentVerfication.md +++ /dev/null @@ -1,68 +0,0 @@ -## payment verification - -### Verify payment verification - -```php -$api->utility->verifyPaymentSignature(array('razorpay_order_id' => $razorpayOrderId, 'razorpay_payment_id' => $razorpayPaymentId, 'razorpay_signature' => $razorpaySignature)); -``` - -**Parameters:** - - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| orderId* | string | The id of the order to be fetched | -| paymentId* | string | The id of the payment to be fetched | -| signature* | string | Signature returned by the Checkout. This is used to verify the payment. | - -------------------------------------------------------------------------------------------------------- -### Verify subscription verification - -```php -$api->utility->verifyPaymentSignature(array('razorpay_subscription_id' => $razorpaySubscriptionId, 'razorpay_payment_id' => $razorpayPaymentId, 'razorpay_signature' => $razorpaySignature)); -``` - -**Parameters:** - - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| subscriptionId* | string | The id of the subscription to be fetched | -| paymentId* | string | The id of the payment to be fetched | -| signature* | string | Signature returned by the Checkout. This is used to verify the payment. | - -------------------------------------------------------------------------------------------------------- -### Verify paymentlink verification - -```php -$api->utility->verifyPaymentSignature(array('razorpay_payment_link_id' => $razorpayPaymentlinkId, 'razorpay_payment_id' => $razorpayPaymentId, 'razorpay_payment_link_reference_id' => $razorpayPaymentLinkReferenceId, 'razorpay_payment_link_status' => $razorpayPaymentLinkStatus, 'razorpay_signature' => $razorpayPaymentLinkSignature)); -``` - -**Parameters:** - - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| razorpayPaymentlinkId* | string | The id of the paymentlink to be fetched | -| razorpayPaymentId* | string | The id of the payment to be fetched | -| razorpayPaymentLinkReferenceId* | string | A reference number tagged to a Payment Link | -| razorpayPaymentLinkStatus* | string | Current status of the link | -| razorpayPaymentLinkSignature* | string | Signature returned by the Checkout. This is used to verify the payment. | - -------------------------------------------------------------------------------------------------------- - -### Verify webhook signature - -```php -$webhookBody = '{"entity":"event","account_id":"acc_Hn1ukn2d32Fqww","event":"payment.authorized","contains":["payment"],"payload":{"payment":{"entity":{"id":"pay_JTVtDcN1uRYb5n","entity":"payment","amount":22345,"currency":"INR","status":"authorized","order_id":"order_JTVsulofMPyzBY","invoice_id":null,"international":false,"method":"card","amount_refunded":0,"refund_status":null,"captured":false,"description":"#JT8o1jsTyzrywc","card_id":"card_JTVtDjPwZbFbTM","card":{"id":"card_JTVtDjPwZbFbTM","entity":"card","name":"gaurav","last4":"4366","network":"Visa","type":"credit","issuer":"UTIB","international":false,"emi":true,"sub_type":"consumer","token_iin":null},"bank":null,"wallet":null,"vpa":null,"email":"you@example.com","contact":"+919999999999","notes":{"policy_name":"Jeevan Saral"},"fee":null,"tax":null,"error_code":null,"error_description":null,"error_source":null,"error_step":null,"error_reason":null,"acquirer_data":{"auth_code":"472379"},"created_at":1652183214}}},"created_at":1652183218}'; - -$webhookSignature = "27209ba357bf7b7b461a4c1d7f54d5a8bb6b0b4b2f5fa4aebf1f1c861a05d18a"; -$webhookSecret = "test"; - - -$api->utility->verifyWebhookSignature($webhookBody, $webhookSignature, $webhookSecret); -``` - -**PN: * indicates mandatory fields** -
-
diff --git a/assets/php/razorpay-php/documents/plan.md b/assets/php/razorpay-php/documents/plan.md deleted file mode 100644 index f290808..0000000 --- a/assets/php/razorpay-php/documents/plan.md +++ /dev/null @@ -1,159 +0,0 @@ -## Plans - -### Create plan - -```php -$api->plan->create(array('period' => 'weekly', 'interval' => 1, 'item' => array('name' => 'Test Weekly 1 plan', 'description' => 'Description for the weekly 1 plan', 'amount' => 600, 'currency' => 'INR'),'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| period* | string | Used together with `interval` to define how often the customer should be charged.Possible values:
1.`daily`
2.`weekly`
3.`monthly`
4.`yearly` | -| interval* | string | Used together with `period` to define how often the customer should be charged | -| items* | array | Details of the plan. For more details please refer [here](https://razorpay.com/docs/api/subscriptions/#create-a-plan) | -| notes | array | Notes you can enter for the contact for future reference. | - -**Response:** -```json -{ - "id":"plan_00000000000001", - "entity":"plan", - "interval":1, - "period":"weekly", - "item":{ - "id":"item_00000000000001", - "active":true, - "name":"Test plan - Weekly", - "description":"Description for the test plan - Weekly", - "amount":69900, - "unit_amount":69900, - "currency":"INR", - "type":"plan", - "unit":null, - "tax_inclusive":false, - "hsn_code":null, - "sac_code":null, - "tax_rate":null, - "tax_id":null, - "tax_group_id":null, - "created_at":1580219935, - "updated_at":1580219935 - }, - "notes":{ - "notes_key_1":"Tea, Earl Grey, Hot", - "notes_key_2":"Tea, Earl Grey… decaf." - }, - "created_at":1580219935 -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch all plans - -```php -$api->plan->all($options); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| from | timestamp | timestamp after which the payments were created | -| to | timestamp | timestamp before which the payments were created | -| count | integer | number of payments to fetch (default: 10) | -| skip | integer | number of payments to be skipped (default: 0) | - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "plan_00000000000001", - "entity": "plan", - "interval": 1, - "period": "weekly", - "item": { - "id": "item_00000000000001", - "active": true, - "name": "Test plan - Weekly", - "description": "Description for the test plan - Weekly", - "amount": 69900, - "unit_amount": 69900, - "currency": "INR", - "type": "plan", - "unit": null, - "tax_inclusive": false, - "hsn_code": null, - "sac_code": null, - "tax_rate": null, - "tax_id": null, - "tax_group_id": null, - "created_at": 1580220492, - "updated_at": 1580220492 - }, - "notes": { - "notes_key_1": "Tea, Earl Grey, Hot", - "notes_key_2": "Tea, Earl Grey… decaf." - }, - "created_at": 1580220492 - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch particular plan - -```php -$api->plan->fetch($planId); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| planId* | string | The id of the plan to be fetched | - -**Response:** -```json -{ - "id":"plan_00000000000001", - "entity":"plan", - "interval":1, - "period":"weekly", - "item":{ - "id":"item_00000000000001", - "active":true, - "name":"Test plan - Weekly", - "description":"Description for the test plan - Weekly", - "amount":69900, - "unit_amount":69900, - "currency":"INR", - "type":"plan", - "unit":null, - "tax_inclusive":false, - "hsn_code":null, - "sac_code":null, - "tax_rate":null, - "tax_id":null, - "tax_group_id":null, - "created_at":1580220492, - "updated_at":1580220492 - }, - "notes":{ - "notes_key_1":"Tea, Earl Grey, Hot", - "notes_key_2":"Tea, Earl Grey… decaf." - }, - "created_at":1580220492 -} -``` -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/subscriptions/#plans)** diff --git a/assets/php/razorpay-php/documents/productConfiguration.md b/assets/php/razorpay-php/documents/productConfiguration.md deleted file mode 100644 index 00f08c0..0000000 --- a/assets/php/razorpay-php/documents/productConfiguration.md +++ /dev/null @@ -1,604 +0,0 @@ -## Product Configuration - -### Request a Product Configuration -```php - -$accountId = "acc_GP4lfNA0iIMn5B"; - -$api->account->fetch($accountId)->products()->requestProductConfiguration(array( - "product_name" => "payment_gateway", - "tnc_accepted" => true, - "ip" => "233.233.233.234" -)); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| product_name* | string | The product(s) to be configured. Possible value is `payment_gateway`, `payment_links` | -| tnc_accepted | boolean | Pass this parameter to accept terms and conditions. Send this parameter along with the ip parameter when the tnc is accepted. Possible values is `true` | -| ip | integer | The IP address of the merchant while accepting the terms and conditions. Send this parameter along with the `tnc_accepted` parameter when the `tnc` is accepted. | - -**Response:** -```json -{ - "requested_configuration": { - "payment_methods": [] - }, - "active_configuration": { - "payment_capture": { - "mode": "automatic", - "refund_speed": "normal", - "automatic_expiry_period": 7200 - }, - "settlements": { - "account_number": null, - "ifsc_code": null, - "beneficiary_name": null - }, - "checkout": { - "theme_color": "#FFFFFF", - "flash_checkout": true, - "logo": "https://example.com/your_logo" - }, - "refund": { - "default_refund_speed": "normal" - }, - "notifications": { - "whatsapp": true, - "sms": false, - "email": [ - "b963e252-1201-45b0-9c39-c53eceb0cfd6_load@gmail.com" - ] - }, - "payment_methods": { - "netbanking": { - "enabled": true, - "instrument": [ - { - "type": "retail", - "bank": [ - "hdfc", - "sbin", - "utib", - "icic", - "scbl", - "yesb" - ] - } - ] - }, - "wallet": { - "enabled": true, - "instrument": [ - "airtelmoney", - "freecharge", - "jiomoney", - "olamoney", - "payzapp", - "mobikwik" - ] - }, - "upi": { - "enabled": true, - "instrument": [ - "upi" - ] - } - } - }, - "requirements": [ - { - "field_reference": "individual_proof_of_address", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/stakeholders/{stakeholderId}/documents", - "status": "required", - "reason_code": "document_missing" - }, - { - "field_reference": "individual_proof_of_identification", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/stakeholders/{stakeholderId}/documents", - "status": "required", - "reason_code": "document_missing" - }, - { - "field_reference": "business_proof_of_identification", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/documents", - "status": "required", - "reason_code": "document_missing" - }, - { - "field_reference": "settlements.beneficiary_name", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9e", - "status": "required", - "reason_code": "field_missing" - }, - { - "field_reference": "settlements.account_number", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9e", - "status": "required", - "reason_code": "field_missing" - }, - { - "field_reference": "settlements.ifsc_code", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9e", - "status": "required", - "reason_code": "field_missing" - }, - { - "field_reference": "contact_name", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0", - "status": "required", - "reason_code": "field_missing" - }, - { - "field_reference": "name", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/stakeholders", - "status": "required", - "reason_code": "field_missing" - }, - { - "field_reference": "customer_facing_business_name", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0", - "status": "required", - "reason_code": "field_missing" - }, - { - "field_reference": "kyc.pan", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/stakeholders", - "status": "required", - "reason_code": "field_missing" - } - ], - "tnc":{ - "id": "tnc_IgohZaDBHRGjPv", - "accepted": true, - "accepted_at": 1641550798 - }, - "id": "acc_prd_HEgNpywUFctQ9e", - "account_id": "acc_HQVlm3bnPmccC0", - "product_name": "payment_gateway", - "activation_status": "needs_clarification", - "requested_at": 162547884 -} -``` - -------------------------------------------------------------------------------------------------------- - -### Edit a Product Configuration -```php -$accountId = "acc_GP4lfNA0iIMn5B"; -$productId = "acc_prd_HEgNpywUFctQ9e"; - -$api->account->fetch($accountId)->products()->edit($productId, array( - "notifications" => array( - "email" => array( - "gaurav.kumar@example.com", - "acd@gmail.com" - ) - ), - "checkout" => array( - "theme_color" => "#528FFF" - ), - "refund" => array( - "default_refund_speed" => "optimum" - ), - "settlements" => array( - "account_number" => "1234567890", - "ifsc_code" => "HDFC0000317", - "beneficiary_name" => "Gaurav Kumar" - ), - "tnc_accepted" => true, - "ip" => "233.233.233.234" -)); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| notifications | object | All keys listed [here](https://razorpay.com/docs/api/partners/product-configuration/#update-a-product-configuration) are supported | -| checkout | object | All keys listed [here](https://razorpay.com/docs/api/partners/product-configuration/#update-a-product-configuration) are supported | -| refund | object | All keys listed [here](https://razorpay.com/docs/api/partners/product-configuration/#update-a-product-configuration) are supported | -| settlements | object | All keys listed [here](https://razorpay.com/docs/api/partners/product-configuration/#update-a-product-configuration) are supported | -| tnc_accepted | boolean | Pass this parameter to accept terms and conditions. Send this parameter along with the ip parameter when the tnc is accepted. Possible value is `true` | -| ip | string | The IP address of the merchant while accepting the terms and conditions. Send this parameter along with the tnc_accepted parameter when the `tnc` is accepted. | -| payment_methods | All keys listed [here](https://razorpay.com/docs/api/partners/product-configuration/#update-a-product-configuration) are supported | -| type | string | Possible value is `domestic` | -| issuer | string | The card issuer. Possible values for issuer are `amex`, `dicl`, `maestro`, `mastercard`, `rupay`, `visa`. | -| wallet | object | All keys listed [here](https://razorpay.com/docs/api/partners/product-configuration/#update-a-product-configuration) are supported | -| instrument(wallet) | string | The wallet issuer. Possible values are `airtelmoney`, `amazonpay`, `freecharge`, `jiomoney`, `mobiwik`, `mpesa`, `olamoney`, `paytm`, `payzapp`, `payumoney`, `phonepe`, `phonepeswitch`, `sbibuddy` | -| instrument(wallet) | string | The wallet issuer. Possible values are `airtelmoney`, `amazonpay`, `freecharge`, `jiomoney`, `mobiwik`, `mpesa`, `olamoney`, `paytm`, `payzapp`, `payumoney`, `phonepe`, `phonepeswitch`, `sbibuddy` | -| upi | object | All keys listed [here](https://razorpay.com/docs/api/partners/product-configuration/#update-a-product-configuration) are supported | -| instrument(upi) | string | The UPI service provider. Possible values are `google_pay`, `upi`| -| paylater | object | All keys listed [here](https://razorpay.com/docs/api/partners/product-configuration/#update-a-product-configuration) are supported | -| instrument(emi) | string | The Paylater service provider. Possible values are `epaylater`, `getsimpl`| -| emi | object | All keys listed [here](https://razorpay.com/docs/api/partners/product-configuration/#update-a-product-configuration) are supported | - -**Response:** -```json -{ - "id": "acc_GP4lfNA0iIMn5B", - "type": "standard", - "status": "created", - "email": "gauri@example.org", - "profile": { - "category": "healthcare", - "subcategory": "clinic", - "addresses": { - "registered": { - "street1": "507, Koramangala 1st block", - "street2": "MG Road-1", - "city": "Bengalore", - "state": "KARNATAKA", - "postal_code": "560034", - "country": "IN" - } - } - }, - "notes": [], - "created_at": 1610603081, - "phone": "9000090000", - "reference_id": "randomId", - "business_type": "partnership", - "legal_business_name": "Acme Corp", - "customer_facing_business_name": "ABCD Ltd" -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch a product configuration -```php -$accountId = "acc_GP4lfNA0iIMn5B"; - -$productId = "acc_prd_HEgNpywUFctQ9e"; - -$api->account->fetch($accountId)->products()->fetch($productId); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|-------------|---------------------------------------------| -| accountId* | string | The unique identifier of a sub-merchant account generated by Razorpay. | -| productId* | string | The unique identifier of a product generated by Razorpay. | - -**Response:** -```json -{ - "requested_configuration": { - "payment_methods": [] - }, - "active_configuration": { - "payment_capture": { - "mode": "automatic", - "refund_speed": "normal", - "automatic_expiry_period": 7200 - }, - "settlements": { - "account_number": null, - "ifsc_code": null, - "beneficiary_name": null - }, - "checkout": { - "theme_color": "#FFFFFF", - "flash_checkout": true - }, - "refund": { - "default_refund_speed": "normal" - }, - "notifications": { - "whatsapp": true, - "sms": false, - "email": [ - "b963e252-1201-45b0-9c39-c53eceb0cfd6_load@gmail.com" - ] - }, - "payment_methods": { - "netbanking": { - "enabled": true, - "instrument": [ - { - "type": "retail", - "bank": [ - "hdfc", - "sbin", - "utib", - "icic", - "scbl", - "yesb" - ] - } - ] - }, - "wallet": { - "enabled": true, - "instrument": [ - "airtelmoney", - "freecharge", - "jiomoney", - "olamoney", - "payzapp", - "mobikwik" - ] - }, - "upi": { - "enabled": true, - "instrument": [ - "upi" - ] - } - } - }, - "requirements": [ - { - "field_reference": "individual_proof_of_address", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/stakeholders/{stakeholderId}/documents", - "status": "required", - "reason_code": "document_missing" - }, - { - "field_reference": "individual_proof_of_identification", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/stakeholders/{stakeholderId}/documents", - "status": "required", - "reason_code": "document_missing" - }, - { - "field_reference": "business_proof_of_identification", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/documents", - "status": "required", - "reason_code": "document_missing" - }, - { - "field_reference": "settlements.beneficiary_name", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9e", - "status": "required", - "reason_code": "field_missing" - }, - { - "field_reference": "settlements.account_number", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9e", - "status": "required", - "reason_code": "field_missing" - }, - { - "field_reference": "settlements.ifsc_code", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9e", - "status": "required", - "reason_code": "field_missing" - }, - { - "field_reference": "contact_name", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0", - "status": "required", - "reason_code": "field_missing" - }, - { - "field_reference": "name", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/stakeholders", - "status": "required", - "reason_code": "field_missing" - }, - { - "field_reference": "customer_facing_business_name", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0", - "status": "required", - "reason_code": "field_missing" - }, - { - "field_reference": "kyc.pan", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/stakeholders", - "status": "required", - "reason_code": "field_missing" - } - ], - "tnc":{ - "id": "tnc_IgohZaDBHRGjPv", - "accepted": true, - "accepted_at": 1641550798 - }, - "id": "acc_prd_HEgNpywUFctQ9e", - "account_id": "acc_HQVlm3bnPmccC0", - "product_name": "payment_gateway", - "activation_status": "needs_clarification", - "requested_at": 1625478849 -} -``` - -------------------------------------------------------------------------------------------------------- - -### Fetch Terms and Conditions for a Sub-Merchant -```php - -$productName = "payments"; - -$api->product->fetchTnc($productName); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|-------------|---------------------------------------------| -| productName* | string | The product family for which the relevant product to be requested for the sub-merchant. Possible value is `payments` | - -**Response:** -```json -{ - "entity": "tnc_map", - "product_name": "payments", - "id": "tnc_map_HjOVhIdpVDZ0FB", - "tnc": { - "terms": "https://razorpay.com/terms", - "privacy": "https://razorpay.com/privacy", - "agreement": "https://razorpay.com/agreement" - }, - "last_published_at": 1640589653 -} -``` - -------------------------------------------------------------------------------------------------------- - -### Fetch a product configuration -```php -$accountId = "acc_GP4lfNA0iIMn5B"; - -$productId = "acc_prd_HEgNpywUFctQ9e"; - -$api->account->fetch($accountId)->products()->fetch($productId); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|-------------|---------------------------------------------| -| accountId* | string | The unique identifier of a sub-merchant account generated by Razorpay. | -| productId* | string | The unique identifier of a product generated by Razorpay. | - -**Response:** -```json -{ - "requested_configuration": { - "payment_methods": [] - }, - "active_configuration": { - "payment_capture": { - "mode": "automatic", - "refund_speed": "normal", - "automatic_expiry_period": 7200 - }, - "settlements": { - "account_number": null, - "ifsc_code": null, - "beneficiary_name": null - }, - "checkout": { - "theme_color": "#FFFFFF", - "flash_checkout": true - }, - "refund": { - "default_refund_speed": "normal" - }, - "notifications": { - "whatsapp": true, - "sms": false, - "email": [ - "b963e252-1201-45b0-9c39-c53eceb0cfd6_load@gmail.com" - ] - }, - "payment_methods": { - "netbanking": { - "enabled": true, - "instrument": [ - { - "type": "retail", - "bank": [ - "hdfc", - "sbin", - "utib", - "icic", - "scbl", - "yesb" - ] - } - ] - }, - "wallet": { - "enabled": true, - "instrument": [ - "airtelmoney", - "freecharge", - "jiomoney", - "olamoney", - "payzapp", - "mobikwik" - ] - }, - "upi": { - "enabled": true, - "instrument": [ - "upi" - ] - } - } - }, - "requirements": [ - { - "field_reference": "individual_proof_of_address", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/stakeholders/{stakeholderId}/documents", - "status": "required", - "reason_code": "document_missing" - }, - { - "field_reference": "individual_proof_of_identification", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/stakeholders/{stakeholderId}/documents", - "status": "required", - "reason_code": "document_missing" - }, - { - "field_reference": "business_proof_of_identification", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/documents", - "status": "required", - "reason_code": "document_missing" - }, - { - "field_reference": "settlements.beneficiary_name", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9e", - "status": "required", - "reason_code": "field_missing" - }, - { - "field_reference": "settlements.account_number", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9e", - "status": "required", - "reason_code": "field_missing" - }, - { - "field_reference": "settlements.ifsc_code", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/products/acc_prd_HEgNpywUFctQ9e", - "status": "required", - "reason_code": "field_missing" - }, - { - "field_reference": "contact_name", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0", - "status": "required", - "reason_code": "field_missing" - }, - { - "field_reference": "name", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/stakeholders", - "status": "required", - "reason_code": "field_missing" - }, - { - "field_reference": "customer_facing_business_name", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0", - "status": "required", - "reason_code": "field_missing" - }, - { - "field_reference": "kyc.pan", - "resolution_url": "/accounts/acc_HQVlm3bnPmccC0/stakeholders", - "status": "required", - "reason_code": "field_missing" - } - ], - "tnc":{ - "id": "tnc_IgohZaDBHRGjPv", - "accepted": true, - "accepted_at": 1641550798 - }, - "id": "acc_prd_HEgNpywUFctQ9e", - "account_id": "acc_HQVlm3bnPmccC0", - "product_name": "payment_gateway", - "activation_status": "needs_clarification", - "requested_at": 1625478849 -} -``` - -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/partners/product-configuration/)** \ No newline at end of file diff --git a/assets/php/razorpay-php/documents/qrcode.md b/assets/php/razorpay-php/documents/qrcode.md deleted file mode 100644 index f96b6e8..0000000 --- a/assets/php/razorpay-php/documents/qrcode.md +++ /dev/null @@ -1,418 +0,0 @@ -## Qr Codes - -### Create Qr code - -```php -$api->qrCode->create(array("type" => "upi_qr","name" => "Store_1", "usage" => "single_use","fixed_amount" => 1,"payment_amount" => 300,"customer_id" => "cust_HKsR5se84c5LTO","description" => "For Store 1","close_by" => 1681615838,"notes" => array("purpose" => "Test UPI QR code notes"))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| type* | string | The type of QR code i.e, `upi_qr`/`bharat_qr` | -| name | string | Label entered to identify the QR code. | -| usage* | string | Indicates if the QR code should be allowed to accept single payment or multiple payments i.e, `single_use`/`multiple_use` | -| fixed_amount | boolean | Indicates if the QR should accept payments of specific amounts or any amount. | -| payment_amount(* mandatory if fixed_amount is true) | integer | Indicates if the QR should accept payments of specific amounts or any amount. | -| customer_id | string | Unique identifier of the customer the QR code is linked with | -| description | string | A brief description about the QR code. | -| close_by | integer | UNIX timestamp at which the QR code is scheduled to be automatically closed. The time must be at least 15 minutes after the current time. | -| notes | array | Key-value pair that can be used to store additional information about the QR code. Maximum 15 key-value pairs, 256 characters (maximum) each. | - -**Response:** -```json -{ - "id": "qr_HMsVL8HOpbMcjU", - "entity": "qr_code", - "created_at": 1623660301, - "name": "Store_1", - "usage": "single_use", - "type": "upi_qr", - "image_url": "https://rzp.io/i/BWcUVrLp", - "payment_amount": 300, - "status": "active", - "description": "For Store 1", - "fixed_amount": true, - "payments_amount_received": 0, - "payments_count_received": 0, - "notes": { - "purpose": "Test UPI QR code notes" - }, - "customer_id": "cust_HKsR5se84c5LTO", - "close_by": 1681615838, - "closed_at": 1623660445, - "close_reason": "on_demand" -} -``` -------------------------------------------------------------------------------------------------------- - -### Create Qr code with GST - -```php -$api->qrCode->create(array("type" => "upi_qr","name" => "Store_1", "usage" => "single_use","fixed_amount" => 1,"payment_amount" => 300,"customer_id" => "cust_HKsR5se84c5LTO","description" => "For Store 1","close_by" => 1681615838,"notes" => array("purpose" => "Test UPI QR code notes"),"tax_invoice" => array("number" => "INV001", "date" => 1589994898,"customer_name" => "Gaurav Kumar", "business_gstin"=> "06AABCU9605R1ZR","gst_amount" => 4000, "cess_amount" => 0, "supply_type" => "interstate"))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| type* | string | The type of QR code i.e, `upi_qr`/`bharat_qr` | -| name | string | Label entered to identify the QR code. | -| usage* | string | Indicates if the QR code should be allowed to accept single payment or multiple payments i.e, `single_use`/`multiple_use` | -| fixed_amount | boolean | Indicates if the QR should accept payments of specific amounts or any amount. | -| payment_amount(* mandatory if fixed_amount is true) | integer | Indicates if the QR should accept payments of specific amounts or any amount. | -| customer_id | string | Unique identifier of the customer the QR code is linked with | -| description | string | A brief description about the QR code. | -| close_by | integer | UNIX timestamp at which the QR code is scheduled to be automatically closed. The time must be at least 15 minutes after the current time. | -| notes | array | Key-value pair that can be used to store additional information about the QR code. Maximum 15 key-value pairs, 256 characters (maximum) each. | -| tax_invoice | array | This block contains information about the invoices. If not provided, the transaction will default to non-GST compliant UPI flow. | - -**Response:** -```json -{ - "id": "qr_HMsVL8HOpbMcjU", - "entity": "qr_code", - "created_at": 1623660301, - "name": "Store_1", - "usage": "single_use", - "type": "upi_qr", - "image_url": "https://rzp.io/i/BWcUVrLp", - "payment_amount": 300, - "status": "active", - "description": "For Store 1", - "fixed_amount": true, - "payments_amount_received": 0, - "payments_count_received": 0, - "notes": { - "purpose": "Test UPI QR code notes" - }, - "customer_id": "cust_HKsR5se84c5LTO", - "close_by": 1681615838, - "tax_invoice": { - "number": "INV001", - "date": 1589994898, - "customer_name": "Gaurav Kumar", - "business_gstin": "06AABCU9605R1ZR", - "gst_amount": 4000, - "cess_amount": 0, - "supply_type": "interstate" - } -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch all Qr code - -```php -$api->qrCode->all($options); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| from | timestamp | timestamp after which the payments were created | -| to | timestamp | timestamp before which the payments were created | -| count | integer | number of payments to fetch (default: 10) | -| skip | integer | number of payments to be skipped (default: 0) | - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "qr_HO2jGkWReVBMNu", - "entity": "qr_code", - "created_at": 1623914648, - "name": "Store_1", - "usage": "single_use", - "type": "upi_qr", - "image_url": "https://rzp.io/i/w2CEwYmkAu", - "payment_amount": 300, - "status": "active", - "description": "For Store 1", - "fixed_amount": true, - "payments_amount_received": 0, - "payments_count_received": 0, - "notes": { - "purpose": "Test UPI QR code notes" - }, - "customer_id": "cust_HKsR5se84c5LTO", - "close_by": 1681615838, - "closed_at": null, - "close_reason": null - } - ] -} -``` - -------------------------------------------------------------------------------------------------------- - -### Fetch a Qr code - -```php -$api->qrCode->fetch($qrCodeId); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| qrCodeId | string | The id of the qr code to be fetched | - -**Response:** -```json -{ - "id": "qr_HO2r1MDprYtWRT", - "entity": "qr_code", - "created_at": 1623915088, - "name": "Store_1", - "usage": "single_use", - "type": "upi_qr", - "image_url": "https://rzp.io/i/oCswTOcCo", - "payment_amount": 300, - "status": "active", - "description": "For Store 1", - "fixed_amount": true, - "payments_amount_received": 0, - "payments_count_received": 0, - "notes": { - "purpose": "Test UPI QR code notes" - }, - "customer_id": "cust_HKsR5se84c5LTO", - "close_by": 1681615838, - "closed_at": null, - "close_reason": null -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch a Qr code for customer id - -```php - $api->qrCode->all(["customer_id" => $customerId]); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| customerId* | string | The id of the customer to which qr code need to be fetched | - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "qr_HMsgvioW64f0vh", - "entity": "qr_code", - "created_at": 1623660959, - "name": "Store_1", - "usage": "single_use", - "type": "upi_qr", - "image_url": "https://rzp.io/i/DTa2eQR", - "payment_amount": 300, - "status": "active", - "description": "For Store 1", - "fixed_amount": true, - "payments_amount_received": 0, - "payments_count_received": 0, - "notes": { - "purpose": "Test UPI QR code notes" - }, - "customer_id": "cust_HKsR5se84c5LTO", - "close_by": 1681615838 - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch a Qr code for payment id - -```php - $api->qrCode->all(["payment_id" => $paymentId]); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| paymentID* | string | The id of the payment to which qr code need to be fetched | - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "qr_HMsqRoeVwKbwAF", - "entity": "qr_code", - "created_at": 1623661499, - "name": "Fresh Groceries", - "usage": "multiple_use", - "type": "upi_qr", - "image_url": "https://rzp.io/i/eI9XD54Q", - "payment_amount": null, - "status": "active", - "description": "Buy fresh groceries", - "fixed_amount": false, - "payments_amount_received": 1000, - "payments_count_received": 1, - "notes": [], - "customer_id": "cust_HKsR5se84c5LTO", - "close_by": 1624472999, - "close_reason": null - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch Payments for a QR Code - -```php -$api->qrCode->fetch($qrCodeId)->fetchAllPayments($options); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| qrCodeID* | string | The id of the qr code to which payment where made | -| from | timestamp | timestamp after which the payments were created | -| to | timestamp | timestamp before which the payments were created | -| count | integer | number of payments to fetch (default: 10) | -| skip | integer | number of payments to be skipped (default: 0) | - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "pay_HMtDKn3TnF4D8x", - "entity": "payment", - "amount": 500, - "currency": "INR", - "status": "captured", - "order_id": null, - "invoice_id": null, - "international": false, - "method": "upi", - "amount_refunded": 0, - "refund_status": null, - "captured": true, - "description": "QRv2 Payment", - "card_id": null, - "bank": null, - "wallet": null, - "vpa": "gauri.kumari@okhdfcbank", - "email": "gauri.kumari@example.com", - "contact": "+919999999999", - "customer_id": "cust_HKsR5se84c5LTO", - "notes": [], - "fee": 0, - "tax": 0, - "error_code": null, - "error_description": null, - "error_source": null, - "error_step": null, - "error_reason": null, - "acquirer_data": { - "rrn": "116514257019" - }, - "created_at": 1623662800 - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Close a QR Code - -```php -$api->qrCode->fetch($qrCodeId)->close() -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| qrCodeID* | string | The id of the qr code to be closed | - -**Response:** -```json -{ - "id": "qr_HMsVL8HOpbMcjU", - "entity": "qr_code", - "created_at": 1623660301, - "name": "Store_1", - "usage": "single_use", - "type": "upi_qr", - "image_url": "https://rzp.io/i/BWcUVrLp", - "payment_amount": 300, - "status": "closed", - "description": "For Store 1", - "fixed_amount": true, - "payments_amount_received": 0, - "payments_count_received": 0, - "notes": { - "purpose": "Test UPI QR code notes" - }, - "customer_id": "cust_HKsR5se84c5LTO", - "close_by": 1681615838, - "closed_at": 1623660445, - "close_reason": "on_demand" -} -``` -------------------------------------------------------------------------------------------------------- - -### Refund a Payment - -```php -$api->payment->fetch($paymentId)->refund(array("amount"=> "100","notes"=>array("notes_key_1"=>"Beam me up Scotty.", "notes_key_2"=>"Engage"))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| paymentId* | string | The id of the payment to be refunded | -| amount | string | Amount to be refunded | -| notes | array | Key-value pair that can be used to store additional information about the QR code. Maximum 15 key-value pairs, 256 characters (maximum) each. | - -**Response:** -```json -{ - "id": "rfnd_FP8QHiV938haTz", - "entity": "refund", - "amount": 500100, - "receipt": "Receipt No. 31", - "currency": "INR", - "payment_id": "pay_29QQoUBi66xm2f", - "notes": [], - "receipt": null, - "acquirer_data": { - "arn": null - }, - "created_at": 1597078866, - "batch_id": null, - "status": "processed", - "speed_processed": "normal", - "speed_requested": "normal" -} -``` -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/qr-codes/)** diff --git a/assets/php/razorpay-php/documents/refund.md b/assets/php/razorpay-php/documents/refund.md deleted file mode 100644 index 8008e8c..0000000 --- a/assets/php/razorpay-php/documents/refund.md +++ /dev/null @@ -1,278 +0,0 @@ -## Refunds - -### Create a normal refund -```php -$api->payment->fetch($paymentId)->refund(array("amount"=> "100", "speed"=>"normal", "notes"=>array("notes_key_1"=>"Beam me up Scotty.", "notes_key_2"=>"Engage"), "receipt"=>"Receipt No. 31")); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| paymentId* | string | The id of the payment | -| amount | integer | The amount to be captured (should be equal to the authorized amount, in paise) | | -| speed | string | Here, it must be normal | -| notes | array | A key-value pair | -| receipt | string | A unique identifier provided by you for your internal reference. | - -**Response:** -```json -{ - "id": "rfnd_FP8QHiV938haTz", - "entity": "refund", - "amount": 500100, - "receipt": "Receipt No. 31", - "currency": "INR", - "payment_id": "pay_FCXKPFtYfPXJPy", - "notes": [], - "acquirer_data": { - "arn": null - }, - "created_at": 1597078866, - "batch_id": null, - "status": "processed", - "speed_processed": "normal", - "speed_requested": "normal" -} -``` -------------------------------------------------------------------------------------------------------- - -### Create an instant refund -```php -$api->payment->fetch($paymentId)->refund(array("amount"=> "100","speed"=>"optimum","receipt"=>"Receipt No. 31")); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| paymentId* | string | The id of the payment | -| amount | integer | The amount to be captured (should be equal to the authorized amount, in paise) | -| speed* | string | Here, it must be optimum | -| receipt | string | A unique identifier provided by you for your internal reference. | - -**Response:** -```json -{ - "id": "rfnd_FP8R8EGjGbPkVb", - "entity": "refund", - "amount": 500100, - "currency": "INR", - "payment_id": "pay_FC8MmhMBZPKDHF", - "notes": { - "notes_key_1": "Tea, Earl Grey, Hot", - "notes_key_2": "Tea, Earl Grey… decaf." - }, - "receipt": "Receipt No. 31", - "acquirer_data": { - "arn": null - }, - "created_at": 1597078914, - "batch_id": null, - "status": "processed", - "speed_requested": "optimum" -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch multiple refunds for a payment -```php -$api->payment->fetch($paymentId)->fetchMultipleRefund($option); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| paymentId* | string | The id of the payment | -| from | timestamp | timestamp after which the payments were created | -| to | timestamp | timestamp before which the payments were created | -| count | integer | number of payments to fetch (default: 10) | -| skip | integer | number of payments to be skipped (default: 0) | - -**Refund:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "rfnd_FP8DDKxqJif6ca", - "entity": "refund", - "amount": 300100, - "currency": "INR", - "payment_id": "pay_FIKOnlyii5QGNx", - "notes": { - "comment": "Comment for refund" - }, - "receipt": null, - "acquirer_data": { - "arn": "10000000000000" - }, - "created_at": 1597078124, - "batch_id": null, - "status": "processed", - "speed_processed": "normal", - "speed_requested": "optimum" - } - ] -} - ``` -------------------------------------------------------------------------------------------------------- - -### Fetch a specific refund for a payment -```php -$api->payment->fetch($paymentId)->fetchRefund($refundId); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| paymentId* | string | The id of the payment to be fetched | -| refundId* | string | The id of the refund to be fetched | - -**Response:** -```json -{ - "id": "rfnd_FP8DDKxqJif6ca", - "entity": "refund", - "amount": 300100, - "currency": "INR", - "payment_id": "pay_FIKOnlyii5QGNx", - "notes": { - "comment": "Comment for refund" - }, - "receipt": null, - "acquirer_data": { - "arn": "10000000000000" - }, - "created_at": 1597078124, - "batch_id": null, - "status": "processed", - "speed_processed": "normal", - "speed_requested": "optimum" -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch all refunds -```php -$options = array("count" => 2); - -$api->refund->all($options); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| from | timestamp | timestamp after which the payments were created | -| to | timestamp | timestamp before which the payments were created | -| count | integer | number of payments to fetch (default: 10) | -| skip | integer | number of payments to be skipped (default: 0) | - -**Response:** -```json -{ - "entity": "collection", - "count": 2, - "items": [ - { - "id": "rfnd_FFX6AnnIN3puqW", - "entity": "refund", - "amount": 88800, - "currency": "INR", - "payment_id": "pay_FFX5FdEYx8jPwA", - "notes": { - "comment": "Issuing an instant refund" - }, - "receipt": null, - "acquirer_data": {}, - "created_at": 1594982363, - "batch_id": null, - "status": "processed", - "speed_processed": "optimum", - "speed_requested": "optimum" - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch particular refund -```php -$api->refund->fetch($refundId); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| refundId* | string | The id of the refund to be fetched | - -**Response:** -```json -{ - "id": "rfnd_EqWThTE7dd7utf", - "entity": "refund", - "amount": 6000, - "currency": "INR", - "payment_id": "pay_EpkFDYRirena0f", - "notes": { - "comment": "Issuing an instant refund" - }, - "receipt": null, - "acquirer_data": { - "arn": "10000000000000" - }, - "created_at": 1589521675, - "batch_id": null, - "status": "processed", - "speed_processed": "optimum", - "speed_requested": "optimum" -} -``` -------------------------------------------------------------------------------------------------------- - -### Update the refund -```php -$api->refund->fetch($refundId)->edit(array('notes'=> array('notes_key_1'=>'Beam me up Scotty.', 'notes_key_2'=>'Engage'))); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| refundId* | string | The id of the refund to be fetched | -| notes* | array | A key-value pair | - -**Response:** -```json -{ - "id": "rfnd_FP8DDKxqJif6ca", - "entity": "refund", - "amount": 300100, - "currency": "INR", - "payment_id": "pay_FIKOnlyii5QGNx", - "notes": { - "notes_key_1": "Beam me up Scotty.", - "notes_key_2": "Engage" - }, - "receipt": null, - "acquirer_data": { - "arn": "10000000000000" - }, - "created_at": 1597078124, - "batch_id": null, - "status": "processed", - "speed_processed": "normal", - "speed_requested": "optimum" -} -``` -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/refunds/)** diff --git a/assets/php/razorpay-php/documents/registeremandate.md b/assets/php/razorpay-php/documents/registeremandate.md deleted file mode 100644 index dffce1a..0000000 --- a/assets/php/razorpay-php/documents/registeremandate.md +++ /dev/null @@ -1,341 +0,0 @@ -## Register emandate and charge first payment together - -### Create customer -```php -$api->customer->create(array('name' => 'Razorpay User', 'email' => 'customer@razorpay.com','contact'=>'9123456780', 'fail_existing'=> '0', 'notes'=> array('notes_key_1'=> 'Tea, Earl Grey, Hot','notes_key_2'=> 'Tea, Earl Grey… decaf'))); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| name* | string | Name of the customer | -| email | string | Email of the customer | -| contact | string | Contact number of the customer | -| fail_existing | string | If a customer with the same details already exists, the request throws an exception by default. Possible value is `0` or `1`| -| notes | array | A key-value pair | - -**Response:** -```json -{ - "id": "cust_1Aa00000000003", - "entity": "customer", - "name": "Gaurav Kumar", - "email": "Gaurav.Kumar@example.com", - "contact": "9000000000", - "gstin": null, - "notes": { - "notes_key_1": "Tea, Earl Grey, Hot", - "notes_key_2": "Tea, Earl Grey… decaf." - }, - "created_at": 1582033731 -} -``` -------------------------------------------------------------------------------------------------------- - -### Create order - -```php -$api->order->create(array('amount' => 0, 'currency' => 'INR', 'method'=>'emandate', 'customer_id'=>$customerId, 'receipt'=>'Receipt No. 5', 'notes'=> array('note_key 1'=> 'Beam me up Scotty','note_key 2'=> 'Engage'), 'token'=>array('first_payment_amount'=>100, 'auth_type'=>'netbanking' ,'max_amount'=>'9999900','expire_at'=>'4102444799', 'notes'=>array('note_key 1'=> 'Tea, Earl Grey… decaf.','note_key 2'=> 'Tea. Earl Gray. Hot.'), 'bank_account'=>array('beneficiary_name'=>'Gaurav Kumar', 'account_number'=>'11214311215411', 'account_type'=>'savings', 'ifsc_code'=>'HDFC0001233')))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| amount* | integer | The amount to be captured (should be equal to the authorized amount, in paise) | -| currency* | string | The currency of the payment (defaults to INR) | -| customerId* | string | The id of the customer to be fetched | -| payment_capture* | boolean | Indicates whether payment status should be changed to `captured` automatically or not. Possible values: true - Payments are captured automatically. false - Payments are not captured automatically.| -| method* | string | Payment method used to make the registration transaction. Possible value is `emandate`. | -| receipt | string | Your system order reference id. | -| token | array | All parameters listed [here](https://razorpay.com/docs/api/payments/recurring-payments/emandate/auto-debit/#112-create-an-order) are supported | -| auth_type | string | Possible values is `netbanking`, `debitcard` or `aadhaar` | -| max_amount | integer | The maximum amount, in paise, that a customer can be charged in one transaction. The value can range from `500` - `100000000`. | -| expire_at | integer | The timestamp, in Unix format, till when you can use the token (authorization on the payment method) to charge the customer subsequent payments. | -| notes | object | A key-value pair | - -**Response:** -For create order response please click [here](https://razorpay.com/docs/api/recurring-payments/emandate/auto-debit/#112-create-an-order) - -------------------------------------------------------------------------------------------------------- - -### Create an Authorization Payment - -Please refer this [doc](https://razorpay.com/docs/api/recurring-payments/emandate/auto-debit/#113-create-an-authorization-payment) for authorization payment - ------------------------------------------------------------------------------------------------------ - -### Create registration link - -```php -$api->subscription->createSubscriptionRegistration(array('customer'=>array('name'=>'Gaurav Kumar','email'=>'gaurav.kumar@example.com','contact'=>'9123456780'),'type'=>'link','amount'=>0,'currency'=>'INR','description'=>'Registration Link for Gaurav Kumar','subscription_registration'=>array('first_payment_amount'=>100, 'method'=>'emandate', 'auth_type'=>'netbanking' ,'max_amount'=>'50000','expire_at'=>'1634215992','bank_account'=>array('beneficiary_name'=>'Gaurav Kumar', 'account_number'=>'11214311215411', 'account_type'=>'savings', 'ifsc_code'=>'HDFC0001233')),'receipt'=>'Receipt No. 5','email_notify'=>1,'sms_notify'=>1,'expire_by'=>1634215992, 'notes'=> array('note_key 1'=> 'Beam me up Scotty','note_key 2'=> 'Tea. Earl Gray. Hot.'))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|---------------------------------------------------------------| -| customer | array | Details of the customer to whom the registration link will be sent. | -| type* | array | the value is `link`. | -| amount* | integer | The amount to be captured (should be equal to the authorized amount, in paise) | -| currency* | string | The currency of the payment (defaults to INR) | -| description* | string | A brief description of the payment. | -| subscription_registration | array | All parameters listed [here](https://razorpay.com/docs/api/payments/recurring-payments/emandate/auto-debit/#121-create-a-registration-link) are supported | -| receipt | string | Your system order reference id. | -| sms_notify | boolean | SMS notifications are to be sent by Razorpay (default : 1) | -| email_notify | boolean | Email notifications are to be sent by Razorpay (default : 1) | -| expire_by | integer | The timestamp, in Unix format, till when the customer can make the authorization payment. | -| notes | array | A key-value pair | - -**Response:** -For create registration link response please click [here](https://razorpay.com/docs/api/recurring-payments/emandate/auto-debit/#12-using-a-registration-link) -------------------------------------------------------------------------------------------------------- - -## Create an order to charge the customer - -```php -$api->order->create(array('amount' => '100', 'currency' => 'INR', 'payment_capture' => true, 'receipt' => 'Receipt No. 1', 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); -``` -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| amount* | integer | The amount to be captured (should be equal to the authorized amount, in paise) | -| currency* | string | The currency of the payment (defaults to INR) | -| receipt | string | Your system order reference id. | -| payment_capture* | boolean | Indicates whether payment status should be changed to `captured` automatically or not. Possible values: true - Payments are captured automatically. false - Payments are not captured automatically.| -| notes | array | A key-value pair | - -**Response:** -```json -{ - "id":"order_1Aa00000000002", - "entity":"order", - "amount":1000, - "amount_paid":0, - "amount_due":1000, - "currency":"INR", - "receipt":"Receipt No. 1", - "offer_id":null, - "status":"created", - "attempts":0, - "notes":{ - "notes_key_1":"Tea, Earl Grey, Hot", - "notes_key_2":"Tea, Earl Grey… decaf." - }, - "created_at":1579782776 -} -``` -------------------------------------------------------------------------------------------------------- - -## Create a recurring payment - -```php -$api->payment->createRecurring(['email'=>'gaurav.kumar@example.com','contact'=>'9123456789','amount'=>1000,'currency'=>'INR','order_id'=>$orderid,'customer_id'=>$customerId,'token'=>$tokenId,'recurring'=>'1','description'=>'Creating recurring payment for Gaurav Kumar', 'notes'=> array('key1'=> 'value3','key2'=> 'value2')); -``` -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| email* | string | The customer's email address | -| contact* | string | The customer's phone number | -| amount* | integer | The amount to be captured (should be equal to the authorized amount, in paise) | -| currency* | string | The currency of the payment (defaults to INR) | -| orderId* | string | The id of the order to be fetched | -| customerId* | string | The id of the customer to be fetched | -| tokenId* | string | The id of the token to be fetched | -| recurring* | boolean | Possible values is `0` or `1` | -| description | string | A brief description of the payment. | -| notes | array | A key-value pair | - -**Response:** -```json -{ - "razorpay_payment_id" : "pay_1Aa00000000001", - "razorpay_order_id" : "order_1Aa00000000001", - "razorpay_signature" : "9ef4dffbfd84f1318f6739a3ce19f9d85851857ae648f114332d8401e0949a3d" -} -``` -------------------------------------------------------------------------------------------------------- - -## Send/Resend notifications - -```php -$api->invoice->fetch($invoiceId)->notifyBy($medium); -``` -**Parameters:** - -| Name | Type |Description | -|-----------------|---------|------------------------------------------------------------------------------| -| invoiceId* | string | The id of the invoice to be fetched | -| medium* | string | Possible values are `sms` or `email` | - -**Response:** -```json -{ - "success": true -} -``` -------------------------------------------------------------------------------------------------------- - -## Cancel registration link - -```php -$api->invoice->fetch($invoiceId)->cancel(); -``` -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| invoiceId* | string | The id of the invoice to be fetched | - -**Response:** -```json -{ - "id": "inv_FHrfRupD2ouKIt", - "entity": "invoice", - "receipt": "Receipt No. 1", - "invoice_number": "Receipt No. 1", - "customer_id": "cust_BMB3EwbqnqZ2EI", - "customer_details": { - "id": "cust_BMB3EwbqnqZ2EI", - "name": "Gaurav Kumar", - "email": "gaurav.kumar@example.com", - "contact": "9123456780", - "gstin": null, - "billing_address": null, - "shipping_address": null, - "customer_name": "Gaurav Kumar", - "customer_email": "gaurav.kumar@example.com", - "customer_contact": "9123456780" - }, - "order_id": "order_FHrfRw4TZU5Q2L", - "line_items": [], - "payment_id": null, - "status": "cancelled", - "expire_by": 4102444799, - "issued_at": 1595491479, - "paid_at": null, - "cancelled_at": 1595491488, - "expired_at": null, - "sms_status": "sent", - "email_status": "sent", - "date": 1595491479, - "terms": null, - "partial_payment": false, - "gross_amount": 100, - "tax_amount": 0, - "taxable_amount": 0, - "amount": 100, - "amount_paid": 0, - "amount_due": 100, - "currency": "INR", - "currency_symbol": "₹", - "description": "Registration Link for Gaurav Kumar", - "notes": { - "note_key 1": "Beam me up Scotty", - "note_key 2": "Tea. Earl Gray. Hot." - }, - "comment": null, - "short_url": "https://rzp.io/i/QlfexTj", - "view_less": true, - "billing_start": null, - "billing_end": null, - "type": "link", - "group_taxes_discounts": false, - "created_at": 1595491480, - "idempotency_key": null -} -``` -------------------------------------------------------------------------------------------------------- - -## Fetch token by payment id - -```php -$api->payment->fetch($paymentId); -``` -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| paymentId* | string | The id of the payment to be fetched | - -**Response:** -For fetch token by payment id response please click [here](https://razorpay.com/docs/api/recurring-payments/emandate/auto-debit/#21-fetch-token-by-payment-id) - -------------------------------------------------------------------------------------------------------- - -## Fetch tokens by customer id - -```php -$api->customer->fetch($customerId)->tokens()->all(); -``` -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| customerId* | string | The id of the customer to be fetched | - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "token_FHf94Uym9tdYFJ", - "entity": "token", - "token": "2wDPM7VAlXtjAR", - "bank": "HDFC", - "wallet": null, - "method": "emandate", - "vpa": null, - "recurring": true, - "recurring_details": { - "status": "confirmed", - "failure_reason": null - }, - "auth_type": "netbanking", - "mrn": null, - "used_at": 1595447381, - "created_at": 1595447381, - "bank_details": { - "beneficiary_name": "Gaurav Kumar", - "account_number": "1121431121541121", - "ifsc": "HDFC0000001", - "account_type": "savings" - }, - "max_amount": 9999900, - "expired_at": 1689971140, - "dcc_enabled": false - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -## Delete tokens - -```php -$api->customer->fetch($customerId)->tokens()->delete($tokenId); -``` -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| customerId* | string | The id of the customer to be fetched | -| tokenId* | string | The id of the token to be fetched | - -**Response:** -```json -{ - "deleted": true -} -``` -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/recurring-payments/emandate/auto-debit/)** diff --git a/assets/php/razorpay-php/documents/registernach.md b/assets/php/razorpay-php/documents/registernach.md deleted file mode 100644 index 2cd72d8..0000000 --- a/assets/php/razorpay-php/documents/registernach.md +++ /dev/null @@ -1,538 +0,0 @@ -## Register nach and charge first payment together - -### Create customer -```php -$api->customer->create(array('name' => 'Razorpay User', 'email' => 'customer@razorpay.com','contact'=>'9123456780', 'fail_existing'=> '0', 'notes'=> array('notes_key_1'=> 'Tea, Earl Grey, Hot','notes_key_2'=> 'Tea, Earl Grey… decaf'))); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| name* | string | Name of the customer | -| email | string | Email of the customer | -| contact | string | Contact number of the customer | -| fail_existing | string | If a customer with the same details already exists, the request throws an exception by default. Possible value is `0` or `1`| -| notes | array | A key-value pair | - -**Response:** -```json -{ - "id": "cust_1Aa00000000003", - "entity": "customer", - "name": "Gaurav Kumar", - "email": "Gaurav.Kumar@example.com", - "contact": "9000000000", - "gstin": null, - "notes": { - "notes_key_1": "Tea, Earl Grey, Hot", - "notes_key_2": "Tea, Earl Grey… decaf." - }, - "created_at": 1582033731 -} -``` -------------------------------------------------------------------------------------------------------- - -### Create Order - -```php -$api->order->create(array('amount' => 0, 'currency' => 'INR', 'method'=>'nach', 'customer_id'=>$customerId, 'receipt'=>'Receipt No. 5', 'notes'=> array('note_key 1'=> 'Beam me up Scotty','note_key 2'=> 'Tea. Earl Gray. Hot.'), 'token'=>array('first_payment_amount'=>10000, 'auth_type'=>'physical' ,'max_amount'=>'50000','expire_at'=>'1634215992', 'notes'=>array('note_key 1'=> 'Tea, Earl Grey… decaf.','note_key 2'=> 'Tea. Earl Gray. Hot.'), 'bank_account'=>array('beneficiary_name'=>'Gaurav Kumar', 'account_number'=>'11214311215411', 'account_type'=>'savings', 'ifsc_code'=>'HDFC0001233'), 'nach'=> array('form_reference1'=> 'Recurring Payment for Gaurav Kumar','form_reference2'=> 'Method Paper NACH', 'description'=>'Paper NACH Gaurav Kumar')))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| amount* | integer | The amount to be captured (should be equal to the authorized amount, in paise) | -| currency* | string | The currency of the payment (defaults to INR) | -| customerId* | string | The id of the customer to be fetched | -| method* | string | Payment method used to make the registration transaction. Possible value is `nach`. | -| token | array | All parameters listed [here](https://razorpay.com/docs/api/payments/recurring-payments/paper-nach/auto-debit/#112-create-an-order) are supported | -| notes | array | A key-value pair | - -**Response:** -```json -{ - "id":"order_1Aa00000000001", - "entity":"order", - "amount":0, - "amount_paid":0, - "amount_due":0, - "currency":"INR", - "receipt":"rcptid #10", - "offer_id":null, - "offers":{ - "entity":"collection", - "count":0, - "items":[] - }, - "status":"created", - "attempts":0, - "notes": { - "notes_key_1": "Beam me up Scotty", - "notes_key_2": "Engage" - }, - "created_at":1579775420, - "token":{ - "method":"nach", - "notes": { - "notes_key_1": "Tea, Earl Grey, Hot", - "notes_key_2": "Tea, Earl Grey… decaf." - }, - "recurring_status":null, - "failure_reason":null, - "currency":"INR", - "max_amount":10000000, - "auth_type":"physical", - "expire_at":1580480689, - "nach":{ - "create_form":true, - "form_reference1":"Recurring Payment for Gaurav Kumar", - "form_reference2":"Method Paper NACH", - "prefilled_form":"https://rzp.io/i/bitw", - "upload_form_url":"https://rzp.io/i/gts", - "description":"Paper NACH Gaurav Kumar" - }, - "bank_account":{ - "ifsc":"HDFC0000001", - "bank_name":"HDFC Bank", - "name":"Gaurav Kumar", - "account_number":"11214311215411", - "account_type":"savings", - "beneficiary_email":"gaurav.kumar@example.com", - "beneficiary_mobile":"9876543210" - }, - "first_payment_amount":10000 - } -} -``` -------------------------------------------------------------------------------------------------------- - -### Create an Authorization Payment - -Please refer this [doc](https://razorpay.com/docs/api/recurring-payments/paper-nach/auto-debit/#113-create-an-authorization-payment) for authorization payment - ------------------------------------------------------------------------------------------------------ - -### Create registration link - -```php -$api->subscription->createSubscriptionRegistration(array('customer'=>array('name'=>'Gaurav Kumar','email'=>'gaurav.kumar@example.com','contact'=>'9123456780'),'amount'=>0, 'type'=>'link','currency'=>'INR','description'=>'Registration Link for Gaurav Kumar','subscription_registration'=>array('method'=>'nach', 'auth_type'=>'physical' ,'max_amount'=>'50000','expire_at'=>'1634215992','bank_account'=>array('beneficiary_name'=>'Gaurav Kumar', 'account_number'=>'11214311215411', 'account_type'=>'savings', 'ifsc_code'=>'HDFC0001233'), 'nach'=> array('form_reference1'=> 'Recurring Payment for Gaurav Kumar','form_reference2'=> 'Method Paper NACH')),'receipt'=>'Receipt No. 5','email_notify'=>1,'sms_notify'=>1,'expire_by'=>1634215992, 'notes'=> array('note_key 1'=> 'Beam me up Scotty','note_key 2'=> 'Tea. Earl Gray. Hot.'))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|---------------------------------------------------------------| -| customer | array | All parameters listed [here](https://razorpay.com/docs/api/payments/recurring-payments/paper-nach/auto-debit/#121-create-a-registration-link) are supported | -| type* | array | the value is `link`. | -| amount* | integer | The amount to be captured (should be equal to the authorized amount, in paise) | -| currency* | string | The currency of the payment (defaults to INR) | -| description* | string | A brief description of the payment. | -| subscription_registration | array | All parameters listed [here](https://razorpay.com/docs/api/payments/recurring-payments/paper-nach/auto-debit/#121-create-a-registration-link) are supported | -| receipt | string | Your system order reference id. | -| sms_notify | boolean | SMS notifications are to be sent by Razorpay (default : 1) | -| email_notify | boolean | Email notifications are to be sent by Razorpay (default : 1) | -| expire_by | integer | The timestamp, in Unix format, till when the customer can make the authorization payment. | -| notes | array | A key-value pair | - -**Response:** -```json -{ - "id": "inv_FHrZiAubEzDdaq", - "entity": "invoice", - "receipt": "Receipt No. 27", - "invoice_number": "Receipt No. 27", - "customer_id": "cust_BMB3EwbqnqZ2EI", - "customer_details": { - "id": "cust_BMB3EwbqnqZ2EI", - "name": "Gaurav Kumar", - "email": "gaurav.kumar@example.com", - "contact": "9123456780", - "gstin": null, - "billing_address": null, - "shipping_address": null, - "customer_name": "Gaurav Kumar", - "customer_email": "gaurav.kumar@example.com", - "customer_contact": "9123456780" - }, - "order_id": "order_FHrZiBOkWHZPOp", - "line_items": [], - "payment_id": null, - "status": "issued", - "expire_by": 1647483647, - "issued_at": 1595491154, - "paid_at": null, - "cancelled_at": null, - "expired_at": null, - "sms_status": "sent", - "email_status": "sent", - "date": 1595491154, - "terms": null, - "partial_payment": false, - "gross_amount": 0, - "tax_amount": 0, - "taxable_amount": 0, - "amount": 0, - "amount_paid": 0, - "amount_due": 0, - "currency": "INR", - "currency_symbol": "₹", - "description": "12 p.m. Meals", - "notes": { - "note_key 1": "Beam me up Scotty", - "note_key 2": "Tea. Earl Gray. Hot." - }, - "comment": null, - "short_url": "https://rzp.io/i/bzDYbNg", - "view_less": true, - "billing_start": null, - "billing_end": null, - "type": "link", - "group_taxes_discounts": false, - "created_at": 1595491154, - "idempotency_key": null, - "token": { - "method": "nach", - "notes": { - "note_key 1": "Beam me up Scotty", - "note_key 2": "Tea. Earl Gray. Hot." - }, - "recurring_status": null, - "failure_reason": null, - "currency": "INR", - "max_amount": 50000, - "auth_type": "physical", - "expire_at": 1947483647, - "nach": { - "create_form": true, - "form_reference1": "Recurring Payment for Gaurav Kumar", - "form_reference2": "Method Paper NACH", - "prefilled_form": "https://rzp.io/i/exdIzYN", - "upload_form_url": "https://rzp.io/i/bzDYbNg", - "description": "12 p.m. Meals" - }, - "bank_account": { - "ifsc": "HDFC0001233", - "bank_name": "HDFC Bank", - "name": "Gaurav Kumar", - "account_number": "11214311215411", - "account_type": "savings", - "beneficiary_email": "gaurav.kumar@example.com", - "beneficiary_mobile": "9123456780" - }, - "first_payment_amount": 0 - }, - "nach_form_url": "https://rzp.io/i/exdIzYN" -} -``` -------------------------------------------------------------------------------------------------------- - -## Create an order to charge the customer - -```php -$api->order->create(array('amount' => '100', 'currency' => 'INR', 'payment_capture' => true, 'receipt' => 'Receipt No. 1', 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); -``` -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| amount* | integer | The amount to be captured (should be equal to the authorized amount, in paise) | -| currency* | string | The currency of the payment (defaults to INR) | -| receipt | string | Your system order reference id. | -| payment_capture | boolean | Indicates whether payment status should be changed to captured automatically or not. Possible values: true - Payments are captured automatically. false - Payments are not captured automatically. | -| notes | array | A key-value pair | - -**Response:** -```json -{ - "id":"order_1Aa00000000002", - "entity":"order", - "amount":1000, - "amount_paid":0, - "amount_due":1000, - "currency":"INR", - "receipt":"Receipt No. 1", - "offer_id":null, - "status":"created", - "attempts":0, - "notes":{ - "notes_key_1":"Tea, Earl Grey, Hot", - "notes_key_2":"Tea, Earl Grey… decaf." - }, - "created_at":1579782776 -} -``` -------------------------------------------------------------------------------------------------------- - -## Create a recurring payment - -```php -$api->payment->createRecurring(['email'=>'gaurav.kumar@example.com','contact'=>'9123456789','amount'=>1000,'currency'=>'INR','order_id'=>$orderid,'customer_id'=>$customerId,'token'=>$tokenId,'recurring'=>'1','description'=>'Creating recurring payment for Gaurav Kumar', 'notes'=> array('key1'=> 'value3','key2'=> 'value2')); -``` -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| email* | string | The customer's email address | -| contact* | string | The customer's phone number | -| amount* | integer | The amount to be captured (should be equal to the authorized amount, in paise) | -| currency* | string | The currency of the payment (defaults to INR) | -| orderId* | string | The id of the order to be fetched | -| customerId* | string | The id of the customer to be fetched | -| tokenId* | string | The id of the token to be fetched | -| recurring* | boolean | Possible values is `0` or `1` | -| description | string | A brief description of the payment. | -| notes | array | A key-value pair | - -**Response:** -```json -{ - "razorpay_payment_id" : "pay_1Aa00000000001", - "razorpay_order_id" : "order_1Aa00000000001", - "razorpay_signature" : "9ef4dffbfd84f1318f6739a3ce19f9d85851857ae648f114332d8401e0949a3d" -} -``` -------------------------------------------------------------------------------------------------------- - -## Send/Resend notifications - -```php -$api->invoice->fetch($invoiceId)->notifyBy($medium); -``` -**Parameters:** - -| Name | Type |Description | -|-----------------|---------|------------------------------------------------------------------------------| -| invoiceId* | string | The id of the invoice to be fetched | -| medium* | string | Possible values are `sms` or `email` | - -**Response:** -```json -{ - "success": true -} -``` - -------------------------------------------------------------------------------------------------------- - -## Cancel registration link - -```php -$api->invoice->fetch($invoiceId)->cancel(); -``` -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| invoiceId* | string | The id of the invoice to be fetched | - -**Response:** -```json -{ - "id": "inv_FHrZiAubEzDdaq", - "entity": "invoice", - "receipt": "Receipt No. 27", - "invoice_number": "Receipt No. 27", - "customer_id": "cust_BMB3EwbqnqZ2EI", - "customer_details": { - "id": "cust_BMB3EwbqnqZ2EI", - "name": "Gaurav Kumar", - "email": "gaurav.kumar@example.com", - "contact": "9123456780", - "gstin": null, - "billing_address": null, - "shipping_address": null, - "customer_name": "Gaurav Kumar", - "customer_email": "gaurav.kumar@example.com", - "customer_contact": "9123456780" - }, - "order_id": "order_FHrZiBOkWHZPOp", - "line_items": [], - "payment_id": null, - "status": "cancelled", - "expire_by": 1647483647, - "issued_at": 1595491154, - "paid_at": null, - "cancelled_at": 1595491339, - "expired_at": null, - "sms_status": "sent", - "email_status": "sent", - "date": 1595491154, - "terms": null, - "partial_payment": false, - "gross_amount": 0, - "tax_amount": 0, - "taxable_amount": 0, - "amount": 0, - "amount_paid": 0, - "amount_due": 0, - "currency": "INR", - "currency_symbol": "₹", - "description": "12 p.m. Meals", - "notes": { - "note_key 1": "Beam me up Scotty", - "note_key 2": "Tea. Earl Gray. Hot." - }, - "comment": null, - "short_url": "https://rzp.io/i/bzDYbNg", - "view_less": true, - "billing_start": null, - "billing_end": null, - "type": "link", - "group_taxes_discounts": false, - "created_at": 1595491154, - "idempotency_key": null, - "token": { - "method": "nach", - "notes": { - "note_key 1": "Beam me up Scotty", - "note_key 2": "Tea. Earl Gray. Hot." - }, - "recurring_status": null, - "failure_reason": null, - "currency": "INR", - "max_amount": 50000, - "auth_type": "physical", - "expire_at": 1947483647, - "nach": { - "create_form": true, - "form_reference1": "Recurring Payment for Gaurav Kumar", - "form_reference2": "Method Paper NACH", - "prefilled_form": "https://rzp.io/i/tSYd5aV", - "upload_form_url": "https://rzp.io/i/bzDYbNg", - "description": "12 p.m. Meals" - }, - "bank_account": { - "ifsc": "HDFC0001233", - "bank_name": "HDFC Bank", - "name": "Gaurav Kumar", - "account_number": "11214311215411", - "account_type": "savings", - "beneficiary_email": "gaurav.kumar@example.com", - "beneficiary_mobile": "9123456780" - }, - "first_payment_amount": 0 - }, - "nach_form_url": "https://rzp.io/i/tSYd5aV" -} -``` -------------------------------------------------------------------------------------------------------- - -## Fetch token by payment id - -```php -$api->payment->fetch($paymentId); -``` -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| paymentId* | string | The id of the payment to be fetched | - -**Response:** -```json -{ - "id": "pay_EnLNTjINiPkMEZ", - "entity": "payment", - "amount": 0, - "currency": "INR", - "status": "captured", - "order_id": "order_EnLLfglmKksr4K", - "invoice_id": "inv_EnLLfgCzRfcMuh", - "international": false, - "method": "nach", - "amount_refunded": 0, - "refund_status": null, - "captured": true, - "description": "Invoice #inv_EnLLfgCzRfcMuh", - "card_id": null, - "bank": "UTIB", - "wallet": null, - "vpa": null, - "email": "gaurav.kumar@example.com", - "contact": "+919876543210", - "customer_id": "cust_DtHaBuooGHTuyZ", - "token_id": "token_EnLNTnn7uyRg5V", - "notes": { - "note_key 1": "Beam me up Scotty", - "note_key 2": "Tea. Earl Gray. Hot." - }, - "fee": 0, - "tax": 0, - "error_code": null, - "error_description": null, - "error_source": null, - "error_step": null, - "error_reason": null, - "acquirer_data": {}, - "created_at": 1588827564 -} -``` -------------------------------------------------------------------------------------------------------- - -## Fetch tokens by customer id - -```php -$api->customer->fetch($customerId)->tokens()->all(); -``` -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| customerId* | string | The id of the customer to be fetched | - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "token_EhYgIE3pOyMQpD", - "entity": "token", - "token": "3mQ5Czc6APNppI", - "bank": "HDFC", - "wallet": null, - "method": "nach", - "vpa": null, - "recurring": true, - "recurring_details": { - "status": "confirmed", - "failure_reason": null - }, - "auth_type": "physical", - "mrn": null, - "used_at": 1587564373, - "created_at": 1587564373, - "dcc_enabled": false - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -## Delete tokens - -```php -$api->customer->fetch($customerId)->tokens()->delete($tokenId); -``` -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| customerId* | string | The id of the customer to be fetched | -| tokenId* | string | The id of the token to be fetched | - -**Response:** -```json -{ - "deleted": true -} -``` -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/recurring-payments/paper-nach/auto-debit/)** diff --git a/assets/php/razorpay-php/documents/settlement.md b/assets/php/razorpay-php/documents/settlement.md deleted file mode 100644 index 0e59559..0000000 --- a/assets/php/razorpay-php/documents/settlement.md +++ /dev/null @@ -1,570 +0,0 @@ -## Settlements - -### Fetch all settlements - -```php -$api->settlement->all($options); -``` - -**Parameters:** - - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| from | timestamp | timestamp after which the settlement were created | -| to | timestamp | timestamp before which the settlement were created | -| count | integer | number of settlements to fetch (default: 10) | -| skip | integer | number of settlements to be skipped (default: 0) | - -**Response:** -```json -{ - "entity": "collection", - "count": 2, - "items": [ - { - "id": "setl_DGlQ1Rj8os78Ec", - "entity": "settlement", - "amount": 9973635, - "status": "processed", - "fees": 471699, - "tax": 42070, - "utr": "1568176960vxp0rj", - "created_at": 1568176960 - }, - { - "id": "setl_4xbSwsPABDJ8oK", - "entity": "settlement", - "amount": 50000, - "status": "processed", - "fees": 123, - "tax": 12, - "utr": "RZRP173069230702", - "created_at": 1509622306 - } - ] -} -``` - -------------------------------------------------------------------------------------------------------- - -### Fetch a settlement - -```php -$api->settlement->fetch($settlementId); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| $settlementId* | string | The id of the settlement to be fetched | - -**Response:** -```json -{ - "id": "setl_DGlQ1Rj8os78Ec", - "entity": "settlement", - "amount": 9973635, - "status": "processed", - "fees": 471699, - "tax": 42070, - "utr": "1568176960vxp0rj", - "created_at": 1568176960 -} -``` -------------------------------------------------------------------------------------------------------- - -### Settlement report for a month - -```php -$api->settlement->reports(array("year"=>2020,"month"=>09)); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| year* | integer | The year the settlement was received in the `YYYY` format. For example, `2020` | -| month* | integer | The month the settlement was received in the `MM` format. For example, `09` | -| day | integer | The date the settlement was received in the `DD` format. For example, `01` | -| count | integer | number of settlements to fetch (default: 10) | -| skip | integer | number of settlements to be skipped (default: 0) | - -**Response:** -```json -{ - "entity": "collection", - "count": 4, - "items": [ - { - "entity_id": "pay_DEXrnipqTmWVGE", - "type": "payment", - "debit": 0, - "credit": 97100, - "amount": 100000, - "currency": "INR", - "fee": 2900, - "tax": 0, - "on_hold": false, - "settled": true, - "created_at": 1567692556, - "settled_at": 1568176960, - "settlement_id": "setl_DGlQ1Rj8os78Ec", - "posted_at": null, - "credit_type": "default", - "description": "Recurring Payment via Subscription", - "notes": "{}", - "payment_id": null, - "settlement_utr": "1568176960vxp0rj", - "order_id": "order_DEXrnRiR3SNDHA", - "order_receipt": null, - "method": "card", - "card_network": "MasterCard", - "card_issuer": "KARB", - "card_type": "credit", - "dispute_id": null - }, - { - "entity_id": "rfnd_DGRcGzZSLyEdg1", - "type": "refund", - "debit": 242500, - "credit": 0, - "amount": 242500, - "currency": "INR", - "fee": 0, - "tax": 0, - "on_hold": false, - "settled": true, - "created_at": 1568107224, - "settled_at": 1568176960, - "settlement_id": "setl_DGlQ1Rj8os78Ec", - "posted_at": null, - "credit_type": "default", - "description": null, - "notes": "{}", - "payment_id": "pay_DEXq1pACSqFxtS", - "settlement_utr": "1568176960vxp0rj", - "order_id": "order_DEXpmZgffXNvuI", - "order_receipt": null, - "method": "card", - "card_network": "MasterCard", - "card_issuer": "KARB", - "card_type": "credit", - "dispute_id": null - }, - { - "entity_id": "trf_DEUoCEtdsJgvl7", - "type": "transfer", - "debit": 100296, - "credit": 0, - "amount": 100000, - "currency": "INR", - "fee": 296, - "tax": 46, - "on_hold": false, - "settled": true, - "created_at": 1567681786, - "settled_at": 1568176960, - "settlement_id": "setl_DGlQ1Rj8os78Ec", - "posted_at": null, - "credit_type": "default", - "description": null, - "notes": null, - "payment_id": "pay_DEApNNTR6xmqJy", - "settlement_utr": "1568176960vxp0rj", - "order_id": null, - "order_receipt": null, - "method": null, - "card_network": null, - "card_issuer": null, - "card_type": null, - "dispute_id": null - }, - { - "entity_id": "adj_EhcHONhX4ChgNC", - "type": "adjustment", - "debit": 0, - "credit": 1012, - "amount": 1012, - "currency": "INR", - "fee": 0, - "tax": 0, - "on_hold": false, - "settled": true, - "created_at": 1567681786, - "settled_at": 1568176960, - "settlement_id": "setl_DGlQ1Rj8os78Ec", - "posted_at": null, - "description": "test reason", - "notes": null, - "payment_id": null, - "settlement_utr": null, - "order_id": null, - "order_receipt": null, - "method": null, - "card_network": null, - "card_issuer": null, - "card_type": null, - "dispute_id": null - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Settlement recon - -```php -$api->settlement->settlementRecon(array('year' => 2018, 'month' => 2, 'day'=>11)); -``` -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| year* | integer | The year the settlement was received in the `YYYY` format. For example, `2020` | -| month* | integer | The month the settlement was received in the `MM` format. For example, `09` | -| day | integer | The day the settlement was received in the `DD` format. For example, | - -**Response:** -```json -{ - "entity": "collection", - "count": 4, - "items": [ - { - "entity_id": "pay_DEXrnipqTmWVGE", - "type": "payment", - "debit": 0, - "credit": 97100, - "amount": 100000, - "currency": "INR", - "fee": 2900, - "tax": 0, - "on_hold": false, - "settled": true, - "created_at": 1567692556, - "settled_at": 1568176960, - "settlement_id": "setl_DGlQ1Rj8os78Ec", - "posted_at": null, - "credit_type": "default", - "description": "Recurring Payment via Subscription", - "notes": "{}", - "payment_id": null, - "settlement_utr": "1568176960vxp0rj", - "order_id": "order_DEXrnRiR3SNDHA", - "order_receipt": null, - "method": "card", - "card_network": "MasterCard", - "card_issuer": "KARB", - "card_type": "credit", - "dispute_id": null - }, - { - "entity_id": "rfnd_DGRcGzZSLyEdg1", - "type": "refund", - "debit": 242500, - "credit": 0, - "amount": 242500, - "currency": "INR", - "fee": 0, - "tax": 0, - "on_hold": false, - "settled": true, - "created_at": 1568107224, - "settled_at": 1568176960, - "settlement_id": "setl_DGlQ1Rj8os78Ec", - "posted_at": null, - "credit_type": "default", - "description": null, - "notes": "{}", - "payment_id": "pay_DEXq1pACSqFxtS", - "settlement_utr": "1568176960vxp0rj", - "order_id": "order_DEXpmZgffXNvuI", - "order_receipt": null, - "method": "card", - "card_network": "MasterCard", - "card_issuer": "KARB", - "card_type": "credit", - "dispute_id": null - }, - { - "entity_id": "trf_DEUoCEtdsJgvl7", - "type": "transfer", - "debit": 100296, - "credit": 0, - "amount": 100000, - "currency": "INR", - "fee": 296, - "tax": 46, - "on_hold": false, - "settled": true, - "created_at": 1567681786, - "settled_at": 1568176960, - "settlement_id": "setl_DGlQ1Rj8os78Ec", - "posted_at": null, - "credit_type": "default", - "description": null, - "notes": null, - "payment_id": "pay_DEApNNTR6xmqJy", - "settlement_utr": "1568176960vxp0rj", - "order_id": null, - "order_receipt": null, - "method": null, - "card_network": null, - "card_issuer": null, - "card_type": null, - "dispute_id": null - }, - { - "entity_id": "adj_EhcHONhX4ChgNC", - "type": "adjustment", - "debit": 0, - "credit": 1012, - "amount": 1012, - "currency": "INR", - "fee": 0, - "tax": 0, - "on_hold": false, - "settled": true, - "created_at": 1567681786, - "settled_at": 1568176960, - "settlement_id": "setl_DGlQ1Rj8os78Ec", - "posted_at": null, - "description": "test reason", - "notes": null, - "payment_id": null, - "settlement_utr": null, - "order_id": null, - "order_receipt": null, - "method": null, - "card_network": null, - "card_issuer": null, - "card_type": null, - "dispute_id": null - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Create on-demand settlement - -```php -$api->settlement->createOndemandSettlement(array("amount"=> 1221, "settle_full_balance"=> false, "description"=>"Testing","notes" => array("notes_key_1"=> "Tea, Earl Grey, Hot","notes_key_2"=> "Tea, Earl Grey… decaf."))); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| amount*| integer | Maximum amount that can be settled | -| settle_full_balance* | boolean | true or false | -| description | string | The description may not be greater than 30 characters | -| notes | array | A key-value pair | - -**Response:** -```json -{ - "id": "setlod_FNj7g2YS5J67Rz", - "entity": "settlement.ondemand", - "amount_requested": 200000, - "amount_settled": 0, - "amount_pending": 199410, - "amount_reversed": 0, - "fees": 590, - "tax": 90, - "currency": "INR", - "settle_full_balance": false, - "status": "initiated", - "description": "Need this to make vendor payments.", - "notes": { - "notes_key_1": "Tea, Earl Grey, Hot", - "notes_key_2": "Tea, Earl Grey… decaf." - }, - "created_at": 1596771429, - "ondemand_payouts": { - "entity": "collection", - "count": 1, - "items": [ - { - "id": "setlodp_FNj7g2cbvw8ueO", - "entity": "settlement.ondemand_payout", - "initiated_at": null, - "processed_at": null, - "reversed_at": null, - "amount": 200000, - "amount_settled": null, - "fees": 590, - "tax": 90, - "utr": null, - "status": "created", - "created_at": 1596771429 - } - ] - } -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch all on-demand settlements - -```php -$api->settlement->fetchAllOndemandSettlement($options); -``` -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| from | timestamp | timestamp after which the payments were created | -| to | timestamp | timestamp before which the payments were created | -| count | integer | number of payments to fetch (default: 10) | -| skip | integer | number of payments to be skipped (default: 0) | - -**Response:**
-For all on-demand settlements response please click [here](https://razorpay.com/docs/api/settlements/#fetch-all-on-demand-settlements) -------------------------------------------------------------------------------------------------------- - -### Fetch on-demand settlement by ID - -```php -$api->settlement->fetch($settlementId)->fetchOndemandSettlementById(); -``` - -**Parameters:** - -| Name | Type | Description | -|------------|--------|-----------------------------------| -| $settlementId* | string | Settlement Id of the On-demand settlement| - -**Response:**
-For on-demand settlement by ID response please click [here](https://razorpay.com/docs/api/settlements/#fetch-on-demand-settlements-by-id) - -------------------------------------------------------------------------------------------------------- -### Fetch Instant Settlement With ID With Payout Details - -```php -$settlementId = "setlod_MI0c34SIRVT25W"; - -$api->settlement->fetchOndemandSettlementById($settlementId,["expand[]"=> "ondemand_payouts"]); -``` - -**Parameters:** - - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| expand[] | string | Possible value is `ondemand_payouts` | - -**Response:** -```json -{ - "id": "setlod_FNj7g2YS5J67Rz", - "entity": "settlement.ondemand", - "amount_requested": 200000, - "amount_settled": 199410, - "amount_pending": 0, - "amount_reversed": 0, - "fees": 590, - "tax": 90, - "currency": "INR", - "settle_full_balance": false, - "status": "processed", - "description": "Need this to buy stock.", - "notes": { - "notes_key_1": "Tea, Earl Grey, Hot", - "notes_key_2": "Tea, Earl Grey, decaf." - }, - "created_at": 1596771429, - "ondemand_payouts": { - "entity": "collection", - "count": 1, - "items": [ - { - "id": "setlodp_FNj7g2cbvw8ueO", - "entity": "settlement.ondemand_payout", - "initiated_at": 1596771430, - "processed_at": 1596778752, - "reversed_at": null, - "amount": 200000, - "amount_settled": 199410, - "fees": 590, - "tax": 90, - "utr": "022011173948", - "status": "processed", - "created_at": 1596771429 - } - ] - } -} -``` - -------------------------------------------------------------------------------------------------------- -### Fetch All Instant Settlements With Payout Details - -```php -$api->settlement->fetchAllOndemandSettlement(["expand[]"=> "ondemand_payouts"]); -``` - -**Parameters:** - - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| expand[] | string | Possible value is `ondemand_payouts` | - -**Response:** -```json -{ - "entity": "collection", - "count": 2, - "items": [ - { - "id": "setlod_FNj7g2YS5J67Rz", - "entity": "settlement.ondemand", - "amount_requested": 200000, - "amount_settled": 199410, - "amount_pending": 0, - "amount_reversed": 0, - "fees": 590, - "tax": 90, - "currency": "INR", - "settle_full_balance": false, - "status": "processed", - "description": "Need this to make vendor payments.", - "notes": { - "notes_key_1": "Tea, Earl Grey, Hot", - "notes_key_2": "Tea, Earl Grey, decaf." - }, - "created_at": 1596771429, - "ondemand_payouts": { - "entity": "collection", - "count": 1, - "items": [ - { - "id": "setlodp_FNj7g2cbvw8ueO", - "entity": "settlement.ondemand_payout", - "initiated_at": 1596771430, - "processed_at": 1596778752, - "reversed_at": null, - "amount": 200000, - "amount_settled": 199410, - "fees": 590, - "tax": 90, - "utr": "022011173948", - "status": "processed", - "created_at": 1596771429 - } - ] - } - } - ] -} -``` - -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/settlements/)** diff --git a/assets/php/razorpay-php/documents/stakeholder.md b/assets/php/razorpay-php/documents/stakeholder.md deleted file mode 100644 index 5ba46ba..0000000 --- a/assets/php/razorpay-php/documents/stakeholder.md +++ /dev/null @@ -1,345 +0,0 @@ -## Stakeholders - -### Create an Stakeholder -```php - -$accountId = "acc_GP4lfNA0iIMn5B"; - -$api->account->fetch("acc_GP4lfNA0iIMn5B")->stakeholders()->create(array( - "percentage_ownership" => 10, - "name" => "Gaurav Kumar", - "email" => "gaurav.kumar@example.com", - "relationship" => array( - "director" => true, - "executive" => false - ), - "phone" => array( - "primary" => "7474747474", - "secondary" => "7474747474" - ), - "addresses" => array( - "residential" => array( - "street" => "506, Koramangala 1st block", - "city" => "Bengaluru", - "state" => "Karnataka", - "postal_code" => "560034", - "country" => "IN" - ) - ), - "kyc" => array( - "pan" => "AVOPB1111K" - ), - "notes" => array( - "random_key_by_partner" => "random_value" - ) -)); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| email | string | The sub-merchant's business email address. | -| name* | string | The stakeholder's name as per the PAN card. The maximum length is 255 characters. | -| percentage_ownership | float | The stakeholder's ownership of the business in percentage. Only two decimal places are allowed. For example, `87.55`. The maximum length is 100 characters. | -| relationship | boolean | The stakeholder's relationship with the account’s business. | -| phone | object | All keys listed [here](https://razorpay.com/docs/api/partners/stakeholder/#create-a-stakeholder) are supported | -| addresses | object | All keys listed [here](https://razorpay.com/docs/api/partners/stakeholder/#create-a-stakeholder) are supported | -| kyc | object | All keys listed [here](https://razorpay.com/docs/api/partners/stakeholder/#create-a-stakeholder) are supported | -| notes | object | A key-value pair | - -**Response:** -```json -{ - "entity": "stakeholder", - "relationship": { - "director": true - }, - "phone": { - "primary": "7474747474", - "secondary": "7474747474" - }, - "notes": { - "random_key_by_partner": "random_value" - }, - "kyc": { - "pan": "AVOPB1111K" - }, - "id": "sth_GLGgm8fFCKc92m", - "name": "Gaurav Kumar", - "email": "gaurav.kumar@example.com", - "percentage_ownership": 10, - "addresses": { - "residential": { - "street": "506, Koramangala 1st block", - "city": "Bengaluru", - "state": "Karnataka", - "postal_code": "560034", - "country": "IN" - } - } -} -``` - -------------------------------------------------------------------------------------------------------- - -### Edit Stakeholder -```php -$accountId = "acc_GP4lfNA0iIMn5B"; -$stakeholderId = "sth_GOQ4Eftlz62TSL"; - -$api->account->fetch($accountId)->stakeholders()->edit($stakeholderId, array( - "percentage_ownership" => 20, - "name" => "Gauri Kumar", - "relationship" => array( - "director" => false, - "executive" => true - ), - "phone" => array( - "primary" => "9898989898", - "secondary" => "9898989898" - ), - "addresses" => array( - "residential" => array( - "street" => "507, Koramangala 1st block", - "city" => "Bangalore", - "state" => "Karnataka", - "postal_code" => "560035", - "country" => "IN" - ) - ), - "kyc" => array( - "pan" => "AVOPB1111J" - ), - "notes" => array( - "random_key_by_partner" => "random_value2" - ) -)); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| accountId* | string | The unique identifier of a sub-merchant account generated by Razorpay. | -| stakeholderId* | string | The unique identifier of the stakeholder whose details are to be fetched. | -| name | string | The stakeholder's name as per the PAN card. The maximum length is 255 characters. | -| percentage_ownership | float | The stakeholder's ownership of the business in percentage. Only two decimal places are allowed. For example, `87.55`. The maximum length is 100 characters. | -| relationship | boolean | The stakeholder's relationship with the account’s business. | -| phone | object | All keys listed [here](https://razorpay.com/docs/api/partners/stakeholder/#update-a-stakeholder) are supported | -| addresses | object | All keys listed [here](https://razorpay.com/docs/api/partners/stakeholder/#update-a-stakeholder) are supported | -| kyc | object | All keys listed [here](https://razorpay.com/docs/api/partners/stakeholder/#update-a-stakeholder) are supported | -| notes | object | A key-value pair | - -**Response:** -```json -{ - "id": "acc_GP4lfNA0iIMn5B", - "type": "standard", - "status": "created", - "email": "gauri@example.org", - "profile": { - "category": "healthcare", - "subcategory": "clinic", - "addresses": { - "registered": { - "street1": "507, Koramangala 1st block", - "street2": "MG Road-1", - "city": "Bengalore", - "state": "KARNATAKA", - "postal_code": "560034", - "country": "IN" - } - } - }, - "notes": [], - "created_at": 1610603081, - "phone": "9000090000", - "reference_id": "randomId", - "business_type": "partnership", - "legal_business_name": "Acme Corp", - "customer_facing_business_name": "ABCD Ltd" -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch all accounts -```php -$accountId = "acc_GP4lfNA0iIMn5B"; - -$api->account->fetch($accountId)->stakeholders()->all(); - -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| accountId* | string | The unique identifier of a sub-merchant account generated by Razorpay. | - -**Response:** -```json -{ - "entity": "collection", - "items": [ - { - "id": "GZ13yPHLJof9IE", - "entity": "stakeholder", - "relationship": { - "director": true - }, - "phone": { - "primary": "9000090000", - "secondary": "9000090000" - }, - "notes": { - "random_key_by_partner": "random_value" - }, - "kyc": { - "pan": "AVOPB1111K" - }, - "name": "Gaurav Kumar", - "email": "gaurav.kumar@acme.org", - "percentage_ownership": 10, - "addresses": { - "residential": { - "street": "506, Koramangala 1st block", - "city": "Bengaluru", - "state": "Karnataka", - "postal_code": "560034", - "country": "in" - } - } - } - ], - "count": 1 -} -``` - -------------------------------------------------------------------------------------------------------- - -### Fetch an stakeholder -```php -$accountId = "acc_GP4lfNA0iIMn5B"; - -$stakeholderId = "sth_GOQ4Eftlz62TSL"; - -$api->account->fetch($accountId)->stakeholders()->fetch($stakeholderId); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|-------------|---------------------------------------------| -| accountId* | string | The unique identifier of a sub-merchant account generated by Razorpay. | -| stakeholderId* | string | The unique identifier of the stakeholder whose details are to be fetched. | - -**Response:** -```json -{ - "entity": "stakeholder", - "relationship": { - "director": true - }, - "phone": { - "primary": "9000090000", - "secondary": "9000090000" - }, - "notes": { - "random_key_by_partner": "random_value2" - }, - "kyc": { - "pan": "AVOPB1111J" - }, - "id": "sth_GOQ4Eftlz62TSL", - "name": "Gauri Kumar", - "email": "gauri@example.com", - "percentage_ownership": 20, - "addresses": { - "residential": { - "street": "507, Koramangala 1st block", - "city": "Bangalore", - "state": "Karnataka", - "postal_code": "560035", - "country": "in" - } - } -} -``` - -### Upload stakeholders documents - -```php -$accountId = "acc_00000000000001"; - -$stakeholderId = "sth_00000000000001"; - -$payload = [ - 'file'=> '/Users/your_name/Downloads/sample_uploaded.pdf', - "document_type" => "aadhar_front" -]; - -$api->account->fetch($accountId)->stakeholders()->uploadStakeholderDoc($stakeholderId, $payload); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|-------------|---------------------------------------------| -| accountId* | string | The unique identifier of a sub-merchant account generated by Razorpay. | -| stakeholderId* | string | The unique identifier of the stakeholder whose details are to be fetched. | -| file* | string | The URL generated once the business proof document is uploaded. | -| document_type* | string | The documents valid for the proof type to be shared. In case of individual_proof_of_address, both the front and back of a document proof must be uploaded. Possible values :
individual_proof_of_identification: `personal_pan`

individual_proof_of_address : `voter_id_back`, `voter_id_front`, `aadhar_front`, `aadhar_back`, `passport_front`, `passport_back` | - -**Response:** -```json -{ - "individual_proof_of_address": [ - { - "type": "aadhar_front", - "url": "https://rzp.io/i/bzDAbNg" - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch stakeholders documents -```php - -$accountId = "acc_00000000000001"; - -$stakeholderId = "sth_00000000000001"; - -$api->account->fetch($accountId)->stakeholders()->fetchStakeholderDoc($stakeholderId); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|-------------|---------------------------------------------| -| accountId* | string | The unique identifier of a sub-merchant account generated by Razorpay. | - -**Response:** -```json -{ - "business_proof_of_identification": [ - { - "type": "business_proof_url", - "url": "" - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/partners/stakeholder)** - - -$result = $api->account->fetch("acc_M83Uw27KXuC7c8")->stakeholders()->fetchStakeholderDoc("sth_M83WuwmrCFa55g", $payload); - - -$result = $api->account->fetch("acc_M83Uw27KXuC7c8")->stakeholders()->uploadStakeholderDoc("sth_M83WuwmrCFa55g", $payload); \ No newline at end of file diff --git a/assets/php/razorpay-php/documents/subscription.md b/assets/php/razorpay-php/documents/subscription.md deleted file mode 100644 index 8dcf533..0000000 --- a/assets/php/razorpay-php/documents/subscription.md +++ /dev/null @@ -1,671 +0,0 @@ -## Subscriptions - -### Create subscription - -```php -$api->subscription->create(array("plan_id" => "plan_Jc7wDk5iZX88wx","total_count" => 6,"quantity" => 1,"customer_notify" => 1,"start_at" => 1580453311,"expire_by" => 1580626111,"addons" => array(array("item" => array("name" => "Delivery charges","amount" => 30000,"currency" => "INR"))),"offer_id" => "offer_JCTD1XMlUmzF6Z","notes" => array("notes_key_1" => "Tea, Earl Grey, Hot","notes_key_2" => "Tea, Earl Grey… decaf."))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| plan_id* | string | The unique identifier for a plan that should be linked to the subscription.| -| total_count* | string | The number of billing cycles for which the customer should be charged | -| customer_notify | boolean | Indicates whether the communication to the customer would be handled by you or us | -| quantity | integer | The number of times the customer should be charged the plan amount per invoice | -| start_at | integer | The timestamp, in Unix format, for when the subscription should start. If not passed, the subscription starts immediately after the authorization payment. | -| expire_by | integer | The timestamp, in Unix format, till when the customer can make the authorization payment. | -| addons | array | All parameters listed [here](https://razorpay.com/docs/api/payments/subscriptions/#create-a-subscription) are supported | -| notes | array | Notes you can enter for the contact for future reference. | -| offer_id | string | The unique identifier of the offer that is linked to the subscription. | - -**Response:** -```json -{ - "id": "sub_00000000000001", - "entity": "subscription", - "plan_id": "plan_00000000000001", - "status": "created", - "current_start": null, - "current_end": null, - "ended_at": null, - "quantity": 1, - "notes":{ - "notes_key_1":"Tea, Earl Grey, Hot", - "notes_key_2":"Tea, Earl Grey… decaf." - }, - "charge_at": 1580453311, - "start_at": 1580626111, - "end_at": 1583433000, - "auth_attempts": 0, - "total_count": 6, - "paid_count": 0, - "customer_notify": true, - "created_at": 1580280581, - "expire_by": 1580626111, - "short_url": "https://rzp.io/i/z3b1R61A9", - "has_scheduled_changes": false, - "change_scheduled_at": null, - "source": "api", - "offer_id":"offer_JHD834hjbxzhd38d", - "remaining_count": 5 -} -``` -------------------------------------------------------------------------------------------------------- - -### Create subscription link - -```php -$api->subscription->create(array("plan_id" => "plan_Jc7wDk5iZX88wx","total_count" => 12,"quantity" => 1,"start_at" => 1561852800,"expire_by" => 1561939199,"customer_notify" => 1,"addons" => array(array("item" => array("name" => "Delivery charges","amount" => 30000,"currency" => "INR"))),"offer_id" => "offer_JCTD1XMlUmzF6Z","notes" => array("notes_key_1" => "Tea, Earl Grey, Hot","notes_key_2" => "Tea, Earl Grey… decaf."),"notify_info" => array("notify_phone" => "9123456789","notify_email" => "gaurav.kumar@example.com"))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| plan_id* | string | The unique identifier for a plan that should be linked to the subscription.| -| total_count* | string | The number of billing cycles for which the customer should be charged | -| customer_notify | boolean | Indicates whether the communication to the customer would be handled by you or us | -| quantity | integer | The number of times the customer should be charged the plan amount per invoice | -| start_at | integer | The timestamp, in Unix format, for when the subscription should start. If not passed, the subscription starts immediately after the authorization payment. | -| expire_by | integer | The timestamp, in Unix format, till when the customer can make the authorization payment. | -| addons | array | All parameters listed [here](https://razorpay.com/docs/api/payments/subscriptions/#create-a-subscription-link) are supported | -| notes | array | Notes you can enter for the contact for future reference. | -| notify_info | array | All parameters listed [here](https://razorpay.com/docs/api/payments/subscriptions/#create-a-subscription-link) are supported | -| offer_id | string | The unique identifier of the offer that is linked to the subscription. | - -**Response:** -```json -{ - "id":"sub_00000000000002", - "entity":"subscription", - "plan_id":"plan_00000000000001", - "status":"created", - "current_start":null, - "current_end":null, - "ended_at":null, - "quantity":1, - "notes":{ - "notes_key_1":"Tea, Earl Grey, Hot", - "notes_key_2":"Tea, Earl Grey… decaf." - }, - "charge_at":1580453311, - "start_at":1580453311, - "end_at":1587061800, - "auth_attempts":0, - "total_count":12, - "paid_count":0, - "customer_notify":true, - "created_at":1580283117, - "expire_by":1581013800, - "short_url":"https://rzp.io/i/m0y0f", - "has_scheduled_changes":false, - "change_scheduled_at":null, - "source": "api", - "offer_id":"offer_JHD834hjbxzhd38d", - "remaining_count":12 -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch all subscriptions - -```php -$api->subscription->all($options); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| from | timestamp | timestamp after which the payments were created | -| to | timestamp | timestamp before which the payments were created | -| count | integer | number of subscriptions to fetch (default: 10) | -| skip | integer | number of subscriptions to be skipped (default: 0) | -| plan_id | string | The unique identifier of the plan for which you want to retrieve all the subscriptions | - -**Response:** -```json - -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "sub_00000000000001", - "entity": "subscription", - "plan_id": "plan_00000000000001", - "customer_id": "cust_D00000000000001", - "status": "active", - "current_start": 1577355871, - "current_end": 1582655400, - "ended_at": null, - "quantity": 1, - "notes": { - "notes_key_1": "Tea, Earl Grey, Hot", - "notes_key_2": "Tea, Earl Grey… decaf." - }, - "charge_at": 1577385991, - "offer_id": "offer_JHD834hjbxzhd38d", - "start_at": 1577385991, - "end_at": 1603737000, - "auth_attempts": 0, - "total_count": 6, - "paid_count": 1, - "customer_notify": true, - "created_at": 1577356081, - "expire_by": 1577485991, - "short_url": "https://rzp.io/i/z3b1R61A9", - "has_scheduled_changes": false, - "change_scheduled_at": null, - "remaining_count": 5 - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch particular subscription - -```php -$api->subscription->fetch($subscriptionId); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| subscriptionId* | string | The id of the subscription to be fetched | - -**Response:** -```json -{ - "id": "sub_00000000000001", - "entity": "subscription", - "plan_id": "plan_00000000000001", - "customer_id": "cust_D00000000000001", - "status": "active", - "current_start": 1577355871, - "current_end": 1582655400, - "ended_at": null, - "quantity": 1, - "notes":{ - "notes_key_1": "Tea, Earl Grey, Hot", - "notes_key_2": "Tea, Earl Grey… decaf." - }, - "charge_at": 1577385991, - "start_at": 1577385991, - "end_at": 1603737000, - "auth_attempts": 0, - "total_count": 6, - "paid_count": 1, - "customer_notify": true, - "created_at": 1577356081, - "expire_by": 1577485991, - "short_url": "https://rzp.io/i/z3b1R61A9", - "has_scheduled_changes": false, - "change_scheduled_at": null, - "source": "api", - "offer_id":"offer_JHD834hjbxzhd38d", - "remaining_count": 5 -} -``` - -------------------------------------------------------------------------------------------------------- - -### Cancel particular subscription - -```php -$api->subscription->fetch($subscriptionId)->cancel($options); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| subscriptionId* | string | The id of the subscription to be cancelled | -| cancel_at_cycle_end | boolean | Possible values:
0 (default): Cancel the subscription immediately.
1: Cancel the subscription at the end of the current billing cycle. | - -**Response:** -```json -{ - "id": "sub_00000000000001", - "entity": "subscription", - "plan_id": "plan_00000000000001", - "customer_id": "cust_D00000000000001", - "status": "cancelled", - "current_start": 1580453311, - "current_end": 1581013800, - "ended_at": 1580288092, - "quantity": 1, - "notes":{ - "notes_key_1": "Tea, Earl Grey, Hot", - "notes_key_2": "Tea, Earl Grey… decaf." - }, - "charge_at": 1580453311, - "start_at": 1577385991, - "end_at": 1603737000, - "auth_attempts": 0, - "total_count": 6, - "paid_count": 1, - "customer_notify": true, - "created_at": 1580283117, - "expire_by": 1581013800, - "short_url": "https://rzp.io/i/z3b1R61A9", - "has_scheduled_changes": false, - "change_scheduled_at": null, - "source": "api", - "offer_id":"offer_JHD834hjbxzhd38d", - "remaining_count": 5 -} -``` -------------------------------------------------------------------------------------------------------- - -### Update particular subscription - -```php -$api->subscription->fetch($subscriptionId)->update($options); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| subscriptionId* | string | The id of the subscription to be updated | -| options | array | All parameters listed [here](https://razorpay.com/docs/api/subscriptions/#update-a-subscription) for update | - -**Response:** -```json -{ - "id":"sub_00000000000002", - "entity":"subscription", - "plan_id":"plan_00000000000002", - "customer_id":"cust_00000000000002", - "status":"authenticated", - "current_start":null, - "current_end":null, - "ended_at":null, - "quantity":3, - "notes":{ - "notes_key_1":"Tea, Earl Grey, Hot", - "notes_key_2":"Tea, Earl Grey… decaf." - }, - "charge_at":1580453311, - "start_at":1580453311, - "end_at":1606588200, - "auth_attempts":0, - "total_count":6, - "paid_count":0, - "customer_notify":true, - "created_at":1580283807, - "expire_by":1580626111, - "short_url":"https://rzp.io/i/yeDkUKy", - "has_scheduled_changes":false, - "change_scheduled_at":null, - "source": "api", - "offer_id":"offer_JHD834hjbxzhd38d", - "remaining_count":6 -} -``` - -------------------------------------------------------------------------------------------------------- - -### Fetch details of pending update - -```php -$api->subscription->fetch($subscriptionId)->pendingUpdate() -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| subscriptionId* | string | The id of the subscription to fetch pending update | - -**Response:** -```json -{ - "id":"sub_00000000000001", - "entity":"subscription", - "plan_id":"plan_00000000000003", - "customer_id":"cust_00000000000001", - "status":"active", - "current_start":1580284732, - "current_end":1580841000, - "ended_at":null, - "quantity":25, - "notes":{ - "notes_key_1":"Tea, Earl Grey, Hot", - "notes_key_2":"Tea, Earl Grey… decaf." - }, - "charge_at":1580841000, - "start_at":1580284732, - "end_at":1611081000, - "auth_attempts":0, - "total_count":6, - "paid_count":1, - "customer_notify":true, - "created_at":1580284702, - "expire_by":1580626111, - "short_url":"https://rzp.io/i/fFWTkbf", - "has_scheduled_changes":true, - "change_scheduled_at":1557253800, - "source": "api", - "offer_id":"offer_JHD834hjbxzhd38d", - "remaining_count":5 -} -``` -------------------------------------------------------------------------------------------------------- - -### Cancel a update - -```php -$api->subscription->fetch($subscriptionId)->cancelScheduledChanges(); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| subscriptionId* | string | The id of the subscription to be cancel an update | - -**Response:** -```json -{ - "id": "sub_00000000000001", - "entity": "subscription", - "plan_id": "plan_00000000000003", - "customer_id": "cust_00000000000001", - "status": "active", - "current_start": 1580284732, - "current_end": 1580841000, - "ended_at": null, - "quantity": 1, - "notes": { - "notes_key_1": "Tea, Earl Grey, Hot", - "notes_key_2": "Tea, Earl Grey… decaf." - }, - "charge_at": 1580841000, - "start_at": 1580284732, - "end_at": 1611081000, - "auth_attempts": 0, - "total_count": 6, - "paid_count": 1, - "customer_notify": true, - "created_at": 1580284702, - "expire_by": 1580626111, - "short_url": "https://rzp.io/i/fFWTkbf", - "has_scheduled_changes": false, - "change_scheduled_at": 1527858600, - "source": "api", - "offer_id":"offer_JHD834hjbxzhd38d", - "remaining_count": 5 -} -``` -------------------------------------------------------------------------------------------------------- - -### Pause a subscription - -```php -$api->subscription->fetch($subscriptionId)->pause(array('pause_at'=>'now')); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| subscriptionId* | string | The id of the subscription to be paused | -| pause_at | string | To pause the subscription, possible values: `now` | - -**Response:** -```json -{ - "id": "sub_00000000000001", - "entity": "subscription", - "plan_id": "plan_00000000000001", - "status": "paused", - "current_start": null, - "current_end": null, - "ended_at": null, - "quantity": 1, - "notes":{ - "notes_key_1":"Tea, Earl Grey, Hot", - "notes_key_2":"Tea, Earl Grey… decaf." - }, - "charge_at": null, - "start_at": 1580626111, - "end_at": 1583433000, - "auth_attempts": 0, - "total_count": 6, - "paid_count": 0, - "customer_notify": true, - "created_at": 1580280581, - "paused_at": 1590280581, - "expire_by": 1580626111, - "pause_initiated_by": "self", - "short_url": "https://rzp.io/i/z3b1R61A9", - "has_scheduled_changes": false, - "change_scheduled_at": null, - "source": "api", - "offer_id":"offer_JHD834hjbxzhd38d", - "remaining_count": 6 -} -``` -------------------------------------------------------------------------------------------------------- - -### Resume a subscription - -```php -$api->subscription->fetch($subscriptionId)->resume(array('resume_at'=>'now')); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| subscriptionId* | string | The id of the subscription to be resumed | -| resume_at | string | To resume the subscription, possible values: `now` | - -**Response:** -```json -{ - "id": "sub_00000000000001", - "entity": "subscription", - "plan_id": "plan_00000000000001", - "status": "active", - "current_start": null, - "current_end": null, - "ended_at": null, - "quantity": 1, - "notes":{ - "notes_key_1":"Tea, Earl Grey, Hot", - "notes_key_2":"Tea, Earl Grey… decaf." - }, - "charge_at": 1580453311, - "start_at": 1580626111, - "end_at": 1583433000, - "auth_attempts": 0, - "total_count": 6, - "paid_count": 0, - "customer_notify": true, - "created_at": 1580280581, - "paused_at": 1590280581, - "expire_by": 1580626111, - "pause_initiated_by": null, - "short_url": "https://rzp.io/i/z3b1R61A9", - "has_scheduled_changes": false, - "change_scheduled_at": null, - "source": "api", - "offer_id":"offer_JHD834hjbxzhd38d", - "remaining_count": 6 -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch all invoices for a subscription - -```php -$api->invoice->all(['subscription_id'=>$subscriptionId]); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| subscriptionId* | string | The id of the subscription to fetch invoices | - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "inv_00000000000003", - "entity": "invoice", - "receipt": null, - "invoice_number": null, - "customer_id": "cust_00000000000001", - "customer_details": { - "id": "cust_00000000000001", - "name": null, - "email": "gaurav.kumar@example.com", - "contact": "+919876543210", - "gstin": null, - "billing_address": null, - "shipping_address": null, - "customer_name": null, - "customer_email": "gaurav.kumar@example.com", - "customer_contact": "+919876543210" - }, - "order_id": "order_00000000000002", - "subscription_id": "sub_00000000000001", - "line_items": [ - { - "id": "li_00000000000003", - "item_id": null, - "ref_id": null, - "ref_type": null, - "name": "Monthly Plan", - "description": null, - "amount": 99900, - "unit_amount": 99900, - "gross_amount": 99900, - "tax_amount": 0, - "taxable_amount": 99900, - "net_amount": 99900, - "currency": "INR", - "type": "plan", - "tax_inclusive": false, - "hsn_code": null, - "sac_code": null, - "tax_rate": null, - "unit": null, - "quantity": 1, - "taxes": [] - } - ], - "payment_id": "pay_00000000000002", - "status": "paid", - "expire_by": null, - "issued_at": 1593344888, - "paid_at": 1593344889, - "cancelled_at": null, - "expired_at": null, - "sms_status": null, - "email_status": null, - "date": 1593344888, - "terms": null, - "partial_payment": false, - "gross_amount": 99900, - "tax_amount": 0, - "taxable_amount": 99900, - "amount": 99900, - "amount_paid": 99900, - "amount_due": 0, - "currency": "INR", - "currency_symbol": "₹", - "description": null, - "notes": [], - "comment": null, - "short_url": "https://rzp.io/i/Ys4feGqEp", - "view_less": true, - "billing_start": 1594405800, - "billing_end": 1597084200, - "type": "invoice", - "group_taxes_discounts": false, - "created_at": 1593344888, - "idempotency_key": null - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Delete offer linked to a subscription - -```php -$api->subscription->fetch($subscriptionId)->deleteOffer($offerId); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| subscriptionId* | string | The id of the subscription to offer need to be deleted | -| offerId* | string | The id of the offer linked to subscription | - -**Response:** -```json -{ - "id": "sub_I3GGEs7Xgmnozy", - "entity": "subscription", - "plan_id": "plan_HuXrfsI0ZZ3peu", - "customer_id": "cust_I3FToKbnExwDLu", - "status": "active", - "current_start": 1632914901, - "current_end": 1635445800, - "ended_at": null, - "quantity": 1, - "notes": [], - "charge_at": 1635445800, - "start_at": 1632914901, - "end_at": 1645986600, - "auth_attempts": 0, - "total_count": 6, - "paid_count": 1, - "customer_notify": true, - "created_at": 1632914246, - "expire_by": 1635532200, - "short_url": "https://rzp.io/i/SOvRWaYP81", - "has_scheduled_changes": false, - "change_scheduled_at": null, - "source": "dashboard", - "payment_method": "card", - "offer_id": null, - "remaining_count": 5 -} -``` -------------------------------------------------------------------------------------------------------- - -### Authentication Transaction - -Please refer this [doc](https://razorpay.com/docs/api/subscriptions/#authentication-transaction) for authentication of transaction - -------------------------------------------------------------------------------------------------------- - -### Payment verification - -```php -$api->utility->verifyPaymentSignature($options) -``` - -Please refer this [doc](https://razorpay.com/docs/api/subscriptions/#payment-verification) for payment verification - -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/subscriptions/#subscriptions)** diff --git a/assets/php/razorpay-php/documents/token.md b/assets/php/razorpay-php/documents/token.md deleted file mode 100644 index 35f62f1..0000000 --- a/assets/php/razorpay-php/documents/token.md +++ /dev/null @@ -1,390 +0,0 @@ -## Tokens - -### Fetch token by payment id -```php -$api->payment->fetch($paymentId); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| paymentId* | string | The id of the payment to be fetched | - -**Response:** -```json -{ - "id": "pay_FHfqtkRzWvxky4", - "entity": "payment", - "amount": 100, - "currency": "INR", - "status": "captured", - "order_id": "order_FHfnswDdfu96HQ", - "invoice_id": null, - "international": false, - "method": "card", - "amount_refunded": 0, - "refund_status": null, - "captured": true, - "description": null, - "card_id": "card_F0zoXUp4IPPGoI", - "bank": null, - "wallet": null, - "vpa": null, - "email": "gaurav.kumar@example.com", - "contact": "+919876543210", - "customer_id": "cust_DtHaBuooGHTuyZ", - "token_id": "token_FHfn3rIiM1Z8nr", - "notes": { - "note_key 1": "Beam me up Scotty", - "note_key 2": "Tea. Earl Gray. Hot." - }, - "fee": 0, - "tax": 0, - "error_code": null, - "error_description": null, - "error_source": null, - "error_step": null, - "error_reason": null, - "acquirer_data": { - "auth_code": "541898" - }, - "created_at": 1595449871 -} -``` - -------------------------------------------------------------------------------------------------------- - -### Fetch tokens by customer id - -```php -$api->customer->fetch($customerId)->tokens()->all(); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| customerId* | string | The id of the customer to be fetched | - -**Response:** -```json -{ - "entity":"collection", - "count":1, - "items":[ - { - "id":"token_HouA2OQR5Z2jTL", - "entity":"token", - "token":"2JPRk664pZHUWG", - "bank":null, - "wallet":null, - "method":"card", - "card":{ - "entity":"card", - "name":"Gaurav Kumar", - "last4":"8950", - "network":"Visa", - "type":"credit", - "issuer":"STCB", - "international":false, - "emi":false, - "sub_type":"consumer", - "expiry_month":12, - "expiry_year":2021, - "flows":{ - "otp":true, - "recurring":true - } - }, - "recurring":true, - "recurring_details":{ - "status":"confirmed", - "failure_reason":null - }, - "auth_type":null, - "mrn":null, - "used_at":1629779657, - "created_at":1629779657, - "expired_at":1640975399, - "dcc_enabled":false, - "billing_address":null - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch particular token -```php -$api->customer->fetch($customerId)->tokens()->fetch($tokenId); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| customerId* | string | The id of the customer to be fetched | -| tokenId* | string | The id of the token to be fetched | - -**Response:** -```json -{ - "id": "token_Hxe0skTXLeg9pF", - "entity": "token", - "token": "F85BgXnGVwcuqV", - "bank": null, - "wallet": null, - "method": "card", - "card": { - "entity": "card", - "name": "ankit", - "last4": "5449", - "network": "MasterCard", - "type": "credit", - "issuer": "UTIB", - "international": false, - "emi": false, - "sub_type": "consumer", - "expiry_month": 12, - "expiry_year": 2024, - "flows": { - "recurring": true - } - }, - "recurring": true, - "auth_type": null, - "mrn": null, - "used_at": 1632976165, - "created_at": 1631687852, - "expired_at": 1634215992, - "dcc_enabled": false -} -``` -------------------------------------------------------------------------------------------------------- - -### Delete token - -```php -$api->customer->fetch($customerId)->tokens()->delete($tokenId); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| customerId* | string | The id of the customer to be fetched | -| tokenId* | string | The id of the token to be fetched | - -**Response:** -```json -{ - "deleted": true -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch VPA tokens of a customer id - -```php -$api->customer->fetch($customerId)->tokens()->all(); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| customerId* | string | The id of the customer to be fetched | - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "token_EeroOjvOvorT5L", - "entity": "token", - "token": "4ydxm47GQjrIEx", - "bank": null, - "wallet": null, - "method": "card", - "card": { - "entity": "card", - "name": "Gaurav Kumar", - "last4": "8430", - "network": "Visa", - "type": "credit", - "issuer": "HDFC", - "international": false, - "emi": true, - "expiry_month": 12, - "expiry_year": 2022, - "flows": { - "otp": true, - "recurring": true - } - }, - "vpa": null, - "recurring": false, - "auth_type": null, - "mrn": null, - "used_at": 1586976724, - "created_at": 1586976724, - "expired_at": 1672511399, - "dcc_enabled": false - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Create a token - -```php - -$api->token->create(array( - "customer_id" => "cust_1Aa00000000001", - "method" => "card", - "card" => array( - "number" => "4111111111111111", - "cvv" => "123", - "expiry_month" => "12", - "expiry_year" => "21", - "name" => "Gaurav Kumar" - ), - "authentication" => array( - "provider" => "razorpay", - "provider_reference_id" => "pay_123wkejnsakd", - "authentication_reference_number" => "100222021120200000000742753928" - ), - "notes" => array() -)); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| customerId* | string | The id of the customer to be fetched | -| method* | string | The type of object that needs to be tokenised. Currently, `card` is the only supported value. | -| card* | object | All keys listed [here](https://razorpay.com/docs/partners/aggregators/partner-auth/token-sharing/#create-token-on-behalf-of-a-sub-merchant) are supported -| -| authentication | object | All keys listed [here](https://razorpay.com/docs/partners/aggregators/partner-auth/token-sharing/#create-token-on-behalf-of-a-sub-merchant) are supported | - -**Response:** -```json -{ - "id": "token_IJmat4GwYATMtx", - "entity": "token", - "method": "card", - "card": { - "last4": "1111", - "network": "Visa", - "type": "credit", - "issuer": "IDFB", - "international": false, - "emi": false, - "sub_type": "consumer" - }, - "customer": { - "id": "cust_1Aa00000000001", - "entity": "customer", - "name": "Bob", - "email": "bob@gmail.com", - "contact": "9000090000", - "gstin": null, - "notes": { - "notes_key_1": "Tea, Earl Grey, Hot", - "notes_key_2": "Tea, Earl Grey… decaf." - }, - "created_at": 1658390470 - }, - "expired_at": 1701368999, - "customer_id": "cust_1Aa00000000001", - "compliant_with_tokenisation_guidelines": true, - "status": "active", - "notes": [] -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch token -```php -$api->token->fetch(array("id" => "token_4lsdksD31GaZ09")); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|-------------|---------------------------------------------| -| id* | string | The unique identifier of a sub-merchant account generated by Razorpay. | - -**Response:** -```json -{ - "id": "token_4lsdksD31GaZ09", - "entity": "token", - "customer_id": "cust_1Aa00000000001", - "method": "card", - "card": { - "last4": "3335", - "network": "Visa", - "type": "debit", - "issuer": "HDFC", - "international": false, - "emi": true, - "sub_type": "consumer", - "token_iin": "453335" - }, - "compliant_with_tokenisation_guidelines": true, - "expired_at": 1748716199, - "status": "active", - "status_reason": null, - "notes": [] -} -``` -------------------------------------------------------------------------------------------------------- -### Delete a token -```php -$api->token->delete(array("id" => "token_4lsdksD31GaZ09")); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|-------------|---------------------------------------------| -| id* | string | The unique identifier of a sub-merchant account generated by Razorpay. | - -**Response:** -```json -[] -``` -------------------------------------------------------------------------------------------------------- - -### Process a Payment on another PA/PG with Token -```php -$api->token->processPaymentOnAlternatePAorPG(array("id"=>"spt_4lsdksD31GaZ09")); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|-------------|---------------------------------------------| -| id* | string | The unique identifier of the token whose details are to be fetched. | - -**Response:** -```json -{ - "card": { - "number": "4016981500100002", - "expiry_month" : "12", - "expiry_year" : 2021 - } -} -``` -------------------------------------------------------------------------------------------------------- -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/recurring-payments/upi/tokens/)** diff --git a/assets/php/razorpay-php/documents/transfer.md b/assets/php/razorpay-php/documents/transfer.md deleted file mode 100644 index 16e4b97..0000000 --- a/assets/php/razorpay-php/documents/transfer.md +++ /dev/null @@ -1,755 +0,0 @@ -## Transfers - -### Create transfers from payment - -```php -$api->payment->fetch($paymentId)->transfer(array('transfers' => array(array('account' => 'acc_I0QRP7PpvaHhpB','amount' => 100,'currency' => 'INR','notes' => array ('name' => 'Gaurav Kumar','roll_no' => 'IEC2011025',),'linked_account_notes' => array ('roll_no'),'on_hold' => true,'on_hold_until' => 1671222870)))); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| paymentId* | string | The id of the payment to be fetched | -| transfers | array | All parameters listed [here](https://razorpay.com/docs/api/route/#create-transfers-from-payments) are supported | - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "trf_Jhf4Ak94xAcyeS", - "entity": "transfer", - "status": "pending", - "source": "pay_I7watngocuEY4P", - "recipient": "acc_HjVXbtpSCIxENR", - "amount": 100, - "currency": "INR", - "amount_reversed": 0, - "notes": { - "name": "Gaurav Kumar", - "roll_no": "IEC2011025" - }, - "linked_account_notes": [ - "roll_no" - ], - "on_hold": true, - "on_hold_until": 1671222870, - "recipient_settlement_id": null, - "created_at": 1655272292, - "processed_at": null, - "error": { - "code": null, - "description": null, - "reason": null, - "field": null, - "step": null, - "id": "trf_Jhf4Ak94xAcyeS", - "source": null, - "metadata": null - } - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Create transfers from order - -```php -$api->order->create(array('amount' => 2000,'currency' => 'INR','transfers' => array(array('account' => 'acc_CPRsN1LkFccllA','amount' => 1000,'currency' => 'INR','notes' => array('branch' => 'Acme Corp Bangalore North','name' => 'Gaurav Kumar'),'linked_account_notes' => array('branch'),'on_hold' => 1,'on_hold_until' => 1671222870),array('account' => 'acc_CNo3jSI8OkFJJJ','amount' => 1000,'currency' => 'INR','notes' => array('branch' => 'Acme Corp Bangalore South','name' => 'Saurav Kumar'),'linked_account_notes' => array('branch'),'on_hold' => 0)))); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| amount* | integer | The transaction amount, in paise | -| currency* | string | The currency of the payment (defaults to INR) | -| receipt | string | A unique identifier provided by you for your internal reference. | -| transfers | array | All parameters listed [here](https://razorpay.com/docs/api/route/#create-transfers-from-orders) are supported | - -**Response:** -```json -{ - "id": "order_Jhf1Sn06my7AUb", - "entity": "order", - "amount": 2000, - "amount_paid": 0, - "amount_due": 2000, - "currency": "INR", - "receipt": null, - "offer_id": "offer_JGQvQtvJmVDRIA", - "offers": [ - "offer_JGQvQtvJmVDRIA" - ], - "status": "created", - "attempts": 0, - "notes": [], - "created_at": 1655272138, - "transfers": [ - { - "id": "trf_Jhf1SpAYVIeRoP", - "entity": "transfer", - "status": "created", - "source": "order_Jhf1Sn06my7AUb", - "recipient": "acc_HjVXbtpSCIxENR", - "amount": 1000, - "currency": "INR", - "amount_reversed": 0, - "notes": { - "branch": "Acme Corp Bangalore North", - "name": "Gaurav Kumar" - }, - "linked_account_notes": [ - "branch" - ], - "on_hold": true, - "on_hold_until": 1671222870, - "recipient_settlement_id": null, - "created_at": 1655272138, - "processed_at": null, - "error": { - "code": null, - "description": null, - "reason": null, - "field": null, - "step": null, - "id": "trf_Jhf1SpAYVIeRoP", - "source": null, - "metadata": null - } - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Direct transfers - -```php -$api->transfer->create(array('account' => $accountId, 'amount' => 500, 'currency' => 'INR')); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| accountId* | string | The id of the account to be fetched | -| amount* | integer | The amount to be captured (should be equal to the authorized amount, in paise) | -| currency* | string | The currency of the payment (defaults to INR) | - -**Response:** -```json -{ - "id": "trf_JhdmwXgQpEk38N", - "entity": "transfer", - "status": "processed", - "source": "acc_HZbJUcl6DBDLIN", - "recipient": "acc_HjVXbtpSCIxENR", - "amount": 100, - "currency": "INR", - "amount_reversed": 0, - "fees": 1, - "tax": 0, - "notes": [], - "linked_account_notes": [], - "on_hold": false, - "on_hold_until": null, - "recipient_settlement_id": null, - "created_at": 1655267791, - "processed_at": 1655267792, - "error": { - "code": null, - "description": null, - "reason": null, - "field": null, - "step": null, - "id": "trf_JhdmwXgQpEk38N", - "source": null, - "metadata": null - } -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch transfer for a payment - -```php -$api->payment->fetch($paymentId)->transfers(); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| paymentId* | string | The id of the payment to be fetched | - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "trf_JGQjgcy8zHFq7e", - "entity": "transfer", - "status": "partially_reversed", - "source": "order_JGQjgaUikLJo8n", - "recipient": "acc_HalyQGZh9ZyiGg", - "amount": 500, - "currency": "INR", - "amount_reversed": 100, - "fees": 1, - "tax": 0, - "notes": { - "branch": "Acme Corp Bangalore South", - "name": "Saurav Kumar" - }, - "linked_account_notes": [ - "branch" - ], - "on_hold": true, - "on_hold_until": 1679691505, - "settlement_status": "on_hold", - "recipient_settlement_id": null, - "created_at": 1649326643, - "processed_at": 1649326701, - "error": { - "code": null, - "description": null, - "reason": null, - "field": null, - "step": null, - "id": "trf_JGQjgcy8zHFq7e", - "source": null, - "metadata": null - } - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch transfer for an order - -```php -$api->order->fetch($orderId)->transfers(array('expand[]'=>'transfers')); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| orderId* | string | The id of the order to be fetched | -| expand* | string | Supported value is `transfer` | - -**Response:** -```json -{ - "id": "order_JfOO8JYmAtYRL0", - "entity": "order", - "amount": 2000, - "amount_paid": 0, - "amount_due": 2000, - "currency": "INR", - "receipt": null, - "offer_id": "offer_JGQvQtvJmVDRIA", - "offers": [ - "offer_JGQvQtvJmVDRIA" - ], - "status": "created", - "attempts": 0, - "notes": [], - "created_at": 1654776878, - "transfers": { - "entity": "collection", - "count": 2, - "items": [ - { - "id": "trf_JfOO8LGAPdwky4", - "entity": "transfer", - "status": "created", - "source": "order_JfOO8JYmAtYRL0", - "recipient": "acc_HjVXbtpSCIxENR", - "amount": 1000, - "currency": "INR", - "amount_reversed": 0, - "fees": 0, - "tax": null, - "notes": { - "branch": "Acme Corp Bangalore North", - "name": "Gaurav Kumar" - }, - "linked_account_notes": [ - "branch" - ], - "on_hold": true, - "on_hold_until": 1671222870, - "settlement_status": null, - "recipient_settlement_id": null, - "created_at": 1654776878, - "processed_at": null, - "error": { - "code": null, - "description": null, - "reason": null, - "field": null, - "step": null, - "id": "trf_JfOO8LGAPdwky4", - "source": null, - "metadata": null - } - }, - { - "id": "trf_JfOO8M4p6tQZ6g", - "entity": "transfer", - "status": "created", - "source": "order_JfOO8JYmAtYRL0", - "recipient": "acc_HalyQGZh9ZyiGg", - "amount": 1000, - "currency": "INR", - "amount_reversed": 0, - "fees": 0, - "tax": null, - "notes": { - "branch": "Acme Corp Bangalore South", - "name": "Saurav Kumar" - }, - "linked_account_notes": [ - "branch" - ], - "on_hold": false, - "on_hold_until": null, - "settlement_status": null, - "recipient_settlement_id": null, - "created_at": 1654776878, - "processed_at": null, - "error": { - "code": null, - "description": null, - "reason": null, - "field": null, - "step": null, - "id": "trf_JfOO8M4p6tQZ6g", - "source": null, - "metadata": null - } - } - ] - } -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch transfer - -```php -$api->transfer->fetch($transferId); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| transferId* | string | The id of the transfer to be fetched | - -**Response:** -```json -{ - "id": "trf_IJOI2DHWQYwqU3", - "entity": "transfer", - "status": "created", - "source": "order_IJOI2CD6CNIywP", - "recipient": "acc_HjVXbtpSCIxENR", - "amount": 100, - "currency": "INR", - "amount_reversed": 0, - "fees": 0, - "tax": null, - "notes": { - "branch": "Acme Corp Bangalore North", - "name": "Gaurav Kumar" - }, - "linked_account_notes": [ - "branch" - ], - "on_hold": true, - "on_hold_until": 1671222870, - "settlement_status": null, - "recipient_settlement_id": null, - "created_at": 1636435963, - "processed_at": null, - "error": { - "code": null, - "description": null, - "reason": null, - "field": null, - "step": null, - "id": "trf_IJOI2DHWQYwqU3", - "source": null, - "metadata": null - } -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch transfers for a settlement - -```php -$api->transfer->all(array('recipient_settlement_id'=> $recipientSettlementId)); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| recipientSettlementId* | string | The recipient settlement id obtained from the settlement.processed webhook payload. | - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "trf_HWjmkReRGPhguR", - "entity": "transfer", - "status": "processed", - "source": "pay_HWjY9DZSMsbm5E", - "recipient": "acc_HWjl1kqobJzf4i", - "amount": 1000, - "currency": "INR", - "amount_reversed": 0, - "fees": 3, - "tax": 0, - "notes": [], - "linked_account_notes": [], - "on_hold": false, - "on_hold_until": null, - "settlement_status": "settled", - "recipient_settlement_id": "setl_HYIIk3H0J4PYdX", - "created_at": 1625812996, - "processed_at": 1625812996, - "error": { - "code": null, - "description": null, - "reason": null, - "field": null, - "step": null, - "id": "trf_HWjmkReRGPhguR", - "source": null, - "metadata": null - } - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch settlement details - -```php -$api->transfer->all(array('expand[]'=> 'recipient_settlement')); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| expand* | string | Supported value is `recipient_settlement` | - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "trf_JhdmwXgQpEk38N", - "entity": "transfer", - "status": "processed", - "source": "acc_HZbJUcl6DBDLIN", - "recipient": "acc_HjVXbtpSCIxENR", - "amount": 100, - "currency": "INR", - "amount_reversed": 0, - "fees": 1, - "tax": 0, - "notes": [], - "linked_account_notes": [], - "on_hold": false, - "on_hold_until": null, - "settlement_status": null, - "recipient_settlement_id": null, - "recipient_settlement": null, - "created_at": 1655267791, - "processed_at": 1655267792, - "error": { - "code": null, - "description": null, - "reason": null, - "field": null, - "step": null, - "id": "trf_JhdmwXgQpEk38N", - "source": null, - "metadata": null - } - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Refund payments and reverse transfer from a linked account - -```php -$api->payment->fetch("pay_JsPSazUg9UnOX2")->refund(array('amount'=> '100','reverse_all'=>'1')); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| paymentId* | string | The id of the payment to be fetched | -| amount* | integer | The amount to be captured (should be equal to the authorized amount, in paise) | -| reverse_all | boolean | Reverses transfer made to a linked account. Possible values:
* `1` - Reverses transfer made to a linked account.
* `0` - Does not reverse transfer made to a linked account.| - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "pay_JHAe1Zat55GbZB", - "entity": "payment", - "amount": 5000, - "currency": "INR", - "status": "captured", - "order_id": "order_IluGWxBm9U8zJ8", - "invoice_id": null, - "international": false, - "method": "netbanking", - "amount_refunded": 0, - "refund_status": null, - "captured": true, - "description": "Test Transaction", - "card_id": null, - "bank": "KKBK", - "wallet": null, - "vpa": null, - "email": "gaurav.kumar@example.com", - "contact": "+919999999999", - "notes": { - "address": "Razorpay Corporate Office" - }, - "fee": 118, - "tax": 18, - "error_code": null, - "error_description": null, - "error_source": null, - "error_step": null, - "error_reason": null, - "acquirer_data": { - "bank_transaction_id": "7003347" - }, - "created_at": 1649488316 - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch payments of a linked account - -```php - -$api->setHeader('X-Razorpay-Account', 'acc_IRQWUleX4BqvYn'); - -$api->payment->all(); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| X-Razorpay-Account | string | The linked account id to fetch the payments received by linked account | - -**Response:** -```json -{ - "entity": "collection", - "count": 2, - "items": [ - { - "id": "pay_E9uth3WhYbh9QV", - "entity": "payment", - "amount": 100, - "currency": "INR", - "status": "captured", - "order_id": null, - "invoice_id": null, - "international": null, - "method": "transfer", - "amount_refunded": 0, - "refund_status": null, - "captured": true, - "description": null, - "card_id": null, - "bank": null, - "wallet": null, - "vpa": null, - "email": "", - "contact": null, - "notes": [], - "fee": 0, - "tax": 0, - "error_code": null, - "error_description": null, - "created_at": 1580219046 - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Reverse transfers from all linked accounts -```php -$api->transfer->fetch($transferId)->reverse(array('amount'=>'100')); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| transferId* | string | The id of the transfer to be fetched | -| amount | integer | The amount to be captured (should be equal to the authorized amount, in paise) | - -**Response:** -```json -{ - "id": "rfnd_JJFNlNXPHY640A", - "entity": "refund", - "amount": 100, - "currency": "INR", - "payment_id": "pay_JJCqynf4fQS0N1", - "notes": [], - "receipt": null, - "acquirer_data": { - "arn": null - }, - "created_at": 1649941680, - "batch_id": null, - "status": "processed", - "speed_processed": "normal", - "speed_requested": "normal" -} -``` -------------------------------------------------------------------------------------------------------- - -### Hold settlements for transfers -```php -$api->payment->fetch($paymentId)->transfer(array('transfers' => array(array('account' => 'acc_I0QRP7PpvaHhpB','amount' => 100,'currency' => 'INR','on_hold' => true)))); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| paymentId* | string | The id of the payment to be fetched | -| transfers | array | All parameters listed [here](https://razorpay.com/docs/api/route/#hold-settlements-for-transfers) are supported | - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "trf_JhemwjNekar9Za", - "entity": "transfer", - "status": "pending", - "source": "pay_I7watngocuEY4P", - "recipient": "acc_HjVXbtpSCIxENR", - "amount": 100, - "currency": "INR", - "amount_reversed": 0, - "notes": [], - "linked_account_notes": [], - "on_hold": true, - "on_hold_until": null, - "recipient_settlement_id": null, - "created_at": 1655271313, - "processed_at": null, - "error": { - "code": null, - "description": null, - "reason": null, - "field": null, - "step": null, - "id": "trf_JhemwjNekar9Za", - "source": null, - "metadata": null - } - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Modify settlement hold for transfers -```php -$api->transfer->fetch($transferId)->edit(array('on_hold' => '1', 'on_hold_until' => '1679691505')); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| transferId* | string | The id of the transfer to be fetched | -| on_hold* | boolean | Possible values is `0` or `1` | -| on_hold_until | integer | Timestamp, in Unix, that indicates until when the settlement of the transfer must be put on hold | - -**Response:** -```json -{ - "id": "trf_JOmyyZ7lsxDzwF", - "entity": "transfer", - "status": "reversed", - "source": "acc_HZbJUcl6DBDLIN", - "recipient": "acc_HjVXbtpSCIxENR", - "amount": 100, - "currency": "INR", - "amount_reversed": 100, - "fees": 1, - "tax": 0, - "notes": [], - "linked_account_notes": [], - "on_hold": true, - "on_hold_until": null, - "settlement_status": null, - "recipient_settlement_id": null, - "created_at": 1651151707, - "processed_at": 1651151708, - "error": { - "code": null, - "description": null, - "reason": null, - "field": null, - "step": null, - "id": "trf_JOmyyZ7lsxDzwF", - "source": null, - "metadata": null - } -} -``` - -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/route/#transfers/)** diff --git a/assets/php/razorpay-php/documents/upi.md b/assets/php/razorpay-php/documents/upi.md deleted file mode 100644 index bacfdeb..0000000 --- a/assets/php/razorpay-php/documents/upi.md +++ /dev/null @@ -1,460 +0,0 @@ -## UPI - -### Create customer -```php -$api->customer->create(array('name' => 'Razorpay User', 'email' => 'customer@razorpay.com','contact'=>'9123456780', 'fail_existing'=> '0', 'notes'=> array('notes_key_1'=> 'Tea, Earl Grey, Hot','notes_key_2'=> 'Tea, Earl Grey… decaf'))); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| name* | string | Name of the customer | -| email | string | Email of the customer | -| fail_existing | string | If a customer with the same details already exists, the request throws an exception by default. Possible value is `0` or `1`| -| contact | string | Contact number of the customer | -| notes | array | A key-value pair | - -**Response:** -```json -{ - "id": "cust_1Aa00000000003", - "entity": "customer", - "name": "Gaurav Kumar", - "email": "Gaurav.Kumar@example.com", - "contact": "9000000000", - "gstin": null, - "notes": { - "notes_key_1": "Tea, Earl Grey, Hot", - "notes_key_2": "Tea, Earl Grey… decaf." - }, - "created_at": 1582033731 -} -``` - -------------------------------------------------------------------------------------------------------- - -### Create order - -```php -$api->order->create(array('amount' => 0,'currency' => 'INR','method' => 'upi','customer_id' => 'cust_4xbQrmEoA5WJ01', 'token' => array('max_amount' => 200000, 'expire_at' => 2709971120, 'frequency' => 'monthly'),'receipt' => 'Receipt No. 1' ,'notes' => array('notes_key_1' => 'Beam me up Scotty','notes_key_2' => 'Engage'))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| amount* | integer | Amount of the order to be paid | -| currency* | string | Currency of the order. Currently only `INR` is supported. | -| method* | string | The authorization method. In this case the value will be `upi` | -| receipt | string | Your system order reference id. | -| notes | array | A key-value pair | -| token* | array | All parameters listed [here](https://razorpay.com/docs/api/payments/recurring-payments/upi/create-authorization-transaction/#112-create-an-order) are supported | - -**Response:** -```json -{ - "id": "order_1Aa00000000002", - "entity": "order", - "amount": 100, - "amount_paid": 0, - "amount_due": 100, - "currency": "INR", - "receipt": "Receipt No. 1", - "offer_id": null, - "status": "created", - "attempts": 0, - "notes": { - "notes_key_1": "Tea, Earl Grey, Hot", - "notes_key_2": "Tea, Earl Grey… decaf." - }, - "created_at": 1565172642 -} -``` -------------------------------------------------------------------------------------------------------- - -### Create an Authorization Payment - -Please refer this [doc](https://razorpay.com/docs/api/recurring-payments/upi/authorization-transaction/#113-create-an-authorization-payment) for authorization payment - -------------------------------------------------------------------------------------------------------- - -### Create registration link - -```php -$api->subscription->createSubscriptionRegistration(array('customer'=>array('name'=>'Gaurav Kumar','email'=>'gaurav.kumar@example.com','contact'=>'9123456780'),'type'=>'link','amount'=>100,'currency'=>'INR','description'=>'Registration Link for Gaurav Kumar','subscription_registration'=>array('method'=>'upi', 'max_amount'=>'500', 'expire_at'=>'1634215992', 'frequency'=>'monthly'),'receipt'=>'Receipt No. 5','email_notify'=>1,'sms_notify'=>1,'expire_by'=>1634215992,'notes' => array('note_key 1' => 'Beam me up Scotty','note_key 2' => 'Tea. Earl Gray. Hot.'))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| customer | array | All parameters listed [here](https://razorpay.com/docs/api/payments/recurring-payments/upi/create-authorization-transaction/#121-create-a-registration-link) are supported | -| type* | string | In this case, the value is `link`. | -| currency* | string | The 3-letter ISO currency code for the payment. Currently, only `INR` is supported. | -| amount* | integer | The payment amount in the smallest currency sub-unit. | -| description* | string | A description that appears on the hosted page. For example, `12:30 p.m. Thali meals (Gaurav Kumar`). | -| subscription_registration | array | All parameters listed [here](https://razorpay.com/docs/api/payments/recurring-payments/upi/create-authorization-transaction/#121-create-a-registration-link) are supported | -| sms_notify | boolean | SMS notifications are to be sent by Razorpay (default : 1) | -| email_notify | boolean | Email notifications are to be sent by Razorpay (default : 1) | -| expire_by | integer | The timestamp, in Unix format, till when the customer can make the authorization payment. | -| notes | array | A key-value pair | - -**Response:** -```json -{ - "id": "inv_FHr1ekX0r2VCVK", - "entity": "invoice", - "receipt": "Receipt No. 23", - "invoice_number": "Receipt No. 23", - "customer_id": "cust_BMB3EwbqnqZ2EI", - "customer_details": { - "id": "cust_BMB3EwbqnqZ2EI", - "name": "Gaurav Kumar", - "email": "gaurav.kumar@example.com", - "contact": "9123456780", - "gstin": null, - "billing_address": null, - "shipping_address": null, - "customer_name": "Gaurav Kumar", - "customer_email": "gaurav.kumar@example.com", - "customer_contact": "9123456780" - }, - "order_id": "order_FHr1ehR3nmNeXo", - "line_items": [], - "payment_id": null, - "status": "issued", - "expire_by": 4102444799, - "issued_at": 1595489219, - "paid_at": null, - "cancelled_at": null, - "expired_at": null, - "sms_status": "pending", - "email_status": "pending", - "date": 1595489219, - "terms": null, - "partial_payment": false, - "gross_amount": 100, - "tax_amount": 0, - "taxable_amount": 0, - "amount": 100, - "amount_paid": 0, - "amount_due": 100, - "currency": "INR", - "currency_symbol": "₹", - "description": "Registration Link for Gaurav Kumar", - "notes": { - "note_key 1": "Beam me up Scotty", - "note_key 2": "Tea. Earl Gray. Hot." - }, - "comment": null, - "short_url": "https://rzp.io/i/ak1WxDB", - "view_less": true, - "billing_start": null, - "billing_end": null, - "type": "link", - "group_taxes_discounts": false, - "created_at": 1595489219, - "idempotency_key": null -} -``` -------------------------------------------------------------------------------------------------------- - -### Send/Resend notifications - -```php -$api->invoice->fetch($invoiceId)->notifyBy($medium); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| invoiceId* | string | The id of the invoice to be notified | -| medium* | string | `sms`/`email`, Medium through which notification should be sent. | - -**Response:** -```json -{ - "success": true -} -``` -------------------------------------------------------------------------------------------------------- - -### Cancel a registration link - -```php -$api->invoice->fetch($invoiceId)->cancel(); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| invoiceId* | string | The id of the invoice to be cancelled | - -**Response:** -```json -{ - "amount": 100, - "amount_due": 100, - "amount_paid": 0, - "auth_link_status": "cancelled", - "billing_end": null, - "billing_start": null, - "cancelled_at": 1655110334, - "comment": null, - "created_at": 1655110315, - "currency": "INR", - "currency_symbol": "₹", - "customer_details": { - "billing_address": null, - "contact": "9123456780", - "customer_contact": "9123456780", - "customer_email": "gaurav.kumar@example.com", - "customer_name": "Gaurav Kumar", - "email": "gaurav.kumar@example.com", - "gstin": null, - "id": "cust_DzYEzfJLV03rkp", - "name": "Gaurav Kumar", - "shipping_address": null - }, - "customer_id": "cust_DzYEzfJLV03rkp", - "date": 1655110315, - "description": "Registration Link for Gaurav Kumar", - "email_status": "sent", - "entity": "invoice", - "expire_by": 1657699317, - "expired_at": null, - "first_payment_min_amount": null, - "gross_amount": 100, - "group_taxes_discounts": false, - "id": "inv_Jgv4UErmFzfrA0", - "idempotency_key": null, - "invoice_number": "Receipt No. #51", - "issued_at": 1655110315, - "line_items": [], - "notes": { - "note_key 1": "Beam me up Scotty", - "note_key 2": "Tea. Earl Gray. Hot." - }, - "order_id": "order_Jgv4UAyqlixvOB", - "paid_at": null, - "partial_payment": false, - "payment_id": null, - "receipt": "Receipt No. #51", - "reminder_status": null, - "short_url": "https://rzp.io/i/VuAC1WG", - "sms_status": "sent", - "status": "cancelled", - "subscription_status": null, - "supply_state_code": null, - "tax_amount": 0, - "taxable_amount": 0, - "terms": null, - "type": "link", - "user_id": null, - "view_less": true -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch token by payment ID - -```php -$api->payment->fetch($paymentId); -``` - -**Parameters:** - -| Name | Type | Description | -|------------|--------|-----------------------------------| -| paymentId* | string | Id of the payment to be retrieved | - -**Response:** -```json -{ - "id": "pay_FHfAzEJ51k8NLj", - "entity": "payment", - "amount": 100, - "currency": "INR", - "status": "captured", - "order_id": "order_FHfANdTUYeP8lb", - "invoice_id": null, - "international": false, - "method": "upi", - "amount_refunded": 0, - "refund_status": null, - "captured": true, - "description": null, - "card_id": null, - "bank": null, - "wallet": null, - "vpa": "gaurav.kumar@upi", - "email": "gaurav.kumar@example.com", - "contact": "+919876543210", - "customer_id": "cust_DtHaBuooGHTuyZ", - "token_id": "token_FHfAzGzREc1ug6", - "notes": { - "note_key 1": "Beam me up Scotty", - "note_key 2": "Tea. Earl Gray. Hot." - }, - "fee": 0, - "tax": 0, - "error_code": null, - "error_description": null, - "error_source": null, - "error_step": null, - "error_reason": null, - "acquirer_data": { - "rrn": "854977234911", - "upi_transaction_id": "D0BED5A062ECDB3E9B3A1071C96BB273" - }, - "created_at": 1595447490 -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch tokens by customer ID - -```php -$api->customer->fetch($customerId)->tokens()->all(); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| customerId* | string | The id of the customer to be fetched | - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "token_FHfAzGzREc1ug6", - "entity": "token", - "token": "9KHsdPaCELeQ0t", - "bank": null, - "wallet": null, - "method": "upi", - "vpa": { - "username": "gaurav.kumar", - "handle": "upi", - "name": null - }, - "recurring": true, - "recurring_details": { - "status": "confirmed", - "failure_reason": null - }, - "auth_type": null, - "mrn": null, - "used_at": 1595447490, - "created_at": 1595447490, - "start_time": 1595447455, - "dcc_enabled": false - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Delete token - -```php -$api->customer->fetch($customerId)->tokens()->delete($tokenId); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| customerId* | string | The id of the customer to be fetched | -| tokenId* | string | The id of the token to be fetched | - -**Response:** -```json -{ - "deleted": true -} -``` -------------------------------------------------------------------------------------------------------- - -### Create an order to charge the customer - -```php -$api->order->create(array('amount' => 1000,'currency' => 'INR','payment_capture' => true,'receipt' => 'Receipt No. 1','notes'=> array('notes_key_1' => 'Tea, Earl Grey, Hot', 'notes_key_2' => 'Tea, Earl Grey… decaf.'))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| amount* | integer | Amount of the order to be paid | -| currency* | string | Currency of the order. Currently only `INR` is supported. | -| receipt | string | Your system order reference id. | -| notes | array | A key-value pair | -| payment_capture | boolean | Indicates whether payment status should be changed to captured automatically or not. Possible values: true - Payments are captured automatically. false - Payments are not captured automatically. | - -**Response:** -```json -{ - "id":"order_1Aa00000000002", - "entity":"order", - "amount":1000, - "amount_paid":0, - "amount_due":1000, - "currency":"INR", - "receipt":"Receipt No. 1", - "offer_id":null, - "status":"created", - "attempts":0, - "notes":{ - "notes_key_1":"Tea, Earl Grey, Hot", - "notes_key_2":"Tea, Earl Grey… decaf." - }, - "created_at":1579782776 -} -``` -------------------------------------------------------------------------------------------------------- - -### Create a recurring payment - -```php -$api->payment->createRecurring(array('email'=>'gaurav.kumar@example.com','contact'=>'9123456789','amount'=>100,'currency'=>'INR','order_id'=>'order_1Aa00000000002','customer_id'=>'cust_1Aa00000000001','token'=>'token_1Aa00000000001','recurring'=>'1','description'=>'Creating recurring payment for Gaurav Kumar', 'notes'=> array('note_key 1' => 'Beam me up Scotty', 'note_key 2' => 'Tea. Earl Gray. Hot.'))); -``` - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| email* | string | The customer's email address. | -| contact* | string | The customer's phone number. | -| amount* | integer | The amount you want to charge your customer. This should be the same as the amount in the order. | -| currency* | string | The 3-letter ISO currency code for the payment. Currently, only `INR` is supported. | -| order_id* | string | The unique identifier of the order created. | -| customer_id* | string | The `customer_id` for the customer you want to charge. | -| token* | string | The `token_id` generated when the customer successfully completes the authorization payment. Different payment instruments for the same customer have different `token_id`.| -| recurring* | string | Determines if recurring payment is enabled or not. Possible values:
* `1` - Recurring is enabled.* `0` - Recurring is not enabled.| -| description | string | A user-entered description for the payment.| -| notes | array | Key-value pair that can be used to store additional information about the entity. Maximum 15 key-value pairs, 256 characters (maximum) each. | - -**Response:** -```json -{ - "razorpay_payment_id" : "pay_1Aa00000000001", - "razorpay_order_id" : "order_1Aa00000000001", - "razorpay_signature" : "9ef4dffbfd84f1318f6739a3ce19f9d85851857ae648f114332d8401e0949a3d" -} -``` -------------------------------------------------------------------------------------------------------- - - - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/recurring-payments/upi/authorization-transaction/)** diff --git a/assets/php/razorpay-php/documents/virtualaccount.md b/assets/php/razorpay-php/documents/virtualaccount.md deleted file mode 100644 index c2400a9..0000000 --- a/assets/php/razorpay-php/documents/virtualaccount.md +++ /dev/null @@ -1,509 +0,0 @@ -## Virtual account - -### Create a virtual account -```php -$api->virtualAccount->create(array('receivers' => array('types' => array('bank_account')),'description' => 'Virtual Account created for Raftar Soft','customer_id' => 'cust_CaVDm8eDRSXYME','close_by' => 1681615838,'notes' => array('project_name' => 'Banking Software'))); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| receivers* | array | Array that defines what receivers are available for this Virtual Account | -| description | string | A brief description of the virtual account. | -| customer_id | string | Unique identifier of the customer to whom the virtual account must be tagged. | -| close_by | integer | UNIX timestamp at which the virtual account is scheduled to be automatically closed. | -| notes | integer | Any custom notes you might want to add to the virtual account can be entered here. | - -**Response:** -```json -{ - "id":"va_DlGmm7jInLudH9", - "name":"Acme Corp", - "entity":"virtual_account", - "status":"active", - "description":"Virtual Account created for Raftar Soft", - "amount_expected":null, - "notes":{ - "project_name":"Banking Software" - }, - "amount_paid":0, - "customer_id":"cust_CaVDm8eDRSXYME", - "receivers":[ - { - "id":"ba_DlGmm9mSj8fjRM", - "entity":"bank_account", - "ifsc":"RATN0VAAPIS", - "bank_name": "RBL Bank", - "name":"Acme Corp", - "notes":[], - "account_number":"2223330099089860" - } - ], - "close_by":1681615838, - "closed_at":null, - "created_at":1574837626 -} -``` - -------------------------------------------------------------------------------------------------------- - -### Create a virtual account with TPV -```php -$api->virtualAccount->create(array('receivers' => array('types'=> array('bank_account')),'allowed_payers' => array(array('type'=>'bank_account','bank_account'=>array('ifsc'=>'RATN0VAAPIS','account_number'=>'2223330027558515'))),'description' => 'Virtual Account created for Raftar Soft','customer_id' => 'cust_HssUOFiOd2b1TJ', 'notes' => array('project_name' => 'Banking Software'))); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| receivers* | array | Array that defines what receivers are available for this Virtual Account | -| allowed_payers* | array | All parameters listed [here](https://razorpay.com/docs/api/smart-collect-tpv/#create-virtual-account) are supported - -**Response:** -```json -{ - "id":"va_DlGmm7jInLudH9", - "name":"Acme Corp", - "entity":"virtual_account", - "status":"active", - "description":"Virtual Account created for Raftar Soft", - "amount_expected":null, - "notes":{ - "project_name":"Banking Software" - }, - "amount_paid":0, - "customer_id":"cust_CaVDm8eDRSXYME", - "receivers":[ - { - "id":"ba_DlGmm9mSj8fjRM", - "entity":"bank_account", - "ifsc":"RATN0VAAPIS", - "bank_name": "RBL Bank", - "name":"Acme Corp", - "notes":[], - "account_number":"2223330099089860" - } - ], - "allowed_payers": [ - { - "type": "bank_account", - "id":"ba_DlGmm9mSj8fjRM", - "bank_account": { - "ifsc": "UTIB0000013", - "account_number": "914010012345679" - } - }, - { - "type": "bank_account", - "id":"ba_Cmtnm5tSj6agUW", - "bank_account": { - "ifsc": "UTIB0000014", - "account_number": "914010012345680" - } - } - ], - "close_by":1681615838, - "closed_at":null, - "created_at":1574837626 -} -``` - -------------------------------------------------------------------------------------------------------- - -### Create static/dynamic qr -```php -$api->virtualAccount->create(array('receivers' => array('types' => array('qr_code')), 'description' => 'First QR code','customer_id'=> 'cust_IOyIY3JvbVny9o', 'amount_expected' => 100, 'notes' => array('receiver_key' => 'receiver_value'))); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| receivers* | array | Array that defines what receivers are available for this Virtual Account | -| description | string | A brief description of the payment. | -| amount_expected | integer | The maximum amount you expect to receive in this virtual account. Pass `69999` for ₹699.99. | -| customer_id | string | Unique identifier of the customer to whom the virtual account must be tagged. | -| notes | object | All keys listed [here](https://razorpay.com/docs/payments/payments/payment-methods/bharatqr/api/#create) are supported | - -**Response:** -```json -{ - "id": "va_4xbQrmEoA5WJ0G", - "name": "Acme Corp", - "entity": "virtual_account", - "status": "active", - "description": "First Payment by BharatQR", - "amount_expected": null, - "notes": { - "reference_key": "reference_value" - }, - "amount_paid": 0, - "customer_id": "cust_805c8oBQdBGPwS", - "receivers": [ - { - "id": "qr_4lsdkfldlteskf", - "entity": "qr_code", - "reference": "AgdeP8aBgZGckl", - "short_url": "https://rzp.io/i/PLs03pOc" - } - ], - "close_by": null, - "closed_at": null, - "created_at": 1607938184 -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch virtual account by id -```php -$api->virtualAccount->fetch($virtualId); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| virtualId* | string | The id of the virtual to be updated | - -**Response:** -```json - { - "id": "va_JccTXwXA6UG4Gi", - "name": "ankit", - "entity": "virtual_account", - "status": "active", - "description": null, - "amount_expected": null, - "notes": [], - "amount_paid": 0, - "customer_id": null, - "receivers": [ - { - "id": "ba_JccTY5ZkO3ZGHQ", - "entity": "bank_account", - "ifsc": "RAZR0000001", - "bank_name": null, - "name": "ankit", - "notes": [], - "account_number": "1112220057339365" - } - ], - "close_by": null, - "closed_at": null, - "created_at": 1654171468 -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch all virtual account -```php -$api->virtualAccount->all($options); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| from | timestamp | timestamp after which the payments were created | -| to | timestamp | timestamp before which the payments were created | -| count | integer | number of virtual accounts to fetch (default: 10) | -| skip | integer | number of virtual accounts to be skipped (default: 0) | - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "va_Di5gbNptcWV8fQ", - "name": "Acme Corp", - "entity": "virtual_account", - "status": "closed", - "description": "Virtual Account created for M/S ABC Exports", - "amount_expected": 2300, - "notes": { - "material": "teakwood" - }, - "amount_paid": 239000, - "customer_id": "cust_DOMUFFiGdCaCUJ", - "receivers": [ - { - "id": "ba_Di5gbQsGn0QSz3", - "entity": "bank_account", - "ifsc": "RATN0VAAPIS", - "bank_name": "RBL Bank", - "name": "Acme Corp", - "notes": [], - "account_number": "1112220061746877" - } - ], - "close_by": 1574427237, - "closed_at": 1574164078, - "created_at": 1574143517 - } - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Fetch payments for a virtual account -```php -$api->virtualAccount->fetch($virtualId)->payments($options); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| virtualId* | string | The id of the virtual to be updated | -| from | timestamp | timestamp after which the payments were created | -| to | timestamp | timestamp before which the payments were created | -| count | integer | number of virtual accounts to fetch (default: 10) | -| skip | integer | number of virtual accounts to be skipped (default: 0) | - -**Response:** -```json -{ - "entity": "collection", - "count": 1, - "items": [ - { - "id": "pay_Di5iqCqA1WEHq6", - "entity": "payment", - "amount": 239000, - "currency": "INR", - "status": "captured", - "order_id": null, - "invoice_id": null, - "international": false, - "method": "bank_transfer", - "amount_refunded": 0, - "refund_status": null, - "captured": true, - "description": "", - "card_id": null, - "bank": null, - "wallet": null, - "vpa": null, - "email": "saurav.kumar@example.com", - "contact": "+919972139994", - "customer_id": "cust_DOMUFFiGdCaCUJ", - "notes": [], - "fee": 2820, - "tax": 430, - "error_code": null, - "error_description": null, - "created_at": 1574143644 - } - ] -} -``` - -------------------------------------------------------------------------------------------------------- - -### Fetch payment details using id and transfer method -```php -$api->payment->fetch($paymentId)->bankTransfer(); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| paymentId* | string | The id of the payment to be updated | - -**Response:** -```json -{ - "id": "bt_Di5iqCElVyRlCb", - "entity": "bank_transfer", - "payment_id": "pay_Di5iqCqA1WEHq6", - "mode": "NEFT", - "bank_reference": "157414364471", - "amount": 239000, - "payer_bank_account": { - "id": "ba_Di5iqSxtYrTzPU", - "entity": "bank_account", - "ifsc": "UTIB0003198", - "bank_name": "Axis Bank", - "name": "Acme Corp", - "notes": [], - "account_number": "765432123456789" - }, - "virtual_account_id": "va_Di5gbNptcWV8fQ", - "virtual_account": { - "id": "va_Di5gbNptcWV8fQ", - "name": "Acme Corp", - "entity": "virtual_account", - "status": "closed", - "description": "Virtual Account created for M/S ABC Exports", - "amount_expected": 2300, - "notes": { - "material": "teakwood" - }, - "amount_paid": 239000, - "customer_id": "cust_DOMUFFiGdCaCUJ", - "receivers": [ - { - "id": "ba_Di5gbQsGn0QSz3", - "entity": "bank_account", - "ifsc": "RATN0VAAPIS", - "bank_name": "RBL Bank", - "name": "Acme Corp", - "notes": [], - "account_number": "1112220061746877" - } - ], - "close_by": 1574427237, - "closed_at": 1574164078, - "created_at": 1574143517 - } -} -``` -------------------------------------------------------------------------------------------------------- - -### Refund payments made to a virtual account -```php -$api->payment->fetch($paymentId)->refunds(); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| paymentId* | string | The id of the payment to be updated | - -**Response:** -```json -{ - "id": "rfnd_FP8QHiV938haTz", - "entity": "refund", - "amount": 500100, - "receipt": "Receipt No. 31", - "currency": "INR", - "payment_id": "pay_FCXKPFtYfPXJPy", - "notes": [] - "receipt": null, - "acquirer_data": { - "arn": null - }, - "created_at": 1597078866, - "batch_id": null, - "status": "processed", - "speed_processed": "normal", - "speed_requested": "normal" -} -``` -------------------------------------------------------------------------------------------------------- - -### Add receiver to an existing virtual account -```php -$api->virtualAccount->fetch($virtualId)->addReceiver(array('types' => array('vpa'),'vpa' => array('descriptor'=>'gauravkumar'))); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| virtualId* | string | The id of the virtual to be updated | -| types* | array | The receiver type to be added to the virtual account. Possible values are `vpa` or `bank_account` | -| vpa["descriptor"] | string | This is a unique identifier provided by you to identify the customer. For example, `gaurikumar` and `akashkumar` are the descriptors | - -**Response:** -For add receiver to an existing virtual account response please click [here](https://razorpay.com/docs/api/smart-collect/#add-receiver-to-an-existing-virtual-account) - -------------------------------------------------------------------------------------------------------- - -### Add an Allowed Payer Account -```php -$api->virtualAccount->fetch($virtualId)->addAllowedPayer(array('type' => 'bank_account','bank_account' => array('ifsc'=>'UTIB0000013','account_number'=>'914010012345679'))); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| virtualId* | string | The id of the virtual to be updated | -| type* | string | Possible value is `bank_account` | -| bank_account* | array | Indicates the bank account details such as `ifsc` and `account_number` | - -**Response:** -```json -{ - "id":"va_DlGmm7jInLudH9", - "name":"Acme Corp", - "entity":"virtual_account", - "status":"active", - "description":"Virtual Account created for Raftar Soft", - "amount_expected":null, - "notes":{ - "project_name":"Banking Software" - }, - "amount_paid":0, - "customer_id":"cust_CaVDm8eDRSXYME", - "receivers":[ - { - "id":"ba_DlGmm9mSj8fjRM", - "entity":"bank_account", - "ifsc":"RATN0VAAPIS", - "bank_name": "RBL Bank", - "name":"Acme Corp", - "notes":[], - "account_number":"2223330099089860" - } - ], - "allowed_payers": [ - { - "type": "bank_account", - "id":"ba_DlGmm9mSj8fjRM", - "bank_account": { - "ifsc": "UTIB0000013", - "account_number": "914010012345679" - } - } - ], - "close_by":1681615838, - "closed_at":null, - "created_at":1574837626 -} -``` -------------------------------------------------------------------------------------------------------- - -### Delete an Allowed Payer Account -```php -$api->virtualAccount->fetch($virtualId)->deleteAllowedPayer($allowedPayersId); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| virtualId* | string | The id of the virtual to be updated | -| allowedPayersId* | string | The id of the allowed payers to be updated | - -**Response:** -```json -null -``` -------------------------------------------------------------------------------------------------------- -### Close virtual account -```php -$api->virtualAccount->fetch($virtualId)->close(); -``` - -**Parameters:** - -| Name | Type | Description | -|-------|-----------|--------------------------------------------------| -| virtualId* | string | The id of the virtual to be updated | - -**Response:** -For close virtual account response please click [here](https://razorpay.com/docs/api/smart-collect/#close-a-virtual-account) -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/smart-collect/api/)** diff --git a/assets/php/razorpay-php/documents/webhook.md b/assets/php/razorpay-php/documents/webhook.md deleted file mode 100644 index d9855c1..0000000 --- a/assets/php/razorpay-php/documents/webhook.md +++ /dev/null @@ -1,223 +0,0 @@ -## Webhook - -### Create a Webhook -```php -$accountId = "acc_GP4lfNA0iIMn5B"; - -$api->account->fetch($accountId)->webhooks()->create(array( - "url" => "https://google.com", - "alert_email" => "gaurav.kumar@example.com", - "secret" => "12345", - "events" => array( - "payment.authorized", - "payment.failed", - "payment.captured", - "payment.dispute.created", - "refund.failed", - "refund.created" - ) -)); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| accountId* | string | The unique identifier of a sub-merchant account generated by Razorpay. | -| url* | string | The URL where you receive the webhook payload when an event is triggered. The maximum length is 255 characters. | -| alert_email | string | This is the email address to which notifications must be sent in case of webhook failure. | -| secret | string | A secret for the webhook endpoint that is used to validate that the webhook is from Razorpay. | -| events | string | The required events from the list of Active Events. For example `payment.authorized`, `payment.captured`, `payment.failed`, `payment.dispute.created`, `refund.failed`, `refund.created` and so on. | - -**Response:** -```json -{ - "id": "JebiXkKGYwua5L", - "created_at": 1654605478, - "updated_at": 1654605478, - "service": "beta-api-live", - "owner_id": "JOGUdtKu3dB03d", - "owner_type": "merchant", - "context": [], - "disabled_at": 0, - "url": "https://google.com", - "alert_email": "gaurav.kumar@example.com", - "secret_exists": true, - "entity": "webhook", - "active": true, - "events": [ - "payment.authorized", - "payment.failed", - "payment.captured", - "payment.dispute.created", - "refund.failed", - "refund.created" - ] -} -``` - -------------------------------------------------------------------------------------------------------- - -### Edit Webhook -```php -$accountId = "acc_GP4lfNA0iIMn5B"; - -$webhookId = "HK890egfiItP3H"; - -$api->account->fetch($accountId)->webhooks()->edit($webhookId, array( - "url" => "https://www.linkedin.com", - "events" => array( - "refund.created" - ) -)); -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| accountId* | string | The unique identifier of a sub-merchant account generated by Razorpay. | -| webhookId* | string | The unique identifier of the webhook whose details are to be updated | -| url | string | The URL where you receive the webhook payload when an event is triggered. The maximum length is 255 characters. | -| events | string | The required events from the list of Active Events. For example `payment.authorized`, `payment.captured`, `payment.failed`, `payment.dispute.created`, `refund.failed`, `refund.created` and so on. | - -**Response:** -```json -{ - "id": "HK890egfiItP3H", - "created_at": 1623060358, - "updated_at": 1623067148, - "service": "beta-api-test", - "owner_id": "H3kYHQ635sBwXG", - "owner_type": "merchant", - "context": [], - "disabled_at": 0, - "url": "https://www.linkedin.com", - "alert_email": "gaurav.kumar@example.com", - "secret_exists": true, - "entity": "webhook", - "active": true, - "events": [ - "refund.created" - ] -} -``` -------------------------------------------------------------------------------------------------------- - -### Delete an account -```php -$accountId = "acc_GP4lfNA0iIMn5B"; - -$webhookId = "HK890egfiItP3H"; - -$api->account->fetch($accountId)->webhooks()->delete($webhookId); - -``` - -**Parameters:** - -| Name | Type | Description | -|---------------|-------------|---------------------------------------------| -| accountId* | string | The unique identifier of a sub-merchant account that must be deleted. | -| webhookId* | string | The unique identifier of the webhook whose details are to be updated | - -**Response:** -```json -[] -``` - -------------------------------------------------------------------------------------------------------- - -### Fetch a webhook -```php -$accountId = "acc_GP4lfNA0iIMn5B"; - -$webhookId = "HK890egfiItP3H"; - -$api->account->fetch($accountId)->webhooks()->fetch($webhookId); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|-------------|---------------------------------------------| -| accountId* | string | The unique identifier of a sub-merchant account generated by Razorpay. | -| webhookId* | string | The unique identifier of the webhook whose details are to be updated | - -**Response:** -```json -{ - "id": "HK890egfiItP3H", - "created_at": 1623060358, - "updated_at": 1623060358, - "owner_id": "H3kYHQ635sBwXG", - "owner_type": "merchant", - "context": [], - "disabled_at": 0, - "url": "https://en1mwkqo5ioct.x.pipedream.net", - "alert_email": "gaurav.kumar@example.com", - "secret_exists": true, - "entity": "webhook", - "active": true, - "events": [ - "payment.authorized", - "payment.failed", - "payment.captured", - "payment.dispute.created", - "refund.failed", - "refund.created" - ] -} -``` - -------------------------------------------------------------------------------------------------------- - -### Fetch all Webhooks -```php -$accountId = "acc_GP4lfNA0iIMn5B"; - -$api->account->fetch($accountId)->webhooks()->all(); -``` - -**Parameters:** - -| Name | Type | Description | -|-------------|-------------|---------------------------------------------| -| accountId* | string | The unique identifier of a sub-merchant account generated by Razorpay. | -| from | integer | Timestamp, in seconds, from when the webhooks are to be fetched. | -| to | integer | Timestamp, in seconds, till when the webhooks are to be fetched. | -| count | integer | Number of webhooks to be fetched. The default value is `10` and the maximum value is `100`. This can be used for pagination, in combination with `skip`. | -| skip | integer | Number of records to be skipped while fetching the webhooks. This can be used for pagination, in combination with `count`. | - -**Response:** -```json -{ - "id": "HK890egfiItP3H", - "created_at": 1623060358, - "updated_at": 1623060358, - "owner_id": "H3kYHQ635sBwXG", - "owner_type": "merchant", - "context": [], - "disabled_at": 0, - "url": "https://en1mwkqo5ioct.x.pipedream.net", - "alert_email": "gaurav.kumar@example.com", - "secret_exists": true, - "entity": "webhook", - "active": true, - "events": [ - "payment.authorized", - "payment.failed", - "payment.captured", - "payment.dispute.created", - "refund.failed", - "refund.created" - ] -} -``` - -------------------------------------------------------------------------------------------------------- - -**PN: * indicates mandatory fields** -
-
-**For reference click [here](https://razorpay.com/docs/api/partners/webhooks)** \ No newline at end of file diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/.editorconfig b/assets/php/razorpay-php/libs/Requests-2.0.4/.editorconfig deleted file mode 100644 index 195b39c..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/.editorconfig +++ /dev/null @@ -1,15 +0,0 @@ -root = true - -[*] -charset = utf-8 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true -indent_style = tab - -[{*.json,*.yml}] -indent_style = space -indent_size = 2 - -[*.md] -trim_trailing_whitespace = false diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/CHANGELOG.md b/assets/php/razorpay-php/libs/Requests-2.0.4/CHANGELOG.md deleted file mode 100644 index fdcc576..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/CHANGELOG.md +++ /dev/null @@ -1,1002 +0,0 @@ -Changelog -========= - -2.0.4 ------ - -### Overview of changes -- Update bundled certificates as of 2022-07-19. [#763] - -[#763]: https://github.com/WordPress/Requests/pull/763 - -2.0.3 ------ - -### Overview of changes -- Update bundled certificates as of 2022-04-26. [#731] - -[#731]: https://github.com/WordPress/Requests/pull/731 - -2.0.2 ------ - -### Overview of changes -- Update bundled certificates as of 2022-03-18. [#697] - -[#697]: https://github.com/WordPress/Requests/pull/697 - -2.0.1 ------ - -### Overview of changes -- Update bundled certificates as of 2022-02-01. [#670] -- Bug fix: Hook priority should be respected. [#452], [#647] -- Docs: the Hook documentation has been updated to reflect the current available hooks. [#646] -- General housekeeping. [#635], [#649], [#650], [#653], [#655], [#658], [#660], [#661], [#662], [#669], [#671], [#672], [#674] - -Props [@alpipego][gh-alpipego], [@costdev][gh-costdev], [@jegrandet][gh-jegrandet] [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera] - -[#674]: https://github.com/WordPress/Requests/pull/674 -[#672]: https://github.com/WordPress/Requests/pull/672 -[#671]: https://github.com/WordPress/Requests/pull/671 -[#670]: https://github.com/WordPress/Requests/pull/670 -[#669]: https://github.com/WordPress/Requests/pull/669 -[#662]: https://github.com/WordPress/Requests/pull/662 -[#661]: https://github.com/WordPress/Requests/pull/661 -[#660]: https://github.com/WordPress/Requests/pull/660 -[#658]: https://github.com/WordPress/Requests/pull/658 -[#655]: https://github.com/WordPress/Requests/pull/655 -[#653]: https://github.com/WordPress/Requests/pull/653 -[#650]: https://github.com/WordPress/Requests/pull/650 -[#649]: https://github.com/WordPress/Requests/pull/649 -[#647]: https://github.com/WordPress/Requests/pull/647 -[#646]: https://github.com/WordPress/Requests/pull/646 -[#635]: https://github.com/WordPress/Requests/issues/635 -[#452]: https://github.com/WordPress/Requests/issues/452 - - -2.0.0 ------ - -### BREAKING CHANGES - -As Requests 2.0.0 is a major release, this version contains breaking changes. There is an [upgrade guide](https://requests.ryanmccue.info/docs/upgrading.html) available to guide you through making the necessary changes in your own code. - -### Overview of changes - -- **New minimum PHP version** - - Support for PHP 5.2 - 5.5 has been dropped. The new minimum supported PHP version is now 5.6. - - Support for HHVM has also been dropped formally now. - - (props [@datagutten][gh-datagutten], [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#378][gh-378], [#470][gh-470], [#509][gh-509]) - -- **New release branch name** - - The stable version of Requests can be found in the `stable` branch (was `master`). - Development of Requests happens in the `develop` branch. - - (props [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#463][gh-463], [#490][gh-490]) - -- **All code is now namespaced (PSR-4)** - - The code within the Requests library has all been namespaced and now lives in the `WpOrg\Requests` namespace. - - The namespaced classes can be found in the `src` directory. The old `library` directory and the files within are deprecated. - - For a number of classes, some subtle changes have also been made to their base class name, like renaming the `Hooker` interface to `HookManager`. - - A full backward-compatibility layer is available and using the non-namespaced class names will still work during the 2.x and 3.x release cycles, though a deprecation notice will be thrown the first time a class using one of the old PSR-0 based class names is requested. - For the lifetime of Requests 2.x, the deprecation notices can be disabled by defining a global `REQUESTS_SILENCE_PSR0_DEPRECATIONS` constant and -setting the value of this constant to `true`. - - A complete "translation table" between the Requests 1.x and 2.x class names is available in the [upgrade guide](https://requests.ryanmccue.info/docs/upgrading.html). - - Users of the Requests native custom autoloader will need to adjust their code to initialize the autoloader: - ```php - // OLD: Using the custom autoloader in Requests 1.x. - require_once 'path/to/Requests/library/Requests.php'; - Requests::register_autoloader(); - - // NEW: Using the custom autoloader in Requests 2.x. - require_once 'path/to/Requests/src/Autoload.php'; - WpOrg\Requests\Autoload::register(); - ``` - - (props [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#503][gh-503], [#519][gh-519], [#586][gh-586], [#587][gh-587], [#594][gh-594]) - -- **A large number of classes have been marked as `final`** - - Marking a class as `final` prohibits extending it. - - These changes were made after researching which classes were being extended in userland code and due diligence has been applied before making these changes. If this change is causing a problem we didn't anticipate, please [open an issue to report it](https://github.com/WordPress/Requests/issues/new/choose). - - (props [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#514][gh-514], [#534][gh-534]) - -- **Input validation** - - All typical entry point methods in Requests will now, directly or indirectly, validate the received input parameters for being of the correct type. - When an incorrect parameter type is received, a catchable `WpOrg\Requests\Exception\InvalidArgument` exception will be thrown. - - The input validation has been set up to be reasonably liberal, so if Requests was being used as per the documentation, this change should not affect you. - If you still find the input validation to be too strict and you have a good use-case of why it should be loosened for a particular entry point, please [open an issue to discuss this](https://github.com/WordPress/Requests/issues/new/choose). - - The code within Requests itself has also received various improvements to be more type safe. - - (props [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#499][gh-499], [#542][gh-542], [#547][gh-547], [#558][gh-558], [#572][gh-572], [#573][gh-573], [#574][gh-574], [#591][gh-591], [#592][gh-592], [#593][gh-593], [#601][gh-601], [#602][gh-602], [#603][gh-603], [#604][gh-604], [#605][gh-605], [#609][gh-609], [#610][gh-610], [#611][gh-611], [#613][gh-613], [#614][gh-614], [#615][gh-615], [#620][gh-620], [#621][gh-621], [#629][gh-629]) - -- **Update bundled certificates** - - The bundled certificates were updated with the latest version available (published 2021-10-26). - - Previously the bundled certificates in Requests would include a small subset of expired certificates for legacy reasons. - This is no longer the case as of Requests 2.0.0. - - > :warning: **Note**: the included certificates bundle is only intended as a fallback. - > - > This fallback should only be used for servers that are not properly configured for SSL verification. A continuously managed server should provide a more up-to-date certificate authority list than a software library which only gets updates once in a while. - > - > Setting the `$options['verify']` key to `true` when initiating a request enables certificate verification using the certificate authority list provided by the server environment, which is recommended. - - The [documentation regarding Secure Requests with SSL](https://requests.ryanmccue.info/docs/usage-advanced.html#secure-requests-with-ssl) has also been updated to reflect this and it is recommended to have a read through. - - The included certificates _file_ has now also been moved to a dedicated `/certificates` directory off the project root. - - (props [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [@wojsmol][gh-wojsmol], [@ZsgsDesign][gh-ZsgsDesign], [#535][gh-535], [#571][gh-571], [#577][gh-577], [#622][gh-622], [#632][gh-632]) - -- **New functionality** - - The following new functionality has been added: - - A `public static` `WpOrg\Requests\Requests::has_capabilities($capabilities = array())` method is now available to check whether there is a transport available which supports the requested capabilities. - - A `public` `WpOrg\Requests\Response::decode_body($associative = true, $depth = 512, $options = 0)` method is now available to handle JSON-decoding a response body. - The method parameters correspond to the parameters of the PHP native [`json_decode()`](https://php.net/json-decode) function. - The method will throw an `WpOrg\Requests\Exception` when the response body is not valid JSON. - - A `WpOrg\Requests\Capability` interface. This interface provides constants for the known capabilities. Transports can be tested whether or not they support these capabilities. - Currently, the only capability supported is `Capability::SSL`. - - A `WpOrg\Requests\Port` class. This class encapsulates typical port numbers as constants and offers a `static` `Port::get($type)` method to retrieve a port number based on a request type. - Using this class when referring to port numbers is recommended. - - An `WpOrg\Requests\Exceptions\InvalidArgument` class. This class is intended for internal use only. - - An `WpOrg\Requests\Utility\InputValidator` class with helper methods for input validation. This class is intended for internal use only. - - (props [@ccrims0n][gh-ccrims0n], [@dd32][gh-dd32], [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#167][gh-167], [#214][gh-214], [#250][gh-250], [#251][gh-251], [#492][gh-492], [#499][gh-499], [#538][gh-538], [#542][gh-542], [#547][gh-547], [#559][gh-559]) - -- **Changed functionality** - - - The `WpOrg\Requests\Requests::decompress()` method has been fixed to recognize more compression levels and handle these correctly. - - The method signature of the `WpOrg\Requests\Transport::test()` interface method has been adjusted to enforce support for an optional `$capabilities` parameter. - The Request native `WpOrg\Requests\Transport\Curl::test()` and `WpOrg\Requests\Transport\Fsockopen::test()` methods both already supported this parameter. - - The `WpOrg\Requests\Transport\Curl::request()` and the `WpOrg\Requests\Transport\Fsockopen::request()` methods will now throw an `WpOrg\Requests\Exception` when the `$options['filename']` contains an invalid path. - - The `WpOrg\Requests\Transport\Curl::request()` method will no longer set the `CURLOPT_REFERER` option. - - The default value of the `$key` parameter in the `WpOrg\Requests\Cookie\Jar::normalize_cookie()` method has been changed from `null` to an empty string. - - (props [@datagutten][gh-datagutten], [@dustinrue][gh-dustinrue], [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [@soulseekah][gh-soulseekah], [@twdnhfr][gh-twdnhfr], [#301][gh-301], [#309][gh-309], [#379][gh-379], [#444][gh-444], [#492][gh-492], [#610][gh-610]) - -- **Removed functionality** - - The following methods, which were deprecated during the 1.x cycle, have now been removed: - - `Requests::flattern()`, use `WpOrg\Requests\Requests::flatten()` instead. - - `Requests_Cookie::formatForHeader()`, use `WpOrg\Requests\Cookie::format_for_header()` instead. - - `Requests_Cookie::formatForSetCookie()`, use `WpOrg\Requests\Cookie::format_for_set_cookie()` instead. - - `Requests_Cookie::parseFromHeaders()`, use `WpOrg\Requests\Cookie::parse_from_headers()` instead. - - `Requests_Cookie_Jar::normalizeCookie()`, use `WpOrg\Requests\Cookie\Jar::normalize_cookie()` instead - - A duplicate method has been removed: - - `Requests::match_domain()`, use `WpOrg\Requests\Ssl::match_domain()` instead. - - A redundant method has been removed: - - `Hooks::__construct()`. - - (props [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#510][gh-510], [#525][gh-525], [#617][gh-617]) - -- **Compatibility with PHP 8.0 named parameters** - - All parameter names have been reviewed to prevent issues for users using PHP 8.0 named parameters and where relevant, a number of parameter names have been changed. - - After this release, a parameter name rename will be treated as a breaking change (reserved for major releases) and will be marked as such in the changelog. - - (props [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#533][gh-533], [#560][gh-560], [#561][gh-561], [#599][gh-599], [#612][gh-612]) - -- **PHP 8.1 compatibility** - - All known PHP 8.1 compatibility issues have been fixed and tests are now running (and passing) against PHP 8.1. - - In case you still run into a PHP 8.1 deprecation notice or other PHP 8.1 related issue, please [open an issue to report it](https://github.com/WordPress/Requests/issues/new/choose). - - (props [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#498][gh-498], [#499][gh-499], [#500][gh-500], [#501][gh-501], [#505][gh-505], [#634][gh-634]) - -- **Updated documentation** - - The [documentation website](https://requests.ryanmccue.info/) has been updated to reflect all the changes in Requests 2.0.0. - - The [API documentation for Requests 2.x](https://requests.ryanmccue.info/api-2.x/) is now generated using [phpDocumentor](https://www.phpdoc.org/) :heart: and available on the website. - For the time being, the [Requests 1.x API documentation](https://requests.ryanmccue.info/api/) will still be available on the website as well. - - (props [@costdev][gh-costdev], [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [@szepeviktor][gh-szepeviktor], [#476][gh-476], [#480][gh-480], [#489][gh-489], [#495][gh-495], [#526][gh-526], [#528][gh-528], [#532][gh-532], [#543][gh-543], [#562][gh-562], [#578][gh-578], [#590][gh-590], [#606][gh-606], [#607][gh-607], [#608][gh-608], [#618][gh-618], [#622][gh-622], [#625][gh-625], [#626][gh-626], [#630][gh-630], [#642][gh-642]) - -- **General housekeeping** - - - In a number of places, code modernizations, possible now the minimum PHP version has gone up to PHP 5.6, have been applied. - ([#504][gh-504], [#506][gh-506], [#512][gh-512], [#539][gh-539], [#541][gh-541], [#599][gh-599], [#623][gh-623]) - - - Lots of improvements were made to render the tests more reliable and increase the coverage. - ([#446][gh-446], [#459][gh-459], [#472][gh-472], [#503][gh-503], [#508][gh-508], [#511][gh-511], [#520][gh-520], [#521][gh-521], [#548][gh-548], [#549][gh-549], [#550][gh-550], [#551][gh-551], [#552][gh-552], [#553][gh-553], [#554][gh-554], [#555][gh-555], [#556][gh-556], [#557][gh-557], [#558][gh-558], [#566][gh-566], [#581][gh-581], [#591][gh-591], [#595][gh-595], [#640][gh-640]) - - - The move for all CI to GitHub Actions has been finalized. Travis is dead, long live Travis and thanks for all the fish. - ([#447][gh-447], [#575][gh-575], [#579][gh-579]) - - - A GitHub Actions workflow has been put in place to allow for automatically updating the website on releases. - This should allow for more rapid releases from now on. - ([#466][gh-466], [#544][gh-544], [#545][gh-545], [#563][gh-563], [#569][gh-569], [#583][gh-583], [#626][gh-626]) - - - Development-only dependencies have been updated. - ([#516][gh-516], [#517][gh-517]) - - - Various other general housekeeping and improvements for contributors. - ([#488][gh-488], [#491][gh-491], [#523][gh-523], [#513][gh-513], [#515][gh-515], [#522][gh-522], [#524][gh-524], [#531][gh-531], [#535][gh-535], [#536][gh-536], [#537][gh-537], [#540][gh-540], [#588][gh-588], [#616][gh-616]) - - (props [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera]) - -[gh-642]: https://github.com/WordPress/Requests/pull/642 -[gh-640]: https://github.com/WordPress/Requests/pull/640 -[gh-634]: https://github.com/WordPress/Requests/pull/634 -[gh-632]: https://github.com/WordPress/Requests/pull/632 -[gh-630]: https://github.com/WordPress/Requests/pull/630 -[gh-629]: https://github.com/WordPress/Requests/pull/629 -[gh-626]: https://github.com/WordPress/Requests/pull/626 -[gh-625]: https://github.com/WordPress/Requests/pull/625 -[gh-623]: https://github.com/WordPress/Requests/pull/623 -[gh-622]: https://github.com/WordPress/Requests/pull/622 -[gh-621]: https://github.com/WordPress/Requests/pull/621 -[gh-620]: https://github.com/WordPress/Requests/pull/620 -[gh-618]: https://github.com/WordPress/Requests/pull/618 -[gh-617]: https://github.com/WordPress/Requests/pull/617 -[gh-616]: https://github.com/WordPress/Requests/pull/616 -[gh-615]: https://github.com/WordPress/Requests/pull/615 -[gh-614]: https://github.com/WordPress/Requests/pull/614 -[gh-613]: https://github.com/WordPress/Requests/pull/613 -[gh-612]: https://github.com/WordPress/Requests/pull/612 -[gh-611]: https://github.com/WordPress/Requests/pull/611 -[gh-610]: https://github.com/WordPress/Requests/pull/610 -[gh-609]: https://github.com/WordPress/Requests/pull/609 -[gh-608]: https://github.com/WordPress/Requests/pull/608 -[gh-607]: https://github.com/WordPress/Requests/pull/607 -[gh-606]: https://github.com/WordPress/Requests/pull/606 -[gh-605]: https://github.com/WordPress/Requests/pull/605 -[gh-604]: https://github.com/WordPress/Requests/pull/604 -[gh-603]: https://github.com/WordPress/Requests/pull/603 -[gh-602]: https://github.com/WordPress/Requests/pull/602 -[gh-601]: https://github.com/WordPress/Requests/pull/601 -[gh-599]: https://github.com/WordPress/Requests/pull/599 -[gh-595]: https://github.com/WordPress/Requests/pull/595 -[gh-594]: https://github.com/WordPress/Requests/pull/594 -[gh-593]: https://github.com/WordPress/Requests/issues/593 -[gh-592]: https://github.com/WordPress/Requests/pull/592 -[gh-591]: https://github.com/WordPress/Requests/pull/591 -[gh-590]: https://github.com/WordPress/Requests/issues/590 -[gh-588]: https://github.com/WordPress/Requests/pull/588 -[gh-587]: https://github.com/WordPress/Requests/pull/587 -[gh-586]: https://github.com/WordPress/Requests/pull/586 -[gh-583]: https://github.com/WordPress/Requests/pull/583 -[gh-581]: https://github.com/WordPress/Requests/pull/581 -[gh-579]: https://github.com/WordPress/Requests/pull/579 -[gh-578]: https://github.com/WordPress/Requests/pull/578 -[gh-577]: https://github.com/WordPress/Requests/pull/577 -[gh-575]: https://github.com/WordPress/Requests/pull/575 -[gh-574]: https://github.com/WordPress/Requests/pull/574 -[gh-573]: https://github.com/WordPress/Requests/pull/573 -[gh-572]: https://github.com/WordPress/Requests/pull/572 -[gh-571]: https://github.com/WordPress/Requests/pull/571 -[gh-569]: https://github.com/WordPress/Requests/pull/569 -[gh-566]: https://github.com/WordPress/Requests/pull/566 -[gh-563]: https://github.com/WordPress/Requests/pull/563 -[gh-562]: https://github.com/WordPress/Requests/pull/562 -[gh-561]: https://github.com/WordPress/Requests/pull/561 -[gh-560]: https://github.com/WordPress/Requests/pull/560 -[gh-559]: https://github.com/WordPress/Requests/pull/559 -[gh-558]: https://github.com/WordPress/Requests/pull/558 -[gh-557]: https://github.com/WordPress/Requests/pull/557 -[gh-556]: https://github.com/WordPress/Requests/pull/556 -[gh-555]: https://github.com/WordPress/Requests/pull/555 -[gh-554]: https://github.com/WordPress/Requests/pull/554 -[gh-553]: https://github.com/WordPress/Requests/pull/553 -[gh-552]: https://github.com/WordPress/Requests/pull/552 -[gh-551]: https://github.com/WordPress/Requests/pull/551 -[gh-550]: https://github.com/WordPress/Requests/pull/550 -[gh-549]: https://github.com/WordPress/Requests/pull/549 -[gh-548]: https://github.com/WordPress/Requests/pull/548 -[gh-547]: https://github.com/WordPress/Requests/pull/547 -[gh-545]: https://github.com/WordPress/Requests/pull/545 -[gh-544]: https://github.com/WordPress/Requests/pull/544 -[gh-543]: https://github.com/WordPress/Requests/pull/543 -[gh-542]: https://github.com/WordPress/Requests/pull/542 -[gh-541]: https://github.com/WordPress/Requests/pull/541 -[gh-540]: https://github.com/WordPress/Requests/pull/540 -[gh-539]: https://github.com/WordPress/Requests/pull/539 -[gh-538]: https://github.com/WordPress/Requests/pull/538 -[gh-537]: https://github.com/WordPress/Requests/pull/537 -[gh-536]: https://github.com/WordPress/Requests/pull/536 -[gh-535]: https://github.com/WordPress/Requests/pull/535 -[gh-534]: https://github.com/WordPress/Requests/pull/534 -[gh-533]: https://github.com/WordPress/Requests/issues/533 -[gh-532]: https://github.com/WordPress/Requests/pull/532 -[gh-531]: https://github.com/WordPress/Requests/pull/531 -[gh-528]: https://github.com/WordPress/Requests/pull/528 -[gh-526]: https://github.com/WordPress/Requests/pull/526 -[gh-525]: https://github.com/WordPress/Requests/pull/525 -[gh-524]: https://github.com/WordPress/Requests/pull/524 -[gh-523]: https://github.com/WordPress/Requests/pull/523 -[gh-522]: https://github.com/WordPress/Requests/pull/522 -[gh-521]: https://github.com/WordPress/Requests/pull/521 -[gh-520]: https://github.com/WordPress/Requests/pull/520 -[gh-519]: https://github.com/WordPress/Requests/pull/519 -[gh-517]: https://github.com/WordPress/Requests/pull/517 -[gh-516]: https://github.com/WordPress/Requests/pull/516 -[gh-515]: https://github.com/WordPress/Requests/issues/515 -[gh-514]: https://github.com/WordPress/Requests/issues/514 -[gh-513]: https://github.com/WordPress/Requests/issues/513 -[gh-512]: https://github.com/WordPress/Requests/issues/512 -[gh-511]: https://github.com/WordPress/Requests/pull/511 -[gh-510]: https://github.com/WordPress/Requests/pull/510 -[gh-509]: https://github.com/WordPress/Requests/pull/509 -[gh-508]: https://github.com/WordPress/Requests/pull/508 -[gh-506]: https://github.com/WordPress/Requests/pull/506 -[gh-505]: https://github.com/WordPress/Requests/pull/505 -[gh-504]: https://github.com/WordPress/Requests/pull/504 -[gh-503]: https://github.com/WordPress/Requests/pull/503 -[gh-501]: https://github.com/WordPress/Requests/pull/501 -[gh-500]: https://github.com/WordPress/Requests/pull/500 -[gh-499]: https://github.com/WordPress/Requests/pull/499 -[gh-498]: https://github.com/WordPress/Requests/issues/498 -[gh-498]: https://github.com/WordPress/Requests/issues/495 -[gh-492]: https://github.com/WordPress/Requests/pull/492 -[gh-491]: https://github.com/WordPress/Requests/pull/491 -[gh-490]: https://github.com/WordPress/Requests/pull/490 -[gh-489]: https://github.com/WordPress/Requests/pull/489 -[gh-488]: https://github.com/WordPress/Requests/pull/488 -[gh-480]: https://github.com/WordPress/Requests/issues/480 -[gh-476]: https://github.com/WordPress/Requests/issues/476 -[gh-472]: https://github.com/WordPress/Requests/issues/472 -[gh-470]: https://github.com/WordPress/Requests/pull/470 -[gh-466]: https://github.com/WordPress/Requests/issues/466 -[gh-463]: https://github.com/WordPress/Requests/issues/463 -[gh-460]: https://github.com/WordPress/Requests/issues/460 -[gh-459]: https://github.com/WordPress/Requests/issues/459 -[gh-447]: https://github.com/WordPress/Requests/pull/447 -[gh-446]: https://github.com/WordPress/Requests/pull/446 -[gh-444]: https://github.com/WordPress/Requests/pull/444 -[gh-379]: https://github.com/WordPress/Requests/pull/379 -[gh-378]: https://github.com/WordPress/Requests/issues/378 -[gh-309]: https://github.com/WordPress/Requests/pull/309 -[gh-301]: https://github.com/WordPress/Requests/issues/301 -[gh-251]: https://github.com/WordPress/Requests/pull/251 -[gh-250]: https://github.com/WordPress/Requests/issues/250 -[gh-214]: https://github.com/WordPress/Requests/pull/214 -[gh-167]: https://github.com/WordPress/Requests/issues/167 - -1.8.1 ------ - -### Overview of changes -- The `Requests::VERSION` constant has been updated to reflect the actual version for the release. [@jrfnl][gh-jrfnl], [#485][gh-485] -- Update the `.gitattributes` file to include fewer files in the distribution. [@mbabker][gh-mbabker], [#484][gh-484] -- Added a release checklist. [@jrfnl][gh-jrfnl], [#483][gh-483] -- Various minor updates to the documentation and the website. [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#477][gh-477], [#478][gh-478], [#479][gh-479], [#481][gh-481], [#482][gh-482] - -[gh-477]: https://github.com/WordPress/Requests/issues/477 -[gh-478]: https://github.com/WordPress/Requests/issues/478 -[gh-479]: https://github.com/WordPress/Requests/issues/479 -[gh-481]: https://github.com/WordPress/Requests/issues/481 -[gh-482]: https://github.com/WordPress/Requests/issues/482 -[gh-483]: https://github.com/WordPress/Requests/issues/483 -[gh-484]: https://github.com/WordPress/Requests/issues/484 -[gh-485]: https://github.com/WordPress/Requests/issues/485 - - -1.8.0 ------ - -### IMPORTANT NOTES - -#### Last release supporting PHP 5.2 - 5.5 - - Release 1.8.0 will be the last release with compatibility for PHP 5.2 - 5.5. With the next release (v2.0.0), the minimum PHP version will be bumped to 5.6. - -#### Last release supporting PEAR distribution - - Release 1.8.0 will be the last release to be distributed via PEAR. From release 2.0.0 onwards, consumers of this library will have to switch to Composer to receive updates. - -### Overview of changes - -- **[SECURITY FIX] Disable deserialization in `FilteredIterator`** - - A `Deserialization of Untrusted Data` weakness was found in the `FilteredIterator` class. - - This security vulnerability was first reported to the WordPress project. The security fix applied to WordPress has been ported back into the library. - - GitHub security advisory: [Insecure Deserialization of untrusted data](https://github.com/WordPress/Requests/security/advisories/GHSA-52qp-jpq7-6c54) - - CVE: [CVE-2021-29476 - Deserialization of Untrusted Data](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2021-29476) - - Related WordPress CVE: [https://cve.mitre.org/cgi-bin/cvename.cgi?name=2020-28032](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2020-28032) - - (props [@dd32][gh-dd32], [@desrosj][gh-desrosj], [@jrfnl][gh-jrfnl], [@peterwilsoncc][gh-peterwilsoncc], [@SergeyBiryukov][gh-SergeyBiryukov], [@whyisjake][gh-whyisjake], [@xknown][gh-xknown], [#421][gh-421], [#422][gh-422]) - - -- **Repository moved to `WordPress\Requests`** - - The `Requests` library has been moved to the WordPress GitHub organization and can now be found under `https://github.com/WordPress/Requests`. - - All links in code and documentation were updated accordingly. - - Note: the Composer package name remains unchanged ([`rmccue/requests`](https://packagist.org/packages/rmccue/requests)), as well as the documentation site ([requests.ryanmccue.info](https://requests.ryanmccue.info/)). - - (props [@dd32][gh-dd32], [@JustinyAhin][gh-JustinyAhin], [@jrfnl][gh-jrfnl], [@rmccue][gh-rmccue], [#440][gh-440], [#441][gh-441], [#448][gh-448]) - - -- **Manage `"Expect"` header with `cURL` transport** - - By default, `cURL` adds a `Expect: 100-Continue` header to certain requests. This can add as much as a second delay to requests done using `cURL`. This is [discussed on the cURL mailing list](https://curl.se/mail/lib-2017-07/0013.html). - - To prevent this, `Requests` now adds an empty `"Expect"` header to requests that are smaller than 1 MB and use HTTP/1.1. - - (props [@carlalexander][gh-carlalexander], [@schlessera][gh-schlessera], [@TimothyBJacobs][gh-TimothyBJacobs], [#453][gh-453], [#454][gh-454], [#469][gh-469]) - - -- **Update bundled certificates as of 2021-02-12** - - The bundled certificates were updated. A small subset of expired certificates are still included for legacy reasons (and support). - - (props [@ozh][gh-ozh], [@patmead][gh-patmead], [@schlessera][gh-schlessera], [@todeveni][gh-todeveni], [#385][gh-385], [#398][gh-398], [#451][gh-451]) - - -- **Add required `Content-*` headers for empty `POST` requests** - - Sends the `Content-Length` and `Content-Type` headers even for empty `POST` requests, as the length is expected as per [RFC2616 Section 14.13](https://tools.ietf.org/html/rfc2616#section-14.13): - ``` - Content-Length header "SHOULD" be included. In practice, it is not - used for GET nor HEAD requests, but is expected for POST requests. - ``` - - (props [@dd32][gh-dd32], [@gstrauss][gh-gstrauss], [@jrfnl][gh-jrfnl], [@soulseekah][gh-soulseekah], [#248][gh-248], [#249][gh-249], [#318][gh-318], [#368][gh-368]) - - -- **Ignore locale when creating the HTTP version string from a float** - - The previous behavior allowed for the locale to mess up the float to string conversion resulting in a `GET / HTTP/1,1` instead of `GET / HTTP/1.1` request. - - (props [@tonebender][gh-tonebender], [@Zegnat][gh-Zegnat], [#335][gh-335], [#339][gh-339]) - - -- **Make `verify => false` work with `fsockopen`** - - This allows the `fsockopen` transport now to ignore SSL failures when requested. - - (props [@soulseekah][gh-soulseekah], [#310][gh-310], [#311][gh-311]) - - -- **Only include port number in the `Host` header if it differs from the default** - - The code was not violating the RFC per se, but also not following standard practice of leaving the port off when it is the default port for the scheme, which could lead to connectivity issues. - - (props [@amandato][gh-amandato], [@dd32][gh-dd32], [#238][gh-238]) - - -- **Fix PHP cross-version compatibility** - - Important fixes have been made to improve cross-version compatibility of the code across all supported PHP versions. - - - Use documented order for `implode()` arguments. - - Harden type handling when no domain was passed. - - Explicitly cast `$url` property to `string` in `Requests::parse_response()`. - - Initialize `$body` property to an empty string in `Requests::parse_response()`. - - Ensure the stream handle is valid before trying to close it. - - Ensure the `$callback` in the `FilteredIterator` is callable before calling it. - - (props [@aaronjorbin][gh-aaronjorbin], [@jrfnl][gh-jrfnl], [#346][gh-346], [#370][gh-370], [#425][gh-425], [#426][gh-426], [#456][gh-456], [#457][gh-457]) - - -- **Improve testing** - - Lots of improvements were made to render the tests more reliable and increase the coverage. - - And to top it all off, all tests are now run against all supported PHP versions, including PHP 8.0. - - (props [@datagutten][gh-datagutten], [@jrfnl][gh-jrfnl], [@schlessera][gh-schlessera], [#345][gh-345], [#351][gh-351], [#355][gh-355], [#366][gh-366], [#412][gh-412], [#414][gh-414], [#445][gh-445], [#458][gh-458], [#464][gh-464]) - - -- **Improve code quality and style** - - A whole swoop of changes has been made to harden the code and make it more consistent. - - The code style has been made consistent across both code and tests and is now enforced via a custom PHPCS rule set. - - The WordPress Coding Standards were chosen as the basis for the code style checks as most contributors to this library originate from the WordPress community and will be familiar with this code style. - - Main differences from the WordPress Coding Standards based on discussions and an analysis of the code styles already in use: - - - No whitespace on the inside of parentheses. - - No Yoda conditions. - - A more detailed overview of the decisions that went into the final code style rules can be found at [#434][gh-434]. - - (props [@jrfnl][gh-jrfnl], [@KasperFranz][gh-KasperFranz], [@ozh][gh-ozh], [@schlessera][gh-schlessera], [@TysonAndre][gh-TysonAndre], [#263][gh-263], [#296][gh-296], [#328][gh-328], [#358][gh-358], [#359][gh-359], [#360][gh-360], [#361][gh-361], [#362][gh-362], [#363][gh-363], [#364][gh-364], [#386][gh-386], [#396][gh-396], [#399][gh-399], [#400][gh-400], [#401][gh-401], [#402][gh-402], [#403][gh-403], [#404][gh-404], [#405][gh-405], [#406][gh-406], [#408][gh-408], [#409][gh-409], [#410][gh-410], [#411][gh-411], [#413][gh-413], [#415][gh-415], [#416][gh-416], [#417][gh-417], [#423][gh-423], [#424][gh-424], [#434][gh-434]) - - -- **Replace Travis CI with GitHub Actions (partial)** - - The entire CI setup is gradually being moved from Travis CI to GitHub Actions. - - At this point, GitHub Actions takes over the CI from PHP 5.5 onwards, leaving Travis CI as a fallback for lower PHP versions. - - This move will be completed after the planned minimum version bump to PHP 5.6+ with the next release, at which point we will get rid of all the remaining Travis CI integrations. - - (props [@dd32][gh-dd32], [@desrosj][gh-desrosj], [@jrfnl][gh-jrfnl], [@ntwb][gh-ntwb], [@ozh][gh-ozh], [@schlessera][gh-schlessera], [@TimothyBJacobs][gh-TimothyBJacobs], [@TysonAndre][gh-TysonAndre], [#280][gh-280], [#298][gh-298], [#302][gh-302], [#303][gh-303], [#352][gh-352], [#353][gh-353], [#354][gh-354], [#356][gh-356], [#388][gh-388], [#397][gh-397], [#428][gh-428], [#436][gh-436], [#439][gh-439], [#461][gh-461], [#467][gh-467]) - - -- **Update and improve documentation** - - Use clearer and more inclusive language. - - Update the GitHub Pages site. - - Update content and various tweaks to the markdown. - - Fix code blocks in `README.md` file. - - Add pagination to documentation pages. - - (props [@desrosj][gh-desrosj], [@jrfnl][gh-jrfnl], [@JustinyAhin][gh-JustinyAhin], [@tnorthcutt][gh-tnorthcutt], [#334][gh-334], [#367][gh-367], [#387][gh-387], [#443][gh-443], [#462][gh-462], [#465][gh-465], [#468][gh-468], [#471][gh-471] ) - -[gh-194]: https://github.com/WordPress/Requests/issues/194 -[gh-238]: https://github.com/WordPress/Requests/issues/238 -[gh-248]: https://github.com/WordPress/Requests/issues/248 -[gh-249]: https://github.com/WordPress/Requests/issues/249 -[gh-263]: https://github.com/WordPress/Requests/issues/263 -[gh-280]: https://github.com/WordPress/Requests/issues/280 -[gh-296]: https://github.com/WordPress/Requests/issues/296 -[gh-298]: https://github.com/WordPress/Requests/issues/298 -[gh-302]: https://github.com/WordPress/Requests/issues/302 -[gh-303]: https://github.com/WordPress/Requests/issues/303 -[gh-310]: https://github.com/WordPress/Requests/issues/310 -[gh-311]: https://github.com/WordPress/Requests/issues/311 -[gh-318]: https://github.com/WordPress/Requests/issues/318 -[gh-328]: https://github.com/WordPress/Requests/issues/328 -[gh-334]: https://github.com/WordPress/Requests/issues/334 -[gh-335]: https://github.com/WordPress/Requests/issues/335 -[gh-339]: https://github.com/WordPress/Requests/issues/339 -[gh-345]: https://github.com/WordPress/Requests/issues/345 -[gh-346]: https://github.com/WordPress/Requests/issues/346 -[gh-351]: https://github.com/WordPress/Requests/issues/351 -[gh-352]: https://github.com/WordPress/Requests/issues/352 -[gh-353]: https://github.com/WordPress/Requests/issues/353 -[gh-354]: https://github.com/WordPress/Requests/issues/354 -[gh-355]: https://github.com/WordPress/Requests/issues/355 -[gh-356]: https://github.com/WordPress/Requests/issues/356 -[gh-358]: https://github.com/WordPress/Requests/issues/358 -[gh-359]: https://github.com/WordPress/Requests/issues/359 -[gh-360]: https://github.com/WordPress/Requests/issues/360 -[gh-361]: https://github.com/WordPress/Requests/issues/361 -[gh-362]: https://github.com/WordPress/Requests/issues/362 -[gh-363]: https://github.com/WordPress/Requests/issues/363 -[gh-364]: https://github.com/WordPress/Requests/issues/364 -[gh-366]: https://github.com/WordPress/Requests/issues/366 -[gh-367]: https://github.com/WordPress/Requests/issues/367 -[gh-367]: https://github.com/WordPress/Requests/issues/367 -[gh-368]: https://github.com/WordPress/Requests/issues/368 -[gh-370]: https://github.com/WordPress/Requests/issues/370 -[gh-385]: https://github.com/WordPress/Requests/issues/385 -[gh-386]: https://github.com/WordPress/Requests/issues/386 -[gh-387]: https://github.com/WordPress/Requests/issues/387 -[gh-388]: https://github.com/WordPress/Requests/issues/388 -[gh-396]: https://github.com/WordPress/Requests/issues/396 -[gh-397]: https://github.com/WordPress/Requests/issues/397 -[gh-398]: https://github.com/WordPress/Requests/issues/398 -[gh-399]: https://github.com/WordPress/Requests/issues/399 -[gh-400]: https://github.com/WordPress/Requests/issues/400 -[gh-401]: https://github.com/WordPress/Requests/issues/401 -[gh-402]: https://github.com/WordPress/Requests/issues/402 -[gh-403]: https://github.com/WordPress/Requests/issues/403 -[gh-404]: https://github.com/WordPress/Requests/issues/404 -[gh-405]: https://github.com/WordPress/Requests/issues/405 -[gh-406]: https://github.com/WordPress/Requests/issues/406 -[gh-408]: https://github.com/WordPress/Requests/issues/408 -[gh-409]: https://github.com/WordPress/Requests/issues/409 -[gh-410]: https://github.com/WordPress/Requests/issues/410 -[gh-411]: https://github.com/WordPress/Requests/issues/411 -[gh-412]: https://github.com/WordPress/Requests/issues/412 -[gh-413]: https://github.com/WordPress/Requests/issues/413 -[gh-414]: https://github.com/WordPress/Requests/issues/414 -[gh-415]: https://github.com/WordPress/Requests/issues/415 -[gh-416]: https://github.com/WordPress/Requests/issues/416 -[gh-417]: https://github.com/WordPress/Requests/issues/417 -[gh-421]: https://github.com/WordPress/Requests/issues/421 -[gh-422]: https://github.com/WordPress/Requests/issues/422 -[gh-423]: https://github.com/WordPress/Requests/issues/423 -[gh-424]: https://github.com/WordPress/Requests/issues/424 -[gh-425]: https://github.com/WordPress/Requests/issues/425 -[gh-426]: https://github.com/WordPress/Requests/issues/426 -[gh-428]: https://github.com/WordPress/Requests/issues/428 -[gh-434]: https://github.com/WordPress/Requests/issues/434 -[gh-436]: https://github.com/WordPress/Requests/issues/436 -[gh-439]: https://github.com/WordPress/Requests/issues/439 -[gh-440]: https://github.com/WordPress/Requests/issues/440 -[gh-441]: https://github.com/WordPress/Requests/issues/441 -[gh-443]: https://github.com/WordPress/Requests/issues/443 -[gh-445]: https://github.com/WordPress/Requests/issues/445 -[gh-448]: https://github.com/WordPress/Requests/issues/448 -[gh-451]: https://github.com/WordPress/Requests/issues/451 -[gh-453]: https://github.com/WordPress/Requests/issues/453 -[gh-454]: https://github.com/WordPress/Requests/issues/454 -[gh-456]: https://github.com/WordPress/Requests/issues/456 -[gh-457]: https://github.com/WordPress/Requests/issues/457 -[gh-458]: https://github.com/WordPress/Requests/issues/458 -[gh-461]: https://github.com/WordPress/Requests/issues/461 -[gh-462]: https://github.com/WordPress/Requests/issues/462 -[gh-464]: https://github.com/WordPress/Requests/issues/464 -[gh-465]: https://github.com/WordPress/Requests/issues/465 -[gh-467]: https://github.com/WordPress/Requests/issues/467 -[gh-468]: https://github.com/WordPress/Requests/issues/468 -[gh-469]: https://github.com/WordPress/Requests/issues/469 -[gh-471]: https://github.com/WordPress/Requests/issues/471 - -1.7.0 ------ - -- Add support for HHVM and PHP 7 - - Requests is now tested against both HHVM and PHP 7, and they are supported as - first-party platforms. - - (props [@rmccue][gh-rmccue], [#106][gh-106], [#176][gh-176]) - -- Transfer & connect timeouts, in seconds & milliseconds - - cURL is unable to handle timeouts under a second in DNS lookups, so we round - those up to ensure 1-999ms isn't counted as an instant failure. - - (props [@ozh][gh-ozh], [@rmccue][gh-rmccue], [#97][gh-97], [#216][gh-216]) - -- Rework cookie handling to be more thorough. - - Cookies are now restricted to the same-origin by default, expiration is checked. - - (props [@catharsisjelly][gh-catharsisjelly], [@rmccue][gh-rmccue], [#120][gh-120], [#124][gh-124], [#130][gh-130], [#132][gh-132], [#156][gh-156]) - -- Improve testing - - Tests are now run locally to speed them up, as well as further general - improvements to the quality of the testing suite. There are now also - comprehensive proxy tests to ensure coverage there. - - (props [@rmccue][gh-rmccue], [#75][gh-75], [#107][gh-107], [#170][gh-170], [#177][gh-177], [#181][gh-181], [#183][gh-183], [#185][gh-185], [#196][gh-196], [#202][gh-202], [#203][gh-203]) - -- Support custom HTTP methods - - Previously, custom HTTP methods were only supported on sockets; they are now - supported across all transports. - - (props [@ocean90][gh-ocean90], [#227][gh-227]) - -- Add byte limit option - - (props [@rmccue][gh-rmccue], [#172][gh-172]) - -- Support a Requests_Proxy_HTTP() instance for the proxy setting. - - (props [@ocean90][gh-ocean90], [#223][gh-223]) - -- Add progress hook - - (props [@rmccue][gh-rmccue], [#180][gh-180]) - -- Add a before_redirect hook to alter redirects - - (props [@rmccue][gh-rmccue], [#205][gh-205]) - -- Pass cURL info to after_request - - (props [@rmccue][gh-rmccue], [#206][gh-206]) - -- Remove explicit autoload in Composer installation instructions - - (props [@SlikNL][gh-SlikNL], [#86][gh-86]) - -- Restrict CURLOPT_PROTOCOLS on `defined()` instead of `version_compare()` - - (props [@ozh][gh-ozh], [#92][gh-92]) - -- Fix doc - typo in "Authentication" - - (props [@remik][gh-remik], [#99][gh-99]) - -- Contextually check for a valid transport - - (props [@ozh][gh-ozh], [#101][gh-101]) - -- Follow relative redirects correctly - - (props [@ozh][gh-ozh], [#103][gh-103]) - -- Use cURL's version_number - - (props [@mishan][gh-mishan], [#104][gh-104]) - -- Removed duplicated option docs - - (props [@staabm][gh-staabm], [#112][gh-112]) - -- code styling fixed - - (props [@imsaintx][gh-imsaintx], [#113][gh-113]) - -- Fix IRI "normalization" - - (props [@ozh][gh-ozh], [#128][gh-128]) - -- Mention two PHP extension dependencies in the README. - - (props [@orlitzky][gh-orlitzky], [#136][gh-136]) - -- Ignore coverage report files - - (props [@ozh][gh-ozh], [#148][gh-148]) - -- drop obsolete "return" after throw - - (props [@staabm][gh-staabm], [#150][gh-150]) - -- Updated exception message to specify both http + https - - (props [@beutnagel][gh-beutnagel], [#162][gh-162]) - -- Sets `stream_headers` method to public to allow calling it from other -places. - - (props [@adri][gh-adri], [#158][gh-158]) - -- Remove duplicated stream_get_meta_data call - - (props [@rmccue][gh-rmccue], [#179][gh-179]) - -- Transmits $errno from stream_socket_client in exception - - (props [@laurentmartelli][gh-laurentmartelli], [#174][gh-174]) - -- Correct methods to use snake_case - - (props [@rmccue][gh-rmccue], [#184][gh-184]) - -- Improve code quality - - (props [@rmccue][gh-rmccue], [#186][gh-186]) - -- Update Build Status image - - (props [@rmccue][gh-rmccue], [#187][gh-187]) - -- Fix/Rationalize transports (v2) - - (props [@rmccue][gh-rmccue], [#188][gh-188]) - -- Surface cURL errors - - (props [@ifwe][gh-ifwe], [#194][gh-194]) - -- Fix for memleak and curl_close() never being called - - (props [@kwuerl][gh-kwuerl], [#200][gh-200]) - -- addex how to install with composer - - (props [@royopa][gh-royopa], [#164][gh-164]) - -- Uppercase the method to ensure compatibility - - (props [@rmccue][gh-rmccue], [#207][gh-207]) - -- Store default certificate path - - (props [@rmccue][gh-rmccue], [#210][gh-210]) - -- Force closing keep-alive connections on old cURL - - (props [@rmccue][gh-rmccue], [#211][gh-211]) - -- Docs: Updated HTTP links with HTTPS links where applicable - - (props [@ntwb][gh-ntwb], [#215][gh-215]) - -- Remove the executable bit - - (props [@ocean90][gh-ocean90], [#224][gh-224]) - -- Change more links to HTTPS - - (props [@rmccue][gh-rmccue], [#217][gh-217]) - -- Bail from cURL when either `curl_init()` OR `curl_exec()` are unavailable - - (props [@dd32][gh-dd32], [#230][gh-230]) - -- Disable OpenSSL's internal peer_name checking when `verifyname` is disabled. - - (props [@dd32][gh-dd32], [#239][gh-239]) - -- Only include the port number in the `Host` header when it differs from -default - - (props [@dd32][gh-dd32], [#238][gh-238]) - -- Respect port if specified for HTTPS connections - - (props [@dd32][gh-dd32], [#237][gh-237]) - -- Allow paths starting with a double-slash - - (props [@rmccue][gh-rmccue], [#240][gh-240]) - -- Fixes bug in rfc2616 #3.6.1 implementation. - - (props [@stephenharris][gh-stephenharris], [#236][gh-236], [#3][gh-3]) - -- CURLOPT_HTTPHEADER在php7接受空数组导致php-fpm奔溃 - - (props [@qibinghua][gh-qibinghua], [#219][gh-219]) - -[gh-3]: https://github.com/WordPress/Requests/issues/3 -[gh-75]: https://github.com/WordPress/Requests/issues/75 -[gh-86]: https://github.com/WordPress/Requests/issues/86 -[gh-92]: https://github.com/WordPress/Requests/issues/92 -[gh-97]: https://github.com/WordPress/Requests/issues/97 -[gh-99]: https://github.com/WordPress/Requests/issues/99 -[gh-101]: https://github.com/WordPress/Requests/issues/101 -[gh-103]: https://github.com/WordPress/Requests/issues/103 -[gh-104]: https://github.com/WordPress/Requests/issues/104 -[gh-106]: https://github.com/WordPress/Requests/issues/106 -[gh-107]: https://github.com/WordPress/Requests/issues/107 -[gh-112]: https://github.com/WordPress/Requests/issues/112 -[gh-113]: https://github.com/WordPress/Requests/issues/113 -[gh-120]: https://github.com/WordPress/Requests/issues/120 -[gh-124]: https://github.com/WordPress/Requests/issues/124 -[gh-128]: https://github.com/WordPress/Requests/issues/128 -[gh-130]: https://github.com/WordPress/Requests/issues/130 -[gh-132]: https://github.com/WordPress/Requests/issues/132 -[gh-136]: https://github.com/WordPress/Requests/issues/136 -[gh-148]: https://github.com/WordPress/Requests/issues/148 -[gh-150]: https://github.com/WordPress/Requests/issues/150 -[gh-156]: https://github.com/WordPress/Requests/issues/156 -[gh-158]: https://github.com/WordPress/Requests/issues/158 -[gh-162]: https://github.com/WordPress/Requests/issues/162 -[gh-164]: https://github.com/WordPress/Requests/issues/164 -[gh-170]: https://github.com/WordPress/Requests/issues/170 -[gh-172]: https://github.com/WordPress/Requests/issues/172 -[gh-174]: https://github.com/WordPress/Requests/issues/174 -[gh-176]: https://github.com/WordPress/Requests/issues/176 -[gh-177]: https://github.com/WordPress/Requests/issues/177 -[gh-179]: https://github.com/WordPress/Requests/issues/179 -[gh-180]: https://github.com/WordPress/Requests/issues/180 -[gh-181]: https://github.com/WordPress/Requests/issues/181 -[gh-183]: https://github.com/WordPress/Requests/issues/183 -[gh-184]: https://github.com/WordPress/Requests/issues/184 -[gh-185]: https://github.com/WordPress/Requests/issues/185 -[gh-186]: https://github.com/WordPress/Requests/issues/186 -[gh-187]: https://github.com/WordPress/Requests/issues/187 -[gh-188]: https://github.com/WordPress/Requests/issues/188 -[gh-194]: https://github.com/WordPress/Requests/issues/194 -[gh-196]: https://github.com/WordPress/Requests/issues/196 -[gh-200]: https://github.com/WordPress/Requests/issues/200 -[gh-202]: https://github.com/WordPress/Requests/issues/202 -[gh-203]: https://github.com/WordPress/Requests/issues/203 -[gh-205]: https://github.com/WordPress/Requests/issues/205 -[gh-206]: https://github.com/WordPress/Requests/issues/206 -[gh-207]: https://github.com/WordPress/Requests/issues/207 -[gh-210]: https://github.com/WordPress/Requests/issues/210 -[gh-211]: https://github.com/WordPress/Requests/issues/211 -[gh-215]: https://github.com/WordPress/Requests/issues/215 -[gh-216]: https://github.com/WordPress/Requests/issues/216 -[gh-217]: https://github.com/WordPress/Requests/issues/217 -[gh-219]: https://github.com/WordPress/Requests/issues/219 -[gh-223]: https://github.com/WordPress/Requests/issues/223 -[gh-224]: https://github.com/WordPress/Requests/issues/224 -[gh-227]: https://github.com/WordPress/Requests/issues/227 -[gh-230]: https://github.com/WordPress/Requests/issues/230 -[gh-236]: https://github.com/WordPress/Requests/issues/236 -[gh-237]: https://github.com/WordPress/Requests/issues/237 -[gh-238]: https://github.com/WordPress/Requests/issues/238 -[gh-239]: https://github.com/WordPress/Requests/issues/239 -[gh-240]: https://github.com/WordPress/Requests/issues/240 - -1.6.0 ------ -- [Add multiple request support][#23] - Send multiple HTTP requests with both - fsockopen and cURL, transparently falling back to synchronous when - not supported. - -- [Add proxy support][#70] - HTTP proxies are now natively supported via a - [high-level API][docs/proxy]. Major props to Ozh for his fantastic work - on this. - -- [Verify host name for SSL requests][#63] - Requests is now the first and only - standalone HTTP library to fully verify SSL hostnames even with socket - connections. Thanks to Michael Adams, Dion Hulse, Jon Cave, and Pádraic Brady - for reviewing the crucial code behind this. - -- [Add cookie support][#64] - Adds built-in support for cookies (built entirely - as a high-level API) - -- [Add sessions][#62] - To compliment cookies, [sessions][docs/usage-advanced] - can be created with a base URL and default options, plus a shared cookie jar. - -- Add [PUT][#1], [DELETE][#3], and [PATCH][#2] request support - -- [Add Composer support][#6] - You can now install Requests via the - `rmccue/requests` package on Composer - -[docs/proxy]: https://requests.ryanmccue.info/docs/proxy.html -[docs/usage-advanced]: https://requests.ryanmccue.info/docs/usage-advanced.html - -[#1]: https://github.com/WordPress/Requests/issues/1 -[#2]: https://github.com/WordPress/Requests/issues/2 -[#3]: https://github.com/WordPress/Requests/issues/3 -[#6]: https://github.com/WordPress/Requests/issues/6 -[#9]: https://github.com/WordPress/Requests/issues/9 -[#23]: https://github.com/WordPress/Requests/issues/23 -[#62]: https://github.com/WordPress/Requests/issues/62 -[#63]: https://github.com/WordPress/Requests/issues/63 -[#64]: https://github.com/WordPress/Requests/issues/64 -[#70]: https://github.com/WordPress/Requests/issues/70 - -[View all changes][https://github.com/WordPress/Requests/compare/v1.5.0...v1.6.0] - -1.5.0 ------ -Initial release! - -[gh-aaronjorbin]: https://github.com/aaronjorbin -[gh-adri]: https://github.com/adri -[gh-alpipego]: https://github.com/alpipego/ -[gh-amandato]: https://github.com/amandato -[gh-beutnagel]: https://github.com/beutnagel -[gh-carlalexander]: https://github.com/carlalexander -[gh-catharsisjelly]: https://github.com/catharsisjelly -[gh-ccrims0n]: https://github.com/ccrims0n -[gh-costdev]: https://github.com/costdev -[gh-datagutten]: https://github.com/datagutten -[gh-dustinrue]: https://github.com/dustinrue -[gh-dd32]: https://github.com/dd32 -[gh-desrosj]: https://github.com/desrosj -[gh-gstrauss]: https://github.com/gstrauss -[gh-ifwe]: https://github.com/ifwe -[gh-imsaintx]: https://github.com/imsaintx -[gh-jegrandet]: https://github.com/jegrandet -[gh-JustinyAhin]: https://github.com/JustinyAhin -[gh-jrfnl]: https://github.com/jrfnl -[gh-KasperFranz]: https://github.com/KasperFranz -[gh-kwuerl]: https://github.com/kwuerl -[gh-laurentmartelli]: https://github.com/laurentmartelli -[gh-mbabker]: https://github.com/mbabker -[gh-mishan]: https://github.com/mishan -[gh-ntwb]: https://github.com/ntwb -[gh-ocean90]: https://github.com/ocean90 -[gh-orlitzky]: https://github.com/orlitzky -[gh-ozh]: https://github.com/ozh -[gh-patmead]: https://github.com/patmead -[gh-peterwilsoncc]: https://github.com/peterwilsoncc -[gh-qibinghua]: https://github.com/qibinghua -[gh-remik]: https://github.com/remik -[gh-rmccue]: https://github.com/rmccue -[gh-royopa]: https://github.com/royopa -[gh-schlessera]: https://github.com/schlessera -[gh-SergeyBiryukov]: https://github.com/SergeyBiryukov -[gh-SlikNL]: https://github.com/SlikNL -[gh-soulseekah]: https://github.com/soulseekah -[gh-staabm]: https://github.com/staabm -[gh-stephenharris]: https://github.com/stephenharris -[gh-szepeviktor]: https://github.com/szepeviktor -[gh-TimothyBJacobs]: https://github.com/TimothyBJacobs -[gh-tnorthcutt]: https://github.com/tnorthcutt -[gh-todeveni]: https://github.com/todeveni -[gh-tonebender]: https://github.com/tonebender -[gh-twdnhfr]: https://github.com/twdnhfr -[gh-TysonAndre]: https://github.com/TysonAndre -[gh-whyisjake]: https://github.com/whyisjake -[gh-wojsmol]: https://github.com/wojsmol -[gh-xknown]: https://github.com/xknown -[gh-Zegnat]: https://github.com/Zegnat -[gh-ZsgsDesign]: https://github.com/ZsgsDesign diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/LICENSE b/assets/php/razorpay-php/libs/Requests-2.0.4/LICENSE deleted file mode 100644 index d61ae7b..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/LICENSE +++ /dev/null @@ -1,49 +0,0 @@ -Requests -======== - -Copyright (c) 2010-2012 Ryan McCue and contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - -ComplexPie IRI Parser -===================== - -Copyright (c) 2007-2010, Geoffrey Sneddon and Steve Minutillo. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - * Neither the name of the SimplePie Team nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/README.md b/assets/php/razorpay-php/libs/Requests-2.0.4/README.md deleted file mode 100644 index c8680b0..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/README.md +++ /dev/null @@ -1,168 +0,0 @@ -Requests for PHP -================ - -[![CS](https://github.com/WordPress/Requests/actions/workflows/cs.yml/badge.svg)](https://github.com/WordPress/Requests/actions/workflows/cs.yml) -[![Lint](https://github.com/WordPress/Requests/actions/workflows/lint.yml/badge.svg)](https://github.com/WordPress/Requests/actions/workflows/lint.yml) -[![Test](https://github.com/WordPress/Requests/actions/workflows/test.yml/badge.svg)](https://github.com/WordPress/Requests/actions/workflows/test.yml) -[![codecov.io](https://codecov.io/gh/WordPress/Requests/branch/stable/graph/badge.svg?token=AfpxK7WMxj&branch=stable)](https://codecov.io/gh/WordPress/Requests?branch=stable) - -Requests is a HTTP library written in PHP, for human beings. It is roughly -based on the API from the excellent [Requests Python -library](http://python-requests.org/). Requests is [ISC -Licensed](https://github.com/WordPress/Requests/blob/stable/LICENSE) (similar to -the new BSD license) and has no dependencies, except for PHP 5.6+. - -Despite PHP's use as a language for the web, its tools for sending HTTP requests -are severely lacking. cURL has an -[interesting API](https://www.php.net/curl-setopt), to say the -least, and you can't always rely on it being available. Sockets provide only low -level access, and require you to build most of the HTTP response parsing -yourself. - -We all have better things to do. That's why Requests was born. - -```php -$headers = array('Accept' => 'application/json'); -$options = array('auth' => array('user', 'pass')); -$request = WpOrg\Requests\Requests::get('https://api.github.com/gists', $headers, $options); - -var_dump($request->status_code); -// int(200) - -var_dump($request->headers['content-type']); -// string(31) "application/json; charset=utf-8" - -var_dump($request->body); -// string(26891) "[...]" -``` - -Requests allows you to send **HEAD**, **GET**, **POST**, **PUT**, **DELETE**, -and **PATCH** HTTP requests. You can add headers, form data, multipart files, -and parameters with basic arrays, and access the response data in the same way. -Requests uses cURL and fsockopen, depending on what your system has available, -but abstracts all the nasty stuff out of your way, providing a consistent API. - - -Features --------- - -- International Domains and URLs -- Browser-style SSL Verification -- Basic/Digest Authentication -- Automatic Decompression -- Connection Timeouts - - -Installation ------------- - -### Install with Composer -If you're using [Composer](https://getcomposer.org/) to manage -dependencies, you can add Requests with it. - -```sh -composer require rmccue/requests -``` - -or -```json -{ - "require": { - "rmccue/requests": "^2.0" - } -} -``` - -### Install source from GitHub -To install the source code: -```bash -$ git clone git://github.com/WordPress/Requests.git -``` - -Next, include the autoloader in your scripts: -```php -require_once '/path/to/Requests/src/Autoload.php'; -``` - -You'll probably also want to register the autoloader: -```php -WpOrg\Requests\Autoload::register(); -``` - -### Install source from zip/tarball -Alternatively, you can fetch a [tarball][] or [zipball][]: - -```bash -$ curl -L https://github.com/WordPress/Requests/tarball/stable | tar xzv -(or) -$ wget https://github.com/WordPress/Requests/tarball/stable -O - | tar xzv -``` - -[tarball]: https://github.com/WordPress/Requests/tarball/stable -[zipball]: https://github.com/WordPress/Requests/zipball/stable - - -### Using a Class Loader -If you're using a class loader (e.g., [Symfony Class Loader][]) for -[PSR-4][]-style class loading: -```php -$loader = new Psr4ClassLoader(); -$loader->addPrefix('WpOrg\\Requests\\', 'path/to/vendor/Requests/src'); -$loader->register(); -``` - -[Symfony Class Loader]: https://github.com/symfony/ClassLoader -[PSR-4]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4.md - - -Documentation -------------- -The best place to start is our [prose-based documentation][], which will guide -you through using Requests. - -After that, take a look at [the documentation for -`\WpOrg\Requests\Requests::request()`][request_method], where all the parameters are fully -documented. - -Requests is [100% documented with PHPDoc](https://requests.ryanmccue.info/api-2.x/). -If you find any problems with it, [create a new -issue](https://github.com/WordPress/Requests/issues/new)! - -[prose-based documentation]: https://github.com/WordPress/Requests/blob/stable/docs/README.md -[request_method]: https://requests.ryanmccue.info/api-2.x/classes/WpOrg-Requests-Requests.html#method_request - -Testing -------- - -Requests strives to have 100% code-coverage of the library with an extensive -set of tests. We're not quite there yet, but [we're getting close][codecov]. - -[codecov]: https://codecov.io/github/WordPress/Requests/ - -To run the test suite, first check that you have the [PHP -JSON extension ](https://www.php.net/book.json) enabled. Then -simply: -```bash -$ phpunit -``` - -If you'd like to run a single set of tests, specify just the name: -```bash -$ phpunit Transport/cURL -``` - -Contribute ----------- - -1. Check for open issues or open a new issue for a feature request or a bug. -2. Fork [the repository][] on Github to start making your changes to the - `develop` branch (or branch off of it). -3. Write one or more tests which show that the bug was fixed or that the feature works as expected. -4. Send in a pull request. - -If you have questions while working on your contribution and you use Slack, there is -a [#core-http-api] channel available in the [WordPress Slack] in which contributions can be discussed. - -[the repository]: https://github.com/WordPress/Requests -[#core-http-api]: https://wordpress.slack.com/archives/C02BBE29V42 -[WordPress Slack]: https://make.wordpress.org/chat/ diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/certificates/cacert.pem b/assets/php/razorpay-php/libs/Requests-2.0.4/certificates/cacert.pem deleted file mode 100644 index 6b70ee0..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/certificates/cacert.pem +++ /dev/null @@ -1,3460 +0,0 @@ -## -## Bundle of CA Root Certificates -## -## Certificate data from Mozilla as of: Tue Jul 19 03:12:06 2022 GMT -## -## This is a bundle of X.509 certificates of public Certificate Authorities -## (CA). These were automatically extracted from Mozilla's root certificates -## file (certdata.txt). This file can be found in the mozilla source tree: -## https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt -## -## It contains the certificates in PEM format and therefore -## can be directly used with curl / libcurl / php_curl, or with -## an Apache+mod_ssl webserver for SSL client authentication. -## Just configure this file as the SSLCACertificateFile. -## -## Conversion done with mk-ca-bundle.pl version 1.29. -## SHA256: 9bf3799611fb58197f61d45e71ce3dc19f30e7dd73731915872ce5108a7bb066 -## - - -GlobalSign Root CA -================== ------BEGIN CERTIFICATE----- -MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx -GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds -b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV -BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD -VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa -DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc -THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb -Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP -c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX -gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF -AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj -Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG -j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH -hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC -X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== ------END CERTIFICATE----- - -Entrust.net Premium 2048 Secure Server CA -========================================= ------BEGIN CERTIFICATE----- -MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u -ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp -bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV -BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx -NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 -d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl -MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u -ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL -Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr -hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW -nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi -VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ -KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy -T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf -zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT -J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e -nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE= ------END CERTIFICATE----- - -Baltimore CyberTrust Root -========================= ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE -ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li -ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC -SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs -dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME -uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB -UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C -G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9 -XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr -l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI -VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB -BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh -cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5 -hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa -Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H -RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp ------END CERTIFICATE----- - -Entrust Root Certification Authority -==================================== ------BEGIN CERTIFICATE----- -MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV -BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw -b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG -A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0 -MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu -MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu -Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v -dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz -A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww -Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68 -j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN -rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw -DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1 -MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH -hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA -A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM -Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa -v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS -W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 -tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 ------END CERTIFICATE----- - -Comodo AAA Services root -======================== ------BEGIN CERTIFICATE----- -MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS -R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg -TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw -MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl -c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV -BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG -C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs -i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW -Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH -Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK -Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f -BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl -cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz -LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm -7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz -Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z -8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C -12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== ------END CERTIFICATE----- - -QuoVadis Root CA 2 -================== ------BEGIN CERTIFICATE----- -MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT -EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx -ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6 -XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk -lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB -lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy -lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt -66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn -wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh -D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy -BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie -J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud -DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU -a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT -ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv -Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3 -UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm -VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK -+JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW -IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1 -WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X -f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II -4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8 -VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u ------END CERTIFICATE----- - -QuoVadis Root CA 3 -================== ------BEGIN CERTIFICATE----- -MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT -EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx -OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg -DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij -KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K -DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv -BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp -p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8 -nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX -MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM -Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz -uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT -BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj -YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 -aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB -BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD -VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4 -ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE -AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV -qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s -hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z -POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2 -Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp -8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC -bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu -g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p -vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr -qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto= ------END CERTIFICATE----- - -Security Communication Root CA -============================== ------BEGIN CERTIFICATE----- -MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP -U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw -HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP -U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw -8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM -DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX -5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd -DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2 -JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw -DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g -0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a -mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ -s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ -6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi -FL39vmwLAw== ------END CERTIFICATE----- - -XRamp Global CA Root -==================== ------BEGIN CERTIFICATE----- -MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE -BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj -dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx -HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg -U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp -dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu -IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx -foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE -zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs -AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry -xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud -EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap -oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC -AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc -/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt -qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n -nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz -8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= ------END CERTIFICATE----- - -Go Daddy Class 2 CA -=================== ------BEGIN CERTIFICATE----- -MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY -VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG -A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g -RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD -ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv -2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32 -qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j -YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY -vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O -BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o -atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu -MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG -A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim -PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt -I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ -HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI -Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b -vZ8= ------END CERTIFICATE----- - -Starfield Class 2 CA -==================== ------BEGIN CERTIFICATE----- -MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc -U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg -Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo -MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG -A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG -SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY -bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ -JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm -epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN -F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF -MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f -hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo -bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g -QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs -afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM -PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl -xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD -KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 -QBFGmh95DmK/D5fs4C8fF5Q= ------END CERTIFICATE----- - -DigiCert Assured ID Root CA -=========================== ------BEGIN CERTIFICATE----- -MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw -IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx -MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL -ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO -9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy -UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW -/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy -oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf -GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF -66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq -hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc -EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn -SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i -8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe -+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== ------END CERTIFICATE----- - -DigiCert Global Root CA -======================= ------BEGIN CERTIFICATE----- -MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw -HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw -MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 -dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq -hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn -TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5 -BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H -4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y -7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB -o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm -8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF -BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr -EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt -tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886 -UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk -CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= ------END CERTIFICATE----- - -DigiCert High Assurance EV Root CA -================================== ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw -KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw -MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ -MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu -Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t -Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS -OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3 -MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ -NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe -h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB -Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY -JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ -V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp -myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK -mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe -vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K ------END CERTIFICATE----- - -SwissSign Gold CA - G2 -====================== ------BEGIN CERTIFICATE----- -MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw -EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN -MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp -c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B -AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq -t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C -jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg -vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF -ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR -AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend -jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO -peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR -7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi -GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64 -OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov -L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm -5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr -44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf -Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m -Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp -mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk -vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf -KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br -NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj -viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ ------END CERTIFICATE----- - -SwissSign Silver CA - G2 -======================== ------BEGIN CERTIFICATE----- -MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT -BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X -DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3 -aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG -9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644 -N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm -+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH -6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu -MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h -qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5 -FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs -ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc -celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X -CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ -BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB -tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0 -cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P -4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F -kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L -3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx -/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa -DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP -e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu -WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ -DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub -DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u ------END CERTIFICATE----- - -SecureTrust CA -============== ------BEGIN CERTIFICATE----- -MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG -EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy -dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe -BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC -ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX -OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t -DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH -GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b -01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH -ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/ -BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj -aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ -KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu -SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf -mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ -nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR -3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= ------END CERTIFICATE----- - -Secure Global CA -================ ------BEGIN CERTIFICATE----- -MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG -EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH -bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg -MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg -Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx -YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ -bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g -8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV -HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi -0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud -EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn -oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA -MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+ -OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn -CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5 -3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc -f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW ------END CERTIFICATE----- - -COMODO Certification Authority -============================== ------BEGIN CERTIFICATE----- -MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE -BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG -A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1 -dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb -MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD -T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH -+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww -xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV -4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA -1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI -rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k -b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC -AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP -OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ -RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc -IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN -+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== ------END CERTIFICATE----- - -Network Solutions Certificate Authority -======================================= ------BEGIN CERTIFICATE----- -MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG -EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr -IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx -MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu -MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx -jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT -aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT -crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc -/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB -AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP -BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv -bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA -A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q -4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/ -GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv -wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD -ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey ------END CERTIFICATE----- - -COMODO ECC Certification Authority -================================== ------BEGIN CERTIFICATE----- -MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC -R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE -ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix -GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR -Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo -b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X -4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni -wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG -FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA -U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= ------END CERTIFICATE----- - -Certigna -======== ------BEGIN CERTIFICATE----- -MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw -EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3 -MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI -Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q -XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH -GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p -ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg -DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf -Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ -tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ -BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J -SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA -hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+ -ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu -PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY -1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw -WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== ------END CERTIFICATE----- - -ePKI Root Certification Authority -================================= ------BEGIN CERTIFICATE----- -MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG -EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg -Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx -MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq -MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B -AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs -IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi -lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv -qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX -12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O -WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+ -ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao -lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/ -vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi -Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi -MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH -ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0 -1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq -KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV -xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP -NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r -GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE -xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx -gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy -sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD -BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw= ------END CERTIFICATE----- - -certSIGN ROOT CA -================ ------BEGIN CERTIFICATE----- -MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD -VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa -Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE -CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I -JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH -rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2 -ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD -0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943 -AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B -Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB -AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8 -SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0 -x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt -vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz -TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD ------END CERTIFICATE----- - -NetLock Arany (Class Gold) Főtanúsítvány -======================================== ------BEGIN CERTIFICATE----- -MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G -A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610 -dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB -cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx -MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO -ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv -biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6 -c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu -0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw -/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk -H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw -fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1 -neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB -BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW -qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta -YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC -bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna -NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu -dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= ------END CERTIFICATE----- - -Hongkong Post Root CA 1 -======================= ------BEGIN CERTIFICATE----- -MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT -DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx -NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n -IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1 -ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr -auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh -qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY -V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV -HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i -h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio -l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei -IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps -T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT -c4afU9hDDl3WY4JxHYB0yvbiAmvZWg== ------END CERTIFICATE----- - -SecureSign RootCA11 -=================== ------BEGIN CERTIFICATE----- -MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi -SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS -b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw -KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1 -cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL -TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO -wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq -g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP -O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA -bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX -t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh -OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r -bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ -Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01 -y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061 -lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I= ------END CERTIFICATE----- - -Microsec e-Szigno Root CA 2009 -============================== ------BEGIN CERTIFICATE----- -MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER -MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv -c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o -dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE -BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt -U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA -fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG -0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA -pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm -1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC -AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf -QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE -FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o -lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX -I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 -tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02 -yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi -LXpUq3DDfSJlgnCW ------END CERTIFICATE----- - -GlobalSign Root CA - R3 -======================= ------BEGIN CERTIFICATE----- -MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv -YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh -bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT -aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln -bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt -iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ -0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3 -rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl -OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2 -xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE -FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7 -lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8 -EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E -bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18 -YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r -kpeDMdmztcpHWD9f ------END CERTIFICATE----- - -Autoridad de Certificacion Firmaprofesional CIF A62634068 -========================================================= ------BEGIN CERTIFICATE----- -MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA -BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 -MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw -QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB -NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD -Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P -B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY -7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH -ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI -plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX -MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX -LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK -bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU -vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud -EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH -DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp -cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA -bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx -ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx -51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk -R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP -T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f -Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl -osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR -crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR -saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD -KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi -6Et8Vcad+qMUu2WFbm5PEn4KPJ2V ------END CERTIFICATE----- - -Izenpe.com -========== ------BEGIN CERTIFICATE----- -MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG -EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz -MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu -QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ -03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK -ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU -+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC -PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT -OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK -F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK -0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+ -0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB -leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID -AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+ -SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG -NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx -MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O -BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l -Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga -kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q -hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs -g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5 -aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5 -nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC -ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo -Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z -WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw== ------END CERTIFICATE----- - -Go Daddy Root Certificate Authority - G2 -======================================== ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT -B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu -MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 -MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 -b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G -A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq -9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD -+qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd -fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl -NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9 -BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac -vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r -5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV -N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO -LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1 ------END CERTIFICATE----- - -Starfield Root Certificate Authority - G2 -========================================= ------BEGIN CERTIFICATE----- -MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT -B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s -b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 -eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw -DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg -VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB -dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv -W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs -bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk -N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf -ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU -JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol -TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx -4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw -F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K -pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ -c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 ------END CERTIFICATE----- - -Starfield Services Root Certificate Authority - G2 -================================================== ------BEGIN CERTIFICATE----- -MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT -B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s -b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl -IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV -BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT -dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg -Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2 -h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa -hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP -LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB -rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw -AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG -SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP -E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy -xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd -iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza -YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6 ------END CERTIFICATE----- - -AffirmTrust Commercial -====================== ------BEGIN CERTIFICATE----- -MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS -BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw -MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly -bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb -DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV -C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6 -BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww -MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV -HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG -hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi -qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv -0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh -sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= ------END CERTIFICATE----- - -AffirmTrust Networking -====================== ------BEGIN CERTIFICATE----- -MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS -BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw -MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly -bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE -Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI -dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24 -/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb -h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV -HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu -UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6 -12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23 -WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9 -/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= ------END CERTIFICATE----- - -AffirmTrust Premium -=================== ------BEGIN CERTIFICATE----- -MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS -BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy -OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy -dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A -MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn -BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV -5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs -+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd -GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R -p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI -S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04 -6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5 -/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo -+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB -/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv -MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg -Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC -6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S -L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK -+4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV -BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg -IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60 -g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb -zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw== ------END CERTIFICATE----- - -AffirmTrust Premium ECC -======================= ------BEGIN CERTIFICATE----- -MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV -BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx -MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U -cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA -IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ -N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW -BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK -BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X -57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM -eQ== ------END CERTIFICATE----- - -Certum Trusted Network CA -========================= ------BEGIN CERTIFICATE----- -MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK -ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy -MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU -ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC -l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J -J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4 -fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0 -cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB -Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw -DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj -jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1 -mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj -Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI -03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= ------END CERTIFICATE----- - -TWCA Root Certification Authority -================================= ------BEGIN CERTIFICATE----- -MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ -VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG -EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB -IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK -AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx -QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC -oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP -4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r -y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB -BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG -9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC -mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW -QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY -T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny -Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== ------END CERTIFICATE----- - -Security Communication RootCA2 -============================== ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc -U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh -dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC -SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy -aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++ -+T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R -3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV -spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K -EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8 -QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB -CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj -u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk -3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q -tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29 -mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 ------END CERTIFICATE----- - -Actalis Authentication Root CA -============================== ------BEGIN CERTIFICATE----- -MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM -BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE -AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky -MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz -IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 -IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ -wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa -by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6 -zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f -YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2 -oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l -EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7 -hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8 -EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5 -jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY -iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt -ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI -WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0 -JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx -K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+ -Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC -4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo -2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz -lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem -OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9 -vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== ------END CERTIFICATE----- - -Buypass Class 2 Root CA -======================= ------BEGIN CERTIFICATE----- -MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU -QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X -DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 -eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw -DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1 -g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn -9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b -/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU -CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff -awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI -zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn -Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX -Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs -M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD -VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF -AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s -A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI -osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S -aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd -DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD -LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0 -oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC -wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS -CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN -rJgWVqA= ------END CERTIFICATE----- - -Buypass Class 3 Root CA -======================= ------BEGIN CERTIFICATE----- -MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU -QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X -DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 -eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw -DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH -sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR -5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh -7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ -ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH -2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV -/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ -RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA -Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq -j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD -VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF -AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV -cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G -uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG -Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8 -ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2 -KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz -6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug -UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe -eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi -Cp/HuZc= ------END CERTIFICATE----- - -T-TeleSec GlobalRoot Class 3 -============================ ------BEGIN CERTIFICATE----- -MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM -IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU -cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx -MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz -dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD -ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK -9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU -NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF -iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W -0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA -MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr -AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb -fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT -ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h -P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml -e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw== ------END CERTIFICATE----- - -D-TRUST Root Class 3 CA 2 2009 -============================== ------BEGIN CERTIFICATE----- -MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK -DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe -Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE -LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD -ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA -BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv -KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z -p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC -AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ -4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y -eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw -MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G -PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw -OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm -2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 -o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV -dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph -X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I= ------END CERTIFICATE----- - -D-TRUST Root Class 3 CA 2 EV 2009 -================================= ------BEGIN CERTIFICATE----- -MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK -DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw -OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK -DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw -OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS -egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh -zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T -7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60 -sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35 -11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv -cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v -ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El -MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp -b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh -c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+ -PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 -nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX -ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA -NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv -w9y4AyHqnxbxLFS1 ------END CERTIFICATE----- - -CA Disig Root R2 -================ ------BEGIN CERTIFICATE----- -MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw -EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp -ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx -EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp -c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC -w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia -xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7 -A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S -GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV -g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa -5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE -koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A -Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i -Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV -HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u -Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM -tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV -sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je -dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8 -1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx -mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01 -utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0 -sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg -UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV -7+ZtsH8tZ/3zbBt1RqPlShfppNcL ------END CERTIFICATE----- - -ACCVRAIZ1 -========= ------BEGIN CERTIFICATE----- -MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB -SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1 -MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH -UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM -jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0 -RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD -aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ -0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG -WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7 -8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR -5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J -9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK -Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw -Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu -Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 -VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM -Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA -QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh -AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA -YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj -AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA -IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk -aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0 -dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2 -MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI -hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E -R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN -YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49 -nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ -TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3 -sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h -I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg -Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd -3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p -EfbRD0tVNEYqi4Y7 ------END CERTIFICATE----- - -TWCA Global Root CA -=================== ------BEGIN CERTIFICATE----- -MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT -CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD -QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK -EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg -Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C -nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV -r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR -Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV -tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W -KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99 -sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p -yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn -kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI -zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC -AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g -cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn -LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M -8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg -/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg -lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP -A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m -i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8 -EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3 -zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0= ------END CERTIFICATE----- - -TeliaSonera Root CA v1 -====================== ------BEGIN CERTIFICATE----- -MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE -CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4 -MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW -VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+ -6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA -3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k -B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn -Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH -oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3 -F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ -oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7 -gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc -TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB -AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW -DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm -zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx -0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW -pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV -G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc -c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT -JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2 -qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6 -Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems -WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= ------END CERTIFICATE----- - -E-Tugra Certification Authority -=============================== ------BEGIN CERTIFICATE----- -MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w -DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls -ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN -ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw -NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx -QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl -cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD -DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A -MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd -hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K -CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g -ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ -BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0 -E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz -rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq -jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn -rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5 -dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB -/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG -MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK -kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO -XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807 -VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo -a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc -dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV -KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT -Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0 -8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G -C7TbO6Orb1wdtn7os4I07QZcJA== ------END CERTIFICATE----- - -T-TeleSec GlobalRoot Class 2 -============================ ------BEGIN CERTIFICATE----- -MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM -IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU -cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx -MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz -dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD -ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ -SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F -vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970 -2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV -WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA -MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy -YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4 -r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf -vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR -3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN -9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg== ------END CERTIFICATE----- - -Atos TrustedRoot 2011 -===================== ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU -cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4 -MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG -A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV -hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr -54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+ -DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320 -HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR -z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R -l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ -bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB -CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h -k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh -TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9 -61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G -3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed ------END CERTIFICATE----- - -QuoVadis Root CA 1 G3 -===================== ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG -A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv -b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN -MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg -RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE -PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm -PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6 -Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN -ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l -g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV -7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX -9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f -iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg -t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI -hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC -MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3 -GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct -Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP -+V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh -3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa -wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6 -O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0 -FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV -hMJKzRwuJIczYOXD ------END CERTIFICATE----- - -QuoVadis Root CA 2 G3 -===================== ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDELMAkG -A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv -b3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJN -MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIg -RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFh -ZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMWn4rjyduY -NM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ymc5GQYaYDFCDy54ejiK2t -oIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+o -MiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+l -V0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZo -L1NesNKqIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQ -sSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD -6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxh -lRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZI -hvcNAQELBQADggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66 -AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7K -pVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9 -x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgz -dWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6X -U/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+Nw -mNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNgKCLjsZWD -zYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeMHVOyToV7BjjHLPj4sHKN -JeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0ZiC3oheGe7IUIarFsNMkd7Egr -O3jtZsSOeWmD3n+M ------END CERTIFICATE----- - -QuoVadis Root CA 3 G3 -===================== ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDELMAkG -A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv -b3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJN -MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMg -RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286 -IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL -Mon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXRU7Ox7sWTaYI+FrUoRqHe -6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+cra1AdHkrAj80//ogaX3T7mH1urPnMNA3 -I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3U -VDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f7 -5li59wzweyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqi -Md5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DM -dyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/Yt -rQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZI -hvcNAQELBQADggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px -KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzS -t/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ -TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9Du -DcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGib -Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD -hPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+DhcI00iX -0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HNPlopNLk9hM6xZdRZkZFW -dSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDYWGWVjUTR939+J399roD1B0y2 -PpxxVJkES/1Y+Zj0 ------END CERTIFICATE----- - -DigiCert Assured ID Root G2 -=========================== ------BEGIN CERTIFICATE----- -MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw -IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw -MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL -ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH -35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq -bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw -VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP -YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn -lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO -w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv -0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz -d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW -hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M -jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo -IhNzbM8m9Yop5w== ------END CERTIFICATE----- - -DigiCert Assured ID Root G3 -=========================== ------BEGIN CERTIFICATE----- -MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV -UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD -VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 -MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ -BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb -RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs -KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF -UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy -YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy -1vUhZscv6pZjamVFkpUBtA== ------END CERTIFICATE----- - -DigiCert Global Root G2 -======================= ------BEGIN CERTIFICATE----- -MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw -HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx -MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 -dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq -hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ -kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO -3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV -BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM -UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB -o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu -5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr -F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U -WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH -QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/ -iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl -MrY= ------END CERTIFICATE----- - -DigiCert Global Root G3 -======================= ------BEGIN CERTIFICATE----- -MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV -UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD -VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw -MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k -aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C -AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O -YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP -BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp -Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y -3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34 -VOKa5Vt8sycX ------END CERTIFICATE----- - -DigiCert Trusted Root G4 -======================== ------BEGIN CERTIFICATE----- -MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw -HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 -MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G -CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp -pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o -k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa -vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY -QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6 -MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm -mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7 -f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH -dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8 -oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud -DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD -ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY -ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr -yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy -7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah -ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN -5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb -/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa -5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK -G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP -82Z+ ------END CERTIFICATE----- - -COMODO RSA Certification Authority -================================== ------BEGIN CERTIFICATE----- -MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UE -BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG -A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkwHhcNMTAwMTE5MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMC -R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE -ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR6FSS0gpWsawNJN3Fz0Rn -dJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8Xpz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZ -FGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+ -5eNu/Nio5JIk2kNrYrhV/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pG -x8cgoLEfZd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z+pUX -2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7wqP/0uK3pN/u6uPQL -OvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZahSL0896+1DSJMwBGB7FY79tOi4lu3 -sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVICu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+C -GCe01a60y1Dma/RMhnEw6abfFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5 -WdYgGq/yapiqcrxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E -FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w -DQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvlwFTPoCWOAvn9sKIN9SCYPBMt -rFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+ -nq6PK7o9mfjYcwlYRm6mnPTXJ9OV2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSg -tZx8jb8uk2IntznaFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwW -sRqZCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiKboHGhfKp -pC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmckejkk9u+UJueBPSZI9FoJA -zMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yLS0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHq -ZJx64SIDqZxubw5lT2yHh17zbqD5daWbQOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk52 -7RH89elWsn2/x20Kk4yl0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7I -LaZRfyHBNVOFBkpdn627G190 ------END CERTIFICATE----- - -USERTrust RSA Certification Authority -===================================== ------BEGIN CERTIFICATE----- -MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK -ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK -ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCAEmUXNg7D2wiz -0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2j -Y0K2dvKpOyuR+OJv0OwWIJAJPuLodMkYtJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFn -RghRy4YUVD+8M/5+bJz/Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O -+T23LLb2VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT79uq -/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6c0Plfg6lZrEpfDKE -Y1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmTYo61Zs8liM2EuLE/pDkP2QKe6xJM -lXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97lc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8 -yexDJtC/QV9AqURE9JnnV4eeUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+ -eLf8ZxXhyVeEHg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd -BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF -MAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPFUp/L+M+ZBn8b2kMVn54CVVeW -FPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KOVWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ -7l8wXEskEVX/JJpuXior7gtNn3/3ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQ -Eg9zKC7F4iRO/Fjs8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM -8WcRiQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYzeSf7dNXGi -FSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZXHlKYC6SQK5MNyosycdi -yA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9c -J2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRBVXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGw -sAvgnEzDHNb842m1R0aBL6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gx -Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9 ------END CERTIFICATE----- - -USERTrust ECC Certification Authority -===================================== ------BEGIN CERTIFICATE----- -MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC -VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU -aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC -VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU -aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2 -0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez -nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV -HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB -HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu -9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= ------END CERTIFICATE----- - -GlobalSign ECC Root CA - R5 -=========================== ------BEGIN CERTIFICATE----- -MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb -R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD -EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb -R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD -EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 -SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS -h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd -BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx -uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 -yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 ------END CERTIFICATE----- - -Staat der Nederlanden EV Root CA -================================ ------BEGIN CERTIFICATE----- -MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE -CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g -RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M -MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl -cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk -SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW -O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r -0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8 -Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV -XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr -08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV -0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd -74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx -fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa -ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI -eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu -c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq -5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN -b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN -f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi -5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4 -WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK -DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy -eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg== ------END CERTIFICATE----- - -IdenTrust Commercial Root CA 1 -============================== ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQG -EwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBS -b290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzES -MBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENB -IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ld -hNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/ -mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi -1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0C -XZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl -3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzy -NeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzV -WYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAg -xGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHix -uuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC -AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZI -hvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH -6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pg -ghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt -ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmV -YjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUX -feu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/ro -kTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe -2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskz -Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R -cGzM7vRX+Bi6hG6H ------END CERTIFICATE----- - -IdenTrust Public Sector Root CA 1 -================================= ------BEGIN CERTIFICATE----- -MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG -EwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3Rv -ciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJV -UzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBS -b290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTy -P4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGyRBb06tD6 -Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlSbdsHyo+1W/CD80/HLaXI -rcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF/YTLNiCBWS2ab21ISGHKTN9T0a9SvESf -qy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoS -mJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFn -ol57plzy9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyh -LrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/v -iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL -4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B -Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMw -DQYJKoZIhvcNAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj -t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7A -mgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt -GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFt -m6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMx -NRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4 -Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJtshquDDI -ajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhAGaQdp/lLQzfcaFpPz+vC -ZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ -3Wl9af0AVqW3rLatt8o+Ae+c ------END CERTIFICATE----- - -Entrust Root Certification Authority - G2 -========================================= ------BEGIN CERTIFICATE----- -MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV -BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy -bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug -b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw -HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT -DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx -OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s -eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP -/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz -HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU -s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y -TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx -AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6 -0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z -iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ -Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi -nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+ -vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO -e4pIb4tF9g== ------END CERTIFICATE----- - -Entrust Root Certification Authority - EC1 -========================================== ------BEGIN CERTIFICATE----- -MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx -FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn -YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl -ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw -FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs -LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg -dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt -IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy -AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef -9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE -FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h -vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8 -kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G ------END CERTIFICATE----- - -CFCA EV ROOT -============ ------BEGIN CERTIFICATE----- -MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UE -CgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNB -IEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEw -MC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD -DAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnV -BU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD -7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DN -uF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyW -ZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7 -xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9f -py25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8K -gWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIol -hdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJ -tqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAf -BgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB -/wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB -ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9q -ecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua -4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sG -E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX -BDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjn -aH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhy -PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX -kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C -ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su ------END CERTIFICATE----- - -OISTE WISeKey Global Root GB CA -=============================== ------BEGIN CERTIFICATE----- -MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQG -EwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl -ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAw -MzJaFw0zOTEyMDExNTEwMzFaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYD -VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEds -b2JhbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3HEokKtaX -scriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGxWuR51jIjK+FTzJlFXHtP -rby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk -9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNku7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4o -Qnc/nSMbsrY9gBQHTC5P99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvg -GUpuuy9rM2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB -/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZI -hvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrghcViXfa43FK8+5/ea4n32cZiZBKpD -dHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0 -VQreUGdNZtGn//3ZwLWoo4rOZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEui -HZeeevJuQHHfaPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic -Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM= ------END CERTIFICATE----- - -SZAFIR ROOT CA2 -=============== ------BEGIN CERTIFICATE----- -MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTELMAkG -A1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNV -BAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJ -BgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYD -VQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5Q -qEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT3PSQ1hNK -DJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw3gAeqDRHu5rr/gsUvTaE -2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr63fE9biCloBK0TXC5ztdyO4mTp4CEHCdJ -ckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwi -ieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P -AQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOC -AQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5 -O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67 -oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul -4+vJhaAlIDf7js4MNIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6 -+/NNIxuZMzSgLvWpCz/UXeHPhJ/iGcJfitYgHuNztw== ------END CERTIFICATE----- - -Certum Trusted Network CA 2 -=========================== ------BEGIN CERTIFICATE----- -MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UE -BhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1 -bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29y -ayBDQSAyMCIYDzIwMTExMDA2MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQ -TDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENl -cnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENB -IDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWADGSdhhuWZGc/IjoedQF9 -7/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+o -CgCXhVqqndwpyeI1B+twTUrWwbNWuKFBOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40b -Rr5HMNUuctHFY9rnY3lEfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2p -uTRZCr+ESv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1mo130 -GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02isx7QBlrd9pPPV3WZ -9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOWOZV7bIBaTxNyxtd9KXpEulKkKtVB -Rgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pye -hizKV/Ma5ciSixqClnrDvFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vM -BhBgu4M1t15n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI -hvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQF/xlhMcQSZDe28cmk4gmb3DW -Al45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuA -L55MYIR4PSFk1vtBHxgP58l1cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMo -clm2q8KMZiYcdywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tM -pkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jbAoJnwTnb -w3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksqP/ujmv5zMnHCnsZy4Ypo -J/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Kob7a6bINDd82Kkhehnlt4Fj1F4jNy3eFm -ypnTycUm/Q1oBEauttmbjL4ZvrHG8hnjXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLX -is7VmFxWlgPF7ncGNf/P5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7 -zAYspsbiDrW5viSP ------END CERTIFICATE----- - -Hellenic Academic and Research Institutions RootCA 2015 -======================================================= ------BEGIN CERTIFICATE----- -MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcT -BkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0 -aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl -YXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAx -MTIxWjCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMg -QWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNV -BAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIw -MTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDC+Kk/G4n8PDwEXT2QNrCROnk8Zlrv -bTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+eh -iGsxr/CL0BgzuNtFajT0AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+ -6PAQZe104S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06CojXd -FPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV9Cz82XBST3i4vTwr -i5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrDgfgXy5I2XdGj2HUb4Ysn6npIQf1F -GQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2 -fu/Z8VFRfS0myGlZYeCsargqNhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9mu -iNX6hME6wGkoLfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc -Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVdctA4GGqd83EkVAswDQYJKoZI -hvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0IXtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+ -D1hYc2Ryx+hFjtyp8iY/xnmMsVMIM4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrM -d/K4kPFox/la/vot9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+y -d+2VZ5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/eaj8GsGsVn -82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnhX9izjFk0WaSrT2y7Hxjb -davYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQl033DlZdwJVqwjbDG2jJ9SrcR5q+ss7F -Jej6A7na+RZukYT1HCjI/CbM1xyQVqdfbzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVt -J94Cj8rDtSvK6evIIVM4pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGa -JI7ZjnHKe7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0vm9q -p/UsQu0yrbYhnr68 ------END CERTIFICATE----- - -Hellenic Academic and Research Institutions ECC RootCA 2015 -=========================================================== ------BEGIN CERTIFICATE----- -MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0 -aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u -cyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj -aCBJbnN0aXR1dGlvbnMgRUNDIFJvb3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEw -MzcxMlowgaoxCzAJBgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmlj -IEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUQwQgYD -VQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIEVDQyBSb290 -Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKgQehLgoRc4vgxEZmGZE4JJS+dQS8KrjVP -dJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJajq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoK -Vlp8aQuqgAkkbH7BRqNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O -BBYEFLQiC4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaeplSTA -GiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7SofTUwJCA3sS61kFyjn -dc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR ------END CERTIFICATE----- - -ISRG Root X1 -============ ------BEGIN CERTIFICATE----- -MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAwTzELMAkGA1UE -BhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQD -EwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQG -EwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMT -DElTUkcgUm9vdCBYMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54r -Vygch77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+0TM8ukj1 -3Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6UA5/TR5d8mUgjU+g4rk8K -b4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sWT8KOEUt+zwvo/7V3LvSye0rgTBIlDHCN -Aymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyHB5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ -4Q7e2RCOFvu396j3x+UCB5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf -1b0SHzUvKBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWnOlFu -hjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTnjh8BCNAw1FtxNrQH -usEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbwqHyGO0aoSCqI3Haadr8faqU9GY/r -OPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CIrU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4G -A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY -9umbbjANBgkqhkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL -ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ3BebYhtF8GaV -0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KKNFtY2PwByVS5uCbMiogziUwt -hDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJw -TdwJx4nLCgdNbOhdjsnvzqvHu7UrTkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nx -e5AW0wdeRlN8NwdCjNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZA -JzVcoyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq4RgqsahD -YVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPAmRGunUHBcnWEvgJBQl9n -JEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57demyPxgcYxn/eR44/KJ4EBs+lVDR3veyJ -m+kXQ99b21/+jh5Xos1AnX5iItreGCc= ------END CERTIFICATE----- - -AC RAIZ FNMT-RCM -================ ------BEGIN CERTIFICATE----- -MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsxCzAJBgNVBAYT -AkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTAeFw0wODEw -MjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJD -TTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC -ggIBALpxgHpMhm5/yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcf -qQgfBBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAzWHFctPVr -btQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxFtBDXaEAUwED653cXeuYL -j2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z374jNUUeAlz+taibmSXaXvMiwzn15Cou -08YfxGyqxRxqAQVKL9LFwag0Jl1mpdICIfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mw -WsXmo8RZZUc1g16p6DULmbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnT -tOmlcYF7wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peSMKGJ -47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2ZSysV4999AeU14EC -ll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMetUqIJ5G+GR4of6ygnXYMgrwTJbFaa -i0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE -FPd9xf3E6Jobd2Sn9R2gzL+HYJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1o -dHRwOi8vd3d3LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD -nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1RXxlDPiyN8+s -D8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYMLVN0V2Ue1bLdI4E7pWYjJ2cJ -j+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrT -Qfv6MooqtyuGC2mDOL7Nii4LcK2NJpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW -+YJF1DngoABd15jmfZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7 -Ixjp6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp1txyM/1d -8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B9kiABdcPUXmsEKvU7ANm -5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wokRqEIr9baRRmW1FMdW4R58MD3R++Lj8UG -rp1MYp3/RgT408m2ECVAdf4WqslKYIYvuu8wd+RU4riEmViAqhOLUTpPSPaLtrM= ------END CERTIFICATE----- - -Amazon Root CA 1 -================ ------BEGIN CERTIFICATE----- -MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsFADA5MQswCQYD -VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAxMB4XDTE1 -MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv -bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBALJ4gHHKeNXjca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgH -FzZM9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qwIFAGbHrQ -gLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6VOujw5H5SNz/0egwLX0t -dHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L93FcXmn/6pUCyziKrlA4b9v7LWIbxcce -VOF34GfID5yHI9Y/QCB/IIDEgEw+OyQmjgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB -/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3 -DQEBCwUAA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDIU5PM -CCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUsN+gDS63pYaACbvXy -8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vvo/ufQJVtMVT8QtPHRh8jrdkPSHCa -2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2 -xJNDd2ZhwLnoQdeXeGADbkpyrqXRfboQnoZsG4q5WTP468SQvvG5 ------END CERTIFICATE----- - -Amazon Root CA 2 -================ ------BEGIN CERTIFICATE----- -MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwFADA5MQswCQYD -VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAyMB4XDTE1 -MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv -bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC -ggIBAK2Wny2cSkxKgXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4 -kHbZW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg1dKmSYXp -N+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K8nu+NQWpEjTj82R0Yiw9 -AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvd -fLC6HM783k81ds8P+HgfajZRRidhW+mez/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAEx -kv8LV/SasrlX6avvDXbR8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSS -btqDT6ZjmUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz7Mt0 -Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6+XUyo05f7O0oYtlN -c/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI0u1ufm8/0i2BWSlmy5A5lREedCf+ -3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSw -DPBMMPQFWAJI/TPlUq9LhONmUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oA -A7CXDpO8Wqj2LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY -+gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kSk5Nrp+gvU5LE -YFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl7uxMMne0nxrpS10gxdr9HIcW -xkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygmbtmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQ -gj9sAq+uEjonljYE1x2igGOpm/HlurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbW -aQbLU8uz/mtBzUF+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoV -Yh63n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE76KlXIx3 -KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H9jVlpNMKVv/1F2Rs76gi -JUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT4PsJYGw= ------END CERTIFICATE----- - -Amazon Root CA 3 -================ ------BEGIN CERTIFICATE----- -MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG -EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy -NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ -MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB -f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr -Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43 -rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc -eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw== ------END CERTIFICATE----- - -Amazon Root CA 4 -================ ------BEGIN CERTIFICATE----- -MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYDVQQG -EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTE1MDUy -NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ -MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN -/sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri -83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV -HQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WBMAoGCCqGSM49BAMDA2gA -MGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlwCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1 -AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJElMzrdfkviT8tQp21KW8EA== ------END CERTIFICATE----- - -TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 -============================================= ------BEGIN CERTIFICATE----- -MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIxGDAWBgNVBAcT -D0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxpbXNlbCB2ZSBUZWtub2xvamlr -IEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0wKwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24g -TWVya2V6aSAtIEthbXUgU00xNjA0BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRp -ZmlrYXNpIC0gU3VydW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYD -VQQGEwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXllIEJpbGlt -c2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklUQUsxLTArBgNVBAsTJEth -bXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBTTTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11 -IFNNIFNTTCBLb2sgU2VydGlmaWthc2kgLSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAr3UwM6q7a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y8 -6Ij5iySrLqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INrN3wc -wv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2XYacQuFWQfw4tJzh0 -3+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/iSIzL+aFCr2lqBs23tPcLG07xxO9 -WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4fAJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQU -ZT/HiobGPN08VFw1+DrtUgxHV8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJ -KoZIhvcNAQELBQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh -AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPfIPP54+M638yc -lNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4lzwDGrpDxpa5RXI4s6ehlj2R -e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0j -q5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM= ------END CERTIFICATE----- - -GDCA TrustAUTH R5 ROOT -====================== ------BEGIN CERTIFICATE----- -MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCQ04xMjAw -BgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8wHQYDVQQD -DBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVow -YjELMAkGA1UEBhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ -IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0B -AQEFAAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJjDp6L3TQs -AlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBjTnnEt1u9ol2x8kECK62p -OqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+uKU49tm7srsHwJ5uu4/Ts765/94Y9cnrr -pftZTqfrlYwiOXnhLQiPzLyRuEH3FMEjqcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ -9Cy5WmYqsBebnh52nUpmMUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQ -xXABZG12ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloPzgsM -R6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3GkL30SgLdTMEZeS1SZ -D2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeCjGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4 -oR24qoAATILnsn8JuLwwoC8N9VKejveSswoAHQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx -9hoh49pwBiFYFIeFd3mqgnkCAwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlR -MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg -p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZmDRd9FBUb1Ov9 -H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5COmSdI31R9KrO9b7eGZONn35 -6ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ryL3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd -+PwyvzeG5LuOmCd+uh8W4XAR8gPfJWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQ -HtZa37dG/OaG+svgIHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBD -F8Io2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV09tL7ECQ -8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQXR4EzzffHqhmsYzmIGrv -/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrqT8p+ck0LcIymSLumoRT2+1hEmRSuqguT -aaApJUqlyyvdimYHFngVV3Eb7PVHhPOeMTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g== ------END CERTIFICATE----- - -TrustCor RootCert CA-1 -====================== ------BEGIN CERTIFICATE----- -MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYDVQQGEwJQQTEP -MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig -U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp -dHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkx -MjMxMTcyMzE2WjCBpDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFu -YW1hIENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUGA1UECwwe -VHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZUcnVzdENvciBSb290Q2Vy -dCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv463leLCJhJrMxnHQFgKq1mq -jQCj/IDHUHuO1CAmujIS2CNUSSUQIpidRtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4 -pQa81QBeCQryJ3pS/C3Vseq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0 -JEsq1pme9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CVEY4h -gLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorWhnAbJN7+KIor0Gqw -/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/DeOxCbeKyKsZn3MzUOcwHwYDVR0j -BBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AYYwDQYJKoZIhvcNAQELBQADggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5 -mDo4Nvu7Zp5I/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf -ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZyonnMlo2HD6C -qFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djtsL1Ac59v2Z3kf9YKVmgenFK+P -3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdNzl/HHk484IkzlQsPpTLWPFp5LBk= ------END CERTIFICATE----- - -TrustCor RootCert CA-2 -====================== ------BEGIN CERTIFICATE----- -MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNVBAYTAlBBMQ8w -DQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQwIgYDVQQKDBtUcnVzdENvciBT -eXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0 -eTEfMB0GA1UEAwwWVHJ1c3RDb3IgUm9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEy -MzExNzI2MzlaMIGkMQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5h -bWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U -cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0 -IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnIG7CKqJiJJWQdsg4foDSq8Gb -ZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9Nk -RvRUqdw6VC0xK5mC8tkq1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1 -oYxOdqHp2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nKDOOb -XUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hapeaz6LMvYHL1cEksr1 -/p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF3wP+TfSvPd9cW436cOGlfifHhi5q -jxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQP -eSghYA2FFn3XVDjxklb9tTNMg9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+Ctg -rKAmrhQhJ8Z3mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh -8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAdBgNVHQ4EFgQU -2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6UnrybPZx9mCAZ5YwwYrIwDwYD -VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/h -Osh80QA9z+LqBrWyOrsGS2h60COXdKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnp -kpfbsEZC89NiqpX+MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv -2wnL/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RXCI/hOWB3 -S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYaZH9bDTMJBzN7Bj8RpFxw -PIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dv -DDqPys/cA8GiCcjl/YBeyGBCARsaU1q7N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYU -RpFHmygk71dSTlxCnKr3Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANE -xdqtvArBAs8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp5KeX -RKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu1uwJ ------END CERTIFICATE----- - -TrustCor ECA-1 -============== ------BEGIN CERTIFICATE----- -MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYDVQQGEwJQQTEP -MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig -U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp -dHkxFzAVBgNVBAMMDlRydXN0Q29yIEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3Mjgw -N1owgZwxCzAJBgNVBAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5 -MSQwIgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29y -IENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3IgRUNBLTEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb3w9U73NjKYKtR8aja+3+XzP4Q1HpGjOR -MRegdMTUpwHmspI+ap3tDvl0mEDTPwOABoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23 -xFUfJ3zSCNV2HykVh0A53ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmc -p0yJF4OuowReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/wZ0+ -fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZFZtS6mFjBAgMBAAGj -YzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAfBgNVHSMEGDAWgBREnkj1zG1I1KBL -f/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF -AAOCAQEABT41XBVwm8nHc2FvcivUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u -/ukZMjgDfxT2AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F -hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50soIipX1TH0Xs -J5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BIWJZpTdwHjFGTot+fDz2LYLSC -jaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1WitJ/X5g== ------END CERTIFICATE----- - -SSL.com Root Certification Authority RSA -======================================== ------BEGIN CERTIFICATE----- -MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxDjAM -BgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24x -MTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYw -MjEyMTczOTM5WhcNNDEwMjEyMTczOTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx -EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NM -LmNvbSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2RxFdHaxh3a3by/ZPkPQ/C -Fp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aXqhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8 -P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcCC52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/ge -oeOy3ZExqysdBP+lSgQ36YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkp -k8zruFvh/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrFYD3Z -fBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93EJNyAKoFBbZQ+yODJ -gUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVcUS4cK38acijnALXRdMbX5J+tB5O2 -UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi8 -1xtZPCvM8hnIk2snYxnP/Okm+Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4s -bE6x/c+cCbqiM+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV -HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4GA1UdDwEB/wQE -AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGVcpNxJK1ok1iOMq8bs3AD/CUr -dIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBcHadm47GUBwwyOabqG7B52B2ccETjit3E+ZUf -ijhDPwGFpUenPUayvOUiaPd7nNgsPgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAsl -u1OJD7OAUN5F7kR/q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjq -erQ0cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jra6x+3uxj -MxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90IH37hVZkLId6Tngr75qNJ -vTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/YK9f1JmzJBjSWFupwWRoyeXkLtoh/D1JI -Pb9s2KJELtFOt3JY04kTlf5Eq/jXixtunLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406y -wKBjYZC6VWg3dGq2ktufoYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NI -WuuA8ShYIc2wBlX7Jz9TkHCpBB5XJ7k= ------END CERTIFICATE----- - -SSL.com Root Certification Authority ECC -======================================== ------BEGIN CERTIFICATE----- -MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMCVVMxDjAMBgNV -BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xMTAv -BgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEy -MTgxNDAzWhcNNDEwMjEyMTgxNDAzWjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAO -BgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv -bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuBBAAiA2IA -BEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI7Z4INcgn64mMU1jrYor+ -8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPgCemB+vNH06NjMGEwHQYDVR0OBBYEFILR -hXMw5zUE044CkvvlpNHEIejNMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTT -jgKS++Wk0cQh6M0wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCW -e+0F+S8Tkdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+gA0z -5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl ------END CERTIFICATE----- - -SSL.com EV Root Certification Authority RSA R2 -============================================== ------BEGIN CERTIFICATE----- -MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNVBAYTAlVTMQ4w -DAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9u -MTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy -MB4XDTE3MDUzMTE4MTQzN1oXDTQyMDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQI -DAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYD -VQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMIICIjAN -BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvqM0fNTPl9fb69LT3w23jh -hqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssufOePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7w -cXHswxzpY6IXFJ3vG2fThVUCAtZJycxa4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTO -Zw+oz12WGQvE43LrrdF9HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+ -B6KjBSYRaZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcAb9Zh -CBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQGp8hLH94t2S42Oim -9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQVPWKchjgGAGYS5Fl2WlPAApiiECto -RHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMOpgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+Slm -JuwgUHfbSguPvuUCYHBBXtSuUDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48 -+qvWBkofZ6aYMBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV -HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa49QaAJadz20Zp -qJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBWs47LCp1Jjr+kxJG7ZhcFUZh1 -++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nx -Y/hoLVUE0fKNsKTPvDxeH3jnpaAgcLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2G -guDKBAdRUNf/ktUM79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDz -OFSz/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXtll9ldDz7 -CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEmKf7GUmG6sXP/wwyc5Wxq -lD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKKQbNmC1r7fSOl8hqw/96bg5Qu0T/fkreR -rwU7ZcegbLHNYhLDkBvjJc40vG93drEQw/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1 -hlMYegouCRw2n5H9gooiS9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX -9hwJ1C07mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w== ------END CERTIFICATE----- - -SSL.com EV Root Certification Authority ECC -=========================================== ------BEGIN CERTIFICATE----- -MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMCVVMxDjAMBgNV -BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xNDAy -BgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYw -MjEyMTgxNTIzWhcNNDEwMjEyMTgxNTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx -EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NM -LmNvbSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB -BAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMAVIbc/R/fALhBYlzccBYy -3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1KthkuWnBaBu2+8KGwytAJKaNjMGEwHQYDVR0O -BBYEFFvKXuXe0oGqzagtZFG22XKbl+ZPMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe -5d7SgarNqC1kUbbZcpuX5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJ -N+vp1RPZytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZgh5Mm -m7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg== ------END CERTIFICATE----- - -GlobalSign Root CA - R6 -======================= ------BEGIN CERTIFICATE----- -MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEgMB4GA1UECxMX -R2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds -b2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQxMjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9i -YWxTaWduIFJvb3QgQ0EgLSBSNjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFs -U2lnbjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQss -grRIxutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1kZguSgMpE -3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxDaNc9PIrFsmbVkJq3MQbF -vuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJwLnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqM -PKq0pPbzlUoSB239jLKJz9CgYXfIWHSw1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+ -azayOeSsJDa38O+2HBNXk7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05O -WgtH8wY2SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/hbguy -CLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4nWUx2OVvq+aWh2IMP -0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpYrZxCRXluDocZXFSxZba/jJvcE+kN -b7gu3GduyYsRtYQUigAZcIN5kZeR1BonvzceMgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQE -AwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNV -HSMEGDAWgBSubAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN -nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGtIxg93eFyRJa0 -lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr6155wsTLxDKZmOMNOsIeDjHfrY -BzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLjvUYAGm0CuiVdjaExUd1URhxN25mW7xocBFym -Fe944Hn+Xds+qkxV/ZoVqW/hpvvfcDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr -3TsTjxKM4kEaSHpzoHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB1 -0jZpnOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfspA9MRf/T -uTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+vJJUEeKgDu+6B5dpffItK -oZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+t -JDfLRVpOoERIyNiwmcUVhAn21klJwGW45hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA= ------END CERTIFICATE----- - -OISTE WISeKey Global Root GC CA -=============================== ------BEGIN CERTIFICATE----- -MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQswCQYDVQQGEwJD -SDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEo -MCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRa -Fw00MjA1MDkwOTU4MzNaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQL -ExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh -bCBSb290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4nieUqjFqdr -VCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4Wp2OQ0jnUsYd4XxiWD1Ab -NTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd -BgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7TrYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0E -AwMDaAAwZQIwJsdpW9zV57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtk -AjEA2zQgMgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9 ------END CERTIFICATE----- - -UCA Global G2 Root -================== ------BEGIN CERTIFICATE----- -MIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9MQswCQYDVQQG -EwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBHbG9iYWwgRzIgUm9vdDAeFw0x -NjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0xCzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlU -cnVzdDEbMBkGA1UEAwwSVUNBIEdsb2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A -MIICCgKCAgEAxeYrb3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmT -oni9kmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzmVHqUwCoV -8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/RVogvGjqNO7uCEeBHANBS -h6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDcC/Vkw85DvG1xudLeJ1uK6NjGruFZfc8o -LTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIjtm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/ -R+zvWr9LesGtOxdQXGLYD0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBe -KW4bHAyvj5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6DlNaBa -4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6iIis7nCs+dwp4wwc -OxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznPO6Q0ibd5Ei9Hxeepl2n8pndntd97 -8XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O -BBYEFIHEjMz15DD/pQwIX4wVZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo -5sOASD0Ee/ojL3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5 -1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl1qnN3e92mI0A -Ds0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oUb3n09tDh05S60FdRvScFDcH9 -yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LVPtateJLbXDzz2K36uGt/xDYotgIVilQsnLAX -c47QN6MUPJiVAAwpBVueSUmxX8fjy88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHo -jhJi6IjMtX9Gl8CbEGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZk -bxqgDMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI+Vg7RE+x -ygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGyYiGqhkCyLmTTX8jjfhFn -RR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bXUB+K+wb1whnw0A== ------END CERTIFICATE----- - -UCA Extended Validation Root -============================ ------BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQG -EwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9u -IFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMxMDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8G -A1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrs -iWogD4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvSsPGP2KxF -Rv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aopO2z6+I9tTcg1367r3CTu -eUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dksHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR -59mzLC52LqGj3n5qiAno8geK+LLNEOfic0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH -0mK1lTnj8/FtDw5lhIpjVMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KR -el7sFsLzKuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/TuDv -B0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41Gsx2VYVdWf6/wFlth -WG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs1+lvK9JKBZP8nm9rZ/+I8U6laUpS -NwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQDfwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS -3H5aBZ8eNJr34RQwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQEL -BQADggIBADaNl8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR -ap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQVBcZEhrxH9cM -aVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5c6sq1WnIeJEmMX3ixzDx/BR4 -dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb -+7lsq+KePRXBOy5nAliRn+/4Qh8st2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOW -F3sGPjLtx7dCvHaj2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwi -GpWOvpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2CxR9GUeOc -GMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmxcmtpzyKEC2IPrNkZAJSi -djzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbMfjKaiJUINlK73nZfdklJrX+9ZSCyycEr -dhh2n1ax ------END CERTIFICATE----- - -Certigna Root CA -================ ------BEGIN CERTIFICATE----- -MIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAwWjELMAkGA1UE -BhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAwMiA0ODE0NjMwODEwMDAzNjEZ -MBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0xMzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjda -MFoxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYz -MDgxMDAwMzYxGTAXBgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sOty3tRQgX -stmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9MCiBtnyN6tMbaLOQdLNyz -KNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPuI9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8 -JXrJhFwLrN1CTivngqIkicuQstDuI7pmTLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16 -XdG+RCYyKfHx9WzMfgIhC59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq -4NYKpkDfePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3YzIoej -wpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWTCo/1VTp2lc5ZmIoJ -lXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1kJWumIWmbat10TWuXekG9qxf5kBdI -jzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5hwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp/ -/TBt2dzhauH8XwIDAQABo4IBGjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw -HQYDVR0OBBYEFBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of -1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczovL3d3d3cuY2Vy -dGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilodHRwOi8vY3JsLmNlcnRpZ25h -LmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYraHR0cDovL2NybC5kaGlteW90aXMuY29tL2Nl -cnRpZ25hcm9vdGNhLmNybDANBgkqhkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOIt -OoldaDgvUSILSo3L6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxP -TGRGHVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH60BGM+RFq -7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncBlA2c5uk5jR+mUYyZDDl3 -4bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdio2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd -8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1gPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS -6Cvu5zHbugRqh5jnxV/vfaci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaY -tlu3zM63Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayhjWZS -aX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw3kAP+HwV96LOPNde -E4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0= ------END CERTIFICATE----- - -emSign Root CA - G1 -=================== ------BEGIN CERTIFICATE----- -MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJJTjET -MBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRl -ZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgx -ODMwMDBaMGcxCzAJBgNVBAYTAklOMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVk -aHJhIFRlY2hub2xvZ2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIB -IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQzf2N4aLTN -LnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO8oG0x5ZOrRkVUkr+PHB1 -cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aqd7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHW -DV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhMtTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ -6DqS0hdW5TUaQBw+jSztOd9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrH -hQIDAQABo0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQDAgEG -MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31xPaOfG1vR2vjTnGs2 -vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjMwiI/aTvFthUvozXGaCocV685743Q -NcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6dGNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q -+Mri/Tm3R7nrft8EI6/6nAYH6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeih -U80Bv2noWgbyRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx -iN66zB+Afko= ------END CERTIFICATE----- - -emSign ECC Root CA - G3 -======================= ------BEGIN CERTIFICATE----- -MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEG -A1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg -MB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4 -MTgzMDAwWjBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11 -ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g -RzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0WXTsuwYc -58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xySfvalY8L1X44uT6EYGQIr -MgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuBzhccLikenEhjQjAOBgNVHQ8BAf8EBAMC -AQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+D -CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7 -jHvrZQnD+JbNR6iC8hZVdyR+EhCVBCyj ------END CERTIFICATE----- - -emSign Root CA - C1 -=================== ------BEGIN CERTIFICATE----- -MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx -EzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNp -Z24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UE -BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQD -ExNlbVNpZ24gUm9vdCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+up -ufGZBczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZHdPIWoU/ -Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH3DspVpNqs8FqOp099cGX -OFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvHGPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4V -I5b2P/AgNBbeCsbEBEV5f6f9vtKppa+cxSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleooms -lMuoaJuvimUnzYnu3Yy1aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+ -XJGFehiqTbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQAD -ggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87/kOXSTKZEhVb3xEp -/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4kqNPEjE2NuLe/gDEo2APJ62gsIq1 -NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrGYQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9 -wC68AivTxEDkigcxHpvOJpkT+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQ -BmIMMMAVSKeoWXzhriKi4gp6D/piq1JM4fHfyr6DDUI= ------END CERTIFICATE----- - -emSign ECC Root CA - C3 -======================= ------BEGIN CERTIFICATE----- -MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQGEwJVUzETMBEG -A1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxIDAeBgNVBAMTF2VtU2lnbiBF -Q0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UE -BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQD -ExdlbVNpZ24gRUNDIFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd -6bciMK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4OjavtisIGJAnB9 -SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0OBBYEFPtaSNCAIEDyqOkA -B2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gA -MGUCMQC02C8Cif22TGK6Q04ThHK1rt0c3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwU -ZOR8loMRnLDRWmFLpg9J0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== ------END CERTIFICATE----- - -Hongkong Post Root CA 3 -======================= ------BEGIN CERTIFICATE----- -MIIFzzCCA7egAwIBAgIUCBZfikyl7ADJk0DfxMauI7gcWqQwDQYJKoZIhvcNAQELBQAwbzELMAkG -A1UEBhMCSEsxEjAQBgNVBAgTCUhvbmcgS29uZzESMBAGA1UEBxMJSG9uZyBLb25nMRYwFAYDVQQK -Ew1Ib25na29uZyBQb3N0MSAwHgYDVQQDExdIb25na29uZyBQb3N0IFJvb3QgQ0EgMzAeFw0xNzA2 -MDMwMjI5NDZaFw00MjA2MDMwMjI5NDZaMG8xCzAJBgNVBAYTAkhLMRIwEAYDVQQIEwlIb25nIEtv -bmcxEjAQBgNVBAcTCUhvbmcgS29uZzEWMBQGA1UEChMNSG9uZ2tvbmcgUG9zdDEgMB4GA1UEAxMX -SG9uZ2tvbmcgUG9zdCBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz -iNfqzg8gTr7m1gNt7ln8wlffKWihgw4+aMdoWJwcYEuJQwy51BWy7sFOdem1p+/l6TWZ5Mwc50tf -jTMwIDNT2aa71T4Tjukfh0mtUC1Qyhi+AViiE3CWu4mIVoBc+L0sPOFMV4i707mV78vH9toxdCim -5lSJ9UExyuUmGs2C4HDaOym71QP1mbpV9WTRYA6ziUm4ii8F0oRFKHyPaFASePwLtVPLwpgchKOe -sL4jpNrcyCse2m5FHomY2vkALgbpDDtw1VAliJnLzXNg99X/NWfFobxeq81KuEXryGgeDQ0URhLj -0mRiikKYvLTGCAj4/ahMZJx2Ab0vqWwzD9g/KLg8aQFChn5pwckGyuV6RmXpwtZQQS4/t+TtbNe/ -JgERohYpSms0BpDsE9K2+2p20jzt8NYt3eEV7KObLyzJPivkaTv/ciWxNoZbx39ri1UbSsUgYT2u -y1DhCDq+sI9jQVMwCFk8mB13umOResoQUGC/8Ne8lYePl8X+l2oBlKN8W4UdKjk60FSh0Tlxnf0h -+bV78OLgAo9uliQlLKAeLKjEiafv7ZkGL7YKTE/bosw3Gq9HhS2KX8Q0NEwA/RiTZxPRN+ZItIsG -xVd7GYYKecsAyVKvQv83j+GjHno9UKtjBucVtT+2RTeUN7F+8kjDf8V1/peNRY8apxpyKBpADwID -AQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQXnc0e -i9Y5K3DTXNSguB+wAPzFYTAdBgNVHQ4EFgQUF53NHovWOStw01zUoLgfsAD8xWEwDQYJKoZIhvcN -AQELBQADggIBAFbVe27mIgHSQpsY1Q7XZiNc4/6gx5LS6ZStS6LG7BJ8dNVI0lkUmcDrudHr9Egw -W62nV3OZqdPlt9EuWSRY3GguLmLYauRwCy0gUCCkMpXRAJi70/33MvJJrsZ64Ee+bs7Lo3I6LWld -y8joRTnU+kLBEUx3XZL7av9YROXrgZ6voJmtvqkBZss4HTzfQx/0TW60uhdG/H39h4F5ag0zD/ov -+BS5gLNdTaqX4fnkGMX41TiMJjz98iji7lpJiCzfeT2OnpA8vUFKOt1b9pq0zj8lMH8yfaIDlNDc -eqFS3m6TjRgm/VWsvY+b0s+v54Ysyx8Jb6NvqYTUc79NoXQbTiNg8swOqn+knEwlqLJmOzj/2ZQw -9nKEvmhVEA/GcywWaZMH/rFF7buiVWqw2rVKAiUnhde3t4ZEFolsgCs+l6mc1X5VTMbeRRAc6uk7 -nwNT7u56AQIWeNTowr5GdogTPyK7SBIdUgC0An4hGh6cJfTzPV4e0hz5sy229zdcxsshTrD3mUcY -hcErulWuBurQB7Lcq9CClnXO0lD+mefPL5/ndtFhKvshuzHQqp9HpLIiyhY6UFfEW0NnxWViA0kB -60PZ2Pierc+xYw5F9KBaLJstxabArahH9CdMOA0uG0k7UvToiIMrVCjU8jVStDKDYmlkDJGcn5fq -dBb9HxEGmpv0 ------END CERTIFICATE----- - -Entrust Root Certification Authority - G4 -========================================= ------BEGIN CERTIFICATE----- -MIIGSzCCBDOgAwIBAgIRANm1Q3+vqTkPAAAAAFVlrVgwDQYJKoZIhvcNAQELBQAwgb4xCzAJBgNV -BAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3Qu -bmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1 -dGhvcml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1 -dGhvcml0eSAtIEc0MB4XDTE1MDUyNzExMTExNloXDTM3MTIyNzExNDExNlowgb4xCzAJBgNVBAYT -AlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0 -L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhv -cml0eSAtIEc0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsewsQu7i0TD/pZJH4i3D -umSXbcr3DbVZwbPLqGgZ2K+EbTBwXX7zLtJTmeH+H17ZSK9dE43b/2MzTdMAArzE+NEGCJR5WIoV -3imz/f3ET+iq4qA7ec2/a0My3dl0ELn39GjUu9CH1apLiipvKgS1sqbHoHrmSKvS0VnM1n4j5pds -8ELl3FFLFUHtSUrJ3hCX1nbB76W1NhSXNdh4IjVS70O92yfbYVaCNNzLiGAMC1rlLAHGVK/XqsEQ -e9IFWrhAnoanw5CGAlZSCXqc0ieCU0plUmr1POeo8pyvi73TDtTUXm6Hnmo9RR3RXRv06QqsYJn7 -ibT/mCzPfB3pAqoEmh643IhuJbNsZvc8kPNXwbMv9W3y+8qh+CmdRouzavbmZwe+LGcKKh9asj5X -xNMhIWNlUpEbsZmOeX7m640A2Vqq6nPopIICR5b+W45UYaPrL0swsIsjdXJ8ITzI9vF01Bx7owVV -7rtNOzK+mndmnqxpkCIHH2E6lr7lmk/MBTwoWdPBDFSoWWG9yHJM6Nyfh3+9nEg2XpWjDrk4JFX8 -dWbrAuMINClKxuMrLzOg2qOGpRKX/YAr2hRC45K9PvJdXmd0LhyIRyk0X+IyqJwlN4y6mACXi0mW -Hv0liqzc2thddG5msP9E36EYxr5ILzeUePiVSj9/E15dWf10hkNjc0kCAwEAAaNCMEAwDwYDVR0T -AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJ84xFYjwznooHFs6FRM5Og6sb9n -MA0GCSqGSIb3DQEBCwUAA4ICAQAS5UKme4sPDORGpbZgQIeMJX6tuGguW8ZAdjwD+MlZ9POrYs4Q -jbRaZIxowLByQzTSGwv2LFPSypBLhmb8qoMi9IsabyZIrHZ3CL/FmFz0Jomee8O5ZDIBf9PD3Vht -7LGrhFV0d4QEJ1JrhkzO3bll/9bGXp+aEJlLdWr+aumXIOTkdnrG0CSqkM0gkLpHZPt/B7NTeLUK -YvJzQ85BK4FqLoUWlFPUa19yIqtRLULVAJyZv967lDtX/Zr1hstWO1uIAeV8KEsD+UmDfLJ/fOPt -jqF/YFOOVZ1QNBIPt5d7bIdKROf1beyAN/BYGW5KaHbwH5Lk6rWS02FREAutp9lfx1/cH6NcjKF+ -m7ee01ZvZl4HliDtC3T7Zk6LERXpgUl+b7DUUH8i119lAg2m9IUe2K4GS0qn0jFmwvjO5QimpAKW -RGhXxNUzzxkvFMSUHHuk2fCfDrGA4tGeEWSpiBE6doLlYsKA2KSD7ZPvfC+QsDJMlhVoSFLUmQjA -JOgc47OlIQ6SwJAfzyBfyjs4x7dtOvPmRLgOMWuIjnDrnBdSqEGULoe256YSxXXfW8AKbnuk5F6G -+TaU33fD6Q3AOfF5u0aOq0NZJ7cguyPpVkAh7DE9ZapD8j3fcEThuk0mEDuYn/PIjhs4ViFqUZPT -kcpG2om3PVODLAgfi49T3f+sHw== ------END CERTIFICATE----- - -Microsoft ECC Root Certificate Authority 2017 -============================================= ------BEGIN CERTIFICATE----- -MIICWTCCAd+gAwIBAgIQZvI9r4fei7FK6gxXMQHC7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV -UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQgRUND -IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjMwNjQ1WhcNNDIwNzE4 -MjMxNjA0WjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYw -NAYDVQQDEy1NaWNyb3NvZnQgRUNDIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwdjAQ -BgcqhkjOPQIBBgUrgQQAIgNiAATUvD0CQnVBEyPNgASGAlEvaqiBYgtlzPbKnR5vSmZRogPZnZH6 -thaxjG7efM3beaYvzrvOcS/lpaso7GMEZpn4+vKTEAXhgShC48Zo9OYbhGBKia/teQ87zvH2RPUB -eMCjVDBSMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTIy5lycFIM -+Oa+sgRXKSrPQhDtNTAQBgkrBgEEAYI3FQEEAwIBADAKBggqhkjOPQQDAwNoADBlAjBY8k3qDPlf -Xu5gKcs68tvWMoQZP3zVL8KxzJOuULsJMsbG7X7JNpQS5GiFBqIb0C8CMQCZ6Ra0DvpWSNSkMBaR -eNtUjGUBiudQZsIxtzm6uBoiB078a1QWIP8rtedMDE2mT3M= ------END CERTIFICATE----- - -Microsoft RSA Root Certificate Authority 2017 -============================================= ------BEGIN CERTIFICATE----- -MIIFqDCCA5CgAwIBAgIQHtOXCV/YtLNHcB6qvn9FszANBgkqhkiG9w0BAQwFADBlMQswCQYDVQQG -EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTYwNAYDVQQDEy1NaWNyb3NvZnQg -UlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcwHhcNMTkxMjE4MjI1MTIyWhcNNDIw -NzE4MjMwMDIzWjBlMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u -MTYwNAYDVQQDEy1NaWNyb3NvZnQgUlNBIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTcw -ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKW76UM4wplZEWCpW9R2LBifOZNt9GkMml -7Xhqb0eRaPgnZ1AzHaGm++DlQ6OEAlcBXZxIQIJTELy/xztokLaCLeX0ZdDMbRnMlfl7rEqUrQ7e -S0MdhweSE5CAg2Q1OQT85elss7YfUJQ4ZVBcF0a5toW1HLUX6NZFndiyJrDKxHBKrmCk3bPZ7Pw7 -1VdyvD/IybLeS2v4I2wDwAW9lcfNcztmgGTjGqwu+UcF8ga2m3P1eDNbx6H7JyqhtJqRjJHTOoI+ -dkC0zVJhUXAoP8XFWvLJjEm7FFtNyP9nTUwSlq31/niol4fX/V4ggNyhSyL71Imtus5Hl0dVe49F -yGcohJUcaDDv70ngNXtk55iwlNpNhTs+VcQor1fznhPbRiefHqJeRIOkpcrVE7NLP8TjwuaGYaRS -MLl6IE9vDzhTyzMMEyuP1pq9KsgtsRx9S1HKR9FIJ3Jdh+vVReZIZZ2vUpC6W6IYZVcSn2i51BVr -lMRpIpj0M+Dt+VGOQVDJNE92kKz8OMHY4Xu54+OU4UZpyw4KUGsTuqwPN1q3ErWQgR5WrlcihtnJ -0tHXUeOrO8ZV/R4O03QK0dqq6mm4lyiPSMQH+FJDOvTKVTUssKZqwJz58oHhEmrARdlns87/I6KJ -ClTUFLkqqNfs+avNJVgyeY+QW5g5xAgGwax/Dj0ApQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYw -DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUCctZf4aycI8awznjwNnpv7tNsiMwEAYJKwYBBAGC -NxUBBAMCAQAwDQYJKoZIhvcNAQEMBQADggIBAKyvPl3CEZaJjqPnktaXFbgToqZCLgLNFgVZJ8og -6Lq46BrsTaiXVq5lQ7GPAJtSzVXNUzltYkyLDVt8LkS/gxCP81OCgMNPOsduET/m4xaRhPtthH80 -dK2Jp86519efhGSSvpWhrQlTM93uCupKUY5vVau6tZRGrox/2KJQJWVggEbbMwSubLWYdFQl3JPk -+ONVFT24bcMKpBLBaYVu32TxU5nhSnUgnZUP5NbcA/FZGOhHibJXWpS2qdgXKxdJ5XbLwVaZOjex -/2kskZGT4d9Mozd2TaGf+G0eHdP67Pv0RR0Tbc/3WeUiJ3IrhvNXuzDtJE3cfVa7o7P4NHmJweDy -AmH3pvwPuxwXC65B2Xy9J6P9LjrRk5Sxcx0ki69bIImtt2dmefU6xqaWM/5TkshGsRGRxpl/j8nW -ZjEgQRCHLQzWwa80mMpkg/sTV9HB8Dx6jKXB/ZUhoHHBk2dxEuqPiAppGWSZI1b7rCoucL5mxAyE -7+WL85MB+GqQk2dLsmijtWKP6T+MejteD+eMuMZ87zf9dOLITzNy4ZQ5bb0Sr74MTnB8G2+NszKT -c0QWbej09+CVgI+WXTik9KveCjCHk9hNAHFiRSdLOkKEW39lt2c0Ui2cFmuqqNh7o0JMcccMyj6D -5KbvtwEwXlGjefVwaaZBRA+GsCyRxj3qrg+E ------END CERTIFICATE----- - -e-Szigno Root CA 2017 -===================== ------BEGIN CERTIFICATE----- -MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNVBAYTAkhVMREw -DwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUt -MjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJvb3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZa -Fw00MjA4MjIxMjA3MDZaMHExCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UE -CgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3pp -Z25vIFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtvxie+RJCx -s1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+HWyx7xf58etqjYzBhMA8G -A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSHERUI0arBeAyxr87GyZDv -vzAEwDAfBgNVHSMEGDAWgBSHERUI0arBeAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEA -tVfd14pVCzbhhkT61NlojbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxO -svxyqltZ+efcMQ== ------END CERTIFICATE----- - -certSIGN Root CA G2 -=================== ------BEGIN CERTIFICATE----- -MIIFRzCCAy+gAwIBAgIJEQA0tk7GNi02MA0GCSqGSIb3DQEBCwUAMEExCzAJBgNVBAYTAlJPMRQw -EgYDVQQKEwtDRVJUU0lHTiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjAeFw0xNzAy -MDYwOTI3MzVaFw00MjAyMDYwOTI3MzVaMEExCzAJBgNVBAYTAlJPMRQwEgYDVQQKEwtDRVJUU0lH -TiBTQTEcMBoGA1UECxMTY2VydFNJR04gUk9PVCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP -ADCCAgoCggIBAMDFdRmRfUR0dIf+DjuW3NgBFszuY5HnC2/OOwppGnzC46+CjobXXo9X69MhWf05 -N0IwvlDqtg+piNguLWkh59E3GE59kdUWX2tbAMI5Qw02hVK5U2UPHULlj88F0+7cDBrZuIt4Imfk -abBoxTzkbFpG583H+u/E7Eu9aqSs/cwoUe+StCmrqzWaTOTECMYmzPhpn+Sc8CnTXPnGFiWeI8Mg -wT0PPzhAsP6CRDiqWhqKa2NYOLQV07YRaXseVO6MGiKscpc/I1mbySKEwQdPzH/iV8oScLumZfNp -dWO9lfsbl83kqK/20U6o2YpxJM02PbyWxPFsqa7lzw1uKA2wDrXKUXt4FMMgL3/7FFXhEZn91Qqh -ngLjYl/rNUssuHLoPj1PrCy7Lobio3aP5ZMqz6WryFyNSwb/EkaseMsUBzXgqd+L6a8VTxaJW732 -jcZZroiFDsGJ6x9nxUWO/203Nit4ZoORUSs9/1F3dmKh7Gc+PoGD4FapUB8fepmrY7+EF3fxDTvf -95xhszWYijqy7DwaNz9+j5LP2RIUZNoQAhVB/0/E6xyjyfqZ90bp4RjZsbgyLcsUDFDYg2WD7rlc -z8sFWkz6GZdr1l0T08JcVLwyc6B49fFtHsufpaafItzRUZ6CeWRgKRM+o/1Pcmqr4tTluCRVLERL -iohEnMqE0yo7AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1Ud -DgQWBBSCIS1mxteg4BXrzkwJd8RgnlRuAzANBgkqhkiG9w0BAQsFAAOCAgEAYN4auOfyYILVAzOB -ywaK8SJJ6ejqkX/GM15oGQOGO0MBzwdw5AgeZYWR5hEit/UCI46uuR59H35s5r0l1ZUa8gWmr4UC -b6741jH/JclKyMeKqdmfS0mbEVeZkkMR3rYzpMzXjWR91M08KCy0mpbqTfXERMQlqiCA2ClV9+BB -/AYm/7k29UMUA2Z44RGx2iBfRgB4ACGlHgAoYXhvqAEBj500mv/0OJD7uNGzcgbJceaBxXntC6Z5 -8hMLnPddDnskk7RI24Zf3lCGeOdA5jGokHZwYa+cNywRtYK3qq4kNFtyDGkNzVmf9nGvnAvRCjj5 -BiKDUyUM/FHE5r7iOZULJK2v0ZXkltd0ZGtxTgI8qoXzIKNDOXZbbFD+mpwUHmUUihW9o4JFWklW -atKcsWMy5WHgUyIOpwpJ6st+H6jiYoD2EEVSmAYY3qXNL3+q1Ok+CHLsIwMCPKaq2LxndD0UF/tU -Sxfj03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZkPuXaTH4M -NMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE1LlSVHJ7liXMvGnjSG4N -0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MXQRBdJ3NghVdJIgc= ------END CERTIFICATE----- - -Trustwave Global Certification Authority -======================================== ------BEGIN CERTIFICATE----- -MIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJV -UzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2 -ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9u -IEF1dGhvcml0eTAeFw0xNzA4MjMxOTM0MTJaFw00MjA4MjMxOTM0MTJaMIGIMQswCQYDVQQGEwJV -UzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2 -ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9u -IEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALldUShLPDeS0YLOvR29 -zd24q88KPuFd5dyqCblXAj7mY2Hf8g+CY66j96xz0XznswuvCAAJWX/NKSqIk4cXGIDtiLK0thAf -LdZfVaITXdHG6wZWiYj+rDKd/VzDBcdu7oaJuogDnXIhhpCujwOl3J+IKMujkkkP7NAP4m1ET4Bq -stTnoApTAbqOl5F2brz81Ws25kCI1nsvXwXoLG0R8+eyvpJETNKXpP7ScoFDB5zpET71ixpZfR9o -WN0EACyW80OzfpgZdNmcc9kYvkHHNHnZ9GLCQ7mzJ7Aiy/k9UscwR7PJPrhq4ufogXBeQotPJqX+ -OsIgbrv4Fo7NDKm0G2x2EOFYeUY+VM6AqFcJNykbmROPDMjWLBz7BegIlT1lRtzuzWniTY+HKE40 -Cz7PFNm73bZQmq131BnW2hqIyE4bJ3XYsgjxroMwuREOzYfwhI0Vcnyh78zyiGG69Gm7DIwLdVcE -uE4qFC49DxweMqZiNu5m4iK4BUBjECLzMx10coos9TkpoNPnG4CELcU9402x/RpvumUHO1jsQkUm -+9jaJXLE9gCxInm943xZYkqcBW89zubWR2OZxiRvchLIrH+QtAuRcOi35hYQcRfO3gZPSEF9NUqj -ifLJS3tBEW1ntwiYTOURGa5CgNz7kAXU+FDKvuStx8KU1xad5hePrzb7AgMBAAGjQjBAMA8GA1Ud -EwEB/wQFMAMBAf8wHQYDVR0OBBYEFJngGWcNYtt2s9o9uFvo/ULSMQ6HMA4GA1UdDwEB/wQEAwIB -BjANBgkqhkiG9w0BAQsFAAOCAgEAmHNw4rDT7TnsTGDZqRKGFx6W0OhUKDtkLSGm+J1WE2pIPU/H -PinbbViDVD2HfSMF1OQc3Og4ZYbFdada2zUFvXfeuyk3QAUHw5RSn8pk3fEbK9xGChACMf1KaA0H -ZJDmHvUqoai7PF35owgLEQzxPy0QlG/+4jSHg9bP5Rs1bdID4bANqKCqRieCNqcVtgimQlRXtpla -4gt5kNdXElE1GYhBaCXUNxeEFfsBctyV3lImIJgm4nb1J2/6ADtKYdkNy1GTKv0WBpanI5ojSP5R -vbbEsLFUzt5sQa0WZ37b/TjNuThOssFgy50X31ieemKyJo90lZvkWx3SD92YHJtZuSPTMaCm/zjd -zyBP6VhWOmfD0faZmZ26NraAL4hHT4a/RDqA5Dccprrql5gR0IRiR2Qequ5AvzSxnI9O4fKSTx+O -856X3vOmeWqJcU9LJxdI/uz0UA9PSX3MReO9ekDFQdxhVicGaeVyQYHTtgGJoC86cnn+OjC/QezH -Yj6RS8fZMXZC+fc8Y+wmjHMMfRod6qh8h6jCJ3zhM0EPz8/8AKAigJ5Kp28AsEFFtyLKaEjFQqKu -3R3y4G5OBVixwJAWKqQ9EEC+j2Jjg6mcgn0tAumDMHzLJ8n9HmYAsC7TIS+OMxZsmO0QqAfWzJPP -29FpHOTKyeC2nOnOcXHebD8WpHk= ------END CERTIFICATE----- - -Trustwave Global ECC P256 Certification Authority -================================================= ------BEGIN CERTIFICATE----- -MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYDVQQGEwJVUzER -MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI -b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYD -VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy -dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1 -NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH77bOYj -43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoNFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqm -P62jQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt -0UrrdaVKEJmzsaGLSvcwCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjz -RM4q3wghDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7 ------END CERTIFICATE----- - -Trustwave Global ECC P384 Certification Authority -================================================= ------BEGIN CERTIFICATE----- -MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYDVQQGEwJVUzER -MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI -b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYD -VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy -dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4 -NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuBBAAiA2IABGvaDXU1CDFH -Ba5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr -/TklZvFe/oyujUF5nQlgziip04pt89ZF1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNV -HQ8BAf8EBQMDBwYAMB0GA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNn -ADBkAjA3AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsCMGcl -CrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVuSw== ------END CERTIFICATE----- - -NAVER Global Root Certification Authority -========================================= ------BEGIN CERTIFICATE----- -MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEMBQAwaTELMAkG -A1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRGT1JNIENvcnAuMTIwMAYDVQQD -DClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4 -NDJaFw0zNzA4MTgyMzU5NTlaMGkxCzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVT -UyBQTEFURk9STSBDb3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVAiQqrDZBb -UGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH38dq6SZeWYp34+hInDEW -+j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lEHoSTGEq0n+USZGnQJoViAbbJAh2+g1G7 -XNr4rRVqmfeSVPc0W+m/6imBEtRTkZazkVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2 -aacp+yPOiNgSnABIqKYPszuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4 -Yb8ObtoqvC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHfnZ3z -VHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaGYQ5fG8Ir4ozVu53B -A0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo0es+nPxdGoMuK8u180SdOqcXYZai -cdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3aCJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejy -YhbLgGvtPe31HzClrkvJE+2KAQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNV -HQ4EFgQU0p+I36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB -Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoNqo0hV4/GPnrK -21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatjcu3cvuzHV+YwIHHW1xDBE1UB -jCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bx -hYTeodoS76TiEJd6eN4MUZeoIUCLhr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTg -E34h5prCy8VCZLQelHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTH -D8z7p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8piKCk5XQ -A76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLRLBT/DShycpWbXgnbiUSY -qqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oG -I/hGoiLtk/bdmuYqh7GYVPEi92tF4+KOdh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmg -kpzNNIaRkPpkUZ3+/uul9XXeifdy ------END CERTIFICATE----- - -AC RAIZ FNMT-RCM SERVIDORES SEGUROS -=================================== ------BEGIN CERTIFICATE----- -MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQswCQYDVQQGEwJF -UzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgwFgYDVQRhDA9WQVRFUy1RMjgy -NjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1SQ00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4 -MTIyMDA5MzczM1oXDTQzMTIyMDA5MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQt -UkNNMQ4wDAYDVQQLDAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNB -QyBSQUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuBBAAiA2IA -BPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LHsbI6GA60XYyzZl2hNPk2 -LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oKUm8BA06Oi6NCMEAwDwYDVR0TAQH/BAUw -AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqG -SM49BAMDA2kAMGYCMQCuSuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoD -zBOQn5ICMQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJyv+c= ------END CERTIFICATE----- - -GlobalSign Root R46 -=================== ------BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUAMEYxCzAJBgNV -BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJv -b3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAX -BgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08Es -CVeJOaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQGvGIFAha/ -r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud316HCkD7rRlr+/fKYIje -2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo0q3v84RLHIf8E6M6cqJaESvWJ3En7YEt -bWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSEy132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvj -K8Cd+RTyG/FWaha/LIWFzXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD4 -12lPFzYE+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCNI/on -ccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzsx2sZy/N78CsHpdls -eVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqaByFrgY/bxFn63iLABJzjqls2k+g9 -vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYD -VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEM -BQADggIBAHx47PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg -JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti2kM3S+LGteWy -gxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIkpnnpHs6i58FZFZ8d4kuaPp92 -CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRFFRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZm -OUdkLG5NrmJ7v2B0GbhWrJKsFjLtrWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qq -JZ4d16GLuc1CLgSkZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwye -qiv5u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP4vkYxboz -nxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6N3ec592kD3ZDZopD8p/7 -DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3vouXsXgxT7PntgMTzlSdriVZzH81Xwj3 -QEUxeCp6 ------END CERTIFICATE----- - -GlobalSign Root E46 -=================== ------BEGIN CERTIFICATE----- -MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYxCzAJBgNVBAYT -AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJvb3Qg -RTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNV -BAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcq -hkjOPQIBBgUrgQQAIgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkB -jtjqR+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGddyXqBPCCj -QjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQxCpCPtsad0kRL -gLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZk -vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+ -CAezNIm8BZ/3Hobui3A= ------END CERTIFICATE----- - -GLOBALTRUST 2020 -================ ------BEGIN CERTIFICATE----- -MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkGA1UEBhMCQVQx -IzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVT -VCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYxMDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAh -BgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAy -MDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWi -D59bRatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9ZYybNpyrO -VPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3QWPKzv9pj2gOlTblzLmM -CcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPwyJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCm -fecqQjuCgGOlYx8ZzHyyZqjC0203b+J+BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKA -A1GqtH6qRNdDYfOiaxaJSaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9OR -JitHHmkHr96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj04KlG -DfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9MedKZssCz3AwyIDMvU -clOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIwq7ejMZdnrY8XD2zHc+0klGvIg5rQ -mjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUw -AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1Ud -IwQYMBaAFNwuH9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA -VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJCXtzoRlgHNQIw -4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd6IwPS3BD0IL/qMy/pJTAvoe9 -iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf+I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS -8cE54+X1+NZK3TTN+2/BT+MAi1bikvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2 -HcqtbepBEX4tdJP7wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxS -vTOBTI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6CMUO+1918 -oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn4rnvyOL2NSl6dPrFf4IF -YqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+IaFvowdlxfv1k7/9nR4hYJS8+hge9+6jl -gqispdNpQ80xiEmEU5LAsTkbOYMBMMTyqfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg== ------END CERTIFICATE----- - -ANF Secure Server Root CA -========================= ------BEGIN CERTIFICATE----- -MIIF7zCCA9egAwIBAgIIDdPjvGz5a7EwDQYJKoZIhvcNAQELBQAwgYQxEjAQBgNVBAUTCUc2MzI4 -NzUxMDELMAkGA1UEBhMCRVMxJzAlBgNVBAoTHkFORiBBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lv -bjEUMBIGA1UECxMLQU5GIENBIFJhaXoxIjAgBgNVBAMTGUFORiBTZWN1cmUgU2VydmVyIFJvb3Qg -Q0EwHhcNMTkwOTA0MTAwMDM4WhcNMzkwODMwMTAwMDM4WjCBhDESMBAGA1UEBRMJRzYzMjg3NTEw -MQswCQYDVQQGEwJFUzEnMCUGA1UEChMeQU5GIEF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uMRQw -EgYDVQQLEwtBTkYgQ0EgUmFpejEiMCAGA1UEAxMZQU5GIFNlY3VyZSBTZXJ2ZXIgUm9vdCBDQTCC -AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANvrayvmZFSVgpCjcqQZAZ2cC4Ffc0m6p6zz -BE57lgvsEeBbphzOG9INgxwruJ4dfkUyYA8H6XdYfp9qyGFOtibBTI3/TO80sh9l2Ll49a2pcbnv -T1gdpd50IJeh7WhM3pIXS7yr/2WanvtH2Vdy8wmhrnZEE26cLUQ5vPnHO6RYPUG9tMJJo8gN0pcv -B2VSAKduyK9o7PQUlrZXH1bDOZ8rbeTzPvY1ZNoMHKGESy9LS+IsJJ1tk0DrtSOOMspvRdOoiXse -zx76W0OLzc2oD2rKDF65nkeP8Nm2CgtYZRczuSPkdxl9y0oukntPLxB3sY0vaJxizOBQ+OyRp1RM -VwnVdmPF6GUe7m1qzwmd+nxPrWAI/VaZDxUse6mAq4xhj0oHdkLePfTdsiQzW7i1o0TJrH93PB0j -7IKppuLIBkwC/qxcmZkLLxCKpvR/1Yd0DVlJRfbwcVw5Kda/SiOL9V8BY9KHcyi1Swr1+KuCLH5z -JTIdC2MKF4EA/7Z2Xue0sUDKIbvVgFHlSFJnLNJhiQcND85Cd8BEc5xEUKDbEAotlRyBr+Qc5RQe -8TZBAQIvfXOn3kLMTOmJDVb3n5HUA8ZsyY/b2BzgQJhdZpmYgG4t/wHFzstGH6wCxkPmrqKEPMVO -Hj1tyRRM4y5Bu8o5vzY8KhmqQYdOpc5LMnndkEl/AgMBAAGjYzBhMB8GA1UdIwQYMBaAFJxf0Gxj -o1+TypOYCK2Mh6UsXME3MB0GA1UdDgQWBBScX9BsY6Nfk8qTmAitjIelLFzBNzAOBgNVHQ8BAf8E -BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEATh65isagmD9uw2nAalxJ -UqzLK114OMHVVISfk/CHGT0sZonrDUL8zPB1hT+L9IBdeeUXZ701guLyPI59WzbLWoAAKfLOKyzx -j6ptBZNscsdW699QIyjlRRA96Gejrw5VD5AJYu9LWaL2U/HANeQvwSS9eS9OICI7/RogsKQOLHDt -dD+4E5UGUcjohybKpFtqFiGS3XNgnhAY3jyB6ugYw3yJ8otQPr0R4hUDqDZ9MwFsSBXXiJCZBMXM -5gf0vPSQ7RPi6ovDj6MzD8EpTBNO2hVWcXNyglD2mjN8orGoGjR0ZVzO0eurU+AagNjqOknkJjCb -5RyKqKkVMoaZkgoQI1YS4PbOTOK7vtuNknMBZi9iPrJyJ0U27U1W45eZ/zo1PqVUSlJZS2Db7v54 -EX9K3BR5YLZrZAPbFYPhor72I5dQ8AkzNqdxliXzuUJ92zg/LFis6ELhDtjTO0wugumDLmsx2d1H -hk9tl5EuT+IocTUW0fJz/iUrB0ckYyfI+PbZa/wSMVYIwFNCr5zQM378BvAxRAMU8Vjq8moNqRGy -g77FGr8H6lnco4g175x2MjxNBiLOFeXdntiP2t7SxDnlF4HPOEfrf4htWRvfn0IUrn7PqLBmZdo3 -r5+qPeoott7VMVgWglvquxl1AnMaykgaIZOQCo6ThKd9OyMYkomgjaw= ------END CERTIFICATE----- - -Certum EC-384 CA -================ ------BEGIN CERTIFICATE----- -MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQswCQYDVQQGEwJQ -TDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2Vy -dGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2 -MDcyNDU0WhcNNDMwMzI2MDcyNDU0WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERh -dGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx -GTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATEKI6rGFtq -vm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7TmFy8as10CW4kjPMIRBSqn -iBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68KjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD -VR0OBBYEFI0GZnQkdjrzife81r1HfS+8EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNo -ADBlAjADVS2m5hjEfO/JUG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0 -QoSZ/6vnnvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= ------END CERTIFICATE----- - -Certum Trusted Root CA -====================== ------BEGIN CERTIFICATE----- -MIIFwDCCA6igAwIBAgIQHr9ZULjJgDdMBvfrVU+17TANBgkqhkiG9w0BAQ0FADB6MQswCQYDVQQG -EwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0g -Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHzAdBgNVBAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0Ew -HhcNMTgwMzE2MTIxMDEzWhcNNDMwMzE2MTIxMDEzWjB6MQswCQYDVQQGEwJQTDEhMB8GA1UEChMY -QXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkxHzAdBgNVBAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQDRLY67tzbqbTeRn06TpwXkKQMlzhyC93yZn0EGze2jusDbCSzBfN8p -fktlL5On1AFrAygYo9idBcEq2EXxkd7fO9CAAozPOA/qp1x4EaTByIVcJdPTsuclzxFUl6s1wB52 -HO8AU5853BSlLCIls3Jy/I2z5T4IHhQqNwuIPMqw9MjCoa68wb4pZ1Xi/K1ZXP69VyywkI3C7Te2 -fJmItdUDmj0VDT06qKhF8JVOJVkdzZhpu9PMMsmN74H+rX2Ju7pgE8pllWeg8xn2A1bUatMn4qGt -g/BKEiJ3HAVz4hlxQsDsdUaakFjgao4rpUYwBI4Zshfjvqm6f1bxJAPXsiEodg42MEx51UGamqi4 -NboMOvJEGyCI98Ul1z3G4z5D3Yf+xOr1Uz5MZf87Sst4WmsXXw3Hw09Omiqi7VdNIuJGmj8PkTQk -fVXjjJU30xrwCSss0smNtA0Aq2cpKNgB9RkEth2+dv5yXMSFytKAQd8FqKPVhJBPC/PgP5sZ0jeJ -P/J7UhyM9uH3PAeXjA6iWYEMspA90+NZRu0PqafegGtaqge2Gcu8V/OXIXoMsSt0Puvap2ctTMSY -njYJdmZm/Bo/6khUHL4wvYBQv3y1zgD2DGHZ5yQD4OMBgQ692IU0iL2yNqh7XAjlRICMb/gv1SHK -HRzQ+8S1h9E6Tsd2tTVItQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSM+xx1 -vALTn04uSNn5YFSqxLNP+jAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQADggIBAEii1QAL -LtA/vBzVtVRJHlpr9OTy4EA34MwUe7nJ+jW1dReTagVphZzNTxl4WxmB82M+w85bj/UvXgF2Ez8s -ALnNllI5SW0ETsXpD4YN4fqzX4IS8TrOZgYkNCvozMrnadyHncI013nR03e4qllY/p0m+jiGPp2K -h2RX5Rc64vmNueMzeMGQ2Ljdt4NR5MTMI9UGfOZR0800McD2RrsLrfw9EAUqO0qRJe6M1ISHgCq8 -CYyqOhNf6DR5UMEQGfnTKB7U0VEwKbOukGfWHwpjscWpxkIxYxeU72nLL/qMFH3EQxiJ2fAyQOaA -4kZf5ePBAFmo+eggvIksDkc0C+pXwlM2/KfUrzHN/gLldfq5Jwn58/U7yn2fqSLLiMmq0Uc9Nneo -WWRrJ8/vJ8HjJLWG965+Mk2weWjROeiQWMODvA8s1pfrzgzhIMfatz7DP78v3DSk+yshzWePS/Tj -6tQ/50+6uaWTRRxmHyH6ZF5v4HaUMst19W7l9o/HuKTMqJZ9ZPskWkoDbGs4xugDQ5r3V7mzKWmT -OPQD8rv7gmsHINFSH5pkAnuYZttcTVoP0ISVoDwUQwbKytu4QTbaakRnh6+v40URFWkIsr4WOZck -bxJF0WddCajJFdr60qZfE2Efv4WstK2tBZQIgx51F9NxO5NQI1mg7TyRVJ12AMXDuDjb ------END CERTIFICATE----- - -TunTrust Root CA -================ ------BEGIN CERTIFICATE----- -MIIFszCCA5ugAwIBAgIUEwLV4kBMkkaGFmddtLu7sms+/BMwDQYJKoZIhvcNAQELBQAwYTELMAkG -A1UEBhMCVE4xNzA1BgNVBAoMLkFnZW5jZSBOYXRpb25hbGUgZGUgQ2VydGlmaWNhdGlvbiBFbGVj -dHJvbmlxdWUxGTAXBgNVBAMMEFR1blRydXN0IFJvb3QgQ0EwHhcNMTkwNDI2MDg1NzU2WhcNNDQw -NDI2MDg1NzU2WjBhMQswCQYDVQQGEwJUTjE3MDUGA1UECgwuQWdlbmNlIE5hdGlvbmFsZSBkZSBD -ZXJ0aWZpY2F0aW9uIEVsZWN0cm9uaXF1ZTEZMBcGA1UEAwwQVHVuVHJ1c3QgUm9vdCBDQTCCAiIw -DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMPN0/y9BFPdDCA61YguBUtB9YOCfvdZn56eY+hz -2vYGqU8ftPkLHzmMmiDQfgbU7DTZhrx1W4eI8NLZ1KMKsmwb60ksPqxd2JQDoOw05TDENX37Jk0b -bjBU2PWARZw5rZzJJQRNmpA+TkBuimvNKWfGzC3gdOgFVwpIUPp6Q9p+7FuaDmJ2/uqdHYVy7BG7 -NegfJ7/Boce7SBbdVtfMTqDhuazb1YMZGoXRlJfXyqNlC/M4+QKu3fZnz8k/9YosRxqZbwUN/dAd -gjH8KcwAWJeRTIAAHDOFli/LQcKLEITDCSSJH7UP2dl3RxiSlGBcx5kDPP73lad9UKGAwqmDrViW -VSHbhlnUr8a83YFuB9tgYv7sEG7aaAH0gxupPqJbI9dkxt/con3YS7qC0lH4Zr8GRuR5KiY2eY8f -Tpkdso8MDhz/yV3A/ZAQprE38806JG60hZC/gLkMjNWb1sjxVj8agIl6qeIbMlEsPvLfe/ZdeikZ -juXIvTZxi11Mwh0/rViizz1wTaZQmCXcI/m4WEEIcb9PuISgjwBUFfyRbVinljvrS5YnzWuioYas -DXxU5mZMZl+QviGaAkYt5IPCgLnPSz7ofzwB7I9ezX/SKEIBlYrilz0QIX32nRzFNKHsLA4KUiwS -VXAkPcvCFDVDXSdOvsC9qnyW5/yeYa1E0wCXAgMBAAGjYzBhMB0GA1UdDgQWBBQGmpsfU33x9aTI -04Y+oXNZtPdEITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFAaamx9TffH1pMjThj6hc1m0 -90QhMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAqgVutt0Vyb+zxiD2BkewhpMl -0425yAA/l/VSJ4hxyXT968pk21vvHl26v9Hr7lxpuhbI87mP0zYuQEkHDVneixCwSQXi/5E/S7fd -Ao74gShczNxtr18UnH1YeA32gAm56Q6XKRm4t+v4FstVEuTGfbvE7Pi1HE4+Z7/FXxttbUcoqgRY -YdZ2vyJ/0Adqp2RT8JeNnYA/u8EH22Wv5psymsNUk8QcCMNE+3tjEUPRahphanltkE8pjkcFwRJp -adbGNjHh/PqAulxPxOu3Mqz4dWEX1xAZufHSCe96Qp1bWgvUxpVOKs7/B9dPfhgGiPEZtdmYu65x -xBzndFlY7wyJz4sfdZMaBBSSSFCp61cpABbjNhzI+L/wM9VBD8TMPN3pM0MBkRArHtG5Xc0yGYuP -jCB31yLEQtyEFpslbei0VXF/sHyz03FJuc9SpAQ/3D2gu68zngowYI7bnV2UqL1g52KAdoGDDIzM -MEZJ4gzSqK/rYXHv5yJiqfdcZGyfFoxnNidF9Ql7v/YQCvGwjVRDjAS6oz/v4jXH+XTgbzRB0L9z -ZVcg+ZtnemZoJE6AZb0QmQZZ8mWvuMZHu/2QeItBcy6vVR/cO5JyboTT0GFMDcx2V+IthSIVNg3r -AZ3r2OvEhJn7wAzMMujjd9qDRIueVSjAi1jTkD5OGwDxFa2DK5o= ------END CERTIFICATE----- - -HARICA TLS RSA Root CA 2021 -=========================== ------BEGIN CERTIFICATE----- -MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQG -EwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u -cyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUz -OFoXDTQ1MDIxMzEwNTUzN1owbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRl -bWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNB -IFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569lmwVnlskN -JLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE4VGC/6zStGndLuwRo0Xu -a2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uva9of08WRiFukiZLRgeaMOVig1mlDqa2Y -Ulhu2wr7a89o+uOkXjpFc5gH6l8Cct4MpbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K -5FrZx40d/JiZ+yykgmvwKh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEv -dmn8kN3bLW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcYAuUR -0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqBAGMUuTNe3QvboEUH -GjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYqE613TBoYm5EPWNgGVMWX+Ko/IIqm -haZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHrW2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQ -CPxrvrNQKlr9qEgYRtaQQJKQCoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8G -A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE -AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAUX15QvWiWkKQU -EapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3f5Z2EMVGpdAgS1D0NTsY9FVq -QRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxajaH6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxD -QpSbIPDRzbLrLFPCU3hKTwSUQZqPJzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcR -j88YxeMn/ibvBZ3PzzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5 -vZStjBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0/L5H9MG0 -qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pTBGIBnfHAT+7hOtSLIBD6 -Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79aPib8qXPMThcFarmlwDB31qlpzmq6YR/ -PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YWxw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnn -kf3/W9b3raYvAwtt41dU63ZTGI0RmLo= ------END CERTIFICATE----- - -HARICA TLS ECC Root CA 2021 -=========================== ------BEGIN CERTIFICATE----- -MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQswCQYDVQQGEwJH -UjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBD -QTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoX -DTQ1MDIxMzExMDEwOVowbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWlj -IGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJv -b3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7KKrxcm1l -AEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9YSTHMmE5gEYd103KUkE+b -ECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW -0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAi -rcJRQO9gcS3ujwLEXQNwSaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/Qw -CZ61IygNnxS2PFOiTAZpffpskcYqSUXm7LcT4Tps ------END CERTIFICATE----- - -Autoridad de Certificacion Firmaprofesional CIF A62634068 -========================================================= ------BEGIN CERTIFICATE----- -MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCRVMxQjBA -BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 -MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIw -QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB -NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD -Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P -B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY -7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH -ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI -plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX -MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX -LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK -bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU -vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMB0GA1Ud -DgQWBBRlzeurNR4APn7VdMActHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4w -gZswgZgGBFUdIAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j -b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABCAG8AbgBhAG4A -bwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAwADEANzAOBgNVHQ8BAf8EBAMC -AQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9miWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL -4QjbEwj4KKE1soCzC1HA01aajTNFSa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDb -LIpgD7dvlAceHabJhfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1il -I45PVf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZEEAEeiGaP -cjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV1aUsIC+nmCjuRfzxuIgA -LI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2tCsvMo2ebKHTEm9caPARYpoKdrcd7b/+A -lun4jWq9GJAd/0kakFI3ky88Al2CdgtR5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH -9IBk9W6VULgRfhVwOEqwf9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpf -NIbnYrX9ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNKGbqE -ZycPvEJdvSRUDewdcAZfpLz6IHxV ------END CERTIFICATE----- - -vTrus ECC Root CA -================= ------BEGIN CERTIFICATE----- -MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMwRzELMAkGA1UE -BhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBS -b290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDczMTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAa -BgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYw -EAYHKoZIzj0CAQYFK4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+c -ToL0v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUde4BdS49n -TPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYDVR0TAQH/BAUwAwEB/zAO -BgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIwV53dVvHH4+m4SVBrm2nDb+zDfSXkV5UT -QJtS0zvzQBm8JsctBp61ezaf9SXUY2sAAjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQL -YgmRWAD5Tfs0aNoJrSEGGJTO ------END CERTIFICATE----- - -vTrus Root CA -============= ------BEGIN CERTIFICATE----- -MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQELBQAwQzELMAkG -A1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xFjAUBgNVBAMTDXZUcnVzIFJv -b3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMxMDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoG -A1UEChMTaVRydXNDaGluYSBDby4sTHRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJ -KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZots -SKYcIrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykUAyyNJJrI -ZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+GrPSbcKvdmaVayqwlHeF -XgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z98Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KA -YPxMvDVTAWqXcoKv8R1w6Jz1717CbMdHflqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70 -kLJrxLT5ZOrpGgrIDajtJ8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2 -AXPKBlim0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZNpGvu -/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQUqqzApVg+QxMaPnu -1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHWOXSuTEGC2/KmSNGzm/MzqvOmwMVO -9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMBAAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYg -scasGrz2iTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOC -AgEAKbqSSaet8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd -nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1jbhd47F18iMjr -jld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvMKar5CKXiNxTKsbhm7xqC5PD4 -8acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIivTDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJn -xDHO2zTlJQNgJXtxmOTAGytfdELSS8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554Wg -icEFOwE30z9J4nfrI8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4 -sEb9b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNBUvupLnKW -nyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1PTi07NEPhmg4NpGaXutIc -SkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929vensBxXVsFy6K2ir40zSbofitzmdHxghm+H -l3s= ------END CERTIFICATE----- - -ISRG Root X2 -============ ------BEGIN CERTIFICATE----- -MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJV -UzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElT -UkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVT -MSkwJwYDVQQKEyBJbnRlcm5ldCBTZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNS -RyBSb290IFgyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0H -ttwW+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9ItgKbppb -d9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV -HQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZIzj0EAwMDaAAwZQIwe3lORlCEwkSHRhtF -cP9Ymd70/aTSVaYgLXTWNLxBo1BfASdWtL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5 -U6VR5CmD1/iQMVtCnwr1/q4AaOeMSQ+2b1tbFfLn ------END CERTIFICATE----- - -HiPKI Root CA - G1 -================== ------BEGIN CERTIFICATE----- -MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQG -EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xGzAZBgNVBAMMEkhpUEtJ -IFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRaFw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYT -AlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kg -Um9vdCBDQSAtIEcxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0 -o9QwqNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twvVcg3Px+k -wJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6lZgRZq2XNdZ1AYDgr/SE -YYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnzQs7ZngyzsHeXZJzA9KMuH5UHsBffMNsA -GJZMoYFL3QRtU6M9/Aes1MU3guvklQgZKILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfd -hSi8MEyr48KxRURHH+CKFgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj -1jOXTyFjHluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDry+K4 -9a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ/W3c1pzAtH2lsN0/ -Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgMa/aOEmem8rJY5AIJEzypuxC00jBF -8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYD -VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQD -AgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi -7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqcSE5XCV0vrPSl -tJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6FzaZsT0pPBWGTMpWmWSBUdGSquE -wx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9TcXzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07Q -JNBAsNB1CI69aO4I1258EHBGG3zgiLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv -5wiZqAxeJoBF1PhoL5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+Gpz -jLrFNe85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wrkkVbbiVg -hUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+vhV4nYWBSipX3tUZQ9rb -yltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQUYDksswBVLuT1sw5XxJFBAJw/6KXf6vb/ -yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== ------END CERTIFICATE----- - -GlobalSign ECC Root CA - R4 -=========================== ------BEGIN CERTIFICATE----- -MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYDVQQLExtHbG9i -YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds -b2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgwMTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9i -YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds -b2JhbFNpZ24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkW -ymOxuYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNVHQ8BAf8E -BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/+wpu+74zyTyjhNUwCgYI -KoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147bmF0774BxL4YSFlhgjICICadVGNA3jdg -UM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm ------END CERTIFICATE----- - -GTS Root R1 -=========== ------BEGIN CERTIFICATE----- -MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV -UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg -UjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE -ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0G -CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM -f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7raKb0 -xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnWr4+w -B7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXW -nOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk -9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zq -kUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92wO1A -K/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om3xPX -V2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDW -cfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T -AQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQAD -ggIBAJ+qQibbC5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe -QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuyh6f88/qBVRRi -ClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM47HLwEXWdyzRSjeZ2axfG34ar -J45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8JZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYci -NuaCp+0KueIHoI17eko8cdLiA6EfMgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5me -LMFrUKTX5hgUvYU/Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJF -fbdT6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ0E6yove+ -7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm2tIMPNuzjsmhDYAPexZ3 -FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bbbP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3 -gm3c ------END CERTIFICATE----- - -GTS Root R2 -=========== ------BEGIN CERTIFICATE----- -MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV -UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg -UjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE -ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0G -CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv -CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo7JUl -e3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWIm8Wb -a96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS -+LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7M -kogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJG -r61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RWIr9q -S34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73VululycslaVNV -J1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy5okL -dWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T -AQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQAD -ggIBAB/Kzt3HvqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 -0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyCB19m3H0Q/gxh -swWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2uNmSRXbBoGOqKYcl3qJfEycel -/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMgyALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVn -jWQye+mew4K6Ki3pHrTgSAai/GevHyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y5 -9PYjJbigapordwj6xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M -7YNRTOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924SgJPFI/2R8 -0L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV7LXTWtiBmelDGDfrs7vR -WGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjW -HYbL ------END CERTIFICATE----- - -GTS Root R3 -=========== ------BEGIN CERTIFICATE----- -MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi -MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMw -HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ -R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjO -PQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout -736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24CejQjBA -MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP0/Eq -Er24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azT -L818+FsuVbu/3ZL3pAzcMeGiAjEA/JdmZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV -11RZt+cRLInUue4X ------END CERTIFICATE----- - -GTS Root R4 -=========== ------BEGIN CERTIFICATE----- -MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi -MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQw -HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ -R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjO -PQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu -hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqjQjBA -MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV2Py1 -PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/C -r8deVl5c1RxYIigL9zC2L7F8AjEA8GE8p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh -4rsUecrNIdSUtUlD ------END CERTIFICATE----- - -Telia Root CA v2 -================ ------BEGIN CERTIFICATE----- -MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQxCzAJBgNVBAYT -AkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2 -MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQK -DBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZI -hvcNAQEBBQADggIPADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ7 -6zBqAMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9vVYiQJ3q -9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9lRdU2HhE8Qx3FZLgmEKn -pNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTODn3WhUidhOPFZPY5Q4L15POdslv5e2QJl -tI5c0BE0312/UqeBAMN/mUWZFdUXyApT7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW -5olWK8jjfN7j/4nlNW4o6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNr -RBH0pUPCTEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6WT0E -BXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63RDolUK5X6wK0dmBR4 -M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZIpEYslOqodmJHixBTB0hXbOKSTbau -BcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGjYzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7W -xy+G2CQ5MB0GA1UdDgQWBBRyrOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ -8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi0f6X+J8wfBj5 -tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMMA8iZGok1GTzTyVR8qPAs5m4H -eW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBSSRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+C -y748fdHif64W1lZYudogsYMVoe+KTTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygC -QMez2P2ccGrGKMOF6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15 -h2Er3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMtTy3EHD70 -sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pTVmBds9hCG1xLEooc6+t9 -xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAWysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQ -raVplI/owd8k+BsHMYeB2F326CjYSlKArBPuUBQemMc= ------END CERTIFICATE----- - -D-TRUST BR Root CA 1 2020 -========================= ------BEGIN CERTIFICATE----- -MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE -RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0EgMSAy -MDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNV -BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAG -ByqGSM49AgEGBSuBBAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7 -dPYSzuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0QVK5buXu -QqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/VbNafAkl1bK6CKBrqx9t -MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu -bmV0L2NybC9kLXRydXN0X2JyX3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj -dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP -PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD -AwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFWwKrY7RjEsK70Pvom -AjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHVdWNbFJWcHwHP2NVypw87 ------END CERTIFICATE----- - -D-TRUST EV Root CA 1 2020 -========================= ------BEGIN CERTIFICATE----- -MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE -RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0EgMSAy -MDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNV -BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAG -ByqGSM49AgEGBSuBBAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8 -ZRCC/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rDwpdhQntJ -raOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3OqQo5FD4pPfsazK2/umL -MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu -bmV0L2NybC9kLXRydXN0X2V2X3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj -dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP -PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD -AwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CAy/m0sRtW9XLS/BnR -AjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJbgfM0agPnIjhQW+0ZT0MW ------END CERTIFICATE----- - -DigiCert TLS ECC P384 Root G5 -============================= ------BEGIN CERTIFICATE----- -MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV -UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURpZ2lDZXJ0IFRMUyBFQ0MgUDM4 -NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMx -FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQg -Um9vdCBHNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1Tzvd -lHJS7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp0zVozptj -n4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICISB4CIfBFqMA4GA1UdDwEB -/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQCJao1H5+z8blUD2Wds -Jk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQLgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIx -AJSdYsiJvRmEFOml+wG4DXZDjC5Ty3zfDBeWUA== ------END CERTIFICATE----- - -DigiCert TLS RSA4096 Root G5 -============================ ------BEGIN CERTIFICATE----- -MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBNMQswCQYDVQQG -EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0 -MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJV -UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2 -IFJvb3QgRzUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS8 -7IE+ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG02C+JFvuU -AT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgpwgscONyfMXdcvyej/Ces -tyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZMpG2T6T867jp8nVid9E6P/DsjyG244gXa -zOvswzH016cpVIDPRFtMbzCe88zdH5RDnU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnV -DdXifBBiqmvwPXbzP6PosMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9q -TXeXAaDxZre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cdLvvy -z6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvXKyY//SovcfXWJL5/ -MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNeXoVPzthwiHvOAbWWl9fNff2C+MIk -wcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPLtgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4E -FgQUUTMc7TZArxfTJc1paPKvTiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w -DQYJKoZIhvcNAQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw -GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7HPNtQOa27PShN -lnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLFO4uJ+DQtpBflF+aZfTCIITfN -MBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQREtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/ -u4cnYiWB39yhL/btp/96j1EuMPikAdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9G -OUrYU9DzLjtxpdRv/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh -47a+p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilwMUc/dNAU -FvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WFqUITVuwhd4GTWgzqltlJ -yqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCKovfepEWFJqgejF0pW8hL2JpqA15w8oVP -bEtoL8pU9ozaMv7Da4M/OMZ+ ------END CERTIFICATE----- - -Certainly Root R1 -================= ------BEGIN CERTIFICATE----- -MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAwPTELMAkGA1UE -BhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2VydGFpbmx5IFJvb3QgUjEwHhcN -MjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2Vy -dGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIP -ADCCAgoCggIBANA21B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O -5MQTvqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbedaFySpvXl -8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b01C7jcvk2xusVtyWMOvwl -DbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGI -XsXwClTNSaa/ApzSRKft43jvRl5tcdF5cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkN -KPl6I7ENPT2a/Z2B7yyQwHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQ -AjeZjOVJ6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA2Cnb -rlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyHWyf5QBGenDPBt+U1 -VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMReiFPCyEQtkA6qyI6BJyLm4SGcprS -p6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud -DgQWBBTgqj8ljZ9EXME66C6ud0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAsz -HQNTVfSVcOQrPbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d -8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi1wrykXprOQ4v -MMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrdrRT90+7iIgXr0PK3aBLXWopB -GsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9ditaY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+ -gjwN/KUD+nsa2UUeYNrEjvn8K8l7lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgH -JBu6haEaBQmAupVjyTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7 -fpYnKx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLyyCwzk5Iw -x06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5nwXARPbv0+Em34yaXOp/S -X3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6OV+KmalBWQewLK8= ------END CERTIFICATE----- - -Certainly Root E1 -================= ------BEGIN CERTIFICATE----- -MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQswCQYDVQQGEwJV -UzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBFMTAeFw0yMTA0 -MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlu -bHkxGjAYBgNVBAMTEUNlcnRhaW5seSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4 -fxzf7flHh4axpMCK+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9 -YBk2QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8EBAMCAQYw -DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4hevIIgcwCgYIKoZIzj0E -AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8 -rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR ------END CERTIFICATE----- - -E-Tugra Global Root CA RSA v3 -============================= ------BEGIN CERTIFICATE----- -MIIF8zCCA9ugAwIBAgIUDU3FzRYilZYIfrgLfxUGNPt5EDQwDQYJKoZIhvcNAQELBQAwgYAxCzAJ -BgNVBAYTAlRSMQ8wDQYDVQQHEwZBbmthcmExGTAXBgNVBAoTEEUtVHVncmEgRUJHIEEuUy4xHTAb -BgNVBAsTFEUtVHVncmEgVHJ1c3QgQ2VudGVyMSYwJAYDVQQDEx1FLVR1Z3JhIEdsb2JhbCBSb290 -IENBIFJTQSB2MzAeFw0yMDAzMTgwOTA3MTdaFw00NTAzMTIwOTA3MTdaMIGAMQswCQYDVQQGEwJU -UjEPMA0GA1UEBxMGQW5rYXJhMRkwFwYDVQQKExBFLVR1Z3JhIEVCRyBBLlMuMR0wGwYDVQQLExRF -LVR1Z3JhIFRydXN0IENlbnRlcjEmMCQGA1UEAxMdRS1UdWdyYSBHbG9iYWwgUm9vdCBDQSBSU0Eg -djMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCiZvCJt3J77gnJY9LTQ91ew6aEOErx -jYG7FL1H6EAX8z3DeEVypi6Q3po61CBxyryfHUuXCscxuj7X/iWpKo429NEvx7epXTPcMHD4QGxL -sqYxYdE0PD0xesevxKenhOGXpOhL9hd87jwH7eKKV9y2+/hDJVDqJ4GohryPUkqWOmAalrv9c/SF -/YP9f4RtNGx/ardLAQO/rWm31zLZ9Vdq6YaCPqVmMbMWPcLzJmAy01IesGykNz709a/r4d+ABs8q -QedmCeFLl+d3vSFtKbZnwy1+7dZ5ZdHPOrbRsV5WYVB6Ws5OUDGAA5hH5+QYfERaxqSzO8bGwzrw -bMOLyKSRBfP12baqBqG3q+Sx6iEUXIOk/P+2UNOMEiaZdnDpwA+mdPy70Bt4znKS4iicvObpCdg6 -04nmvi533wEKb5b25Y08TVJ2Glbhc34XrD2tbKNSEhhw5oBOM/J+JjKsBY04pOZ2PJ8QaQ5tndLB -eSBrW88zjdGUdjXnXVXHt6woq0bM5zshtQoK5EpZ3IE1S0SVEgpnpaH/WwAH0sDM+T/8nzPyAPiM -bIedBi3x7+PmBvrFZhNb/FAHnnGGstpvdDDPk1Po3CLW3iAfYY2jLqN4MpBs3KwytQXk9TwzDdbg -h3cXTJ2w2AmoDVf3RIXwyAS+XF1a4xeOVGNpf0l0ZAWMowIDAQABo2MwYTAPBgNVHRMBAf8EBTAD -AQH/MB8GA1UdIwQYMBaAFLK0ruYt9ybVqnUtdkvAG1Mh0EjvMB0GA1UdDgQWBBSytK7mLfcm1ap1 -LXZLwBtTIdBI7zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAImocn+M684uGMQQ -gC0QDP/7FM0E4BQ8Tpr7nym/Ip5XuYJzEmMmtcyQ6dIqKe6cLcwsmb5FJ+Sxce3kOJUxQfJ9emN4 -38o2Fi+CiJ+8EUdPdk3ILY7r3y18Tjvarvbj2l0Upq7ohUSdBm6O++96SmotKygY/r+QLHUWnw/q -ln0F7psTpURs+APQ3SPh/QMSEgj0GDSz4DcLdxEBSL9htLX4GdnLTeqjjO/98Aa1bZL0SmFQhO3s -SdPkvmjmLuMxC1QLGpLWgti2omU8ZgT5Vdps+9u1FGZNlIM7zR6mK7L+d0CGq+ffCsn99t2HVhjY -sCxVYJb6CH5SkPVLpi6HfMsg2wY+oF0Dd32iPBMbKaITVaA9FCKvb7jQmhty3QUBjYZgv6Rn7rWl -DdF/5horYmbDB7rnoEgcOMPpRfunf/ztAmgayncSd6YAVSgU7NbHEqIbZULpkejLPoeJVF3Zr52X -nGnnCv8PWniLYypMfUeUP95L6VPQMPHF9p5J3zugkaOj/s1YzOrfr28oO6Bpm4/srK4rVJ2bBLFH -IK+WEj5jlB0E5y67hscMmoi/dkfv97ALl2bSRM9gUgfh1SxKOidhd8rXj+eHDjD/DLsE4mHDosiX -YY60MGo8bcIHX0pzLz/5FooBZu+6kcpSV3uu1OYP3Qt6f4ueJiDPO++BcYNZ ------END CERTIFICATE----- - -E-Tugra Global Root CA ECC v3 -============================= ------BEGIN CERTIFICATE----- -MIICpTCCAiqgAwIBAgIUJkYZdzHhT28oNt45UYbm1JeIIsEwCgYIKoZIzj0EAwMwgYAxCzAJBgNV -BAYTAlRSMQ8wDQYDVQQHEwZBbmthcmExGTAXBgNVBAoTEEUtVHVncmEgRUJHIEEuUy4xHTAbBgNV -BAsTFEUtVHVncmEgVHJ1c3QgQ2VudGVyMSYwJAYDVQQDEx1FLVR1Z3JhIEdsb2JhbCBSb290IENB -IEVDQyB2MzAeFw0yMDAzMTgwOTQ2NThaFw00NTAzMTIwOTQ2NThaMIGAMQswCQYDVQQGEwJUUjEP -MA0GA1UEBxMGQW5rYXJhMRkwFwYDVQQKExBFLVR1Z3JhIEVCRyBBLlMuMR0wGwYDVQQLExRFLVR1 -Z3JhIFRydXN0IENlbnRlcjEmMCQGA1UEAxMdRS1UdWdyYSBHbG9iYWwgUm9vdCBDQSBFQ0MgdjMw -djAQBgcqhkjOPQIBBgUrgQQAIgNiAASOmCm/xxAeJ9urA8woLNheSBkQKczLWYHMjLiSF4mDKpL2 -w6QdTGLVn9agRtwcvHbB40fQWxPa56WzZkjnIZpKT4YKfWzqTTKACrJ6CZtpS5iB4i7sAnCWH/31 -Rs7K3IKjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU/4Ixcj75xGZsrTie0bBRiKWQ -zPUwHQYDVR0OBBYEFP+CMXI++cRmbK04ntGwUYilkMz1MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjO -PQQDAwNpADBmAjEA5gVYaWHlLcoNy/EZCL3W/VGSGn5jVASQkZo1kTmZ+gepZpO6yGjUij/67W4W -Aie3AjEA3VoXK3YdZUKWpqxdinlW2Iob35reX8dQj7FbcQwm32pAAOwzkSFxvmjkI6TZraE3 ------END CERTIFICATE----- diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/certificates/cacert.pem.sha256 b/assets/php/razorpay-php/libs/Requests-2.0.4/certificates/cacert.pem.sha256 deleted file mode 100644 index eb32bc3..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/certificates/cacert.pem.sha256 +++ /dev/null @@ -1 +0,0 @@ -6ed95025fba2aef0ce7b647607225745624497f876d74ef6ec22b26e73e9de77 cacert.pem diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/composer.json b/assets/php/razorpay-php/libs/Requests-2.0.4/composer.json deleted file mode 100644 index 2ea9e6e..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/composer.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "name": "rmccue/requests", - "description": "A HTTP library written in PHP, for human beings.", - "homepage": "https://requests.ryanmccue.info/", - "license": "ISC", - "type": "library", - "keywords": [ - "http", - "idna", - "iri", - "ipv6", - "curl", - "sockets", - "fsockopen" - ], - "authors": [ - { - "name": "Ryan McCue", - "homepage": "https://rmccue.io/" - }, - { - "name": "Alain Schlesser", - "homepage": "https://github.com/schlessera" - }, - { - "name": "Juliette Reinders Folmer", - "homepage": "https://github.com/jrfnl" - }, - { - "name": "Contributors", - "homepage": "https://github.com/WordPress/Requests/graphs/contributors" - } - ], - "support": { - "issues": "https://github.com/WordPress/Requests/issues", - "source": "https://github.com/WordPress/Requests", - "docs": "https://requests.ryanmccue.info/" - }, - "require": { - "php": ">=5.6", - "ext-json": "*" - }, - "config": { - "allow-plugins": { - "dealerdirect/phpcodesniffer-composer-installer": true - } - }, - "require-dev": { - "requests/test-server": "dev-main", - "squizlabs/php_codesniffer": "^3.6", - "phpcompatibility/php-compatibility": "^9.0", - "wp-coding-standards/wpcs": "^2.0", - "dealerdirect/phpcodesniffer-composer-installer": "^0.7", - "php-parallel-lint/php-parallel-lint": "^1.3.1", - "php-parallel-lint/php-console-highlighter": "^0.5.0", - "yoast/phpunit-polyfills": "^1.0.0", - "roave/security-advisories": "dev-latest" - }, - "autoload": { - "psr-4": { - "WpOrg\\Requests\\": "src/" - }, - "classmap": ["library/Requests.php"], - "files": ["library/Deprecated.php"] - }, - "autoload-dev": { - "psr-4": { - "WpOrg\\Requests\\Tests\\": "tests/" - } - }, - "scripts": { - "lint": [ - "@php ./vendor/php-parallel-lint/php-parallel-lint/parallel-lint . -e php --exclude vendor --exclude .git" - ], - "checkcs": [ - "@php ./vendor/squizlabs/php_codesniffer/bin/phpcs" - ], - "fixcs": [ - "@php ./vendor/squizlabs/php_codesniffer/bin/phpcbf" - ], - "test": [ - "@php ./vendor/phpunit/phpunit/phpunit --no-coverage" - ], - "coverage": [ - "@php ./vendor/phpunit/phpunit/phpunit" - ] - } -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/library/Deprecated.php b/assets/php/razorpay-php/libs/Requests-2.0.4/library/Deprecated.php deleted file mode 100644 index 0017338..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/library/Deprecated.php +++ /dev/null @@ -1,19 +0,0 @@ -user, $this->pass) = $args; - return; - } - - if ($args !== null) { - throw InvalidArgument::create(1, '$args', 'array|null', gettype($args)); - } - } - - /** - * Register the necessary callbacks - * - * @see \WpOrg\Requests\Auth\Basic::curl_before_send() - * @see \WpOrg\Requests\Auth\Basic::fsockopen_header() - * @param \WpOrg\Requests\Hooks $hooks Hook system - */ - public function register(Hooks $hooks) { - $hooks->register('curl.before_send', [$this, 'curl_before_send']); - $hooks->register('fsockopen.after_headers', [$this, 'fsockopen_header']); - } - - /** - * Set cURL parameters before the data is sent - * - * @param resource|\CurlHandle $handle cURL handle - */ - public function curl_before_send(&$handle) { - curl_setopt($handle, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); - curl_setopt($handle, CURLOPT_USERPWD, $this->getAuthString()); - } - - /** - * Add extra headers to the request before sending - * - * @param string $out HTTP header string - */ - public function fsockopen_header(&$out) { - $out .= sprintf("Authorization: Basic %s\r\n", base64_encode($this->getAuthString())); - } - - /** - * Get the authentication string (user:pass) - * - * @return string - */ - public function getAuthString() { - return $this->user . ':' . $this->pass; - } -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Autoload.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Autoload.php deleted file mode 100644 index 12a0574..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Autoload.php +++ /dev/null @@ -1,187 +0,0 @@ - '\WpOrg\Requests\Auth', - 'requests_hooker' => '\WpOrg\Requests\HookManager', - 'requests_proxy' => '\WpOrg\Requests\Proxy', - 'requests_transport' => '\WpOrg\Requests\Transport', - - // Classes. - 'requests_cookie' => '\WpOrg\Requests\Cookie', - 'requests_exception' => '\WpOrg\Requests\Exception', - 'requests_hooks' => '\WpOrg\Requests\Hooks', - 'requests_idnaencoder' => '\WpOrg\Requests\IdnaEncoder', - 'requests_ipv6' => '\WpOrg\Requests\Ipv6', - 'requests_iri' => '\WpOrg\Requests\Iri', - 'requests_response' => '\WpOrg\Requests\Response', - 'requests_session' => '\WpOrg\Requests\Session', - 'requests_ssl' => '\WpOrg\Requests\Ssl', - 'requests_auth_basic' => '\WpOrg\Requests\Auth\Basic', - 'requests_cookie_jar' => '\WpOrg\Requests\Cookie\Jar', - 'requests_proxy_http' => '\WpOrg\Requests\Proxy\Http', - 'requests_response_headers' => '\WpOrg\Requests\Response\Headers', - 'requests_transport_curl' => '\WpOrg\Requests\Transport\Curl', - 'requests_transport_fsockopen' => '\WpOrg\Requests\Transport\Fsockopen', - 'requests_utility_caseinsensitivedictionary' => '\WpOrg\Requests\Utility\CaseInsensitiveDictionary', - 'requests_utility_filterediterator' => '\WpOrg\Requests\Utility\FilteredIterator', - 'requests_exception_http' => '\WpOrg\Requests\Exception\Http', - 'requests_exception_transport' => '\WpOrg\Requests\Exception\Transport', - 'requests_exception_transport_curl' => '\WpOrg\Requests\Exception\Transport\Curl', - 'requests_exception_http_304' => '\WpOrg\Requests\Exception\Http\Status304', - 'requests_exception_http_305' => '\WpOrg\Requests\Exception\Http\Status305', - 'requests_exception_http_306' => '\WpOrg\Requests\Exception\Http\Status306', - 'requests_exception_http_400' => '\WpOrg\Requests\Exception\Http\Status400', - 'requests_exception_http_401' => '\WpOrg\Requests\Exception\Http\Status401', - 'requests_exception_http_402' => '\WpOrg\Requests\Exception\Http\Status402', - 'requests_exception_http_403' => '\WpOrg\Requests\Exception\Http\Status403', - 'requests_exception_http_404' => '\WpOrg\Requests\Exception\Http\Status404', - 'requests_exception_http_405' => '\WpOrg\Requests\Exception\Http\Status405', - 'requests_exception_http_406' => '\WpOrg\Requests\Exception\Http\Status406', - 'requests_exception_http_407' => '\WpOrg\Requests\Exception\Http\Status407', - 'requests_exception_http_408' => '\WpOrg\Requests\Exception\Http\Status408', - 'requests_exception_http_409' => '\WpOrg\Requests\Exception\Http\Status409', - 'requests_exception_http_410' => '\WpOrg\Requests\Exception\Http\Status410', - 'requests_exception_http_411' => '\WpOrg\Requests\Exception\Http\Status411', - 'requests_exception_http_412' => '\WpOrg\Requests\Exception\Http\Status412', - 'requests_exception_http_413' => '\WpOrg\Requests\Exception\Http\Status413', - 'requests_exception_http_414' => '\WpOrg\Requests\Exception\Http\Status414', - 'requests_exception_http_415' => '\WpOrg\Requests\Exception\Http\Status415', - 'requests_exception_http_416' => '\WpOrg\Requests\Exception\Http\Status416', - 'requests_exception_http_417' => '\WpOrg\Requests\Exception\Http\Status417', - 'requests_exception_http_418' => '\WpOrg\Requests\Exception\Http\Status418', - 'requests_exception_http_428' => '\WpOrg\Requests\Exception\Http\Status428', - 'requests_exception_http_429' => '\WpOrg\Requests\Exception\Http\Status429', - 'requests_exception_http_431' => '\WpOrg\Requests\Exception\Http\Status431', - 'requests_exception_http_500' => '\WpOrg\Requests\Exception\Http\Status500', - 'requests_exception_http_501' => '\WpOrg\Requests\Exception\Http\Status501', - 'requests_exception_http_502' => '\WpOrg\Requests\Exception\Http\Status502', - 'requests_exception_http_503' => '\WpOrg\Requests\Exception\Http\Status503', - 'requests_exception_http_504' => '\WpOrg\Requests\Exception\Http\Status504', - 'requests_exception_http_505' => '\WpOrg\Requests\Exception\Http\Status505', - 'requests_exception_http_511' => '\WpOrg\Requests\Exception\Http\Status511', - 'requests_exception_http_unknown' => '\WpOrg\Requests\Exception\Http\StatusUnknown', - ]; - - /** - * Register the autoloader. - * - * Note: the autoloader is *prepended* in the autoload queue. - * This is done to ensure that the Requests 2.0 autoloader takes precedence - * over a potentially (dependency-registered) Requests 1.x autoloader. - * - * @internal This method contains a safeguard against the autoloader being - * registered multiple times. This safeguard uses a global constant to - * (hopefully/in most cases) still function correctly, even if the - * class would be renamed. - * - * @return void - */ - public static function register() { - if (defined('REQUESTS_AUTOLOAD_REGISTERED') === false) { - spl_autoload_register([self::class, 'load'], true); - define('REQUESTS_AUTOLOAD_REGISTERED', true); - } - } - - /** - * Autoloader. - * - * @param string $class_name Name of the class name to load. - * - * @return bool Whether a class was loaded or not. - */ - public static function load($class_name) { - // Check that the class starts with "Requests" (PSR-0) or "WpOrg\Requests" (PSR-4). - $psr_4_prefix_pos = strpos($class_name, 'WpOrg\\Requests\\'); - - if (stripos($class_name, 'Requests') !== 0 && $psr_4_prefix_pos !== 0) { - return false; - } - - $class_lower = strtolower($class_name); - - if ($class_lower === 'requests') { - // Reference to the original PSR-0 Requests class. - $file = dirname(__DIR__) . '/library/Requests.php'; - } elseif ($psr_4_prefix_pos === 0) { - // PSR-4 classname. - $file = __DIR__ . '/' . strtr(substr($class_name, 15), '\\', '/') . '.php'; - } - - if (isset($file) && file_exists($file)) { - include $file; // nosemgrep : https://semgrep.dev/s/e5El - return true; - } - - /* - * Okay, so the class starts with "Requests", but we couldn't find the file. - * If this is one of the deprecated/renamed PSR-0 classes being requested, - * let's alias it to the new name and throw a deprecation notice. - */ - if (isset(self::$deprecated_classes[$class_lower])) { - /* - * Integrators who cannot yet upgrade to the PSR-4 class names can silence deprecations - * by defining a `REQUESTS_SILENCE_PSR0_DEPRECATIONS` constant and setting it to `true`. - * The constant needs to be defined before the first deprecated class is requested - * via this autoloader. - */ - if (!defined('REQUESTS_SILENCE_PSR0_DEPRECATIONS') || REQUESTS_SILENCE_PSR0_DEPRECATIONS !== true) { - // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_trigger_error - trigger_error( - 'The PSR-0 `Requests_...` class names in the Request library are deprecated.' - . ' Switch to the PSR-4 `WpOrg\Requests\...` class names at your earliest convenience.', - E_USER_DEPRECATED - ); - - // Prevent the deprecation notice from being thrown twice. - if (!defined('REQUESTS_SILENCE_PSR0_DEPRECATIONS')) { - define('REQUESTS_SILENCE_PSR0_DEPRECATIONS', true); - } - } - - // Create an alias and let the autoloader recursively kick in to load the PSR-4 class. - return class_alias(self::$deprecated_classes[$class_lower], $class_name, true); - } - - return false; - } - } -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Capability.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Capability.php deleted file mode 100644 index 87b8340..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Capability.php +++ /dev/null @@ -1,36 +0,0 @@ - - */ - const ALL = [ - self::SSL, - ]; -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Cookie.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Cookie.php deleted file mode 100644 index ccbbc73..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Cookie.php +++ /dev/null @@ -1,522 +0,0 @@ -name = $name; - $this->value = $value; - $this->attributes = $attributes; - $default_flags = [ - 'creation' => time(), - 'last-access' => time(), - 'persistent' => false, - 'host-only' => true, - ]; - $this->flags = array_merge($default_flags, $flags); - - $this->reference_time = time(); - if ($reference_time !== null) { - $this->reference_time = $reference_time; - } - - $this->normalize(); - } - - /** - * Get the cookie value - * - * Attributes and other data can be accessed via methods. - */ - public function __toString() { - return $this->value; - } - - /** - * Check if a cookie is expired. - * - * Checks the age against $this->reference_time to determine if the cookie - * is expired. - * - * @return boolean True if expired, false if time is valid. - */ - public function is_expired() { - // RFC6265, s. 4.1.2.2: - // If a cookie has both the Max-Age and the Expires attribute, the Max- - // Age attribute has precedence and controls the expiration date of the - // cookie. - if (isset($this->attributes['max-age'])) { - $max_age = $this->attributes['max-age']; - return $max_age < $this->reference_time; - } - - if (isset($this->attributes['expires'])) { - $expires = $this->attributes['expires']; - return $expires < $this->reference_time; - } - - return false; - } - - /** - * Check if a cookie is valid for a given URI - * - * @param \WpOrg\Requests\Iri $uri URI to check - * @return boolean Whether the cookie is valid for the given URI - */ - public function uri_matches(Iri $uri) { - if (!$this->domain_matches($uri->host)) { - return false; - } - - if (!$this->path_matches($uri->path)) { - return false; - } - - return empty($this->attributes['secure']) || $uri->scheme === 'https'; - } - - /** - * Check if a cookie is valid for a given domain - * - * @param string $domain Domain to check - * @return boolean Whether the cookie is valid for the given domain - */ - public function domain_matches($domain) { - if (is_string($domain) === false) { - return false; - } - - if (!isset($this->attributes['domain'])) { - // Cookies created manually; cookies created by Requests will set - // the domain to the requested domain - return true; - } - - $cookie_domain = $this->attributes['domain']; - if ($cookie_domain === $domain) { - // The cookie domain and the passed domain are identical. - return true; - } - - // If the cookie is marked as host-only and we don't have an exact - // match, reject the cookie - if ($this->flags['host-only'] === true) { - return false; - } - - if (strlen($domain) <= strlen($cookie_domain)) { - // For obvious reasons, the cookie domain cannot be a suffix if the passed domain - // is shorter than the cookie domain - return false; - } - - if (substr($domain, -1 * strlen($cookie_domain)) !== $cookie_domain) { - // The cookie domain should be a suffix of the passed domain. - return false; - } - - $prefix = substr($domain, 0, strlen($domain) - strlen($cookie_domain)); - if (substr($prefix, -1) !== '.') { - // The last character of the passed domain that is not included in the - // domain string should be a %x2E (".") character. - return false; - } - - // The passed domain should be a host name (i.e., not an IP address). - return !preg_match('#^(.+\.)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$#', $domain); - } - - /** - * Check if a cookie is valid for a given path - * - * From the path-match check in RFC 6265 section 5.1.4 - * - * @param string $request_path Path to check - * @return boolean Whether the cookie is valid for the given path - */ - public function path_matches($request_path) { - if (empty($request_path)) { - // Normalize empty path to root - $request_path = '/'; - } - - if (!isset($this->attributes['path'])) { - // Cookies created manually; cookies created by Requests will set - // the path to the requested path - return true; - } - - if (is_scalar($request_path) === false) { - return false; - } - - $cookie_path = $this->attributes['path']; - - if ($cookie_path === $request_path) { - // The cookie-path and the request-path are identical. - return true; - } - - if (strlen($request_path) > strlen($cookie_path) && substr($request_path, 0, strlen($cookie_path)) === $cookie_path) { - if (substr($cookie_path, -1) === '/') { - // The cookie-path is a prefix of the request-path, and the last - // character of the cookie-path is %x2F ("/"). - return true; - } - - if (substr($request_path, strlen($cookie_path), 1) === '/') { - // The cookie-path is a prefix of the request-path, and the - // first character of the request-path that is not included in - // the cookie-path is a %x2F ("/") character. - return true; - } - } - - return false; - } - - /** - * Normalize cookie and attributes - * - * @return boolean Whether the cookie was successfully normalized - */ - public function normalize() { - foreach ($this->attributes as $key => $value) { - $orig_value = $value; - $value = $this->normalize_attribute($key, $value); - if ($value === null) { - unset($this->attributes[$key]); - continue; - } - - if ($value !== $orig_value) { - $this->attributes[$key] = $value; - } - } - - return true; - } - - /** - * Parse an individual cookie attribute - * - * Handles parsing individual attributes from the cookie values. - * - * @param string $name Attribute name - * @param string|boolean $value Attribute value (string value, or true if empty/flag) - * @return mixed Value if available, or null if the attribute value is invalid (and should be skipped) - */ - protected function normalize_attribute($name, $value) { - switch (strtolower($name)) { - case 'expires': - // Expiration parsing, as per RFC 6265 section 5.2.1 - if (is_int($value)) { - return $value; - } - - $expiry_time = strtotime($value); - if ($expiry_time === false) { - return null; - } - - return $expiry_time; - - case 'max-age': - // Expiration parsing, as per RFC 6265 section 5.2.2 - if (is_int($value)) { - return $value; - } - - // Check that we have a valid age - if (!preg_match('/^-?\d+$/', $value)) { - return null; - } - - $delta_seconds = (int) $value; - if ($delta_seconds <= 0) { - $expiry_time = 0; - } else { - $expiry_time = $this->reference_time + $delta_seconds; - } - - return $expiry_time; - - case 'domain': - // Domains are not required as per RFC 6265 section 5.2.3 - if (empty($value)) { - return null; - } - - // Domain normalization, as per RFC 6265 section 5.2.3 - if ($value[0] === '.') { - $value = substr($value, 1); - } - - return $value; - - default: - return $value; - } - } - - /** - * Format a cookie for a Cookie header - * - * This is used when sending cookies to a server. - * - * @return string Cookie formatted for Cookie header - */ - public function format_for_header() { - return sprintf('%s=%s', $this->name, $this->value); - } - - /** - * Format a cookie for a Set-Cookie header - * - * This is used when sending cookies to clients. This isn't really - * applicable to client-side usage, but might be handy for debugging. - * - * @return string Cookie formatted for Set-Cookie header - */ - public function format_for_set_cookie() { - $header_value = $this->format_for_header(); - if (!empty($this->attributes)) { - $parts = []; - foreach ($this->attributes as $key => $value) { - // Ignore non-associative attributes - if (is_numeric($key)) { - $parts[] = $value; - } else { - $parts[] = sprintf('%s=%s', $key, $value); - } - } - - $header_value .= '; ' . implode('; ', $parts); - } - - return $header_value; - } - - /** - * Parse a cookie string into a cookie object - * - * Based on Mozilla's parsing code in Firefox and related projects, which - * is an intentional deviation from RFC 2109 and RFC 2616. RFC 6265 - * specifies some of this handling, but not in a thorough manner. - * - * @param string $cookie_header Cookie header value (from a Set-Cookie header) - * @param string $name - * @param int|null $reference_time - * @return \WpOrg\Requests\Cookie Parsed cookie object - * - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $cookie_header argument is not a string. - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $name argument is not a string. - */ - public static function parse($cookie_header, $name = '', $reference_time = null) { - if (is_string($cookie_header) === false) { - throw InvalidArgument::create(1, '$cookie_header', 'string', gettype($cookie_header)); - } - - if (is_string($name) === false) { - throw InvalidArgument::create(2, '$name', 'string', gettype($name)); - } - - $parts = explode(';', $cookie_header); - $kvparts = array_shift($parts); - - if (!empty($name)) { - $value = $cookie_header; - } elseif (strpos($kvparts, '=') === false) { - // Some sites might only have a value without the equals separator. - // Deviate from RFC 6265 and pretend it was actually a blank name - // (`=foo`) - // - // https://bugzilla.mozilla.org/show_bug.cgi?id=169091 - $name = ''; - $value = $kvparts; - } else { - list($name, $value) = explode('=', $kvparts, 2); - } - - $name = trim($name); - $value = trim($value); - - // Attribute keys are handled case-insensitively - $attributes = new CaseInsensitiveDictionary(); - - if (!empty($parts)) { - foreach ($parts as $part) { - if (strpos($part, '=') === false) { - $part_key = $part; - $part_value = true; - } else { - list($part_key, $part_value) = explode('=', $part, 2); - $part_value = trim($part_value); - } - - $part_key = trim($part_key); - $attributes[$part_key] = $part_value; - } - } - - return new static($name, $value, $attributes, [], $reference_time); - } - - /** - * Parse all Set-Cookie headers from request headers - * - * @param \WpOrg\Requests\Response\Headers $headers Headers to parse from - * @param \WpOrg\Requests\Iri|null $origin URI for comparing cookie origins - * @param int|null $time Reference time for expiration calculation - * @return array - */ - public static function parse_from_headers(Headers $headers, Iri $origin = null, $time = null) { - $cookie_headers = $headers->getValues('Set-Cookie'); - if (empty($cookie_headers)) { - return []; - } - - $cookies = []; - foreach ($cookie_headers as $header) { - $parsed = self::parse($header, '', $time); - - // Default domain/path attributes - if (empty($parsed->attributes['domain']) && !empty($origin)) { - $parsed->attributes['domain'] = $origin->host; - $parsed->flags['host-only'] = true; - } else { - $parsed->flags['host-only'] = false; - } - - $path_is_valid = (!empty($parsed->attributes['path']) && $parsed->attributes['path'][0] === '/'); - if (!$path_is_valid && !empty($origin)) { - $path = $origin->path; - - // Default path normalization as per RFC 6265 section 5.1.4 - if (substr($path, 0, 1) !== '/') { - // If the uri-path is empty or if the first character of - // the uri-path is not a %x2F ("/") character, output - // %x2F ("/") and skip the remaining steps. - $path = '/'; - } elseif (substr_count($path, '/') === 1) { - // If the uri-path contains no more than one %x2F ("/") - // character, output %x2F ("/") and skip the remaining - // step. - $path = '/'; - } else { - // Output the characters of the uri-path from the first - // character up to, but not including, the right-most - // %x2F ("/"). - $path = substr($path, 0, strrpos($path, '/')); - } - - $parsed->attributes['path'] = $path; - } - - // Reject invalid cookie domains - if (!empty($origin) && !$parsed->domain_matches($origin->host)) { - continue; - } - - $cookies[$parsed->name] = $parsed; - } - - return $cookies; - } -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Cookie/Jar.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Cookie/Jar.php deleted file mode 100644 index dfbb8b7..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Cookie/Jar.php +++ /dev/null @@ -1,186 +0,0 @@ -cookies = $cookies; - } - - /** - * Normalise cookie data into a \WpOrg\Requests\Cookie - * - * @param string|\WpOrg\Requests\Cookie $cookie - * @return \WpOrg\Requests\Cookie - */ - public function normalize_cookie($cookie, $key = '') { - if ($cookie instanceof Cookie) { - return $cookie; - } - - return Cookie::parse($cookie, $key); - } - - /** - * Check if the given item exists - * - * @param string $offset Item key - * @return boolean Does the item exist? - */ - #[ReturnTypeWillChange] - public function offsetExists($offset) { - return isset($this->cookies[$offset]); - } - - /** - * Get the value for the item - * - * @param string $offset Item key - * @return string|null Item value (null if offsetExists is false) - */ - #[ReturnTypeWillChange] - public function offsetGet($offset) { - if (!isset($this->cookies[$offset])) { - return null; - } - - return $this->cookies[$offset]; - } - - /** - * Set the given item - * - * @param string $offset Item name - * @param string $value Item value - * - * @throws \WpOrg\Requests\Exception On attempting to use dictionary as list (`invalidset`) - */ - #[ReturnTypeWillChange] - public function offsetSet($offset, $value) { - if ($offset === null) { - throw new Exception('Object is a dictionary, not a list', 'invalidset'); - } - - $this->cookies[$offset] = $value; - } - - /** - * Unset the given header - * - * @param string $offset - */ - #[ReturnTypeWillChange] - public function offsetUnset($offset) { - unset($this->cookies[$offset]); - } - - /** - * Get an iterator for the data - * - * @return \ArrayIterator - */ - #[ReturnTypeWillChange] - public function getIterator() { - return new ArrayIterator($this->cookies); - } - - /** - * Register the cookie handler with the request's hooking system - * - * @param \WpOrg\Requests\HookManager $hooks Hooking system - */ - public function register(HookManager $hooks) { - $hooks->register('requests.before_request', [$this, 'before_request']); - $hooks->register('requests.before_redirect_check', [$this, 'before_redirect_check']); - } - - /** - * Add Cookie header to a request if we have any - * - * As per RFC 6265, cookies are separated by '; ' - * - * @param string $url - * @param array $headers - * @param array $data - * @param string $type - * @param array $options - */ - public function before_request($url, &$headers, &$data, &$type, &$options) { - if (!$url instanceof Iri) { - $url = new Iri($url); - } - - if (!empty($this->cookies)) { - $cookies = []; - foreach ($this->cookies as $key => $cookie) { - $cookie = $this->normalize_cookie($cookie, $key); - - // Skip expired cookies - if ($cookie->is_expired()) { - continue; - } - - if ($cookie->domain_matches($url->host)) { - $cookies[] = $cookie->format_for_header(); - } - } - - $headers['Cookie'] = implode('; ', $cookies); - } - } - - /** - * Parse all cookies from a response and attach them to the response - * - * @param \WpOrg\Requests\Response $response - */ - public function before_redirect_check(Response $response) { - $url = $response->url; - if (!$url instanceof Iri) { - $url = new Iri($url); - } - - $cookies = Cookie::parse_from_headers($response->headers, $url); - $this->cookies = array_merge($this->cookies, $cookies); - $response->cookies = $this; - } -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Exception.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Exception.php deleted file mode 100644 index b67d1b1..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Exception.php +++ /dev/null @@ -1,66 +0,0 @@ -type = $type; - $this->data = $data; - } - - /** - * Like {@see \Exception::getCode()}, but a string code. - * - * @codeCoverageIgnore - * @return string - */ - public function getType() { - return $this->type; - } - - /** - * Gives any relevant data - * - * @codeCoverageIgnore - * @return mixed - */ - public function getData() { - return $this->data; - } -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Exception/ArgumentCount.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Exception/ArgumentCount.php deleted file mode 100644 index b5773dd..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Exception/ArgumentCount.php +++ /dev/null @@ -1,47 +0,0 @@ -reason = $reason; - } - - $message = sprintf('%d %s', $this->code, $this->reason); - parent::__construct($message, 'httpresponse', $data, $this->code); - } - - /** - * Get the status message. - * - * @return string - */ - public function getReason() { - return $this->reason; - } - - /** - * Get the correct exception class for a given error code - * - * @param int|bool $code HTTP status code, or false if unavailable - * @return string Exception class name to use - */ - public static function get_class($code) { - if (!$code) { - return StatusUnknown::class; - } - - $class = sprintf('\WpOrg\Requests\Exception\Http\Status%d', $code); - if (class_exists($class)) { - return $class; - } - - return StatusUnknown::class; - } -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Exception/Http/Status304.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Exception/Http/Status304.php deleted file mode 100644 index d510ae7..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Exception/Http/Status304.php +++ /dev/null @@ -1,31 +0,0 @@ -code = (int) $data->status_code; - } - - parent::__construct($reason, $data); - } -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Exception/InvalidArgument.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Exception/InvalidArgument.php deleted file mode 100644 index 0ab7332..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Exception/InvalidArgument.php +++ /dev/null @@ -1,41 +0,0 @@ -type = $type; - } - - if ($code !== null) { - $this->code = (int) $code; - } - - if ($message !== null) { - $this->reason = $message; - } - - $message = sprintf('%d %s', $this->code, $this->reason); - parent::__construct($message, $this->type, $data, $this->code); - } - - /** - * Get the error message. - * - * @return string - */ - public function getReason() { - return $this->reason; - } - -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/HookManager.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/HookManager.php deleted file mode 100644 index f292017..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/HookManager.php +++ /dev/null @@ -1,33 +0,0 @@ -0 is executed later - */ - public function register($hook, $callback, $priority = 0); - - /** - * Dispatch a message - * - * @param string $hook Hook name - * @param array $parameters Parameters to pass to callbacks - * @return boolean Successfulness - */ - public function dispatch($hook, $parameters = []); -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Hooks.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Hooks.php deleted file mode 100644 index 74fba0b..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Hooks.php +++ /dev/null @@ -1,99 +0,0 @@ -0 is executed later - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $hook argument is not a string. - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $callback argument is not callable. - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $priority argument is not an integer. - */ - public function register($hook, $callback, $priority = 0) { - if (is_string($hook) === false) { - throw InvalidArgument::create(1, '$hook', 'string', gettype($hook)); - } - - if (is_callable($callback) === false) { - throw InvalidArgument::create(2, '$callback', 'callable', gettype($callback)); - } - - if (InputValidator::is_numeric_array_key($priority) === false) { - throw InvalidArgument::create(3, '$priority', 'integer', gettype($priority)); - } - - if (!isset($this->hooks[$hook])) { - $this->hooks[$hook] = [ - $priority => [], - ]; - } elseif (!isset($this->hooks[$hook][$priority])) { - $this->hooks[$hook][$priority] = []; - } - - $this->hooks[$hook][$priority][] = $callback; - } - - /** - * Dispatch a message - * - * @param string $hook Hook name - * @param array $parameters Parameters to pass to callbacks - * @return boolean Successfulness - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $hook argument is not a string. - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $parameters argument is not an array. - */ - public function dispatch($hook, $parameters = []) { - if (is_string($hook) === false) { - throw InvalidArgument::create(1, '$hook', 'string', gettype($hook)); - } - - // Check strictly against array, as Array* objects don't work in combination with `call_user_func_array()`. - if (is_array($parameters) === false) { - throw InvalidArgument::create(2, '$parameters', 'array', gettype($parameters)); - } - - if (empty($this->hooks[$hook])) { - return false; - } - - if (!empty($parameters)) { - // Strip potential keys from the array to prevent them being interpreted as parameter names in PHP 8.0. - $parameters = array_values($parameters); - } - - ksort($this->hooks[$hook]); - - foreach ($this->hooks[$hook] as $priority => $hooked) { - foreach ($hooked as $callback) { - $callback(...$parameters); - } - } - - return true; - } -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/IdnaEncoder.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/IdnaEncoder.php deleted file mode 100644 index 094fff3..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/IdnaEncoder.php +++ /dev/null @@ -1,412 +0,0 @@ - 0) { - if ($position + $length > $strlen) { - throw new Exception('Invalid Unicode codepoint', 'idna.invalidcodepoint', $character); - } - - for ($position++; $remaining > 0; $position++) { - $value = ord($input[$position]); - - // If it is invalid, count the sequence as invalid and reprocess the current byte: - if (($value & 0xC0) !== 0x80) { - throw new Exception('Invalid Unicode codepoint', 'idna.invalidcodepoint', $character); - } - - --$remaining; - $character |= ($value & 0x3F) << ($remaining * 6); - } - - $position--; - } - - if (// Non-shortest form sequences are invalid - $length > 1 && $character <= 0x7F - || $length > 2 && $character <= 0x7FF - || $length > 3 && $character <= 0xFFFF - // Outside of range of ucschar codepoints - // Noncharacters - || ($character & 0xFFFE) === 0xFFFE - || $character >= 0xFDD0 && $character <= 0xFDEF - || ( - // Everything else not in ucschar - $character > 0xD7FF && $character < 0xF900 - || $character < 0x20 - || $character > 0x7E && $character < 0xA0 - || $character > 0xEFFFD - ) - ) { - throw new Exception('Invalid Unicode codepoint', 'idna.invalidcodepoint', $character); - } - - $codepoints[] = $character; - } - - return $codepoints; - } - - /** - * RFC3492-compliant encoder - * - * @internal Pseudo-code from Section 6.3 is commented with "#" next to relevant code - * - * @param string $input UTF-8 encoded string to encode - * @return string Punycode-encoded string - * - * @throws \WpOrg\Requests\Exception On character outside of the domain (never happens with Punycode) (`idna.character_outside_domain`) - */ - public static function punycode_encode($input) { - $output = ''; - // let n = initial_n - $n = self::BOOTSTRAP_INITIAL_N; - // let delta = 0 - $delta = 0; - // let bias = initial_bias - $bias = self::BOOTSTRAP_INITIAL_BIAS; - // let h = b = the number of basic code points in the input - $h = 0; - $b = 0; // see loop - // copy them to the output in order - $codepoints = self::utf8_to_codepoints($input); - $extended = []; - - foreach ($codepoints as $char) { - if ($char < 128) { - // Character is valid ASCII - // TODO: this should also check if it's valid for a URL - $output .= chr($char); - $h++; - - // Check if the character is non-ASCII, but below initial n - // This never occurs for Punycode, so ignore in coverage - // @codeCoverageIgnoreStart - } elseif ($char < $n) { - throw new Exception('Invalid character', 'idna.character_outside_domain', $char); - // @codeCoverageIgnoreEnd - } else { - $extended[$char] = true; - } - } - - $extended = array_keys($extended); - sort($extended); - $b = $h; - // [copy them] followed by a delimiter if b > 0 - if (strlen($output) > 0) { - $output .= '-'; - } - - // {if the input contains a non-basic code point < n then fail} - // while h < length(input) do begin - $codepointcount = count($codepoints); - while ($h < $codepointcount) { - // let m = the minimum code point >= n in the input - $m = array_shift($extended); - //printf('next code point to insert is %s' . PHP_EOL, dechex($m)); - // let delta = delta + (m - n) * (h + 1), fail on overflow - $delta += ($m - $n) * ($h + 1); - // let n = m - $n = $m; - // for each code point c in the input (in order) do begin - for ($num = 0; $num < $codepointcount; $num++) { - $c = $codepoints[$num]; - // if c < n then increment delta, fail on overflow - if ($c < $n) { - $delta++; - } elseif ($c === $n) { // if c == n then begin - // let q = delta - $q = $delta; - // for k = base to infinity in steps of base do begin - for ($k = self::BOOTSTRAP_BASE; ; $k += self::BOOTSTRAP_BASE) { - // let t = tmin if k <= bias {+ tmin}, or - // tmax if k >= bias + tmax, or k - bias otherwise - if ($k <= ($bias + self::BOOTSTRAP_TMIN)) { - $t = self::BOOTSTRAP_TMIN; - } elseif ($k >= ($bias + self::BOOTSTRAP_TMAX)) { - $t = self::BOOTSTRAP_TMAX; - } else { - $t = $k - $bias; - } - - // if q < t then break - if ($q < $t) { - break; - } - - // output the code point for digit t + ((q - t) mod (base - t)) - $digit = $t + (($q - $t) % (self::BOOTSTRAP_BASE - $t)); - $output .= self::digit_to_char($digit); - // let q = (q - t) div (base - t) - $q = floor(($q - $t) / (self::BOOTSTRAP_BASE - $t)); - } // end - // output the code point for digit q - $output .= self::digit_to_char($q); - // let bias = adapt(delta, h + 1, test h equals b?) - $bias = self::adapt($delta, $h + 1, $h === $b); - // let delta = 0 - $delta = 0; - // increment h - $h++; - } // end - } // end - // increment delta and n - $delta++; - $n++; - } // end - - return $output; - } - - /** - * Convert a digit to its respective character - * - * @link https://tools.ietf.org/html/rfc3492#section-5 - * - * @param int $digit Digit in the range 0-35 - * @return string Single character corresponding to digit - * - * @throws \WpOrg\Requests\Exception On invalid digit (`idna.invalid_digit`) - */ - protected static function digit_to_char($digit) { - // @codeCoverageIgnoreStart - // As far as I know, this never happens, but still good to be sure. - if ($digit < 0 || $digit > 35) { - throw new Exception(sprintf('Invalid digit %d', $digit), 'idna.invalid_digit', $digit); - } - - // @codeCoverageIgnoreEnd - $digits = 'abcdefghijklmnopqrstuvwxyz0123456789'; - return substr($digits, $digit, 1); - } - - /** - * Adapt the bias - * - * @link https://tools.ietf.org/html/rfc3492#section-6.1 - * @param int $delta - * @param int $numpoints - * @param bool $firsttime - * @return int New bias - * - * function adapt(delta,numpoints,firsttime): - */ - protected static function adapt($delta, $numpoints, $firsttime) { - // if firsttime then let delta = delta div damp - if ($firsttime) { - $delta = floor($delta / self::BOOTSTRAP_DAMP); - } else { - // else let delta = delta div 2 - $delta = floor($delta / 2); - } - - // let delta = delta + (delta div numpoints) - $delta += floor($delta / $numpoints); - // let k = 0 - $k = 0; - // while delta > ((base - tmin) * tmax) div 2 do begin - $max = floor(((self::BOOTSTRAP_BASE - self::BOOTSTRAP_TMIN) * self::BOOTSTRAP_TMAX) / 2); - while ($delta > $max) { - // let delta = delta div (base - tmin) - $delta = floor($delta / (self::BOOTSTRAP_BASE - self::BOOTSTRAP_TMIN)); - // let k = k + base - $k += self::BOOTSTRAP_BASE; - } // end - // return k + (((base - tmin + 1) * delta) div (delta + skew)) - return $k + floor(((self::BOOTSTRAP_BASE - self::BOOTSTRAP_TMIN + 1) * $delta) / ($delta + self::BOOTSTRAP_SKEW)); - } -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Ipv6.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Ipv6.php deleted file mode 100644 index a90ab8a..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Ipv6.php +++ /dev/null @@ -1,203 +0,0 @@ - FF01:0:0:0:0:0:0:101 - * ::1 -> 0:0:0:0:0:0:0:1 - * - * @author Alexander Merz - * @author elfrink at introweb dot nl - * @author Josh Peck - * @copyright 2003-2005 The PHP Group - * @license https://opensource.org/licenses/bsd-license.php - * - * @param string|Stringable $ip An IPv6 address - * @return string The uncompressed IPv6 address - * - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed argument is not a string or a stringable object. - */ - public static function uncompress($ip) { - if (InputValidator::is_string_or_stringable($ip) === false) { - throw InvalidArgument::create(1, '$ip', 'string|Stringable', gettype($ip)); - } - - $ip = (string) $ip; - - if (substr_count($ip, '::') !== 1) { - return $ip; - } - - list($ip1, $ip2) = explode('::', $ip); - $c1 = ($ip1 === '') ? -1 : substr_count($ip1, ':'); - $c2 = ($ip2 === '') ? -1 : substr_count($ip2, ':'); - - if (strpos($ip2, '.') !== false) { - $c2++; - } - - if ($c1 === -1 && $c2 === -1) { - // :: - $ip = '0:0:0:0:0:0:0:0'; - } elseif ($c1 === -1) { - // ::xxx - $fill = str_repeat('0:', 7 - $c2); - $ip = str_replace('::', $fill, $ip); - } elseif ($c2 === -1) { - // xxx:: - $fill = str_repeat(':0', 7 - $c1); - $ip = str_replace('::', $fill, $ip); - } else { - // xxx::xxx - $fill = ':' . str_repeat('0:', 6 - $c2 - $c1); - $ip = str_replace('::', $fill, $ip); - } - - return $ip; - } - - /** - * Compresses an IPv6 address - * - * RFC 4291 allows you to compress consecutive zero pieces in an address to - * '::'. This method expects a valid IPv6 address and compresses consecutive - * zero pieces to '::'. - * - * Example: FF01:0:0:0:0:0:0:101 -> FF01::101 - * 0:0:0:0:0:0:0:1 -> ::1 - * - * @see \WpOrg\Requests\Ipv6::uncompress() - * - * @param string $ip An IPv6 address - * @return string The compressed IPv6 address - */ - public static function compress($ip) { - // Prepare the IP to be compressed. - // Note: Input validation is handled in the `uncompress()` method, which is the first call made in this method. - $ip = self::uncompress($ip); - $ip_parts = self::split_v6_v4($ip); - - // Replace all leading zeros - $ip_parts[0] = preg_replace('/(^|:)0+([0-9])/', '\1\2', $ip_parts[0]); - - // Find bunches of zeros - if (preg_match_all('/(?:^|:)(?:0(?::|$))+/', $ip_parts[0], $matches, PREG_OFFSET_CAPTURE)) { - $max = 0; - $pos = null; - foreach ($matches[0] as $match) { - if (strlen($match[0]) > $max) { - $max = strlen($match[0]); - $pos = $match[1]; - } - } - - $ip_parts[0] = substr_replace($ip_parts[0], '::', $pos, $max); - } - - if ($ip_parts[1] !== '') { - return implode(':', $ip_parts); - } else { - return $ip_parts[0]; - } - } - - /** - * Splits an IPv6 address into the IPv6 and IPv4 representation parts - * - * RFC 4291 allows you to represent the last two parts of an IPv6 address - * using the standard IPv4 representation - * - * Example: 0:0:0:0:0:0:13.1.68.3 - * 0:0:0:0:0:FFFF:129.144.52.38 - * - * @param string $ip An IPv6 address - * @return string[] [0] contains the IPv6 represented part, and [1] the IPv4 represented part - */ - private static function split_v6_v4($ip) { - if (strpos($ip, '.') !== false) { - $pos = strrpos($ip, ':'); - $ipv6_part = substr($ip, 0, $pos); - $ipv4_part = substr($ip, $pos + 1); - return [$ipv6_part, $ipv4_part]; - } else { - return [$ip, '']; - } - } - - /** - * Checks an IPv6 address - * - * Checks if the given IP is a valid IPv6 address - * - * @param string $ip An IPv6 address - * @return bool true if $ip is a valid IPv6 address - */ - public static function check_ipv6($ip) { - // Note: Input validation is handled in the `uncompress()` method, which is the first call made in this method. - $ip = self::uncompress($ip); - list($ipv6, $ipv4) = self::split_v6_v4($ip); - $ipv6 = explode(':', $ipv6); - $ipv4 = explode('.', $ipv4); - if (count($ipv6) === 8 && count($ipv4) === 1 || count($ipv6) === 6 && count($ipv4) === 4) { - foreach ($ipv6 as $ipv6_part) { - // The section can't be empty - if ($ipv6_part === '') { - return false; - } - - // Nor can it be over four characters - if (strlen($ipv6_part) > 4) { - return false; - } - - // Remove leading zeros (this is safe because of the above) - $ipv6_part = ltrim($ipv6_part, '0'); - if ($ipv6_part === '') { - $ipv6_part = '0'; - } - - // Check the value is valid - $value = hexdec($ipv6_part); - if (dechex($value) !== strtolower($ipv6_part) || $value < 0 || $value > 0xFFFF) { - return false; - } - } - - if (count($ipv4) === 4) { - foreach ($ipv4 as $ipv4_part) { - $value = (int) $ipv4_part; - if ((string) $value !== $ipv4_part || $value < 0 || $value > 0xFF) { - return false; - } - } - } - - return true; - } else { - return false; - } - } -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Iri.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Iri.php deleted file mode 100644 index 244578d..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Iri.php +++ /dev/null @@ -1,1101 +0,0 @@ - array( - 'port' => Port::ACAP, - ), - 'dict' => array( - 'port' => Port::DICT, - ), - 'file' => array( - 'ihost' => 'localhost', - ), - 'http' => array( - 'port' => Port::HTTP, - ), - 'https' => array( - 'port' => Port::HTTPS, - ), - ); - - /** - * Return the entire IRI when you try and read the object as a string - * - * @return string - */ - public function __toString() { - return $this->get_iri(); - } - - /** - * Overload __set() to provide access via properties - * - * @param string $name Property name - * @param mixed $value Property value - */ - public function __set($name, $value) { - if (method_exists($this, 'set_' . $name)) { - call_user_func(array($this, 'set_' . $name), $value); - } - elseif ( - $name === 'iauthority' - || $name === 'iuserinfo' - || $name === 'ihost' - || $name === 'ipath' - || $name === 'iquery' - || $name === 'ifragment' - ) { - call_user_func(array($this, 'set_' . substr($name, 1)), $value); - } - } - - /** - * Overload __get() to provide access via properties - * - * @param string $name Property name - * @return mixed - */ - public function __get($name) { - // isset() returns false for null, we don't want to do that - // Also why we use array_key_exists below instead of isset() - $props = get_object_vars($this); - - if ( - $name === 'iri' || - $name === 'uri' || - $name === 'iauthority' || - $name === 'authority' - ) { - $method = 'get_' . $name; - $return = $this->$method(); - } - elseif (array_key_exists($name, $props)) { - $return = $this->$name; - } - // host -> ihost - elseif (($prop = 'i' . $name) && array_key_exists($prop, $props)) { - $name = $prop; - $return = $this->$prop; - } - // ischeme -> scheme - elseif (($prop = substr($name, 1)) && array_key_exists($prop, $props)) { - $name = $prop; - $return = $this->$prop; - } - else { - trigger_error('Undefined property: ' . get_class($this) . '::' . $name, E_USER_NOTICE); - $return = null; - } - - if ($return === null && isset($this->normalization[$this->scheme][$name])) { - return $this->normalization[$this->scheme][$name]; - } - else { - return $return; - } - } - - /** - * Overload __isset() to provide access via properties - * - * @param string $name Property name - * @return bool - */ - public function __isset($name) { - return (method_exists($this, 'get_' . $name) || isset($this->$name)); - } - - /** - * Overload __unset() to provide access via properties - * - * @param string $name Property name - */ - public function __unset($name) { - if (method_exists($this, 'set_' . $name)) { - call_user_func(array($this, 'set_' . $name), ''); - } - } - - /** - * Create a new IRI object, from a specified string - * - * @param string|Stringable|null $iri - * - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $iri argument is not a string, Stringable or null. - */ - public function __construct($iri = null) { - if ($iri !== null && InputValidator::is_string_or_stringable($iri) === false) { - throw InvalidArgument::create(1, '$iri', 'string|Stringable|null', gettype($iri)); - } - - $this->set_iri($iri); - } - - /** - * Create a new IRI object by resolving a relative IRI - * - * Returns false if $base is not absolute, otherwise an IRI. - * - * @param \WpOrg\Requests\Iri|string $base (Absolute) Base IRI - * @param \WpOrg\Requests\Iri|string $relative Relative IRI - * @return \WpOrg\Requests\Iri|false - */ - public static function absolutize($base, $relative) { - if (!($relative instanceof self)) { - $relative = new self($relative); - } - if (!$relative->is_valid()) { - return false; - } - elseif ($relative->scheme !== null) { - return clone $relative; - } - - if (!($base instanceof self)) { - $base = new self($base); - } - if ($base->scheme === null || !$base->is_valid()) { - return false; - } - - if ($relative->get_iri() !== '') { - if ($relative->iuserinfo !== null || $relative->ihost !== null || $relative->port !== null) { - $target = clone $relative; - $target->scheme = $base->scheme; - } - else { - $target = new self; - $target->scheme = $base->scheme; - $target->iuserinfo = $base->iuserinfo; - $target->ihost = $base->ihost; - $target->port = $base->port; - if ($relative->ipath !== '') { - if ($relative->ipath[0] === '/') { - $target->ipath = $relative->ipath; - } - elseif (($base->iuserinfo !== null || $base->ihost !== null || $base->port !== null) && $base->ipath === '') { - $target->ipath = '/' . $relative->ipath; - } - elseif (($last_segment = strrpos($base->ipath, '/')) !== false) { - $target->ipath = substr($base->ipath, 0, $last_segment + 1) . $relative->ipath; - } - else { - $target->ipath = $relative->ipath; - } - $target->ipath = $target->remove_dot_segments($target->ipath); - $target->iquery = $relative->iquery; - } - else { - $target->ipath = $base->ipath; - if ($relative->iquery !== null) { - $target->iquery = $relative->iquery; - } - elseif ($base->iquery !== null) { - $target->iquery = $base->iquery; - } - } - $target->ifragment = $relative->ifragment; - } - } - else { - $target = clone $base; - $target->ifragment = null; - } - $target->scheme_normalization(); - return $target; - } - - /** - * Parse an IRI into scheme/authority/path/query/fragment segments - * - * @param string $iri - * @return array - */ - protected function parse_iri($iri) { - $iri = trim($iri, "\x20\x09\x0A\x0C\x0D"); - $has_match = preg_match('/^((?P[^:\/?#]+):)?(\/\/(?P[^\/?#]*))?(?P[^?#]*)(\?(?P[^#]*))?(#(?P.*))?$/', $iri, $match); - if (!$has_match) { - throw new Exception('Cannot parse supplied IRI', 'iri.cannot_parse', $iri); - } - - if ($match[1] === '') { - $match['scheme'] = null; - } - if (!isset($match[3]) || $match[3] === '') { - $match['authority'] = null; - } - if (!isset($match[5])) { - $match['path'] = ''; - } - if (!isset($match[6]) || $match[6] === '') { - $match['query'] = null; - } - if (!isset($match[8]) || $match[8] === '') { - $match['fragment'] = null; - } - return $match; - } - - /** - * Remove dot segments from a path - * - * @param string $input - * @return string - */ - protected function remove_dot_segments($input) { - $output = ''; - while (strpos($input, './') !== false || strpos($input, '/.') !== false || $input === '.' || $input === '..') { - // A: If the input buffer begins with a prefix of "../" or "./", - // then remove that prefix from the input buffer; otherwise, - if (strpos($input, '../') === 0) { - $input = substr($input, 3); - } - elseif (strpos($input, './') === 0) { - $input = substr($input, 2); - } - // B: if the input buffer begins with a prefix of "/./" or "/.", - // where "." is a complete path segment, then replace that prefix - // with "/" in the input buffer; otherwise, - elseif (strpos($input, '/./') === 0) { - $input = substr($input, 2); - } - elseif ($input === '/.') { - $input = '/'; - } - // C: if the input buffer begins with a prefix of "/../" or "/..", - // where ".." is a complete path segment, then replace that prefix - // with "/" in the input buffer and remove the last segment and its - // preceding "/" (if any) from the output buffer; otherwise, - elseif (strpos($input, '/../') === 0) { - $input = substr($input, 3); - $output = substr_replace($output, '', strrpos($output, '/')); - } - elseif ($input === '/..') { - $input = '/'; - $output = substr_replace($output, '', strrpos($output, '/')); - } - // D: if the input buffer consists only of "." or "..", then remove - // that from the input buffer; otherwise, - elseif ($input === '.' || $input === '..') { - $input = ''; - } - // E: move the first path segment in the input buffer to the end of - // the output buffer, including the initial "/" character (if any) - // and any subsequent characters up to, but not including, the next - // "/" character or the end of the input buffer - elseif (($pos = strpos($input, '/', 1)) !== false) { - $output .= substr($input, 0, $pos); - $input = substr_replace($input, '', 0, $pos); - } - else { - $output .= $input; - $input = ''; - } - } - return $output . $input; - } - - /** - * Replace invalid character with percent encoding - * - * @param string $text Input string - * @param string $extra_chars Valid characters not in iunreserved or - * iprivate (this is ASCII-only) - * @param bool $iprivate Allow iprivate - * @return string - */ - protected function replace_invalid_with_pct_encoding($text, $extra_chars, $iprivate = false) { - // Normalize as many pct-encoded sections as possible - $text = preg_replace_callback('/(?:%[A-Fa-f0-9]{2})+/', array($this, 'remove_iunreserved_percent_encoded'), $text); - - // Replace invalid percent characters - $text = preg_replace('/%(?![A-Fa-f0-9]{2})/', '%25', $text); - - // Add unreserved and % to $extra_chars (the latter is safe because all - // pct-encoded sections are now valid). - $extra_chars .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~%'; - - // Now replace any bytes that aren't allowed with their pct-encoded versions - $position = 0; - $strlen = strlen($text); - while (($position += strspn($text, $extra_chars, $position)) < $strlen) { - $value = ord($text[$position]); - - // Start position - $start = $position; - - // By default we are valid - $valid = true; - - // No one byte sequences are valid due to the while. - // Two byte sequence: - if (($value & 0xE0) === 0xC0) { - $character = ($value & 0x1F) << 6; - $length = 2; - $remaining = 1; - } - // Three byte sequence: - elseif (($value & 0xF0) === 0xE0) { - $character = ($value & 0x0F) << 12; - $length = 3; - $remaining = 2; - } - // Four byte sequence: - elseif (($value & 0xF8) === 0xF0) { - $character = ($value & 0x07) << 18; - $length = 4; - $remaining = 3; - } - // Invalid byte: - else { - $valid = false; - $length = 1; - $remaining = 0; - } - - if ($remaining) { - if ($position + $length <= $strlen) { - for ($position++; $remaining; $position++) { - $value = ord($text[$position]); - - // Check that the byte is valid, then add it to the character: - if (($value & 0xC0) === 0x80) { - $character |= ($value & 0x3F) << (--$remaining * 6); - } - // If it is invalid, count the sequence as invalid and reprocess the current byte: - else { - $valid = false; - $position--; - break; - } - } - } - else { - $position = $strlen - 1; - $valid = false; - } - } - - // Percent encode anything invalid or not in ucschar - if ( - // Invalid sequences - !$valid - // Non-shortest form sequences are invalid - || $length > 1 && $character <= 0x7F - || $length > 2 && $character <= 0x7FF - || $length > 3 && $character <= 0xFFFF - // Outside of range of ucschar codepoints - // Noncharacters - || ($character & 0xFFFE) === 0xFFFE - || $character >= 0xFDD0 && $character <= 0xFDEF - || ( - // Everything else not in ucschar - $character > 0xD7FF && $character < 0xF900 - || $character < 0xA0 - || $character > 0xEFFFD - ) - && ( - // Everything not in iprivate, if it applies - !$iprivate - || $character < 0xE000 - || $character > 0x10FFFD - ) - ) { - // If we were a character, pretend we weren't, but rather an error. - if ($valid) { - $position--; - } - - for ($j = $start; $j <= $position; $j++) { - $text = substr_replace($text, sprintf('%%%02X', ord($text[$j])), $j, 1); - $j += 2; - $position += 2; - $strlen += 2; - } - } - } - - return $text; - } - - /** - * Callback function for preg_replace_callback. - * - * Removes sequences of percent encoded bytes that represent UTF-8 - * encoded characters in iunreserved - * - * @param array $regex_match PCRE match - * @return string Replacement - */ - protected function remove_iunreserved_percent_encoded($regex_match) { - // As we just have valid percent encoded sequences we can just explode - // and ignore the first member of the returned array (an empty string). - $bytes = explode('%', $regex_match[0]); - - // Initialize the new string (this is what will be returned) and that - // there are no bytes remaining in the current sequence (unsurprising - // at the first byte!). - $string = ''; - $remaining = 0; - - // Loop over each and every byte, and set $value to its value - for ($i = 1, $len = count($bytes); $i < $len; $i++) { - $value = hexdec($bytes[$i]); - - // If we're the first byte of sequence: - if (!$remaining) { - // Start position - $start = $i; - - // By default we are valid - $valid = true; - - // One byte sequence: - if ($value <= 0x7F) { - $character = $value; - $length = 1; - } - // Two byte sequence: - elseif (($value & 0xE0) === 0xC0) { - $character = ($value & 0x1F) << 6; - $length = 2; - $remaining = 1; - } - // Three byte sequence: - elseif (($value & 0xF0) === 0xE0) { - $character = ($value & 0x0F) << 12; - $length = 3; - $remaining = 2; - } - // Four byte sequence: - elseif (($value & 0xF8) === 0xF0) { - $character = ($value & 0x07) << 18; - $length = 4; - $remaining = 3; - } - // Invalid byte: - else { - $valid = false; - $remaining = 0; - } - } - // Continuation byte: - else { - // Check that the byte is valid, then add it to the character: - if (($value & 0xC0) === 0x80) { - $remaining--; - $character |= ($value & 0x3F) << ($remaining * 6); - } - // If it is invalid, count the sequence as invalid and reprocess the current byte as the start of a sequence: - else { - $valid = false; - $remaining = 0; - $i--; - } - } - - // If we've reached the end of the current byte sequence, append it to Unicode::$data - if (!$remaining) { - // Percent encode anything invalid or not in iunreserved - if ( - // Invalid sequences - !$valid - // Non-shortest form sequences are invalid - || $length > 1 && $character <= 0x7F - || $length > 2 && $character <= 0x7FF - || $length > 3 && $character <= 0xFFFF - // Outside of range of iunreserved codepoints - || $character < 0x2D - || $character > 0xEFFFD - // Noncharacters - || ($character & 0xFFFE) === 0xFFFE - || $character >= 0xFDD0 && $character <= 0xFDEF - // Everything else not in iunreserved (this is all BMP) - || $character === 0x2F - || $character > 0x39 && $character < 0x41 - || $character > 0x5A && $character < 0x61 - || $character > 0x7A && $character < 0x7E - || $character > 0x7E && $character < 0xA0 - || $character > 0xD7FF && $character < 0xF900 - ) { - for ($j = $start; $j <= $i; $j++) { - $string .= '%' . strtoupper($bytes[$j]); - } - } - else { - for ($j = $start; $j <= $i; $j++) { - $string .= chr(hexdec($bytes[$j])); - } - } - } - } - - // If we have any bytes left over they are invalid (i.e., we are - // mid-way through a multi-byte sequence) - if ($remaining) { - for ($j = $start; $j < $len; $j++) { - $string .= '%' . strtoupper($bytes[$j]); - } - } - - return $string; - } - - protected function scheme_normalization() { - if (isset($this->normalization[$this->scheme]['iuserinfo']) && $this->iuserinfo === $this->normalization[$this->scheme]['iuserinfo']) { - $this->iuserinfo = null; - } - if (isset($this->normalization[$this->scheme]['ihost']) && $this->ihost === $this->normalization[$this->scheme]['ihost']) { - $this->ihost = null; - } - if (isset($this->normalization[$this->scheme]['port']) && $this->port === $this->normalization[$this->scheme]['port']) { - $this->port = null; - } - if (isset($this->normalization[$this->scheme]['ipath']) && $this->ipath === $this->normalization[$this->scheme]['ipath']) { - $this->ipath = ''; - } - if (isset($this->ihost) && empty($this->ipath)) { - $this->ipath = '/'; - } - if (isset($this->normalization[$this->scheme]['iquery']) && $this->iquery === $this->normalization[$this->scheme]['iquery']) { - $this->iquery = null; - } - if (isset($this->normalization[$this->scheme]['ifragment']) && $this->ifragment === $this->normalization[$this->scheme]['ifragment']) { - $this->ifragment = null; - } - } - - /** - * Check if the object represents a valid IRI. This needs to be done on each - * call as some things change depending on another part of the IRI. - * - * @return bool - */ - public function is_valid() { - $isauthority = $this->iuserinfo !== null || $this->ihost !== null || $this->port !== null; - if ($this->ipath !== '' && - ( - $isauthority && $this->ipath[0] !== '/' || - ( - $this->scheme === null && - !$isauthority && - strpos($this->ipath, ':') !== false && - (strpos($this->ipath, '/') === false ? true : strpos($this->ipath, ':') < strpos($this->ipath, '/')) - ) - ) - ) { - return false; - } - - return true; - } - - /** - * Set the entire IRI. Returns true on success, false on failure (if there - * are any invalid characters). - * - * @param string $iri - * @return bool - */ - protected function set_iri($iri) { - static $cache; - if (!$cache) { - $cache = array(); - } - - if ($iri === null) { - return true; - } - - $iri = (string) $iri; - - if (isset($cache[$iri])) { - list($this->scheme, - $this->iuserinfo, - $this->ihost, - $this->port, - $this->ipath, - $this->iquery, - $this->ifragment, - $return) = $cache[$iri]; - return $return; - } - - $parsed = $this->parse_iri($iri); - - $return = $this->set_scheme($parsed['scheme']) - && $this->set_authority($parsed['authority']) - && $this->set_path($parsed['path']) - && $this->set_query($parsed['query']) - && $this->set_fragment($parsed['fragment']); - - $cache[$iri] = array($this->scheme, - $this->iuserinfo, - $this->ihost, - $this->port, - $this->ipath, - $this->iquery, - $this->ifragment, - $return); - return $return; - } - - /** - * Set the scheme. Returns true on success, false on failure (if there are - * any invalid characters). - * - * @param string $scheme - * @return bool - */ - protected function set_scheme($scheme) { - if ($scheme === null) { - $this->scheme = null; - } - elseif (!preg_match('/^[A-Za-z][0-9A-Za-z+\-.]*$/', $scheme)) { - $this->scheme = null; - return false; - } - else { - $this->scheme = strtolower($scheme); - } - return true; - } - - /** - * Set the authority. Returns true on success, false on failure (if there are - * any invalid characters). - * - * @param string $authority - * @return bool - */ - protected function set_authority($authority) { - static $cache; - if (!$cache) { - $cache = array(); - } - - if ($authority === null) { - $this->iuserinfo = null; - $this->ihost = null; - $this->port = null; - return true; - } - if (isset($cache[$authority])) { - list($this->iuserinfo, - $this->ihost, - $this->port, - $return) = $cache[$authority]; - - return $return; - } - - $remaining = $authority; - if (($iuserinfo_end = strrpos($remaining, '@')) !== false) { - $iuserinfo = substr($remaining, 0, $iuserinfo_end); - $remaining = substr($remaining, $iuserinfo_end + 1); - } - else { - $iuserinfo = null; - } - if (($port_start = strpos($remaining, ':', strpos($remaining, ']'))) !== false) { - $port = substr($remaining, $port_start + 1); - if ($port === false || $port === '') { - $port = null; - } - $remaining = substr($remaining, 0, $port_start); - } - else { - $port = null; - } - - $return = $this->set_userinfo($iuserinfo) && - $this->set_host($remaining) && - $this->set_port($port); - - $cache[$authority] = array($this->iuserinfo, - $this->ihost, - $this->port, - $return); - - return $return; - } - - /** - * Set the iuserinfo. - * - * @param string $iuserinfo - * @return bool - */ - protected function set_userinfo($iuserinfo) { - if ($iuserinfo === null) { - $this->iuserinfo = null; - } - else { - $this->iuserinfo = $this->replace_invalid_with_pct_encoding($iuserinfo, '!$&\'()*+,;=:'); - $this->scheme_normalization(); - } - - return true; - } - - /** - * Set the ihost. Returns true on success, false on failure (if there are - * any invalid characters). - * - * @param string $ihost - * @return bool - */ - protected function set_host($ihost) { - if ($ihost === null) { - $this->ihost = null; - return true; - } - if (substr($ihost, 0, 1) === '[' && substr($ihost, -1) === ']') { - if (Ipv6::check_ipv6(substr($ihost, 1, -1))) { - $this->ihost = '[' . Ipv6::compress(substr($ihost, 1, -1)) . ']'; - } - else { - $this->ihost = null; - return false; - } - } - else { - $ihost = $this->replace_invalid_with_pct_encoding($ihost, '!$&\'()*+,;='); - - // Lowercase, but ignore pct-encoded sections (as they should - // remain uppercase). This must be done after the previous step - // as that can add unescaped characters. - $position = 0; - $strlen = strlen($ihost); - while (($position += strcspn($ihost, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ%', $position)) < $strlen) { - if ($ihost[$position] === '%') { - $position += 3; - } - else { - $ihost[$position] = strtolower($ihost[$position]); - $position++; - } - } - - $this->ihost = $ihost; - } - - $this->scheme_normalization(); - - return true; - } - - /** - * Set the port. Returns true on success, false on failure (if there are - * any invalid characters). - * - * @param string $port - * @return bool - */ - protected function set_port($port) { - if ($port === null) { - $this->port = null; - return true; - } - - if (strspn($port, '0123456789') === strlen($port)) { - $this->port = (int) $port; - $this->scheme_normalization(); - return true; - } - - $this->port = null; - return false; - } - - /** - * Set the ipath. - * - * @param string $ipath - * @return bool - */ - protected function set_path($ipath) { - static $cache; - if (!$cache) { - $cache = array(); - } - - $ipath = (string) $ipath; - - if (isset($cache[$ipath])) { - $this->ipath = $cache[$ipath][(int) ($this->scheme !== null)]; - } - else { - $valid = $this->replace_invalid_with_pct_encoding($ipath, '!$&\'()*+,;=@:/'); - $removed = $this->remove_dot_segments($valid); - - $cache[$ipath] = array($valid, $removed); - $this->ipath = ($this->scheme !== null) ? $removed : $valid; - } - $this->scheme_normalization(); - return true; - } - - /** - * Set the iquery. - * - * @param string $iquery - * @return bool - */ - protected function set_query($iquery) { - if ($iquery === null) { - $this->iquery = null; - } - else { - $this->iquery = $this->replace_invalid_with_pct_encoding($iquery, '!$&\'()*+,;=:@/?', true); - $this->scheme_normalization(); - } - return true; - } - - /** - * Set the ifragment. - * - * @param string $ifragment - * @return bool - */ - protected function set_fragment($ifragment) { - if ($ifragment === null) { - $this->ifragment = null; - } - else { - $this->ifragment = $this->replace_invalid_with_pct_encoding($ifragment, '!$&\'()*+,;=:@/?'); - $this->scheme_normalization(); - } - return true; - } - - /** - * Convert an IRI to a URI (or parts thereof) - * - * @param string|bool $iri IRI to convert (or false from {@see \WpOrg\Requests\Iri::get_iri()}) - * @return string|false URI if IRI is valid, false otherwise. - */ - protected function to_uri($iri) { - if (!is_string($iri)) { - return false; - } - - static $non_ascii; - if (!$non_ascii) { - $non_ascii = implode('', range("\x80", "\xFF")); - } - - $position = 0; - $strlen = strlen($iri); - while (($position += strcspn($iri, $non_ascii, $position)) < $strlen) { - $iri = substr_replace($iri, sprintf('%%%02X', ord($iri[$position])), $position, 1); - $position += 3; - $strlen += 2; - } - - return $iri; - } - - /** - * Get the complete IRI - * - * @return string|false - */ - protected function get_iri() { - if (!$this->is_valid()) { - return false; - } - - $iri = ''; - if ($this->scheme !== null) { - $iri .= $this->scheme . ':'; - } - if (($iauthority = $this->get_iauthority()) !== null) { - $iri .= '//' . $iauthority; - } - $iri .= $this->ipath; - if ($this->iquery !== null) { - $iri .= '?' . $this->iquery; - } - if ($this->ifragment !== null) { - $iri .= '#' . $this->ifragment; - } - - return $iri; - } - - /** - * Get the complete URI - * - * @return string - */ - protected function get_uri() { - return $this->to_uri($this->get_iri()); - } - - /** - * Get the complete iauthority - * - * @return string|null - */ - protected function get_iauthority() { - if ($this->iuserinfo === null && $this->ihost === null && $this->port === null) { - return null; - } - - $iauthority = ''; - if ($this->iuserinfo !== null) { - $iauthority .= $this->iuserinfo . '@'; - } - if ($this->ihost !== null) { - $iauthority .= $this->ihost; - } - if ($this->port !== null) { - $iauthority .= ':' . $this->port; - } - return $iauthority; - } - - /** - * Get the complete authority - * - * @return string - */ - protected function get_authority() { - $iauthority = $this->get_iauthority(); - if (is_string($iauthority)) { - return $this->to_uri($iauthority); - } - else { - return $iauthority; - } - } -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Port.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Port.php deleted file mode 100644 index 5545409..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Port.php +++ /dev/null @@ -1,75 +0,0 @@ -proxy = $args; - } elseif (is_array($args)) { - if (count($args) === 1) { - list($this->proxy) = $args; - } elseif (count($args) === 3) { - list($this->proxy, $this->user, $this->pass) = $args; - $this->use_authentication = true; - } else { - throw ArgumentCount::create( - 'an array with exactly one element or exactly three elements', - count($args), - 'proxyhttpbadargs' - ); - } - } elseif ($args !== null) { - throw InvalidArgument::create(1, '$args', 'array|string|null', gettype($args)); - } - } - - /** - * Register the necessary callbacks - * - * @since 1.6 - * @see \WpOrg\Requests\Proxy\Http::curl_before_send() - * @see \WpOrg\Requests\Proxy\Http::fsockopen_remote_socket() - * @see \WpOrg\Requests\Proxy\Http::fsockopen_remote_host_path() - * @see \WpOrg\Requests\Proxy\Http::fsockopen_header() - * @param \WpOrg\Requests\Hooks $hooks Hook system - */ - public function register(Hooks $hooks) { - $hooks->register('curl.before_send', [$this, 'curl_before_send']); - - $hooks->register('fsockopen.remote_socket', [$this, 'fsockopen_remote_socket']); - $hooks->register('fsockopen.remote_host_path', [$this, 'fsockopen_remote_host_path']); - if ($this->use_authentication) { - $hooks->register('fsockopen.after_headers', [$this, 'fsockopen_header']); - } - } - - /** - * Set cURL parameters before the data is sent - * - * @since 1.6 - * @param resource|\CurlHandle $handle cURL handle - */ - public function curl_before_send(&$handle) { - curl_setopt($handle, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); - curl_setopt($handle, CURLOPT_PROXY, $this->proxy); - - if ($this->use_authentication) { - curl_setopt($handle, CURLOPT_PROXYAUTH, CURLAUTH_ANY); - curl_setopt($handle, CURLOPT_PROXYUSERPWD, $this->get_auth_string()); - } - } - - /** - * Alter remote socket information before opening socket connection - * - * @since 1.6 - * @param string $remote_socket Socket connection string - */ - public function fsockopen_remote_socket(&$remote_socket) { - $remote_socket = $this->proxy; - } - - /** - * Alter remote path before getting stream data - * - * @since 1.6 - * @param string $path Path to send in HTTP request string ("GET ...") - * @param string $url Full URL we're requesting - */ - public function fsockopen_remote_host_path(&$path, $url) { - $path = $url; - } - - /** - * Add extra headers to the request before sending - * - * @since 1.6 - * @param string $out HTTP header string - */ - public function fsockopen_header(&$out) { - $out .= sprintf("Proxy-Authorization: Basic %s\r\n", base64_encode($this->get_auth_string())); - } - - /** - * Get the authentication string (user:pass) - * - * @since 1.6 - * @return string - */ - public function get_auth_string() { - return $this->user . ':' . $this->pass; - } -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Requests.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Requests.php deleted file mode 100644 index 8ce6fda..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Requests.php +++ /dev/null @@ -1,1095 +0,0 @@ - 10, - 'connect_timeout' => 10, - 'useragent' => 'php-requests/' . self::VERSION, - 'protocol_version' => 1.1, - 'redirected' => 0, - 'redirects' => 10, - 'follow_redirects' => true, - 'blocking' => true, - 'type' => self::GET, - 'filename' => false, - 'auth' => false, - 'proxy' => false, - 'cookies' => false, - 'max_bytes' => false, - 'idn' => true, - 'hooks' => null, - 'transport' => null, - 'verify' => null, - 'verifyname' => true, - ]; - - /** - * Default supported Transport classes. - * - * @since 2.0.0 - * - * @var array - */ - const DEFAULT_TRANSPORTS = [ - Curl::class => Curl::class, - Fsockopen::class => Fsockopen::class, - ]; - - /** - * Current version of Requests - * - * @var string - */ - const VERSION = '2.0.4'; - - /** - * Selected transport name - * - * Use {@see \WpOrg\Requests\Requests::get_transport()} instead - * - * @var array - */ - public static $transport = []; - - /** - * Registered transport classes - * - * @var array - */ - protected static $transports = []; - - /** - * Default certificate path. - * - * @see \WpOrg\Requests\Requests::get_certificate_path() - * @see \WpOrg\Requests\Requests::set_certificate_path() - * - * @var string - */ - protected static $certificate_path = __DIR__ . '/../certificates/cacert.pem'; - - /** - * All (known) valid deflate, gzip header magic markers. - * - * These markers relate to different compression levels. - * - * @link https://stackoverflow.com/a/43170354/482864 Marker source. - * - * @since 2.0.0 - * - * @var array - */ - private static $magic_compression_headers = [ - "\x1f\x8b" => true, // Gzip marker. - "\x78\x01" => true, // Zlib marker - level 1. - "\x78\x5e" => true, // Zlib marker - level 2 to 5. - "\x78\x9c" => true, // Zlib marker - level 6. - "\x78\xda" => true, // Zlib marker - level 7 to 9. - ]; - - /** - * This is a static class, do not instantiate it - * - * @codeCoverageIgnore - */ - private function __construct() {} - - /** - * Register a transport - * - * @param string $transport Transport class to add, must support the \WpOrg\Requests\Transport interface - */ - public static function add_transport($transport) { - if (empty(self::$transports)) { - self::$transports = self::DEFAULT_TRANSPORTS; - } - - self::$transports[$transport] = $transport; - } - - /** - * Get the fully qualified class name (FQCN) for a working transport. - * - * @param array $capabilities Optional. Associative array of capabilities to test against, i.e. `['' => true]`. - * @return string FQCN of the transport to use, or an empty string if no transport was - * found which provided the requested capabilities. - */ - protected static function get_transport_class(array $capabilities = []) { - // Caching code, don't bother testing coverage. - // @codeCoverageIgnoreStart - // Array of capabilities as a string to be used as an array key. - ksort($capabilities); - $cap_string = serialize($capabilities); - - // Don't search for a transport if it's already been done for these $capabilities. - if (isset(self::$transport[$cap_string])) { - return self::$transport[$cap_string]; - } - - // Ensure we will not run this same check again later on. - self::$transport[$cap_string] = ''; - // @codeCoverageIgnoreEnd - - if (empty(self::$transports)) { - self::$transports = self::DEFAULT_TRANSPORTS; - } - - // Find us a working transport. - foreach (self::$transports as $class) { - if (!class_exists($class)) { - continue; - } - - $result = $class::test($capabilities); - if ($result === true) { - self::$transport[$cap_string] = $class; - break; - } - } - - return self::$transport[$cap_string]; - } - - /** - * Get a working transport. - * - * @param array $capabilities Optional. Associative array of capabilities to test against, i.e. `['' => true]`. - * @return \WpOrg\Requests\Transport - * @throws \WpOrg\Requests\Exception If no valid transport is found (`notransport`). - */ - protected static function get_transport(array $capabilities = []) { - $class = self::get_transport_class($capabilities); - - if ($class === '') { - throw new Exception('No working transports found', 'notransport', self::$transports); - } - - return new $class(); - } - - /** - * Checks to see if we have a transport for the capabilities requested. - * - * Supported capabilities can be found in the {@see \WpOrg\Requests\Capability} - * interface as constants. - * - * Example usage: - * `Requests::has_capabilities([Capability::SSL => true])`. - * - * @param array $capabilities Optional. Associative array of capabilities to test against, i.e. `['' => true]`. - * @return bool Whether the transport has the requested capabilities. - */ - public static function has_capabilities(array $capabilities = []) { - return self::get_transport_class($capabilities) !== ''; - } - - /**#@+ - * @see \WpOrg\Requests\Requests::request() - * @param string $url - * @param array $headers - * @param array $options - * @return \WpOrg\Requests\Response - */ - /** - * Send a GET request - */ - public static function get($url, $headers = [], $options = []) { - return self::request($url, $headers, null, self::GET, $options); - } - - /** - * Send a HEAD request - */ - public static function head($url, $headers = [], $options = []) { - return self::request($url, $headers, null, self::HEAD, $options); - } - - /** - * Send a DELETE request - */ - public static function delete($url, $headers = [], $options = []) { - return self::request($url, $headers, null, self::DELETE, $options); - } - - /** - * Send a TRACE request - */ - public static function trace($url, $headers = [], $options = []) { - return self::request($url, $headers, null, self::TRACE, $options); - } - /**#@-*/ - - /**#@+ - * @see \WpOrg\Requests\Requests::request() - * @param string $url - * @param array $headers - * @param array $data - * @param array $options - * @return \WpOrg\Requests\Response - */ - /** - * Send a POST request - */ - public static function post($url, $headers = [], $data = [], $options = []) { - return self::request($url, $headers, $data, self::POST, $options); - } - /** - * Send a PUT request - */ - public static function put($url, $headers = [], $data = [], $options = []) { - return self::request($url, $headers, $data, self::PUT, $options); - } - - /** - * Send an OPTIONS request - */ - public static function options($url, $headers = [], $data = [], $options = []) { - return self::request($url, $headers, $data, self::OPTIONS, $options); - } - - /** - * Send a PATCH request - * - * Note: Unlike {@see \WpOrg\Requests\Requests::post()} and {@see \WpOrg\Requests\Requests::put()}, - * `$headers` is required, as the specification recommends that should send an ETag - * - * @link https://tools.ietf.org/html/rfc5789 - */ - public static function patch($url, $headers, $data = [], $options = []) { - return self::request($url, $headers, $data, self::PATCH, $options); - } - /**#@-*/ - - /** - * Main interface for HTTP requests - * - * This method initiates a request and sends it via a transport before - * parsing. - * - * The `$options` parameter takes an associative array with the following - * options: - * - * - `timeout`: How long should we wait for a response? - * Note: for cURL, a minimum of 1 second applies, as DNS resolution - * operates at second-resolution only. - * (float, seconds with a millisecond precision, default: 10, example: 0.01) - * - `connect_timeout`: How long should we wait while trying to connect? - * (float, seconds with a millisecond precision, default: 10, example: 0.01) - * - `useragent`: Useragent to send to the server - * (string, default: php-requests/$version) - * - `follow_redirects`: Should we follow 3xx redirects? - * (boolean, default: true) - * - `redirects`: How many times should we redirect before erroring? - * (integer, default: 10) - * - `blocking`: Should we block processing on this request? - * (boolean, default: true) - * - `filename`: File to stream the body to instead. - * (string|boolean, default: false) - * - `auth`: Authentication handler or array of user/password details to use - * for Basic authentication - * (\WpOrg\Requests\Auth|array|boolean, default: false) - * - `proxy`: Proxy details to use for proxy by-passing and authentication - * (\WpOrg\Requests\Proxy|array|string|boolean, default: false) - * - `max_bytes`: Limit for the response body size. - * (integer|boolean, default: false) - * - `idn`: Enable IDN parsing - * (boolean, default: true) - * - `transport`: Custom transport. Either a class name, or a - * transport object. Defaults to the first working transport from - * {@see \WpOrg\Requests\Requests::getTransport()} - * (string|\WpOrg\Requests\Transport, default: {@see \WpOrg\Requests\Requests::getTransport()}) - * - `hooks`: Hooks handler. - * (\WpOrg\Requests\HookManager, default: new WpOrg\Requests\Hooks()) - * - `verify`: Should we verify SSL certificates? Allows passing in a custom - * certificate file as a string. (Using true uses the system-wide root - * certificate store instead, but this may have different behaviour - * across transports.) - * (string|boolean, default: certificates/cacert.pem) - * - `verifyname`: Should we verify the common name in the SSL certificate? - * (boolean, default: true) - * - `data_format`: How should we send the `$data` parameter? - * (string, one of 'query' or 'body', default: 'query' for - * HEAD/GET/DELETE, 'body' for POST/PUT/OPTIONS/PATCH) - * - * @param string|Stringable $url URL to request - * @param array $headers Extra headers to send with the request - * @param array|null $data Data to send either as a query string for GET/HEAD requests, or in the body for POST requests - * @param string $type HTTP request type (use Requests constants) - * @param array $options Options for the request (see description for more information) - * @return \WpOrg\Requests\Response - * - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $url argument is not a string or Stringable. - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $type argument is not a string. - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $options argument is not an array. - * @throws \WpOrg\Requests\Exception On invalid URLs (`nonhttp`) - */ - public static function request($url, $headers = [], $data = [], $type = self::GET, $options = []) { - if (InputValidator::is_string_or_stringable($url) === false) { - throw InvalidArgument::create(1, '$url', 'string|Stringable', gettype($url)); - } - - if (is_string($type) === false) { - throw InvalidArgument::create(4, '$type', 'string', gettype($type)); - } - - if (is_array($options) === false) { - throw InvalidArgument::create(5, '$options', 'array', gettype($options)); - } - - if (empty($options['type'])) { - $options['type'] = $type; - } - - $options = array_merge(self::get_default_options(), $options); - - self::set_defaults($url, $headers, $data, $type, $options); - - $options['hooks']->dispatch('requests.before_request', [&$url, &$headers, &$data, &$type, &$options]); - - if (!empty($options['transport'])) { - $transport = $options['transport']; - - if (is_string($options['transport'])) { - $transport = new $transport(); - } - } else { - $need_ssl = (stripos($url, 'https://') === 0); - $capabilities = [Capability::SSL => $need_ssl]; - $transport = self::get_transport($capabilities); - } - - $response = $transport->request($url, $headers, $data, $options); - - $options['hooks']->dispatch('requests.before_parse', [&$response, $url, $headers, $data, $type, $options]); - - return self::parse_response($response, $url, $headers, $data, $options); - } - - /** - * Send multiple HTTP requests simultaneously - * - * The `$requests` parameter takes an associative or indexed array of - * request fields. The key of each request can be used to match up the - * request with the returned data, or with the request passed into your - * `multiple.request.complete` callback. - * - * The request fields value is an associative array with the following keys: - * - * - `url`: Request URL Same as the `$url` parameter to - * {@see \WpOrg\Requests\Requests::request()} - * (string, required) - * - `headers`: Associative array of header fields. Same as the `$headers` - * parameter to {@see \WpOrg\Requests\Requests::request()} - * (array, default: `array()`) - * - `data`: Associative array of data fields or a string. Same as the - * `$data` parameter to {@see \WpOrg\Requests\Requests::request()} - * (array|string, default: `array()`) - * - `type`: HTTP request type (use \WpOrg\Requests\Requests constants). Same as the `$type` - * parameter to {@see \WpOrg\Requests\Requests::request()} - * (string, default: `\WpOrg\Requests\Requests::GET`) - * - `cookies`: Associative array of cookie name to value, or cookie jar. - * (array|\WpOrg\Requests\Cookie\Jar) - * - * If the `$options` parameter is specified, individual requests will - * inherit options from it. This can be used to use a single hooking system, - * or set all the types to `\WpOrg\Requests\Requests::POST`, for example. - * - * In addition, the `$options` parameter takes the following global options: - * - * - `complete`: A callback for when a request is complete. Takes two - * parameters, a \WpOrg\Requests\Response/\WpOrg\Requests\Exception reference, and the - * ID from the request array (Note: this can also be overridden on a - * per-request basis, although that's a little silly) - * (callback) - * - * @param array $requests Requests data (see description for more information) - * @param array $options Global and default options (see {@see \WpOrg\Requests\Requests::request()}) - * @return array Responses (either \WpOrg\Requests\Response or a \WpOrg\Requests\Exception object) - * - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $requests argument is not an array or iterable object with array access. - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $options argument is not an array. - */ - public static function request_multiple($requests, $options = []) { - if (InputValidator::has_array_access($requests) === false || InputValidator::is_iterable($requests) === false) { - throw InvalidArgument::create(1, '$requests', 'array|ArrayAccess&Traversable', gettype($requests)); - } - - if (is_array($options) === false) { - throw InvalidArgument::create(2, '$options', 'array', gettype($options)); - } - - $options = array_merge(self::get_default_options(true), $options); - - if (!empty($options['hooks'])) { - $options['hooks']->register('transport.internal.parse_response', [static::class, 'parse_multiple']); - if (!empty($options['complete'])) { - $options['hooks']->register('multiple.request.complete', $options['complete']); - } - } - - foreach ($requests as $id => &$request) { - if (!isset($request['headers'])) { - $request['headers'] = []; - } - - if (!isset($request['data'])) { - $request['data'] = []; - } - - if (!isset($request['type'])) { - $request['type'] = self::GET; - } - - if (!isset($request['options'])) { - $request['options'] = $options; - $request['options']['type'] = $request['type']; - } else { - if (empty($request['options']['type'])) { - $request['options']['type'] = $request['type']; - } - - $request['options'] = array_merge($options, $request['options']); - } - - self::set_defaults($request['url'], $request['headers'], $request['data'], $request['type'], $request['options']); - - // Ensure we only hook in once - if ($request['options']['hooks'] !== $options['hooks']) { - $request['options']['hooks']->register('transport.internal.parse_response', [static::class, 'parse_multiple']); - if (!empty($request['options']['complete'])) { - $request['options']['hooks']->register('multiple.request.complete', $request['options']['complete']); - } - } - } - - unset($request); - - if (!empty($options['transport'])) { - $transport = $options['transport']; - - if (is_string($options['transport'])) { - $transport = new $transport(); - } - } else { - $transport = self::get_transport(); - } - - $responses = $transport->request_multiple($requests, $options); - - foreach ($responses as $id => &$response) { - // If our hook got messed with somehow, ensure we end up with the - // correct response - if (is_string($response)) { - $request = $requests[$id]; - self::parse_multiple($response, $request); - $request['options']['hooks']->dispatch('multiple.request.complete', [&$response, $id]); - } - } - - return $responses; - } - - /** - * Get the default options - * - * @see \WpOrg\Requests\Requests::request() for values returned by this method - * @param boolean $multirequest Is this a multirequest? - * @return array Default option values - */ - protected static function get_default_options($multirequest = false) { - $defaults = static::OPTION_DEFAULTS; - $defaults['verify'] = self::$certificate_path; - - if ($multirequest !== false) { - $defaults['complete'] = null; - } - - return $defaults; - } - - /** - * Get default certificate path. - * - * @return string Default certificate path. - */ - public static function get_certificate_path() { - return self::$certificate_path; - } - - /** - * Set default certificate path. - * - * @param string|Stringable|bool $path Certificate path, pointing to a PEM file. - * - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $url argument is not a string, Stringable or boolean. - */ - public static function set_certificate_path($path) { - if (InputValidator::is_string_or_stringable($path) === false && is_bool($path) === false) { - throw InvalidArgument::create(1, '$path', 'string|Stringable|bool', gettype($path)); - } - - self::$certificate_path = $path; - } - - /** - * Set the default values - * - * @param string $url URL to request - * @param array $headers Extra headers to send with the request - * @param array|null $data Data to send either as a query string for GET/HEAD requests, or in the body for POST requests - * @param string $type HTTP request type - * @param array $options Options for the request - * @return void $options is updated with the results - * - * @throws \WpOrg\Requests\Exception When the $url is not an http(s) URL. - */ - protected static function set_defaults(&$url, &$headers, &$data, &$type, &$options) { - if (!preg_match('/^http(s)?:\/\//i', $url, $matches)) { - throw new Exception('Only HTTP(S) requests are handled.', 'nonhttp', $url); - } - - if (empty($options['hooks'])) { - $options['hooks'] = new Hooks(); - } - - if (is_array($options['auth'])) { - $options['auth'] = new Basic($options['auth']); - } - - if ($options['auth'] !== false) { - $options['auth']->register($options['hooks']); - } - - if (is_string($options['proxy']) || is_array($options['proxy'])) { - $options['proxy'] = new Http($options['proxy']); - } - - if ($options['proxy'] !== false) { - $options['proxy']->register($options['hooks']); - } - - if (is_array($options['cookies'])) { - $options['cookies'] = new Jar($options['cookies']); - } elseif (empty($options['cookies'])) { - $options['cookies'] = new Jar(); - } - - if ($options['cookies'] !== false) { - $options['cookies']->register($options['hooks']); - } - - if ($options['idn'] !== false) { - $iri = new Iri($url); - $iri->host = IdnaEncoder::encode($iri->ihost); - $url = $iri->uri; - } - - // Massage the type to ensure we support it. - $type = strtoupper($type); - - if (!isset($options['data_format'])) { - if (in_array($type, [self::HEAD, self::GET, self::DELETE], true)) { - $options['data_format'] = 'query'; - } else { - $options['data_format'] = 'body'; - } - } - } - - /** - * HTTP response parser - * - * @param string $headers Full response text including headers and body - * @param string $url Original request URL - * @param array $req_headers Original $headers array passed to {@link request()}, in case we need to follow redirects - * @param array $req_data Original $data array passed to {@link request()}, in case we need to follow redirects - * @param array $options Original $options array passed to {@link request()}, in case we need to follow redirects - * @return \WpOrg\Requests\Response - * - * @throws \WpOrg\Requests\Exception On missing head/body separator (`requests.no_crlf_separator`) - * @throws \WpOrg\Requests\Exception On missing head/body separator (`noversion`) - * @throws \WpOrg\Requests\Exception On missing head/body separator (`toomanyredirects`) - */ - protected static function parse_response($headers, $url, $req_headers, $req_data, $options) { - $return = new Response(); - if (!$options['blocking']) { - return $return; - } - - $return->raw = $headers; - $return->url = (string) $url; - $return->body = ''; - - if (!$options['filename']) { - $pos = strpos($headers, "\r\n\r\n"); - if ($pos === false) { - // Crap! - throw new Exception('Missing header/body separator', 'requests.no_crlf_separator'); - } - - $headers = substr($return->raw, 0, $pos); - // Headers will always be separated from the body by two new lines - `\n\r\n\r`. - $body = substr($return->raw, $pos + 4); - if (!empty($body)) { - $return->body = $body; - } - } - - // Pretend CRLF = LF for compatibility (RFC 2616, section 19.3) - $headers = str_replace("\r\n", "\n", $headers); - // Unfold headers (replace [CRLF] 1*( SP | HT ) with SP) as per RFC 2616 (section 2.2) - $headers = preg_replace('/\n[ \t]/', ' ', $headers); - $headers = explode("\n", $headers); - preg_match('#^HTTP/(1\.\d)[ \t]+(\d+)#i', array_shift($headers), $matches); - if (empty($matches)) { - throw new Exception('Response could not be parsed', 'noversion', $headers); - } - - $return->protocol_version = (float) $matches[1]; - $return->status_code = (int) $matches[2]; - if ($return->status_code >= 200 && $return->status_code < 300) { - $return->success = true; - } - - foreach ($headers as $header) { - list($key, $value) = explode(':', $header, 2); - $value = trim($value); - preg_replace('#(\s+)#i', ' ', $value); - $return->headers[$key] = $value; - } - - if (isset($return->headers['transfer-encoding'])) { - $return->body = self::decode_chunked($return->body); - unset($return->headers['transfer-encoding']); - } - - if (isset($return->headers['content-encoding'])) { - $return->body = self::decompress($return->body); - } - - //fsockopen and cURL compatibility - if (isset($return->headers['connection'])) { - unset($return->headers['connection']); - } - - $options['hooks']->dispatch('requests.before_redirect_check', [&$return, $req_headers, $req_data, $options]); - - if ($return->is_redirect() && $options['follow_redirects'] === true) { - if (isset($return->headers['location']) && $options['redirected'] < $options['redirects']) { - if ($return->status_code === 303) { - $options['type'] = self::GET; - } - - $options['redirected']++; - $location = $return->headers['location']; - if (strpos($location, 'http://') !== 0 && strpos($location, 'https://') !== 0) { - // relative redirect, for compatibility make it absolute - $location = Iri::absolutize($url, $location); - $location = $location->uri; - } - - $hook_args = [ - &$location, - &$req_headers, - &$req_data, - &$options, - $return, - ]; - $options['hooks']->dispatch('requests.before_redirect', $hook_args); - $redirected = self::request($location, $req_headers, $req_data, $options['type'], $options); - $redirected->history[] = $return; - return $redirected; - } elseif ($options['redirected'] >= $options['redirects']) { - throw new Exception('Too many redirects', 'toomanyredirects', $return); - } - } - - $return->redirects = $options['redirected']; - - $options['hooks']->dispatch('requests.after_request', [&$return, $req_headers, $req_data, $options]); - return $return; - } - - /** - * Callback for `transport.internal.parse_response` - * - * Internal use only. Converts a raw HTTP response to a \WpOrg\Requests\Response - * while still executing a multiple request. - * - * @param string $response Full response text including headers and body (will be overwritten with Response instance) - * @param array $request Request data as passed into {@see \WpOrg\Requests\Requests::request_multiple()} - * @return void `$response` is either set to a \WpOrg\Requests\Response instance, or a \WpOrg\Requests\Exception object - */ - public static function parse_multiple(&$response, $request) { - try { - $url = $request['url']; - $headers = $request['headers']; - $data = $request['data']; - $options = $request['options']; - $response = self::parse_response($response, $url, $headers, $data, $options); - } catch (Exception $e) { - $response = $e; - } - } - - /** - * Decoded a chunked body as per RFC 2616 - * - * @link https://tools.ietf.org/html/rfc2616#section-3.6.1 - * @param string $data Chunked body - * @return string Decoded body - */ - protected static function decode_chunked($data) { - if (!preg_match('/^([0-9a-f]+)(?:;(?:[\w-]*)(?:=(?:(?:[\w-]*)*|"(?:[^\r\n])*"))?)*\r\n/i', trim($data))) { - return $data; - } - - $decoded = ''; - $encoded = $data; - - while (true) { - $is_chunked = (bool) preg_match('/^([0-9a-f]+)(?:;(?:[\w-]*)(?:=(?:(?:[\w-]*)*|"(?:[^\r\n])*"))?)*\r\n/i', $encoded, $matches); - if (!$is_chunked) { - // Looks like it's not chunked after all - return $data; - } - - $length = hexdec(trim($matches[1])); - if ($length === 0) { - // Ignore trailer headers - return $decoded; - } - - $chunk_length = strlen($matches[0]); - $decoded .= substr($encoded, $chunk_length, $length); - $encoded = substr($encoded, $chunk_length + $length + 2); - - if (trim($encoded) === '0' || empty($encoded)) { - return $decoded; - } - } - - // We'll never actually get down here - // @codeCoverageIgnoreStart - } - // @codeCoverageIgnoreEnd - - /** - * Convert a key => value array to a 'key: value' array for headers - * - * @param iterable $dictionary Dictionary of header values - * @return array List of headers - * - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed argument is not iterable. - */ - public static function flatten($dictionary) { - if (InputValidator::is_iterable($dictionary) === false) { - throw InvalidArgument::create(1, '$dictionary', 'iterable', gettype($dictionary)); - } - - $return = []; - foreach ($dictionary as $key => $value) { - $return[] = sprintf('%s: %s', $key, $value); - } - - return $return; - } - - /** - * Decompress an encoded body - * - * Implements gzip, compress and deflate. Guesses which it is by attempting - * to decode. - * - * @param string $data Compressed data in one of the above formats - * @return string Decompressed string - * - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed argument is not a string. - */ - public static function decompress($data) { - if (is_string($data) === false) { - throw InvalidArgument::create(1, '$data', 'string', gettype($data)); - } - - if (trim($data) === '') { - // Empty body does not need further processing. - return $data; - } - - $marker = substr($data, 0, 2); - if (!isset(self::$magic_compression_headers[$marker])) { - // Not actually compressed. Probably cURL ruining this for us. - return $data; - } - - if (function_exists('gzdecode')) { - $decoded = @gzdecode($data); - if ($decoded !== false) { - return $decoded; - } - } - - if (function_exists('gzinflate')) { - $decoded = @gzinflate($data); - if ($decoded !== false) { - return $decoded; - } - } - - $decoded = self::compatible_gzinflate($data); - if ($decoded !== false) { - return $decoded; - } - - if (function_exists('gzuncompress')) { - $decoded = @gzuncompress($data); - if ($decoded !== false) { - return $decoded; - } - } - - return $data; - } - - /** - * Decompression of deflated string while staying compatible with the majority of servers. - * - * Certain Servers will return deflated data with headers which PHP's gzinflate() - * function cannot handle out of the box. The following function has been created from - * various snippets on the gzinflate() PHP documentation. - * - * Warning: Magic numbers within. Due to the potential different formats that the compressed - * data may be returned in, some "magic offsets" are needed to ensure proper decompression - * takes place. For a simple progmatic way to determine the magic offset in use, see: - * https://core.trac.wordpress.org/ticket/18273 - * - * @since 1.6.0 - * @link https://core.trac.wordpress.org/ticket/18273 - * @link https://www.php.net/gzinflate#70875 - * @link https://www.php.net/gzinflate#77336 - * - * @param string $gz_data String to decompress. - * @return string|bool False on failure. - * - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed argument is not a string. - */ - public static function compatible_gzinflate($gz_data) { - if (is_string($gz_data) === false) { - throw InvalidArgument::create(1, '$gz_data', 'string', gettype($gz_data)); - } - - if (trim($gz_data) === '') { - return false; - } - - // Compressed data might contain a full zlib header, if so strip it for - // gzinflate() - if (substr($gz_data, 0, 3) === "\x1f\x8b\x08") { - $i = 10; - $flg = ord(substr($gz_data, 3, 1)); - if ($flg > 0) { - if ($flg & 4) { - list($xlen) = unpack('v', substr($gz_data, $i, 2)); - $i += 2 + $xlen; - } - - if ($flg & 8) { - $i = strpos($gz_data, "\0", $i) + 1; - } - - if ($flg & 16) { - $i = strpos($gz_data, "\0", $i) + 1; - } - - if ($flg & 2) { - $i += 2; - } - } - - $decompressed = self::compatible_gzinflate(substr($gz_data, $i)); - if ($decompressed !== false) { - return $decompressed; - } - } - - // If the data is Huffman Encoded, we must first strip the leading 2 - // byte Huffman marker for gzinflate() - // The response is Huffman coded by many compressors such as - // java.util.zip.Deflater, Ruby's Zlib::Deflate, and .NET's - // System.IO.Compression.DeflateStream. - // - // See https://decompres.blogspot.com/ for a quick explanation of this - // data type - $huffman_encoded = false; - - // low nibble of first byte should be 0x08 - list(, $first_nibble) = unpack('h', $gz_data); - - // First 2 bytes should be divisible by 0x1F - list(, $first_two_bytes) = unpack('n', $gz_data); - - if ($first_nibble === 0x08 && ($first_two_bytes % 0x1F) === 0) { - $huffman_encoded = true; - } - - if ($huffman_encoded) { - $decompressed = @gzinflate(substr($gz_data, 2)); - if ($decompressed !== false) { - return $decompressed; - } - } - - if (substr($gz_data, 0, 4) === "\x50\x4b\x03\x04") { - // ZIP file format header - // Offset 6: 2 bytes, General-purpose field - // Offset 26: 2 bytes, filename length - // Offset 28: 2 bytes, optional field length - // Offset 30: Filename field, followed by optional field, followed - // immediately by data - list(, $general_purpose_flag) = unpack('v', substr($gz_data, 6, 2)); - - // If the file has been compressed on the fly, 0x08 bit is set of - // the general purpose field. We can use this to differentiate - // between a compressed document, and a ZIP file - $zip_compressed_on_the_fly = ((0x08 & $general_purpose_flag) === 0x08); - - if (!$zip_compressed_on_the_fly) { - // Don't attempt to decode a compressed zip file - return $gz_data; - } - - // Determine the first byte of data, based on the above ZIP header - // offsets: - $first_file_start = array_sum(unpack('v2', substr($gz_data, 26, 4))); - $decompressed = @gzinflate(substr($gz_data, 30 + $first_file_start)); - if ($decompressed !== false) { - return $decompressed; - } - - return false; - } - - // Finally fall back to straight gzinflate - $decompressed = @gzinflate($gz_data); - if ($decompressed !== false) { - return $decompressed; - } - - // Fallback for all above failing, not expected, but included for - // debugging and preventing regressions and to track stats - $decompressed = @gzinflate(substr($gz_data, 2)); - if ($decompressed !== false) { - return $decompressed; - } - - return false; - } -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Response.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Response.php deleted file mode 100644 index 8964521..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Response.php +++ /dev/null @@ -1,165 +0,0 @@ -headers = new Headers(); - $this->cookies = new Jar(); - } - - /** - * Is the response a redirect? - * - * @return boolean True if redirect (3xx status), false if not. - */ - public function is_redirect() { - $code = $this->status_code; - return in_array($code, [300, 301, 302, 303, 307], true) || $code > 307 && $code < 400; - } - - /** - * Throws an exception if the request was not successful - * - * @param boolean $allow_redirects Set to false to throw on a 3xx as well - * - * @throws \WpOrg\Requests\Exception If `$allow_redirects` is false, and code is 3xx (`response.no_redirects`) - * @throws \WpOrg\Requests\Exception\Http On non-successful status code. Exception class corresponds to "Status" + code (e.g. {@see \WpOrg\Requests\Exception\Http\Status404}) - */ - public function throw_for_status($allow_redirects = true) { - if ($this->is_redirect()) { - if ($allow_redirects !== true) { - throw new Exception('Redirection not allowed', 'response.no_redirects', $this); - } - } elseif (!$this->success) { - $exception = Http::get_class($this->status_code); - throw new $exception(null, $this); - } - } - - /** - * JSON decode the response body. - * - * The method parameters are the same as those for the PHP native `json_decode()` function. - * - * @link https://php.net/json-decode - * - * @param ?bool $associative Optional. When `true`, JSON objects will be returned as associative arrays; - * When `false`, JSON objects will be returned as objects. - * When `null`, JSON objects will be returned as associative arrays - * or objects depending on whether `JSON_OBJECT_AS_ARRAY` is set in the flags. - * Defaults to `true` (in contrast to the PHP native default of `null`). - * @param int $depth Optional. Maximum nesting depth of the structure being decoded. - * Defaults to `512`. - * @param int $options Optional. Bitmask of JSON_BIGINT_AS_STRING, JSON_INVALID_UTF8_IGNORE, - * JSON_INVALID_UTF8_SUBSTITUTE, JSON_OBJECT_AS_ARRAY, JSON_THROW_ON_ERROR. - * Defaults to `0` (no options set). - * - * @return array - * - * @throws \WpOrg\Requests\Exception If `$this->body` is not valid json. - */ - public function decode_body($associative = true, $depth = 512, $options = 0) { - $data = json_decode($this->body, $associative, $depth, $options); - - if (json_last_error() !== JSON_ERROR_NONE) { - $last_error = json_last_error_msg(); - throw new Exception('Unable to parse JSON data: ' . $last_error, 'response.invalid', $this); - } - - return $data; - } -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Response/Headers.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Response/Headers.php deleted file mode 100644 index eb4f687..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Response/Headers.php +++ /dev/null @@ -1,124 +0,0 @@ -data[$offset])) { - return null; - } - - return $this->flatten($this->data[$offset]); - } - - /** - * Set the given item - * - * @param string $offset Item name - * @param string $value Item value - * - * @throws \WpOrg\Requests\Exception On attempting to use dictionary as list (`invalidset`) - */ - public function offsetSet($offset, $value) { - if ($offset === null) { - throw new Exception('Object is a dictionary, not a list', 'invalidset'); - } - - if (is_string($offset)) { - $offset = strtolower($offset); - } - - if (!isset($this->data[$offset])) { - $this->data[$offset] = []; - } - - $this->data[$offset][] = $value; - } - - /** - * Get all values for a given header - * - * @param string $offset - * @return array|null Header values - * - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed argument is not valid as an array key. - */ - public function getValues($offset) { - if (!is_string($offset) && !is_int($offset)) { - throw InvalidArgument::create(1, '$offset', 'string|int', gettype($offset)); - } - - $offset = strtolower($offset); - if (!isset($this->data[$offset])) { - return null; - } - - return $this->data[$offset]; - } - - /** - * Flattens a value into a string - * - * Converts an array into a string by imploding values with a comma, as per - * RFC2616's rules for folding headers. - * - * @param string|array $value Value to flatten - * @return string Flattened value - * - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed argument is not a string or an array. - */ - public function flatten($value) { - if (is_string($value)) { - return $value; - } - - if (is_array($value)) { - return implode(',', $value); - } - - throw InvalidArgument::create(1, '$value', 'string|array', gettype($value)); - } - - /** - * Get an iterator for the data - * - * Converts the internally stored values to a comma-separated string if there is more - * than one value for a key. - * - * @return \ArrayIterator - */ - public function getIterator() { - return new FilteredIterator($this->data, [$this, 'flatten']); - } -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Session.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Session.php deleted file mode 100644 index 000d252..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Session.php +++ /dev/null @@ -1,304 +0,0 @@ -useragent = 'X';` - * - * @var array - */ - public $options = []; - - /** - * Create a new session - * - * @param string|Stringable|null $url Base URL for requests - * @param array $headers Default headers for requests - * @param array $data Default data for requests - * @param array $options Default options for requests - * - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $url argument is not a string, Stringable or null. - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $headers argument is not an array. - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $data argument is not an array. - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $options argument is not an array. - */ - public function __construct($url = null, $headers = [], $data = [], $options = []) { - if ($url !== null && InputValidator::is_string_or_stringable($url) === false) { - throw InvalidArgument::create(1, '$url', 'string|Stringable|null', gettype($url)); - } - - if (is_array($headers) === false) { - throw InvalidArgument::create(2, '$headers', 'array', gettype($headers)); - } - - if (is_array($data) === false) { - throw InvalidArgument::create(3, '$data', 'array', gettype($data)); - } - - if (is_array($options) === false) { - throw InvalidArgument::create(4, '$options', 'array', gettype($options)); - } - - $this->url = $url; - $this->headers = $headers; - $this->data = $data; - $this->options = $options; - - if (empty($this->options['cookies'])) { - $this->options['cookies'] = new Jar(); - } - } - - /** - * Get a property's value - * - * @param string $name Property name. - * @return mixed|null Property value, null if none found - */ - public function __get($name) { - if (isset($this->options[$name])) { - return $this->options[$name]; - } - - return null; - } - - /** - * Set a property's value - * - * @param string $name Property name. - * @param mixed $value Property value - */ - public function __set($name, $value) { - $this->options[$name] = $value; - } - - /** - * Remove a property's value - * - * @param string $name Property name. - */ - public function __isset($name) { - return isset($this->options[$name]); - } - - /** - * Remove a property's value - * - * @param string $name Property name. - */ - public function __unset($name) { - unset($this->options[$name]); - } - - /**#@+ - * @see \WpOrg\Requests\Session::request() - * @param string $url - * @param array $headers - * @param array $options - * @return \WpOrg\Requests\Response - */ - /** - * Send a GET request - */ - public function get($url, $headers = [], $options = []) { - return $this->request($url, $headers, null, Requests::GET, $options); - } - - /** - * Send a HEAD request - */ - public function head($url, $headers = [], $options = []) { - return $this->request($url, $headers, null, Requests::HEAD, $options); - } - - /** - * Send a DELETE request - */ - public function delete($url, $headers = [], $options = []) { - return $this->request($url, $headers, null, Requests::DELETE, $options); - } - /**#@-*/ - - /**#@+ - * @see \WpOrg\Requests\Session::request() - * @param string $url - * @param array $headers - * @param array $data - * @param array $options - * @return \WpOrg\Requests\Response - */ - /** - * Send a POST request - */ - public function post($url, $headers = [], $data = [], $options = []) { - return $this->request($url, $headers, $data, Requests::POST, $options); - } - - /** - * Send a PUT request - */ - public function put($url, $headers = [], $data = [], $options = []) { - return $this->request($url, $headers, $data, Requests::PUT, $options); - } - - /** - * Send a PATCH request - * - * Note: Unlike {@see \WpOrg\Requests\Session::post()} and {@see \WpOrg\Requests\Session::put()}, - * `$headers` is required, as the specification recommends that should send an ETag - * - * @link https://tools.ietf.org/html/rfc5789 - */ - public function patch($url, $headers, $data = [], $options = []) { - return $this->request($url, $headers, $data, Requests::PATCH, $options); - } - /**#@-*/ - - /** - * Main interface for HTTP requests - * - * This method initiates a request and sends it via a transport before - * parsing. - * - * @see \WpOrg\Requests\Requests::request() - * - * @param string $url URL to request - * @param array $headers Extra headers to send with the request - * @param array|null $data Data to send either as a query string for GET/HEAD requests, or in the body for POST requests - * @param string $type HTTP request type (use \WpOrg\Requests\Requests constants) - * @param array $options Options for the request (see {@see \WpOrg\Requests\Requests::request()}) - * @return \WpOrg\Requests\Response - * - * @throws \WpOrg\Requests\Exception On invalid URLs (`nonhttp`) - */ - public function request($url, $headers = [], $data = [], $type = Requests::GET, $options = []) { - $request = $this->merge_request(compact('url', 'headers', 'data', 'options')); - - return Requests::request($request['url'], $request['headers'], $request['data'], $type, $request['options']); - } - - /** - * Send multiple HTTP requests simultaneously - * - * @see \WpOrg\Requests\Requests::request_multiple() - * - * @param array $requests Requests data (see {@see \WpOrg\Requests\Requests::request_multiple()}) - * @param array $options Global and default options (see {@see \WpOrg\Requests\Requests::request()}) - * @return array Responses (either \WpOrg\Requests\Response or a \WpOrg\Requests\Exception object) - * - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $requests argument is not an array or iterable object with array access. - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $options argument is not an array. - */ - public function request_multiple($requests, $options = []) { - if (InputValidator::has_array_access($requests) === false || InputValidator::is_iterable($requests) === false) { - throw InvalidArgument::create(1, '$requests', 'array|ArrayAccess&Traversable', gettype($requests)); - } - - if (is_array($options) === false) { - throw InvalidArgument::create(2, '$options', 'array', gettype($options)); - } - - foreach ($requests as $key => $request) { - $requests[$key] = $this->merge_request($request, false); - } - - $options = array_merge($this->options, $options); - - // Disallow forcing the type, as that's a per request setting - unset($options['type']); - - return Requests::request_multiple($requests, $options); - } - - /** - * Merge a request's data with the default data - * - * @param array $request Request data (same form as {@see \WpOrg\Requests\Session::request_multiple()}) - * @param boolean $merge_options Should we merge options as well? - * @return array Request data - */ - protected function merge_request($request, $merge_options = true) { - if ($this->url !== null) { - $request['url'] = Iri::absolutize($this->url, $request['url']); - $request['url'] = $request['url']->uri; - } - - if (empty($request['headers'])) { - $request['headers'] = []; - } - - $request['headers'] = array_merge($this->headers, $request['headers']); - - if (empty($request['data'])) { - if (is_array($this->data)) { - $request['data'] = $this->data; - } - } elseif (is_array($request['data']) && is_array($this->data)) { - $request['data'] = array_merge($this->data, $request['data']); - } - - if ($merge_options === true) { - $request['options'] = array_merge($this->options, $request['options']); - - // Disallow forcing the type, as that's a per request setting - unset($request['options']['type']); - } - - return $request; - } -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Ssl.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Ssl.php deleted file mode 100644 index 99da11d..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Ssl.php +++ /dev/null @@ -1,182 +0,0 @@ - 0) { - // Whitespace detected. This can never be a dNSName. - return false; - } - - $parts = explode('.', $reference); - if ($parts !== array_filter($parts)) { - // DNSName cannot contain two dots next to each other. - return false; - } - - // Check the first part of the name - $first = array_shift($parts); - - if (strpos($first, '*') !== false) { - // Check that the wildcard is the full part - if ($first !== '*') { - return false; - } - - // Check that we have at least 3 components (including first) - if (count($parts) < 2) { - return false; - } - } - - // Check the remaining parts - foreach ($parts as $part) { - if (strpos($part, '*') !== false) { - return false; - } - } - - // Nothing found, verified! - return true; - } - - /** - * Match a hostname against a dNSName reference - * - * @param string|Stringable $host Requested host - * @param string|Stringable $reference dNSName to match against - * @return boolean Does the domain match? - * @throws \WpOrg\Requests\Exception\InvalidArgument When either of the passed arguments is not a string or a stringable object. - */ - public static function match_domain($host, $reference) { - if (InputValidator::is_string_or_stringable($host) === false) { - throw InvalidArgument::create(1, '$host', 'string|Stringable', gettype($host)); - } - - // Check if the reference is blocklisted first - if (self::verify_reference_name($reference) !== true) { - return false; - } - - // Check for a direct match - if ((string) $host === (string) $reference) { - return true; - } - - // Calculate the valid wildcard match if the host is not an IP address - // Also validates that the host has 3 parts or more, as per Firefox's ruleset, - // as a wildcard reference is only allowed with 3 parts or more, so the - // comparison will never match if host doesn't contain 3 parts or more as well. - if (ip2long($host) === false) { - $parts = explode('.', $host); - $parts[0] = '*'; - $wildcard = implode('.', $parts); - if ($wildcard === (string) $reference) { - return true; - } - } - - return false; - } -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Transport.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Transport.php deleted file mode 100644 index f2e1c6e..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Transport.php +++ /dev/null @@ -1,45 +0,0 @@ - $capabilities Optional. Associative array of capabilities to test against, i.e. `['' => true]`. - * @return bool Whether the transport can be used. - */ - public static function test($capabilities = []); -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Transport/Curl.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Transport/Curl.php deleted file mode 100644 index 66b89c1..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Transport/Curl.php +++ /dev/null @@ -1,640 +0,0 @@ -= 8.0. - */ - private $handle; - - /** - * Hook dispatcher instance - * - * @var \WpOrg\Requests\Hooks - */ - private $hooks; - - /** - * Have we finished the headers yet? - * - * @var boolean - */ - private $done_headers = false; - - /** - * If streaming to a file, keep the file pointer - * - * @var resource - */ - private $stream_handle; - - /** - * How many bytes are in the response body? - * - * @var int - */ - private $response_bytes; - - /** - * What's the maximum number of bytes we should keep? - * - * @var int|bool Byte count, or false if no limit. - */ - private $response_byte_limit; - - /** - * Constructor - */ - public function __construct() { - $curl = curl_version(); - $this->version = $curl['version_number']; - $this->handle = curl_init(); - - curl_setopt($this->handle, CURLOPT_HEADER, false); - curl_setopt($this->handle, CURLOPT_RETURNTRANSFER, 1); - if ($this->version >= self::CURL_7_10_5) { - curl_setopt($this->handle, CURLOPT_ENCODING, ''); - } - - if (defined('CURLOPT_PROTOCOLS')) { - // phpcs:ignore PHPCompatibility.Constants.NewConstants.curlopt_protocolsFound - curl_setopt($this->handle, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS); - } - - if (defined('CURLOPT_REDIR_PROTOCOLS')) { - // phpcs:ignore PHPCompatibility.Constants.NewConstants.curlopt_redir_protocolsFound - curl_setopt($this->handle, CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS); - } - } - - /** - * Destructor - */ - public function __destruct() { - if (is_resource($this->handle)) { - curl_close($this->handle); - } - } - - /** - * Perform a request - * - * @param string|Stringable $url URL to request - * @param array $headers Associative array of request headers - * @param string|array $data Data to send either as the POST body, or as parameters in the URL for a GET/HEAD - * @param array $options Request options, see {@see \WpOrg\Requests\Requests::response()} for documentation - * @return string Raw HTTP result - * - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $url argument is not a string or Stringable. - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $headers argument is not an array. - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $data parameter is not an array or string. - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $options argument is not an array. - * @throws \WpOrg\Requests\Exception On a cURL error (`curlerror`) - */ - public function request($url, $headers = [], $data = [], $options = []) { - if (InputValidator::is_string_or_stringable($url) === false) { - throw InvalidArgument::create(1, '$url', 'string|Stringable', gettype($url)); - } - - if (is_array($headers) === false) { - throw InvalidArgument::create(2, '$headers', 'array', gettype($headers)); - } - - if (!is_array($data) && !is_string($data)) { - if ($data === null) { - $data = ''; - } else { - throw InvalidArgument::create(3, '$data', 'array|string', gettype($data)); - } - } - - if (is_array($options) === false) { - throw InvalidArgument::create(4, '$options', 'array', gettype($options)); - } - - $this->hooks = $options['hooks']; - - $this->setup_handle($url, $headers, $data, $options); - - $options['hooks']->dispatch('curl.before_send', [&$this->handle]); - - if ($options['filename'] !== false) { - // phpcs:ignore WordPress.PHP.NoSilencedErrors -- Silenced the PHP native warning in favour of throwing an exception. - $this->stream_handle = @fopen($options['filename'], 'wb'); - if ($this->stream_handle === false) { - $error = error_get_last(); - throw new Exception($error['message'], 'fopen'); - } - } - - $this->response_data = ''; - $this->response_bytes = 0; - $this->response_byte_limit = false; - if ($options['max_bytes'] !== false) { - $this->response_byte_limit = $options['max_bytes']; - } - - if (isset($options['verify'])) { - if ($options['verify'] === false) { - curl_setopt($this->handle, CURLOPT_SSL_VERIFYHOST, 0); - curl_setopt($this->handle, CURLOPT_SSL_VERIFYPEER, 0); // nosemgrep : https://semgrep.dev/s/ZKq7 - } elseif (is_string($options['verify'])) { - curl_setopt($this->handle, CURLOPT_CAINFO, $options['verify']); - } - } - - if (isset($options['verifyname']) && $options['verifyname'] === false) { - curl_setopt($this->handle, CURLOPT_SSL_VERIFYHOST, 0); - } - - curl_exec($this->handle); - $response = $this->response_data; - - $options['hooks']->dispatch('curl.after_send', []); - - if (curl_errno($this->handle) === CURLE_WRITE_ERROR || curl_errno($this->handle) === CURLE_BAD_CONTENT_ENCODING) { - // Reset encoding and try again - curl_setopt($this->handle, CURLOPT_ENCODING, 'none'); - - $this->response_data = ''; - $this->response_bytes = 0; - curl_exec($this->handle); - $response = $this->response_data; - } - - $this->process_response($response, $options); - - // Need to remove the $this reference from the curl handle. - // Otherwise \WpOrg\Requests\Transport\Curl won't be garbage collected and the curl_close() will never be called. - curl_setopt($this->handle, CURLOPT_HEADERFUNCTION, null); - curl_setopt($this->handle, CURLOPT_WRITEFUNCTION, null); - - return $this->headers; - } - - /** - * Send multiple requests simultaneously - * - * @param array $requests Request data - * @param array $options Global options - * @return array Array of \WpOrg\Requests\Response objects (may contain \WpOrg\Requests\Exception or string responses as well) - * - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $requests argument is not an array or iterable object with array access. - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $options argument is not an array. - */ - public function request_multiple($requests, $options) { - // If you're not requesting, we can't get any responses ¯\_(ツ)_/¯ - if (empty($requests)) { - return []; - } - - if (InputValidator::has_array_access($requests) === false || InputValidator::is_iterable($requests) === false) { - throw InvalidArgument::create(1, '$requests', 'array|ArrayAccess&Traversable', gettype($requests)); - } - - if (is_array($options) === false) { - throw InvalidArgument::create(2, '$options', 'array', gettype($options)); - } - - $multihandle = curl_multi_init(); - $subrequests = []; - $subhandles = []; - - $class = get_class($this); - foreach ($requests as $id => $request) { - $subrequests[$id] = new $class(); - $subhandles[$id] = $subrequests[$id]->get_subrequest_handle($request['url'], $request['headers'], $request['data'], $request['options']); - $request['options']['hooks']->dispatch('curl.before_multi_add', [&$subhandles[$id]]); - curl_multi_add_handle($multihandle, $subhandles[$id]); - } - - $completed = 0; - $responses = []; - $subrequestcount = count($subrequests); - - $request['options']['hooks']->dispatch('curl.before_multi_exec', [&$multihandle]); - - do { - $active = 0; - - do { - $status = curl_multi_exec($multihandle, $active); - } while ($status === CURLM_CALL_MULTI_PERFORM); - - $to_process = []; - - // Read the information as needed - while ($done = curl_multi_info_read($multihandle)) { - $key = array_search($done['handle'], $subhandles, true); - if (!isset($to_process[$key])) { - $to_process[$key] = $done; - } - } - - // Parse the finished requests before we start getting the new ones - foreach ($to_process as $key => $done) { - $options = $requests[$key]['options']; - if ($done['result'] !== CURLE_OK) { - //get error string for handle. - $reason = curl_error($done['handle']); - $exception = new CurlException( - $reason, - CurlException::EASY, - $done['handle'], - $done['result'] - ); - $responses[$key] = $exception; - $options['hooks']->dispatch('transport.internal.parse_error', [&$responses[$key], $requests[$key]]); - } else { - $responses[$key] = $subrequests[$key]->process_response($subrequests[$key]->response_data, $options); - - $options['hooks']->dispatch('transport.internal.parse_response', [&$responses[$key], $requests[$key]]); - } - - curl_multi_remove_handle($multihandle, $done['handle']); - curl_close($done['handle']); - - if (!is_string($responses[$key])) { - $options['hooks']->dispatch('multiple.request.complete', [&$responses[$key], $key]); - } - - $completed++; - } - } while ($active || $completed < $subrequestcount); - - $request['options']['hooks']->dispatch('curl.after_multi_exec', [&$multihandle]); - - curl_multi_close($multihandle); - - return $responses; - } - - /** - * Get the cURL handle for use in a multi-request - * - * @param string $url URL to request - * @param array $headers Associative array of request headers - * @param string|array $data Data to send either as the POST body, or as parameters in the URL for a GET/HEAD - * @param array $options Request options, see {@see \WpOrg\Requests\Requests::response()} for documentation - * @return resource|\CurlHandle Subrequest's cURL handle - */ - public function &get_subrequest_handle($url, $headers, $data, $options) { - $this->setup_handle($url, $headers, $data, $options); - - if ($options['filename'] !== false) { - $this->stream_handle = fopen($options['filename'], 'wb'); - } - - $this->response_data = ''; - $this->response_bytes = 0; - $this->response_byte_limit = false; - if ($options['max_bytes'] !== false) { - $this->response_byte_limit = $options['max_bytes']; - } - - $this->hooks = $options['hooks']; - - return $this->handle; - } - - /** - * Setup the cURL handle for the given data - * - * @param string $url URL to request - * @param array $headers Associative array of request headers - * @param string|array $data Data to send either as the POST body, or as parameters in the URL for a GET/HEAD - * @param array $options Request options, see {@see \WpOrg\Requests\Requests::response()} for documentation - */ - private function setup_handle($url, $headers, $data, $options) { - $options['hooks']->dispatch('curl.before_request', [&$this->handle]); - - // Force closing the connection for old versions of cURL (<7.22). - if (!isset($headers['Connection'])) { - $headers['Connection'] = 'close'; - } - - /** - * Add "Expect" header. - * - * By default, cURL adds a "Expect: 100-Continue" to most requests. This header can - * add as much as a second to the time it takes for cURL to perform a request. To - * prevent this, we need to set an empty "Expect" header. To match the behaviour of - * Guzzle, we'll add the empty header to requests that are smaller than 1 MB and use - * HTTP/1.1. - * - * https://curl.se/mail/lib-2017-07/0013.html - */ - if (!isset($headers['Expect']) && $options['protocol_version'] === 1.1) { - $headers['Expect'] = $this->get_expect_header($data); - } - - $headers = Requests::flatten($headers); - - if (!empty($data)) { - $data_format = $options['data_format']; - - if ($data_format === 'query') { - $url = self::format_get($url, $data); - $data = ''; - } elseif (!is_string($data) && !isset($data["file"])){ - $data = http_build_query($data, '', '&'); - } - } - - switch ($options['type']) { - case Requests::POST: - curl_setopt($this->handle, CURLOPT_POST, true); - curl_setopt($this->handle, CURLOPT_POSTFIELDS, $data); - break; - case Requests::HEAD: - curl_setopt($this->handle, CURLOPT_CUSTOMREQUEST, $options['type']); - curl_setopt($this->handle, CURLOPT_NOBODY, true); - break; - case Requests::TRACE: - curl_setopt($this->handle, CURLOPT_CUSTOMREQUEST, $options['type']); - break; - case Requests::PATCH: - case Requests::PUT: - case Requests::DELETE: - case Requests::OPTIONS: - default: - curl_setopt($this->handle, CURLOPT_CUSTOMREQUEST, $options['type']); - if (!empty($data)) { - curl_setopt($this->handle, CURLOPT_POSTFIELDS, $data); - } - } - - // cURL requires a minimum timeout of 1 second when using the system - // DNS resolver, as it uses `alarm()`, which is second resolution only. - // There's no way to detect which DNS resolver is being used from our - // end, so we need to round up regardless of the supplied timeout. - // - // https://github.com/curl/curl/blob/4f45240bc84a9aa648c8f7243be7b79e9f9323a5/lib/hostip.c#L606-L609 - $timeout = max($options['timeout'], 1); - - if (is_int($timeout) || $this->version < self::CURL_7_16_2) { - curl_setopt($this->handle, CURLOPT_TIMEOUT, ceil($timeout)); - } else { - // phpcs:ignore PHPCompatibility.Constants.NewConstants.curlopt_timeout_msFound - curl_setopt($this->handle, CURLOPT_TIMEOUT_MS, round($timeout * 1000)); - } - - if (is_int($options['connect_timeout']) || $this->version < self::CURL_7_16_2) { - curl_setopt($this->handle, CURLOPT_CONNECTTIMEOUT, ceil($options['connect_timeout'])); - } else { - // phpcs:ignore PHPCompatibility.Constants.NewConstants.curlopt_connecttimeout_msFound - curl_setopt($this->handle, CURLOPT_CONNECTTIMEOUT_MS, round($options['connect_timeout'] * 1000)); - } - - curl_setopt($this->handle, CURLOPT_URL, $url); - curl_setopt($this->handle, CURLOPT_USERAGENT, $options['useragent']); - if (!empty($headers)) { - curl_setopt($this->handle, CURLOPT_HTTPHEADER, $headers); - } - - if ($options['protocol_version'] === 1.1) { - curl_setopt($this->handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); - } else { - curl_setopt($this->handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); - } - - if ($options['blocking'] === true) { - curl_setopt($this->handle, CURLOPT_HEADERFUNCTION, [$this, 'stream_headers']); - curl_setopt($this->handle, CURLOPT_WRITEFUNCTION, [$this, 'stream_body']); - curl_setopt($this->handle, CURLOPT_BUFFERSIZE, Requests::BUFFER_SIZE); - } - } - - /** - * Process a response - * - * @param string $response Response data from the body - * @param array $options Request options - * @return string|false HTTP response data including headers. False if non-blocking. - * @throws \WpOrg\Requests\Exception - */ - public function process_response($response, $options) { - if ($options['blocking'] === false) { - $fake_headers = ''; - $options['hooks']->dispatch('curl.after_request', [&$fake_headers]); - return false; - } - - if ($options['filename'] !== false && $this->stream_handle) { - fclose($this->stream_handle); - $this->headers = trim($this->headers); - } else { - $this->headers .= $response; - } - - if (curl_errno($this->handle)) { - $error = sprintf( - 'cURL error %s: %s', - curl_errno($this->handle), - curl_error($this->handle) - ); - throw new Exception($error, 'curlerror', $this->handle); - } - - $this->info = curl_getinfo($this->handle); - - $options['hooks']->dispatch('curl.after_request', [&$this->headers, &$this->info]); - return $this->headers; - } - - /** - * Collect the headers as they are received - * - * @param resource|\CurlHandle $handle cURL handle - * @param string $headers Header string - * @return integer Length of provided header - */ - public function stream_headers($handle, $headers) { - // Why do we do this? cURL will send both the final response and any - // interim responses, such as a 100 Continue. We don't need that. - // (We may want to keep this somewhere just in case) - if ($this->done_headers) { - $this->headers = ''; - $this->done_headers = false; - } - - $this->headers .= $headers; - - if ($headers === "\r\n") { - $this->done_headers = true; - } - - return strlen($headers); - } - - /** - * Collect data as it's received - * - * @since 1.6.1 - * - * @param resource|\CurlHandle $handle cURL handle - * @param string $data Body data - * @return integer Length of provided data - */ - public function stream_body($handle, $data) { - $this->hooks->dispatch('request.progress', [$data, $this->response_bytes, $this->response_byte_limit]); - $data_length = strlen($data); - - // Are we limiting the response size? - if ($this->response_byte_limit) { - if ($this->response_bytes === $this->response_byte_limit) { - // Already at maximum, move on - return $data_length; - } - - if (($this->response_bytes + $data_length) > $this->response_byte_limit) { - // Limit the length - $limited_length = ($this->response_byte_limit - $this->response_bytes); - $data = substr($data, 0, $limited_length); - } - } - - if ($this->stream_handle) { - fwrite($this->stream_handle, $data); - } else { - $this->response_data .= $data; - } - - $this->response_bytes += strlen($data); - return $data_length; - } - - /** - * Format a URL given GET data - * - * @param string $url - * @param array|object $data Data to build query using, see {@link https://www.php.net/http_build_query} - * @return string URL with data - */ - private static function format_get($url, $data) { - if (!empty($data)) { - $query = ''; - $url_parts = parse_url($url); - if (empty($url_parts['query'])) { - $url_parts['query'] = ''; - } else { - $query = $url_parts['query']; - } - - $query .= '&' . http_build_query($data, '', '&'); - $query = trim($query, '&'); - - if (empty($url_parts['query'])) { - $url .= '?' . $query; - } else { - $url = str_replace($url_parts['query'], $query, $url); - } - } - - return $url; - } - - /** - * Self-test whether the transport can be used. - * - * The available capabilities to test for can be found in {@see \WpOrg\Requests\Capability}. - * - * @codeCoverageIgnore - * @param array $capabilities Optional. Associative array of capabilities to test against, i.e. `['' => true]`. - * @return bool Whether the transport can be used. - */ - public static function test($capabilities = []) { - if (!function_exists('curl_init') || !function_exists('curl_exec')) { - return false; - } - - // If needed, check that our installed curl version supports SSL - if (isset($capabilities[Capability::SSL]) && $capabilities[Capability::SSL]) { - $curl_version = curl_version(); - if (!(CURL_VERSION_SSL & $curl_version['features'])) { - return false; - } - } - - return true; - } - - /** - * Get the correct "Expect" header for the given request data. - * - * @param string|array $data Data to send either as the POST body, or as parameters in the URL for a GET/HEAD. - * @return string The "Expect" header. - */ - private function get_expect_header($data) { - if (!is_array($data)) { - return strlen((string) $data) >= 1048576 ? '100-Continue' : ''; - } - - $bytesize = 0; - $iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($data)); - - foreach ($iterator as $datum) { - $bytesize += strlen((string) $datum); - - if ($bytesize >= 1048576) { - return '100-Continue'; - } - } - - return ''; - } -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Transport/Fsockopen.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Transport/Fsockopen.php deleted file mode 100644 index c3bd4a6..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Transport/Fsockopen.php +++ /dev/null @@ -1,505 +0,0 @@ -dispatch('fsockopen.before_request'); - - $url_parts = parse_url($url); - if (empty($url_parts)) { - throw new Exception('Invalid URL.', 'invalidurl', $url); - } - - $host = $url_parts['host']; - $context = stream_context_create(); - $verifyname = false; - $case_insensitive_headers = new CaseInsensitiveDictionary($headers); - - // HTTPS support - if (isset($url_parts['scheme']) && strtolower($url_parts['scheme']) === 'https') { - $remote_socket = 'ssl://' . $host; - if (!isset($url_parts['port'])) { - $url_parts['port'] = Port::HTTPS; - } - - $context_options = [ - 'verify_peer' => true, - 'capture_peer_cert' => true, - ]; - $verifyname = true; - - // SNI, if enabled (OpenSSL >=0.9.8j) - // phpcs:ignore PHPCompatibility.Constants.NewConstants.openssl_tlsext_server_nameFound - if (defined('OPENSSL_TLSEXT_SERVER_NAME') && OPENSSL_TLSEXT_SERVER_NAME) { - $context_options['SNI_enabled'] = true; - if (isset($options['verifyname']) && $options['verifyname'] === false) { - $context_options['SNI_enabled'] = false; - } - } - - if (isset($options['verify'])) { - if ($options['verify'] === false) { - $context_options['verify_peer'] = false; - $context_options['verify_peer_name'] = false; - $verifyname = false; - } elseif (is_string($options['verify'])) { - $context_options['cafile'] = $options['verify']; - } - } - - if (isset($options['verifyname']) && $options['verifyname'] === false) { - $context_options['verify_peer_name'] = false; - $verifyname = false; - } - - stream_context_set_option($context, ['ssl' => $context_options]); - } else { - $remote_socket = 'tcp://' . $host; - } - - $this->max_bytes = $options['max_bytes']; - - if (!isset($url_parts['port'])) { - $url_parts['port'] = Port::HTTP; - } - - $remote_socket .= ':' . $url_parts['port']; - - // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_set_error_handler - set_error_handler([$this, 'connect_error_handler'], E_WARNING | E_NOTICE); - - $options['hooks']->dispatch('fsockopen.remote_socket', [&$remote_socket]); - - $socket = stream_socket_client($remote_socket, $errno, $errstr, ceil($options['connect_timeout']), STREAM_CLIENT_CONNECT, $context); - - restore_error_handler(); - - if ($verifyname && !$this->verify_certificate_from_context($host, $context)) { - throw new Exception('SSL certificate did not match the requested domain name', 'ssl.no_match'); - } - - if (!$socket) { - if ($errno === 0) { - // Connection issue - throw new Exception(rtrim($this->connect_error), 'fsockopen.connect_error'); - } - - throw new Exception($errstr, 'fsockopenerror', null, $errno); - } - - $data_format = $options['data_format']; - - if ($data_format === 'query') { - $path = self::format_get($url_parts, $data); - $data = ''; - } else { - $path = self::format_get($url_parts, []); - } - - $options['hooks']->dispatch('fsockopen.remote_host_path', [&$path, $url]); - - $request_body = ''; - $out = sprintf("%s %s HTTP/%.1F\r\n", $options['type'], $path, $options['protocol_version']); - - if ($options['type'] !== Requests::TRACE) { - if (is_array($data)) { - $request_body = http_build_query($data, '', '&'); - } else { - $request_body = $data; - } - - // Always include Content-length on POST requests to prevent - // 411 errors from some servers when the body is empty. - if (!empty($data) || $options['type'] === Requests::POST) { - if (!isset($case_insensitive_headers['Content-Length'])) { - $headers['Content-Length'] = strlen($request_body); - } - - if (!isset($case_insensitive_headers['Content-Type'])) { - $headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'; - } - } - } - - if (!isset($case_insensitive_headers['Host'])) { - $out .= sprintf('Host: %s', $url_parts['host']); - $scheme_lower = strtolower($url_parts['scheme']); - - if (($scheme_lower === 'http' && $url_parts['port'] !== Port::HTTP) || ($scheme_lower === 'https' && $url_parts['port'] !== Port::HTTPS)) { - $out .= ':' . $url_parts['port']; - } - - $out .= "\r\n"; - } - - if (!isset($case_insensitive_headers['User-Agent'])) { - $out .= sprintf("User-Agent: %s\r\n", $options['useragent']); - } - - $accept_encoding = $this->accept_encoding(); - if (!isset($case_insensitive_headers['Accept-Encoding']) && !empty($accept_encoding)) { - $out .= sprintf("Accept-Encoding: %s\r\n", $accept_encoding); - } - - $headers = Requests::flatten($headers); - - if (!empty($headers)) { - $out .= implode("\r\n", $headers) . "\r\n"; - } - - $options['hooks']->dispatch('fsockopen.after_headers', [&$out]); - - if (substr($out, -2) !== "\r\n") { - $out .= "\r\n"; - } - - if (!isset($case_insensitive_headers['Connection'])) { - $out .= "Connection: Close\r\n"; - } - - $out .= "\r\n" . $request_body; - - $options['hooks']->dispatch('fsockopen.before_send', [&$out]); - - fwrite($socket, $out); - $options['hooks']->dispatch('fsockopen.after_send', [$out]); - - if (!$options['blocking']) { - fclose($socket); - $fake_headers = ''; - $options['hooks']->dispatch('fsockopen.after_request', [&$fake_headers]); - return ''; - } - - $timeout_sec = (int) floor($options['timeout']); - if ($timeout_sec === $options['timeout']) { - $timeout_msec = 0; - } else { - $timeout_msec = self::SECOND_IN_MICROSECONDS * $options['timeout'] % self::SECOND_IN_MICROSECONDS; - } - - stream_set_timeout($socket, $timeout_sec, $timeout_msec); - - $response = ''; - $body = ''; - $headers = ''; - $this->info = stream_get_meta_data($socket); - $size = 0; - $doingbody = false; - $download = false; - if ($options['filename']) { - // phpcs:ignore WordPress.PHP.NoSilencedErrors -- Silenced the PHP native warning in favour of throwing an exception. - $download = @fopen($options['filename'], 'wb'); - if ($download === false) { - $error = error_get_last(); - throw new Exception($error['message'], 'fopen'); - } - } - - while (!feof($socket)) { - $this->info = stream_get_meta_data($socket); - if ($this->info['timed_out']) { - throw new Exception('fsocket timed out', 'timeout'); - } - - $block = fread($socket, Requests::BUFFER_SIZE); - if (!$doingbody) { - $response .= $block; - if (strpos($response, "\r\n\r\n")) { - list($headers, $block) = explode("\r\n\r\n", $response, 2); - $doingbody = true; - } - } - - // Are we in body mode now? - if ($doingbody) { - $options['hooks']->dispatch('request.progress', [$block, $size, $this->max_bytes]); - $data_length = strlen($block); - if ($this->max_bytes) { - // Have we already hit a limit? - if ($size === $this->max_bytes) { - continue; - } - - if (($size + $data_length) > $this->max_bytes) { - // Limit the length - $limited_length = ($this->max_bytes - $size); - $block = substr($block, 0, $limited_length); - } - } - - $size += strlen($block); - if ($download) { - fwrite($download, $block); - } else { - $body .= $block; - } - } - } - - $this->headers = $headers; - - if ($download) { - fclose($download); - } else { - $this->headers .= "\r\n\r\n" . $body; - } - - fclose($socket); - - $options['hooks']->dispatch('fsockopen.after_request', [&$this->headers, &$this->info]); - return $this->headers; - } - - /** - * Send multiple requests simultaneously - * - * @param array $requests Request data (array of 'url', 'headers', 'data', 'options') as per {@see \WpOrg\Requests\Transport::request()} - * @param array $options Global options, see {@see \WpOrg\Requests\Requests::response()} for documentation - * @return array Array of \WpOrg\Requests\Response objects (may contain \WpOrg\Requests\Exception or string responses as well) - * - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $requests argument is not an array or iterable object with array access. - * @throws \WpOrg\Requests\Exception\InvalidArgument When the passed $options argument is not an array. - */ - public function request_multiple($requests, $options) { - // If you're not requesting, we can't get any responses ¯\_(ツ)_/¯ - if (empty($requests)) { - return []; - } - - if (InputValidator::has_array_access($requests) === false || InputValidator::is_iterable($requests) === false) { - throw InvalidArgument::create(1, '$requests', 'array|ArrayAccess&Traversable', gettype($requests)); - } - - if (is_array($options) === false) { - throw InvalidArgument::create(2, '$options', 'array', gettype($options)); - } - - $responses = []; - $class = get_class($this); - foreach ($requests as $id => $request) { - try { - $handler = new $class(); - $responses[$id] = $handler->request($request['url'], $request['headers'], $request['data'], $request['options']); - - $request['options']['hooks']->dispatch('transport.internal.parse_response', [&$responses[$id], $request]); - } catch (Exception $e) { - $responses[$id] = $e; - } - - if (!is_string($responses[$id])) { - $request['options']['hooks']->dispatch('multiple.request.complete', [&$responses[$id], $id]); - } - } - - return $responses; - } - - /** - * Retrieve the encodings we can accept - * - * @return string Accept-Encoding header value - */ - private static function accept_encoding() { - $type = []; - if (function_exists('gzinflate')) { - $type[] = 'deflate;q=1.0'; - } - - if (function_exists('gzuncompress')) { - $type[] = 'compress;q=0.5'; - } - - $type[] = 'gzip;q=0.5'; - - return implode(', ', $type); - } - - /** - * Format a URL given GET data - * - * @param array $url_parts - * @param array|object $data Data to build query using, see {@link https://www.php.net/http_build_query} - * @return string URL with data - */ - private static function format_get($url_parts, $data) { - if (!empty($data)) { - if (empty($url_parts['query'])) { - $url_parts['query'] = ''; - } - - $url_parts['query'] .= '&' . http_build_query($data, '', '&'); - $url_parts['query'] = trim($url_parts['query'], '&'); - } - - if (isset($url_parts['path'])) { - if (isset($url_parts['query'])) { - $get = $url_parts['path'] . '?' . $url_parts['query']; - } else { - $get = $url_parts['path']; - } - } else { - $get = '/'; - } - - return $get; - } - - /** - * Error handler for stream_socket_client() - * - * @param int $errno Error number (e.g. E_WARNING) - * @param string $errstr Error message - */ - public function connect_error_handler($errno, $errstr) { - // Double-check we can handle it - if (($errno & E_WARNING) === 0 && ($errno & E_NOTICE) === 0) { - // Return false to indicate the default error handler should engage - return false; - } - - $this->connect_error .= $errstr . "\n"; - return true; - } - - /** - * Verify the certificate against common name and subject alternative names - * - * Unfortunately, PHP doesn't check the certificate against the alternative - * names, leading things like 'https://www.github.com/' to be invalid. - * Instead - * - * @link https://tools.ietf.org/html/rfc2818#section-3.1 RFC2818, Section 3.1 - * - * @param string $host Host name to verify against - * @param resource $context Stream context - * @return bool - * - * @throws \WpOrg\Requests\Exception On failure to connect via TLS (`fsockopen.ssl.connect_error`) - * @throws \WpOrg\Requests\Exception On not obtaining a match for the host (`fsockopen.ssl.no_match`) - */ - public function verify_certificate_from_context($host, $context) { - $meta = stream_context_get_options($context); - - // If we don't have SSL options, then we couldn't make the connection at - // all - if (empty($meta) || empty($meta['ssl']) || empty($meta['ssl']['peer_certificate'])) { - throw new Exception(rtrim($this->connect_error), 'ssl.connect_error'); - } - - $cert = openssl_x509_parse($meta['ssl']['peer_certificate']); - - return Ssl::verify_certificate($host, $cert); - } - - /** - * Self-test whether the transport can be used. - * - * The available capabilities to test for can be found in {@see \WpOrg\Requests\Capability}. - * - * @codeCoverageIgnore - * @param array $capabilities Optional. Associative array of capabilities to test against, i.e. `['' => true]`. - * @return bool Whether the transport can be used. - */ - public static function test($capabilities = []) { - if (!function_exists('fsockopen')) { - return false; - } - - // If needed, check that streams support SSL - if (isset($capabilities[Capability::SSL]) && $capabilities[Capability::SSL]) { - if (!extension_loaded('openssl') || !function_exists('openssl_x509_parse')) { - return false; - } - } - - return true; - } -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Utility/CaseInsensitiveDictionary.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Utility/CaseInsensitiveDictionary.php deleted file mode 100644 index 3c24ceb..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Utility/CaseInsensitiveDictionary.php +++ /dev/null @@ -1,127 +0,0 @@ - $value) { - $this->offsetSet($offset, $value); - } - } - - /** - * Check if the given item exists - * - * @param string $offset Item key - * @return boolean Does the item exist? - */ - #[ReturnTypeWillChange] - public function offsetExists($offset) { - if (is_string($offset)) { - $offset = strtolower($offset); - } - - return isset($this->data[$offset]); - } - - /** - * Get the value for the item - * - * @param string $offset Item key - * @return string|null Item value (null if the item key doesn't exist) - */ - #[ReturnTypeWillChange] - public function offsetGet($offset) { - if (is_string($offset)) { - $offset = strtolower($offset); - } - - if (!isset($this->data[$offset])) { - return null; - } - - return $this->data[$offset]; - } - - /** - * Set the given item - * - * @param string $offset Item name - * @param string $value Item value - * - * @throws \WpOrg\Requests\Exception On attempting to use dictionary as list (`invalidset`) - */ - #[ReturnTypeWillChange] - public function offsetSet($offset, $value) { - if ($offset === null) { - throw new Exception('Object is a dictionary, not a list', 'invalidset'); - } - - if (is_string($offset)) { - $offset = strtolower($offset); - } - - $this->data[$offset] = $value; - } - - /** - * Unset the given header - * - * @param string $offset - */ - #[ReturnTypeWillChange] - public function offsetUnset($offset) { - if (is_string($offset)) { - $offset = strtolower($offset); - } - - unset($this->data[$offset]); - } - - /** - * Get an iterator for the data - * - * @return \ArrayIterator - */ - #[ReturnTypeWillChange] - public function getIterator() { - return new ArrayIterator($this->data); - } - - /** - * Get the headers as an array - * - * @return array Header data - */ - public function getAll() { - return $this->data; - } -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Utility/FilteredIterator.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Utility/FilteredIterator.php deleted file mode 100644 index 973a5d2..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Utility/FilteredIterator.php +++ /dev/null @@ -1,82 +0,0 @@ -callback = $callback; - } - } - - /** - * @inheritdoc - * - * @phpcs:disable PHPCompatibility.FunctionNameRestrictions.NewMagicMethods.__unserializeFound - */ - #[ReturnTypeWillChange] - public function __unserialize($data) {} - // phpcs:enable - - public function __wakeup() { - unset($this->callback); - } - - /** - * Get the current item's value after filtering - * - * @return string - */ - #[ReturnTypeWillChange] - public function current() { - $value = parent::current(); - - if (is_callable($this->callback)) { - $value = call_user_func($this->callback, $value); - } - - return $value; - } - - /** - * @inheritdoc - */ - #[ReturnTypeWillChange] - public function unserialize($data) {} -} diff --git a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Utility/InputValidator.php b/assets/php/razorpay-php/libs/Requests-2.0.4/src/Utility/InputValidator.php deleted file mode 100644 index 7c10d61..0000000 --- a/assets/php/razorpay-php/libs/Requests-2.0.4/src/Utility/InputValidator.php +++ /dev/null @@ -1,109 +0,0 @@ -api = new Api($_SERVER['KEY_ID'], $_SERVER['KEY_SECRET']); - } - - public function testApiAccess() - { - $this->assertInstanceOf('Razorpay\Api\Api', $this->api); - } - - public function testRequests() - { - $this->assertTrue(class_exists('\Requests')); - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/phpunit.xml.dist b/assets/php/razorpay-php/phpunit.xml.dist deleted file mode 100644 index 697062a..0000000 --- a/assets/php/razorpay-php/phpunit.xml.dist +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - ./src - - - - - - - - - - - ./non_composer_tests/ - - - ./tests - - - diff --git a/assets/php/razorpay-php/release.txt b/assets/php/razorpay-php/release.txt deleted file mode 100644 index 69aa9f1..0000000 --- a/assets/php/razorpay-php/release.txt +++ /dev/null @@ -1,8 +0,0 @@ -src/ -libs/ -README.md -Razorpay.php -composer.lock -composer.json -doc.md -version.txt \ No newline at end of file diff --git a/assets/php/razorpay-php/src/Account.php b/assets/php/razorpay-php/src/Account.php deleted file mode 100644 index 11eb901..0000000 --- a/assets/php/razorpay-php/src/Account.php +++ /dev/null @@ -1,78 +0,0 @@ -getEntityUrl(); - - return $this->request('POST', $entityUrl, $attributes, 'v2'); - } - - public function fetch($id) - { - $entityUrl = $this->getEntityUrl(); - - return $this->request('GET', $entityUrl . $id, null, 'v2'); - } - - public function delete() - { - $entityUrl = $this->getEntityUrl(); - - return $this->request('DELETE', $entityUrl . $this->id, null, 'v2'); - } - - public function edit($attributes = array()) - { - $url = $this->getEntityUrl() . $this->id; - - return $this->request('PATCH', $url, $attributes, 'v2'); - } - - public function stakeholders() - { - $stakeholder = new Stakeholder(); - - $stakeholder['account_id'] = $this->id; - - return $stakeholder; - } - - public function products() - { - $product = new Product(); - - $product['account_id'] = $this->id; - - return $product; - } - - public function webhooks() - { - $webhook = new Webhook(); - - $webhook['account_id'] = $this->id; - - return $webhook; - } - - public function uploadAccountDoc($attributes = array()) - { - $attributes = $this->setFile($attributes); - - $entityUrl = $this->getEntityUrl() .$this->id .'/documents'; - - return $this->request('POST', $entityUrl, $attributes, 'v2'); - } - - public function fetchAccountDoc() - { - $entityUrl = $this->getEntityUrl() .$this->id .'/documents'; - - return $this->request('GET', $entityUrl, null, 'v2'); - } -} diff --git a/assets/php/razorpay-php/src/Addon.php b/assets/php/razorpay-php/src/Addon.php deleted file mode 100644 index c393b8d..0000000 --- a/assets/php/razorpay-php/src/Addon.php +++ /dev/null @@ -1,28 +0,0 @@ -getEntityUrl(); - - return $this->request('DELETE', $entityUrl . $this->id); - } - - public function fetchAll($attributes = array()) - { - $entityUrl = $this->getEntityUrl(); - - return $this->request('GET', $entityUrl , $attributes); - } -} diff --git a/assets/php/razorpay-php/src/Api.php b/assets/php/razorpay-php/src/Api.php deleted file mode 100644 index a970cd0..0000000 --- a/assets/php/razorpay-php/src/Api.php +++ /dev/null @@ -1,91 +0,0 @@ - $title, - 'version' => $version - ); - - array_push(self::$appsDetails, $app); - } - - public function getAppsDetails() - { - return self::$appsDetails; - } - - public function setBaseUrl($baseUrl) - { - self::$baseUrl = $baseUrl; - } - - /** - * @param string $name - * @return mixed - */ - public function __get($name) - { - $className = __NAMESPACE__.'\\'.ucwords($name); - - $entity = new $className(); - - return $entity; - } - - public static function getBaseUrl() - { - return self::$baseUrl; - } - - public static function getKey() - { - return self::$key; - } - - public static function getSecret() - { - return self::$secret; - } - - public static function getFullUrl($relativeUrl, $apiVersion = "v1") - { - return self::getBaseUrl() . "/". $apiVersion . "/". $relativeUrl; - } -} diff --git a/assets/php/razorpay-php/src/ArrayableInterface.php b/assets/php/razorpay-php/src/ArrayableInterface.php deleted file mode 100644 index 255dc34..0000000 --- a/assets/php/razorpay-php/src/ArrayableInterface.php +++ /dev/null @@ -1,13 +0,0 @@ -getEntityUrl() . '/fingerprints'; - - return $this->request('POST', $entityUrl, $attributes); - } -} diff --git a/assets/php/razorpay-php/src/Collection.php b/assets/php/razorpay-php/src/Collection.php deleted file mode 100644 index 090bccf..0000000 --- a/assets/php/razorpay-php/src/Collection.php +++ /dev/null @@ -1,20 +0,0 @@ -attributes['count'])) - { - return $this->attributes['count']; - } - - return $count; - } -} diff --git a/assets/php/razorpay-php/src/Customer.php b/assets/php/razorpay-php/src/Customer.php deleted file mode 100644 index 0173d83..0000000 --- a/assets/php/razorpay-php/src/Customer.php +++ /dev/null @@ -1,68 +0,0 @@ -getEntityUrl().$this->id; - - return $this->request('PUT', $entityUrl, $attributes); - } - - public function tokens() - { - $token = new Token(); - - $token['customer_id'] = $this->id; - - return $token; - } - - public function addBankAccount($attributes = array()) - { - $entityUrl = $this->getEntityUrl().$this->id. '/bank_account'; - - return $this->request('POST', $entityUrl, $attributes); - } - - public function deleteBankAccount($bank_id) - { - $entityUrl = $this->getEntityUrl() . $this->id. '/bank_account/'. $bank_id; - - return $this->request('DELETE', $entityUrl); - } - - public function requestEligibilityCheck($attributes = array()) - { - $entityUrl = $this->getEntityUrl(). '/eligibility'; - - return $this->request('POST', $entityUrl, $attributes); - } - - public function fetchEligibility($id) - { - $entityUrl = $this->getEntityUrl(). '/eligibility/'. $id; - - return $this->request('GET', $entityUrl); - } -} diff --git a/assets/php/razorpay-php/src/Dispute.php b/assets/php/razorpay-php/src/Dispute.php deleted file mode 100644 index 25e0e1c..0000000 --- a/assets/php/razorpay-php/src/Dispute.php +++ /dev/null @@ -1,35 +0,0 @@ -getEntityUrl(). $this->id. '/accept'; - - return $this->request('POST', $entityUrl); - } - - public function contest($attributes = array()) - { - $entityUrl = $this->getEntityUrl(). $this->id. '/contest'; - - return $this->request('PATCH', $entityUrl, $attributes); - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/src/Document.php b/assets/php/razorpay-php/src/Document.php deleted file mode 100644 index bb01d52..0000000 --- a/assets/php/razorpay-php/src/Document.php +++ /dev/null @@ -1,20 +0,0 @@ -setFile($attributes); - - return parent::create($attributes); - } - - public function fetch($id) - { - return parent::fetch($id); - } - -} diff --git a/assets/php/razorpay-php/src/Entity.php b/assets/php/razorpay-php/src/Entity.php deleted file mode 100644 index 2424ebc..0000000 --- a/assets/php/razorpay-php/src/Entity.php +++ /dev/null @@ -1,246 +0,0 @@ -getEntityUrl(); - - return $this->request('POST', $entityUrl, $attributes); - } - - protected function fetch($id) - { - $entityUrl = $this->getEntityUrl(); - - $this->validateIdPresence($id); - - $relativeUrl = $entityUrl . $id; - - return $this->request('GET', $relativeUrl); - } - - protected function validateIdPresence($id) - { - if ($id !== null) - { - return; - } - - $path = explode('\\', get_class($this)); - $class = strtolower(array_pop($path)); - - $message = 'The ' . $class . ' id provided is null'; - - $code = Errors\ErrorCode::BAD_REQUEST_ERROR; - - throw new Errors\BadRequestError($message, $code, 500); - } - - protected function all($options = array()) - { - $entityUrl = $this->getEntityUrl(); - - return $this->request('GET', $entityUrl, $options); - } - - protected function getEntityUrl() - { - $fullClassName = get_class($this); - $pos = strrpos($fullClassName, '\\'); - $className = substr($fullClassName, $pos + 1); - $className = $this->snakeCase($className); - return $className.'s/'; - } - - protected function snakeCase($input) - { - $delimiter = '_'; - $output = preg_replace('/\s+/u', '', ucwords($input)); - $output = preg_replace('/(.)(?=[A-Z])/u', '$1'.$delimiter, $output); - $output = strtolower($output); - return $output; - } - - /** - * Makes a HTTP request using Request class and assuming the API returns - * formatted entity or collection result, wraps the returned JSON as entity - * and returns. - * - * @param string $method - * @param string $relativeUrl - * @param array $data - * @param array $additionHeader - * @param string $apiVersion - * - * @return Entity - */ - protected function request($method, $relativeUrl, $data = null, $apiVersion = "v1") - { - $request = new Request(); - - $response = $request->request($method, $relativeUrl, $data, $apiVersion); - - if ((isset($response['entity'])) and ($response['entity'] == $this->getEntity())) - { - $this->fill($response); - - return $this; - } - else - { - return static::buildEntity($response); - } - } - - /** - * Given the JSON response of an API call, wraps it to corresponding entity - * class or a collection and returns the same. - * - * @param array $data - * - * @return Entity - */ - protected static function buildEntity($data) - { - $entities = static::getDefinedEntitiesArray(); - - if (isset($data['entity'])) - { - if (in_array($data['entity'], $entities)) - { - $class = static::getEntityClass($data['entity']); - $entity = new $class; - } - else - { - $entity = new static; - } - } - else - { - $entity = new static; - } - - $entity->fill($data); - - return $entity; - } - - protected static function getDefinedEntitiesArray() - { - return array( - 'collection', - 'payment', - 'refund', - 'order', - 'customer', - 'token', - 'settlement'); - } - - protected static function getEntityClass($name) - { - return __NAMESPACE__.'\\'.ucfirst($name); - } - - protected function getEntity() - { - $class = get_class($this); - $pos = strrpos($class, '\\'); - $entity = strtolower(substr($class, $pos)); - - return $entity; - } - - public function fill($data) - { - $attributes = array(); - - if(is_array($data)) - { - foreach ($data as $key => $value) - { - if (is_array($value)) - { - if (static::isAssocArray($value) === false) - { - $collection = array(); - foreach ($value as $v) - { - if (is_array($v)) - { - $entity = static::buildEntity($v); - array_push($collection, $entity); - } - else - { - array_push($collection, $v); - } - } - $value = $collection; - } - else - { - $value = static::buildEntity($value); - } - } - - $attributes[$key] = $value; - } - } - $this->attributes = $attributes; - } - - public static function isAssocArray($arr) - { - return array_keys($arr) !== range(0, count($arr) - 1); - } - - public function toArray() - { - return $this->convertToArray($this->attributes); - } - - protected function convertToArray($attributes) - { - $array = $attributes; - - foreach ($attributes as $key => $value) - { - if (is_object($value)) - { - $array[$key] = $value->toArray(); - } - else if (is_array($value) and self::isAssocArray($value) == false) - { - $array[$key] = $this->convertToArray($value); - } - } - - return $array; - } - - public function setFile($attributes) - { - if(isset($attributes['file'])){ - $attributes['file'] = new \CURLFILE( - $attributes['file'], - mime_content_type($attributes['file']) - ); - } - - return $attributes; - } -} diff --git a/assets/php/razorpay-php/src/Errors/BadRequestError.php b/assets/php/razorpay-php/src/Errors/BadRequestError.php deleted file mode 100644 index e017e33..0000000 --- a/assets/php/razorpay-php/src/Errors/BadRequestError.php +++ /dev/null @@ -1,20 +0,0 @@ -field = $field; - } - - public function getField() - { - return $this->field; - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/src/Errors/Error.php b/assets/php/razorpay-php/src/Errors/Error.php deleted file mode 100644 index eeaae7d..0000000 --- a/assets/php/razorpay-php/src/Errors/Error.php +++ /dev/null @@ -1,24 +0,0 @@ -code = $code; - - $this->message = $message; - - $this->httpStatusCode = $httpStatusCode; - } - - public function getHttpStatusCode() - { - return $this->httpStatusCode; - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/src/Errors/ErrorCode.php b/assets/php/razorpay-php/src/Errors/ErrorCode.php deleted file mode 100644 index 5e65380..0000000 --- a/assets/php/razorpay-php/src/Errors/ErrorCode.php +++ /dev/null @@ -1,17 +0,0 @@ -getEntityUrl(). 'list'; - - return $this->request('GET', $relativeUrl, $options); - } -} diff --git a/assets/php/razorpay-php/src/Invoice.php b/assets/php/razorpay-php/src/Invoice.php deleted file mode 100644 index 23551c8..0000000 --- a/assets/php/razorpay-php/src/Invoice.php +++ /dev/null @@ -1,115 +0,0 @@ -getEntityUrl() . $this->id . '/cancel'; - - return $this->request(Requests::POST, $url); - } - - /** - * Send/re-send notification for invoice by given medium - * - * @param $medium - sms|email - * - * @return array - */ - public function notifyBy($medium) - { - $url = $this->getEntityUrl() . $this->id . '/notify_by/' . $medium; - $r = new Request(); - - return $r->request(Requests::POST, $url); - } - - /** - * Patches given invoice with new attributes - * - * @param array $attributes - * - * @return Invoice - */ - public function edit($attributes = array()) - { - $url = $this->getEntityUrl() . $this->id; - - return $this->request(Requests::PATCH, $url, $attributes); - } - - /** - * Issues drafted invoice - * - * @return Invoice - */ - public function issue() - { - $url = $this->getEntityUrl() . $this->id . '/issue'; - - return $this->request(Requests::POST, $url); - } - - /** - * Deletes drafted invoice - * - * @return Invoice - */ - public function delete() - { - $url = $this->getEntityUrl() . $this->id; - $r = new Request(); - - return $r->request(Requests::DELETE, $url); - } -} diff --git a/assets/php/razorpay-php/src/Item.php b/assets/php/razorpay-php/src/Item.php deleted file mode 100644 index 67beae0..0000000 --- a/assets/php/razorpay-php/src/Item.php +++ /dev/null @@ -1,36 +0,0 @@ -getEntityUrl() . $this->id; - - return $this->request('PATCH', $url, $attributes); - } - - public function all($options = array()) - { - return parent::all($options); - } - - public function delete() - { - $url = $this->getEntityUrl() . $this->id; - - return $this->request('DELETE', $url); - } -} diff --git a/assets/php/razorpay-php/src/Order.php b/assets/php/razorpay-php/src/Order.php deleted file mode 100644 index 50404f1..0000000 --- a/assets/php/razorpay-php/src/Order.php +++ /dev/null @@ -1,65 +0,0 @@ -getEntityUrl() . $this->id; - - return $this->request('PATCH', $url, $attributes); - } - - public function payments() - { - $relativeUrl = $this->getEntityUrl().$this->id.'/payments'; - - return $this->request('GET', $relativeUrl); - } - - public function transfers($options = array()) - { - $relativeUrl = $this->getEntityUrl().$this->id; - - return $this->request('GET', $relativeUrl, $options); - } - - public function viewRtoReview() - { - $relativeUrl = $this->getEntityUrl(). $this->id .'/rto_review'; - - return $this->request('POST', $relativeUrl); - } - - public function editFulfillment($attributes = array()) - { - $relativeUrl = $this->getEntityUrl(). $this->id .'/fulfillment'; - - return $this->request('POST', $relativeUrl, $attributes); - } -} diff --git a/assets/php/razorpay-php/src/Payment.php b/assets/php/razorpay-php/src/Payment.php deleted file mode 100644 index 38bcd46..0000000 --- a/assets/php/razorpay-php/src/Payment.php +++ /dev/null @@ -1,233 +0,0 @@ -getEntityUrl() . $this->id; - - return $this->request(Requests::PATCH, $url, $attributes); - } - - /** - * @param $id Payment id - */ - public function refund($attributes = array()) - { - $refund = new Refund; - - $attributes = array_merge($attributes, array('payment_id' => $this->id)); - - return $refund->create($attributes); - } - - /** - * @param $id Payment id - */ - public function capture($attributes = array()) - { - $relativeUrl = $this->getEntityUrl() . $this->id . '/capture'; - - return $this->request('POST', $relativeUrl, $attributes); - } - - public function transfer($attributes = array()) - { - $relativeUrl = $this->getEntityUrl() . $this->id . '/transfers'; - - return $this->request('POST', $relativeUrl, $attributes); - } - - public function refunds() - { - $refund = new Refund; - - $options = array('payment_id' => $this->id); - - return $refund->all($options); - } - - public function transfers() - { - $transfer = new Transfer(); - - $transfer->payment_id = $this->id; - - return $transfer->all(); - } - - public function bankTransfer() - { - $relativeUrl = $this->getEntityUrl() . $this->id . '/bank_transfer'; - - return $this->request('GET', $relativeUrl); - } - - public function fetchMultipleRefund($options = array()) - { - $relativeUrl = $this->getEntityUrl() . $this->id . '/refunds'; - - return $this->request('GET', $relativeUrl, $options); - } - - public function fetchRefund($refundId) - { - $relativeUrl = $this->getEntityUrl() . $this->id . '/refunds/'.$refundId; - - return $this->request('GET', $relativeUrl); - } - - public function createRecurring($attributes = array()) - { - $relativeUrl = $this->getEntityUrl() . 'create/recurring'; - - return $this->request('POST', $relativeUrl, $attributes); - } - /** - * fetch Card Details - * - * @param id $id - * - * @return card - */ - public function fetchCardDetails() - { - $relativeUrl = $this->getEntityUrl() . $this->id . '/card'; - - return $this->request('GET', $relativeUrl); - } - /** - * fetchPaymentDowntime - * - */ - public function fetchPaymentDowntime() - { - $relativeUrl = $this->getEntityUrl() . 'downtimes'; - - return $this->request('GET', $relativeUrl); - } - /** - * fetch Payment Downtime Id - * - * @param id $id - * - * @return card - */ - public function fetchPaymentDowntimeById($id) - { - $relativeUrl = $this->getEntityUrl() . 'downtimes' . $id; - - return $this->request('GET', $relativeUrl); - } - /** - * create Payment Json - * - * @param array $attributes - */ - public function createPaymentJson($attributes = array()) - { - $relativeUrl = $this->getEntityUrl() . 'create/json'; - - return $this->request('POST', $relativeUrl, $attributes); - } - /** - * Submit otp - * - * @param id $id - * - * @param array $attributes - */ - public function otpSubmit($attributes = array()) - { - $relativeUrl = $this->getEntityUrl(). $this->id . '/otp/submit'; - - return $this->request('POST', $relativeUrl, $attributes); - } - - /** - * Generate otp - * - * @param id $id - * - * @param array $attributes - */ - public function otpGenerate($id) - { - $relativeUrl = $this->getEntityUrl(). $id . '/otp_generate'; - - return $this->request('POST', $relativeUrl); - } - - /** - * Resend otp - * - * @param id $id - * - * @param array $attributes - */ - public function otpResend() - { - $relativeUrl = $this->getEntityUrl(). $this->id . '/otp/resend'; - - return $this->request('POST', $relativeUrl); - } - - public function createUpi($attributes = array()) - { - $relativeUrl = $this->getEntityUrl() . 'create/upi'; - - return $this->request('POST', $relativeUrl, $attributes); - } - - public function validateVpa($attributes = array()) - { - $relativeUrl = $this->getEntityUrl() . 'validate/vpa'; - - return $this->request('POST', $relativeUrl, $attributes); - } - - public function fetchPaymentMethods() - { - $relativeUrl = 'methods'; - - return $this->request('GET', $relativeUrl); - } - - public function expandedDetails($options = array()) - { - $relativeUrl = $this->getEntityUrl(). $this->id; - - return $this->request('GET', $relativeUrl, $options); - } -} diff --git a/assets/php/razorpay-php/src/PaymentLink.php b/assets/php/razorpay-php/src/PaymentLink.php deleted file mode 100644 index 6b43d2f..0000000 --- a/assets/php/razorpay-php/src/PaymentLink.php +++ /dev/null @@ -1,88 +0,0 @@ -getEntityUrl() . $this->id . '/cancel'; - - return $this->request(Requests::POST, $url); - } - - public function edit($attributes = array()) - { - $relativeUrl = $this->getEntityUrl() . $this->id; - - $attributes = json_encode($attributes); - - Request::addHeader('Content-Type', 'application/json'); - - return $this->request('PATCH', $relativeUrl, $attributes); - } - - /** - * Send/re-send notification with short url by given medium - * - * @param $medium - sms|email - * - * @return array - */ - public function notifyBy($medium) - { - $url = $this->getEntityUrl() . $this->id . '/notify_by/' . $medium; - $r = new Request(); - - return $r->request(Requests::POST, $url); - } - -} diff --git a/assets/php/razorpay-php/src/PaymentPage.php b/assets/php/razorpay-php/src/PaymentPage.php deleted file mode 100644 index e670ff2..0000000 --- a/assets/php/razorpay-php/src/PaymentPage.php +++ /dev/null @@ -1,31 +0,0 @@ -getEntityUrl() . $id . '/activate'; - - return $this->request('PATCH', $relativeUrl); - } - - public function deactivate($id) - { - $relativeUrl = $this->getEntityUrl() . $id . '/deactivate'; - - return $this->request('PATCH', $relativeUrl); - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/src/Plan.php b/assets/php/razorpay-php/src/Plan.php deleted file mode 100644 index 69cb2e1..0000000 --- a/assets/php/razorpay-php/src/Plan.php +++ /dev/null @@ -1,21 +0,0 @@ -account_id .'/'.$this->getEntityUrl(); - - return $this->request('POST', $url, $attributes, 'v2'); - } - - public function fetch($id) - { - $entityUrl = 'accounts/'.$this->account_id .'/'.$this->getEntityUrl().'/'.$id; - - return $this->request('GET', $entityUrl, null, 'v2'); - } - - public function edit($id, $attributes = array()) - { - $entityUrl = 'accounts/'.$this->account_id .'/'.$this->getEntityUrl().'/'.$id; - - return $this->request('PATCH', $entityUrl, $attributes, 'v2'); - } - - public function fetchTnc($product_name) - { - $entityUrl = $this->getEntityUrl().'/'.$product_name.'/tnc'; - - return $this->request('GET', $entityUrl,null , 'v2'); - } -} diff --git a/assets/php/razorpay-php/src/QrCode.php b/assets/php/razorpay-php/src/QrCode.php deleted file mode 100644 index 6860d43..0000000 --- a/assets/php/razorpay-php/src/QrCode.php +++ /dev/null @@ -1,66 +0,0 @@ -getEntityUrl() ; - - return $this->request('POST', $relativeUrl, $attributes); - } - - /** - * Fetch QR code details based QR id - * @param $id - * @return Entity|QrCode - */ - public function fetch($id) - { - $relativeUrl = "payments/". $this->getEntityUrl(). $id ; - - return $this->request('GET', $relativeUrl); - } - - /** - * Close the QR code based on id - * @return Entity|QrCode - */ - public function close() - { - $relativeUrl = "payments/{$this->getEntityUrl()}{$this->id}/close" ; - - return $this->request('POST', $relativeUrl); - } - - /** - * Fetch all QR code details - * @param array $options - * @return Entity|QrCode - */ - public function all($options = array()) - { - $relativeUrl = "payments/". $this->getEntityUrl(); - - return $this->request('GET', $relativeUrl, $options); - } - - /** - * Fetch payments made to a QR Code based on QR id - * @param array $options - * @return Entity|QrCode - */ - public function fetchAllPayments($options = array()) - { - $relativeUrl = "payments/{$this->getEntityUrl()}{$this->id}/payments" ; - - return $this->request('GET', $relativeUrl, $options); - } - -} diff --git a/assets/php/razorpay-php/src/Refund.php b/assets/php/razorpay-php/src/Refund.php deleted file mode 100644 index c59c284..0000000 --- a/assets/php/razorpay-php/src/Refund.php +++ /dev/null @@ -1,38 +0,0 @@ -getEntityUrl() . $this->id; - - return $this->request('PATCH', $url, $attributes); - } - - public function refund($options = array()) - { - $relativeUrl = $this->getEntityUrl() . $this->id . '/refund'; - - return $this->request('POST', $relativeUrl, $options); - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/src/Request.php b/assets/php/razorpay-php/src/Request.php deleted file mode 100644 index 2ccab02..0000000 --- a/assets/php/razorpay-php/src/Request.php +++ /dev/null @@ -1,230 +0,0 @@ - 1 - ); - - /** - * Fires a request to the API - * @param string $method HTTP Verb - * @param string $url Relative URL for the request - * @param array $data Data to be passed along the request - * @param array $additionHeader headers to be passed along the request - * @param string $apiVersion version to be passed along the request - * @return array Response data in array format. Not meant - * to be used directly - */ - public function request($method, $url, $data = array(), $apiVersion = "v1") - { - $url = Api::getFullUrl($url, $apiVersion); - - $hooks = new Requests_Hooks(); - - $hooks->register('curl.before_send', array($this, 'setCurlSslOpts')); - - $options = array( - 'auth' => array(Api::getKey(), Api::getSecret()), - 'hook' => $hooks, - 'timeout' => 60 - ); - - $headers = $this->getRequestHeaders(); - - $response = Requests::request($url, $headers, $data, $method, $options); - $this->checkErrors($response); - - return json_decode($response->body, true); - } - - public function setCurlSslOpts($curl) - { - curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_1); - } - - /** - * Adds an additional header to all API requests - * @param string $key Header key - * @param string $value Header value - * @return null - */ - public static function addHeader($key, $value) - { - self::$headers[$key] = $value; - } - - /** - * Returns all headers attached so far - * @return array headers - */ - public static function getHeaders() - { - return self::$headers; - } - - /** - * Process the statusCode of the response and throw exception if necessary - * @param Object $response The response object returned by Requests - */ - protected function checkErrors($response) - { - $body = $response->body; - $httpStatusCode = $response->status_code; - - try - { - $body = json_decode($response->body, true); - } - catch (Exception $e) - { - $this->throwServerError($body, $httpStatusCode); - } - - if (($httpStatusCode < 200) or - ($httpStatusCode >= 300)) - { - $this->processError($body, $httpStatusCode, $response); - } - } - - protected function processError($body, $httpStatusCode, $response) - { - $this->verifyErrorFormat($body, $httpStatusCode); - - $code = $body['error']['code']; - - // We are basically converting the error code to the Error class name - // Replace underscores with space - // Lowercase the words, capitalize first letter of each word - // Remove spaces - $error = str_replace('_', ' ', $code); - $error = ucwords(strtolower($error)); - $error = str_replace(' ', '', $error); - - // Add namespace - // This is the fully qualified error class name - $error = __NAMESPACE__.'\Errors\\' . $error; - - $description = $body['error']['description']; - - $field = null; - if (isset($body['error']['field'])) - { - $field = $body['error']['field']; - - // Create an instance of the error and then throw it - throw new $error($description, $code, $httpStatusCode, $field); - } - - throw new $error($description, $code, $httpStatusCode); - } - - protected function throwServerError($body, $httpStatusCode) - { - $description = "The server did not send back a well-formed response. " . PHP_EOL . - "Server Response: $body"; - - throw new Errors\ServerError( - $description, - ErrorCode::SERVER_ERROR, - $httpStatusCode); - } - - protected function getRequestHeaders() - { - $uaHeader = array( - 'User-Agent' => $this->constructUa() - - ); - - $headers = array_merge(self::$headers, $uaHeader); - - return $headers; - } - - protected function constructUa() - { - $ua = 'Razorpay/v1 PHPSDK/' . Api::VERSION . ' PHP/' . phpversion(); - - $ua .= ' ' . $this->getAppDetailsUa(); - - return $ua; - } - - protected function getAppDetailsUa() - { - $appsDetails = Api::$appsDetails; - - $appsDetailsUa = ''; - - foreach ($appsDetails as $app) - { - if ((isset($app['title'])) and (is_string($app['title']))) - { - $appUa = $app['title']; - - if ((isset($app['version'])) and (is_scalar($app['version']))) - { - $appUa .= '/' . $app['version']; - } - - $appsDetailsUa .= $appUa . ' '; - } - } - - return $appsDetailsUa; - } - - /** - * Verifies error is in proper format. If not then - * throws ServerErrorException - * - * @param array $body - * @param int $httpStatusCode - * @return void - */ - protected function verifyErrorFormat($body, $httpStatusCode) - { - if (is_array($body) === false) - { - $this->throwServerError($body, $httpStatusCode); - } - - if ((isset($body['error']) === false) or - (isset($body['error']['code']) === false)) - { - $this->throwServerError($body, $httpStatusCode); - } - - $code = $body['error']['code']; - - if (Errors\ErrorCode::exists($code) === false) - { - $this->throwServerError($body, $httpStatusCode); - } - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/src/Resource.php b/assets/php/razorpay-php/src/Resource.php deleted file mode 100644 index 92ab95b..0000000 --- a/assets/php/razorpay-php/src/Resource.php +++ /dev/null @@ -1,62 +0,0 @@ -attributes); - } - - - public function offsetExists($offset): bool - { - return (isset($this->attributes[$offset])); - } - - - public function offsetSet($offset, $value): void - { - $this->attributes[$offset] = $value; - } - - #[\ReturnTypeWillChange] - public function offsetGet($offset) - { - return $this->attributes[$offset]; - } - - - public function offsetUnset($offset): void - { - unset($this->attributes[$offset]); - } - - public function __get($key) - { - return $this->attributes[$key]; - } - - public function __set($key, $value) - { - return $this->attributes[$key] = $value; - } - - public function __isset($key) - { - return (isset($this->attributes[$key])); - } - - public function __unset($key) - { - unset($this->attributes[$key]); - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/src/Settlement.php b/assets/php/razorpay-php/src/Settlement.php deleted file mode 100644 index 1715dac..0000000 --- a/assets/php/razorpay-php/src/Settlement.php +++ /dev/null @@ -1,88 +0,0 @@ -getEntityUrl() ."ondemand" ; - - return $this->request('POST', $relativeUrl, $attributes); - } - - /** - * Fetch single settlement entity - * @param string $id - * @return Settlement - */ - public function fetch($id) - { - return parent::fetch($id); - } - - /** - * Get all settlements according to options - * @param array $options - * @return Collection - */ - public function all($options = array()) - { - return parent::all($options); - } - - /** - * Get combined report of settlements - * @param array $options - * @return array - */ - public function reports($options = array()) - { - $relativeUrl = $this->getEntityUrl() . 'report/combined'; - - return $this->request('GET', $relativeUrl, $options); - } - - /** - * Get Settlement Recon - * @param array $options - * @return array - */ - public function settlementRecon($options = array()) - { - $relativeUrl = $this->getEntityUrl() . 'recon/combined'; - - return $this->request('GET', $relativeUrl, $options); - } - /** - * fetch Ondemand Settlement by Id - * @param string $id - * @param array $options - * @return array - */ - public function fetchOndemandSettlementById($id, $options = array()) - { - $relativeUrl = $this->getEntityUrl(). "ondemand/" . $id; - - return $this->request('GET', $relativeUrl, $options); - } - /** - * fetch all Ondemand Settlement - * @return array - */ - public function fetchAllOndemandSettlement($options = array()) - { - $relativeUrl = $this->getEntityUrl(). "ondemand/"; - - return $this->request('GET', $relativeUrl, $options); - } -} - diff --git a/assets/php/razorpay-php/src/Stakeholder.php b/assets/php/razorpay-php/src/Stakeholder.php deleted file mode 100644 index 3acc115..0000000 --- a/assets/php/razorpay-php/src/Stakeholder.php +++ /dev/null @@ -1,50 +0,0 @@ -account_id .'/'.$this->getEntityUrl(); - - return $this->request('POST', $url, $attributes, 'v2'); - } - - public function fetch($id) - { - $entityUrl = 'accounts/'.$this->account_id .'/'.$this->getEntityUrl().'/'.$id; - - return $this->request('GET', $entityUrl, null, 'v2'); - } - - public function all($options = array()) - { - $relativeUrl = 'accounts/'.$this->account_id.'/'.$this->getEntityUrl(); - - return $this->request('GET', $relativeUrl, $options, 'v2'); - } - - public function edit($id, $attributes = array()) - { - $entityUrl = 'accounts/'.$this->account_id .'/'.$this->getEntityUrl().'/'.$id; - - return $this->request('PATCH', $entityUrl, $attributes, 'v2'); - } - - public function uploadStakeholderDoc($id, $attributes = array()) - { - $attributes = $this->setFile($attributes); - - $entityUrl = 'accounts/'.$this->account_id .'/'.$this->getEntityUrl().'/'.$id.'/documents'; - - return $this->request('POST', $entityUrl, $attributes, 'v2'); - } - - public function fetchStakeholderDoc($id) - { - $entityUrl = 'accounts/'.$this->account_id .'/'.$this->getEntityUrl().'/'.$id.'/documents'; - - return $this->request('GET', $entityUrl, null, 'v2'); - } -} diff --git a/assets/php/razorpay-php/src/Subscription.php b/assets/php/razorpay-php/src/Subscription.php deleted file mode 100644 index db13135..0000000 --- a/assets/php/razorpay-php/src/Subscription.php +++ /dev/null @@ -1,90 +0,0 @@ -getEntityUrl() . $this->id . '/cancel'; - - return $this->request('POST', $relativeUrl, $attributes); - } - - public function createAddon($attributes = array()) - { - $relativeUrl = $this->getEntityUrl() . $this->id . '/addons'; - - return $this->request('POST', $relativeUrl, $attributes); - } - - /** - * Create a Registration Link - * @param array $attributes - * @return array - */ - public function createSubscriptionRegistration($attributes = array()) - { - $relativeUrl = 'subscription_registration/auth_links'; - - return $this->request('POST', $relativeUrl, $attributes); - } - - public function update($attributes = array()) - { - $relativeUrl = $this->getEntityUrl() . $this->id; - - return $this->request('PATCH', $relativeUrl, $attributes); - } - - public function pendingUpdate() - { - $relativeUrl = $this->getEntityUrl() . $this->id . '/retrieve_scheduled_changes'; - - return $this->request('GET', $relativeUrl, null); - } - - public function cancelScheduledChanges() - { - $relativeUrl = $this->getEntityUrl() . $this->id . '/cancel_scheduled_changes'; - - return $this->request('POST', $relativeUrl, null); - } - - public function pause($attributes = array()) - { - $relativeUrl = $this->getEntityUrl() . $this->id.'/pause'; - - return $this->request('POST', $relativeUrl, $attributes); - } - - public function resume($attributes = array()) - { - $relativeUrl = $this->getEntityUrl() . $this->id.'/resume'; - - return $this->request('POST', $relativeUrl, $attributes); - } - - public function deleteOffer($offerId) - { - $relativeUrl = $this->getEntityUrl() . $this->id.'/'.$offerId; - - return $this->request('DELETE', $relativeUrl); - } - -} diff --git a/assets/php/razorpay-php/src/Token.php b/assets/php/razorpay-php/src/Token.php deleted file mode 100644 index 8f55874..0000000 --- a/assets/php/razorpay-php/src/Token.php +++ /dev/null @@ -1,59 +0,0 @@ -getEntityUrl(); - - return $this->request('POST', $url, $attributes); - } - - /** - * @param $id Token id - */ - public function fetch($id) - { - $relativeUrl = 'customers/'.$this->customer_id.'/'.$this->getEntityUrl().$id; - - return $this->request('GET', $relativeUrl); - } - - public function fetchCardPropertiesByToken($attributes = array()) - { - $relativeUrl = $this->getEntityUrl(). '/fetch'; - - return $this->request('POST', $relativeUrl, $attributes); - } - - public function all($options = array()) - { - $relativeUrl = 'customers/'.$this->customer_id.'/'.$this->getEntityUrl(); - - return $this->request('GET', $relativeUrl, $options); - } - - public function delete($id) - { - $relativeUrl = 'customers/'.$this->customer_id.'/'.$this->getEntityUrl().$id; - - return $this->request('DELETE', $relativeUrl); - } - - public function deleteToken($attributes = array()) - { - $relativeUrl = $this->getEntityUrl(). '/delete'; - - return $this->request('POST', $relativeUrl, $attributes); - } - - public function processPaymentOnAlternatePAorPG($attributes = array()) - { - $relativeUrl = $this->getEntityUrl().'service_provider_tokens/token_transactional_data'; - - return $this->request('POST', $relativeUrl, $attributes); - } -} diff --git a/assets/php/razorpay-php/src/Transfer.php b/assets/php/razorpay-php/src/Transfer.php deleted file mode 100644 index 150a1b2..0000000 --- a/assets/php/razorpay-php/src/Transfer.php +++ /dev/null @@ -1,62 +0,0 @@ -payment_id) === true) - { - $relativeUrl = 'payments/' . $this->payment_id. '/transfers'; - - return $this->request('GET', $relativeUrl, $options); - } - - return parent::all($options); - } - - /** - * Create a direct transfer from merchant's account to - * any of the linked accounts, without linking it to a - * payment - */ - public function create($attributes = array()) - { - return parent::create($attributes); - } - - public function edit($attributes = null) - { - $entityUrl = $this->getEntityUrl() . $this->id; - - return $this->request('PATCH', $entityUrl, $attributes); - } - - /** - * Create a reversal for a transfer - */ - public function reverse($attributes = array()) - { - $relativeUrl = $this->getEntityUrl() . $this->id . '/reversals'; - - return $this->request('POST', $relativeUrl, $attributes); - } - - /** - * Fetches all reversals - */ - public function reversals($attributes = array()) - { - $relativeUrl = $this->getEntityUrl() . $this->id . '/reversals'; - - return $this->request('GET', $relativeUrl, $attributes); - } -} diff --git a/assets/php/razorpay-php/src/Utility.php b/assets/php/razorpay-php/src/Utility.php deleted file mode 100644 index 867e959..0000000 --- a/assets/php/razorpay-php/src/Utility.php +++ /dev/null @@ -1,91 +0,0 @@ -hashEquals($expectedSignature, $actualSignature); - } - - if ($verified === false) - { - throw new Errors\SignatureVerificationError( - 'Invalid signature passed'); - } - } - - private function hashEquals($expectedSignature, $actualSignature) - { - if (strlen($expectedSignature) === strlen($actualSignature)) - { - $res = $expectedSignature ^ $actualSignature; - $return = 0; - - for ($i = strlen($res) - 1; $i >= 0; $i--) - { - $return |= ord($res[$i]); - } - - return ($return === 0); - } - - return false; - } -} diff --git a/assets/php/razorpay-php/src/VirtualAccount.php b/assets/php/razorpay-php/src/VirtualAccount.php deleted file mode 100644 index ab64d84..0000000 --- a/assets/php/razorpay-php/src/VirtualAccount.php +++ /dev/null @@ -1,57 +0,0 @@ -getEntityUrl() . $this->id . '/close'; - - - return $this->request('POST', $relativeUrl); - } - - public function payments($options = array()) - { - $relativeUrl = $this->getEntityUrl() . $this->id . '/payments'; - - return $this->request('GET', $relativeUrl, $options); - } - - public function addReceiver($attributes = array()) - { - $relativeUrl = $this->getEntityUrl() . $this->id . '/receivers'; - - return $this->request('POST', $relativeUrl, $attributes); - } - - public function addAllowedPayer($attributes = array()) - { - $relativeUrl = $this->getEntityUrl() . $this->id . '/allowed_payers'; - - return $this->request('POST', $relativeUrl, $attributes); - } - - public function deleteAllowedPayer($allowedPlayerId) - { - $relativeUrl = $this->getEntityUrl() . $this->id . '/allowed_payers/'.$allowedPlayerId; - - return $this->request('DELETE', $relativeUrl); - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/src/Webhook.php b/assets/php/razorpay-php/src/Webhook.php deleted file mode 100644 index a0e9d9a..0000000 --- a/assets/php/razorpay-php/src/Webhook.php +++ /dev/null @@ -1,70 +0,0 @@ -account_id)) - { - $url = 'accounts/'. $this->account_id . '/' .$this->getEntityUrl(); - - return $this->request('POST', $url, $attributes, 'v2'); - } - return parent::create($attributes); - } - - public function fetch($id) - { - if(isset($this->account_id)) - { - $url = 'accounts/'. $this->account_id . '/' .$this->getEntityUrl() . $id; - - return $this->request('GET', $url, null, 'v2'); - } - return parent::fetch($id); - } - - public function all($options = array()) - { - if(isset($this->account_id)) - { - $url = 'accounts/'. $this->account_id . '/' .$this->getEntityUrl(); - - return $this->request('GET', $url, $options, 'v2'); - } - return parent::all($options); - } - - /** - * Patches given webhook with new attributes - * - * @param array $attributes - * @param string $id - * @return Webhook - */ - public function edit($attributes, $id) - { - $url = $this->getEntityUrl() . $id; - - if(isset($this->account_id)) - { - $url = 'accounts/'.$this->account_id .'/'. $url; - - return $this->request('PATCH', $url, $attributes, 'v2'); - } - return $this->request(Requests::PUT, $url, $attributes); - } - - public function delete($id) - { - $url = 'accounts/'. $this->account_id . '/' .$this->getEntityUrl(). $id; - - return $this->request('DELETE', $url, null, 'v2'); - } -} diff --git a/assets/php/razorpay-php/tests/AddonTest.php b/assets/php/razorpay-php/tests/AddonTest.php deleted file mode 100644 index 428da43..0000000 --- a/assets/php/razorpay-php/tests/AddonTest.php +++ /dev/null @@ -1,61 +0,0 @@ -api->subscription->create(array('plan_id' => $this->planId, 'customer_notify' => 1,'quantity'=>1, 'total_count' => 6, 'addons' => array(array('item' => array('name' => 'Delivery charges', 'amount' => 3000, 'currency' => 'INR'))),'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); - - $data = $this->api->subscription->fetch($subscription->id)->createAddon(array('item' => array('name' => 'Extra Chair', 'amount' => 3000, 'currency' => 'INR'), 'quantity' => 1)); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(is_object($data['item'])); - } - - /** - * Fetch Subscription Link by ID - */ - public function testFetchSubscriptionLink() - { - $data = $this->api->addon->fetch($this->addonId); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue($data['entity']=='addon'); - } - - /** - * Fetch all addons - */ - public function testFetchAllAddon() - { - $data = $this->api->addon->fetchAll(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(is_array($data['items'])); - } - -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/ApiTest.php b/assets/php/razorpay-php/tests/ApiTest.php deleted file mode 100644 index b9ded09..0000000 --- a/assets/php/razorpay-php/tests/ApiTest.php +++ /dev/null @@ -1,74 +0,0 @@ -api->setAppDetails($this->title); - - $data = $this->api->getAppsDetails(); - - $this->assertTrue(is_array($data)); - - $this->assertTrue($this->title==$data[0]['title']); - } - - /** - * Get app details - */ - public function testSetBaseUrl() - { - $this->api->setBaseUrl($this->url); - - $data = $this->api->getBaseUrl(); - - $this->assertTrue($this->url==$data); - - } - - public function testGetkey() - { - $data = $this->api->getKey(); - - $this->assertTrue(strlen($data) > 0); - } - - public function testGetSecret() - { - $data = $this->api->getSecret(); - $this->assertTrue(strlen($data) > 0); - } - - public function testFullUrl() - { - $pattern = '/^(https?:\/\/)?([a-z0-9-]+\.)+[a-z]{2,}(\/.*)?$/i'; - $url = $this->api->getFullUrl($this->api->getBaseUrl()."orders","v1"); - $this->assertTrue(preg_match($pattern, $url, $matches)==true); - } - - /** - * @covers \Request - */ - public function testgetheader() - { - $data = Request::getHeaders(); - $this->assertTrue(is_array($data)); - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/CardTest.php b/assets/php/razorpay-php/tests/CardTest.php deleted file mode 100644 index 169d3af..0000000 --- a/assets/php/razorpay-php/tests/CardTest.php +++ /dev/null @@ -1,30 +0,0 @@ -api->card->fetch($this->cardId); - - $this->assertTrue(in_array($this->cardId, $data->toArray())); - } - -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/CoverageTest.php b/assets/php/razorpay-php/tests/CoverageTest.php deleted file mode 100644 index 1467ca0..0000000 --- a/assets/php/razorpay-php/tests/CoverageTest.php +++ /dev/null @@ -1,408 +0,0 @@ -setup(); - $transfer->testFetchTokenByCustomerId(); - $transfer->testCreateToken(); - $transfer->testFetchTokenByPaymentId(); - $transfer->testProcessPaymentOnAlternatePAorPG(); - $transfer->testDeleteToken(); - } - - /** - * @covers \Razorpay\Api\Account::create - * @covers \Razorpay\Api\Account::fetch - * @covers \Razorpay\Api\Account::edit - * @covers \Razorpay\Api\Account::delete - */ - public function testAccountCoverage(){ - $account = new PartnerTest(); - $account->setup(); - $account->testCreateAccount(); - $account->testFetchAccount(); - //$account->testEditAccount(); - $account->testDeleteAccount(); - } - - /** - * @covers \Razorpay\Api\Stakeholder::create - * @covers \Razorpay\Api\Stakeholder::fetch - * @covers \Razorpay\Api\Stakeholder::all - */ - public function testStakeholderCoverage(){ - $stakeholder = new PartnerTest(); - $stakeholder->setup(); - $stakeholder->testCreateStakerholder(); - $stakeholder->testFetchStakerholder(); - $stakeholder->testFetchAllStakerholder(); - } - - /** - * @covers \Razorpay\Api\Product::requestProductConfiguration - * @covers \Razorpay\Api\Product::fetch - * @covers \Razorpay\Api\Product::edit - * @covers \Razorpay\Api\Product::fetchTnc - * @covers \Razorpay\Api\Stakeholder::edit - */ - public function testProductCoverage(){ - $product = new PartnerTest(); - $product->setup(); - $product->testProductConfiguration(); - $product->testProductFetch(); - $product->testProductEdit(); - $product->testFetchTnc(); - //$product->testEditStakerholder(); - } - - /** - * @covers \Razorpay\Api\Webhook::create - * @covers \Razorpay\Api\Webhook::fetch - * @covers \Razorpay\Api\Webhook::all - * @covers \Razorpay\Api\Webhook::edit - * @covers \Razorpay\Api\Webhook::delete - */ - public function testWebhookCoverage(){ - $webhook = new PartnerTest(); - $webhook->setup(); - $webhook->testWebhookCreate(); - $webhook->testWebhookFetch(); - $webhook->testFetchAllWebhook(); - $webhook->testEditWebhook(); - $webhook->testDeleteWebhook(); - } - /** - * @covers \Razorpay\Api\Api::getAppsDetails - * @uses \Razorpay\Api\Api::setAppDetails - * @covers \Razorpay\Api\Api::getBaseUrl - * @uses \Razorpay\Api\Api::setBaseUrl - * @cover \Razorpay\Api\Api::getKey - * @cover \Razorpay\Api\Api::getSecret - * @cover \Razorpay\Api\Api::getFullUrl - * @cover \Razorpay\Api\Api::testgetheader - * @cover \Razorpay\Api\Request::addHeader - * @cover \Razorpay\Api\Request::getHeader - */ - public function testApiInstance(){ - $instance = new ApiTest(); - $instance->setup(); - $instance->testGetAppDetails(); - $instance->testSetBaseUrl(); - $instance->testGetkey(); - $instance->testGetSecret(); - $instance->testFullUrl(); - $instance->testgetheader(); - } - - /** - * @covers \Razorpay\Api\Plan::create - * @covers \Razorpay\Api\Plan::fetch - * @covers \Razorpay\Api\Plan::all - */ - public function testPlanCoverage(){ - $subscription = new PlanTest(); - $subscription->setup(); - $subscription->testCreatePlan(); - $subscription->testFetchAllPlans(); - $subscription->testFetchPlan(); - } - - /** - * @covers \Razorpay\Api\QrCode::create - * @covers \Razorpay\Api\QrCode::fetch - * @covers \Razorpay\Api\QrCode::close - * @uses \Razorpay\Api\ArrayableInterface - * @covers \Razorpay\Api\QrCode::all - * @covers \Razorpay\Api\QrCode::fetchAllPayments - */ - public function testQrCodeCoverage(){ - $qrCode = new QrCodeTest(); - $qrCode->setup(); - $qrCode->testCreateQrCode(); - $qrCode->testFetchQrCode(); - $qrCode->testCloseQrCode(); - $qrCode->testFetchAllQrCode(); - $qrCode->testFetchQrCodePaymentById(); - } - - /** - * @covers \Razorpay\Api\Refund::fetch - * @covers \Razorpay\Api\Refund::edit - * @covers \Razorpay\Api\Refund::all - * @covers \Razorpay\Api\Payment::fetchMultipleRefund - * @covers \Razorpay\Api\Payment::fetchRefund - */ - public function testRefundCoverage(){ - $refund = new RefundTest(); - $refund->setup(); - $refund->testFetchRefund(); - $refund->testFetchAllRefund(); - $refund->testFetchMultipalRefund(); - } - - /** - * @covers \Razorpay\Api\Subscription::create - * @covers \Razorpay\Api\Subscription::fetch - * @covers \Razorpay\Api\Addon::fetchAll - * @covers \Razorpay\Api\Subscription::all - */ - public function testSubscriptionCoverage(){ - $subscription = new SubscriptionTest(); - $subscription->setup(); - $subscription->testCreateSubscription(); - $subscription->testSubscriptionFetchId(); - $subscription->testFetchAddons(); - $subscription->testFetchAllSubscriptions(); - } - - /** - * @covers \Razorpay\Api\VirtualAccount::create - * @covers \Razorpay\Api\VirtualAccount::all - * @covers \Razorpay\Api\VirtualAccount::payments - * @uses \Razorpay\Api\VirtualAccount::fetch - * @covers \Razorpay\Api\VirtualAccount::close - */ - public function testVirtualAccountCoverage(){ - $virtualAccount = new VirtualAccountTest(); - $virtualAccount->setup(); - $virtualAccount->testCreateVirtualAccount(); - $virtualAccount->testFetchAllVirtualAccounts(); - $virtualAccount->testFetchPayment(); - $virtualAccount->testCloseVirtualAccount(); - } - - /** - * @covers \Razorpay\Api\Addon::fetch - * @covers \Razorpay\Api\Addon::fetchAll - */ - public function testAddonCoverage(){ - $addon = new AddonTest(); - $addon->setUp(); - $addon->testFetchSubscriptionLink(); - $addon->testFetchAllAddon(); - } - - /** - * @covers \Razorpay\Api\Customer::create - * @covers \Razorpay\Api\Entity::create - * @covers \Razorpay\Api\Customer::edit - * @covers \Razorpay\Api\Entity::getEntityUrl - * @covers \Razorpay\Api\Customer::all - * @covers \Razorpay\Api\Entity::all - * @covers \Razorpay\Api\Customer::fetch - * @covers \Razorpay\Api\Entity::fetch - * @covers \Razorpay\Api\Entity::validateIdPresence - * @covers \Razorpay\Api\Entity::snakeCase - * @covers \Razorpay\Api\Entity::request - * @covers \Razorpay\Api\Entity::buildEntity - * @covers \Razorpay\Api\Entity::getDefinedEntitiesArray - * @covers \Razorpay\Api\Entity::getEntityClass - * @covers \Razorpay\Api\Entity::getEntity - * @covers \Razorpay\Api\Entity::fill - * @covers \Razorpay\Api\Entity::isAssocArray - * @covers \Razorpay\Api\Entity::toArray - * @covers \Razorpay\Api\Entity::convertToArray - * @covers \Razorpay\Api\Collection::count - */ - public function testCustomerCoverage(){ - $customer = new CustomerTest(); - $customer->setUp(); - $customer->testCreateCustomer(); - $customer->testEditCustomer(); - $customer->testFetchAll(); - $customer->testFetchCustomer(); - usleep(500000); - } - - /** - * @covers \Razorpay\Api\Card::fetch - * @covers \Razorpay\Api\Request::request - * @covers \Razorpay\Api\Request::checkErrors - * @covers \Razorpay\Api\Request::getRequestHeaders - * @covers \Razorpay\Api\Request::constructUa - * @covers \Razorpay\Api\Request::getAppDetailsUa - */ - public function testCardCoverage(){ - $card = new CardTest(); - $card->setup(); - $card->testFetchCard(); - } - - /** - * @covers \Razorpay\Api\FundAccount::create - * @covers \Razorpay\Api\FundAccount::all - */ - public function testFundCoverage(){ - $fund = new FundTest(); - $fund->setup(); - $fund->testCreateFundAccount(); - $fund->testCreateOrder(); - } - - /** - * @covers \Razorpay\Api\Invoice::create - * @covers \Razorpay\Api\Invoice::all - * @covers \Razorpay\Api\Invoice::edit - * @covers \Razorpay\Api\Invoice::notifyBy - * @covers \Razorpay\Api\Invoice::delete - * @covers \Razorpay\Api\Invoice::cancel - * @uses \Razorpay\Api\Invoice::fetch - */ - public function testInvoiceCoverage(){ - $invoice = new InvoiceTest(); - $invoice->setup(); - $invoice->testCreateInvoice(); - $invoice->testFetchAllInvoice(); - $invoice->testUpdateInvoice(); - $invoice->testInvoiceIssue(); - $invoice->testDeleteInvoice(); - $invoice->testCancelInvoice(); - } - - /** - * @covers \Razorpay\Api\Item::create - * @covers \Razorpay\Api\Item::fetch - * @covers \Razorpay\Api\Item::edit - * @covers \Razorpay\Api\Item::all - * @covers \Razorpay\Api\Item::delete - */ - public function testItemCoverage(){ - $item = new ItemTest(); - $item->setup(); - $item->testcreate(); - $item->testAllItems(); - $item->testfetchItem(); - $item->testUpdate(); - $item->testDelete(); - } - - /** - * @covers \Razorpay\Api\Order::create - * @covers \Razorpay\Api\Order::all - * @covers \Razorpay\Api\Order::fetch - * @covers \Razorpay\Api\Order::edit - */ - public function testOrderCoverage(){ - $order = new OrdersTest(); - $order->setup(); - $order->testCreateOrder(); - $order->testAllOrders(); - $order->testFetchOrder(); - $order->testUpdateOrder(); - } - - /** - * @covers \Razorpay\Api\Payment::fetch - * @covers \Razorpay\Api\Payment::all - * @covers \Razorpay\Api\Payment::edit - * @covers \Razorpay\Api\Order::payments - * @covers \Razorpay\Api\Payment::fetchCardDetails - * @covers \Razorpay\Api\Payment::fetchPaymentDowntime - * @covers \Razorpay\Api\Payment::fetchPaymentDowntimeById - */ - public function testPaymentCoverage(){ - $order = new PaymentTest(); - $order->setup(); - $order->testFetchPayment(); - $order->testFetchAllPayment(); - $order->testUpdatePayment(); - $order->testFetchOrderPayment(); - $order->testFetchCardWithPaymentId(); - $order->testfetchPaymentDowntime(); - $order->testfetchPaymentDowntimeById(); - } - - /** - * @covers \Razorpay\Api\PaymentLink::create - * @covers \Razorpay\Api\PaymentLink::fetch - * @covers \Razorpay\Api\PaymentLink::all - * @covers \Razorpay\Api\PaymentLink::cancel - * @covers \Razorpay\Api\PaymentLink::edit - * @covers \Razorpay\Api\PaymentLink::notifyBy - */ - public function testPaymentlinkCoverage(){ - $paymentlink = new PaymentLinkTest(); - $paymentlink->setup(); - $paymentlink->testCreatePaymentLink(); - $paymentlink->testFetchRefund(); - $paymentlink->testFetchAllMutlipleRefund(); - $paymentlink->testCancelPaymentLink(); - $paymentlink->testUpdatePaymentLink(); - $paymentlink->testSendNotification(); - } - - /** - * @covers \Razorpay\Api\Settlement::all - * @covers \Razorpay\Api\Settlement::settlementRecon - */ - public function testSettlementCoverage(){ - $paymentlink = new SettlementTest(); - $paymentlink->setup(); - $paymentlink->testAllSettlements(); - $paymentlink->testSettlementRecon(); - } - - /** - * @covers \Razorpay\Api\Order::transfers - * @covers \Razorpay\Api\Transfer::all - * @covers \Razorpay\Api\Payment::transfers - * @covers \Razorpay\Api\Transfer::fetch - * @covers \Razorpay\Api\Transfer::all - */ - public function testTransferCoverage(){ - $transfer = new TransferTest(); - $transfer->setup(); - $transfer->testFetchTransferOrder(); - $transfer->testFetchSettlement(); - $transfer->testFetchTransferPayment(); - $transfer->testFetchTransfer(); - $transfer->testFetchSettlement(); - } - - /** - * @covers \Razorpay\Api\Utility::verifyPaymentSignature - * @covers \Razorpay\Api\Utility::verifySignature - * @covers \Razorpay\Api\Utility::hashEquals - * @covers \Razorpay\Api\Errors\SignatureVerificationError - */ - public function testUtilityCoverage(){ - $utility = new SignatureVerificationTest(); - $utility->setup(); - $utility->testPaymentVerification(); - $utility->testPaymentLinkVerification(); - $utility->testSubscriptionVerification(); - } - - /** - * @covers \Razorpay\Api\Order::create - */ - public function testSetHeaderJson() - { - $order = new ExceptionTest(); - $order->setup(); - $order->testCreateOrderSetHeaderException(); - } - - /** - * @covers \Razorpay\Api\Order::create - */ - public function testSendArrayPayload() - { - $order = new ExceptionTest(); - $order->setup(); - $order->testCreateOrderSuccess(); - } -} diff --git a/assets/php/razorpay-php/tests/CustomerTest.php b/assets/php/razorpay-php/tests/CustomerTest.php deleted file mode 100644 index 4d6d433..0000000 --- a/assets/php/razorpay-php/tests/CustomerTest.php +++ /dev/null @@ -1,110 +0,0 @@ -api->customer->create(array('name' => 'Razorpay User 38', 'email' => 'customer38@razorpay.com' ,'fail_existing'=>'0')); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('customer',$data->toArray())); - } - - /** - * Edit customer - */ - public function testEditCustomer() - { - $data = $this->api->customer->fetch($this->customerId)->edit(array('name' => 'Razorpay User 21' ,'contact'=>'9123456780')); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array($this->customerId, $data->toArray())); - } - - /** - * Fetch customer All - */ - public function testFetchAll() - { - $data = $this->api->customer->all(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(is_numeric($data->count())); - - $this->assertTrue(is_array($data['items'])); - } - - /** - * Fetch a customer - */ - public function testFetchCustomer() - { - $data = $this->api->customer->fetch($this->customerId); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array($this->customerId, $data->toArray())); - } - - /** - * Add Bank account - */ - public function testBankAccount() - { - $data = $this->api->customer->fetch($this->customerId)->addBankAccount([ - "ifsc_code" => "UTIB0000194", - "account_number" => "919999999999", - "beneficiary_name" => "Pratheek", - "beneficiary_address1" => "address 1", - "beneficiary_address2" => "address 2", - "beneficiary_address3" => "address 3", - "beneficiary_address4" => "address 4", - "beneficiary_email" => "random@email.com", - "beneficiary_mobile" => "8762489310", - "beneficiary_city" => "Bangalore", - "beneficiary_state" => "KA", - "beneficiary_country" => "IN", - ]); - - CustomerTest::$baId = $data->id; - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array("bank_account", $data->toArray())); - } - - public function testDeleteBankAccount(){ - if(CustomerTest::$baId) - { - $data = $this->api->customer->fetch($this->customerId)->deleteBankAccount(CustomerTest::$baId); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array("bank_account", $data->toArray())); - } - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/EmandateTest.php b/assets/php/razorpay-php/tests/EmandateTest.php deleted file mode 100644 index bf5f04e..0000000 --- a/assets/php/razorpay-php/tests/EmandateTest.php +++ /dev/null @@ -1,98 +0,0 @@ -api->customer->create(array('name' => 'Razorpay User 71', 'email' => 'customer71@razorpay.com', 'contact'=> 9999999999, 'fail_existing'=>'0')); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('customer',$data->toArray())); - } - - /** - * Create Order - */ - public function testCreateOrderEmandate() - { - $data = $this->api->order->create(array('amount' => 100,'currency' => 'INR','method' => 'emandate','customer_id' => $this->customerId,'receipt' => 'Receipt No. '.time(), 'notes' => array('notes_key_1' => 'Beam me up Scotty','notes_key_2' => 'Engage'),'token' => array('auth_type' => 'netbanking','max_amount' => 9999900,'expire_at' => 4102444799,'notes' => array('notes_key_1' => 'Tea, Earl Grey, Hot','notes_key_2' => 'Tea, Earl Grey… decaf.'),'bank_account' => array('beneficiary_name' => 'Gaurav Kumar','account_number' => '1121431121541121','account_type' => 'savings','ifsc_code' => 'HDFC0000001')))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey('id',$data->toArray()); - } - - /** - * Create registration link - */ - public function testCreateSubscriptionRegistrationEmandate() - { - $data = $this->api->subscription->createSubscriptionRegistration(array('customer'=>array('name'=>'Gaurav Kumar','email'=>'gaurav.kumar@example.com','contact'=>'9999999999'),'type'=>'link','amount'=>100,'currency'=>'INR','description'=>'Registration Link for Gaurav Kumar','subscription_registration'=>array('method'=>'card','max_amount'=>'500','expire_at'=> strtotime("+1 month") ),'receipt'=>'Receipt No. '.time(),'email_notify'=>1,'sms_notify'=>1,'expire_by'=>strtotime("+1 month"),'notes' => array('note_key 1' => 'Beam me up Scotty','note_key 2' => 'Tea. Earl Gray. Hot.'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('customer',$data->toArray())); - } - - /** - * Send/Resend notifications - */ - public function testSendNotification() - { - $data = $this->api->invoice->fetch($this->invoiceId)->notifyBy('sms'); - - $this->assertTrue(is_array($data)); - - $this->assertArrayHasKey('success',$data); - - } - - /** - * Fetch token by payment ID - */ - public function testFetchTokenByPaymentId() - { - $payment = $this->api->payment->all(); - - $data = $this->api->payment->fetch($payment['items'][0]['id']); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey('id',$data->toArray()); - } - - /** - * Fetch tokens by customer id - */ - public function testFetchTokenByCustomerId() - { - $data = $this->api->customer->fetch($this->customerId)->tokens()->all(); - - $this->assertTrue(is_array($data->toArray())); - } - -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/ExceptionTest.php b/assets/php/razorpay-php/tests/ExceptionTest.php deleted file mode 100644 index f894e8b..0000000 --- a/assets/php/razorpay-php/tests/ExceptionTest.php +++ /dev/null @@ -1,81 +0,0 @@ -payload(); - - try - { - $this->api->setHeader('content-type', 'application/json'); - - $data = $this->api->order->create($attribute); - - $this->assertTrue(is_array($data->toArray())); - - } - catch(Error $e){ - throw new InvalidArgumentException($e); - } - } - - /** - * Create an order - */ - public function testCreateOrderSuccess() - { - $attribute = $this->payload(); - try - { - $data = $this->api->order->create($attribute); - - $this->assertTrue(is_array($data->toArray())); - - } - catch(Error $e){ - throw new InvalidArgumentException($e); - } - } - - private function payload(){ - $date = new \DateTime(); - $receiptId = $date->getTimestamp(); - return [ - "receipt"=> (string) $receiptId, - "amount"=>54900, - "currency"=>"INR", - "payment_capture"=>1, - "app_offer"=>0, - "notes" => [ - "woocommerce_order_number" => 240186 - ], - "line_items_total" => 54900, - "line_items" => [ - [ - "type" => "e-commerce", - "sku"=> "", - "variant_id" => "211444", - "price" => "54900", - "offer_price" => "54900", - "quantity" => 1, - "name" => "Personalised Kids T-shirts", - "description" => "description" - ] - ] - ]; - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/FundTest.php b/assets/php/razorpay-php/tests/FundTest.php deleted file mode 100644 index 9cde1db..0000000 --- a/assets/php/razorpay-php/tests/FundTest.php +++ /dev/null @@ -1,45 +0,0 @@ -api->fundAccount->create(array('customer_id'=>$this->customerId,'account_type'=>'bank_account','bank_account'=>array('name'=>'Gaurav Kumar', 'account_number'=>'11214311215411', 'ifsc'=>'HDFC0000053'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('customer_id',$data->toArray())); - } - - /** - * Fetch all fund accounts - */ - public function testCreateOrder() - { - $data = $this->api->fundAccount->all(array('customer_id'=>$this->customerId)); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(is_array($data['items'])); - } - -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/IinTest.php b/assets/php/razorpay-php/tests/IinTest.php deleted file mode 100644 index 95a85bb..0000000 --- a/assets/php/razorpay-php/tests/IinTest.php +++ /dev/null @@ -1,16 +0,0 @@ -api->iin->all(); - - $this->assertTrue(is_array($data->toArray())); - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/InvoiceTest.php b/assets/php/razorpay-php/tests/InvoiceTest.php deleted file mode 100644 index f09be36..0000000 --- a/assets/php/razorpay-php/tests/InvoiceTest.php +++ /dev/null @@ -1,117 +0,0 @@ -api->invoice->create(array ('type' => 'invoice', 'date' => time(), 'customer_id'=> $this->customerId, 'line_items'=>array(array("name"=> "Master Cloud Computing in 30 Days", "amount"=>10000, "currency" => "INR", "quantity"=> 1)))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('invoice_number',$data->toArray())); - } - - /** - * Fetch all invoices - */ - public function testFetchAllInvoice() - { - - $data = $this->api->invoice->fetch($this->invoiceId); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('invoice_number',$data->toArray())); - } - - /** - * Update invoice - */ - public function testUpdateInvoice() - { - $data = $this->api->invoice->fetch($this->invoiceId)->edit(array('notes' => array('updated-key' => 'An updated note.'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('invoice_number',$data->toArray())); - - } - - /** - * Send notification - */ - public function testSendNotification() - { - $data = $this->api->invoice->fetch($this->invoiceId)->notifyBy('sms'); - - $this->assertTrue(is_array($data)); - - } - - /** - * Issue an invoice - */ - public function testInvoiceIssue() - { - $invoice = $this->api->invoice->create(array ('type' => 'invoice', 'draft'=> true , 'date' => time(), 'customer_id'=> $this->customerId, 'line_items'=>array(array("name"=> "Master Cloud Computing in 30 Days", "amount"=>10000, "currency" => "INR", "quantity"=> 1)))); - - $data = $this->api->invoice->fetch($invoice->id)->issue(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('invoice_number',$data->toArray())); - - } - - /** - * Delete an invoice - */ - public function testDeleteInvoice() - { - $invoice = $this->api->invoice->create(array ('type' => 'invoice', 'draft'=> true , 'date' => time(), 'customer_id'=> $this->customerId, 'line_items'=>array(array("name"=> "Master Cloud Computing in 30 Days", "amount"=>10000, "currency" => "INR", "quantity"=> 1)))); - - $data = $this->api->invoice->fetch($invoice->id)->delete(); - - $this->assertTrue(is_array($data)); - - } - - /** - * Cancel an invoice - */ - public function testCancelInvoice() - { - $invoice = $this->api->invoice->create(array ('type' => 'invoice', 'draft'=> true , 'date' => time(), 'customer_id'=> $this->customerId, 'line_items'=>array(array("name"=> "Master Cloud Computing in 30 Days", "amount"=>10000, "currency" => "INR", "quantity"=> 1)))); - - $data = $this->api->invoice->fetch($invoice->id)->cancel(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('invoice_number',$data->toArray())); - - } - -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/ItemTest.php b/assets/php/razorpay-php/tests/ItemTest.php deleted file mode 100644 index e38df7d..0000000 --- a/assets/php/razorpay-php/tests/ItemTest.php +++ /dev/null @@ -1,101 +0,0 @@ -api->Item->create(array( - "name" => "Book / English August", - "description" => "An indian story, Booker prize winner.", - "amount" => 20000, - "currency" => "INR" - )); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('id',$data->toArray())); - } - - /** - * Fetch all orders - */ - public function testAllItems() - { - $data = $this->api->Item->all(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(is_array($data['items'])); - } - - /** - * Fetch particular item - */ - public function testfetchItem() - { - $item = $this->api->Item->create(array( - "name" => "Book / English August", - "description" => "An indian story, Booker prize winner.", - "amount" => 20000, - "currency" => "INR" - )); - - $data = $this->api->Item->fetch($item->id); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array($item->id, $data->toArray())); - } - - /** - * Update item - */ - public function testUpdate() - { - $item = $this->api->Item->create(array( - "name" => "Book / English August", - "description" => "An indian story, Booker prize winner.", - "amount" => 20000, - "currency" => "INR" - )); - - $data = $this->api->Item->fetch($item->id)->edit(array( - "name" => "Book / English August", - "description" => "An indian story, Booker prize winner.", - "amount" => 20000, - "currency" => "INR" - )); - - $this->assertTrue(is_array($data->toArray())); - - } - - /** - * Delete item - */ - public function testDelete() - { - $item = $this->api->Item->create(array( - "name" => "Book / English August", - "description" => "An indian story, Booker prize winner.", - "amount" => 20000, - "currency" => "INR" - )); - - $data = $this->api->Item->fetch($item->id)->delete(); - - $this->assertTrue(is_array($data->toArray())); - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/OrdersTest.php b/assets/php/razorpay-php/tests/OrdersTest.php deleted file mode 100644 index c7f0d7b..0000000 --- a/assets/php/razorpay-php/tests/OrdersTest.php +++ /dev/null @@ -1,80 +0,0 @@ -api->order->create(array('receipt' => '123', 'amount' => 100, 'currency' => 'INR', 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey('id',$data->toArray()); - } - - /** - * Fetch all orders - */ - public function testAllOrders() - { - $data = $this->api->order->all(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(is_array($data['items'])); - } - - /** - * Fetch particular order - */ - public function testFetchOrder() - { - $data = $this->api->order->fetch($this->orderId); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('order',$data->toArray())); - } - - /** - * Fetch payments for an order - */ - public function testOrderFetchById() - { - $data = $this->api->order->fetch($this->orderId)->payments(); - - $this->assertTrue(is_array($data->toArray())); - - } - - /** - * Update Order - */ - public function testUpdateOrder() - { - $data = $this->api->order->fetch($this->orderId)->edit(array('notes'=> array('notes_key_1'=>'Beam me up Scotty. 1', 'notes_key_2'=>'Engage'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey('id',$data->toArray()); - - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/PaperNachTest.php b/assets/php/razorpay-php/tests/PaperNachTest.php deleted file mode 100644 index 168777f..0000000 --- a/assets/php/razorpay-php/tests/PaperNachTest.php +++ /dev/null @@ -1,130 +0,0 @@ -api->customer->create(array('name' => 'Razorpay User 72', 'email' => 'customer72@razorpay.com', 'fail_existing'=>'0')); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('customer',$data->toArray())); - } - - /** - * Create Order - */ - public function testCreateOrderPaperNach() - { - $data = $this->api->order->create(array('receipt' => '123', 'amount' => 100, 'currency' => 'INR', 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey('id',$data->toArray()); - } - - /** - * Send notification - */ - public function testSendNotification() - { - $data = $this->api->invoice->fetch($this->invoiceId)->notifyBy('email'); - - $this->assertTrue(in_array('success',$data)); - - } - - - /** - * Create registration link - */ - public function testRegistrationLink() - { - $data = $this->api->subscription->createSubscriptionRegistration(array('customer' => array('name' => 'Gaurav Kumar','email' => 'gaurav.kumar@example.com','contact' => '9123456780'),'amount' => 0,'currency' => 'INR','type' => 'link','description' => '12 p.m. Meals','subscription_registration' => array('method' => 'nach','auth_type' => 'physical','bank_account' => array('beneficiary_name' => 'Gaurav Kumar','account_number' => '11214311215411','account_type' => 'savings','ifsc_code' => 'HDFC0001233'),'nach' => array('form_reference1' => 'Recurring Payment for Gaurav Kumar','form_reference2' => 'Method Paper NACH'),'expire_at' => 1636772800,'max_amount' => 50000),'receipt' => 'Receipt No. '.time(),'sms_notify' => 1,'email_notify' => 1,'expire_by' => 1636772800,'notes' => array('note_key 1' => 'Beam me up Scotty','note_key 2' => 'Tea. Earl Gray. Hot.'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('id',$data->toArray())); - } - - /** - * Fetch Payment ID using Order ID - */ - public function testFetchPaymentByorderId() - { - $data = $this->api->order->fetch($this->orderId)->payments(); - - $this->assertTrue(is_array($data->toArray())); - - } - - /** - * Fetch token by payment ID - */ - public function testFetchTokenByPaymentId() - { - $payment = $this->api->payment->all(); - - if(!empty($payment)){ - - $data = $this->api->payment->fetch($payment['items'][0]['id']); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey('id',$data->toArray()); - } - } - - /** - * Create an order to charge the customer - */ - public function testCreateOrderCharge() - { - $data = $this->api->order->create(array('receipt' => '122', 'amount' => 100, 'currency' => 'INR', 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey('id',$data->toArray()); - } - - /** - * Create a Recurring Payment - */ - public function testCreateRecurring() - { - $order = $this->api->order->create(array("amount" => 100, "currency" => "INR","method" => "emandate", "payment_capture" => "1","customer_id" => $this->customerId ,"token" => array("auth_type" => "netbanking","max_amount" => 9999900,"expire_at" => 2147483647,"bank_account" => array("beneficiary_name" => "Gaurav Kumar","account_number" => "1121431121541121","account_type" => "savings","ifsc_code" => "HDFC0000001") - ),"receipt" => "Receipt No. 1")); - - $data = $this->api->payment->createRecurring(array('email'=>'gaurav.kumar@example.com','contact'=>'9123456789','amount'=>100,'currency'=>'INR','order_id'=>$order->id,'customer_id'=>$this->customerId,'token'=>$this->tokenId,'recurring'=>'1','description'=>'Creating recurring payment for Gaurav Kumar')); - - $this->assertTrue(is_array($data->toArray())); - - } - -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/PartnerTest.php b/assets/php/razorpay-php/tests/PartnerTest.php deleted file mode 100644 index ab92397..0000000 --- a/assets/php/razorpay-php/tests/PartnerTest.php +++ /dev/null @@ -1,313 +0,0 @@ -load(); -} - - -class PartnerTest extends TestCase -{ - protected $instance; - - protected static $account_id; - - protected static $stakeholder_id; - - protected static $product_id; - - protected static $webhook_id; - - protected $accId = "acc_M83Uw27KXuC7c8"; - - protected $stkId = "sth_M83WuwmrCFa55g"; - - protected $docId = "doc_NBpjajKtxrMDg7"; - - public function setUp(): void - { - $apiKey = getenv("RAZORPAY_API_KEY") ? getenv("RAZORPAY_PARTNER_API_KEY") : ""; - $apiSecret = getenv("RAZORPAY_API_SECRET") ? getenv("RAZORPAY_PARTNER_API_SECRET") : ""; - $this->instance = new Api( $apiKey, $apiSecret); - } - - - public function testCreateAccount() - { - $account = $this->instance->account->create($this->accountAttributes()); - - self::$account_id = $account['id']; - - $this->assertTrue(is_array($account->toArray())); - $this->assertTrue(is_array((array) $account['legal_info'])); - } - - public function testCreateStakerholder() - { - $stakeholder = $this->instance->account->fetch(self::$account_id)->stakeholders()->create($this->stakeholderAttributes()); - - $this->assertTrue(is_array($stakeholder->toArray())); - - self::$stakeholder_id = $stakeholder['id']; - - $this->assertTrue(is_array((array) $stakeholder['phone'])); - } - - public function testFetchStakerholder() - { - $stakeholder = $this->instance->account->fetch(self::$account_id)->stakeholders()->fetch(self::$stakeholder_id); - - $this->assertTrue(is_array($stakeholder->toArray())); - - $this->assertTrue(is_array((array) $stakeholder['phone'])); - } - - public function testFetchAllStakerholder() - { - $stakeholder = $this->instance->account->fetch(self::$account_id)->stakeholders()->all(); - - $this->assertTrue(is_array($stakeholder->toArray())); - - $this->assertTrue(is_array((array) $stakeholder['items'])); - } - - public function testEditStakerholder() - { - $stakeholder = $this->instance->account->fetch(self::$account_id)->stakeholders()->edit(self::$stakeholder_id, $this->stakeholderAttributes()); - - $this->assertTrue(is_array($stakeholder->toArray())); - - $this->assertTrue(is_array((array) $stakeholder['phone'])); - } - - public function testProductConfiguration(){ - $product = $this->instance->account->fetch(self::$account_id)->products()->requestProductConfiguration([ - "product_name" => "payment_gateway", - "tnc_accepted" => true, - "ip" => "233.233.233.234" - ]); - self::$product_id = $product['id']; - $this->assertTrue(is_array($product->toArray())); - $this->assertTrue(is_array((array) $product['requirements'])); - } - - public function testProductFetch(){ - $product = $this->instance->account->fetch(self::$account_id)->products()->fetch(self::$product_id); - $this->assertTrue(is_array($product->toArray())); - $this->assertTrue(is_array((array) $product['requirements'])); - } - - public function testProductEdit(){ - $product = $this->instance->account->fetch(self::$account_id)->products()->edit(self::$product_id,[ - "tnc_accepted" => true, - "ip" => "233.233.233.224" - ]); - - $this->assertTrue(is_array($product->toArray())); - } - - public function testFetchTnc() - { - $webhook = $this->instance->product->fetchTnc("payments"); - - $this->assertTrue(is_array($webhook->toArray())); - } - - public function testWebhookCreate() - { - $webhook = $this->instance->account->fetch(self::$account_id)->webhooks()->create($this->webhookAttributes()); - self::$webhook_id = $webhook['id']; - - $this->assertTrue(is_array($webhook->toArray())); - - $this->assertTrue(is_array((array) $webhook['id'])); - } - - public function testWebhookFetch() - { - $webhook = $this->instance->account->fetch(self::$account_id)->webhooks()->fetch(self::$webhook_id); - - $this->assertTrue(is_array($webhook->toArray())); - - $this->assertTrue(is_array((array) $webhook['id'])); - } - - public function testFetchAllWebhook() - { - $webhook = $this->instance->account->fetch(self::$account_id)->webhooks()->all(); - - $this->assertTrue(is_array($webhook->toArray())); - - $this->assertTrue(is_array((array) $webhook['items'])); - } - - public function testEditWebhook() - { - $webhook = $this->instance->account->fetch(self::$account_id)->webhooks()->edit([ - "url" => "https://www.linkedin.com", - "events" => ["refund.created"], - ],self::$webhook_id); - - $this->assertTrue(is_array($webhook->toArray())); - - $this->assertTrue(is_array((array) $webhook['events'])); - } - - public function testDeleteWebhook() - { - $webhook = $this->instance->account->fetch(self::$account_id)->webhooks()->delete(self::$webhook_id); - - $this->assertTrue(is_array($webhook->toArray())); - } - - public function testDeleteAccount() - { - $account = $this->instance->account->fetch(self::$account_id)->delete(); - - $this->assertTrue(is_array($account->toArray())); - - $this->assertTrue(is_array((array) $account['legal_info'])); - } - - public function testFetchAccount() - { - $account = $this->instance->account->fetch(self::$account_id); - - $this->assertTrue(is_array($account->toArray())); - - $this->assertTrue(is_array((array) $account['legal_info'])); - } - - public function testEditAccount() - { - $request = ["customer_facing_business_name" => "Ltd"]; - - $account = $this->instance->account->fetch(self::$account_id)->edit($request); - - $this->assertTrue(is_array($account->toArray())); - - $this->assertTrue(is_array((array) $account['legal_info'])); - } - - public function accountAttributes(){ - return $arrayVar = [ - "email" => "gauriagain".time()."@example.org", - "phone" => "9000090000", - "legal_business_name" => "Acme Corp", - "business_type" => "partnership", - "customer_facing_business_name" => "Example", - "profile" => [ - "category" => "healthcare", - "subcategory" => "clinic", - "description" => "Healthcare E-commerce platform", - "addresses" => [ - "operation" => [ - "street1" => "507, Koramangala 6th block", - "street2" => "Kormanagala", - "city" => "Bengaluru", - "state" => "Karnataka", - "postal_code" => 560047, - "country" => "IN", - ], - "registered" => [ - "street1" => "507, Koramangala 1st block", - "street2" => "MG Road", - "city" => "Bengaluru", - "state" => "Karnataka", - "postal_code" => 560034, - "country" => "IN", - ], - ], - "business_model" => - "Online Clothing ( men, women, ethnic, modern ) fashion and lifestyle, accessories, t-shirt, shirt, track pant, shoes.", - ], - "legal_info" => ["pan" => "AAACL1234C", "gst" => "18AABCU9603R1ZM"], - "brand" => ["color" => "FFFFFF"], - "notes" => ["internal_ref_id" => "123123"], - "contact_name" => "Gaurav Kumar", - "contact_info" => [ - "chargeback" => ["email" => "cb@example.org"], - "refund" => ["email" => "cb@example.org"], - "support" => [ - "email" => "support@example.org", - "phone" => "9999999998", - "policy_url" => "https://www.google.com", - ], - ], - "apps" => [ - "websites" => ["https://www.example.org"], - "android" => [["url" => "playstore.example.org", "name" => "Example"]], - "ios" => [["url" => "appstore.example.org", "name" => "Example"]], - ], - ]; - } - - public function stakeholderAttributes(){ - return $arrayVar = [ - "percentage_ownership" => 10, - "name" => "Gaurav Kumar", - "email" => "gaurav". time() .".kumar@example.com", - "relationship" => ["director" => true, "executive" => false], - "phone" => ["primary" => "7474747474", "secondary" => "7474747474"], - "addresses" => [ - "residential" => [ - "street" => "506, Koramangala 1st block", - "city" => "Bengaluru", - "state" => "Karnataka", - "postal_code" => "560034", - "country" => "IN", - ], - ], - "kyc" => ["pan" => "AVOPB1111K"], - "notes" => ["random_key_by_partner" => "random_value"], - ]; - } - - public function webhookAttributes(){ - return $arrayVar = [ - "url" => "https://google.com", - "alert_email" => "gaurav.kumar@example.com", - "secret" => "12345", - "events" => [ - "payment.authorized", - "payment.failed", - "payment.captured", - "payment.dispute.created", - "refund.failed", - "refund.created", - ], - ]; - } - - public function testAccountFetchDocument() - { - $data = $this->instance->account->fetch($this->accId)->fetchAccountDoc(); - - $this->assertTrue(is_array($data->toArray())); - - } - - public function testStakeholderFetchDocument() - { - $data = $this->instance->account->fetch($this->accId)->stakeholders()->fetchStakeholderDoc($this->stkId); - - $this->assertTrue(is_array($data->toArray())); - - } - - public function testFetchDocument() - { - $data = $this->instance->document->fetch($this->docId); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey("entity", $data->toArray()); - } -} diff --git a/assets/php/razorpay-php/tests/PaymentLinkTest.php b/assets/php/razorpay-php/tests/PaymentLinkTest.php deleted file mode 100644 index 886a3a8..0000000 --- a/assets/php/razorpay-php/tests/PaymentLinkTest.php +++ /dev/null @@ -1,194 +0,0 @@ -api->paymentLink->create(array('amount'=>500, 'currency'=>'INR', 'accept_partial'=>true, - 'first_min_partial_amount'=>100, 'description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar', - 'email' => 'gaurav.kumar@example.com', 'contact'=>'9000090000'), 'notify'=>array('sms'=>true, 'email'=>true) , - 'reminder_enable'=>true ,'notes'=>array('policy_name'=> 'Jeevan Bima'),'callback_url' => 'https://example-callback-url.com/', - 'callback_method'=>'get')); - - $this->cancelLinkId = $data->id; - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('accept_partial',$data->toArray())); - } - - /** - * Fetch multiple refunds for a payment - */ - public function testFetchAllMutlipleRefund() - { - $data = $this->api->paymentLink->all(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(is_array($data['payment_links'])); - } - - /** - * Fetch a specific refund for a payment - */ - public function testFetchRefund() - { - $data = $this->api->paymentLink->fetch($this->paymentLinkId); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('amount',$data->toArray())); - } - - /** - * Update Payment Link - */ - public function testUpdatePaymentLink() - { - $payment = $this->api->paymentLink->create(array('amount'=>500, 'currency'=>'INR', 'accept_partial'=>true, - 'first_min_partial_amount'=>100, 'description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar', - 'email' => 'gaurav.kumar@example.com', 'contact'=>'9000090000'), 'notify'=>array('sms'=>true, 'email'=>true) , - 'reminder_enable'=>true ,'notes'=>array('policy_name'=> 'Jeevan Bima'),'callback_url' => 'https://example-callback-url.com/', - 'callback_method'=>'get')); - - $data = $this->api->paymentLink->fetch($payment->id)->edit(array("reference_id"=>"TS".time(), "reminder_enable"=>0, "notes"=>["policy_name"=>"Jeevan Saral 2"])); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('accept_partial',$data->toArray())); - } - - - /** - * Send notification - */ - public function testSendNotification() - { - $data = $this->api->paymentLink->fetch($this->paymentLinkId)->notifyBy('email'); - - $this->assertTrue(is_array($data)); - - $this->assertTrue(in_array('success',$data)); - } - - /** - * Cancel Payment Link - */ - public function testCancelPaymentLink() - { - $paymentLink = $this->api->paymentLink->create(array('amount'=>500, 'currency'=>'INR', 'accept_partial'=>true, - 'first_min_partial_amount'=>100, 'description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar', - 'email' => 'gaurav.kumar@example.com', 'contact'=>'9000090000'), 'notify'=>array('sms'=>true, 'email'=>true) , - 'reminder_enable'=>true ,'notes'=>array('policy_name'=> 'Jeevan Bima'),'callback_url' => 'https://example-callback-url.com/', - 'callback_method'=>'get')); - - $data = $this->api->paymentLink->fetch($paymentLink->id)->cancel(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('accept_partial',$data->toArray())); - } - - /** - * Transfer payments received using payment links - */ - public function testCreateTransferPayments() - { - $data = $this->api->paymentLink->create(array('amount'=>20000, 'currency'=>'INR', 'accept_partial'=>false, 'description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar', 'email' => 'gaurav.kumar@example.com', 'contact'=>'9000090000'), 'notify'=>array('sms'=>true, 'email'=>true) ,'reminder_enable'=>true , 'options'=>array('order'=>array('transfers'=>array('account'=>'acc_CPRsN1LkFccllA', 'amount'=>500, 'currency'=>'INR', 'notes'=>array('branch'=>'Acme Corp Bangalore North', 'name'=>'Bhairav Kumar' ,'linked_account_notes'=>array('branch'))), array('account'=>'acc_CNo3jSI8OkFJJJ', 'amount'=>500, 'currency'=>'INR', 'notes'=>array('branch'=>'Acme Corp Bangalore North', 'name'=>'Saurav Kumar' ,'linked_account_notes'=>array('branch'))))))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('accept_partial',$data->toArray())); - } - - /** - * Offers on payment links - */ - public function testOfferPaymentLinks() - { - $data = $this->api->paymentLink->create(array('amount'=>20000, 'currency'=>'INR', 'accept_partial'=>false, 'description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar', 'email' => 'gaurav.kumar@example.com', 'contact'=>'9000090000'), 'notify'=>array('sms'=>true, 'email'=>true) ,'reminder_enable'=>true , 'options'=>array('order'=>array('transfers'=>array('account'=>'acc_CPRsN1LkFccllA', 'amount'=>500, 'currency'=>'INR', 'notes'=>array('branch'=>'Acme Corp Bangalore North', 'name'=>'Bhairav Kumar' ,'linked_account_notes'=>array('branch'))), array('account'=>'acc_CNo3jSI8OkFJJJ', 'amount'=>500, 'currency'=>'INR', 'notes'=>array('branch'=>'Acme Corp Bangalore North', 'name'=>'Saurav Kumar' ,'linked_account_notes'=>array('branch'))))))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('accept_partial',$data->toArray())); - } - - /** - * Managing reminders for payment links - */ - public function testManagingRemainder() - { - $data = $this->api->paymentLink->create(array('amount'=>500, 'currency'=>'INR', 'accept_partial'=>true, 'first_min_partial_amount'=>100, 'description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar', 'email' => 'gaurav.kumar@example.com', 'contact'=>'9000090000'), 'notify'=>array('sms'=>true, 'email'=>true) ,'reminder_enable'=>false)); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('amount',$data->toArray())); - } - - /** - * Rename labels in checkout section - */ - public function testRenameLabelsCheckout() - { - $data = $this->api->paymentLink->create(array('amount'=>500, 'currency'=>'INR', 'accept_partial'=>true, 'first_min_partial_amount'=>100, 'description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar', 'email' => 'gaurav.kumar@example.com', 'contact'=>'9000090000'), 'notify'=>array('sms'=>true, 'email'=>true) ,'reminder_enable'=>true , 'options'=>array('checkout'=>array('partial_payment'=>array('min_amount_label'=>'Minimum Money to be paid', 'partial_amount_label'=>'Pay in parts', 'partial_amount_description'=>'Pay at least ₹100', 'full_amount_label'=>'Pay the entire amount'))))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('amount',$data->toArray())); - } - - /** - * Change Business name - */ - public function testBusinessName() - { - $data = $this->api->paymentLink->create(array('amount'=>500, 'currency'=>'INR', 'accept_partial'=>true, 'first_min_partial_amount'=>100, 'description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar', 'email' => 'gaurav.kumar@example.com', 'contact'=>'9000090000'), 'notify'=>array('sms'=>true, 'email'=>true) ,'reminder_enable'=>true , 'options'=>array('checkout'=>array('name'=>'Lacme Corp')))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('accept_partial',$data->toArray())); - } - - /** - * Change checkouts fields - */ - public function testCheckoutFields() - { - $data = $this->api->paymentLink->create(array('amount'=>500, 'currency'=>'INR', 'accept_partial'=>true, 'first_min_partial_amount'=>100, 'description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar', 'email' => 'gaurav.kumar@example.com', 'contact'=>'9000090000'), 'notify'=>array('sms'=>true, 'email'=>true) ,'reminder_enable'=>true , 'options'=>array('checkout'=>array('method'=>array('netbanking'=>'1', 'card'=>'1', 'upi'=>'0', 'wallet'=>'0'))))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('accept_partial',$data->toArray())); - } - - /** - * Rename labels in checkout section - */ - public function testRenameLabelsPayments() - { - $data = $this->api->paymentLink->create(array('amount'=>500, 'currency'=>'INR', 'accept_partial'=>true, 'first_min_partial_amount'=>100, 'description' => 'For XYZ purpose', 'customer' => array('name'=>'Gaurav Kumar', 'email' => 'gaurav.kumar@example.com', 'contact'=>'9000090000'), 'notify'=>array('sms'=>true, 'email'=>true) ,'reminder_enable'=>true , 'options'=>array('hosted_page'=>array('label'=>array('receipt'=>'Ref No.'.time(), 'description'=>'Course Name', 'amount_payable'=>'Course Fee Payable', 'amount_paid'=>'Course Fee Paid', 'partial_amount_due'=>'Fee Installment Due', 'partial_amount_paid'=>'Fee Installment Paid', 'expire_by'=>'Pay Before', 'expired_on'=>'1632223497','amount_due'=>'Course Fee Due'), 'show_preferences'=>array('issued_to'=>false))))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('accept_partial',$data->toArray())); - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/PaymentTest.php b/assets/php/razorpay-php/tests/PaymentTest.php deleted file mode 100644 index cdfc361..0000000 --- a/assets/php/razorpay-php/tests/PaymentTest.php +++ /dev/null @@ -1,155 +0,0 @@ -api->payment->all(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(is_array($data['items'])); - } - - /** - * Fetch a payment - */ - public function testFetchPayment() - { - $payment = $this->api->payment->all(); - - if($payment['count'] !== 0){ - - $data = $this->api->payment->fetch($payment['items'][0]['id']); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('payment',$data->toArray())); - } - } - - /** - * Fetch a payment - */ - public function testFetchOrderPayment() - { - $data = $this->api->order->fetch($this->orderId)->payments(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(is_array($data['items'])); - } - - /** - * Update a payment - */ - public function testUpdatePayment() - { - $data = $this->api->payment->fetch($this->paymentId)->edit(array('notes'=> array('key_1'=> 'value1','key_2'=> 'value2'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('payment',$data->toArray())); - } - - /** - * Fetch card details with paymentId - */ - public function testFetchCardWithPaymentId() - { - $data = $this->api->payment->fetch($this->paymentId)->fetchCardDetails(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('card',$data->toArray())); - } - - /** - * Fetch Payment Downtime Details - */ - public function testfetchPaymentDowntime() - { - $data = $this->api->payment->fetchPaymentDowntime(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey('count',$data->toArray()); - } - - /** - * Fetch Payment Downtime Details - */ - public function testfetchPaymentDowntimeById() - { - $downtime = $this->api->payment->fetchPaymentDowntime(); - if(count($downtime['items'])>0){ - $data = $this->api->payment->fetchPaymentDowntimeById($downtime['items'][0]['id']); - $this->assertTrue(is_array($data->toArray())); - }else{ - $this->assertArrayHasKey('count',$downtime->toArray()); - } - } - - /** - * Otp Generate - */ - public function testOtpGenerate() - { - $api = new Api("key", ""); - - $data = $api->payment->otpGenerate($OtpPaymentId); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey('razorpay_payment_id',$data->toArray()); - } - - /** - * Otp Submit - */ - public function testOtpSubmit() - { - $data = $this->api->payment->fetch($paymentId)->otpSubmit(array('otp'=> '12345')); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey('razorpay_payment_id',$data->toArray()); - } - - /** - * Otp Resend - */ - public function testOtpResend() - { - $data = $this->api->payment->fetch($paymentId)->otpResend(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey('razorpay_payment_id',$data->toArray()); - } - -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/PlanTest.php b/assets/php/razorpay-php/tests/PlanTest.php deleted file mode 100644 index 00f9d9d..0000000 --- a/assets/php/razorpay-php/tests/PlanTest.php +++ /dev/null @@ -1,59 +0,0 @@ -api->plan->create(array('period' => 'weekly', 'interval' => 1, 'item' => array('name' => 'Test Weekly 1 plan', 'description' => 'Description for the weekly 1 plan', 'amount' => 600, 'currency' => 'INR'),'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('plan',$data->toArray())); - } - - /** - * Fetch all plans - * @covers \Razorpay\Api\Collection::count - */ - public function testFetchAllPlans() - { - $data = $this->api->plan->all(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue($data->count() >= 0); - - $this->assertTrue(is_array($data['items'])); - } - - /** - * Fetch particular plan - */ - public function testFetchPlan() - { - $data = $this->api->plan->fetch($this->planId); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('plan',$data->toArray())); - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/QrCodeTest.php b/assets/php/razorpay-php/tests/QrCodeTest.php deleted file mode 100644 index e63a07d..0000000 --- a/assets/php/razorpay-php/tests/QrCodeTest.php +++ /dev/null @@ -1,94 +0,0 @@ -api->qrCode->create(array("type" => "upi_qr","name" => "Store_1", "usage" => "single_use","fixed_amount" => 1,"payment_amount" => 300,"customer_id" => $this->customerId, "description" => "For Store 1","close_by" => strtotime('+3 minutes', time()),"notes" => array("purpose" => "Test UPI QR code notes"))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('qr_code',$data->toArray())); - } - - /** - * Fetch all Qr code - */ - public function testFetchAllQrCode() - { - $data = $this->api->plan->all(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(is_array($data['items'])); - } - - /** - * Fetch a Qr code - */ - public function testFetchQrCode() - { - $data = $this->api->qrCode->fetch($this->qrCodeId); - - $this->assertTrue(is_array($data->toArray())); - - } - - /** - * Fetch a Qr code for customer id - */ - public function testFetchQrCodeByCustomerId() - { - $data = $this->api->qrCode->all(["customer_id" => $this->customerId ]); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(is_array($data['items'])); - } - - /** - * Fetch a Qr code for payment id - */ - public function testFetchQrCodePaymentById() - { - $data = $this->api->qrCode->all(); - - $this->assertTrue(is_array($data->toArray())); - - } - - /** - * Close a QR Code - */ - public function testCloseQrCode() - { - $qrCodeId = $this->api->qrCode->create(array("type" => "upi_qr","name" => "Store_1", "usage" => "single_use","fixed_amount" => 1,"payment_amount" => 300,"customer_id" => $this->customerId, "description" => "For Store 1","close_by" => strtotime('+3 minutes', time()), "notes" => array("purpose" => "Test UPI QR code notes"))); - - $data = $this->api->qrCode->fetch($qrCodeId->id)->close(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('qr_code',$data->toArray())); - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/RefundTest.php b/assets/php/razorpay-php/tests/RefundTest.php deleted file mode 100644 index 2f322bb..0000000 --- a/assets/php/razorpay-php/tests/RefundTest.php +++ /dev/null @@ -1,94 +0,0 @@ -api->payment->fetch($this->paymentId)->refund(array("amount"=> "100", "speed"=>"optimum", "receipt"=>"Receipt No. ".time())); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('refund',$data->toArray())); - } - - - /** - * Fetch multiple refunds for a payment - */ - public function testFetchMultipalRefund() - { - $data = $this->api->payment->fetch($this->paymentId)->fetchMultipleRefund(array("count"=>1)); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(is_array($data['items'])); - } - - /** - * Fetch a specific refund for a payment - */ - public function testFetchRefund() - { - $data = $this->api->payment->fetch($this->paymentId)->fetchRefund($this->refundId); - - $this->assertTrue(is_array($data->toArray())); - - } - - /** - * Fetch all refunds - */ - public function testFetchAllRefund() - { - $data = $this->api->refund->all(array("count"=>1)); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(is_array($data['items'])); - } - - /** - * Fetch particular refund - */ - public function testParticularRefund() - { - $data = $this->api->refund->fetch($this->refundId); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('refund',$data->toArray())); - } - - /** - * Update the refund - */ - public function testUpdateRefund() - { - $data = $this->api->refund->fetch($this->refundId)->edit(array('notes'=> array('notes_key_1'=>'Beam me up Scotty.', 'notes_key_2'=>'Engage'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('refund',$data->toArray())); - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/RegisterEmandateTest.php b/assets/php/razorpay-php/tests/RegisterEmandateTest.php deleted file mode 100644 index c606c0b..0000000 --- a/assets/php/razorpay-php/tests/RegisterEmandateTest.php +++ /dev/null @@ -1,138 +0,0 @@ -api->customer->create(array('name' => 'Razorpay User 21', 'email' => 'customer21@razorpay.com','fail_existing'=>'0')); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('customer',$data->toArray())); - } - - /** - * Create Order - */ - public function testCreateOrder() - { - $data = $this->api->order->create(array('receipt' => '123', 'amount' => 100, 'currency' => 'INR', 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('id',$data->toArray())); - } - - /** - * Send/Resend notifications - */ - public function testSendNotification() - { - $data = $this->api->invoice->fetch($this->invoiceId)->notifyBy('email'); - - $this->assertTrue(in_array('success',$data)); - - } - - /** - * Create registration link - */ - public function testCreateSubscriptionRegistration() - { - $data = $this->api->subscription->createSubscriptionRegistration(array('customer' => array('name' => 'Gaurav Kumar','email' => 'gaurav.kumar@example.com','contact' => '9123456780'),'amount' => 0,'currency' => 'INR','type' => 'link','description' => '12 p.m. Meals','subscription_registration' => array('method' => 'nach','auth_type' => 'physical','bank_account' => array('beneficiary_name' => 'Gaurav Kumar','account_number' => '11214311215411','account_type' => 'savings','ifsc_code' => 'HDFC0001233'),'nach' => array('form_reference1' => 'Recurring Payment for Gaurav Kumar','form_reference2' => 'Method Paper NACH'),'expire_at' => 1636772800,'max_amount' => 50000),'receipt' => 'Receipt No. '.time(),'sms_notify' => 1,'email_notify' => 1,'expire_by' => 1636772800,'notes' => array('note_key 1' => 'Beam me up Scotty','note_key 2' => 'Tea. Earl Gray. Hot.'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('id',$data->toArray())); - } - - /** - * Fetch Payment ID using Order ID - */ - public function testFetchPaymentByorderId() - { - $data = $this->api->order->fetch($this->orderId)->payments(); - - $this->assertTrue(is_array($data->toArray())); - } - - /** - * Fetch tokens by customer id - */ - public function testFetchTokenByCustomerId() - { - $data = $this->api->customer->fetch($this->customerId)->tokens()->all(); - - $this->assertTrue(is_array($data->toArray())); - } - - /** - * Fetch token by payment ID - */ - public function testFetchTokenByPaymentId() - { - $payment = $this->api->payment->all(); - - if(!empty($payment)){ - - $data = $this->api->payment->fetch($payment['items'][0]['id']); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey('id',$data->toArray()); - } - } - - /** - * Create an order to charge the customer - */ - public function testCreateOrderCharge() - { - $data = $this->api->order->create(array('receipt' => '122', 'amount' => 100, 'currency' => 'INR', 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('id',$data->toArray())); - } - - /** - * Create a Recurring Payment - */ - public function testCreateRecurring() - { - $order = $this->api->order->create(array("amount" => 100, "currency" => "INR","method" => "emandate", "payment_capture" => "1","customer_id" => $this->customerId ,"token" => array("auth_type" => "netbanking","max_amount" => 9999900,"expire_at" => 2147483647,"bank_account" => array("beneficiary_name" => "Gaurav Kumar","account_number" => "1121431121541121","account_type" => "savings","ifsc_code" => "HDFC0000001") - ),"receipt" => "Receipt No. 1")); - - $data = $this->api->payment->createRecurring(array('email'=>'gaurav.kumar@example.com','contact'=>'9123456789','amount'=>100,'currency'=>'INR','order_id'=>$order->id,'customer_id'=>$this->customerId,'token'=>$this->tokenId,'recurring'=>'1','description'=>'Creating recurring payment for Gaurav Kumar')); - - $this->assertTrue(is_array($data->toArray())); - - } - -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/RegisterNachTest.php b/assets/php/razorpay-php/tests/RegisterNachTest.php deleted file mode 100644 index 068d73e..0000000 --- a/assets/php/razorpay-php/tests/RegisterNachTest.php +++ /dev/null @@ -1,136 +0,0 @@ -api->customer->create(array('name' => 'Razorpay User 21', 'email' => 'customer21@razorpay.com','fail_existing'=>'0')); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('customer',$data->toArray())); - } - - /** - * Create Order - */ - public function testCreateOrderForNachTest() - { - $data = $this->api->order->create(array('receipt' => '123', 'amount' => 100, 'currency' => 'INR', 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('id',$data->toArray())); - } - - /** - * Send/Resend notifications - */ - public function testSendNotification() - { - $data = $this->api->invoice->fetch($this->invoiceId)->notifyBy('email'); - - $this->assertTrue(in_array('success',$data)); - } - - /** - * Create registration link - */ - public function testCreateSubscriptionRegistration() - { - $data = $this->api->subscription->createSubscriptionRegistration(array('customer' => array('name' => 'Gaurav Kumar','email' => 'gaurav.kumar@example.com','contact' => '9123456780'),'amount' => 0,'currency' => 'INR','type' => 'link','description' => '12 p.m. Meals','subscription_registration' => array('method' => 'nach','auth_type' => 'physical','bank_account' => array('beneficiary_name' => 'Gaurav Kumar','account_number' => '11214311215411','account_type' => 'savings','ifsc_code' => 'HDFC0001233'),'nach' => array('form_reference1' => 'Recurring Payment for Gaurav Kumar','form_reference2' => 'Method Paper NACH'),'expire_at' => 1636772800,'max_amount' => 50000),'receipt' => 'Receipt No. '.time(),'sms_notify' => 1,'email_notify' => 1,'expire_by' => 1636772800,'notes' => array('note_key 1' => 'Beam me up Scotty','note_key 2' => 'Tea. Earl Gray. Hot.'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('id',$data->toArray())); - } - - /** - * Fetch Payment ID using Order ID - */ - public function testFetchPaymentByorderId() - { - $data = $this->api->order->fetch($this->orderId)->payments(); - - $this->assertTrue(is_array($data->toArray())); - } - - /** - * Fetch tokens by customer id - */ - public function testFetchTokenByCustomerId() - { - $data = $this->api->customer->fetch($this->customerId)->tokens()->all(); - - $this->assertTrue(is_array($data->toArray())); - } - - /** - * Fetch token by payment ID - */ - public function testFetchTokenByPaymentId() - { - $payment = $this->api->payment->all(); - - if(!empty($payment)){ - - $data = $this->api->payment->fetch($payment['items'][0]['id']); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey('id',$data->toArray());; - } - } - - /** - * Create an order to charge the customer - */ - public function testCreateOrderCharge() - { - $data = $this->api->order->create(array('receipt' => '122', 'amount' => 100, 'currency' => 'INR', 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('id',$data->toArray())); - } - - /** - * Create a Recurring Payment - */ - public function testCreateRecurring() - { - $order = $this->api->order->create(array("amount" => 100, "currency" => "INR","method" => "emandate", "payment_capture" => "1","customer_id" => $this->customerId ,"token" => array("auth_type" => "netbanking","max_amount" => 9999900,"expire_at" => 2147483647,"bank_account" => array("beneficiary_name" => "Gaurav Kumar","account_number" => "1121431121541121","account_type" => "savings","ifsc_code" => "HDFC0000001") - ),"receipt" => "Receipt No. 1")); - - $data = $this->api->payment->createRecurring(array('email'=>'gaurav.kumar@example.com','contact'=>'9123456789','amount'=>100,'currency'=>'INR','order_id'=>$order->id,'customer_id'=>$this->customerId,'token'=>$this->tokenId,'recurring'=>'1','description'=>'Creating recurring payment for Gaurav Kumar')); - - $this->assertTrue(is_array($data->toArray())); - - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/RequestTest.php b/assets/php/razorpay-php/tests/RequestTest.php deleted file mode 100644 index 1bb7959..0000000 --- a/assets/php/razorpay-php/tests/RequestTest.php +++ /dev/null @@ -1,64 +0,0 @@ -api->customer->create(array('name' => 'Razorpay User 38', 'email' => 'customer38@razorpay.com' ,'fail_existing'=>'0')); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('customer',$data->toArray())); - } - - /** - * Edit customer - */ - public function testEditCustomer() - { - $data = $this->api->customer->fetch($this->customerId)->edit(array('name' => 'Razorpay User 21' ,'contact'=>'9123456780')); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array($this->customerId, $data->toArray())); - } - - /** - * Fetch customer All - */ - public function testFetchAll() - { - $data = $this->api->customer->all(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(is_numeric($data->count())); - - $this->assertTrue(is_array($data['items'])); - } - - /** - * Fetch a customer - */ - public function testFetchCustomer() - { - $data = $this->api->customer->fetch($this->customerId); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array($this->customerId, $data->toArray())); - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/SettlementTest.php b/assets/php/razorpay-php/tests/SettlementTest.php deleted file mode 100644 index 963e296..0000000 --- a/assets/php/razorpay-php/tests/SettlementTest.php +++ /dev/null @@ -1,103 +0,0 @@ -api->settlement->createOndemandSettlement(array("amount"=> 1221, "settle_full_balance"=> false, "description"=>"Testing","notes" => array("notes_key_1"=> "Tea, Earl Grey, Hot","notes_key_2"=> "Tea, Earl Grey… decaf."))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('settlement.ondemand',$data->toArray())); - } - - /** - * Fetch all settlements - */ - public function testAllSettlements() - { - $data = $this->api->settlement->all(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('collection',$data->toArray())); - } - - /** - * Fetch a settlement - */ - public function testFetchSettlement() - { - $data = $this->api->settlement->fetch($this->settlementId); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('settlement',$data->toArray())); - } - - /** - * Settlement report for a month - */ - public function testReports() - { - $data = $this->api->settlement->reports(array("year"=>2021,"month"=>9)); - - $this->assertTrue(is_array($data->toArray())); - - } - - /** - * Settlement recon - */ - public function testSettlementRecon() - { - $data = $this->api->settlement->settlementRecon(array('year' => 2021, 'month' => 9)); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey('items',$data); - } - - /** - * Fetch all on-demand settlements - */ - public function testFetchAllOndemandSettlement() - { - $data = $this->api->settlement->fetchAllOndemandSettlement(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(is_array($data['items'])); - } - - /** - * Fetch on-demand settlement by ID - */ - public function testFetchAllOndemandSettlementById() - { - $data = $this->api->settlement->fetch($this->settlementId)->TestFetchAllOndemandSettlementById(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(is_array($data['items'])); - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/SignatureVerificationTest.php b/assets/php/razorpay-php/tests/SignatureVerificationTest.php deleted file mode 100644 index 1037676..0000000 --- a/assets/php/razorpay-php/tests/SignatureVerificationTest.php +++ /dev/null @@ -1,67 +0,0 @@ -assertNull($this->api->utility->verifyPaymentSignature(array( - 'razorpay_order_id' => $orderId, - 'razorpay_payment_id' => $paymentId, - 'razorpay_signature' => $signature - ))); - } - - /** - * Verify PaymentLink verification - */ - public function testPaymentLinkVerification() - { - $paymentLinkId = 'plink_IH3cNucfVEgV68'; - $paymentId = 'pay_IH3d0ara9bSsjQ'; - $paymentLinkReferenceId = 'TSsd1989'; - $paymentLinkStatus = 'paid'; - $signature = '57bab821bfe7ebcf41b32e362d16aa23d408b76c36317f960ae99a9301e4d364'; - - $this->assertNull($this->api->utility->verifyPaymentSignature(array( - 'razorpay_payment_link_id' => $paymentLinkId, - 'razorpay_payment_link_reference_id' => $paymentLinkReferenceId, - 'razorpay_payment_link_status' => $paymentLinkStatus, - 'razorpay_payment_id' => $paymentId, - 'razorpay_signature' => $signature - ))); - } - - /** - * Verify Subscription verification - */ - public function testSubscriptionVerification() - { - $subscriptionId = 'sub_ID6MOhgkcoHj9I'; - $paymentId = 'pay_IDZNwZZFtnjyym'; - $signature = 'cbbaabf163d61fc9346b794b5f906bc2f6b0d944be71bc0e6b5c35fa21eade44'; - - $this->assertNull($this->api->utility->verifyPaymentSignature(array( - 'razorpay_subscription_id' => $subscriptionId, - 'razorpay_payment_id' => $paymentId, - 'razorpay_signature' => $signature - ))); - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/SubscriptionTest.php b/assets/php/razorpay-php/tests/SubscriptionTest.php deleted file mode 100644 index edd47ff..0000000 --- a/assets/php/razorpay-php/tests/SubscriptionTest.php +++ /dev/null @@ -1,147 +0,0 @@ -api->subscription->create(array('plan_id' => $this->plan, 'customer_notify' => 1,'quantity'=>1, 'total_count' => 6, 'addons' => array(array('item' => array('name' => 'Delivery charges', 'amount' => 3000, 'currency' => 'INR'))),'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('id',$data->toArray())); - } - - /** - * Fetch Subscription Link by ID - */ - public function testSubscriptionFetchId() - { - $data = $this->api->subscription->fetch($this->subscriptionId); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('plan_id',$data->toArray())); - } - - /** - * Pause a Subscription - */ - public function testPauseSubscription() - { - - $data = $this->api->subscription->fetch($this->subscriptionId)->pause(['pause_at'=>'now']); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('id',$data->toArray())); - - $this->assertTrue($data['status'] == 'paused'); - - } - - /** - * Resume a Subscription - */ - public function testResumeSubscription() - { - $data = $this->api->subscription->fetch($this->subscriptionId)->resume(['resume_at'=>'now']); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('id',$data->toArray())); - - } - - /** - * Update a Subscription - */ - public function testUpdateSubscription() - { - $data = $this->api->subscription->fetch($this->subscriptionId)->update(array('schedule_change_at'=>'cycle_end','quantity'=>2)); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('customer_id',$data->toArray())); - } - - /** - * Fetch Details of a Pending Update - */ - public function testPendingUpdate() - { - $data = $this->api->subscription->fetch($this->subscriptionId)->pendingUpdate(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('id',$data->toArray())); - } - - /** - * Cancel an Update - */ - public function testCancelUpdate() - { - $data = $this->api->subscription->fetch($this->subscriptionId)->cancelScheduledChanges(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('id',$data->toArray())); - } - - /** - * Fetch All Invoices for a Subscription - */ - public function testSubscriptionInvoices() - { - $data = $this->api->invoice->all(['subscription_id'=>$this->subscriptionId]); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(is_array($data['items'])); - } - - /** - * Fetch all Add-ons - */ - public function testFetchAddons() - { - $data = $this->api->addon->fetchAll(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(is_array($data['items'])); - } - - /** - * Fetch all subscriptions - */ - public function testFetchAllSubscriptions() - { - $data = $this->api->subscription->all(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(is_array($data['items'])); - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/TestCase.php b/assets/php/razorpay-php/tests/TestCase.php deleted file mode 100644 index 2bcf0a6..0000000 --- a/assets/php/razorpay-php/tests/TestCase.php +++ /dev/null @@ -1,27 +0,0 @@ -load(); -} - -class TestCase extends PhpUnitTest -{ - - public function setUp(): void - { - $apiKey = getenv("RAZORPAY_API_KEY") ? getenv("RAZORPAY_API_KEY") : ""; - $apiSecret = getenv("RAZORPAY_API_SECRET") ? getenv("RAZORPAY_API_SECRET") : ""; - - $this->api = new Api( $apiKey, $apiSecret); - } -} diff --git a/assets/php/razorpay-php/tests/TokenTest.php b/assets/php/razorpay-php/tests/TokenTest.php deleted file mode 100644 index a82a36b..0000000 --- a/assets/php/razorpay-php/tests/TokenTest.php +++ /dev/null @@ -1,117 +0,0 @@ -api->subscription->createSubscriptionRegistration(array('customer' => array('name' => 'Gaurav Kumar','email' => 'gaurav.kumar@example.com','contact' => '9123456780'),'amount' => 0,'currency' => 'INR','type' => 'link','description' => '12 p.m. Meals','subscription_registration' => array('method' => 'nach','auth_type' => 'physical','bank_account' => array('beneficiary_name' => 'Gaurav Kumar','account_number' => '11214311215411','account_type' => 'savings','ifsc_code' => 'HDFC0001233'),'nach' => array('form_reference1' => 'Recurring Payment for Gaurav Kumar','form_reference2' => 'Method Paper NACH'),'expire_at' => strtotime('+1 day'),'max_amount' => 50000),'receipt' => 'Receipt No. '.time(),'sms_notify' => 1,'email_notify' => 1,'expire_by' => strtotime('+1 day'),'notes' => array('note_key 1' => 'Beam me up Scotty','note_key 2' => 'Tea. Earl Gray. Hot.'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('id',$data->toArray())); - } - - /** - * Fetch token by payment id - */ - public function testFetchTokenByPaymentId() - { - $data = $this->api->payment->fetch($this->paymentId); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('payment',$data->toArray())); - } - - /** - * Fetch particular token - */ - public function testFetchTokenByCustomerId() - { - $data = $this->api->customer->fetch($this->customerId)->tokens()->fetch($this->tokenId); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('payment',$data->toArray())); - } - - public function testCreateToken() - { - $data = $this->api->token->create($this->requestAttribute($this->customerId)); - - self::$partnerTokenId = $data['id']; - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('card',$data->toArray())); - } - - public function testFetchToken() - { - $data = $this->api->token->fetchCardPropertiesByToken(['id'=>self::$partnerTokenId]); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('card',$data->toArray())); - } - - public function testProcessPaymentOnAlternatePAorPG() - { - $data = $this->api->token->processPaymentOnAlternatePAorPG(['id'=>self::$partnerTokenId]); - - $this->assertTrue(is_array($data->toArray())); - } - - public function testDeleteToken() - { - $data = $this->api->token->deleteToken(['id'=>self::$partnerTokenId]); - - $this->assertTrue(is_array($data->toArray())); - } - - public function requestAttribute($customerId){ - return [ - "customer_id" => $customerId, - "method" => "card", - "card" => [ - "number" => "4854980604708430", - "cvv" => "123", - "expiry_month" => "12", - "expiry_year" => "24", - "name" => "Gaurav Kumar", - ], - "authentication" => [ - "provider" => "razorpay", - "provider_reference_id" => "pay_123wkejnsakd" - ], - "notes" => [], - ]; - } - -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/TransferTest.php b/assets/php/razorpay-php/tests/TransferTest.php deleted file mode 100644 index 2d2efb8..0000000 --- a/assets/php/razorpay-php/tests/TransferTest.php +++ /dev/null @@ -1,193 +0,0 @@ -api->transfer->create(array('account' => $this->accountId, 'amount' => 500, 'currency' => 'INR')); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('collection',$data->toArray())); - } - - /** - * Create transfers from payment - */ - public function testCreateTransferPayment() - { - $data = $this->api->payment->fetch($this->paymentId)->transfer(array('transfers' => array(array('account'=> $this->accountId, 'amount'=> '100', 'currency'=>'INR', 'notes'=> array('name'=>'Gaurav Kumar', 'roll_no'=>'IEC2011025'), 'linked_account_notes'=>array('branch'), 'on_hold'=>'1', 'on_hold_until'=>'1671222870')))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('collection',$data->toArray())); - - } - - /** - * Create transfers from order - */ - public function testCreateTransferOrder() - { - $data = $this->api->order->create(array('amount' => 100,'currency' => 'INR','transfers' => array(array('account' =>$this->accountId,'amount' => 100,'currency' => 'INR','notes' => array('branch' => 'Acme Corp Bangalore North','name' => 'Gaurav Kumar'),'linked_account_notes' => array('branch'),'on_hold' => 1,'on_hold_until' => 1671222870)))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('transfer',$data->toArray())); - } - - /** - * Fetch transfer for a payment - */ - public function testFetchTransferPayment() - { - $data = $this->api->payment->fetch($this->paymentId)->transfers(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('collection',$data->toArray())); - } - - /** - * Fetch transfer for an order - */ - public function testFetchTransferOrder() - { - $order = $this->api->order->all(); - - if($order['count'] !== 0){ - - $data = $this->api->order->fetch($order['items'][0]['id'])->transfers(array('expand[]'=>'transfers')); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('order',$data->toArray())); - } - } - - /** - * Fetch transfer - */ - public function testFetchTransfer() - { - - $data = $this->api->transfer->fetch($this->transferId); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('order',$data->toArray())); - } - - /** - * Fetch transfers for a settlement - */ - public function testFetchSettlement() - { - $settlement = $this->api->transfer->all(array('expand[]'=> 'recipient_settlement')); - - if($settlement['count'] !== 0){ - - $data = $this->api->transfer->all(array('recipient_settlement_id'=> $settlement['items'][0]['recipient_settlement_id'])); - - $this->assertTrue(is_array($data->toArray())); - - } - } - - /** - * Fetch settlement details - */ - public function testFetchSettlementDetails() - { - $data = $this->api->transfer->all(array('expand[]'=> 'recipient_settlement')); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('collection',$data->toArray())); - - } - - /** - * Refund payments and reverse transfer from a linked account - */ - public function testRefundPayment() - { - $data = $this->api->payment->fetch($this->paymentId)->refund(array('amount'=> '100')); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('refund',$data->toArray())); - } - - /** - * Fetch payments of a linked account - */ - public function testFetchPaymentsLinkedAccounts() - { - $data = $this->api->payment->fetch($this->paymentId)->refund(array('amount'=> '100')); - - $this->assertTrue(is_array($data->toArray())); - } - - /** - * Reverse transfers from all linked accounts - */ - public function testReverseLinkedAccount() - { - $transfer = $this->api->transfer->create(array('account' => $this->accountId, 'amount' => 100, 'currency' => 'INR')); - - $data = $this->api->transfer->fetch($transfer->id)->reverse(array('amount'=>100)); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('refund',$data->toArray())); - } - - /** - * Hold settlements for transfers - */ - public function testHoldSettlements() - { - $data = $this->api->payment->fetch($this->paymentId)->transfer(array('transfers' => array(array('account' => $this->accountId, 'amount' => '100', 'currency' => 'INR', 'on_hold'=>'1')))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('collection',$data->toArray())); - } - - /** - * Modify settlement hold for transfers - */ - public function testModifySettlements() - { - $data = $this->api->transfer->fetch($this->transferId)->edit(array('on_hold'=>1)); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('transfer',$data->toArray())); - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/UpiTest.php b/assets/php/razorpay-php/tests/UpiTest.php deleted file mode 100644 index 2847f56..0000000 --- a/assets/php/razorpay-php/tests/UpiTest.php +++ /dev/null @@ -1,139 +0,0 @@ -api->customer->create(array('name' => 'Razorpay User 21', 'email' => 'customer21@razorpay.com','fail_existing'=>'0')); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('customer',$data->toArray())); - } - - /** - * Create Order - */ - public function testCreateOrder() - { - $data = $this->api->order->create(array('receipt' => '123', 'amount' => 100, 'currency' => 'INR', 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey('id',$data->toArray()); - } - - /** - * Send/Resend notifications - */ - public function testSendNotification() - { - $data = $this->api->invoice->fetch($this->invoiceId)->notifyBy('email'); - - $this->assertTrue(in_array('success',$data)); - - } - - /** - * Create registration link - */ - public function testCreateSubscriptionRegistration() - { - $data = $this->api->subscription->createSubscriptionRegistration(array('customer' => array('name' => 'Gaurav Kumar','email' => 'gaurav.kumar@example.com','contact' => '9123456780'),'amount' => 0,'currency' => 'INR','type' => 'link','description' => '12 p.m. Meals','subscription_registration' => array('method' => 'nach','auth_type' => 'physical','bank_account' => array('beneficiary_name' => 'Gaurav Kumar','account_number' => '11214311215411','account_type' => 'savings','ifsc_code' => 'HDFC0001233'),'nach' => array('form_reference1' => 'Recurring Payment for Gaurav Kumar','form_reference2' => 'Method Paper NACH'),'expire_at' => 1636772800,'max_amount' => 50000),'receipt' => 'Receipt No. '.time(),'sms_notify' => 1,'email_notify' => 1,'expire_by' => 1636772800,'notes' => array('note_key 1' => 'Beam me up Scotty','note_key 2' => 'Tea. Earl Gray. Hot.'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('id',$data->toArray())); - } - - /** - * Cancel a registration link - */ - public function testCancelRegistrationLink() - { - $data = $this->api->subscription->createSubscriptionRegistration(array('customer' => array('name' => 'Gaurav Kumar','email' => 'gaurav.kumar@example.com','contact' => '9123456780'),'amount' => 0,'currency' => 'INR','type' => 'link','description' => '12 p.m. Meals','subscription_registration' => array('method' => 'nach','auth_type' => 'physical','bank_account' => array('beneficiary_name' => 'Gaurav Kumar','account_number' => '11214311215411','account_type' => 'savings','ifsc_code' => 'HDFC0001233'),'nach' => array('form_reference1' => 'Recurring Payment for Gaurav Kumar','form_reference2' => 'Method Paper NACH'),'expire_at' => 1636772800,'max_amount' => 50000),'receipt' => 'Receipt No. '.time(),'sms_notify' => 1,'email_notify' => 1,'expire_by' => 1636772800,'notes' => array('note_key 1' => 'Beam me up Scotty','note_key 2' => 'Tea. Earl Gray. Hot.'))); - - $data = $this->api->invoice->fetch($data->id)->cancel(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('invoice_number',$data->toArray())); - - } - - /** - * Fetch Payment ID using Order ID - */ - public function testFetchPaymentByorderId() - { - $data = $this->api->order->fetch($this->orderId)->payments(); - - $this->assertTrue(is_array($data->toArray())); - - } - - /** - * Fetch tokens by customer id - */ - public function testFetchTokenByCustomerId() - { - $data = $this->api->customer->fetch($this->customerId)->tokens()->all(); - - $this->assertTrue(is_array($data->toArray())); - - } - - /** - * Fetch token by payment ID - */ - public function testFetchTokenByPaymentId() - { - $payment = $this->api->payment->all(); - - if(!empty($payment)){ - - $data = $this->api->payment->fetch($payment['items'][0]['id']); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey('id',$data->toArray()); - } - } - - - /** - * Create an order to charge the customer - */ - public function testCreateOrderCharge() - { - $data = $this->api->order->create(array('receipt' => '122', 'amount' => 100, 'currency' => 'INR', 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey('id',$data->toArray()); - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/VirtualAccountTest.php b/assets/php/razorpay-php/tests/VirtualAccountTest.php deleted file mode 100644 index e2cdbf1..0000000 --- a/assets/php/razorpay-php/tests/VirtualAccountTest.php +++ /dev/null @@ -1,103 +0,0 @@ -api->virtualAccount->create(array('receivers' => array('types' => array('bank_account')),'description' => 'Virtual Account created for Raftar Soft','customer_id' => $this->customerId ,'close_by' => strtotime('+16 minutes', time()), 'notes' => array('project_name' => 'Banking Software'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey('customer_id',$data->toArray()); - } - - /** - * Create a virtual account with TPV - */ - public function testCreateVirtualAccountTpv() - { - $data = $this->api->virtualAccount->create(array('receivers' => array('types'=> array('bank_account')),'allowed_payers' => array(array('type'=>'bank_account','bank_account'=>array('ifsc'=>'RATN0VAAPIS','account_number'=>'2223330027558515'))),'description' => 'Virtual Account created for Raftar Soft','customer_id' => $this->customerId, 'notes' => array('project_name' => 'Banking Software'))); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey('customer_id',$data->toArray()); - } - - /** - * Fetch all virtual account - */ - public function testFetchAllVirtualAccounts() - { - $data = $this->api->virtualAccount->all(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertTrue(in_array('collection',$data->toArray())); - } - - /** - * Fetch payments for a virtual account - */ - public function testFetchPayment() - { - $data = $this->api->virtualAccount->fetch($this->virtualAccountId)->payments(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey('items',$data->toArray()); - } - - /** - * Refund payments made to a virtual account - */ - public function testFetchRefund() - { - $payment = $this->api->payment->all(); - - $data = $this->api->payment->fetch($this->paymentId)->refunds(); - - $this->assertTrue(is_array($data->toArray())); - - } - - /** - * Close virtual account - */ - public function testCloseVirtualAccount() - { - $payment = $this->api->virtualAccount->all(); - - if($payment['count'] !== 0){ - - $data = $this->api->virtualAccount->fetch($payment['items'][0]['id'])->close(); - - $this->assertTrue(is_array($data->toArray())); - - $this->assertArrayHasKey('id',$data->toArray()); - } - } -} \ No newline at end of file diff --git a/assets/php/razorpay-php/tests/bootstrap.php b/assets/php/razorpay-php/tests/bootstrap.php deleted file mode 100644 index 85199e4..0000000 --- a/assets/php/razorpay-php/tests/bootstrap.php +++ /dev/null @@ -1,2 +0,0 @@ - - - - - - Payment Success - - - - -
-
- -
-

Payment Successful!

-

Thank you for your payment. Your transaction was successful.

- Back to Home -
- - diff --git a/assets/php/verify.php b/assets/php/verify.php deleted file mode 100644 index df15af5..0000000 --- a/assets/php/verify.php +++ /dev/null @@ -1,50 +0,0 @@ - $_POST['razorpay_order_id'], - 'razorpay_payment_id' => $payment_id, - 'razorpay_signature' => $razorpay_signature - ); - $api->utility->verifyPaymentSignature($attributes); -} catch (\Razorpay\Api\Errors\SignatureVerificationError $e) { - $success = false; - $error = 'Razorpay Signature Verification Failed'; -} - -if ($success) { - // Payment is successful, update your database or perform other actions - - // Fetch the payment details - $payment = $api->payment->fetch($payment_id); - - // You can access payment details like $payment->amount, $payment->status, etc. - $amount_paid = $payment->amount / 100; // Convert amount from paise to rupees - - echo "Payment Successful! Amount: $amount_paid INR"; -} else { - // Payment failed, handle accordingly - echo "Payment Failed! Error: $error"; -} -?> diff --git a/index.html b/index.html new file mode 100644 index 0000000..3ff192f --- /dev/null +++ b/index.html @@ -0,0 +1,253 @@ + + + + + + + + + + + + + + + + + Charity + + + + + + + + +

+ + + + +
+
+
+

Start making a contribution

+
+ Be part of a number of people and start making a change in this world. Change someone's life for + better. +
+ +
+
+
+ + +
+
+

+ Our Center +

+
+
+ +

Varane James

+

Lorem ipsum dolor sit amet consectetur adipisicing elit. Quos, consequuntur repellat esse et + deserunt quibusdam debitis provident. Iure, recusandae sint!

+
+
+ +

Kevin Harden

+

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Voluptatibus accusamus voluptatum + soluta suscipit veniam? Earum minus aspernatur laborum! Repellendus, quia!

+
+
+ +

Anastasia lea

+

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Laboriosam incidunt earum dolorum aut + fugiat. Culpa, autem? Accusantium animi asperiores velit.

+
+
+ +

Anastasia lea

+

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Laboriosam incidunt earum dolorum aut + fugiat. Culpa, autem? Accusantium animi asperiores velit.

+
+
+
+
+ +
+ +
+ +
+
+

Different ways you can help

+
+
+
+ ... +
+
Medical services
+

Some quick example text to build on the card title and make up the bulk + of the card's + content.

+ Go to Education +
+
+
+
+
+ ... +
+
Health Charities
+

Some quick example text to build on the card title and make up the bulk + of the card's + content.

+ Go to Health +
+
+
+
+
+ ... +
+
Construction charities
+

Some quick example text to build on the card title and make up the bulk + of the card's + content.

+ Go to Construction +
+
+
+
+
+
+ +
+ +
+ +
+
+

+ You can also make a request for donation +

+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Esse itaque sed nam minima. Ullam qui corporis + non consectetur deserunt aspernatur in, tempore maxime similique blanditiis praesentium quaerat neque + alias incidunt voluptas, eaque perferendis itaque hic aut. Cum expedita possimus aliquam? +

+ +
+
+ +
+ + + +
+
+
+
+
Contact us
+
+

Phone number: +971 78947084

+

Email: charityforeveryone@gmail.com

+
+
+
Social media
+ +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/index.php b/index.php index 54b4417..e08c664 100644 --- a/index.php +++ b/index.php @@ -103,8 +103,8 @@ ?>
- Be part of a number of people and start making a change in this world. Change someone's life for - better. + Welcome to Charity NGO, where every action counts towards building a better future. Together, we work to make a meaningful difference in the lives of those in need. Join us in our mission to create lasting change through compassion, innovation, and collaboration. Thank you for being a part of this journey! +
@@ -112,36 +112,74 @@ +
+
+
+
+

Who We Are

+

+ Charity NGO is a non-profit organization dedicated to creating positive change through targeted initiatives in education, healthcare, and infrastructure development. Since our establishment, we've been committed to bridging gaps and building stronger communities. +

+
+

Our Impact

+
+
+

1200+

+

Students Supported

+
+
+

460+

+

Medical Aids

+
+
+

80+

+

Construction Projects

+
+
+
+
+
+
+
+

Our Mission

+

To empower communities through sustainable development initiatives, focusing on education, healthcare, and infrastructure improvements that create lasting positive change.

+
+
+

Our Vision

+

A world where every individual has access to quality education, proper healthcare, and safe infrastructure, enabling them to live dignified lives and reach their full potential.

+
+
+
+
+
+
+

- Our Center + Our Key Employees

-

Varane James

-

Lorem ipsum dolor sit amet consectetur adipisicing elit. Quos, consequuntur repellat esse et - deserunt quibusdam debitis provident. Iure, recusandae sint!

+

John Doe

+

John's expertise in project management and his dedication to delivering impactful results make him a cornerstone of our success. His leadership ensures every initiative runs smoothly and efficiently.

- -

Kevin Harden

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Voluptatibus accusamus voluptatum - soluta suscipit veniam? Earum minus aspernatur laborum! Repellendus, quia!

+ +

Mark Lee

+

Mark’s expertise in fundraising and building partnerships is vital to the sustainability of our NGO. His dedication to securing resources allows us to continue providing essential support to those in need.

-

Anastasia lea

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Laboriosam incidunt earum dolorum aut - fugiat. Culpa, autem? Accusantium animi asperiores velit.

+

Jane Smith

+

Jane’s strategic approach and creative thinking have been pivotal in expanding our NGO's reach and raising awareness. Her passion for social change inspires everyone to work towards a better tomorrow.

- +

Anastasia lea

-

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Laboriosam incidunt earum dolorum aut - fugiat. Culpa, autem? Accusantium animi asperiores velit.

+

Emily’s deep understanding of community needs and her innovative program development are critical to our NGO’s success. She ensures that our efforts are both impactful and aligned with the values we stand for.

@@ -159,10 +197,8 @@
...
-
Medical services
-

Some quick example text to build on the card title and make up the bulk - of the card's - content.

+
Medical charities
+

Your donation to medical causes helps provide life-saving treatments, medications, and care to those in need. Together, we can improve health outcomes and save countless lives in underserved communities.

Go to Education
@@ -172,9 +208,7 @@ ...
Health Charities
-

Some quick example text to build on the card title and make up the bulk - of the card's - content.

+

By donating to educational initiatives, you empower individuals with the knowledge and skills needed to create better futures. Your support helps break the cycle of poverty and unlocks opportunities for generations to come.

Go to Health
@@ -184,9 +218,7 @@ ...
Construction charities
-

Some quick example text to build on the card title and make up the bulk - of the card's - content.

+

Your contribution to construction efforts builds strong, safe, and infrastructure for communities in need. Together, we provide essential housing, schools, and health facilities that uplift entire communities.

Go to Construction
@@ -198,24 +230,190 @@
+ + +
+ +
+
+

Our Impact & Success Stories

+ + +
+
+
+ +

2500+

+

Total Requests Helped

+
+
+
+
+ +

1200+

+

Education Requests

+
+
+
+
+ +

800+

+

Healthcare Requests

+
+
+
+
+ +

500+

+

Construction Projects

+
+
+
+ + +

Recent Success Stories

+
+
+
+
+ Education +
School Building Project
+
+

Successfully constructed a new school building in rural area, benefiting over 200 students with modern educational facilities.

+ +
+
+
+
+
+ Healthcare +
Medical Camp Initiative
+
+

Organized free medical camps in underserved communities, providing healthcare services to over 1000 individuals.

+ +
+
+
+
+
+ Construction +
Community Center
+
+

Built a multipurpose community center serving as a hub for educational programs and community gatherings.

+ +
+
+
+ + + +
+
+ +

- You can also make a request for donation + If you are in need of donation, make a request here,

- Lorem ipsum dolor sit amet consectetur adipisicing elit. Esse itaque sed nam minima. Ullam qui corporis - non consectetur deserunt aspernatur in, tempore maxime similique blanditiis praesentium quaerat neque - alias incidunt voluptas, eaque perferendis itaque hic aut. Cum expedita possimus aliquam? + If you're in need of support, we’re here to help. Our donation program is designed to assist individuals and organizations facing challenges in medical, educational, or construction-related areas. Please submit your request through the form below, and our team will review it promptly. Together, we can work towards building a brighter future for all.

- +
+

Want to Make a Difference?

+ +
- +