diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 00000000..13566b81 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/php.xml b/.idea/php.xml new file mode 100644 index 00000000..29059d00 --- /dev/null +++ b/.idea/php.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..35eb1ddf --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/admin/language/en-gb/extension/payment/razorpay.php b/admin/language/en-gb/extension/payment/razorpay.php index b4ac7ddf..e9513220 100644 --- a/admin/language/en-gb/extension/payment/razorpay.php +++ b/admin/language/en-gb/extension/payment/razorpay.php @@ -112,7 +112,7 @@ $_['text_invoice'] = 'Invoice Details'; $_['text_not_select_sub_ID'] = 'Please Select Subscription '; $_['text_subscription_status'] = 'Enable Subscription in Settings.'; -$_['text_webhook_cron_header'] = 'Set the cron job in your WHMCS site server to call the Cron URL in every 5 mins frequncy.'; +$_['text_webhook_cron_header'] = 'Set the cron job in your opencart site server to call the Cron URL in every 5 mins frequncy.'; $_['text_webhook_cron'] = '
  1. In CLI run crontab -e
  2. Add the command: %s
  3. Save.
  4. Run: crontab -l confirm below if cron is added.
'; $_['text_webhook_cron_confirm'] = 'Confirm Cron created.'; diff --git a/catalog/controller/extension/payment/razorpay.php b/catalog/controller/extension/payment/razorpay.php index ca26b8d7..025c8a20 100755 --- a/catalog/controller/extension/payment/razorpay.php +++ b/catalog/controller/extension/payment/razorpay.php @@ -207,7 +207,7 @@ private function get_order_creation_data($order_id) $order = $this->model_checkout_order->getOrder($this->session->data['order_id']); $data = [ - 'receipt' => $order_id, + 'receipt' => (string)$order_id, 'amount' => $this->currency->format($order['total'], $order['currency_code'], $order['currency_value'], false) * 100, 'currency' => $order['currency_code'], 'payment_capture' => ($this->config->get('payment_razorpay_payment_action') === 'authorize') ? 0 : 1 @@ -557,12 +557,12 @@ public function getMerchantPreferences(array &$preferences) { try { - $response = Requests::get($this->api->getBaseUrl() . 'preferences?key_id=' . $this->api->getKey()); + $response = Requests::get($this->api->getBaseUrl() . '/preferences?key_id=' . $this->api->getKey()); } catch (Exception $e) { $this->log->write($e->getMessage()); - throw new Exception($e->getMessage(), $e->getHttpCode()); + throw new Exception($e->getMessage(), $e->getCode()); } $preferences['is_hosted'] = false; diff --git a/system/library/razorpay/razorpay-sdk/.editorconfig b/system/library/razorpay/razorpay-sdk/.editorconfig new file mode 100644 index 00000000..1cb32207 --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/.editorconfig @@ -0,0 +1,14 @@ +# 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/system/library/razorpay/razorpay-sdk/.github/ISSUE_TEMPLATE/feature.yml b/system/library/razorpay/razorpay-sdk/.github/ISSUE_TEMPLATE/feature.yml new file mode 100644 index 00000000..b13ce74f --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/.github/ISSUE_TEMPLATE/feature.yml @@ -0,0 +1,39 @@ +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/system/library/razorpay/razorpay-sdk/.github/ISSUE_TEMPLATE/issue_report.yml b/system/library/razorpay/razorpay-sdk/.github/ISSUE_TEMPLATE/issue_report.yml new file mode 100644 index 00000000..c8e894d5 --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/.github/ISSUE_TEMPLATE/issue_report.yml @@ -0,0 +1,62 @@ +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/system/library/razorpay/razorpay-sdk/.github/dependabot.yml b/system/library/razorpay/razorpay-sdk/.github/dependabot.yml new file mode 100644 index 00000000..7d297704 --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/.github/dependabot.yml @@ -0,0 +1,8 @@ +version: 2 +updates: +- package-ecosystem: composer + directory: "/" + schedule: + interval: daily + time: "04:00" + timezone: Asia/Calcutta diff --git a/system/library/razorpay/razorpay-sdk/.github/pull_request_template.md b/system/library/razorpay/razorpay-sdk/.github/pull_request_template.md new file mode 100644 index 00000000..ccbd370e --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/.github/pull_request_template.md @@ -0,0 +1,8 @@ +## 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/system/library/razorpay/razorpay-sdk/.github/workflows/ci.yml b/system/library/razorpay/razorpay-sdk/.github/workflows/ci.yml new file mode 100644 index 00000000..869955d8 --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/.github/workflows/ci.yml @@ -0,0 +1,37 @@ +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/system/library/razorpay/razorpay-sdk/.github/workflows/security.yml b/system/library/razorpay/razorpay-sdk/.github/workflows/security.yml new file mode 100644 index 00000000..65b89bc7 --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/.github/workflows/security.yml @@ -0,0 +1,51 @@ +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/system/library/razorpay/razorpay-sdk/.gitignore b/system/library/razorpay/razorpay-sdk/.gitignore new file mode 100644 index 00000000..4100c39b --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/.gitignore @@ -0,0 +1,5 @@ +composer.lock +phpunit.xml +vendor/ +reports/ +**/.DS_Store \ No newline at end of file diff --git a/system/library/razorpay/razorpay-sdk/.semgrepignore b/system/library/razorpay/razorpay-sdk/.semgrepignore new file mode 100644 index 00000000..e69de29b diff --git a/system/library/razorpay/razorpay-sdk/.travis.yml b/system/library/razorpay/razorpay-sdk/.travis.yml new file mode 100644 index 00000000..f2671448 --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/.travis.yml @@ -0,0 +1,45 @@ +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/system/library/razorpay/razorpay-sdk/CHANGELOG.md b/system/library/razorpay/razorpay-sdk/CHANGELOG.md index 877b28d6..6a788fb7 100644 --- a/system/library/razorpay/razorpay-sdk/CHANGELOG.md +++ b/system/library/razorpay/razorpay-sdk/CHANGELOG.md @@ -4,6 +4,42 @@ Changelog for Razorpay-PHP SDK. Follows [keepachangelog.com](https://keepachange ## 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 @@ -221,4 +257,4 @@ Changelog for Razorpay-PHP SDK. Follows [keepachangelog.com](https://keepachange [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 \ No newline at end of file +[2.8.2]: https://github.com/razorpay/razorpay-php/compare/2.8.0...2.8.2 diff --git a/system/library/razorpay/razorpay-sdk/Deprecated.php b/system/library/razorpay/razorpay-sdk/Deprecated.php index 1d87f7df..ca439da7 100644 --- a/system/library/razorpay/razorpay-sdk/Deprecated.php +++ b/system/library/razorpay/razorpay-sdk/Deprecated.php @@ -5,16 +5,16 @@ * Allows for Composer to autoload the old PSR-0 classes via the custom autoloader. * This prevents issues with _extending final classes_ (which was the previous solution). * - * Please see the Changelog for the 2.0.0 release for upgrade notes. + * Please see the Changelog for the 2.0.4 release for upgrade notes. * * @package Requests * - * @deprecated 2.0.0 Use the PSR-4 class names instead. + * @deprecated 2.0.4 Use the PSR-4 class names instead. */ define("REQUESTS_SILENCE_PSR0_DEPRECATIONS",true); if (class_exists('WpOrg\Requests\Autoload') === false) { - require_once __DIR__. 'libs/Requests-2.0.0/src/Autoload.php'; + require_once __DIR__. 'libs/Requests-2.0.4/src/Autoload.php'; } WpOrg\Requests\Autoload::register(); \ No newline at end of file diff --git a/system/library/razorpay/razorpay-sdk/LICENSE b/system/library/razorpay/razorpay-sdk/LICENSE new file mode 100644 index 00000000..8932b46e --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/LICENSE @@ -0,0 +1,7 @@ +Copyright 2019 Razorpay + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/system/library/razorpay/razorpay-sdk/README.md b/system/library/razorpay/razorpay-sdk/README.md index c905ea11..bab14ef1 100644 --- a/system/library/razorpay/razorpay-sdk/README.md +++ b/system/library/razorpay/razorpay-sdk/README.md @@ -52,19 +52,26 @@ The resources can be accessed via the `$api` object. All the methods invocations $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) @@ -74,6 +81,8 @@ The resources can be accessed via the `$api` object. All the methods invocations - [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 diff --git a/system/library/razorpay/razorpay-sdk/Razorpay.php b/system/library/razorpay/razorpay-sdk/Razorpay.php index 0c679462..9a00b18b 100644 --- a/system/library/razorpay/razorpay-sdk/Razorpay.php +++ b/system/library/razorpay/razorpay-sdk/Razorpay.php @@ -1,11 +1,14 @@ =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/system/library/razorpay/razorpay-sdk/documents/Iin.md b/system/library/razorpay/razorpay-sdk/documents/Iin.md new file mode 100644 index 00000000..bedb86b2 --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/documents/Iin.md @@ -0,0 +1,104 @@ +### 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/system/library/razorpay/razorpay-sdk/documents/account.md b/system/library/razorpay/razorpay-sdk/documents/account.md new file mode 100644 index 00000000..38b71904 --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/documents/account.md @@ -0,0 +1,447 @@ +## 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/system/library/razorpay/razorpay-sdk/documents/addon.md b/system/library/razorpay/razorpay-sdk/documents/addon.md index 9d88bc7b..70def94f 100644 --- a/system/library/razorpay/razorpay-sdk/documents/addon.md +++ b/system/library/razorpay/razorpay-sdk/documents/addon.md @@ -3,7 +3,7 @@ ### Create an addon ```php -$api->subscription->fetch($subscriptionId)->createAddon(array('item' => array('name' => 'Extra Chair', 'amount' => 30000, 'currency' => 'INR'), 'quantity' => 2)) +$api->subscription->fetch($subscriptionId)->createAddon(array('item' => array('name' => 'Extra Chair', 'amount' => 30000, 'currency' => 'INR'), 'quantity' => 2)); ``` **Parameters:** @@ -11,8 +11,8 @@ $api->subscription->fetch($subscriptionId)->createAddon(array('item' => array('n | Name | Type | Description | |-------|-----------|--------------------------------------------------| | subscriptionId* | boolean | The subscription ID to which the add-on is being added. | -| items* | array | Details of the add-on you want to create. | -| quantity* | integer | This specifies the number of units of the add-on to be charged to the customer. | +| 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 @@ -56,10 +56,10 @@ $api->addon->all($options); | 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) | +| 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 @@ -110,6 +110,7 @@ $api->addon->fetch($addonId); | Name | Type | Description | |-----------------|---------|------------------------------------------------------------------------------| | addonId* | string | addon id to be fetched | + **Response:** ```json { @@ -146,19 +147,13 @@ $api->addon->fetch($addonId); ```php $api->addon->fetch($addonId)->delete(); - -**Parameters:** - -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| addonId* | string | addon id to be fetched ``` **Parameters:** -| Name | Type | Description | -|-----------------|---------|------------------------------------------------------------------------------| -| addonId* | string | addon id to be deleted | +| Name | Type | Description | +|-----------------|---------|--------------| +| addonId* | string | addon id to be deleted | **Response:** ```json diff --git a/system/library/razorpay/razorpay-sdk/documents/card.md b/system/library/razorpay/razorpay-sdk/documents/card.md index 8dc64269..5c81cfe9 100644 --- a/system/library/razorpay/razorpay-sdk/documents/card.md +++ b/system/library/razorpay/razorpay-sdk/documents/card.md @@ -2,7 +2,7 @@ ### 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')); +$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:** @@ -91,7 +91,7 @@ $api->subscription->createSubscriptionRegistration(array('customer'=>array('name | Name | Type | Description | |-----------------|---------|------------------------------------------------------------------------------| -| customer | array | Details of the customer to whom the registration link will be sent. | +| 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) | @@ -213,7 +213,7 @@ $api->order->create(array('amount' => '100', 'currency' => 'INR', 'customer_id'= ## Create a recurring payment ```php -$api->payment->createRecurring(['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'))); +$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:** @@ -460,8 +460,23 @@ $api->card->fetch($cardId); | Name | Type | Description | |-----------------|---------|------------------------------------------------------------------------------| -| cardId* | string | card id to be fetched | +| 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 @@ -484,6 +499,48 @@ $api->customer->fetch($customerId)->tokens()->delete($tokenId); ``` ------------------------------------------------------------------------------------------------------- +## 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**

diff --git a/system/library/razorpay/razorpay-sdk/documents/customer.md b/system/library/razorpay/razorpay-sdk/documents/customer.md index e653e15b..f5e83881 100644 --- a/system/library/razorpay/razorpay-sdk/documents/customer.md +++ b/system/library/razorpay/razorpay-sdk/documents/customer.md @@ -2,7 +2,7 @@ ### 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')); +$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:** @@ -37,7 +37,7 @@ $api->customer->create(array('name' => 'Razorpay User', 'email' => 'customer@raz ### Edit customer ```php -$api->customer->fetch($customerId)->edit(array('name' => 'Razorpay User', 'email' => 'customer@razorpay.com','notes'=> array('notes_key_1'=> 'Tea, Earl Grey, Hot','notes_key_2'=> 'Tea, Earl Grey… decaf'))); +$api->customer->fetch($customerId)->edit(array('name' => 'Razorpay User', 'email' => 'customer@razorpay.com', 'contact' => '9999999999')); ``` **Parameters:** @@ -69,7 +69,7 @@ $api->customer->fetch($customerId)->edit(array('name' => 'Razorpay User', 'email ### Fetch all customer ```php -$api->customer->all($options) +$api->customer->all($options); ``` **Parameters:** @@ -106,7 +106,7 @@ $api->customer->all($options) ### Fetch a customer ```php -$api->customer->fetch($customerId) +$api->customer->fetch($customerId); ``` **Parameters:** @@ -131,6 +131,245 @@ $api->customer->fetch($customerId) ------------------------------------------------------------------------------------------------------- +### 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**

diff --git a/system/library/razorpay/razorpay-sdk/documents/dispute.md b/system/library/razorpay/razorpay-sdk/documents/dispute.md new file mode 100644 index 00000000..ee275f43 --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/documents/dispute.md @@ -0,0 +1,248 @@ +## 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/system/library/razorpay/razorpay-sdk/documents/document.md b/system/library/razorpay/razorpay-sdk/documents/document.md new file mode 100644 index 00000000..9308c775 --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/documents/document.md @@ -0,0 +1,71 @@ +## 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/system/library/razorpay/razorpay-sdk/documents/emandate.md b/system/library/razorpay/razorpay-sdk/documents/emandate.md index 4d4e2cc3..0589b816 100644 --- a/system/library/razorpay/razorpay-sdk/documents/emandate.md +++ b/system/library/razorpay/razorpay-sdk/documents/emandate.md @@ -2,7 +2,7 @@ ### 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')); +$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:** @@ -36,22 +36,25 @@ $api->customer->create(array('name' => 'Razorpay User', 'email' => 'customer@raz ### Create order ```php -$api->order->create(array('amount' => 0,'currency' => 'INR','method' => 'emandate','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' => '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')))); +$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 | 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 `emandate` | -| receipt | string | Your system order reference id. | -| notes | array | A key-value pair | -| token | array | A key-value pair | +| 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 @@ -63,29 +66,33 @@ Please refer this [doc](https://razorpay.com/docs/api/recurring-payments/emandat ### 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'=>'emandate','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.'))); +$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 | Details of the customer to whom the registration link will be sent. | +| 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 | Details of the authorization payment. | -| notes | array | A key-value pair | +| 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/recurring-payments/emandate/authorization-transaction/#121-create-a-registration-link) +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)->notify($medium); +$api->invoice->fetch($invoiceId)->notifyBy($medium); ``` **Parameters:** @@ -302,7 +309,7 @@ $api->customer->fetch($customerId)->tokens()->delete($tokenId); ### Create an order to charge the customer ```php -$api->order->create(array('receipt' => '123', 'amount' => 100, 'currency' => 'INR', 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); +$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:** diff --git a/system/library/razorpay/razorpay-sdk/documents/fund.md b/system/library/razorpay/razorpay-sdk/documents/fund.md index 0d65d802..933cda48 100644 --- a/system/library/razorpay/razorpay-sdk/documents/fund.md +++ b/system/library/razorpay/razorpay-sdk/documents/fund.md @@ -2,7 +2,7 @@ ### 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'))) +$api->fundAccount->create(array('customer_id'=>$customerId,'account_type'=>'bank_account','bank_account'=>array('name'=>'Gaurav Kumar', 'account_number'=>'11214311215411', 'ifsc'=>'HDFC0000053'))); ``` **Parameters:** @@ -16,18 +16,20 @@ $api->fundAccount->create(array('customer_id'=>$customerId,'account_type'=>'bank **Response:** ```json { - "id":"fa_Aa00000000001", - "entity":"fund_account", - "customer_id":"cust_Aa000000000001", - "account_type":"bank_account", - "bank_account":{ - "name":"Gaurav Kumar", - "account_number":"11214311215411", - "ifsc":"HDFC0000053", - "bank_name":"HDFC Bank" - }, - "active":true, - "created_at":1543650891 + "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 } ``` ------------------------------------------------------------------------------------------------------- @@ -47,18 +49,26 @@ $api->fundAccount->all(array('customer_id'=>$customerIds)); **Response:** ```json { - "id":"fa_Aa00000000001", - "entity":"fund_account", - "customer_id":"cust_Aa000000000001", - "account_type":"bank_account", - "bank_account":{ - "name":"Gaurav Kumar", - "account_number":"11214311215411", - "ifsc":"HDFC0000053", - "bank_name":"HDFC Bank" - }, - "active":true, - "created_at":1543650891 + "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 + } + ] } ``` ------------------------------------------------------------------------------------------------------- diff --git a/system/library/razorpay/razorpay-sdk/documents/invoice.md b/system/library/razorpay/razorpay-sdk/documents/invoice.md index a71ca359..abeb7118 100644 --- a/system/library/razorpay/razorpay-sdk/documents/invoice.md +++ b/system/library/razorpay/razorpay-sdk/documents/invoice.md @@ -13,9 +13,10 @@ $api->invoice->create(array ('type' => 'invoice','description' => 'Invoice for t |-----------------|---------|------------------------------------------------------------------------------| |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 | customer details in a array format | -|line_items* | array | Details of the line item that is billed in 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. | @@ -36,7 +37,12 @@ $api->invoice->create(array ('type' => 'invoice','date' => 1589994898, 'customer |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 | customer details in a array format | +| 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) @@ -77,58 +83,146 @@ $api->invoice->fetch($invoiceId); **Response:** ```json { - "id": "inv_E7q0tqkxBRzdau", + "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": null, - "invoice_number": null, - "customer_id": "cust_E7q0trFqXgExmT", + "receipt": "#0961", + "invoice_number": "#0961", + "customer_id": "cust_DAtUWmvpktokrT", "customer_details": { - "id": "cust_E7q0trFqXgExmT", + "id": "cust_DAtUWmvpktokrT", "name": "Gaurav Kumar", "email": "gaurav.kumar@example.com", - "contact": "9999999999", + "contact": "9977886633", "gstin": null, "billing_address": { - "id": "addr_E7q0ttqh4SGhAC", + "id": "addr_DAtUWoxgu91obl", "type": "billing_address", "primary": true, - "line1": "Ground & 1st Floor, SJR Cyber Laskar", - "line2": "Hosur Road", - "zipcode": "560068", - "city": "Bengaluru", - "state": "Karnataka", - "country": "in" - }, - "shipping_address": { - "id": "addr_E7q0ttKwVA1h2V", - "type": "shipping_address", - "primary": true, - "line1": "Ground & 1st Floor, SJR Cyber Laskar", - "line2": "Hosur Road", - "zipcode": "560068", - "city": "Bengaluru", - "state": "Karnataka", + "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": "9999999999" + "customer_contact": "9977886633" }, - "order_id": "order_E7q0tvRpC0WJwg", + "order_id": null, "line_items": [ { - "id": "li_E7q0tuPNg84VbZ", + "id": "li_DAweOizsysoJU6", "item_id": null, - "ref_id": null, - "ref_type": null, - "name": "Master Cloud Computing in 30 Days", - "description": "Book by Ravena Ravenclaw", - "amount": 399, - "unit_amount": 399, - "gross_amount": 399, + "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": 399, - "net_amount": 399, + "taxable_amount": 400, + "net_amount": 400, "currency": "INR", "type": "invoice", "tax_inclusive": false, @@ -141,58 +235,47 @@ $api->invoice->fetch($invoiceId); } ], "payment_id": null, - "status": "issued", - "expire_by": 1589765167, - "issued_at": 1579765167, + "status": "draft", + "expire_by": 1567103399, + "issued_at": null, "paid_at": null, "cancelled_at": null, "expired_at": null, - "sms_status": "pending", - "email_status": "pending", - "date": 1579765167, + "sms_status": null, + "email_status": null, + "date": 1566891149, "terms": null, - "partial_payment": true, - "gross_amount": 399, + "partial_payment": false, + "gross_amount": 600, "tax_amount": 0, - "taxable_amount": 399, - "amount": 399, - "amount_paid": 0, - "amount_due": 399, + "taxable_amount": 600, + "amount": 600, + "amount_paid": null, + "amount_due": null, "currency": "INR", "currency_symbol": "₹", - "description": "Invoice for the month of January 2020", - "notes": [], + "description": "This is a test invoice.", + "notes": { + "updated-key": "An updated note." + }, "comment": null, - "short_url": "https://rzp.io/i/2wxV8Xs", + "short_url": null, "view_less": true, "billing_start": null, "billing_end": null, "type": "invoice", "group_taxes_discounts": false, - "created_at": 1579765167 + "created_at": 1566906474, + "idempotency_key": null } ``` ------------------------------------------------------------------------------------------------------- -### 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 | - -**Response:** -For update invoice response please click [here](https://razorpay.com/docs/api/invoices/#update-an-invoice) -------------------------------------------------------------------------------------------------------- - ### Issue an invoice +Only an invoice in the `draft` state can be issued. ```php + $api->invoice->fetch($invoiceId)->issue(); ``` @@ -347,100 +430,85 @@ $api->invoice->fetch($invoiceId)->cancel(); **Response:** ```json { - "id": "inv_E7q0tqkxBRzdau", - "entity": "invoice", - "receipt": null, - "invoice_number": null, - "customer_id": "cust_E7q0trFqXgExmT", - "customer_details": { - "id": "cust_E7q0trFqXgExmT", - "name": "Gaurav Kumar", - "email": "gaurav.kumar@example.com", - "contact": "9972132594", - "gstin": null, - "billing_address": { - "id": "addr_E7q0ttqh4SGhAC", - "type": "billing_address", - "primary": true, - "line1": "Ground & 1st Floor, SJR Cyber Laskar", - "line2": "Hosur Road", - "zipcode": "560068", - "city": "Bengaluru", - "state": "Karnataka", - "country": "in" - }, - "shipping_address": { - "id": "addr_E7q0ttKwVA1h2V", - "type": "shipping_address", - "primary": true, - "line1": "Ground & 1st Floor, SJR Cyber Laskar", - "line2": "Hosur Road", - "zipcode": "560068", - "city": "Bengaluru", - "state": "Karnataka", - "country": "in" + "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_name": "Gaurav Kumar", - "customer_email": "gaurav.kumar@example.com", - "customer_contact": "9972132594" - }, - "order_id": "order_E7q0tvRpC0WJwg", - "line_items": [ - { - "id": "li_E7q0tuPNg84VbZ", - "item_id": null, - "ref_id": null, - "ref_type": null, - "name": "Master Cloud Computing in 30 Days", - "description": "Book by Ravena Ravenclaw", - "amount": 399, - "unit_amount": 399, - "gross_amount": 399, - "tax_amount": 0, - "taxable_amount": 399, - "net_amount": 399, - "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": "cancelled", - "expire_by": null, - "issued_at": 1579765167, - "paid_at": null, - "cancelled_at": 1579768206, - "expired_at": null, - "sms_status": "sent", - "email_status": "sent", - "date": 1579765167, - "terms": null, - "partial_payment": false, - "gross_amount": 399, - "tax_amount": 0, - "taxable_amount": 399, - "amount": 399, - "amount_paid": 0, - "amount_due": 399, - "currency": "INR", - "currency_symbol": "₹", - "description": null, - "notes": [], - "comment": null, - "short_url": "https://rzp.io/i/2wxV8Xs", - "view_less": true, - "billing_start": null, - "billing_end": null, - "type": "invoice", - "group_taxes_discounts": false, - "created_at": 1579765167, - "idempotency_key": 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 } ``` ------------------------------------------------------------------------------------------------------- @@ -448,7 +516,7 @@ $api->invoice->fetch($invoiceId)->cancel(); ### Send notification ```php -$api->invoice->fetch($invoiceId)->notify($medium); +$api->invoice->fetch($invoiceId)->notifyBy($medium); ``` **Parameters:** diff --git a/system/library/razorpay/razorpay-sdk/documents/item.md b/system/library/razorpay/razorpay-sdk/documents/item.md index 37b3c54a..1ff64852 100644 --- a/system/library/razorpay/razorpay-sdk/documents/item.md +++ b/system/library/razorpay/razorpay-sdk/documents/item.md @@ -18,12 +18,22 @@ $api->Item->create(array("name" => "Book / English August","description" => "An **Response:** ```json { - "id": "item_7Oxp4hmm6T4SCn", + "id": "item_JInaSLODeDUQiQ", "active": true, "name": "Book / English August", "description": "An indian story, Booker prize winner.", "amount": 20000, - "currency": "INR" + "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 } ``` @@ -48,31 +58,43 @@ $api->Item->all($options); ```json { "entity": "collection", - "count": 3, + "count": 2, "items": [ { - "id": "item_7Oy8OMV6BdEAac", - "active": true, - "name": "Book / Ignited Minds", - "description": null, - "amount": 15000, - "currency": "INR" - }, - { - "id": "item_7Oxp4hmm6T4SCn", + "id": "item_JInaSLODeDUQiQ", "active": true, "name": "Book / English August", "description": "An indian story, Booker prize winner.", "amount": 20000, - "currency": "INR" + "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_7OxoGnoxCuUKbo", - "active": true, - "name": "Book / English August", - "description": null, + "id": "item_JIPSg5L06yhHie", + "active": false, + "name": "Book / Ignited Minds - Updated name!", + "description": "New descirption too. :).", "amount": 20000, - "currency": "INR" + "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 } ] } @@ -92,12 +114,22 @@ $api->Item->fetch($itemId); **Response:** ```json { - "id": "item_7Oxp4hmm6T4SCn", + "id": "item_JInaSLODeDUQiQ", "active": true, "name": "Book / English August", "description": "An indian story, Booker prize winner.", "amount": 20000, - "currency": "INR" + "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 } ``` @@ -123,12 +155,22 @@ $api->Item->fetch($itemId)->edit(array("name" => "Book / Ignited Minds - Updated **Response:** ```json { - "id": "item_7Oy8OMV6BdEAac", + "id": "item_JInaSLODeDUQiQ", "active": true, "name": "Book / Ignited Minds - Updated name!", - "description": "New descirption too. :)", - "amount": 15000, - "currency": "INR" + "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 } ``` ------------------------------------------------------------------------------------------------------- diff --git a/system/library/razorpay/razorpay-sdk/documents/linkedAccount.md b/system/library/razorpay/razorpay-sdk/documents/linkedAccount.md new file mode 100644 index 00000000..6d3f910c --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/documents/linkedAccount.md @@ -0,0 +1,198 @@ +## 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/system/library/razorpay/razorpay-sdk/documents/order.md b/system/library/razorpay/razorpay-sdk/documents/order.md index 95e7f229..da873278 100644 --- a/system/library/razorpay/razorpay-sdk/documents/order.md +++ b/system/library/razorpay/razorpay-sdk/documents/order.md @@ -35,6 +35,44 @@ $api->order->create(array('receipt' => '123', 'amount' => 100, 'currency' => 'IN } ``` +------------------------------------------------------------------------------------------------------- +### 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 @@ -53,6 +91,7 @@ $api->order->all($options); | 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:** @@ -95,17 +134,21 @@ $api->order->fetch($orderId); ```json { - "id":"order_DaaS6LOUAASb7Y", - "entity":"order", - "amount":2200, - "amount_paid":0, - "amount_due":2200, - "currency":"INR", - "receipt":"Receipt #211", - "status":"attempted", - "attempts":1, - "notes":[], - "created_at":1572505143 + "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 } ``` ------------------------------------------------------------------------------------------------------- @@ -193,6 +236,182 @@ $api->order->fetch($orderId)->edit(array('notes'=> array('notes_key_1'=>'Beam me ``` ------------------------------------------------------------------------------------------------------- +### 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**
diff --git a/system/library/razorpay/razorpay-sdk/documents/papernach.md b/system/library/razorpay/razorpay-sdk/documents/papernach.md index 8fa8fff0..404031f6 100644 --- a/system/library/razorpay/razorpay-sdk/documents/papernach.md +++ b/system/library/razorpay/razorpay-sdk/documents/papernach.md @@ -2,7 +2,7 @@ ### 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')); +$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:** @@ -12,6 +12,7 @@ $api->customer->create(array('name' => 'Razorpay User', 'email' => 'customer@raz | 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:** @@ -40,7 +41,15 @@ $api->order->create(array('amount' => 0,'currency' => 'INR','method' => 'nach',' **Parameters:** -All parameters listed [here](https://razorpay.com/docs/api/route/#create-transfers-from-payments) are supported +| 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 @@ -116,7 +125,20 @@ $api->subscription->createSubscriptionRegistration(array('customer' => array('na ``` **Parameters:** -All parameters listed [here](https://razorpay.com/docs/api/recurring-payments/paper-nach/authorization-transaction/#121-create-a-registration-link) are supported + +| 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 @@ -213,7 +235,7 @@ All parameters listed [here](https://razorpay.com/docs/api/recurring-payments/pa ### Send/Resend notifications ```php -$api->invoice->fetch($invoiceId)->notify($medium); +$api->invoice->fetch($invoiceId)->notifyBy($medium); ``` **Parameters:** @@ -338,7 +360,7 @@ $api->invoice->fetch($invoiceId)->cancel(); ### Fetch Payment ID using Order ID ```php -$api->order->fetch($orderId)->payments() +$api->order->fetch($orderId)->payments(); ``` **Parameters:** @@ -509,7 +531,7 @@ $api->customer->fetch($customerId)->tokens()->delete($tokenId); ### Create an order to charge the customer ```php -$api->order->create(array('receipt' => '123', 'amount' => 100, 'currency' => 'INR', 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); +$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:** @@ -518,6 +540,7 @@ $api->order->create(array('receipt' => '123', 'amount' => 100, 'currency' => 'IN |-----------------|---------|------------------------------------------------------------------------------| | 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:** diff --git a/system/library/razorpay/razorpay-sdk/documents/payment.md b/system/library/razorpay/razorpay-sdk/documents/payment.md index 38d55fef..0f1ea199 100644 --- a/system/library/razorpay/razorpay-sdk/documents/payment.md +++ b/system/library/razorpay/razorpay-sdk/documents/payment.md @@ -12,7 +12,7 @@ $api->payment->fetch($paymentId)->capture(array('amount'=>$amount,'currency' => |-----------|---------|--------------------------------------------------------------------------------| | 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) | +| currency* | string | The currency of the payment (defaults to INR) | **Response:** ```json @@ -56,7 +56,7 @@ $api->payment->fetch($paymentId)->capture(array('amount'=>$amount,'currency' => ### Fetch all payments ```php -$api->payment->all($options) +$api->payment->all($options); ``` **Parameters:** @@ -67,6 +67,7 @@ $api->payment->all($options) | 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 @@ -251,6 +252,7 @@ $api->payment->fetch($paymentId)->edit(array('notes'=> array('key_1'=> 'value1', "wallet": null, "vpa": null, "email": "testme@acme.com", + "customer_id": "cust_JR4BVKjKyJ7enk", "notes": { "key1": "value1", "key2": "value2" @@ -275,13 +277,13 @@ $api->payment->fetch($paymentId)->edit(array('notes'=> array('key_1'=> 'value1', Request #1: Card ```php -$api->payment->all(array('expand[]'=>'card') +$api->payment->all(array('expand[]'=>'card')); ``` Request #2: EMI ```php -$api->payment->all(array('expand[]'=>'emi') +$api->payment->all(array('expand[]'=>'emi')); ``` **Response:**
@@ -424,7 +426,9 @@ $api->payment->createPaymentJson(array('amount' => 100,'currency' => 'INR','emai ### OTP Generate ```php -$api->payment->fetch($paymentId)->otpGenerate(); +$api = new Api("key",""); // Use Only razorpay key + +$api->payment->otpGenerate($paymentId); ``` **Parameters:** @@ -469,7 +473,8 @@ $api->payment->fetch($paymentId)->otpSubmit(array('otp'=> '12345')); | Name | Type | Description | |-------------|---------|--------------------------------------| -| paymentId* | integer | Unique identifier of the payment | +| paymentId* | integer | Unique identifier of the payment | +| otp* | string | The customer receives the OTP using their preferred notification medium - SMS or email | **Response:**
Success @@ -492,6 +497,359 @@ Failure ``` ------------------------------------------------------------------------------------------------------- +### 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**

diff --git a/system/library/razorpay/razorpay-sdk/documents/paymentLink.md b/system/library/razorpay/razorpay-sdk/documents/paymentLink.md index efe5897e..a7b48f0a 100644 --- a/system/library/razorpay/razorpay-sdk/documents/paymentLink.md +++ b/system/library/razorpay/razorpay-sdk/documents/paymentLink.md @@ -7,7 +7,7 @@ Standard Payment Link ```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', +'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')); @@ -17,10 +17,7 @@ Request #2 UPI Payment Link ```php -$api->paymentLink->create(array('upi_link'=>true,'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 ,'notes'=>array('policy_name'=> 'Jeevan Bima'))); +$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:** @@ -30,7 +27,9 @@ $api->paymentLink->create(array('upi_link'=>true,'amount'=>500, 'currency'=>'INR |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. | @@ -117,7 +116,7 @@ For canceling payment link response please click [here](https://razorpay.com/doc ### Send notification ```php -$api->paymentLink->fetch($paymentLinkId)->notifyBy($medium)); +$api->paymentLink->fetch($paymentLinkId)->notifyBy($medium); ``` **Parameters:** @@ -192,7 +191,7 @@ $api->paymentLink->create(array('amount'=>20000, 'currency'=>'INR', 'accept_part ### 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')))); +$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:** diff --git a/system/library/razorpay/razorpay-sdk/documents/paymentVerfication.md b/system/library/razorpay/razorpay-sdk/documents/paymentVerfication.md index addb76b9..daa42674 100644 --- a/system/library/razorpay/razorpay-sdk/documents/paymentVerfication.md +++ b/system/library/razorpay/razorpay-sdk/documents/paymentVerfication.md @@ -51,6 +51,18 @@ $api->utility->verifyPaymentSignature(array('razorpay_payment_link_id' => $razor ------------------------------------------------------------------------------------------------------- +### 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/system/library/razorpay/razorpay-sdk/documents/productConfiguration.md b/system/library/razorpay/razorpay-sdk/documents/productConfiguration.md new file mode 100644 index 00000000..00f08c0d --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/documents/productConfiguration.md @@ -0,0 +1,604 @@ +## 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/system/library/razorpay/razorpay-sdk/documents/qrcode.md b/system/library/razorpay/razorpay-sdk/documents/qrcode.md index ab1328cc..f96b6e8d 100644 --- a/system/library/razorpay/razorpay-sdk/documents/qrcode.md +++ b/system/library/razorpay/razorpay-sdk/documents/qrcode.md @@ -40,7 +40,9 @@ $api->qrCode->create(array("type" => "upi_qr","name" => "Store_1", "usage" => "s "purpose": "Test UPI QR code notes" }, "customer_id": "cust_HKsR5se84c5LTO", - "close_by": 1681615838 + "close_by": 1681615838, + "closed_at": 1623660445, + "close_reason": "on_demand" } ``` ------------------------------------------------------------------------------------------------------- @@ -103,7 +105,7 @@ $api->qrCode->create(array("type" => "upi_qr","name" => "Store_1", "usage" => "s ### Fetch all Qr code ```php -$api->qrCode->all($options) +$api->qrCode->all($options); ``` **Parameters:** @@ -152,7 +154,7 @@ $api->qrCode->all($options) ### Fetch a Qr code ```php -$api->qrCode->fetch($qrCodeId) +$api->qrCode->fetch($qrCodeId); ``` **Parameters:** @@ -191,7 +193,7 @@ $api->qrCode->fetch($qrCodeId) ### Fetch a Qr code for customer id ```php - $api->qrCode->all(["customer_id" => $customerId]) + $api->qrCode->all(["customer_id" => $customerId]); ``` **Parameters:** @@ -234,7 +236,7 @@ $api->qrCode->fetch($qrCodeId) ### Fetch a Qr code for payment id ```php - $api->qrCode->all(["payment_id" => $paymentId]) + $api->qrCode->all(["payment_id" => $paymentId]); ``` **Parameters:** @@ -276,7 +278,7 @@ $api->qrCode->fetch($qrCodeId) ### Fetch Payments for a QR Code ```php -$api->qrCode->fetch($qrCodeId)->fetchAllPayments($options) +$api->qrCode->fetch($qrCodeId)->fetchAllPayments($options); ``` **Parameters:** @@ -373,6 +375,42 @@ $api->qrCode->fetch($qrCodeId)->close() ``` ------------------------------------------------------------------------------------------------------- +### 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**
diff --git a/system/library/razorpay/razorpay-sdk/documents/refund.md b/system/library/razorpay/razorpay-sdk/documents/refund.md index 9cf8f9a8..8008e8c9 100644 --- a/system/library/razorpay/razorpay-sdk/documents/refund.md +++ b/system/library/razorpay/razorpay-sdk/documents/refund.md @@ -31,7 +31,8 @@ $api->payment->fetch($paymentId)->refund(array("amount"=> "100", "speed"=>"norma "created_at": 1597078866, "batch_id": null, "status": "processed", - "speed_processed": "normal" + "speed_processed": "normal", + "speed_requested": "normal" } ``` ------------------------------------------------------------------------------------------------------- @@ -157,6 +158,8 @@ $api->payment->fetch($paymentId)->fetchRefund($refundId); ### Fetch all refunds ```php +$options = array("count" => 2); + $api->refund->all($options); ``` diff --git a/system/library/razorpay/razorpay-sdk/documents/registeremandate.md b/system/library/razorpay/razorpay-sdk/documents/registeremandate.md index e79b596b..dffce1a8 100644 --- a/system/library/razorpay/razorpay-sdk/documents/registeremandate.md +++ b/system/library/razorpay/razorpay-sdk/documents/registeremandate.md @@ -2,7 +2,7 @@ ### 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')); +$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:** @@ -36,7 +36,7 @@ $api->customer->create(array('name' => 'Razorpay User', 'email' => 'customer@raz ### Create order ```php -$api->order->create(array('amount' => 100, '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'=>10000, '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')))); +$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:** @@ -49,8 +49,11 @@ $api->order->create(array('amount' => 100, 'currency' => 'INR', 'method'=>'emand | 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 keys listed [here](https://razorpay.com/docs/api/recurring-payments/emandate/auto-debit/#112-create-an-order) are supported | -| notes | array | A key-value pair | +| 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) @@ -66,7 +69,7 @@ Please refer this [doc](https://razorpay.com/docs/api/recurring-payments/emandat ### 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('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.')) ); +$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:** @@ -78,7 +81,7 @@ $api->subscription->createSubscriptionRegistration(array('customer'=>array('name | 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/emandate/auto-debit/#121-create-a-registration-link) are supported | +| 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) | @@ -92,7 +95,7 @@ For create registration link response please click [here](https://razorpay.com/d ## Create an order to charge the customer ```php -$api->order->create(array('amount' => '100', 'currency' => 'INR', 'receipt' => 'Receipt No. 1', 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); +$api->order->create(array('amount' => '100', 'currency' => 'INR', 'payment_capture' => true, 'receipt' => 'Receipt No. 1', 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); ``` **Parameters:** @@ -129,7 +132,7 @@ $api->order->create(array('amount' => '100', 'currency' => 'INR', 'receipt' => ## 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'))); +$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:** diff --git a/system/library/razorpay/razorpay-sdk/documents/registernach.md b/system/library/razorpay/razorpay-sdk/documents/registernach.md index 67ba060e..2cd72d89 100644 --- a/system/library/razorpay/razorpay-sdk/documents/registernach.md +++ b/system/library/razorpay/razorpay-sdk/documents/registernach.md @@ -2,7 +2,7 @@ ### 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')); +$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:** @@ -36,7 +36,7 @@ $api->customer->create(array('name' => 'Razorpay User', 'email' => 'customer@raz ### Create Order ```php -$api->order->create(array('amount' => 100, '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')))); +$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:** @@ -47,8 +47,7 @@ $api->order->create(array('amount' => 100, 'currency' => 'INR', 'method'=>'nach' | 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 keys listed [here](https://razorpay.com/docs/api/recurring-payments/paper-nach/auto-debit/#112-create-an-order) are supported | +| 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:** @@ -118,19 +117,19 @@ Please refer this [doc](https://razorpay.com/docs/api/recurring-payments/paper-n ### Create registration link ```php -$api->subscription->createSubscriptionRegistration(array('customer'=>array('name'=>'Gaurav Kumar','email'=>'gaurav.kumar@example.com','contact'=>'9123456780'),'amount'=>100, 'type'=>'link','currency'=>'INR','description'=>'Registration Link for Gaurav Kumar','subscription_registration'=>array('first_payment_amount'=>100, '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.')); +$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 | Details of the customer to whom the registration link will be sent. | +| 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 keys listed [here](https://razorpay.com/docs/api/recurring-payments/paper-nach/auto-debit/#121-create-a-registration-link) are supported | +| 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) | @@ -232,7 +231,7 @@ $api->subscription->createSubscriptionRegistration(array('customer'=>array('name ## Create an order to charge the customer ```php -$api->order->create(array('amount' => '100', 'currency' => 'INR', 'receipt' => 'Receipt No. 1', 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); +$api->order->create(array('amount' => '100', 'currency' => 'INR', 'payment_capture' => true, 'receipt' => 'Receipt No. 1', 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); ``` **Parameters:** @@ -269,7 +268,7 @@ $api->order->create(array('amount' => '100', 'currency' => 'INR', 'receipt' => ## 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'))); +$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:** diff --git a/system/library/razorpay/razorpay-sdk/documents/settlement.md b/system/library/razorpay/razorpay-sdk/documents/settlement.md index 8e37c332..0e59559c 100644 --- a/system/library/razorpay/razorpay-sdk/documents/settlement.md +++ b/system/library/razorpay/razorpay-sdk/documents/settlement.md @@ -20,7 +20,7 @@ $api->settlement->all($options); ```json { "entity": "collection", - "count": 1, + "count": 2, "items": [ { "id": "setl_DGlQ1Rj8os78Ec", @@ -31,6 +31,16 @@ $api->settlement->all($options); "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 } ] } @@ -430,6 +440,128 @@ $api->settlement->fetch($settlementId)->fetchOndemandSettlementById(); **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** diff --git a/system/library/razorpay/razorpay-sdk/documents/stakeholder.md b/system/library/razorpay/razorpay-sdk/documents/stakeholder.md new file mode 100644 index 00000000..5ba46ba6 --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/documents/stakeholder.md @@ -0,0 +1,345 @@ +## 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/system/library/razorpay/razorpay-sdk/documents/subscription.md b/system/library/razorpay/razorpay-sdk/documents/subscription.md index 279e47a9..8dcf5331 100644 --- a/system/library/razorpay/razorpay-sdk/documents/subscription.md +++ b/system/library/razorpay/razorpay-sdk/documents/subscription.md @@ -3,7 +3,7 @@ ### Create subscription ```php -$api->subscription->create(array('plan_id' => 'plan_7wAosPWtrkhqZw', 'customer_notify' => 1,'quantity'=>5, 'total_count' => 6, 'start_at' => 1495995837, 'addons' => array(array('item' => array('name' => 'Delivery charges', 'amount' => 30000, 'currency' => 'INR'))),'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); +$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:** @@ -13,11 +13,12 @@ $api->subscription->create(array('plan_id' => 'plan_7wAosPWtrkhqZw', 'customer_n | 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 | +| 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 | Array that contains details of any upfront amount you want to collect as part of the authorization transaction. | +| 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 @@ -56,7 +57,7 @@ $api->subscription->create(array('plan_id' => 'plan_7wAosPWtrkhqZw', 'customer_n ### Create subscription link ```php -$api->subscription->create(array('plan_id' => 'plan_HoYg68p5kmuvzD','total_count' => 12,'quantity' => 1,'expire_by' => 1633237807,'customer_notify' => 1, 'addons' => array(array('item'=>array('name' => 'Delivery charges','amount' => 30000,'currency' => 'INR'))),'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'))); +$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:** @@ -69,9 +70,10 @@ $api->subscription->create(array('plan_id' => 'plan_HoYg68p5kmuvzD','total_count | 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 | Array that contains details of any upfront amount you want to collect as part of the authorization transaction. | +| 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 | The customer's email and phone number to which notifications are to be sent. (PN: Use this array only if you have set the `customer_notify` parameter to 1. That is, Razorpay sends notifications to the customer.) | +| 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 @@ -119,8 +121,8 @@ $api->subscription->all($options); |-------|-----------|--------------------------------------------------| | 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) | +| 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:** @@ -406,7 +408,7 @@ $api->subscription->fetch($subscriptionId)->cancelScheduledChanges(); ### Pause a subscription ```php -$api->subscription->fetch($subscriptionId)->pause(array('pause_at'=>'now')) +$api->subscription->fetch($subscriptionId)->pause(array('pause_at'=>'now')); ``` **Parameters:** @@ -455,7 +457,7 @@ $api->subscription->fetch($subscriptionId)->pause(array('pause_at'=>'now')) ### Resume a subscription ```php -$api->subscription->fetch($subscriptionId)->resume(array('resume_at'=>'now')) +$api->subscription->fetch($subscriptionId)->resume(array('resume_at'=>'now')); ``` **Parameters:** @@ -604,7 +606,7 @@ $api->invoice->all(['subscription_id'=>$subscriptionId]); ### Delete offer linked to a subscription ```php -$api->subscription->fetch($subscriptionId)->deleteOffer($offerId) +$api->subscription->fetch($subscriptionId)->deleteOffer($offerId); ``` **Parameters:** diff --git a/system/library/razorpay/razorpay-sdk/documents/token.md b/system/library/razorpay/razorpay-sdk/documents/token.md index f2f86f13..35f62f13 100644 --- a/system/library/razorpay/razorpay-sdk/documents/token.md +++ b/system/library/razorpay/razorpay-sdk/documents/token.md @@ -184,6 +184,206 @@ $api->customer->fetch($customerId)->tokens()->delete($tokenId); ``` ------------------------------------------------------------------------------------------------------- +### 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**

diff --git a/system/library/razorpay/razorpay-sdk/documents/transfer.md b/system/library/razorpay/razorpay-sdk/documents/transfer.md index 9bb02a3f..16e4b97a 100644 --- a/system/library/razorpay/razorpay-sdk/documents/transfer.md +++ b/system/library/razorpay/razorpay-sdk/documents/transfer.md @@ -16,31 +16,42 @@ $api->payment->fetch($paymentId)->transfer(array('transfers' => array(array('acc **Response:** ```json { - "entity": "collection", - "count": 1, - "items": [ - { - "id": "trf_E9uhYLFLLZ2pks", - "entity": "transfer", - "source": "pay_E8JR8E0XyjUSZd", - "recipient": "acc_CPRsN1LkFccllA", - "amount": 100, - "currency": "INR", - "amount_reversed": 0, - "notes": { - "name": "Gaurav Kumar", - "roll_no": "IEC2011025" - }, - "on_hold": true, - "on_hold_until": 1671222870, - "recipient_settlement_id": null, - "created_at": 1580218356, - "linked_account_notes": [ - "roll_no" - ], - "processed_at": 1580218357 - } - ] + "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 + } + } + ] } ``` ------------------------------------------------------------------------------------------------------- @@ -63,48 +74,55 @@ $api->order->create(array('amount' => 2000,'currency' => 'INR','transfers' => ar **Response:** ```json { - "id": "order_E9uTczH8uWPCyQ", - "entity": "order", - "amount": 2000, - "amount_paid": 0, - "amount_due": 2000, - "currency": "INR", - "receipt": null, - "offer_id": null, - "status": "created", - "attempts": 0, - "notes": [], - "created_at": 1580217565, - "transfers": [ - { - "recipient": "acc_CPRsN1LkFccllA", - "amount": 1000, - "currency": "INR", - "notes": { - "branch": "Acme Corp Bangalore North", - "name": "Gaurav Kumar" - }, - "linked_account_notes": [ - "branch" - ], - "on_hold": true, - "on_hold_until": 1671222870 - }, - { - "recipient": "acc_CNo3jSI8OkFJJJ", - "amount": 1000, - "currency": "INR", - "notes": { - "branch": "Acme Corp Bangalore South", - "name": "Saurav Kumar" - }, - "linked_account_notes": [ - "branch" - ], - "on_hold": false, - "on_hold_until": null - } - ] + "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 + } + } + ] } ``` ------------------------------------------------------------------------------------------------------- @@ -126,22 +144,33 @@ $api->transfer->create(array('account' => $accountId, 'amount' => 500, 'currency **Response:** ```json { - "id": "trf_E9utgtfGTcpcmm", - "entity": "transfer", - "source": "acc_CJoeHMNpi0nC7k", - "recipient": "acc_CPRsN1LkFccllA", - "amount": 100, - "currency": "INR", - "amount_reversed": 0, - "notes": [], - "fees": 1, - "tax": 0, - "on_hold": false, - "on_hold_until": null, - "recipient_settlement_id": null, - "created_at": 1580219046, - "linked_account_notes": [], - "processed_at": 1580219046 + "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 + } } ``` ------------------------------------------------------------------------------------------------------- @@ -161,28 +190,45 @@ $api->payment->fetch($paymentId)->transfers(); **Response:** ```json { - "entity": "collection", - "count": 1, - "items": [ - { - "id": "trf_EAznuJ9cDLnF7Y", - "entity": "transfer", - "source": "pay_E9up5WhIfMYnKW", - "recipient": "acc_CMaomTz4o0FOFz", - "amount": 1000, - "currency": "INR", - "amount_reversed": 100, - "notes": [], - "fees": 3, - "tax": 0, - "on_hold": false, - "on_hold_until": null, - "recipient_settlement_id": null, - "created_at": 1580454666, - "linked_account_notes": [], - "processed_at": 1580454666 - } - ] + "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 + } + } + ] } ``` ------------------------------------------------------------------------------------------------------- @@ -203,49 +249,98 @@ $api->order->fetch($orderId)->transfers(array('expand[]'=>'transfers')); **Response:** ```json { - "id": "order_DSkl2lBNvueOly", - "entity": "order", - "amount": 1000, - "amount_paid": 1000, - "amount_due": 0, - "currency": "INR", - "receipt": null, - "offer_id": null, - "status": "paid", - "attempts": 1, - "notes": [], - "created_at": 1570794714, - "transfers": { - "entity": "collection", - "count": 1, - "items": [ - { - "id": "trf_DSkl2lXWbiADZG", - "entity": "transfer", - "source": "order_DSkl2lBNvueOly", - "recipient": "acc_CNo3jSI8OkFJJJ", - "amount": 500, - "currency": "INR", - "amount_reversed": 0, - "notes": { - "branch": "Acme Corp Bangalore North", - "name": "Gaurav Kumar" - }, - "fees": 2, - "tax": 0, - "on_hold": true, - "on_hold_until": 1670776632, - "recipient_settlement_id": null, - "created_at": 1570794714, - "linked_account_notes": [ - "Acme Corp Bangalore North" - ], - "processed_at": 1570794772 - } - ] - } + "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 + } + } + ] + } } - ``` ------------------------------------------------------------------------------------------------------- @@ -264,22 +359,39 @@ $api->transfer->fetch($transferId); **Response:** ```json { - "id": "trf_E7V62rAxJ3zYMo", - "entity": "transfer", - "source": "pay_E6j30Iu1R7XbIG", - "recipient": "acc_CMaomTz4o0FOFz", - "amount": 100, - "currency": "INR", - "amount_reversed": 0, - "notes": [], - "fees": 1, - "tax": 0, - "on_hold": false, - "on_hold_until": null, - "recipient_settlement_id": null, - "created_at": 1579691505, - "linked_account_notes": [], - "processed_at": 1579691505 + "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 + } } ``` ------------------------------------------------------------------------------------------------------- @@ -303,22 +415,34 @@ $api->transfer->all(array('recipient_settlement_id'=> $recipientSettlementId)); "count": 1, "items": [ { - "id": "trf_DGSTeXzBkEVh48", + "id": "trf_HWjmkReRGPhguR", "entity": "transfer", - "source": "pay_DGSRhvMbOqeCe7", - "recipient": "acc_CMaomTz4o0FOFz", - "amount": 500, + "status": "processed", + "source": "pay_HWjY9DZSMsbm5E", + "recipient": "acc_HWjl1kqobJzf4i", + "amount": 1000, "currency": "INR", "amount_reversed": 0, - "notes": [], - "fees": 2, + "fees": 3, "tax": 0, + "notes": [], + "linked_account_notes": [], "on_hold": false, "on_hold_until": null, - "recipient_settlement_id": "setl_DHYJ3dRPqQkAgV", - "created_at": 1568110256, - "linked_account_notes": [], - "processed_at": 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 + } } ] } @@ -340,38 +464,41 @@ $api->transfer->all(array('expand[]'=> 'recipient_settlement')); **Response:** ```json { - "entity": "collection", - "count": 1, - "items": [ - { - "id": "trf_DGSTeXzBkEVh48", - "entity": "transfer", - "source": "pay_DGSRhvMbOqeCe7", - "recipient": "acc_CMaomTz4o0FOFz", - "amount": 500, - "currency": "INR", - "amount_reversed": 0, - "notes": [], - "fees": 2, - "tax": 0, - "on_hold": false, - "on_hold_until": null, - "recipient_settlement_id": "setl_DHYJ3dRPqQkAgV", - "recipient_settlement": { - "id": "setl_DHYJ3dRPqQkAgV", - "entity": "settlement", - "amount": 500, - "status": "failed", - "fees": 0, - "tax": 0, - "utr": "CN0038699836", - "created_at": 1568349124 - }, - "created_at": 1568110256, - "linked_account_notes": [], - "processed_at": null - } - ] + "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 + } + } + ] } ``` ------------------------------------------------------------------------------------------------------- @@ -379,7 +506,7 @@ $api->transfer->all(array('expand[]'=> 'recipient_settlement')); ### Refund payments and reverse transfer from a linked account ```php -$api->payment->fetch($paymentId)->refund(array('amount'=> '100','reverse_all'=>'1')); +$api->payment->fetch("pay_JsPSazUg9UnOX2")->refund(array('amount'=> '100','reverse_all'=>'1')); ``` **Parameters:** @@ -393,17 +520,45 @@ $api->payment->fetch($paymentId)->refund(array('amount'=> '100','reverse_all'=>' **Response:** ```json { - "id": "rfnd_EAzovSwG8jBnGf", - "entity": "refund", - "amount": 100, - "currency": "INR", - "payment_id": "pay_EAdwQDe4JrhOFX", - "notes": [], - "receipt": null, - "acquirer_data": { - "rrn": null - }, - "created_at": 1580454723 + "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 + } + ] } ``` ------------------------------------------------------------------------------------------------------- @@ -476,17 +631,21 @@ $api->transfer->fetch($transferId)->reverse(array('amount'=>'100')); **Response:** ```json { - "id": "rvrsl_EB0BWgGDAu7tOz", - "entity": "reversal", - "transfer_id": "trf_EAznuJ9cDLnF7Y", + "id": "rfnd_JJFNlNXPHY640A", + "entity": "refund", "amount": 100, - "fee": 0, - "tax": 0, "currency": "INR", + "payment_id": "pay_JJCqynf4fQS0N1", "notes": [], - "initiator_id": "CJoeHMNpi0nC7k", - "customer_refund_id": null, - "created_at": 1580456007 + "receipt": null, + "acquirer_data": { + "arn": null + }, + "created_at": 1649941680, + "batch_id": null, + "status": "processed", + "speed_processed": "normal", + "speed_requested": "normal" } ``` ------------------------------------------------------------------------------------------------------- @@ -501,33 +660,42 @@ $api->payment->fetch($paymentId)->transfer(array('transfers' => array(array('acc | 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 | +| 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_EB1VJ4Ux4GMmxQ", - "entity": "transfer", - "source": "pay_EB1R2s8D4vOAKG", - "recipient": "acc_CMaomTz4o0FOFz", - "amount": 100, - "currency": "INR", - "amount_reversed": 0, - "notes": [], - "fees": 1, - "tax": 0, - "on_hold": true, - "on_hold_until": null, - "recipient_settlement_id": null, - "created_at": 1580460652, - "linked_account_notes": [], - "processed_at": 1580460652 - } - ] + "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 + } + } + ] } ``` ------------------------------------------------------------------------------------------------------- @@ -548,22 +716,34 @@ $api->transfer->fetch($transferId)->edit(array('on_hold' => '1', 'on_hold_until' **Response:** ```json { - "id": "trf_EB17rqOUbzSCEE", - "entity": "transfer", - "source": "pay_EAeSM2Xul8xYRo", - "recipient": "acc_CMaomTz4o0FOFz", - "amount": 100, - "currency": "INR", - "amount_reversed": 0, - "notes": [], - "fees": 1, - "tax": 0, - "on_hold": true, - "on_hold_until": 1679691505, - "recipient_settlement_id": null, - "created_at": 1580459321, - "linked_account_notes": [], - "processed_at": 1580459321 + "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 + } } ``` diff --git a/system/library/razorpay/razorpay-sdk/documents/upi.md b/system/library/razorpay/razorpay-sdk/documents/upi.md index 5117f0d5..bacfdeba 100644 --- a/system/library/razorpay/razorpay-sdk/documents/upi.md +++ b/system/library/razorpay/razorpay-sdk/documents/upi.md @@ -2,7 +2,7 @@ ### 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')); +$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:** @@ -11,6 +11,7 @@ $api->customer->create(array('name' => 'Razorpay User', 'email' => 'customer@raz |---------------|-------------|---------------------------------------------| | 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 | @@ -48,7 +49,7 @@ $api->order->create(array('amount' => 0,'currency' => 'INR','method' => 'upi','c | 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 | 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 @@ -81,20 +82,23 @@ Please refer this [doc](https://razorpay.com/docs/api/recurring-payments/upi/aut ### 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'),'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.'))); +$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 | Details of the customer to whom the registration link will be sent. | +| 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 | Details of the authorization payment. | -| notes | array | A key-value pair | +| 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 @@ -159,7 +163,7 @@ $api->subscription->createSubscriptionRegistration(array('customer'=>array('name ### Send/Resend notifications ```php -$api->invoice->fetch($invoiceId)->notify($medium); +$api->invoice->fetch($invoiceId)->notifyBy($medium); ``` **Parameters:** @@ -192,59 +196,65 @@ $api->invoice->fetch($invoiceId)->cancel(); **Response:** ```json { - "id": "inv_FHrfRupD2ouKIt", - "entity": "invoice", - "receipt": "Receipt No. 1", - "invoice_number": "Receipt No. 1", - "customer_id": "cust_BMB3EwbqnqZ2EI", + "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": { - "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", + "contact": "9123456780", + "customer_contact": "9123456780", "customer_email": "gaurav.kumar@example.com", - "customer_contact": "9123456780" + "customer_name": "Gaurav Kumar", + "email": "gaurav.kumar@example.com", + "gstin": null, + "id": "cust_DzYEzfJLV03rkp", + "name": "Gaurav Kumar", + "shipping_address": null }, - "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", + "customer_id": "cust_DzYEzfJLV03rkp", + "date": 1655110315, + "description": "Registration Link for Gaurav Kumar", "email_status": "sent", - "date": 1595491479, - "terms": null, - "partial_payment": false, + "entity": "invoice", + "expire_by": 1657699317, + "expired_at": null, + "first_payment_min_amount": null, "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", + "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." }, - "comment": null, - "short_url": "https://rzp.io/i/QlfexTj", - "view_less": true, - "billing_start": null, - "billing_end": null, + "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", - "group_taxes_discounts": false, - "created_at": 1595491480, - "idempotency_key": null + "user_id": null, + "view_less": true } ``` ------------------------------------------------------------------------------------------------------- @@ -376,7 +386,7 @@ $api->customer->fetch($customerId)->tokens()->delete($tokenId); ### Create an order to charge the customer ```php -$api->order->create(array('receipt' => '123', 'amount' => 100, 'currency' => 'INR', 'notes'=> array('key1'=> 'value3','key2'=> 'value2'))); +$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:** @@ -386,7 +396,8 @@ $api->order->create(array('receipt' => '123', 'amount' => 100, 'currency' => 'IN | 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 | +| 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 @@ -413,7 +424,7 @@ $api->order->create(array('receipt' => '123', 'amount' => 100, 'currency' => 'IN ### 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')); +$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:** diff --git a/system/library/razorpay/razorpay-sdk/documents/virtualaccount.md b/system/library/razorpay/razorpay-sdk/documents/virtualaccount.md index dc58d24e..c2400a9f 100644 --- a/system/library/razorpay/razorpay-sdk/documents/virtualaccount.md +++ b/system/library/razorpay/razorpay-sdk/documents/virtualaccount.md @@ -167,7 +167,33 @@ $api->virtualAccount->fetch($virtualId); | virtualId* | string | The id of the virtual to be updated | **Response:** -For fetch virtual account by id response please click [here](https://razorpay.com/docs/api/smart-collect/#fetch-a-virtual-account-by-id) +```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 @@ -181,8 +207,8 @@ $api->virtualAccount->all($options); |-------|-----------|--------------------------------------------------| | 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) | +| count | integer | number of virtual accounts to fetch (default: 10) | +| skip | integer | number of virtual accounts to be skipped (default: 0) | **Response:** ```json @@ -234,8 +260,8 @@ $api->virtualAccount->fetch($virtualId)->payments($options); | 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 payments to fetch (default: 10) | -| skip | integer | number of payments to be skipped (default: 0) | +| count | integer | number of virtual accounts to fetch (default: 10) | +| skip | integer | number of virtual accounts to be skipped (default: 0) | **Response:** ```json @@ -286,7 +312,7 @@ $api->payment->fetch($paymentId)->bankTransfer(); | Name | Type | Description | |-------|-----------|--------------------------------------------------| -| virtualId* | string | The id of the virtual to be updated | +| paymentId* | string | The id of the payment to be updated | **Response:** ```json @@ -352,20 +378,22 @@ $api->payment->fetch($paymentId)->refunds(); **Response:** ```json { - "id": "rfnd_E6j36ZEKvsWsEn", + "id": "rfnd_FP8QHiV938haTz", "entity": "refund", - "amount": 100, + "amount": 500100, + "receipt": "Receipt No. 31", "currency": "INR", - "payment_id": "pay_E54n391WnEAV9H", - "notes": { - "key_1": "value1", - "key_2": "value2" - }, + "payment_id": "pay_FCXKPFtYfPXJPy", + "notes": [] "receipt": null, "acquirer_data": { - "rrn": null + "arn": null }, - "created_at": 1579522301 + "created_at": 1597078866, + "batch_id": null, + "status": "processed", + "speed_processed": "normal", + "speed_requested": "normal" } ``` ------------------------------------------------------------------------------------------------------- @@ -381,7 +409,7 @@ $api->virtualAccount->fetch($virtualId)->addReceiver(array('types' => array('vpa |-------|-----------|--------------------------------------------------| | 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 | array | This is to be passed only when `vpa` is passed as the receiver types. | +| 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) @@ -457,7 +485,7 @@ $api->virtualAccount->fetch($virtualId)->deleteAllowedPayer($allowedPayersId); **Response:** ```json -{} +null ``` ------------------------------------------------------------------------------------------------------- ### Close virtual account diff --git a/system/library/razorpay/razorpay-sdk/documents/webhook.md b/system/library/razorpay/razorpay-sdk/documents/webhook.md new file mode 100644 index 00000000..d9855c14 --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/documents/webhook.md @@ -0,0 +1,223 @@ +## 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/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/.editorconfig b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/.editorconfig similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/.editorconfig rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/.editorconfig diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/CHANGELOG.md b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/CHANGELOG.md similarity index 96% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/CHANGELOG.md rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/CHANGELOG.md index 6c67b203..fdcc5761 100644 --- a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/CHANGELOG.md +++ b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/CHANGELOG.md @@ -1,6 +1,60 @@ 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 ----- @@ -896,6 +950,7 @@ 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 @@ -909,6 +964,7 @@ Initial release! [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 diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/LICENSE b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/LICENSE similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/LICENSE rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/LICENSE diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/README.md b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/README.md similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/README.md rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/README.md diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/certificates/cacert.pem b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/certificates/cacert.pem similarity index 88% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/certificates/cacert.pem rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/certificates/cacert.pem index 0bf312fe..6b70ee07 100644 --- a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/certificates/cacert.pem +++ b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/certificates/cacert.pem @@ -1,7 +1,7 @@ ## ## Bundle of CA Root Certificates ## -## Certificate data from Mozilla as of: Tue Oct 26 03:12:05 2021 GMT +## 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 @@ -13,8 +13,8 @@ ## 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.28. -## SHA256: bb36818a81feaa4cca61101e6d6276cd09e972efcb08112dfed846918ca41d7f +## Conversion done with mk-ca-bundle.pl version 1.29. +## SHA256: 9bf3799611fb58197f61d45e71ce3dc19f30e7dd73731915872ce5108a7bb066 ## @@ -39,28 +39,6 @@ hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== -----END CERTIFICATE----- -GlobalSign Root CA - R2 -======================= ------BEGIN CERTIFICATE----- -MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv -YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh -bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT -aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln -bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6 -ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp -s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN -S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL -TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C -ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E -FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i -YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN -BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp -9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu -01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7 -9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 -TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== ------END CERTIFICATE----- - Entrust.net Premium 2048 Secure Server CA ========================================= -----BEGIN CERTIFICATE----- @@ -573,28 +551,6 @@ PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== -----END CERTIFICATE----- -Cybertrust Global Root -====================== ------BEGIN CERTIFICATE----- -MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li -ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4 -MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD -ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA -+Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW -0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL -AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin -89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT -8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP -BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2 -MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G -A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO -lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi -5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2 -hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T -X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW -WL1WMRJOEcgh4LMRkWXbtKaIOM5V ------END CERTIFICATE----- - ePKI Root Certification Authority ================================= -----BEGIN CERTIFICATE----- @@ -1037,60 +993,6 @@ tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29 mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 -----END CERTIFICATE----- -EC-ACC -====== ------BEGIN CERTIFICATE----- -MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE -BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w -ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD -VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE -CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT -BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7 -MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt -SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl -Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh -cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK -w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT -ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4 -HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a -E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw -0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD -VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0 -Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l -dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ -lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa -Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe -l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2 -E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D -5EI= ------END CERTIFICATE----- - -Hellenic Academic and Research Institutions RootCA 2011 -======================================================= ------BEGIN CERTIFICATE----- -MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT -O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y -aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z -IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT -AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z -IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo -IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI -1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa -71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u -8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH -3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/ -MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8 -MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu -b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt -XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 -TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD -/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N -7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4 ------END CERTIFICATE----- - Actalis Authentication Root CA ============================== -----BEGIN CERTIFICATE----- @@ -1737,20 +1639,6 @@ HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu 9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= -----END CERTIFICATE----- -GlobalSign ECC Root CA - R4 -=========================== ------BEGIN CERTIFICATE----- -MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UECxMb -R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD -EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb -R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD -EwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprl -OQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAwDgYDVR0P -AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61FuOJAf/sKbvu+M8k8o4TV -MAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGXkPoUVy0D7O48027KqGx2vKLeuwIgJ6iF -JzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q= ------END CERTIFICATE----- - GlobalSign ECC Root CA - R5 =========================== -----BEGIN CERTIFICATE----- @@ -2472,96 +2360,6 @@ AwMDaAAwZQIwJsdpW9zV57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtk AjEA2zQgMgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9 -----END CERTIFICATE----- -GTS Root R1 -=========== ------BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgIQbkepxUtHDA3sM9CJuRz04TANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQG -EwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJv -b3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAG -A1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx -9vaMf/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7r -aKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnW -r4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqM -LnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly -4cpk9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr -06zqkUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92 -wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om -3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNu -JLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEM -BQADggIBADiWCu49tJYeX++dnAsznyvgyv3SjgofQXSlfKqE1OXyHuY3UjKcC9FhHb8owbZEKTV1 -d5iyfNm9dKyKaOOpMQkpAWBz40d8U6iQSifvS9efk+eCNs6aaAyC58/UEBZvXw6ZXPYfcX3v73sv -fuo21pdwCxXu11xWajOl40k4DLh9+42FpLFZXvRq4d2h9mREruZRgyFmxhE+885H7pwoHyXa/6xm -ld01D1zvICxi/ZG6qcz8WpyTgYMpl0p8WnK0OdC3d8t5/Wk6kjftbjhlRn7pYL15iJdfOBL07q9b -gsiG1eGZbYwE8na6SfZu6W0eX6DvJ4J2QPim01hcDyxC2kLGe4g0x8HYRZvBPsVhHdljUEn2NIVq -4BjFbkerQUIpm/ZgDdIx02OYI5NaAIFItO/Nis3Jz5nu2Z6qNuFoS3FJFDYoOj0dzpqPJeaAcWEr -tXvM+SUWgeExX6GjfhaknBZqlxi9dnKlC54dNuYvoS++cJEPqOba+MSSQGwlfnuzCdyyF62ARPBo -pY+Udf90WuioAnwMCeKpSwughQtiue+hMZL77/ZRBIls6Kl0obsXs7X9SQ98POyDGCBDTtWTurQ0 -sR8WNh8M5mQ5Fkzc4P4dyKliPUDqysU0ArSuiYgzNdwsE3PYJ/HQcu51OyLemGhmW/HGY0dVHLql -CFF1pkgl ------END CERTIFICATE----- - -GTS Root R2 -=========== ------BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgIQbkepxlqz5yDFMJo/aFLybzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQG -EwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJv -b3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAG -A1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTuk -k3LvCvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo -7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWI -m8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5Gm -dFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbu -ak7MkogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscsz -cTJGr61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW -Ir9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73Vululycsl -aVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy -5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEM -BQADggIBALZp8KZ3/p7uC4Gt4cCpx/k1HUCCq+YEtN/L9x0Pg/B+E02NjO7jMyLDOfxA325BS0JT -vhaI8dI4XsRomRyYUpOM52jtG2pzegVATX9lO9ZY8c6DR2Dj/5epnGB3GFW1fgiTz9D2PGcDFWEJ -+YF59exTpJ/JjwGLc8R3dtyDovUMSRqodt6Sm2T4syzFJ9MHwAiApJiS4wGWAqoC7o87xdFtCjMw -c3i5T1QWvwsHoaRc5svJXISPD+AVdyx+Jn7axEvbpxZ3B7DNdehyQtaVhJ2Gg/LkkM0JR9SLA3Da -WsYDQvTtN6LwG1BUSw7YhN4ZKJmBR64JGz9I0cNv4rBgF/XuIwKl2gBbbZCr7qLpGzvpx0QnRY5r -n/WkhLx3+WuXrD5RRaIRpsyF7gpo8j5QOHokYh4XIDdtak23CZvJ/KRY9bb7nE4Yu5UC56Gtmwfu -Nmsk0jmGwZODUNKBRqhfYlcsu2xkiAhu7xNUX90txGdj08+JN7+dIPT7eoOboB6BAFDC5AwiWVIQ -7UNWhwD4FFKnHYuTjKJNRn8nxnGbJN7k2oaLDX5rIMHAnuFl2GqjpuiFizoHCBy69Y9Vmhh1fuXs -gWbRIXOhNUQLgD1bnF5vKheW0YMjiGZt5obicDIvUiLnyOd/xCxgXS/Dr55FBcOEArf9LAhST4Ld -o/DUhgkC ------END CERTIFICATE----- - -GTS Root R3 -=========== ------BEGIN CERTIFICATE----- -MIICDDCCAZGgAwIBAgIQbkepx2ypcyRAiQ8DVd2NHTAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJV -UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg -UjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE -ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcq -hkjOPQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUU -Rout736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24Cej -QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP -0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEAgFukfCPAlaUs3L6JbyO5o91lAFJekazInXJ0 -glMLfalAvWhgxeG4VDvBNhcl2MG9AjEAnjWSdIUlUfUk7GRSJFClH9voy8l27OyCbvWFGFPouOOa -KaqW04MjyaR7YbPMAuhd ------END CERTIFICATE----- - -GTS Root R4 -=========== ------BEGIN CERTIFICATE----- -MIICCjCCAZGgAwIBAgIQbkepyIuUtui7OyrYorLBmTAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJV -UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg -UjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE -ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcq -hkjOPQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa -6zzuhXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqj -QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV -2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNnADBkAjBqUFJ0CMRw3J5QdCHojXohw0+WbhXRIjVhLfoI -N+4Zba3bssx9BzT1YBkstTTZbyACMANxsbqjYAuG7ZoIapVon+Kz4ZNkfF6Tpt95LY2F45TPI11x -zPKwTdb+mciUqXWi4w== ------END CERTIFICATE----- - UCA Global G2 Root ================== -----BEGIN CERTIFICATE----- @@ -3230,3 +3028,433 @@ ECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW 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/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/certificates/cacert.pem.sha256 b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/certificates/cacert.pem.sha256 new file mode 100644 index 00000000..eb32bc3e --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/certificates/cacert.pem.sha256 @@ -0,0 +1 @@ +6ed95025fba2aef0ce7b647607225745624497f876d74ef6ec22b26e73e9de77 cacert.pem diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/composer.json b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/composer.json similarity index 93% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/composer.json rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/composer.json index 3d9df614..2ea9e6e4 100644 --- a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/composer.json +++ b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/composer.json @@ -3,6 +3,7 @@ "description": "A HTTP library written in PHP, for human beings.", "homepage": "https://requests.ryanmccue.info/", "license": "ISC", + "type": "library", "keywords": [ "http", "idna", @@ -39,8 +40,13 @@ "php": ">=5.6", "ext-json": "*" }, + "config": { + "allow-plugins": { + "dealerdirect/phpcodesniffer-composer-installer": true + } + }, "require-dev": { - "requests/test-server": "dev-master", + "requests/test-server": "dev-main", "squizlabs/php_codesniffer": "^3.6", "phpcompatibility/php-compatibility": "^9.0", "wp-coding-standards/wpcs": "^2.0", @@ -50,7 +56,6 @@ "yoast/phpunit-polyfills": "^1.0.0", "roave/security-advisories": "dev-latest" }, - "type": "library", "autoload": { "psr-4": { "WpOrg\\Requests\\": "src/" diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/library/Deprecated.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/library/Deprecated.php similarity index 83% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/library/Deprecated.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/library/Deprecated.php index 471eed57..0017338b 100644 --- a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/library/Deprecated.php +++ b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/library/Deprecated.php @@ -13,7 +13,7 @@ */ if (class_exists('WpOrg\Requests\Autoload') === false) { - require_once dirname(__DIR__) . '/src/Autoload.php'; + require_once dirname(__DIR__) . '/src/Autoload.php'; // nosemgrep : https://semgrep.dev/s/e5El } WpOrg\Requests\Autoload::register(); diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/library/README.md b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/library/README.md similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/library/README.md rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/library/README.md diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/library/Requests.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/library/Requests.php similarity index 87% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/library/Requests.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/library/Requests.php index 05250640..2b763f89 100644 --- a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/library/Requests.php +++ b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/library/Requests.php @@ -30,7 +30,7 @@ } } -require_once dirname(__DIR__) . '/src/Requests.php'; +require_once dirname(__DIR__) . '/src/Requests.php'; // nosemgrep : https://semgrep.dev/s/e5El /** * Requests for PHP @@ -57,7 +57,7 @@ class Requests extends WpOrg\Requests\Requests { */ public static function autoloader($class) { if (class_exists('WpOrg\Requests\Autoload') === false) { - require_once dirname(__DIR__) . '/src/Autoload.php'; + require_once dirname(__DIR__) . '/src/Autoload.php'; // nosemgrep : https://semgrep.dev/s/e5El } return WpOrg\Requests\Autoload::load($class); @@ -72,7 +72,7 @@ public static function autoloader($class) { * @codeCoverageIgnore */ public static function register_autoloader() { - require_once dirname(__DIR__) . '/src/Autoload.php'; + require_once dirname(__DIR__) . '/src/Autoload.php'; // nosemgrep : https://semgrep.dev/s/e5El WpOrg\Requests\Autoload::register(); } } diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Auth.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Auth.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Auth.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Auth.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Auth/Basic.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Auth/Basic.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Auth/Basic.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Auth/Basic.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Autoload.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Autoload.php similarity index 99% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Autoload.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Autoload.php index 26dd280e..12a05747 100644 --- a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Autoload.php +++ b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Autoload.php @@ -147,7 +147,7 @@ public static function load($class_name) { } if (isset($file) && file_exists($file)) { - include $file; + include $file; // nosemgrep : https://semgrep.dev/s/e5El return true; } diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Capability.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Capability.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Capability.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Capability.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Cookie.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Cookie.php similarity index 98% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Cookie.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Cookie.php index 1a33ec07..ccbbc73d 100644 --- a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Cookie.php +++ b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Cookie.php @@ -331,8 +331,7 @@ protected function normalize_attribute($name, $value) { $delta_seconds = (int) $value; if ($delta_seconds <= 0) { $expiry_time = 0; - } - else { + } else { $expiry_time = $this->reference_time + $delta_seconds; } @@ -383,14 +382,14 @@ public function format_for_set_cookie() { // Ignore non-associative attributes if (is_numeric($key)) { $parts[] = $value; - } - else { + } else { $parts[] = sprintf('%s=%s', $key, $value); } } $header_value .= '; ' . implode('; ', $parts); } + return $header_value; } @@ -423,8 +422,7 @@ public static function parse($cookie_header, $name = '', $reference_time = null) if (!empty($name)) { $value = $cookie_header; - } - elseif (strpos($kvparts, '=') === false) { + } 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`) @@ -432,10 +430,10 @@ public static function parse($cookie_header, $name = '', $reference_time = null) // https://bugzilla.mozilla.org/show_bug.cgi?id=169091 $name = ''; $value = $kvparts; - } - else { + } else { list($name, $value) = explode('=', $kvparts, 2); } + $name = trim($name); $value = trim($value); @@ -447,8 +445,7 @@ public static function parse($cookie_header, $name = '', $reference_time = null) if (strpos($part, '=') === false) { $part_key = $part; $part_value = true; - } - else { + } else { list($part_key, $part_value) = explode('=', $part, 2); $part_value = trim($part_value); } @@ -483,8 +480,7 @@ public static function parse_from_headers(Headers $headers, Iri $origin = null, if (empty($parsed->attributes['domain']) && !empty($origin)) { $parsed->attributes['domain'] = $origin->host; $parsed->flags['host-only'] = true; - } - else { + } else { $parsed->flags['host-only'] = false; } @@ -498,19 +494,18 @@ public static function parse_from_headers(Headers $headers, Iri $origin = null, // the uri-path is not a %x2F ("/") character, output // %x2F ("/") and skip the remaining steps. $path = '/'; - } - elseif (substr_count($path, '/') === 1) { + } 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 { + } 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; } diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Cookie/Jar.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Cookie/Jar.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Cookie/Jar.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Cookie/Jar.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/ArgumentCount.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/ArgumentCount.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/ArgumentCount.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/ArgumentCount.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status304.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status304.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status304.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status304.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status305.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status305.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status305.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status305.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status306.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status306.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status306.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status306.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status400.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status400.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status400.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status400.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status401.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status401.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status401.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status401.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status402.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status402.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status402.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status402.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status403.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status403.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status403.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status403.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status404.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status404.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status404.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status404.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status405.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status405.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status405.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status405.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status406.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status406.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status406.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status406.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status407.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status407.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status407.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status407.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status408.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status408.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status408.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status408.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status409.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status409.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status409.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status409.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status410.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status410.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status410.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status410.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status411.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status411.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status411.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status411.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status412.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status412.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status412.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status412.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status413.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status413.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status413.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status413.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status414.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status414.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status414.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status414.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status415.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status415.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status415.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status415.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status416.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status416.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status416.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status416.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status417.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status417.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status417.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status417.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status418.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status418.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status418.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status418.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status428.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status428.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status428.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status428.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status429.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status429.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status429.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status429.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status431.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status431.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status431.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status431.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status500.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status500.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status500.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status500.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status501.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status501.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status501.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status501.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status502.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status502.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status502.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status502.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status503.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status503.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status503.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status503.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status504.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status504.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status504.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status504.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status505.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status505.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status505.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status505.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status511.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status511.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/Status511.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/Status511.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/StatusUnknown.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/StatusUnknown.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Http/StatusUnknown.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Http/StatusUnknown.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/InvalidArgument.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/InvalidArgument.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/InvalidArgument.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/InvalidArgument.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Transport.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Transport.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Transport.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Transport.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Transport/Curl.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Transport/Curl.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Exception/Transport/Curl.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Exception/Transport/Curl.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/HookManager.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/HookManager.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/HookManager.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/HookManager.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Hooks.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Hooks.php similarity index 98% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Hooks.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Hooks.php index eb8df620..74fba0b3 100644 --- a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Hooks.php +++ b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Hooks.php @@ -86,6 +86,8 @@ public function dispatch($hook, $parameters = []) { $parameters = array_values($parameters); } + ksort($this->hooks[$hook]); + foreach ($this->hooks[$hook] as $priority => $hooked) { foreach ($hooked as $callback) { $callback(...$parameters); diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/IdnaEncoder.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/IdnaEncoder.php similarity index 93% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/IdnaEncoder.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/IdnaEncoder.php index a0df5004..094fff3d 100644 --- a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/IdnaEncoder.php +++ b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/IdnaEncoder.php @@ -67,6 +67,7 @@ public static function encode($hostname) { foreach ($parts as &$part) { $part = self::to_ascii($part); } + return implode('.', $parts); } @@ -174,32 +175,23 @@ protected static function utf8_to_codepoints($input) { for ($position = 0; $position < $strlen; $position++) { $value = ord($input[$position]); - // One byte sequence: - if ((~$value & 0x80) === 0x80) { + if ((~$value & 0x80) === 0x80) { // One byte sequence: $character = $value; $length = 1; $remaining = 0; - } - // Two byte sequence: - elseif (($value & 0xE0) === 0xC0) { + } elseif (($value & 0xE0) === 0xC0) { // Two byte sequence: $character = ($value & 0x1F) << 6; $length = 2; $remaining = 1; - } - // Three byte sequence: - elseif (($value & 0xF0) === 0xE0) { + } elseif (($value & 0xF0) === 0xE0) { // Three byte sequence: $character = ($value & 0x0F) << 12; $length = 3; $remaining = 2; - } - // Four byte sequence: - elseif (($value & 0xF8) === 0xF0) { + } elseif (($value & 0xF8) === 0xF0) { // Four byte sequence: $character = ($value & 0x07) << 18; $length = 4; $remaining = 3; - } - // Invalid byte: - else { + } else { // Invalid byte: throw new Exception('Invalid Unicode codepoint', 'idna.invalidcodepoint', $value); } @@ -207,6 +199,7 @@ protected static function utf8_to_codepoints($input) { if ($position + $length > $strlen) { throw new Exception('Invalid Unicode codepoint', 'idna.invalidcodepoint', $character); } + for ($position++; $remaining > 0; $position++) { $value = ord($input[$position]); @@ -218,6 +211,7 @@ protected static function utf8_to_codepoints($input) { --$remaining; $character |= ($value & 0x3F) << ($remaining * 6); } + $position--; } @@ -277,18 +271,18 @@ public static function punycode_encode($input) { // 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) { + + // 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 { + // @codeCoverageIgnoreEnd + } else { $extended[$char] = true; } } + $extended = array_keys($extended); sort($extended); $b = $h; @@ -296,6 +290,7 @@ public static function punycode_encode($input) { 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); @@ -313,9 +308,7 @@ public static function punycode_encode($input) { // if c < n then increment delta, fail on overflow if ($c < $n) { $delta++; - } - // if c == n then begin - elseif ($c === $n) { + } elseif ($c === $n) { // if c == n then begin // let q = delta $q = $delta; // for k = base to infinity in steps of base do begin @@ -324,17 +317,17 @@ public static function punycode_encode($input) { // 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)) { + } elseif ($k >= ($bias + self::BOOTSTRAP_TMAX)) { $t = self::BOOTSTRAP_TMAX; - } - else { + } 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); @@ -375,6 +368,7 @@ protected static function digit_to_char($digit) { 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); @@ -395,11 +389,11 @@ protected static function adapt($delta, $numpoints, $firsttime) { // if firsttime then let delta = delta div damp if ($firsttime) { $delta = floor($delta / self::BOOTSTRAP_DAMP); - } - // else let delta = delta div 2 - else { + } else { + // else let delta = delta div 2 $delta = floor($delta / 2); } + // let delta = delta + (delta div numpoints) $delta += floor($delta / $numpoints); // let k = 0 diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Ipv6.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Ipv6.php similarity index 96% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Ipv6.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Ipv6.php index a01b640e..a90ab8a8 100644 --- a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Ipv6.php +++ b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Ipv6.php @@ -58,25 +58,24 @@ public static function uncompress($ip) { if (strpos($ip2, '.') !== false) { $c2++; } - // :: + if ($c1 === -1 && $c2 === -1) { + // :: $ip = '0:0:0:0:0:0:0:0'; - } - // ::xxx - elseif ($c1 === -1) { + } elseif ($c1 === -1) { + // ::xxx $fill = str_repeat('0:', 7 - $c2); $ip = str_replace('::', $fill, $ip); - } - // xxx:: - elseif ($c2 === -1) { + } elseif ($c2 === -1) { + // xxx:: $fill = str_repeat(':0', 7 - $c1); $ip = str_replace('::', $fill, $ip); - } - // xxx::xxx - else { + } else { + // xxx::xxx $fill = ':' . str_repeat('0:', 6 - $c2 - $c1); $ip = str_replace('::', $fill, $ip); } + return $ip; } @@ -90,7 +89,7 @@ public static function uncompress($ip) { * 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() + * @see \WpOrg\Requests\Ipv6::uncompress() * * @param string $ip An IPv6 address * @return string The compressed IPv6 address @@ -120,8 +119,7 @@ public static function compress($ip) { if ($ip_parts[1] !== '') { return implode(':', $ip_parts); - } - else { + } else { return $ip_parts[0]; } } @@ -144,8 +142,7 @@ private static function split_v6_v4($ip) { $ipv6_part = substr($ip, 0, $pos); $ipv4_part = substr($ip, $pos + 1); return [$ipv6_part, $ipv4_part]; - } - else { + } else { return [$ip, '']; } } @@ -188,6 +185,7 @@ public static function check_ipv6($ip) { return false; } } + if (count($ipv4) === 4) { foreach ($ipv4 as $ipv4_part) { $value = (int) $ipv4_part; @@ -196,9 +194,9 @@ public static function check_ipv6($ip) { } } } + return true; - } - else { + } else { return false; } } diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Iri.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Iri.php similarity index 99% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Iri.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Iri.php index 21f5e904..244578d3 100644 --- a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Iri.php +++ b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Iri.php @@ -53,7 +53,7 @@ * @link http://hg.gsnedders.com/iri/ * * @property string $iri IRI we're working with - * @property-read string $uri IRI in URI form, {@see \WpOrg\Requests\IRI::to_uri()} + * @property-read string $uri IRI in URI form, {@see \WpOrg\Requests\Iri::to_uri()} * @property string $scheme Scheme part of the IRI * @property string $authority Authority part, formatted for a URI (userinfo + host + port) * @property string $iauthority Authority part of the IRI (userinfo + host + port) @@ -1000,7 +1000,7 @@ protected function set_fragment($ifragment) { /** * 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()}) + * @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) { diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Port.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Port.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Port.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Port.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Proxy.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Proxy.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Proxy.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Proxy.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Proxy/Http.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Proxy/Http.php similarity index 92% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Proxy/Http.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Proxy/Http.php index 77d7cb5d..e553c9c5 100644 --- a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Proxy/Http.php +++ b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Proxy/Http.php @@ -67,16 +67,13 @@ final class Http implements Proxy { public function __construct($args = null) { if (is_string($args)) { $this->proxy = $args; - } - elseif (is_array($args)) { + } elseif (is_array($args)) { if (count($args) === 1) { list($this->proxy) = $args; - } - elseif (count($args) === 3) { + } elseif (count($args) === 3) { list($this->proxy, $this->user, $this->pass) = $args; $this->use_authentication = true; - } - else { + } else { throw ArgumentCount::create( 'an array with exactly one element or exactly three elements', count($args), @@ -92,10 +89,10 @@ public function __construct($args = null) { * 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() + * @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) { diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Requests.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Requests.php similarity index 99% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Requests.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Requests.php index b6118921..8ce6fda9 100644 --- a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Requests.php +++ b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Requests.php @@ -148,7 +148,7 @@ class Requests { * * @var string */ - const VERSION = '2.0.0'; + const VERSION = '2.0.4'; /** * Selected transport name @@ -447,6 +447,7 @@ public static function request($url, $headers = [], $data = [], $type = self::GE if (empty($options['type'])) { $options['type'] = $type; } + $options = array_merge(self::get_default_options(), $options); self::set_defaults($url, $headers, $data, $type, $options); @@ -459,12 +460,12 @@ public static function request($url, $headers = [], $data = [], $type = self::GE if (is_string($options['transport'])) { $transport = new $transport(); } - } - else { + } 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]); @@ -538,20 +539,23 @@ public static function request_multiple($requests, $options = []) { 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 { + } else { if (empty($request['options']['type'])) { $request['options']['type'] = $request['type']; } + $request['options'] = array_merge($options, $request['options']); } @@ -565,6 +569,7 @@ public static function request_multiple($requests, $options = []) { } } } + unset($request); if (!empty($options['transport'])) { @@ -573,10 +578,10 @@ public static function request_multiple($requests, $options = []) { if (is_string($options['transport'])) { $transport = new $transport(); } - } - else { + } else { $transport = self::get_transport(); } + $responses = $transport->request_multiple($requests, $options); foreach ($responses as $id => &$response) { @@ -606,6 +611,7 @@ protected static function get_default_options($multirequest = false) { if ($multirequest !== false) { $defaults['complete'] = null; } + return $defaults; } @@ -657,6 +663,7 @@ protected static function set_defaults(&$url, &$headers, &$data, &$type, &$optio if (is_array($options['auth'])) { $options['auth'] = new Basic($options['auth']); } + if ($options['auth'] !== false) { $options['auth']->register($options['hooks']); } @@ -664,16 +671,17 @@ protected static function set_defaults(&$url, &$headers, &$data, &$type, &$optio 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'])) { + } elseif (empty($options['cookies'])) { $options['cookies'] = new Jar(); } + if ($options['cookies'] !== false) { $options['cookies']->register($options['hooks']); } @@ -690,8 +698,7 @@ protected static function set_defaults(&$url, &$headers, &$data, &$type, &$optio if (!isset($options['data_format'])) { if (in_array($type, [self::HEAD, self::GET, self::DELETE], true)) { $options['data_format'] = 'query'; - } - else { + } else { $options['data_format'] = 'body'; } } @@ -735,6 +742,7 @@ protected static function parse_response($headers, $url, $req_headers, $req_data $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) @@ -744,6 +752,7 @@ protected static function parse_response($headers, $url, $req_headers, $req_data 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) { @@ -756,10 +765,12 @@ protected static function parse_response($headers, $url, $req_headers, $req_data 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); } @@ -776,6 +787,7 @@ protected static function parse_response($headers, $url, $req_headers, $req_data if ($return->status_code === 303) { $options['type'] = self::GET; } + $options['redirected']++; $location = $return->headers['location']; if (strpos($location, 'http://') !== 0 && strpos($location, 'https://') !== 0) { @@ -795,8 +807,7 @@ protected static function parse_response($headers, $url, $req_headers, $req_data $redirected = self::request($location, $req_headers, $req_data, $options['type'], $options); $redirected->history[] = $return; return $redirected; - } - elseif ($options['redirected'] >= $options['redirects']) { + } elseif ($options['redirected'] >= $options['redirects']) { throw new Exception('Too many redirects', 'toomanyredirects', $return); } } @@ -824,8 +835,7 @@ public static function parse_multiple(&$response, $request) { $data = $request['data']; $options = $request['options']; $response = self::parse_response($response, $url, $headers, $data, $options); - } - catch (Exception $e) { + } catch (Exception $e) { $response = $e; } } @@ -889,6 +899,7 @@ public static function flatten($dictionary) { foreach ($dictionary as $key => $value) { $return[] = sprintf('%s: %s', $key, $value); } + return $return; } @@ -989,16 +1000,20 @@ public static function compatible_gzinflate($gz_data) { 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; @@ -1058,6 +1073,7 @@ public static function compatible_gzinflate($gz_data) { if ($decompressed !== false) { return $decompressed; } + return false; } diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Response.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Response.php similarity index 99% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Response.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Response.php index 82ab481b..8964521a 100644 --- a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Response.php +++ b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Response.php @@ -124,8 +124,7 @@ public function throw_for_status($allow_redirects = true) { if ($allow_redirects !== true) { throw new Exception('Redirection not allowed', 'response.no_redirects', $this); } - } - elseif (!$this->success) { + } elseif (!$this->success) { $exception = Http::get_class($this->status_code); throw new $exception(null, $this); } diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Response/Headers.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Response/Headers.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Response/Headers.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Response/Headers.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Session.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Session.php similarity index 99% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Session.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Session.php index abecc05f..000d2526 100644 --- a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Session.php +++ b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Session.php @@ -281,14 +281,14 @@ protected function merge_request($request, $merge_options = true) { 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)) { + } elseif (is_array($request['data']) && is_array($this->data)) { $request['data'] = array_merge($this->data, $request['data']); } diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Ssl.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Ssl.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Ssl.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Ssl.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Transport.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Transport.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Transport.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Transport.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Transport/Curl.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Transport/Curl.php similarity index 97% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Transport/Curl.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Transport/Curl.php index 289d9b15..66b89c1c 100644 --- a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Transport/Curl.php +++ b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Transport/Curl.php @@ -109,10 +109,12 @@ public function __construct() { 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); @@ -189,9 +191,8 @@ public function request($url, $headers = [], $data = [], $options = []) { if (isset($options['verify'])) { if ($options['verify'] === false) { curl_setopt($this->handle, CURLOPT_SSL_VERIFYHOST, 0); - curl_setopt($this->handle, CURLOPT_SSL_VERIFYPEER, 0); - } - elseif (is_string($options['verify'])) { + 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']); } } @@ -272,8 +273,7 @@ public function request_multiple($requests, $options) { do { $status = curl_multi_exec($multihandle, $active); - } - while ($status === CURLM_CALL_MULTI_PERFORM); + } while ($status === CURLM_CALL_MULTI_PERFORM); $to_process = []; @@ -299,8 +299,7 @@ public function request_multiple($requests, $options) { ); $responses[$key] = $exception; $options['hooks']->dispatch('transport.internal.parse_error', [&$responses[$key], $requests[$key]]); - } - else { + } else { $responses[$key] = $subrequests[$key]->process_response($subrequests[$key]->response_data, $options); $options['hooks']->dispatch('transport.internal.parse_response', [&$responses[$key], $requests[$key]]); @@ -312,10 +311,10 @@ public function request_multiple($requests, $options) { if (!is_string($responses[$key])) { $options['hooks']->dispatch('multiple.request.complete', [&$responses[$key], $key]); } + $completed++; } - } - while ($active || $completed < $subrequestcount); + } while ($active || $completed < $subrequestcount); $request['options']['hooks']->dispatch('curl.after_multi_exec', [&$multihandle]); @@ -346,6 +345,7 @@ public function &get_subrequest_handle($url, $headers, $data, $options) { if ($options['max_bytes'] !== false) { $this->response_byte_limit = $options['max_bytes']; } + $this->hooks = $options['hooks']; return $this->handle; @@ -390,8 +390,7 @@ private function setup_handle($url, $headers, $data, $options) { if ($data_format === 'query') { $url = self::format_get($url, $data); $data = ''; - } - elseif (!is_string($data)) { + } elseif (!is_string($data) && !isset($data["file"])){ $data = http_build_query($data, '', '&'); } } @@ -429,28 +428,27 @@ private function setup_handle($url, $headers, $data, $options) { if (is_int($timeout) || $this->version < self::CURL_7_16_2) { curl_setopt($this->handle, CURLOPT_TIMEOUT, ceil($timeout)); - } - else { + } 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 { + } 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 { + } else { curl_setopt($this->handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); } @@ -475,11 +473,11 @@ public function process_response($response, $options) { $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 { + } else { $this->headers .= $response; } @@ -491,6 +489,7 @@ public function process_response($response, $options) { ); throw new Exception($error, 'curlerror', $this->handle); } + $this->info = curl_getinfo($this->handle); $options['hooks']->dispatch('curl.after_request', [&$this->headers, &$this->info]); @@ -512,11 +511,13 @@ public function stream_headers($handle, $headers) { $this->headers = ''; $this->done_headers = false; } + $this->headers .= $headers; if ($headers === "\r\n") { $this->done_headers = true; } + return strlen($headers); } @@ -549,8 +550,7 @@ public function stream_body($handle, $data) { if ($this->stream_handle) { fwrite($this->stream_handle, $data); - } - else { + } else { $this->response_data .= $data; } @@ -571,8 +571,7 @@ private static function format_get($url, $data) { $url_parts = parse_url($url); if (empty($url_parts['query'])) { $url_parts['query'] = ''; - } - else { + } else { $query = $url_parts['query']; } @@ -581,11 +580,11 @@ private static function format_get($url, $data) { if (empty($url_parts['query'])) { $url .= '?' . $query; - } - else { + } else { $url = str_replace($url_parts['query'], $query, $url); } } + return $url; } diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Transport/Fsockopen.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Transport/Fsockopen.php similarity index 98% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Transport/Fsockopen.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Transport/Fsockopen.php index 4779346a..c3bd4a63 100644 --- a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Transport/Fsockopen.php +++ b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Transport/Fsockopen.php @@ -96,6 +96,7 @@ public function request($url, $headers = [], $data = [], $options = []) { if (empty($url_parts)) { throw new Exception('Invalid URL.', 'invalidurl', $url); } + $host = $url_parts['host']; $context = stream_context_create(); $verifyname = false; @@ -128,8 +129,7 @@ public function request($url, $headers = [], $data = [], $options = []) { $context_options['verify_peer'] = false; $context_options['verify_peer_name'] = false; $verifyname = false; - } - elseif (is_string($options['verify'])) { + } elseif (is_string($options['verify'])) { $context_options['cafile'] = $options['verify']; } } @@ -140,8 +140,7 @@ public function request($url, $headers = [], $data = [], $options = []) { } stream_context_set_option($context, ['ssl' => $context_options]); - } - else { + } else { $remote_socket = 'tcp://' . $host; } @@ -150,6 +149,7 @@ public function request($url, $headers = [], $data = [], $options = []) { 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 @@ -179,8 +179,7 @@ public function request($url, $headers = [], $data = [], $options = []) { if ($data_format === 'query') { $path = self::format_get($url_parts, $data); $data = ''; - } - else { + } else { $path = self::format_get($url_parts, []); } @@ -192,8 +191,7 @@ public function request($url, $headers = [], $data = [], $options = []) { if ($options['type'] !== Requests::TRACE) { if (is_array($data)) { $request_body = http_build_query($data, '', '&'); - } - else { + } else { $request_body = $data; } @@ -217,6 +215,7 @@ public function request($url, $headers = [], $data = [], $options = []) { if (($scheme_lower === 'http' && $url_parts['port'] !== Port::HTTP) || ($scheme_lower === 'https' && $url_parts['port'] !== Port::HTTPS)) { $out .= ':' . $url_parts['port']; } + $out .= "\r\n"; } @@ -262,10 +261,10 @@ public function request($url, $headers = [], $data = [], $options = []) { $timeout_sec = (int) floor($options['timeout']); if ($timeout_sec === $options['timeout']) { $timeout_msec = 0; - } - else { + } else { $timeout_msec = self::SECOND_IN_MICROSECONDS * $options['timeout'] % self::SECOND_IN_MICROSECONDS; } + stream_set_timeout($socket, $timeout_sec, $timeout_msec); $response = ''; @@ -308,6 +307,7 @@ public function request($url, $headers = [], $data = [], $options = []) { if ($size === $this->max_bytes) { continue; } + if (($size + $data_length) > $this->max_bytes) { // Limit the length $limited_length = ($this->max_bytes - $size); @@ -318,20 +318,20 @@ public function request($url, $headers = [], $data = [], $options = []) { $size += strlen($block); if ($download) { fwrite($download, $block); - } - else { + } else { $body .= $block; } } } + $this->headers = $headers; if ($download) { fclose($download); - } - else { + } else { $this->headers .= "\r\n\r\n" . $body; } + fclose($socket); $options['hooks']->dispatch('fsockopen.after_request', [&$this->headers, &$this->info]); @@ -370,8 +370,7 @@ public function request_multiple($requests, $options) { $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) { + } catch (Exception $e) { $responses[$id] = $e; } @@ -419,17 +418,17 @@ private static function format_get($url_parts, $data) { $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 { + } else { $get = $url_parts['path']; } - } - else { + } else { $get = '/'; } + return $get; } diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Utility/CaseInsensitiveDictionary.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Utility/CaseInsensitiveDictionary.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Utility/CaseInsensitiveDictionary.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Utility/CaseInsensitiveDictionary.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Utility/FilteredIterator.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Utility/FilteredIterator.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Utility/FilteredIterator.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Utility/FilteredIterator.php diff --git a/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Utility/InputValidator.php b/system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Utility/InputValidator.php similarity index 100% rename from system/library/razorpay/razorpay-sdk/libs/Requests-2.0.0/src/Utility/InputValidator.php rename to system/library/razorpay/razorpay-sdk/libs/Requests-2.0.4/src/Utility/InputValidator.php diff --git a/system/library/razorpay/razorpay-sdk/phpunit.xml.dist b/system/library/razorpay/razorpay-sdk/phpunit.xml.dist new file mode 100644 index 00000000..697062a5 --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/phpunit.xml.dist @@ -0,0 +1,34 @@ + + + + + + ./src + + + + + + + + + + + ./non_composer_tests/ + + + ./tests + + + diff --git a/system/library/razorpay/razorpay-sdk/release.txt b/system/library/razorpay/razorpay-sdk/release.txt new file mode 100644 index 00000000..69aa9f16 --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/release.txt @@ -0,0 +1,8 @@ +src/ +libs/ +README.md +Razorpay.php +composer.lock +composer.json +doc.md +version.txt \ No newline at end of file diff --git a/system/library/razorpay/razorpay-sdk/src/Account.php b/system/library/razorpay/razorpay-sdk/src/Account.php new file mode 100644 index 00000000..11eb901a --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/src/Account.php @@ -0,0 +1,78 @@ +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/system/library/razorpay/razorpay-sdk/src/Api.php b/system/library/razorpay/razorpay-sdk/src/Api.php index d62172c9..a970cd0a 100644 --- a/system/library/razorpay/razorpay-sdk/src/Api.php +++ b/system/library/razorpay/razorpay-sdk/src/Api.php @@ -4,7 +4,7 @@ class Api { - protected static $baseUrl = 'https://api.razorpay.com/v1/'; + protected static $baseUrl = 'https://api.razorpay.com'; protected static $key = null; @@ -16,7 +16,7 @@ class Api */ public static $appsDetails = array(); - const VERSION = '2.8.3'; + const VERSION = '2.9.0'; /** * @param string $key @@ -84,8 +84,8 @@ public static function getSecret() return self::$secret; } - public static function getFullUrl($relativeUrl) + public static function getFullUrl($relativeUrl, $apiVersion = "v1") { - return self::getBaseUrl() . $relativeUrl; + return self::getBaseUrl() . "/". $apiVersion . "/". $relativeUrl; } } diff --git a/system/library/razorpay/razorpay-sdk/src/Card.php b/system/library/razorpay/razorpay-sdk/src/Card.php index d9f77eff..186815b9 100644 --- a/system/library/razorpay/razorpay-sdk/src/Card.php +++ b/system/library/razorpay/razorpay-sdk/src/Card.php @@ -11,4 +11,11 @@ public function fetch($id) { return parent::fetch($id); } + + public function requestCardReference($attributes = array()) + { + $entityUrl = $this->getEntityUrl() . '/fingerprints'; + + return $this->request('POST', $entityUrl, $attributes); + } } diff --git a/system/library/razorpay/razorpay-sdk/src/Customer.php b/system/library/razorpay/razorpay-sdk/src/Customer.php index 45cd6d46..0173d836 100644 --- a/system/library/razorpay/razorpay-sdk/src/Customer.php +++ b/system/library/razorpay/razorpay-sdk/src/Customer.php @@ -37,4 +37,32 @@ public function tokens() 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/system/library/razorpay/razorpay-sdk/src/Dispute.php b/system/library/razorpay/razorpay-sdk/src/Dispute.php new file mode 100644 index 00000000..25e0e1c1 --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/src/Dispute.php @@ -0,0 +1,35 @@ +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/system/library/razorpay/razorpay-sdk/src/Document.php b/system/library/razorpay/razorpay-sdk/src/Document.php new file mode 100644 index 00000000..bb01d52a --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/src/Document.php @@ -0,0 +1,20 @@ +setFile($attributes); + + return parent::create($attributes); + } + + public function fetch($id) + { + return parent::fetch($id); + } + +} diff --git a/system/library/razorpay/razorpay-sdk/src/Entity.php b/system/library/razorpay/razorpay-sdk/src/Entity.php index feb98507..2424ebca 100644 --- a/system/library/razorpay/razorpay-sdk/src/Entity.php +++ b/system/library/razorpay/razorpay-sdk/src/Entity.php @@ -82,14 +82,15 @@ protected function snakeCase($input) * @param string $relativeUrl * @param array $data * @param array $additionHeader + * @param string $apiVersion * * @return Entity */ - protected function request($method, $relativeUrl, $data = null) + protected function request($method, $relativeUrl, $data = null, $apiVersion = "v1") { $request = new Request(); - $response = $request->request($method, $relativeUrl, $data); + $response = $request->request($method, $relativeUrl, $data, $apiVersion); if ((isset($response['entity'])) and ($response['entity'] == $this->getEntity())) { @@ -230,4 +231,16 @@ protected function convertToArray($attributes) 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/system/library/razorpay/razorpay-sdk/src/Iin.php b/system/library/razorpay/razorpay-sdk/src/Iin.php new file mode 100644 index 00000000..ddae6409 --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/src/Iin.php @@ -0,0 +1,18 @@ +getEntityUrl(). 'list'; + + return $this->request('GET', $relativeUrl, $options); + } +} diff --git a/system/library/razorpay/razorpay-sdk/src/Order.php b/system/library/razorpay/razorpay-sdk/src/Order.php index 3143a3c5..50404f1c 100644 --- a/system/library/razorpay/razorpay-sdk/src/Order.php +++ b/system/library/razorpay/razorpay-sdk/src/Order.php @@ -2,6 +2,8 @@ namespace Razorpay\Api; +use Requests; + class Order extends Entity { /** @@ -9,6 +11,10 @@ class Order extends Entity */ public function create($attributes = array()) { + $attributes = json_encode($attributes); + + Request::addHeader('Content-Type', 'application/json'); + return parent::create($attributes); } @@ -42,4 +48,18 @@ public function transfers($options = array()) 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/system/library/razorpay/razorpay-sdk/src/Payment.php b/system/library/razorpay/razorpay-sdk/src/Payment.php index 914fbd62..38bcd46b 100644 --- a/system/library/razorpay/razorpay-sdk/src/Payment.php +++ b/system/library/razorpay/razorpay-sdk/src/Payment.php @@ -162,7 +162,7 @@ public function createPaymentJson($attributes = array()) return $this->request('POST', $relativeUrl, $attributes); } /** - * submit otp + * Submit otp * * @param id $id * @@ -182,11 +182,52 @@ public function otpSubmit($attributes = array()) * * @param array $attributes */ - public function otpGenerate() + public function otpGenerate($id) { - $relativeUrl = $this->getEntityUrl(). $this->id . '/otp_generate'; + $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/system/library/razorpay/razorpay-sdk/src/Product.php b/system/library/razorpay/razorpay-sdk/src/Product.php new file mode 100644 index 00000000..04c17fd0 --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/src/Product.php @@ -0,0 +1,34 @@ +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/system/library/razorpay/razorpay-sdk/src/Request.php b/system/library/razorpay/razorpay-sdk/src/Request.php index 78ea5919..2ccab02e 100644 --- a/system/library/razorpay/razorpay-sdk/src/Request.php +++ b/system/library/razorpay/razorpay-sdk/src/Request.php @@ -35,12 +35,13 @@ class Request * @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()) - { - $url = Api::getFullUrl($url); + public function request($method, $url, $data = array(), $apiVersion = "v1") + { + $url = Api::getFullUrl($url, $apiVersion); $hooks = new Requests_Hooks(); diff --git a/system/library/razorpay/razorpay-sdk/src/Settlement.php b/system/library/razorpay/razorpay-sdk/src/Settlement.php index d3730f03..1715dac1 100644 --- a/system/library/razorpay/razorpay-sdk/src/Settlement.php +++ b/system/library/razorpay/razorpay-sdk/src/Settlement.php @@ -65,23 +65,24 @@ public function settlementRecon($options = array()) /** * fetch Ondemand Settlement by Id * @param string $id + * @param array $options * @return array */ - public function fetchOndemandSettlementById() + public function fetchOndemandSettlementById($id, $options = array()) { - $relativeUrl = $this->getEntityUrl(). "ondemand/" . $this->id ; + $relativeUrl = $this->getEntityUrl(). "ondemand/" . $id; - return $this->request('GET', $relativeUrl); + return $this->request('GET', $relativeUrl, $options); } /** * fetch all Ondemand Settlement * @return array */ - public function fetchAllOndemandSettlement() + public function fetchAllOndemandSettlement($options = array()) { $relativeUrl = $this->getEntityUrl(). "ondemand/"; - return $this->request('GET', $relativeUrl); + return $this->request('GET', $relativeUrl, $options); } } diff --git a/system/library/razorpay/razorpay-sdk/src/Stakeholder.php b/system/library/razorpay/razorpay-sdk/src/Stakeholder.php new file mode 100644 index 00000000..3acc1158 --- /dev/null +++ b/system/library/razorpay/razorpay-sdk/src/Stakeholder.php @@ -0,0 +1,50 @@ +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/system/library/razorpay/razorpay-sdk/src/Token.php b/system/library/razorpay/razorpay-sdk/src/Token.php index 4a2e5634..8f55874c 100644 --- a/system/library/razorpay/razorpay-sdk/src/Token.php +++ b/system/library/razorpay/razorpay-sdk/src/Token.php @@ -3,7 +3,15 @@ namespace Razorpay\Api; class Token extends Entity -{ +{ + + public function create($attributes = array()) + { + $url = $this->getEntityUrl(); + + return $this->request('POST', $url, $attributes); + } + /** * @param $id Token id */ @@ -14,6 +22,13 @@ public function fetch($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(); @@ -27,4 +42,18 @@ public function delete($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/system/library/razorpay/razorpay-sdk/src/Webhook.php b/system/library/razorpay/razorpay-sdk/src/Webhook.php index b1352870..a0e9d9ac 100644 --- a/system/library/razorpay/razorpay-sdk/src/Webhook.php +++ b/system/library/razorpay/razorpay-sdk/src/Webhook.php @@ -10,16 +10,34 @@ class Webhook extends Entity */ public function create($attributes = array()) { + if(isset($this->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); } @@ -27,13 +45,26 @@ public function all($options = array()) * Patches given webhook with new attributes * * @param array $attributes - * - * @return Webhooks + * @param string $id + * @return Webhook */ - public function edit($attributes = array(), $id) + 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/system/library/razorpay/razorpay-sdk/version.txt b/system/library/razorpay/razorpay-sdk/version.txt deleted file mode 100644 index 642c63c4..00000000 --- a/system/library/razorpay/razorpay-sdk/version.txt +++ /dev/null @@ -1 +0,0 @@ -2.8.3 \ No newline at end of file