Uncategorized

paddle-billing-python-sdk · PyPI


Build Status
PyPI
PyPI pyversions
License: MIT

An unofficial Python wrapper for the new Paddle Billing SDK, based on Paddle’s official paddle-php-sdk

Core developers

Table of contents

Requirements

Python 3.11 and later.

Project dependencies (automatically installed by pip):

  • requests>=2.31
  • urllib3>=2.1.0

Install

Because paddle-billing-python-sdk is available on PyPi, installation is as simple as running the following pip command:

pip install paddle-billing-python-sdk

Usage

To authenticate, you’ll need an API key. You can create and manage API keys in Paddle > Developer tools > Authentication.

Pass your API key while initializing a new Paddle client:

from paddle_billing_python_sdk.Client import Client

paddle = Client('PADDLE_API_SECRET_KEY')

You can pass your Paddle API secret key into the SDK from an environment variable:

from os import environ
from paddle_billing_python_sdk.Client import Client

paddle = Client(environ.get('PADDLE_API_SECRET_KEY'))

You can also pass an environment to work with Paddle’s sandbox:

from paddle_billing_python_sdk.Client      import Client
from paddle_billing_python_sdk.Options     import Options
from paddle_billing_python_sdk.Environment import Environment

paddle = Client(
    api_key = 'PADDLE_API_SECRET_KEY',
    options = Options(Environment.SANDBOX),
)

Keep in mind that API keys are separate for your sandbox and live accounts, so you’ll need to generate keys for each environment.

Examples

There are examples included in the examples folder. To prevent leaking errors to your clients we recommend encapsulating Paddle operations inside Try/Except blocks. For brevity, the below examples do not do this.

List entities

You can list supported entities with the list function in the resource. It returns an iterator to help when working with multiple pages.

from paddle_billing_python_sdk.Client import Client

paddle = Client('PADDLE_API_SECRET_KEY')

products = paddle.products.list()

# List returns an iterable, so pagination is handled automatically.
for product in products:
    print(f"Product's id: {product.id}")

Get an entity

You can get an entity with the get function in the resource. It accepts the id of the entity to get. The entity is returned.

from paddle_billing_python_sdk.Client import Client

paddle = Client('PADDLE_API_SECRET_KEY')

product = paddle.products.get('PRODUCT_ID')

Create an entity

You can create a supported entity with the create function in the resource. It accepts the resource’s corresponding CreateOperation e.g. CreateProduct. The created entity is returned.

from paddle_billing_python_sdk.Client                                      import Client
from paddle_billing_python_sdk.Entities.Shared.TaxCategory                 import TaxCategory
from paddle_billing_python_sdk.Resources.Products.Operations.CreateProduct import CreateProduct

paddle = Client('PADDLE_API_SECRET_KEY')

created_product = paddle.products.create(CreateProduct(
    name         = 'My Product',
    tax_category = TaxCategory.Standard,
))

Update an entity

You can update a supported entity with the update function in the resource. It accepts the id of the entity to update and the corresponding UpdateOperation e.g. UpdateProduct. The updated entity is returned.

from paddle_billing_python_sdk.Client                                      import Client
from paddle_billing_python_sdk.Resources.Products.Operations.UpdateProduct import UpdateProduct

paddle = Client('PADDLE_API_SECRET_KEY')

# Update the name of the product
updated_product = paddle.products.update('PRODUCT_ID', UpdateProduct(
    name = 'My Improved Product'
))

Where operations require more than one id, the update function accepts multiple arguments. For example, to update an address for a customer, pass the customerId and the addressId:

updated_address = paddle.addresses.update(
    'CUSTOMER_ID',
    'ADDRESS_ID',
    operation,
)

Delete an entity

You can delete an entity with the delete function in the resource. It accepts the id of the entity to delete. The deleted entity is returned.

from paddle_billing_python_sdk.Client import Client

paddle = Client('PADDLE_API_SECRET_KEY')

deleted_product = paddle.products.delete('PRODUCT_ID')



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *