Skip to main content

PyPaytabs is a Python library for Paytabs Payment Gateway.

Project description

PyPaytabs

PyPaytabs is a Python library for Paytabs Payment Gateway.

Features:

  • Authentication by merchant_email and secret_key
  • Payment Page Creation
  • Payment Process Verification

Installation

Use the package manager pip to install PyPaytabs.

pip install pypaytabs

Usage

You are required to Login to obtain merchant_email and secret_key from Paytabs

from pypaytabs import Paytabs
from pypaytabs import Utilities as util

paytab = Paytabs(merchant_email, secret_key) # return an object of paytabs

#authenticate with returned object
result = paytab.authenticate() # returns PaytabsApiResponse object with response_status and status or exception error (PaytabsApiError: Invalid)
print('Result', result.data) #Result {'result': 'valid', 'response_code': '4000'} or pypaytabs.Exceptions.PaytabsApiError: invalid

#Prepare product names list to be passed to create_pay_page method
products = {'names':['product_1','product_2','product_3'],'quantities':['5','2.5','10'],'prices':['5','8','9']}
invoice_products = util.prepare_invoice(products)
print('Invoice Details: ', invoice_products)  #{'names': 'product_1 || product_2 || product_3', 'prices': '5 || 8 || 9', 'quantities': '5 || 2.5 || 10'}

#to create pay page, you have to prepare data as dictionary as like:
pay_data = {"merchant_email":paytab.email, 'secret_key':paytab.key,
            "site_url" : "https://www.yourwebsite.com",
            "return_url" : "https://www.yourwebsite.com/return",
            "title": "JohnDoe And Co.",
            "cc_first_name": "John",
            "cc_last_name": "Doe",
            "cc_phone_number": "00973",
            "phone_number": "123123123456",
            "email": "johndoe@example.com",
            "products_per_title": invoice_products['names'], #by using invoice_products dictionary returned from prepare_invoice method,
            "unit_price": invoice_products['prices'],
            "quantity": invoice_products['quantities'],
            "other_charges": "12.123",
            "amount": "136.082",
            "discount": "10.123",
            "currency": "BHD",
            "reference_no": "ABC-123",
            "ip_customer": "1.1.1.0",
            "ip_merchant": "1.1.1.0",
            "billing_address": "Flat 3021 Manama Bahrain",
            "city": "Manama",
            "state": "Manama",
            "postal_code": "12345",
            "country": "BHR",
            "shipping_first_name": "John",
            "shipping_last_name": "Doe",
            "address_shipping": "Flat 3021 Manama Bahrain",
            "state_shipping": "Manama",
            "city_shipping": "Manama",
            "postal_code_shipping": "1234",
            "country_shipping": "BHR",
            "msg_lang": "English",
            "cms_with_version": "WordPress4.0-WooCommerce2.3.9"
            }
#Creation of Payment Page
result = paytab.create_payment(**pay_data) #to create payment page, return PaytabsApiResponse with data dict contains payment_url and p_id
print('Result:', result.data) #Result {'result': 'The Pay Page is created.', 'response_code': '4012', 'payment_url': 'https://www.paytabs.com/osdh3SCmEYoD5trKc4oz2VmE91mmQCtqop-PgmsGyFHj9zE/dCetYxYV8qi0XIBl49Y9dMAFPGNTkb6Yot-wgKYKCo94jE8/DTKnWzcrnK65jwoj2X6pmtvj8UI-3YmGDuJ6vDD8FizQOYE/CkdveIWwKhMDPXsuU8vJysaf1ccsOG1XYOZF8O15JInD28z1pER29OEX27E10GXQAI7FCzUJgSyp-6XRgYeejOPf7g', 'p_id': 333348}

#Verify Payment
verifying_data = {
    "payment_reference": result.data['p_id']
 }
return_obj = paytab.verify_payment(**verifying_data) #verify payment process by using payment reference code, returns PaytabsApiResponse with data dict contains
print('Payment Status', return_obj.data) #{"result": "The payment is completed successfully!","response_code": "100","pt_invoice_id": "2124779","amount": 11.45,"currency": "OMR","reference_no": "12","transaction_id": "1720833"} or Raise Exceptions

Maintainers

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypaytabs-1.0.1.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

pypaytabs-1.0.1-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file pypaytabs-1.0.1.tar.gz.

File metadata

  • Download URL: pypaytabs-1.0.1.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.6.8

File hashes

Hashes for pypaytabs-1.0.1.tar.gz
Algorithm Hash digest
SHA256 236d9f21838feae116e73203505d71f20843bc25c47b1817836064b5cb67df79
MD5 2e43cc6c88bdab7effdc6c88b5db8e5c
BLAKE2b-256 7ad745dff40f7c044e4143edadf8aa0747bb09361b01d2681939d75bc4729721

See more details on using hashes here.

File details

Details for the file pypaytabs-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: pypaytabs-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.6.8

File hashes

Hashes for pypaytabs-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6d4693e24cac52bf4ec06a5b600df549feba2d1880e6503b118ac5f481b084ee
MD5 0bf07b99c9f7b971db378ee8c8cae842
BLAKE2b-256 a741fe4dd4464ed8854d8dfae62fe828b065a2ac0c00f116bba616c4d807efc3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page