Code Monkey home page Code Monkey logo

epayco-php's People

Contributors

alejinho avatar alejo9424 avatar andres-duque avatar danielquiroz87 avatar dayan0101 avatar dayancmm avatar devepayco avatar felipemesa14 avatar gerson-epayco avatar juanfelmesa avatar juanhurtadopayco avatar m2payco avatar prismaymedia avatar ricardosaldarriagapayco avatar roberto-epayco avatar romedu avatar yeisontapia 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

epayco-php's Issues

problema con los pagos red_servi y punto_red

br /> Fatal error: Class 'Epayco\Resources\ErrorException' not found in C:\xampp\htdocs\recy\system\dist\php\vendor\epayco\epayco-php\src\Resources\Cash.php on line 33

y en la librería solo esta
efecty
baloto
gana

cuales son las url de red_servi y punto_red,
según la clase Cash
las url de los que funcionan son estas

case "efecty":
$url = "/restpagos/pagos/efecties.json";
break;
case "baloto":
$url = "/restpagos/pagos/balotos.json";
break;
case "gana":
$url = "/restpagos/pagos/ganas.json";
break;

pero no logro encontrar las otras 2

Eliminar los estados de pedido personalizados por ePayco

Utilizo una herramienta que lee los estados de pedido en WooCommerce, pero como ePayco tiene sus propios estados personalizados me imposibilita la lectura de estos y no me deja realizar las acciones automatizadas que se relacionan con los estados de pedido predeterminados en Woocommerce.

¿Existe alguna manera de que el plugin de ePayco use sólo los estados de pedido predeterminados en vez de los personalizados?

Code 101

Epayco\Exceptions\ErrorException Object ( [message:protected] => ES [string:Exception:private] => [code:protected] => 101 [file:protected] => /home/appdigitax/public_html/api/vendor/epayco/epayco-php/src/Client.php [line:protected] => 96 [trace:Exception:private] => Array ( [0] => Array ( [file] => /home/appdigitax/public_html/api/vendor/epayco/epayco-php/src/Resources/Charge.php [line] => 28 [function] => request [class] => Epayco\Client

Document 0 is too large for the cluster

Hola, pueden indicarme a que se debe el error?

{"status":false,"message":"Error inesperado","data":{"status":"error","description":"Error general contacte con soporte. Bulk write failed due to previous MongoDB\Driver\Exception\RuntimeException: Document 0 is too large for the cluster. Document is 17583589 bytes, max is 16777216."}}

aparece al ejecutar esta función

$customer = $epayco->customer->create(array(
"token_card" => $token_card,
"name" => $name,
"last_name" => $lastname,
"email" => $email,
"default" => true,
"city" => $city,
"address" => $address,
"phone" => $phone,
"cell_phone"=> $mobile
));

Split payments no me funciona

Tengo una duda en lo respectivo a split payments, tengo una tienda donde alojo vendedores, y quiero que cada vez que vendan me llegue un porcentaje del 2% a mí. Alguien puede poner un ejemplo concreto con datos 'reales' de prueba, quisiera un ejemplo tanto en card como en cash, ya que ninguna de las dos me está funcionando. Tengo dos cuentas creadas para simular la transaccion.

Gracias

Obtener bancos PSE

Estoy intentando traer los bancos como indica en su documentación pero esta me retorna error 500, agradeceria pudieran darme un ejemplo de cómo lograr esto (estoy usando laravel)

¿Tiempo?

Hola, hice una transacción exitosa y aun no se refleja, cuanto tiempo se demora?
Mi aplicación ya no está en modo producción, ni en https://dashboard.epayco.co/ ni en la configuración de la clase del php. Por ende quiere decir que está trabajando adecuadamente.
Hice una transacción exitosa y aun no se refleja, cuanto tiempo demora esto?

Modo pruebas para pagos en efectivo

Hola, estoy tratando de generar transacciones en efectivo pero en modo pruebas. Aunque las transacciones que se realizan siempre están enviándose en modo producción.

Dentro de los parámetros para crear la transacción, he intentado colocando
"test" => true
$epayco->cash->create("entidad", [
'otras-configuraciones-etc' => 'blablabla',
'test' => true
]);

También al crear la instancia de la clase Epayco
new \Epayco\Epayco([
"apiKey" => "",
"privateKey" => "
",
"lenguage" => "ES",
"test" => true
]);

Entonces esas transacciones se generan pero siempre se están yendo a producción.

Server returned HTTP response code: 500 for URL

Hola,

Estoy tratando de hacer un a transaccion de prueba con una tarjeta de credito pero siempre obtengo un: Server returned HTTP response code: 500 for URL
Este es el codigo:

        URL url = new URL("https://secure.payco.co/restpagos/pagos/comercios.json");
        HttpURLConnection con = (HttpURLConnection) url.openConnection();
        con.setRequestMethod("POST");
        con.setRequestProperty("Content-Type", "application/json; utf-8");
        con.setRequestProperty("Accept", "application/json");
        con.setDoOutput(true);

        try (OutputStream os = con.getOutputStream()) {
            byte[] input = jsonInputString.getBytes("utf-8");
            os.write(input, 0, input.length);
        }

        InputStreamReader isr = new InputStreamReader(con.getInputStream(), "utf-8");
        BufferedReader br = new BufferedReader(isr);
        String responseLine = null;
        while ((responseLine = br.readLine()) != null) {
            response.append(responseLine.trim());
        }
        br.close();
        isr.close();
        con.disconnect();

El error siempre sucede en la linea con con.getInputStream().
Yo estoy enviando el JSON plano de ejemplo en este enlace: https://epayco.co/docs/api/

Estoy haciendo algo mal? Creo que si los valores estuvieran mal al menos obtendria un mesaje de error de validacion.

Y por ultimo, ese link menciona que algunos valores se deben encriptar con "la libreria" pero no hay ningun ejemplo ni enlace a la mencionada librearia. Si tienen un ejemplo/lin kpor favor compartirlo.

Gracias,

composer install error

Hi Team,
Today i started integrating epayco in php.
i cloned the repo and ran composer install,
it gave following error

[Composer\Json\JsonValidationException]
  "./composer.json" does not match the expected JSON schema:  
   - type : Does not match the regex pattern ^[a-z0-9-]+$  

then i changed

"type": "Sdk", 

to

"type": "sdk",

The problem was resolved

Integración con Laravel - Error al recibir los datos de la compra desde ePayco

Hola equipo de ePayco, he logrado integrar correctamente la pasarela de pago y me carga todo al Dashboard de ePayco sin problemas. Me muestra el estado: Aceptada, cuánto recibí, fecha de pago, fecha de caducidad, ... Todos los datos se envían correctamente hacia los servidores de ePayco (estoy usando el SDK para PHP).

Toda esa parte funciona muy bien. Sin embargo, en la URL de respuesta no estoy recibiendo nada porque me dice "Firma no valida" aunque en Url confirmación me salen los datos correctos. Mi URL es: https://cafe.test/payment/confirmation y aún así no se está procesando nada.

Supuse que una vez que ePayco verificara que todo estaba en orden, enviaría los datos de la compra a esta URL (https://cafe.test/payment/confirmation) pero en mi caso no funciona.

Lo estoy haciendo como lo vi en un ejemplo y realmente no se recibe nada...

Así quedaría en Laravel. El error que obtengo es Undefined index: x_ref_payco y de ahí para abajo las siguientes variables.

`$p_cust_id_cliente = '00000';
$p_key = '00000000000000000000000000000000000000000';

  $x_cod_response = $request->x_cod_response;
  $x_ref_payco      = $request->x_ref_payco;
  $x_transaction_id = $request->x_transaction_id;
  $x_amount         = $request->x_amount;
  $x_currency_code  = $request->x_currency_code;
  $x_signature      = $request->x_signature;

  $signature = hash('sha256', $p_cust_id_cliente . '^' . $p_key . '^' . $x_ref_payco . '^' . $x_transaction_id . '^' . $x_amount . '^' . $x_currency_code);`

Si saben cómo obtener los datos les agradecería mucho. ¡Un abrazo!

Cómo cobrar por Cash, en MoneyGram USA

Buenos días, como dice mi pregunta, en el external checkout está la posibilidad de pagar con chash por medio de MoneyGram en USA, en Resource/Cash.php solo veo 3 opciones: Efecty, Baloto y Gana. Para compras internacionales cómo lo haría?
Gracias!

Peticiones GET a apify

Versión: 1.6.0

Actualmente las peticiones a apify solo son soportadas para peticiones POST. Además de eso no se puede enviar data cuando es tipo GET (sería ideal que la data que se envíe se agregue como parámetros query). Por ejemplo con la siguiente petición:

$response = $this->client->charge->request(
    'GET',
    '/transaction/detail',
    $this->client->api_key,
    ['filter' => ['referencePayco' => $refPayco]],
    $this->client->private_key,
    $this->client->test,
    false,
    $this->client->lang,
    null,
    null,
    true
);

method_confirmation no funciona

En los parámetros para los pagos ("subscription", "cash", "charge", "split") se encuentra un parámetro llamado method_confirmation que supuestamente cambia el tipo de solicitud a la url de confirmación de post a get, pero ese parámetro no está en realidad haciendo nada ya que desde los registros de acceso sigo viendo que la petición a esa url se hace por post y no por get.

Funciones obsoletas

mcrypt_get_iv_size() is deprecated (McryptEncrypt.php on line 20)
Function mcrypt_get_key_size() is deprecated (McryptEncrypt.php on line 22)
Function mcrypt_encrypt() is deprecated (McryptEncrypt.php on line 35)

Llave pública o token de autenticación invalido o expirado

Estoy implementando el sdk en mi proyecto y sale todo bien pero cuando creo el token me sale el siguiente error cuando lo imprimo en pantalla con print_r:

stdClass Object ( [status] => [message] => Llave pública o token de autenticación invalido o expirado [data] => stdClass Object ( [status] => error [description] => "Error registrando la llave pública: $$$, o validando el token de autenticación" [errors] => jwt-error ) )

y cuando imprimo el primer paso de "USAGE" con print_r me sale lo siguiente

Epayco\Epayco Object ( [api_key] => API_KEY [private_key] => PRIVATE_KEY [test] => TRUE [lang] => ES [token] => Epayco\Resources\Token Object ( [epayco:protected] => Epayco\Epayco Object *RECURSION* ) [customer] => Epayco\Resources\Customers Object ( [epayco:protected] => Epayco\Epayco Object *RECURSION* ) [plan] => Epayco\Resources\Plan Object ( [epayco:protected] => Epayco\Epayco Object *RECURSION* ) [subscriptions] => Epayco\Resources\Subscriptions Object ( [epayco:protected] => Epayco\Epayco Object *RECURSION* ) [bank] => Epayco\Resources\Bank Object ( [epayco:protected] => Epayco\Epayco Object *RECURSION* ) [cash] => Epayco\Resources\Cash Object ( [epayco:protected] => Epayco\Epayco Object *RECURSION* ) [charge] => Epayco\Resources\Charge Object ( [epayco:protected] => Epayco\Epayco Object *RECURSION* ) )

He de aclarar que API_KEY y PRIVATE_KEY coloco mi api key y private que me suministra epayco (que son los mismo que e usado en un proyecto en ruby on rails) pero no se a que se puede deber el error de que la llave pública o token de autenticación invalido o expirado, gracias.

deprecated functions in php^ 8.1

En la librería epayco/epayco-php, específicamente en los archivos Client.php y Resources/Charge.php, se ha identificado un uso obsoleto en la declaración de parámetros opcionales antes de parámetros obligatorios en las firmas de métodos. Esto genera advertencias de tipo "Deprecated" en versiones de PHP 7.4 y posteriores, lo cual puede afectar la compatibilidad y el funcionamiento correcto de la librería en entornos de producción que utilicen estas versiones de PHP.

Archivos y líneas afectadas:

  1. En Client.php:

Problema: Parámetro opcional $data declarado antes del parámetro obligatorio $lang.
Línea afectada: 34

  1. En Resources/Charge.php:
    Problema: Parámetro opcional $options declarado antes del parámetro obligatorio $permission.
    Línea afectada: 57

Ejemplo de declaración incorrecta:
public function ejemplo($parametroOpcional = null, $parametroObligatorio) { // Código }

Solución sugerida:
Se recomienda modificar las firmas de los métodos para que todos los parámetros obligatorios se declaren antes de cualquier parámetro opcional. Esto asegura la compatibilidad con las versiones actuales y futuras de PHP, evitando las advertencias de obsolescencia.

Ejemplo de corrección:

public function ejemplo($parametroObligatorio, $parametroOpcional = null) { // Código }

Acción requerida:
Sería ideal actualizar estas firmas de métodos en la librería para cumplir con las buenas prácticas de desarrollo en PHP y evitar advertencias que pueden resultar en una mala experiencia para los desarrolladores que utilizan esta librería.

Screenshot 2024-02-26 203735

integración paypal

Hola buenas tardes.

me gustaría saber si la API de php de Epayco va a soportar la integración de paypal.

muchas gracias.

Class 'Requests_Auth_Basic' not found

Buenas. Estoy intentando implementar la API en un proyecto de Laravel y me presenta este error:

Class 'Requests_Auth_Basic' not found

Efectivamente, en la línea 61 de Client.php se encuentra el siguiente código:

$options = array( 'auth' => new \Requests_Auth_Basic(array($api_key, '')), 'timeout' => 120, 'connect_timeout' => 120, );

Pero no veo una declaración de "Requests_Auth_Basic" en todo el código fuente.

¿Alguna solución?

Handler method "onCloseModal" not fired after closing modal

Hello guys...

I've been trying to perform some actions every time the modal is closed (a custom implementation with https://checkout.epayco.co/checkout.js). I've configured the handler in following way:

var handler = ePayco.checkout.configure({
  key: 'MY_KEY',
  test: true
});

Then, I've added the mentioned method in following way:

handler.onCloseModal = function () {
  console.log('Closing dialog called!');
};

And finally, by calling handler.open(params), it is opened, and process works. But when I close the modal (by clicking on the "X" icon), then the method is not called. I remember it used to work in older version, or maybe before any change in API.

Any idea about this?

Epayco en Laravel o Lumen

Hola, estoy interesado en integrar esta pasarela de pagos en un proyecto que tengo desarrollado en Lumen, he visto su documentación para php pero no encuentro la forma de integrarlo con Lumen o Laravel, como estos frameworks usan php me imagino que ha de ser posible dicha integración, agradecería su ayuda

Instalacion sin composer

Hola, es posible instalar el SDK sin composer?

Actualmente el host es awardspace y no he logrado la instalación.

Revisando, el composer se encarga de cargar la clase Epayco dentro del php del server. En este caso al no poder conseguir la instalación del composer, tengo la inquietud si puedo instalar el SDK sin necesidad de este. Los privilegios para correr composer de forma global sobre el server actualmente son insuficientes. Ya me puse en contacto con el soporte del hosting.

Estoy usando: awardspace y wordpress y si logro cargar el código de Epayco en la página sin plugins extra sería lo mejor.

Gracias de antemano.

variables inexistentes en la documentacion ¿cuales son?

Hola,

estoy realizando una implementacion de tokenizacion de tarjetas con el SDK, resulta que cuando genero una transaccion de pago, y reviso en mi dashboard de epayco encuentro algunos campos en blanco, pero esto es porque no se que debo enviarle porque no conozco el nombre de esas variables, en este sentido las variables que no encuentro son:

  • Ganancia Cliente
  • Estado / Provincia
  • Compañia
  • Código Área

¿puede indicarme en la documentacion donde encuentro estas variables? desde mi implementacion tengo dichas variables pero en el SDK no se como se llaman.

adjunto un par de capturas para tener mayor contexto.
Screenshot_93
Screenshot_95

Quedo atento saludos.

@RicardoSaldarriagaPayco @YeisonTapia @seboraid @rogertcd @prismaymedia

Id para almacenar

Las transacciones por medio de Tarjeta de credito no guardan un x_id_factura haciendo que sea imposible actualizar cuando es cancelado, pagado o rechazado, sería bueno que dejen un id de factura único o en tal caso un x_ref_payco

Listado de Bancos

En la clase Bank el metodo pseBank que debería retornar la lista de bancos no funciona.

/**
* Return list all banks
* @return object
*/
public function pseBank()
{
return $this->request(
"GET",
"/restpagos/pse/bancos.json",
$api_key = $this->epayco->api_key,
$options = null,
$private_key = $this->epayco->private_key,
$test = $this->epayco->test,
$switch = true,
$lang = $this->epayco->lang
);
}

Ya que este no pasa la public_key por GET lo he arreglado así.

/**
* Return list all banks
* @return object
*/
public function pseBank()
{
return $this->request(
"GET",
"/restpagos/pse/bancos.json?public_key=".$this->epayco->api_key,
$api_key = $this->epayco->api_key,
$options = null,
$private_key = $this->epayco->private_key,
$test = $this->epayco->test,
$switch = true,
$lang = $this->epayco->lang
);
}

Error al momento de pagar en PSE

Tengo una versión de php 7.1.33, al momento de realizar el pago con PSE, me genera el siguiente error:
Function mcrypt_get_iv_size() is deprecated in /vendor/epayco/epayco-php/src/Utils/McryptEncrypt.php

Ejemplos

Hola,

Sería genial que además del código de la librería incluyeran una carpeta examples, con ejemplos de los pasos para la creación del objeto $epayco, la tokenización y la interpretación de la posibles respuestas.

--
Erick

epayco PSE transaccion despues de cargar los bancos

Hola que tal buen dia👍

Primero felicito al equipo de Epayco por tan buen trabajo en su API rest.

Ahora les cuento un poco estoy intentando crear un servicio para una aplicación, que conecta con Epayco siguiendo la documentación oficial en github.

https://epayco.github.io/documentation/#cuenta-bancaria-pse

sin embargo no encuentro una forma de enviar los parametros necesarios a la solicitud de PSE despues de listar los bancos.

estoy intentando realizar la siguiente petición por medio de POSTMAN (POST)

https://secure.payco.co/restpagos/pagos/debitos.json?public_key=0b862564a09d6d3fa15504aa8b07a349&banco=1007&factura=1472050778&descripcion=Pago%20pruebas&valor=10000&iva=0&baseiva=0&moneda=COP&tipo_persona=0&tipo_doc=CC&documento=10358519&nombres=PRUEBAS&apellidos=PAYCO&[email protected]&pais=CO&depto=Antioquia&ciudad=Medellin&telefono=0000000&celular=3010000001&direccion=Calle%2010%20&ip=186.116.10.133&url_respuesta=https://secure.payco.co/restpagos/testRest/endpagopse.php&url_confirmacion=https://secure.payco.co/restpagos/testRest/endpagopse.php&metodoconfirmacion=GET&enpruebas=FALSE&public_key=45819ac2ad3011c44630b60f67238b96&lenguaje=javascript&i=0000000000000000&p
pero la respuesta JSON que obtengo es:

{"success":false,"title_response":"Error","text_response":"No se pudo crear la transacci\u00f3n, por favor intente m\u00e1s tarde o comun\u00edquese con la empresa","last_action":"validation transaction","data":{"totalerrores":3,"errores":[{"codError":"E001","errorMessage":"Tipo Documento y Documento Requerido"},{"codError":"E006","errorMessage":"Tel\u00e9fono o Celular Requerido"},{"codError":"E021","errorMessage":"Moneda no soportada"}],"idfactura":false}}

algun tip para resolverlo?

muchas gracias.
cordial saludo.

Utilicen de nuevo los releases para llevar más claro los cambios a esta librería en vez de dev-master

Aunque composer guarda en el composer.lock el punto en el que debe descargar el paquete, para nosotros como desarrolladores de proyectos es a veces complicado entender los cambios que hay entre el SDK que estamos utilizando actualmente y la última versión en GitHub.

Tal vez pidan ayuda a la comunidad para que alguien realice esta tarea cada que el equipo de epayco libere una versión o algo.

Error al procesar el pago PSE con Laravel 7

Me está generando el siguiente error:

"message": "Function mcrypt_get_iv_size() is deprecated",
"exception": "Epayco\Exceptions\ErrorException",

La versión de mi PHP es: 7.4.13 y le Laravel 7.29

mcrypt_get_iv_size() is deprecated

Al crear una transacción en PSE. Retorna el siguiente error:

PHP VERSION 7.2.12

"message": "Function mcrypt_get_iv_size() is deprecated",
"exception": "Epayco\\Exceptions\\ErrorException",
"file": ".../vendor/epayco/epayco-php/src/Client.php",
"line": 91,

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.