pyflowcl package

Submodules

pyflowcl.Clients module

pyflowcl.Clients

Este modulo implementa el Cliente API genérico.

class pyflowcl.Clients.ApiClient(api_url: str = 'https://sandbox.flow.cl/api', api_key: str = '', api_secret: str = '')

Bases: object

Clase ApiClient con los objetos para realizar llamadas

Implementa todos los métodos de dataclass.

se instancia con:

cliente = ApiClient(api_url, api_key, api_secret)

el cliente luego debe ser entregado como primer parametro de las clases incorporadas:

pay = Payment.create(cliente, [...])
api_key: str = ''
api_secret: str = ''
api_url: str = 'https://sandbox.flow.cl/api'
get(url: str, query_string: Dict[str, Any]) Dict[str, Any]

Reimplementa get

Tipo del valor devuelto

dict

make_signature(params: Dict[str, Any]) str

Crea el Hash de validacion para ser enviado con la informacion

Tipo del valor devuelto

str

post(url: str, post_data: Dict[str, Any]) Dict[str, Any]

Reimplementa post

Tipo del valor devuelto

dict

put(url: str, put_data: Dict[str, Any]) Dict[str, Any]

Reimplementa put

Tipo del valor devuelto

dict

pyflowcl.Payment module

pyflowcl.Payment.create(apiclient: pyflowcl.Clients.ApiClient, payment_data: Dict[str, Any]) pyflowcl.models.PaymentResponse

Este método permite crear una orden de pago a Flow y recibe como respuesta la URL para redirigir el browser del pagador y el token que identifica la transacción. La url de redirección se debe formar concatenando los valores recibidos en la respuesta de la siguiente forma:

url + «?token=» +token

Una vez que el pagador efectúe el pago, Flow notificará el resultado a la página del comercio que se envió en el parámetro urlConfirmation.

pyflowcl.Payment.createEmail(apiclient: pyflowcl.Clients.ApiClient, payment_data: Dict[str, Any]) pyflowcl.models.PaymentResponse

Permite generar un cobro por email. Flow emite un email al pagador que contiene la información de la Orden de pago y el link de pago correspondiente. Una vez que el pagador efectúe el pago, Flow notificará el resultado a la página del comercio que se envió en el parámetro urlConfirmation.

pyflowcl.Payment.getPayments(apiclient: pyflowcl.Clients.ApiClient, payment_info: Dict[str, Any]) pyflowcl.models.PaymentList

Este método permite obtener la lista paginada de pagos recibidos en un día.Los objetos pagos de la lista tienen la misma estructura de los retornados en los servicios payment/getStatus

pyflowcl.Payment.getStatus(apiclient: pyflowcl.Clients.ApiClient, token: str) pyflowcl.models.PaymentStatus

Obtiene el estado de un pago previamente creado, el parametro token hace referencia a notification id, el cual se recibe luego de procesado un pago

pyflowcl.Payment.getStatusByCommerceId(apiclient: pyflowcl.Clients.ApiClient, commerceId: str) pyflowcl.models.PaymentStatus

Obtiene el estado de un pago previamente creado, el parametro token hace referencia a notification id, el cual se recibe luego de procesado un pago

pyflowcl.Payment.getStatusByFlowOrder(apiclient: pyflowcl.Clients.ApiClient, flowOrder: int) pyflowcl.models.PaymentStatus

Obtiene el estado de un pago previamente creado, el parametro token hace referencia a notification id, el cual se recibe luego de procesado un pago

pyflowcl.Refund module

pyflowcl.Refund.create(apiclient: pyflowcl.Clients.ApiClient, refund_data: Dict[str, Any]) pyflowcl.models.RefundStatus

Este servicio permite crear una orden de reembolso. Una vez que el receptor del reembolso acepte o rechaze el reembolso, Flow notificará vía POST a la página del comercio identificada en urlCallback pasando como parámetro token

En esta página, el comercio debe invocar el servicio refund/getStatus para obtener el estado del reembolso.

pyflowcl.Refund.getStatus(apiclient: pyflowcl.Clients.ApiClient, token: str) pyflowcl.models.RefundStatus

Permite obtener el estado de un reembolso solicitado. Este servicio se debe invocar desde la página del comercio que se señaló en el parámetro urlCallback del servicio refund/create.

pyflowcl.models module

pyflowcl.models

Modelos de distintos objetos del paquete

class pyflowcl.models.BatchCollectRejectedRow(customerId: 'Optional[str]' = None, commerceOrder: 'Optional[str]' = None, rowNumber: 'Optional[int]' = None, parameter: 'Optional[str]' = None, errorCode: 'Optional[int]' = None, errorMsg: 'Optional[str]' = None)

Bases: object

commerceOrder: Optional[str] = None
customerId: Optional[str] = None
errorCode: Optional[int] = None
errorMsg: Optional[str] = None
static from_dict(d: Dict[str, Any]) pyflowcl.models.BatchCollectRejectedRow
parameter: Optional[str] = None
rowNumber: Optional[int] = None
class pyflowcl.models.BatchCollectRequest(apiKey: 'str' = 'API_KEY', batchRows: 'str' = '', byEmail: 'int' = 0, forward_days_after: 'Optional[int]' = None, forward_times: 'Optional[int]' = None, timeout: 'Optional[int]' = None, urlCallBack: 'str' = '', urlConfirmation: 'str' = '', urlReturn: 'str' = '', s: 'str' = '')

Bases: object

apiKey: str = 'API_KEY'
batchRows: str = ''
byEmail: int = 0
forward_days_after: Optional[int] = None
forward_times: Optional[int] = None
static from_dict(d: Dict[str, Any]) pyflowcl.models.BatchCollectRequest
s: str = ''
timeout: Optional[int] = None
urlCallBack: str = ''
urlConfirmation: str = ''
urlReturn: str = ''
class pyflowcl.models.BatchCollectResponse(token: 'Optional[str]' = None, receivedRows: 'Optional[int]' = None, acceptedRows: 'Optional[int]' = None, rejectedRows: 'Optional[List[BatchCollectRejectedRow]]' = None)

Bases: object

acceptedRows: Optional[int] = None
static from_dict(d: Dict[str, Any]) pyflowcl.models.BatchCollectResponse
receivedRows: Optional[int] = None
rejectedRows: Optional[List[pyflowcl.models.BatchCollectRejectedRow]] = None
token: Optional[str] = None
class pyflowcl.models.CollectObject(customer_id: str, commerce_order: str, subject: str, amount: float, currency: Optional[str] = None, payment_method: Optional[float] = None, optional: Optional[str] = None)

Bases: object

Objeto de cobro para un lote de cobros

amount: float
commerce_order: str
currency: Optional[str] = None
customer_id: str
static from_dict(d: Dict[str, Any]) pyflowcl.models.CollectObject
optional: Optional[str] = None
payment_method: Optional[float] = None
subject: str
class pyflowcl.models.CollectRequest(amount: float = 0, apiKey: str = 'API_KEY', byEmail: Optional[int] = None, commerceOrder: str = '', currency: Optional[str] = None, customerId: str = '', forward_days_after: Optional[int] = None, forward_times: Optional[int] = None, ignore_auto_charging: Optional[int] = None, merchantId: Optional[str] = None, optionals: Optional[str] = None, paymentMethod: Optional[int] = 9, subject: Optional[str] = None, timeout: Optional[int] = None, urlConfirmation: str = '', urlReturn: str = '', s: str = '')

Bases: object

Objeto para generar un correo electronico de pago

amount: float = 0
apiKey: str = 'API_KEY'
byEmail: Optional[int] = None
commerceOrder: str = ''
currency: Optional[str] = None
customerId: str = ''
forward_days_after: Optional[int] = None
forward_times: Optional[int] = None
static from_dict(d: Dict[str, Any]) pyflowcl.models.CollectRequest
ignore_auto_charging: Optional[int] = None
merchantId: Optional[str] = None
optionals: Optional[str] = None
paymentMethod: Optional[int] = 9
s: str = ''
subject: Optional[str] = None
timeout: Optional[int] = None
urlConfirmation: str = ''
urlReturn: str = ''
class pyflowcl.models.CollectResponse(commerce_order: Optional[str] = None, flow_order: Optional[float] = None, paymen_result: Optional[pyflowcl.models.PaymentStatus] = None, status: Optional[int] = None, token: Optional[str] = None, type: Optional[float] = None, url: Optional[str] = None)

Bases: object

Objeto para CollectResponse

commerce_order: Optional[str] = None
flow_order: Optional[float] = None
static from_dict(d: Dict[str, Any]) pyflowcl.models.CollectResponse
paymen_result: Optional[pyflowcl.models.PaymentStatus] = None
status: Optional[int] = None
token: Optional[str] = None
type: Optional[float] = None
url: Optional[str] = None
class pyflowcl.models.Customer(created: str = '', creditCardType: Optional[str] = None, customerId: str = '', email: str = '', externalId: Optional[str] = None, last4CardDigits: Optional[str] = None, name: str = '', pay_mode: Optional[str] = None, registerDate: Optional[str] = None, status: int = 0)

Bases: object

Customer Object

created: str = ''
creditCardType: Optional[str] = None
customerId: str = ''
email: str = ''
externalId: Optional[str] = None
static from_dict(d: Dict[str, Any]) pyflowcl.models.Customer
last4CardDigits: Optional[str] = None
name: str = ''
pay_mode: Optional[str] = None
registerDate: Optional[str] = None
status: int = 0
class pyflowcl.models.CustomerChargeRequest(amount: float = 0, apiKey: str = 'API_KEY', commerceOrder: str = '', currency: Optional[str] = None, optionals: Optional[str] = None, subject: str = '', s: str = '')

Bases: object

Objeto para generar una URL de pago

amount: float = 0
apiKey: str = 'API_KEY'
commerceOrder: str = ''
currency: Optional[str] = None
static from_dict(d: Dict[str, Any]) pyflowcl.models.CustomerChargeRequest
optionals: Optional[str] = None
s: str = ''
subject: str = ''
class pyflowcl.models.CustomerList(total: Optional[float] = None, hasMore: Optional[bool] = None, data: Optional[List[Dict[Any, Any]]] = None)

Bases: object

Lista de Clientes

data: Optional[List[Dict[Any, Any]]] = None
static from_dict(d: Dict[str, Any]) pyflowcl.models.CustomerList
hasMore: Optional[bool] = None
total: Optional[float] = None
class pyflowcl.models.CustomerRegisterResponse(url: Optional[str] = None, token: Optional[str] = None)

Bases: object

Objeto respuesta

static from_dict(d: Dict[str, Any]) pyflowcl.models.CustomerRegisterResponse
token: Optional[str] = None
url: Optional[str] = None
class pyflowcl.models.CustomerRegisterStatusResponse(creditCardType: str = '', customerId: str = '', last4CardDigits: str = '', status: int = 0)

Bases: object

Objeto respuesta

creditCardType: str = ''
customerId: str = ''
static from_dict(d: Dict[str, Any]) pyflowcl.models.CustomerRegisterStatusResponse
last4CardDigits: str = ''
status: int = 0
class pyflowcl.models.CustomerRequest(apiKey: str = '', customerId: str = '', email: str = '', externalId: str = '', name: str = '', s: str = '')

Bases: object

CustomerRequest Object

apiKey: str = ''
customerId: str = ''
email: str = ''
externalId: str = ''
static from_dict(d: Dict[str, Any]) pyflowcl.models.CustomerRequest
name: str = ''
s: str = ''
exception pyflowcl.models.GenericError(data)

Bases: BaseException

class pyflowcl.models.PaymentList(total: Optional[float] = None, hasMore: Optional[bool] = None, data: Optional[List[Dict[Any, Any]]] = None)

Bases: object

Lista de pagos

data: Optional[List[Dict[Any, Any]]] = None
static from_dict(d: Dict[str, Any]) pyflowcl.models.PaymentList
hasMore: Optional[bool] = None
total: Optional[float] = None
class pyflowcl.models.PaymentRequest(amount: float = 0, apiKey: str = 'API_KEY', commerceOrder: str = '', currency: Optional[str] = None, email: str = 'correo@ejemplo.cl', merchantId: Optional[str] = None, optional: Optional[str] = None, payment_currency: str = 'CLP', payment_method: Optional[int] = None, subject: str = '', timeout: Optional[int] = None, urlConfirmation: str = '', urlReturn: str = '', s: str = '')

Bases: object

Objeto para generar una URL de pago

amount: float = 0
apiKey: str = 'API_KEY'
commerceOrder: str = ''
currency: Optional[str] = None
email: str = 'correo@ejemplo.cl'
static from_dict(d: Dict[str, Any]) pyflowcl.models.PaymentRequest
merchantId: Optional[str] = None
optional: Optional[str] = None
payment_currency: str = 'CLP'
payment_method: Optional[int] = None
s: str = ''
subject: str = ''
timeout: Optional[int] = None
urlConfirmation: str = ''
urlReturn: str = ''
class pyflowcl.models.PaymentRequestEmail(amount: float = 0, apiKey: str = 'API_KEY', commerceOrder: str = '', currency: Optional[str] = None, email: str = 'correo@ejemplo.cl', forward_days_after: Optional[int] = None, forward_times: Optional[int] = None, merchantId: Optional[str] = None, optional: Optional[str] = None, payment_currency: Optional[str] = None, subject: Optional[str] = None, timeout: Optional[int] = None, urlConfirmation: str = '', urlReturn: str = '', s: str = '')

Bases: object

Objeto para generar un correo electronico de pago

amount: float = 0
apiKey: str = 'API_KEY'
commerceOrder: str = ''
currency: Optional[str] = None
email: str = 'correo@ejemplo.cl'
forward_days_after: Optional[int] = None
forward_times: Optional[int] = None
static from_dict(d: Dict[str, Any]) pyflowcl.models.PaymentRequestEmail
merchantId: Optional[str] = None
optional: Optional[str] = None
payment_currency: Optional[str] = None
s: str = ''
subject: Optional[str] = None
timeout: Optional[int] = None
urlConfirmation: str = ''
urlReturn: str = ''
class pyflowcl.models.PaymentResponse(url: Optional[str] = None, token: Optional[str] = None, flowOrder: Optional[float] = None)

Bases: object

Objeto respuesta de una creacion de pago

flowOrder: Optional[float] = None
static from_dict(d: Dict[str, Any]) pyflowcl.models.PaymentResponse
token: Optional[str] = None
url: Optional[str] = None
class pyflowcl.models.PaymentStatus(flow_order: Optional[int] = None, commerce_order: Optional[str] = None, request_date: Optional[str] = None, status: Optional[int] = None, subject: Optional[str] = None, currency: Optional[str] = None, amount: Optional[float] = None, payer: Optional[str] = None, optional: Optional[str] = None, pending_info: Optional[Dict[Any, Any]] = None, payment_data: Optional[Dict[Any, Any]] = None, merchant_id: Optional[str] = None)

Bases: object

Objeto para obtener el estado de un pago

amount: Optional[float] = None
commerce_order: Optional[str] = None
currency: Optional[str] = None
flow_order: Optional[int] = None
static from_dict(d: Dict[str, Any]) pyflowcl.models.PaymentStatus
merchant_id: Optional[str] = None
optional: Optional[str] = None
payer: Optional[str] = None
payment_data: Optional[Dict[Any, Any]] = None
pending_info: Optional[Dict[Any, Any]] = None
request_date: Optional[str] = None
status: Optional[int] = None
subject: Optional[str] = None
class pyflowcl.models.RefundRequest(amount: float = 0, apiKey: str = 'API_KEY', commerceTrxId: Optional[str] = None, flowTrxId: Optional[float] = None, receiverEmail: str = 'correo@ejemplo.cl', refundCommerceOrder: str = '', urlCallBack: str = '', s: str = '')

Bases: object

Refund Request object

amount: float = 0
apiKey: str = 'API_KEY'
commerceTrxId: Optional[str] = None
flowTrxId: Optional[float] = None
static from_dict(d: Dict[str, Any]) pyflowcl.models.RefundRequest
receiverEmail: str = 'correo@ejemplo.cl'
refundCommerceOrder: str = ''
s: str = ''
urlCallBack: str = ''
class pyflowcl.models.RefundStatus(flowRefundOrder: int = 0, date: str = '', status: str = '', amount: float = 0, fee: float = 0)

Bases: object

Refund object

amount: float = 0
date: str = ''
fee: float = 0
flowRefundOrder: int = 0
static from_dict(d: Dict[str, Any]) pyflowcl.models.RefundStatus
status: str = ''

Module contents