/kivypaystack

Primary LanguagePythonMIT LicenseMIT

kivypaystack

A port of paystack payment system to support the kivy framework

It uses the builtin UrlRequest class to make asynchronous requests on the web and get the result when the request is completed, so no external module is needed

  • Charge the customer
  • Verify a transaction
  • Create Plans
  • Get a single or all transactions
  • Get a single or all customers

##Installation pip it away

pip install -U kivypaystack

Register on the paystack website https://www.paystack.com and get your Authorization key.
you can store your authorization key in your environment variable as "PAYSTACK_AUTHORIZATION_KEY" or pass it into the
any kivypaystack objects at initiatialization.

##Examples

from kivypaystack import Transaction, Customer, Plan

"""
All objects at initialization, recieves an optional callback func
"""

def transaction_callback(action, result_type, request, result):
    ''' action: reponse action performed EG: transaction.charge("customer@domain.com", "CustomerAUTHcode", 10000)
                on callback action will be 'charge' 

        result_type:  can be 'success', 'failure', 'redirect', 'error'

        request: instance of kivy.urlrequest.UrlRequest

        result: a decided json dictionary
    '''
    if action == 'charge':  # if a charge transaction was passed
        print(result_type, result)

    if action == 'verify':
        print(result_type, result)


#Instantiate the transaction object to handle transactions.  
#Pass in your authorization key - if not set as environment variable PAYSTACK_AUTHORIZATION_KEY
# warning use public key not your secret key
transaction = Transaction(authorization_key="pk_myauthorizationkeyfromthepaystackguys", callback=transaction_callback)
response = transaction.charge("customer@domain.com", "CustomerAUTHcode", 10000) #Charge a customer N100.
response  = transaction.verify(refcode) #Verify a transaction given a reference code "refcode".


#Instantiate the customer class to manage customers

customer = Customer(authorization_key="pk_myauthorizationkeyfromthepaystackguys")
response = customer.create("customer2@gmail.com", "John", "Doe", phone="080123456789") #Add new customer
response = customer.getone(1234) #Get customer with id of 1234
response = customer.getall() #Get all customers


#Instantiate the plan class to manage plans

plan = Plan(authorization_key="pk_myauthorizationkeyfromthepaystackguys")
response = plan.create("Test Plan", 150000, 'Weekly') #Add new plan
response = plan.getone(240) #Get plan with id of 240
response = plan.getall() #Get all plans