culqi-python-oficial


Nameculqi-python-oficial JSON
Version 1.0.0 PyPI version JSON
download
home_pagehttps://github.com/culqi/culqi
SummaryBiblioteca de Culqi para Python
upload_time2023-08-19 02:06:40
maintainer
docs_urlNone
authorTeam Culqi
requires_python
license
keywords api client payment integration culqi python 3 python 2
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Culqi Python

[![Build Status](https://travis-ci.org/culqi/culqi-python.svg?branch=master)](https://travis-ci.org/culqi/culqi-python)
![](https://img.shields.io/pypi/pyversions/Culqi)
![](https://img.shields.io/pypi/l/culqi)
![](https://img.shields.io/pypi/v/culqi)


Nuestra Biblioteca PYTHON oficial, es compatible con la v2.0 del Culqi API, con el cual tendrás la posibilidad de realizar cobros con tarjetas de débito y crédito, Yape, PagoEfectivo, billeteras móviles y Cuotéalo con solo unos simples pasos de configuración.

Nuestra biblioteca te da la posibilidad de capturar el `status_code` de la solicitud HTTP que se realiza al API de Culqi, así como el `response` que contiene el cuerpo de la respuesta obtenida.

## Requisitos

- Python 2.7+
* Afiliate [aquí](https://afiliate.culqi.com/).
* Si vas a realizar pruebas obtén tus llaves desde [aquí](https://integ-panel.culqi.com/#/registro), si vas a realizar transacciones reales obtén tus llaves desde [aquí](https://panel.culqi.com/#/registro).

> Recuerda que para obtener tus llaves debes ingresar a tu CulqiPanel > Desarrollo > ***API Keys***.

![alt tag](http://i.imgur.com/NhE6mS9.png)

> Recuerda que las credenciales son enviadas al correo que registraste en el proceso de afiliación.

* Para encriptar el payload debes generar un id y llave RSA  ingresando a CulqiPanel > Desarrollo  > RSA Keys

## Instalación

Ejecuta los siguientes comandos:

```bash
py -m pip install pytest
py -m pip install python-dotenv
py -m pip install culqi
py -m pip install jsonschema
py -m pip install pycryptodome

```

## Configuracion

Para empezar a enviar peticiones al API de Culqi debes configurar tu llave pública (pk), llave privada (sk).
Para habilitar encriptación de payload debes configurar tu rsa_id y rsa_public_key.

```python

from dotenv import load_dotenv
from culqi2 import __version__
from culqi2.client import Culqi

self.public_key = "pk_test_e94078b9b248675d"
self.private_key = "sk_test_c2267b5b262745f0"
self.culqi = Culqi(self.public_key, self.private_key)

#ecnrypt variables
self.rsa_public_key = "-----BEGIN PUBLIC KEY-----\n" + \
                        "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDswQycch0x/7GZ0oFojkWCYv+g\n" + \
                        "r5CyfBKXc3Izq+btIEMCrkDrIsz4Lnl5E3FSD7/htFn1oE84SaDKl5DgbNoev3pM\n" + \
                        "C7MDDgdCFrHODOp7aXwjG8NaiCbiymyBglXyEN28hLvgHpvZmAn6KFo0lMGuKnz8\n" + \
                        "iuTfpBl6HpD6+02SQIDAQAB\n" + \
                        "-----END PUBLIC KEY-----"
self.rsa_id = "de35e120-e297-4b96-97ef-10a43423ddec"

```

### Encriptar payload

Para encriptar el payload necesitas agregar el parámetros **options** que contiene tu id y llave RSA.

Ejemplo

```python
options = {}
options["rsa_public_key"] = self.rsa_public_key #"la llave pública RSA"
options["rsa_id"] = self.rsa_id # "el id de tu llave"
token = self.token.create(data=self.token_data, **options)

```

## Ejemplos

### Crear Token

```python

token = self.token.create(data=self.token_data)

```

### Crear Cargo

```python

charge = self.charge.create(data=self.charge_data)

```

### Crear Plan

```python
plan = self.plan.create(data=self.plan_data)

```

### Crear Customer

```python
customer = self.customer.create(data=self.customer_data)

```

### Actualizar Customer

```python
 updated_customer = self.customer.update(
            id_=created_customer["data"]["id"], data=metadatada
        )
```

### Obtener Customer

```python
 retrieved_customer = self.customer.read(created_customer["data"]["id"])
```

### Crear Card

```python
 card = self.card.create(data=self.card_data)

```

### Crear Suscripción

```python
subscription = self.subscription.create(data=self.subscription_data)

```

### Crear Reembolso

```python
refund = self.refund.create(data=self.refund_data)

```

## Pruebas

En la caperta **/test** econtraras ejemplo para crear un token, charge, plan, órdenes, card, suscripciones, etc.

> Recuerda que si quieres probar tu integración, puedes utilizar nuestras [tarjetas de prueba.](https://docs.culqi.com/es/documentacion/pagos-online/tarjetas-de-prueba/)

### Ejemplo Prueba Token

```python
 @pytest.mark.vcr()
    def test_token_create(self):
        token = self.token.create(data=self.token_data)
        print(token)
        assert token["data"]["object"] == "token"

```

### Ejemplo Prueba Cargo
```python
 @property
    def charge_data(self):
        # pylint: disable=no-member
        token_data = deepcopy(Data.TOKEN)
        token = self.culqi.token.create(data=token_data)
        print(token)
        charge_data = deepcopy(Data.CHARGE)
        charge_data["source_id"] = token["data"]["id"]

        return charge_data

 @pytest.mark.vcr()
    def test_charge_create(self):
        charge = self.charge.create(data=self.charge_data)
        print (charge)
        assert charge["data"]["object"] == "charge"
```

## Documentación

- [Referencia de API](https://apidocs.culqi.com/)
- [Demo Checkout V4 + Culqi 3DS](https://github.com/culqi/culqi-python-demo-checkoutv4-culqi3ds)
- [Wiki](https://github.com/culqi/culqi-python/wiki)

## Changelog

Todos los cambios en las versiones de esta biblioteca están listados en
[CHANGELOG.md](CHANGELOG.md).

## Autor
Team Culqi

## Licencia
El código fuente de culqi-python está distribuido bajo MIT License, revisar el archivo LICENSE.


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/culqi/culqi",
    "name": "culqi-python-oficial",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "Api Client,Payment Integration,Culqi,Python 3,Python 2",
    "author": "Team Culqi",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/75/33/5aac1f5078530bd222ddbc054561cc1d968a99764bd0165583d1e74e3441/culqi-python-oficial-1.0.0.tar.gz",
    "platform": null,
    "description": "# Culqi Python\r\n\r\n[![Build Status](https://travis-ci.org/culqi/culqi-python.svg?branch=master)](https://travis-ci.org/culqi/culqi-python)\r\n![](https://img.shields.io/pypi/pyversions/Culqi)\r\n![](https://img.shields.io/pypi/l/culqi)\r\n![](https://img.shields.io/pypi/v/culqi)\r\n\r\n\r\nNuestra Biblioteca PYTHON oficial, es compatible con la v2.0 del Culqi API, con el cual tendr\u00e1s la posibilidad de realizar cobros con tarjetas de d\u00e9bito y cr\u00e9dito, Yape, PagoEfectivo, billeteras m\u00f3viles y Cuot\u00e9alo con solo unos simples pasos de configuraci\u00f3n.\r\n\r\nNuestra biblioteca te da la posibilidad de capturar el `status_code` de la solicitud HTTP que se realiza al API de Culqi, as\u00ed como el `response` que contiene el cuerpo de la respuesta obtenida.\r\n\r\n## Requisitos\r\n\r\n- Python 2.7+\r\n* Afiliate [aqu\u00ed](https://afiliate.culqi.com/).\r\n* Si vas a realizar pruebas obt\u00e9n tus llaves desde [aqu\u00ed](https://integ-panel.culqi.com/#/registro), si vas a realizar transacciones reales obt\u00e9n tus llaves desde [aqu\u00ed](https://panel.culqi.com/#/registro).\r\n\r\n> Recuerda que para obtener tus llaves debes ingresar a tu CulqiPanel > Desarrollo > ***API Keys***.\r\n\r\n![alt tag](http://i.imgur.com/NhE6mS9.png)\r\n\r\n> Recuerda que las credenciales son enviadas al correo que registraste en el proceso de afiliaci\u00f3n.\r\n\r\n* Para encriptar el payload debes generar un id y llave RSA  ingresando a CulqiPanel > Desarrollo  > RSA Keys\r\n\r\n## Instalaci\u00f3n\r\n\r\nEjecuta los siguientes comandos:\r\n\r\n```bash\r\npy -m pip install pytest\r\npy -m pip install python-dotenv\r\npy -m pip install culqi\r\npy -m pip install jsonschema\r\npy -m pip install pycryptodome\r\n\r\n```\r\n\r\n## Configuracion\r\n\r\nPara empezar a enviar peticiones al API de Culqi debes configurar tu llave p\u00fablica (pk), llave privada (sk).\r\nPara habilitar encriptaci\u00f3n de payload debes configurar tu rsa_id y rsa_public_key.\r\n\r\n```python\r\n\r\nfrom dotenv import load_dotenv\r\nfrom culqi2 import __version__\r\nfrom culqi2.client import Culqi\r\n\r\nself.public_key = \"pk_test_e94078b9b248675d\"\r\nself.private_key = \"sk_test_c2267b5b262745f0\"\r\nself.culqi = Culqi(self.public_key, self.private_key)\r\n\r\n#ecnrypt variables\r\nself.rsa_public_key = \"-----BEGIN PUBLIC KEY-----\\n\" + \\\r\n                        \"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDswQycch0x/7GZ0oFojkWCYv+g\\n\" + \\\r\n                        \"r5CyfBKXc3Izq+btIEMCrkDrIsz4Lnl5E3FSD7/htFn1oE84SaDKl5DgbNoev3pM\\n\" + \\\r\n                        \"C7MDDgdCFrHODOp7aXwjG8NaiCbiymyBglXyEN28hLvgHpvZmAn6KFo0lMGuKnz8\\n\" + \\\r\n                        \"iuTfpBl6HpD6+02SQIDAQAB\\n\" + \\\r\n                        \"-----END PUBLIC KEY-----\"\r\nself.rsa_id = \"de35e120-e297-4b96-97ef-10a43423ddec\"\r\n\r\n```\r\n\r\n### Encriptar payload\r\n\r\nPara encriptar el payload necesitas agregar el par\u00e1metros **options** que contiene tu id y llave RSA.\r\n\r\nEjemplo\r\n\r\n```python\r\noptions = {}\r\noptions[\"rsa_public_key\"] = self.rsa_public_key #\"la llave p\u00fablica RSA\"\r\noptions[\"rsa_id\"] = self.rsa_id # \"el id de tu llave\"\r\ntoken = self.token.create(data=self.token_data, **options)\r\n\r\n```\r\n\r\n## Ejemplos\r\n\r\n### Crear Token\r\n\r\n```python\r\n\r\ntoken = self.token.create(data=self.token_data)\r\n\r\n```\r\n\r\n### Crear Cargo\r\n\r\n```python\r\n\r\ncharge = self.charge.create(data=self.charge_data)\r\n\r\n```\r\n\r\n### Crear Plan\r\n\r\n```python\r\nplan = self.plan.create(data=self.plan_data)\r\n\r\n```\r\n\r\n### Crear Customer\r\n\r\n```python\r\ncustomer = self.customer.create(data=self.customer_data)\r\n\r\n```\r\n\r\n### Actualizar Customer\r\n\r\n```python\r\n updated_customer = self.customer.update(\r\n            id_=created_customer[\"data\"][\"id\"], data=metadatada\r\n        )\r\n```\r\n\r\n### Obtener Customer\r\n\r\n```python\r\n retrieved_customer = self.customer.read(created_customer[\"data\"][\"id\"])\r\n```\r\n\r\n### Crear Card\r\n\r\n```python\r\n card = self.card.create(data=self.card_data)\r\n\r\n```\r\n\r\n### Crear Suscripci\u00f3n\r\n\r\n```python\r\nsubscription = self.subscription.create(data=self.subscription_data)\r\n\r\n```\r\n\r\n### Crear Reembolso\r\n\r\n```python\r\nrefund = self.refund.create(data=self.refund_data)\r\n\r\n```\r\n\r\n## Pruebas\r\n\r\nEn la caperta **/test** econtraras ejemplo para crear un token, charge, plan, \u00f3rdenes, card, suscripciones, etc.\r\n\r\n> Recuerda que si quieres probar tu integraci\u00f3n, puedes utilizar nuestras [tarjetas de prueba.](https://docs.culqi.com/es/documentacion/pagos-online/tarjetas-de-prueba/)\r\n\r\n### Ejemplo Prueba Token\r\n\r\n```python\r\n @pytest.mark.vcr()\r\n    def test_token_create(self):\r\n        token = self.token.create(data=self.token_data)\r\n        print(token)\r\n        assert token[\"data\"][\"object\"] == \"token\"\r\n\r\n```\r\n\r\n### Ejemplo Prueba Cargo\r\n```python\r\n @property\r\n    def charge_data(self):\r\n        # pylint: disable=no-member\r\n        token_data = deepcopy(Data.TOKEN)\r\n        token = self.culqi.token.create(data=token_data)\r\n        print(token)\r\n        charge_data = deepcopy(Data.CHARGE)\r\n        charge_data[\"source_id\"] = token[\"data\"][\"id\"]\r\n\r\n        return charge_data\r\n\r\n @pytest.mark.vcr()\r\n    def test_charge_create(self):\r\n        charge = self.charge.create(data=self.charge_data)\r\n        print (charge)\r\n        assert charge[\"data\"][\"object\"] == \"charge\"\r\n```\r\n\r\n## Documentaci\u00f3n\r\n\r\n- [Referencia de API](https://apidocs.culqi.com/)\r\n- [Demo Checkout V4 + Culqi 3DS](https://github.com/culqi/culqi-python-demo-checkoutv4-culqi3ds)\r\n- [Wiki](https://github.com/culqi/culqi-python/wiki)\r\n\r\n## Changelog\r\n\r\nTodos los cambios en las versiones de esta biblioteca est\u00e1n listados en\r\n[CHANGELOG.md](CHANGELOG.md).\r\n\r\n## Autor\r\nTeam Culqi\r\n\r\n## Licencia\r\nEl c\u00f3digo fuente de culqi-python est\u00e1 distribuido bajo MIT License, revisar el archivo LICENSE.\r\n\r\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Biblioteca de Culqi para Python",
    "version": "1.0.0",
    "project_urls": {
        "Download": "https://github.com/culqi/culqi/-/archive/1.0.0/culqi-python-oficial-1.0.0.tar.gz",
        "Homepage": "https://github.com/culqi/culqi"
    },
    "split_keywords": [
        "api client",
        "payment integration",
        "culqi",
        "python 3",
        "python 2"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5feac94720c1266f0f714d3f8eb7ff2b1da6dba1a4449fc13391bb6cbd1936e2",
                "md5": "1783f019d71274926b8db99ff08fd4e6",
                "sha256": "5de0e228f1c5a64ef095dfdd6ce128125dab994fcc70206d4d0d2f8157328d5f"
            },
            "downloads": -1,
            "filename": "culqi_python_oficial-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1783f019d71274926b8db99ff08fd4e6",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 14727,
            "upload_time": "2023-08-19T02:06:38",
            "upload_time_iso_8601": "2023-08-19T02:06:38.356724Z",
            "url": "https://files.pythonhosted.org/packages/5f/ea/c94720c1266f0f714d3f8eb7ff2b1da6dba1a4449fc13391bb6cbd1936e2/culqi_python_oficial-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "75335aac1f5078530bd222ddbc054561cc1d968a99764bd0165583d1e74e3441",
                "md5": "b5a8e113d5d8dc8bd1fa48ede3651c25",
                "sha256": "f8dde9b9735dc332c42ad4f036512aab7dd83a8bfb0d8f77d88e6b5243e23f0f"
            },
            "downloads": -1,
            "filename": "culqi-python-oficial-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "b5a8e113d5d8dc8bd1fa48ede3651c25",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 13439,
            "upload_time": "2023-08-19T02:06:40",
            "upload_time_iso_8601": "2023-08-19T02:06:40.098576Z",
            "url": "https://files.pythonhosted.org/packages/75/33/5aac1f5078530bd222ddbc054561cc1d968a99764bd0165583d1e74e3441/culqi-python-oficial-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-08-19 02:06:40",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "culqi",
    "github_project": "culqi",
    "github_not_found": true,
    "lcname": "culqi-python-oficial"
}
        
Elapsed time: 1.73033s