Skip to content

Commit

Permalink
Merge pull request #23 from razorpay/metadata_notes_support
Browse files Browse the repository at this point in the history
PON-241 - Added metadata, notes in payment information and updated the razorpay-sdk
  • Loading branch information
ChetanGN authored Feb 25, 2020
2 parents 4bee1ba + 62d9d34 commit 0efaafc
Show file tree
Hide file tree
Showing 126 changed files with 5,524 additions and 5,373 deletions.
13 changes: 10 additions & 3 deletions README.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
Contributors: razorpay
Tags: razorpay, payments, india, quick, simple
Requires at least: 3.0.1
Tested up to: 4.8.1
Stable tag: 1.0.1
Tested up to: 5.3.2
Stable tag: 1.1.0
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Expand Down Expand Up @@ -33,4 +33,11 @@ For this plugin to work correctly, please mention the following items as page me

1. 'name' of the product.
2. 'description' of the product.
3. 'amount' in paise, with a minimum of 1 rupee.
3. 'amount' with a minimum of 1 rupee.

== Changelog ==

= 1.1.0 =
* Added metadata information.
* Updates Razorpay SDK
* Tested upto WordPress 5.3.2
139 changes: 106 additions & 33 deletions razorpay-php/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,49 +2,121 @@

[![Build Status](https://travis-ci.org/razorpay/razorpay-php.svg?branch=master)](https://travis-ci.org/razorpay/razorpay-php) [![Latest Stable Version](https://poser.pugx.org/razorpay/razorpay/v/stable.svg)](https://packagist.org/packages/razorpay/razorpay) [![License](https://poser.pugx.org/razorpay/razorpay/license.svg)](https://packagist.org/packages/razorpay/razorpay)

Razorpay client PHP Api. The api follows the following practices:
Razorpay client PHP API. The Api follows the following practices:

- namespaced under Razorpay\Api
- call $api->class->function() to access the api
- api throws exceptions instead of returning errors
- options are passed as an array instead of multiple arguments wherever possible
- All request and responses are communicated over JSON
- A minimum of PHP 5.3 is required
- Namespaced under `Razorpay\Api`
- Call `$api->class->function()` to access the API
- API throws exceptions instead of returning errors
- Options are passed as an array instead of multiple arguments wherever possible
- All requests and responses are communicated over JSON
- A minimum of PHP 5.3 is required

# Installation

- If your project uses composer, add following to composer.json
```json
{
"require": {
"razorpay/razorpay": "1.*"
}
}
```
- If your project uses composer, run the below command

Then, run `composer update`. If you are not using composer, download
the latest release from [the releases section](https://github.com/razorpay/razorpay-php/releases).
**You should download the `razorpay-php.zip` file**.
```
composer require razorpay/razorpay:2.*
```

After that include `Razorpay.php` in your application and you can use the
API as usual.
- If you are not using composer, download the latest release from [the releases section](https://github.com/razorpay/razorpay-php/releases).
**You should download the `razorpay-php.zip` file**.
After that, include `Razorpay.php` in your application and you can use the API as usual.

# Usage

```php
use Razorpay\Api\Api;

$api = new Api($api_key, $api_secret);
$api->payment->all($options); // Returns array of payment objects
$payment = $api->payment->fetch($id); // Returns a particular payment
$api->payment->fetch($id)->capture(array('amount'=>$amount)); // Captures a payment
$api->payment->fetch($id)->refund(); // Refunds a payment
$api->payment->fetch($id)->refund(array('amount'=>$refundAmount)); // Partially refunds a payment

// Orders
$order = $api->order->create(array('receipt' => '123', 'amount' => 100, 'currency' => 'INR')); // Creates order
$order = $api->order->fetch($orderId); // Returns a particular order
$orders = $api->order->all($options); // Returns array of order objects
$payments = $api->order->fetch($orderId)->payments(); // Returns array of payment objects against an order

// Payments
$payments = $api->payment->all($options); // Returns array of payment objects
$payment = $api->payment->fetch($id); // Returns a particular payment
$payment = $api->payment->fetch($id)->capture(array('amount'=>$amount)); // Captures a payment

// To get the payment details
echo $payment->amount;
echo $payment->currency;
// And so on for other attributes

// Refunds
$refund = $api->refund->create(array('payment_id' => $id)); // Creates refund for a payment
$refund = $api->refund->create(array('payment_id' => $id, 'amount'=>$refundAmount)); // Creates partial refund for a payment
$refund = $api->refund->fetch($refundId); // Returns a particular refund

// Cards
$card = $api->card->fetch($cardId); // Returns a particular card

// Customers
$customer = $api->customer->create(array('name' => 'Razorpay User', 'email' => '[email protected]')); // Creates customer
$customer = $api->customer->fetch($customerId); // Returns a particular customer
$customer = $api->customer->edit(array('name' => 'Razorpay User', 'email' => '[email protected]')); // Edits customer

// Tokens
$token = $api->customer->token()->fetch($tokenId); // Returns a particular token
$tokens = $api->customer->token()->all($options); // Returns array of token objects
$api->customer->token()->delete($tokenId); // Deletes a token


// Transfers
$transfer = $api->payment->fetch($paymentId)->transfer(array('transfers' => [ ['account' => $accountId, 'amount' => 100, 'currency' => 'INR']])); // Create transfer
$transfers = $api->transfer->all(); // Fetch all transfers
$transfers = $api->payment->fetch($paymentId)->transfers(); // Fetch all transfers created on a payment
$transfer = $api->transfer->fetch($transferId)->edit($options); // Edit a transfer
$reversal = $api->transfer->fetch($transferId)->reverse(); // Reverse a transfer

// Payment Links
$links = $api->invoice->all();
$link = $api->invoice->fetch('inv_00000000000001');
$link = $api->invoice->create(arary('type' => 'link', 'amount' => 500, 'description' => 'For XYZ purpose', 'customer' => array('email' => '[email protected]')));
$link->cancel();
$link->notifyBy('sms');

// Invoices
$invoices = $api->invoice->all();
$invoice = $api->invoice->fetch('inv_00000000000001');
$invoice = $api->invoice->create($params); // Ref: razorpay.com/docs/invoices for request params example
$invoice = $invoice->edit($params);
$invoice->issue();
$invoice->notifyBy('email');
$invoice->cancel();
$invoice->delete();

// Virtual Accounts
$virtualAccount = $api->virtualAccount->create(array('receiver_types' => array('bank_account'), 'description' => 'First Virtual Account', 'notes' => array('receiver_key' => 'receiver_value')));
$virtualAccounts = $api->virtualAccount->all();
$virtualAccount = $api->virtualAccount->fetch('va_4xbQrmEoA5WJ0G');
$virtualAccount = $virtualAccount->close();
$payments = $virtualAccount->payments();
$bankTransfer = $api->payment->fetch('pay_8JpVEWsoNPKdQh')->bankTransfer();

// Bharat QR
$bharatQR = $api->virtualAccount->create(array('receivers' => array('types' => array('qr_code')), 'description' => 'First QR code', 'amount_expected' => 100, 'notes' => array('receiver_key' => 'receiver_value'))); // Create Static QR
$bharatQR = $api->virtualAccount->create(array('receivers' => array('types' => array('qr_code')), 'description' => 'First QR code', 'notes' => array('receiver_key' => 'receiver_value'))); // Create Dynamic QR

// Subscriptions
$plan = $api->plan->create(array('period' => 'weekly', 'interval' => 1, 'item' => array('name' => 'Test Weekly 1 plan', 'description' => 'Description for the weekly 1 plan', 'amount' => 600, 'currency' => 'INR')));
$plan = $api->plan->fetch('plan_7wAosPWtrkhqZw');
$plans = $api->plan->all();
$subscription = $api->subscription->create(array('plan_id' => 'plan_7wAosPWtrkhqZw', 'customer_notify' => 1, 'total_count' => 6, 'start_at' => 1495995837, 'addons' => array(array('item' => array('name' => 'Delivery charges', 'amount' => 30000, 'currency' => 'INR')))));
$subscription = $api->subscription->fetch('sub_82uBGfpFK47AlA');
$subscriptions = $api->subscription->all();
$subscription = $api->subscription->fetch('sub_82uBGfpFK47AlA')->cancel($options); //$options = ['cancel_at_cycle_end' => 1];
$addon = $api->subscription->fetch('sub_82uBGfpFK47AlA')->createAddon(array('item' => array('name' => 'Extra Chair', 'amount' => 30000, 'currency' => 'INR'), 'quantity' => 2));
$addon = $api->addon->fetch('ao_8nDvQYYGQI5o4H');
$addon = $api->addon->fetch('ao_8nDvQYYGQI5o4H')->delete();

// Settlements
$settlement = $api->settlement->fetch('setl_7IZKKI4Pnt2kEe');
$settlements = $api->settlement->all();
$reports = $api->settlement->reports(array('year' => 2018, 'month' => 2));
```

For further help, see our documentation on <https://docs.razorpay.com>.
Expand All @@ -57,16 +129,17 @@ See the [doc.md](doc.md) file for getting started with development.

## License

The Razorpay PHP SDK is released under the MIT License.
The Razorpay PHP SDK is released under the MIT License. See [LICENSE](LICENSE) file for more details.

## Release

Steps to follow for a release:

0. Merge the branch with the new code to master.
1. Bump the Version in `src/Api.php`.
2. Rename Unreleased to the new tag in `CHANGELOG`
3. Fix links at bottom in `CHANGELOG`
4. Commit
5. Tag the release and push to GitHub
6. Create a release on GitHub using the website with more details about the release
0. Merge the branch with the new code to master.
1. Bump the Version in `src/Api.php`.
1. Rename Unreleased to the new tag in `CHANGELOG.md`
1. Add a new empty "Unreleased" section at the top of `CHANGELOG.md`
1. Fix links at bottom in `CHANGELOG.md`
1. Commit
1. Tag the release and push to GitHub
1. A release should automatically be created once the travis build passes. Edit the release to add some description.
4 changes: 2 additions & 2 deletions razorpay-php/Razorpay.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
// Include Requests only if not already defined
if (class_exists('Requests') === false)
{
require_once __DIR__.'/libs/Requests-1.6.1/library/Requests.php';
require_once __DIR__.'/libs/Requests-1.7.0/library/Requests.php';
}

try
{
Requests::register_autoloader();
Requests::register_autoloader();

if (version_compare(Requests::VERSION, '1.6.0') === -1)
{
Expand Down
40 changes: 40 additions & 0 deletions razorpay-php/composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{
"name": "razorpay/razorpay",
"description": "Razorpay PHP Client Library",
"keywords": ["razorpay", "api", "php", "client"],
"authors": [
{
"name": "Abhay Rana",
"email": "[email protected]",
"homepage": "https://captnemo.in",
"role": "Developer"
},
{
"name": "Shashank Kumar",
"email": "[email protected]",
"role": "Developer"
}
],
"support": {
"email": "[email protected]",
"issues": "https://github.com/Razorpay/razorpay-php/issues",
"source": "https://github.com/Razorpay/razorpay-php"
},
"homepage": "https://docs.razorpay.com",
"license": "MIT",
"require": {
"php": ">=5.3.0",
"rmccue/requests": "v1.7.0",
"ext-json": "*"
},
"require-dev": {
"raveren/kint": "1.*",
"phpunit/phpunit": "~4.8|~5.0"
},
"autoload": {
"psr-4": {
"Razorpay\\Api\\": "src/",
"Razorpay\\Tests\\": "tests/"
}
}
}
Loading

0 comments on commit 0efaafc

Please sign in to comment.