culqi / culqi-php Goto Github PK
View Code? Open in Web Editor NEWBiblioteca que permite integrar la pasarela de pagos CULQI.
Home Page: https://www.culqi.com/docs
License: MIT License
Biblioteca que permite integrar la pasarela de pagos CULQI.
Home Page: https://www.culqi.com/docs
License: MIT License
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.
use estas credenciales
Diners Club | 3600 010000 0007 | 12/2024 | 820 | processing_error
y me sale el siguiente error
He probado con laravel del repo http://github.com/culqi/culqi-laravel, con la version 1.3.* y da el siguiente error:
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.
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."
}
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.
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.
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?
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.
Hola.
Acabo de hacer composer require culqi/culqi-php
para obtener la última versión.
Y estoy siguiendo este ejemplo para generar tokens: https://github.com/culqi/culqi-php/blob/master/examples/01-create-token.php
Sin embargo, obtengo el siguiente error:
He intentado usando la llave pública, y también la privada (del modo de integración), pero siempre obtengo un "error de autenticación".
Gracias.
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.
La carpeta examples contiene una serie de ejemplos de uso del SDK de PHP, se considera mas accesible si estos se muestran accesibles desde la wiki del repositorio.
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
{
....
}
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)
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...
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);
}
}
}
En el ejemplo "culqi-php/examples/02-create-charge.php" no aparece el campo "email" como señala la documentación https://www.culqi.com/docs/#/pagos/crear
Resource
paso a ser una keyword ligeramente reservada (aún se puede usar, pero hay planes de usarla en versiones futuras de PHP).
http://php.net/manual/en/reserved.other-reserved-words.php
Seria ideal que planearan cambiar la clase Resource por otra.
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
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
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.
Como sugerencia, en la librería de Culqi, usar el estándar de namespaces.
e intentado isntalar "culqi/culqi-php": "1.3.*" para la version de laravel 5.4 pero me da un error
Hi i have done a culqi payment gateway by the guidelines of github - https://github.com/culqi/culqi-php . Now i faced an error of Unable to connect to Culqi API.
What is the problem with this.? Please let me know if anybody knows. Its urgent.
Estoy tratando de crear token y me sale "Error de autenticación - 401" . Ojala puedan ayudarme, gracias.
Poder correr tests preparados para hacer pruebas.
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"}
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
Estimados Buenas Tardes
Tengo la siguiente incidencia tengo un formulario checkout con los datos básicos a cargar, monto, titulo, descripcion, etc.
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
En modo de pruebas, anteriormente si había tenido éxito con las transacciones.
"message": "Internal server error"
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
Hola estimados tienen pensado hacer un plugin o un repositorio para que se pueda integrar culqi a Joomla?
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!
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.