Skip to content
Iván Andrés L. edited this page Dec 17, 2024 · 8 revisions

Checkout-P2P Python Integration Library

pypicodecovBuild Status

This project is a Python library inspired by the PlaceToPay PHP Redirection Library. It is designed to simplify integration with the PlaceToPay Web Checkout payment gateway. This library provides a robust and user-friendly solution for managing diverse payment scenarios, including single payments, recurring subscriptions, and payments using subscription tokens.


Integration demo

Replit Checkout P2P Demo

integration_demo.mp4

Documentation

See the Web Checkout API docs.

Installation

You don’t need this source code unless you intend to modify the package. To simply use the package, you can install it directly by running:

pip install checkout-p2p

Contribution

If you’d like to contribute, request, or suggest adding new features to the library, please follow the installation guide in our Contribution Wiki.

Requirements

  • Python 3.13+

Usage

Here’s a quick example to get you started with the library:

1.Configuration

Set up your Settings object with the necessary credentials:

fromcheckoutimportCheckout, RedirectRequestcheckout=Checkout({
"base_url": "https://checkout-co.placetopay.dev/",
"login": "your_login",
"tranKey": "your_trankey",
})

2.Create a Payment Request

fromcheckoutimportRedirectRequestredirect_request=RedirectRequest(
return_url="https://example.com/return",
ip_address="192.168.1.1",
user_agent="Test User Agent",
payment={"reference": "TEST _q", "description": "Test Payment", "amount": {"currency": "COP", "total": 10000}}
)
response=checkout.request(redirect_request)
print("Redirect to:", response.process_url)

3.Query a Payment Request

query_response=checkout.query(123456) # Replace with your request IDprint("Request Status:", query_response.status)

4 Charge using token

fromcheckoutimportCollectRequestcollect_request=CollectRequest(
return_url="https://example.com/return",
ip_address="192.168.1.1",
user_agent="Test User Agent",
instrument={"token": {"token" : "your_token_c5583922eccd6d2061c1b0592b099f04e352a894f37ae51cf1a"}},
payer={
"email": "andres2@yopmail.com",
"name" : "Andres",
"surname": "López",
"document": "111111111",
"documentType": "CC",
"mobile": "+573111111111"
},
payment={
"reference": "TEST_COllECT", "description": "Test Payment", "amount": {"currency": "COP", "total": 15000}
}
)
# Collect. Returns a `InformationResponse` object.collect_response=checkout.collect(collect_request)
print("Collect Status :", collect_response.status)

5.Reverse a Payment

# Reverse a transaction. Returns a `ReverseResponse` object.reverse_response=checkout.reverse("internal_reference")
print("Reverse Status:", reverse_response.status)

6.Invalidate token

invalidate_token_request= {
"locale": "en_US", "instrument": {"token" : {"token" : "your_token_c5583922eccd6d2061c1b0592b099f04e352a894f37ae51cf1a"}}
}
# invalite token. Returns a `Status` object.invalidate_response=checkout.invalidate_token(invalidate_token_request)
print("Invalidate Status:", invalidate_response.status)
print("Message:", invalidate_response.message)

License

This project is licensed under the MIT License. See the LICENSE file for details.

Clone this wiki locally