Code Monkey home page Code Monkey logo

instamojo-py's Introduction

Instamojo API

Note: If you're using this wrapper with our sandbox environment https://test.instamojo.com/ then you should pass 'https://test.instamojo.com/api/1.1/' as third argument to the Instamojo class while initializing it. API key and Auth token for the same can be obtained from https://test.instamojo.com/developers/ (Details: Test Or Sandbox Account).

api = Instamojo(api_key=API_KEY, auth_token=AUTH_TOKEN, endpoint='https://test.instamojo.com/api/1.1/');

Installation

pip install instamojo_wrapper

Authentication Keys

You can find your API_KEY and AUTH_TOKEN at the API Documentation Page. Create an account on Instamojo, log in and visit this link: https://www.instamojo.com/developers/

Usage

Create a new Payment Request

from instamojo_wrapper import Instamojo
api = Instamojo(api_key=API_KEY,
                auth_token=AUTH_TOKEN)

# Create a new Payment Request
response = api.payment_request_create(
    amount='3499',
    purpose='FIFA 16',
    send_email=True,
    email="[email protected]",
    redirect_url="http://www.example.com/handle_redirect.py"
    )
# print the long URL of the payment request.
print response['payment_request']['longurl']
# print the unique ID(or payment request ID)
print response['payment_request']['id']

Get the status or details of a Payment Request

from instamojo_wrapper import Instamojo
api = Instamojo(api_key=API_KEY,
                auth_token=AUTH_TOKEN)

# Create a new Payment Request
response = api.payment_request_status('[PAYMENT REQUEST ID]')

print response['payment_request']['shorturl']  # Get the short URL
print response['payment_request']['status']    # Get the current status
print response['payment_request']['payments']  # List of payments

Get the status of a Payment related to a Payment Request

from instamojo_wrapper import Instamojo
api = Instamojo(api_key=API_KEY,
                auth_token=AUTH_TOKEN)

# Create a new Payment Request
response = api.payment_request_payment_status('[PAYMENT REQUEST ID]', '[PAYMENT ID]')

print response['payment_request']['purpose']             # Purpose of Payment Request
print response['payment_request']['payment']['status']   # Payment status

Get a list of Payment Requests

from instamojo_wrapper import Instamojo
api = Instamojo(api_key=API_KEY,
                auth_token=AUTH_TOKEN)

# Create a new Payment Request
response = api.payment_requests_list()

# Loop over all of the payment requests
for payment_request in response['payment_requests']:
    print payment_request['status']

payment_requests_list() also accepts optional arguments like max_created_at, min_created_at, min_modified_at, max_modified_at, page and limit for filtering as well as paginating the reponse.

response = api.payment_requests_list(max_created_at="2015-11-19T10:12:19Z",
                                    min_created_at="2015-10-29T12:51:36Z", page=1, limit=50)

For details related to supported datetime format supported by these arguments check the documentation: https://www.instamojo.com/developers/request-a-payment-api/#toc-filtering-payment-requests

Available Request a Payment Functions

  • payment_request_create(purpose, amount) => Payment Request
  • payment_request_status(id) => Payment Request
  • payment_requests_list() => List of Payment Requests
  • payment_request_payment_status(id, payment_id) => Payment Request with Payment details

Payment Request Creation Parameters

Required

  • purpose: Purpose of the payment request. (max-characters: 30)
  • amount: Amount requested (min-value: 9 ; max-value: 200000)

Optional

  • buyer_name: Name of the payer. (max-characters: 100)
  • email: Email of the payer. (max-characters: 75)
  • phone: Phone number of the payer.
  • send_email: Set this to True if you want to send email to the payer if email is specified. If email is not specified then an error is raised. (default value: False)
  • send_sms: Set this to True if you want to send SMS to the payer if phone is specified. If phone is not specified then an error is raised. (default value: False)
  • redirect_url: set this to a thank-you page on your site. Buyers will be redirected here after successful payment.
  • webhook: set this to a URL that can accept POST requests made by Instamojo server after successful payment.
  • allow_repeated_payments: To disallow multiple successful payments on a Payment Request pass false for this field. If this is set to false then the link is not accessible publicly after first successful payment, though you can still access it using API(default value: True).

Further documentation is available at https://www.instamojo.com/developers/request-a-payment-api/

instamojo-py's People

Contributors

ankurgel avatar ashwch avatar hiway avatar im-abeer avatar indradhanush avatar saich avatar sarthakk97 avatar sengupta avatar vijithv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

instamojo-py's Issues

Python3 support

The repo doesn't work for python3. I get an import error.
Can be solved by replacing

from api import Instamojo

with

from instamojo.api import Instamojo

in __init__.py file

Internal Server Error thrown when base_price < 9

While using instamojo-py to create an offer and base_price was lesser than 9 an internal server error was thrown.

{"message": "Internal Server Error", "success": false}

However if compulsory fields like title and currency are missed out or invalid, proper errors are reported in the response. If base_price is missing the right error is shown; however if base_price < 9 then an internal server error is thrown.

One way to solve this is to add this constraint in the API endpoint documentation.

Does the SDK support Oauth flow?

I am trying to integrate with install mojo, Market place API, and perform auth using OAuth flow. Does the SDK provide wrappers for the same

Add a method to disable payment request.

Add a method that achieves the following functionality.

response = request.post("https://www.instamojo.com/api/1.1/payment-requests/" + str(payment_id) + "/disable/", headers=headers)

I'll be happy to work on it if needed. ๐Ÿ˜„

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.