コード例 #1
0
ファイル: Payment.py プロジェクト: mariofix/pyflowcl
def create(apiclient: ApiClient, payment_data: Dict[str,
                                                    Any]) -> 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.
    """
    url = f"{apiclient.api_url}/payment/create"
    payment = PaymentRequest.from_dict(payment_data)
    if not payment.apiKey:
        payment.apiKey = apiclient.api_key
    payment.s = apiclient.make_signature(asdict(payment))
    logging.debug("Before Request:" + str(payment))
    response = apiclient.post(url, asdict(payment))
    if response.status_code == 200:
        return PaymentResponse.from_dict(cast(Dict[str, Any], response.json()))
    elif response.status_code == 400:
        raise GenericError(cast(Dict[str, Any], response.json()))
    elif response.status_code == 401:
        raise GenericError(cast(Dict[str, Any], response.json()))
    else:
        raise GenericError({"code": response.status_code, "message": response})
コード例 #2
0
ファイル: Payment.py プロジェクト: mariofix/pyflowcl
def createEmail(apiclient: ApiClient,
                payment_data: Dict[str, Any]) -> 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.
    """
    url = f"{apiclient.api_url}/payment/createEmail"
    payment = PaymentRequestEmail.from_dict(payment_data)
    if payment.apiKey is None:
        payment.apiKey = apiclient.api_key

    payment.s = apiclient.make_signature(asdict(payment))

    logging.debug("Before Request:" + str(payment))

    response = apiclient.post(url, asdict(payment))

    if response.status_code == 200:
        return PaymentResponse.from_dict(cast(Dict[str, Any], response.json()))
    elif response.status_code == 400:
        raise GenericError(cast(Dict[str, Any], response.json()))
    elif response.status_code == 401:
        raise GenericError(cast(Dict[str, Any], response.json()))
    else:
        raise GenericError({"code": response.status_code, "message": response})
コード例 #3
0
def create(apiclient: ApiClient, refund_data: Dict[str, Any]) -> 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.
    """
    url = f"{apiclient.api_url}/refund/create"
    refund = RefundRequest.from_dict(refund_data)
    if refund.apiKey is None:
        refund.apiKey = apiclient.api_key
    refund.s = apiclient.make_signature(asdict(refund))
    logging.debug("Before Request:" + str(refund))
    response = apiclient.post(url, asdict(refund))
    if response.status_code == 200:
        return RefundStatus.from_dict(cast(Dict[str, Any], response.json()))
    elif response.status_code == 400:
        raise GenericError(cast(Dict[str, Any], response.json()))
    elif response.status_code == 401:
        raise GenericError(cast(Dict[str, Any], response.json()))
    else:
        raise GenericError({"code": response.status_code, "message": response})