epayco / epayco-php Goto Github PK
View Code? Open in Web Editor NEWPHP wrapper for Epayco API
Home Page: https://api.epayco.co/
PHP wrapper for Epayco API
Home Page: https://api.epayco.co/
Buenas @epayco
Estoy corriendo el ejemplo https://github.com/epayco/epayco-php/blob/master/tests/test.php
y me da el siguiente error:
PHP Fatal error: Class 'Requests_Auth_Basic' not found in C:\xampp\htdocs\epayco-php-master\src\Client.php on line 61
Fatal error: Class 'Requests_Auth_Basic' not found in C:\xampp\htdocs\epayco-php-master\src\Client.php on line 61
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
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?
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
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
));
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
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)
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?
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.
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,
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
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!
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!
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
);
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.
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)
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.
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:
Problema: Parámetro opcional $data declarado antes del parámetro obligatorio $lang.
Línea afectada: 34
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.
Hola buenas tardes.
me gustaría saber si la API de php de Epayco va a soportar la integración de paypal.
muchas gracias.
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?
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?
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
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.
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:
¿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.
Quedo atento saludos.
@RicardoSaldarriagaPayco @YeisonTapia @seboraid @rogertcd @prismaymedia
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
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
);
}
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
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
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)
{"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.
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.
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
Hola estoy integrando epayco via laravel, pero aja mi pregunta es clara, que datos son requeridos y que datos no, pues no tenemos la cedula del comprador. ese dato es requerido ?
Hola,
Quisiera saber si el SDK de Java se puede usar en dart?
https://github.com/epayco/epayco-android
Creo que la respuesta es no pero queria confirmar.
Gracias,
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,
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.