Code Monkey home page Code Monkey logo

culqi-php's Introduction

Culqi-HP

Latest Stable Version Total Downloads License

Nuestra Biblioteca PHP 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

  • PHP 5.6+.
  • Afiliate aquí.
  • Si vas a realizar pruebas obtén tus llaves desde aquí, si vas a realizar transacciones reales obtén tus llaves desde aquí (1).

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

alt tag

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

1. Vía Composer

{
  "require": {
    "culqi/culqi-php": "1.5.2"
  }
}

Y cargar todo usando el autoloader de Composer.

require 'vendor/autoload.php';

2. Manualmente

Clonar el repositorio o descargar el código fuente

git clone [email protected]:culqi/culqi-php.git

Ahora, incluir en la cabecera a culqi-php y también la dependencia Requests. Debes hacer el llamado correctamente a la carpeta y/o archivo dependiendo de tu estructura.

<?php
// Cargamos Requests y Culqi PHP
include_once dirname(__FILE__).'/libraries/Requests/library/Requests.php';
Requests::register_autoloader();
include_once dirname(__FILE__).'/libraries/culqi-php/lib/culqi.php';

Luego ejecuta composer install

composer install

Configuración

Como primer paso hay que configurar la credencial $API_KEY

// Configurar tu API Key y autenticación
$PUBLIC_KEY = "{PUBLIC KEY}";
$SECRET_KEY = "{SECRET KEY}";
$culqi = new Culqi\Culqi(array('api_key' => $SECRET_KEY));

Recuerda que las llaves de integración se identifican como "test" y las de producción como "live".

Encriptar payload

Para encriptar el payload necesitas crear un id RSA y llave RSA, para esto debes ingresa a tu panel y hacer click en la sección “Desarrollo / RSA Keys” de la barra de navegación a la mano izquierda.

Luego declara en variables el id RSA y llave RSA en tu backend, y envialo en las funciones de la librería.

Ejemplo

$encryption_params = array(
  "rsa_public_key" => "la llave pública RSA",
  "rsa_id" => "el id de tu llave"
);
 $req_body = array(
    "card_number" => "4111111111111111",
    "cvv" => "123",
    "email" => "culqi".uniqid()."@culqi.com", //email must not repeated
    "expiration_month" => "7",
    "expiration_year" => $futureDate,
    "fingerprint" => uniqid(),
    "metadata" => array("dni" => "71702935")
);
$token = $culqi->Tokens->create(
    $req_body,
    $encryption_params
  );

Servicios

Crear un token

Antes de crear un Cargo o Card es necesario crear un token de tarjeta. Lo recomendable es generar los 'tokens' con Culqi Checkout v4 o Culqi JS v4 debido a que es muy importante que los datos de tarjeta sean enviados desde el dispositivo de tus clientes directamente a los servidores de Culqi, para no poner en riesgo los datos sensibles de la tarjeta de crédito/débito.

Recuerda que cuando interactúas directamente con el API Token necesitas cumplir la normativa de PCI DSS 3.2. Por ello, te pedimos que llenes el formulario SAQ-D y lo envíes al buzón de riesgos Culqi.

$req_body = array(
  "card_number" => "4111111111111111",
  "cvv" => "123",
  "email" => "culqi".uniqid()."@culqi.com", //email must not repeated
  "expiration_month" => "7",
  "expiration_year" => $futureDate,
  "fingerprint" => uniqid(),
  "metadata" => array("dni" => "71702935")
);
  
// Creando token a una tarjeta sin encriptar
$token = $culqi->Tokens->create(
  $req_body
);

//Respuesta
print_r($charge);

Crear un cargo

Crear un cargo significa cobrar una venta a una tarjeta. Para esto previamente deberías generar el token y enviarlo en parámetro source_id.

Los cargos pueden ser creados vía API de cargo.

$charge = $culqi->Charges->create(
    array(
      "amount" => 1000,
      "capture" => true,
      "currency_code" => "PEN",
      "description" => "Venta de prueba",
      "email" => "[email protected]",
      "installments" => 0,
      "antifraud_details" => array(
          "address" => "Av. Lima 123",
          "address_city" => "LIMA",
          "country_code" => "PE",
          "first_name" => "Test_Nombre",
          "last_name" => "Test_apellido",
          "phone_number" => "9889678986",
      ),
      "source_id" => "{token_id o card_id}"
    )
);

//Respuesta
print_r($charge);

Crear una devolución

Solicita la devolución de las compras de tus clientes (parcial o total) de forma gratuita a través del API y CulqiPanel.

Las devoluciones pueden ser creados vía API de devolución.

$req_body = array(
  "amount" => 500,
  "charge_id" => "{charge_id}",
  "reason" => "bought an incorrect product"
);

// Creando una devolución sin encriptar
$refund = $culqi->Refunds->create(
  $req_body
);

//Respuesta
print_r($refund);

Crear un Cliente

El cliente es un servicio que te permite guardar la información de tus clientes. Es un paso necesario para generar una tarjeta.

Los clientes pueden ser creados vía API de cliente.

$customer = $culqi->Customers->create(
  array(
    "address" => "av lima 123",
    "address_city" => "lima",
    "country_code" => "PE",
    "email" => "www@".uniqid()."me.com",
    "first_name" => "Will",
    "last_name" => "Muro",
    "metadata" => array("test"=>"test"),
    "phone_number" => 899898999
  )
);
print_r($customer);

Crear un Card

La tarjeta es un servicio que te permite guardar la información de las tarjetas de crédito o débito de tus clientes para luego realizarles cargos one click o recurrentes (cargos posteriores sin que tus clientes vuelvan a ingresar los datos de su tarjeta).

Las tarjetas pueden ser creadas vía API de tarjeta.

$card = $culqi->Cards->create(
  array(
    "customer_id" => "{customer_id}",
    "token_id" => "{token_id}"
  )
);
print_r($card);

Crear un Plan

El plan es un servicio que te permite definir con qué frecuencia deseas realizar cobros a tus clientes.

Un plan define el comportamiento de las suscripciones. Los planes pueden ser creados vía el API de Plan o desde el CulqiPanel.

$plan = $culqi->Plans->create(
  array(
    "interval_unit_time" => 1,
    "interval_count" => 1,
    "amount" => 300,
    "name" => "Plan mensual" . uniqid(),
    "description" => "Plan-mock" . uniqid(),
    "short_name" => "pln-" . uniqid(),
    "currency" => "PEN",
    "metadata" => json_decode('{}'),
    "initial_cycles" => array(
      "count" => 0,
      "amount" => 0,
      "has_initial_charge" => false,
      "interval_unit_time" => 1
    ),
  )
);

//Respuesta
print_r($plan);

Crear un Suscripción a un plan

La suscripción es un servicio que asocia la tarjeta de un cliente con un plan establecido por el comercio.

Las suscripciones pueden ser creadas vía API de suscripción.

// Creando Suscriptor a un plan
$subscription = $culqi->Subscriptions->create(
  array(
    "card_id" => "crd_live_tjHaW6x5Dj2oKhrS",
    "plan_id" => "pln_live_0HzG8Edqy0aUIusL",
    "tyc" => true,
    "metadata" => array("envtest" => "SDK-JAVA"),
  )
);

//Respuesta
print_r($subscription);

Crear una Orden

Es un servicio que te permite generar una orden de pago para una compra potencial. La orden contiene la información necesaria para la venta y es usado por el sistema de PagoEfectivo para realizar los pagos diferidos.

Las órdenes pueden ser creadas vía API de orden.

Ver ejemplo completo

// Creando orden (con 1 dia de duracion)
$order = $culqi->Orders->create(
      array(
        "amount" => 1000,
        "currency_code" => "PEN",
        "description" => 'Venta de prueba',        
        "order_number" => 'pedido-9999',  
        "client_details" => array( 
            "first_name"=> "Brayan", 
            "last_name" => "Cruces",
            "email" => "[email protected]", 
            "phone_number" => "51945145222"
         ),
        "expiration_date" => time() + 24*60*60   // Orden con un dia de validez
      )
);
print_r($order);

Pruebas

Antes de activar tu tienda en producción, te recomendamos realizar pruebas de integración. Así garantizarás un correcto despliegue.

Si vas a empezar a vender desde tu tienda virtual, deberás seleccionar el ambiente de producción e ingresar tus llaves.

Recuerda que si quieres probar tu integración, puedes utilizar nuestras tarjetas de prueba.

Descarga los ejemplos desde:

git clone https://github.com/culqi/culqi-php.git
composer install
cd culqi-php/examples
php -S 0.0.0.0:8000

Ejemplo Prueba Token

$PUBLIC_KEY = "{PUBLIC KEY}";
$culqi = new Culqi\Culqi(array('api_key' => $PUBLIC_KEY));
$futureDate = date('Y', strtotime('+1 year'));
$encryption_params = array(
  "rsa_public_key" => "",
  "rsa_id" => ""
);

$req_body = array(
  "card_number" => "4111111111111111",
  "cvv" => "123",
  "email" => "culqi".uniqid()."@culqi.com", //email must not repeated
  "expiration_month" => "7",
  "expiration_year" => $futureDate,
  "fingerprint" => uniqid(),
  "metadata" => array("dni" => "71702935")
);
  
// Creando token a una tarjeta sin encriptar
$token = $culqi->Tokens->create(
  $req_body
);

Ejemplo Prueba Cargo

$SECRET_KEY = "{SECRET KEY}";
$culqi = new Culqi\Culqi(array('api_key' => $SECRET_KEY));

//Datos para encriptar
$encryption_params = array(
  "rsa_public_key" => "",
  "rsa_id" => ""
);

//3ds object, la primera vez que se consume el servicio no se debe enviar los parámetros 3ds
$tds_xid = $_POST["xid"];
$tds = array("authentication_3DS" => array(
  "eci" => $_POST["eci"],
  "xid" => $tds_xid,
  "cavv" => $_POST["cavv"],
  "protocolVersion" => $_POST["protocolVersion"],
  "directoryServerTransactionId" => $_POST["directoryServerTransactionId"]
));

$req_body = array(
  "amount" => 10000,
  "capture" => true,
  "currency_code" => "PEN",
  "description" => "Venta de prueba",
  "installments" => 0,
  "email" => "[email protected]",
  "metadata" => array("test"=>"test"),
  "source_id" => "" // previamente generado usando create token
);


$with_tds = ($req_body) + (isset($tds_xid) ? $tds : array());

// Creando Cargo sin encriptar a una tarjeta
$charge = $culqi->Charges->create($with_tds);
// Respuesta
echo "<b>Cargo sin encriptar payload:</b> "."<br>".json_encode($charge)."<br>";

// Creando Cargo con encriptación a una tarjeta
$charge = $culqi->Charges->create($with_tds, $encryption_params);

Tests

composer install
phpunit --verbose --tap tests/*

Ejecución de Ejemplos

Para ejecutar los ejemplos disponibles en nuestro SDK, sigue estos pasos:

  1. Abre tu terminal y navega a la carpeta "examples" del proyecto.

  2. Ejecuta el comando correspondiente para la operación que deseas probar:

   # Ejecutar el ejemplo de creación de planes
   php examples/plan/02-create-plan.php

   # Ejecutar el ejemplo de creación de suscripciones
   php examples/subscription/01-create-subscription.php

Asegúrate de tener todos los requisitos previos y configuraciones necesarias antes de ejecutar los ejemplos. Ten en cuenta que el nombre del archivo a ejecutar puede variar según la operación que estés probando.

Documentación

Changelog

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

Autor

Team Culqi

Licencia

Licencia MIT. Revisar el LICENSE.md.

culqi-php's People

Contributors

apumayallag avatar brandocarquin avatar brayancruces avatar carlosmoraleseguia avatar dependabot-preview[bot] avatar diegosan415 avatar guilleroberts-culqi avatar heroseven avatar joelibaceta avatar josehcalderon avatar khanmaytok avatar marti1125 avatar midnai avatar nicolas-culqi avatar proveedor103 avatar soporte-culqi avatar william-muro-culqi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

culqi-php's Issues

Conflicto con proyectos en namespaces

Tengo mi proyecto usando namespaces en todo lado, y cuando establezco algún error en la creación de pago me salta un error PHP diciendo:

PHP Fatal error:  Class 'InvalidParamsException' not found in /var/www/vhosts/inngresa.com/vendor/culqi/Culqi/Pago.php on line 159

Usar namespaces

Como sugerencia, en la librería de Culqi, usar el estándar de namespaces.

Problemas con control de errores

use estas credenciales

Diners Club | 3600 010000 0007 | 12/2024 | 820 | processing_error

y me sale el siguiente error


Fatal error: Uncaught Culqi\Error\UnhandledError: {"object":"error","type":"card_error","charge_id":"chr_test_mGBHiVi0Pc7ASBPW","code":"card_declined","decline_code":"processing_error","merchant_message":"Error de procesamiento. Ocurrió un error mientras procesabamos la compra. Contáctate con culqi.com/soporte para que te demos una solución.","user_message":"Ocurrió un error mientras procesabamos tu compra. Contáctate con culqi.com/soporte para que te demos una solución."} in D:\xampp\htdocs\pagos\culqi\lib\Culqi\Client.php:54 Stack trace: #0 c'/charges/', 'sk_test_wV2W34h...', Array) #1 D:\xampp\htdocs\pagos\proceso.php(28): Culqi\Charges->create(Array) #2 {main} thrown in D:\xampp\htdocs\pagos\culqi\lib\Culqi\Client.php on line 54

Error en version 1.3.* con Laravel 5.1 LTS

He probado con laravel del repo http://github.com/culqi/culqi-laravel, con la version 1.3.* y da el siguiente error:
imagen

Este error no ocurre con la version 1.2.5, pero esta version no usa la V2 de culqi.

Revisando los archivos Culqi.php de las 2 versiones, veo muchas diferencias.
Por favor arreglarlo pronto ya que necesito migrar de la version 1.1.

Saludos.

Endpoint request timed out : Al listar los cargos

Hola
Estoy haciendo trayendo el listado de cargos de una cuenta de Culqi, aun ando haciendo pruebas en integración, pero eso me traer algunas veces bien y otras me muestra este error:

"message": "Endpoint request timed out"

Y no sólo hago pruebas en un browser sino también usando la aplicación postman y sucede lo mismo, a veces si trae correctamente el listado y otras no.

Sólo hay 10 cargos ahi.
Esto pasa porque es test? o sucede también en producción?

Saludos

[NFR] Documentar su clase, hints para los IDE's

Los que usamos su librería oficial estaríamos agradecidos si ayudan al IDE para que genere automáticamente el descubrimiento de las clases y métodos internos, una forma podría ser agregar lo que el estándar PHPDoc menciona, y así tendríamos:

/**
 * Clase Culqi
 *
 * @property-read Cargos Cargos
 * @property-read Suscripciones Suscripciones
 * @property-read Devoluciones Devoluciones
 * @property-read Planes Planes
 *
 * @author Grover Manuel Campos Ancajima <[email protected]>
 * @version Dec 14, 2016
 * @copyright GT Tech E.I.R.L. <http://www.gttech.pe> (cambiarlo por su marca claro)
 */
class Culqi 
{
....
}

Pagos en Efectivo.

Con respecto a los pagos en efectivo, en la pagina oficial de culqi dice que aceptan los métodos de pago: BCP, Scotiabank, Interbank, CajaArequipa, BanBif, AgenteKasnet,FullCarga, WesternUnion
-Cuando se crea una orden se le debe especificar el método de Pago?
-El Usuario ejecuta el pago de una orden a través de PagoEfectivo o directamente en el banco de la opción de pago que escogió? Por ejemplo, Interbank.
-Como sería el flujo de pasos de este proceso?

Bug de precisión cuando se usa json_encode

Hola.
Los invito a leer este bug : https://bugs.php.net/bug.php?id=72567

Y aunque la solución es corregir el parámetro serialize_precision en el php.ini , podemos cambiar el campo "amount" a string.

Modificando lib/Culqi/Client.php

`
namespace Culqi;
use Culqi\Error as Errors;

/**

  • Class Client

  • @Package Culqi
    */
    class Client {
    public function request($method, $url, $api_key, $data = NULL, $secure_url = false) {
    try {
    $url_params = is_array($data) ? '?' . http_build_query($data) : '';
    $headers= array("Authorization" => "Bearer ".$api_key, "Content-Type" => "application/json", "Accept" => "application/json");
    $options = array(
    'timeout' => 120
    );

         // TODO: We change to string to avoid the precision bug on PHP 7.1
         // URL : https://bugs.php.net/bug.php?id=72567
         if( is_array( $data ) && isset( $data['amount'] ) )
             $data['amount'] = strval( $data['amount'] );
    

........
}
`

PD: si alguien lanza el pullrequest sería de gran ayuda.

Incidencia con Email desde formulario CheckOut

Estimados Buenas Tardes

Tengo la siguiente incidencia tengo un formulario checkout con los datos básicos a cargar, monto, titulo, descripcion, etc.
image

el tema esta en que cuando llevo el proceso a pago usando el molde de (02-create-charge.php), el mismo no se trae el correo que coloco en el formulario anterior por lo tanto el pago no se completa viendo el ejemplo ustedes tienen alli un dato fijo ("email" => "[email protected]",)

como hago para traerme el email que se coloca dentro del formulario estandar?

Saludos y gracias de antemano por el apoyo

Culqi\Error\AuthenticationError: Error de autenticación

Hola, estoy teniendo un error al realizar la integración, ya verifiqué todo y por mi lado lo veo bien.

Estoy usando Laravel 8 y Culqi php 1.5

Culqi\Error\AuthenticationError: Error de autenticación in file C:\laragon\www\alvaradoapp\vendor\culqi\culqi-php\lib\Culqi\Client.php on line 43

#0 C:\laragon\www\alvaradoapp\vendor\culqi\culqi-php\lib\Culqi\Charges.php(29): Culqi\Client->request('POST', '/charges/', 'sk_test_761xxxx...', Array)
#1 C:\laragon\www\alvaradoapp\app\Http\Controllers\DemoController.php(41): Culqi\Charges->create(Array)
#2 [internal function]: App\Http\Controllers\DemoController->post()

ACTUALIZACIÓN:
Si las consultas se envían a:
https://api.culqi.com/v2
Los cargos se realizan sin problemas.

Error en el formulario de pago

index-C7zDswTy.js:13 TypeError: Cannot read properties of undefined (reading 'importKey')
at Aq (index-C7zDswTy.js:77:702)
at _k (index-C7zDswTy.js:77:1215)
at Lk.getSession (index-C7zDswTy.js:77:1884)
at at.getSessionId (index-C7zDswTy.js:77:8174)
at F (index-C7zDswTy.js:77:16919)
at Proxy.Y (index-C7zDswTy.js:77:16885)
at Proxy. (index-C7zDswTy.js:17:13292)
at Z (index-C7zDswTy.js:77:100938)
at X (index-C7zDswTy.js:77:100865)
at Er (index-C7zDswTy.js:13:38)

Porque me esta saliendo este error al momento de colocar la tarjeta en el formulario de prueba

No se puede crear token de cargo en Culqi API

Hola! Estoy teniendo problemas seguidos con culqi y no puedo crear el cargo del pago en el entorno de integración, a pesar que se crea el token de acceso, cada vez que envío un pago. Ya lo he notificado y aún no recibo respuesta.

Adjunto imágenes del api log y de la web y de la consola del navegador que muestra el error al crear el cargo y ni muestra código de respuesta alguno.

image001
image002
image004

Error entorno integración al crear cliente

Al crear un cliente recibo este error:
{"timestamp":1543186417322,"status":500,"error":"Internal Server Error","exception":"javax.persistence.EntityNotFoundException","message":"Unable to find com.culqi.api.database.model.TransactionRequest with id 2975865","path":"/api/v2/customers"}

Culqi\Error\AuthenticationError

Hola!

Estoy tratando de realizar la integración, he creado un comercio y cree un par de planes para poder realizar suscripciones. Realizo la petición del token con el checkout y se genera bien, creo un usuario y se crea sin problemas, pero al tratar de crear una tarjeta con el token recibido, me arroja el error de autenticación:

Culqi\Error\AuthenticationError: Error de autenticación in Culqi\Client->request() (line 46 of vendor/culqi/culqi-php/lib/Culqi/Client.php).

He usado la tarjeta de prueba VISA que arroja el resultado exitoso. El log de la API muestra como respuesta:

{
  "object": "error",
  "type": "operacion_denegada",
  "code": "DNGA0019",
  "merchant_message": "Comercio mal configurado, contactar a CULQI.",
  "user_message": "La compra no ha podido ser procesada. Intente más tarde o contáctese con el comercio."
}

No se si dentro del panel de Culqi debo configurar algo, sin embargo no se si el ambiente de pruebas tiene límites para realizar las operaciones. Me disculpo si es una pregunta obvia pero acabo de empezar con Culqi.

Gracias por su ayuda!

Sugiero una mejora para el codigo del javascript

function CulqiCheckout($params) {

    var closeCallback = $params.callback,
        codigo_comercio = $params.comerce_id,
        informacion_venta = "",
        respuesta = "",
        iframe = null;

    window.addEventListener("message", receiveMessage, false);

    return {
        abrir:      abrir,
        autorizado: autorizado,
        denegado:   denegado,
        cerrar:     cerrar,
        setInformation: setInformation
    };

    function setInformation(information)
    {
        informacion_venta = information;
    }

    function abrir() {

        if (informacion_venta == "") {

            alert("Intente nuevamente. Si el problema persiste, contáctese con el Comercio.");

        } else {
            var product = "web";
            var url = "/api/v1/form/" + product + "/" + codigo_comercio + "/" + informacion_venta;
            iframe = document.createElement("IFRAME");

            iframe.setAttribute("src", "https://integ-pago.culqi.com" + url);

            iframe.setAttribute("id", "culqi_checkout_frame");
            iframe.setAttribute("name", "checkout_frame");
            iframe.setAttribute("class", "culqi_checkout");
            iframe.setAttribute("allowtransparency", "true");
            iframe.setAttribute("frameborder", "0");

            iframe.style.zIndex = 99999;
            iframe.style.display = "block";
            iframe.style.backgroundColor = "rgba(0,0,0,0)";
            iframe.style.border = "0px none trasparent";
            iframe.style.overflowX = "hidden";
            iframe.style.overflowY = "auto";
            iframe.style.visibility = "visible";
            iframe.style.margin = "0px";
            iframe.style.position = "fixed";
            iframe.style.left = "0px";
            iframe.style.top = "0px";
            iframe.style.width = "100%";
            iframe.style.height = "100%";
            iframe.style.backgroundPosition = "initial initial";
            iframe.style.backgroundRepeat = "initial initial";
            document.body.appendChild(iframe);
        }
    }

    function autorizado() {

        iframe = document.getElementById('culqi_checkout_frame');
        iframe.contentWindow.postMessage("autorizado", "*");
    }

    function denegado() {
        iframe = document.getElementById('culqi_checkout_frame');
        iframe.contentWindow.postMessage("denegado", "*");
    }
    function cerrar() {
        var element = document.getElementById("culqi_checkout_frame");
        if (element == null){
        } else {
            element.parentNode.removeChild(element);
        }
    }

    function receiveMessage(event){

        if(event.data == "checkout_cerrado"){

            respuesta = event.data;
            closeCallback(respuesta);
            cerrar();
//console.log("Cerrando checkout:" + event.data);

        } else {
            respuesta = event.data;
//console.log("Informacion recibida desde el checkout:" + event.data);
            closeCallback(respuesta);
        }

    }

}

Cambiar idioma Popup

Hola.
Se puede cambiar el idioma del modal/popup de Culqi que sale por defecto?

Entiendo que estas son las variables que se setean al inicio:

<script>
  Culqi.settings({
    title: 'Culqi Store',
    currency: 'PEN',
    description: 'Polo/remera Culqi lover',
    amount: 3500
  });
</script>

Y quería saber si hay alguna para cambiar el idioma.

Saludos

Imposible conectar a Culqi API

Hola, estoy teniendo un problema al crear el token mediante PHP. Ya lo he notificado y aún no recibo respuesta.

El response en el API Log es el siguiente: Imposible conectar a Culqi API:

{
"object": "error",
"type": "authentication_error",
"merchant_message": "Tu código de comercio no está habilitado para realizar este tipo de peticiones. Contáctate con [email protected] para obtener mas información."
}

Changelog ordenado al reves

La manera usual de ordenar un CHANGELOG es de los cambios mas recientes hacia los mas antiguos. De esta manera el usuario al abrir el archivo ve primero los ultimos cambios. En este caso el archivo CHANGELOG.md esta ordenado de los cambios mas antiguos hacia los mas recientes.

Culqi en Joomla

Hola estimados tienen pensado hacer un plugin o un repositorio para que se pueda integrar culqi a Joomla?

Los nombres de las variables son intelegibles

Estoy intentando crear una versión en Python de la biblioteca pero los nombres de las variables hacen mucho más dificil entender que está haciendo el código, por ejemplo:

function crearDatospago($sp821fb9, $sp37cd46=null)

¿Qué son los parámetros? Es un misterio. ¿Están ofuscados a propósito? Deberían cambiarlos a algo como esto:

function crearDatospago($datos_venta, $extra=null)

(y estoy adivinando que esos son los nombres correctos)

Imposible conectar a Culqi API

no puedo seguir probando, ya que por php me dice : Imposible conectar a Culqi API...
cuando por js saco el token de la tarjeta no me da problema...

Creación de Token - Error en CURLOPT_ENCODING

Hola.

Cuando hago un POST request para un cargo $culqi->charges->create() todo funciona bien, pero cuando hago uno para la creación del token, me da error 61

Entiendo que la creación del token es con la llave pública y que además, éste apunta a otra URL.

Estuve investigando porque la librería rmccue/requests no esta funcionando correctamente y encontré que se trataba de curl_setopt($this->handle, CURLOPT_ENCODING, '');

Por un lado, lo he reportado al repositorio de ellos : WordPress/Requests#374

Sin embargo cabe la duda xq este POST request sí funciona bien con https://api.culqi.com/v2 (creación de una pago) pero no funciona con https://secure.culqi.com/v2 (creación del token), es inevitable pensar que deben ser diferentes reglas para ambas URLs

PD: Mis keys sí tienen permiso de crear tokens, de hecho con postman sí puedo crearlo correctamente.

Saludos

Checkout!

Lamento escribir en este repositorio un Issue relacionado con su librería "Checkout" solo que no encontre el repositorio de dicha librería en github.
https://checkout.culqi.com/v2
he notado que imprime en consola lo siguiente al referenciar solamente el script en su tag correspondiente:

Respuesta: [object Object] v2:208:13
Se completó el proceso de pago, respuesta enviada al comercio.

Hay muchos "console.log" comentados y otros como los antes mencionados que imprimen mensajes que no son correctos, a mi parecer este tipo de "log printing" no es propio de una librería de producción. Es confuso y y van contra su integridad de producto.

Bueno el error en sí es el siguiente estoy recibiendo esto al inicializar la instancia, estoy utilizando mi public key correctamente escrito:

<html><body><h1>Whitelabel Error Page</h1><p>This application has no explicit mapping for /error, so you are seeing this as a fallback.</p><div id='created'>Fri Jul 21 02:47:55 PET 2017</div><div>There was an unexpected error (type=Internal Server Error, status=500).</div><div>401 Unauthorized</div></body></html>

Además he podido notar que el retorno del token no permite pasar ningún tipo de callback para las acciones subsiguientes a esta y por el contrario exige la creación de una función llamada "culqi()" a donde se inyectará el resultado. Se que se han inspirado en Stripe y estos en su librería checkout, permiten pasarle una función a manera del callback en el atributo "token"

https://stripe.com/docs/checkout#integration-custom

Sumamente necesario para el desarrollo.

Necesito con urgencia implementar checkout y tengo interés personal en mejorarla la libería. Espero sus comentarios.

Error Culqi\Error\UnhandledError

Buen día, ya he logrado probar la aplicacion con las tarjetas de prueba que ofrecen y todo sale Ok,
sin embargo al usar las Tarjetas con respuestas y errores específicos, solo la primera que es " expired_card" me devuelve el error con el json, el resto me sale la siguiente Exception...

message: {"object":"error","type":"card_error","charge_id":"chr_test_1zMFFuuJgRayHWHN","code":"card_declined","merchant_message":"Fondos insuficientes. La tarjeta no tiene fondos suficientes para realizar la compra.","user_message":"Su tarjeta no tiene fondos suficientes. Para realizar la compra, verifica tus fondos disponibles con el banco emisor o inténta nuevamente con otra tarjeta."} exception: Culqi\Error\UnhandledError file: /Users/angel/Code/cart/vendor/culqi/culqi-php/lib/Culqi/Client.php line: 49

Saludos.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.