open-pay / openpay-node Goto Github PK
View Code? Open in Web Editor NEWOpenpay Node.js bindings
Openpay Node.js bindings
Hola que tal, integré openpay tal y como marcaba la documentación en: https://www.openpay.mx/docs/card-charge.html
El detalle es que al querer hacer una prueba me arroja el siguiente error:
TypeError: data.callback is not a function at Request._callback (/var/task/node_modules/openpay/lib/openpay.js:605:10) at Request.self.callback (/var/task/node_modules/openpay/node_modules/request/request.js:123:22) at emitTwo (events.js:87:13) at Request.emit (events.js:172:7) at Request.<anonymous> (/var/task/node_modules/openpay/node_modules/request/request.js:877:14) at emitOne (events.js:82:20) at Request.emit (events.js:169:7) at IncomingMessage.<anonymous> (/var/task/node_modules/openpay/node_modules/request/request.js:828:12) at emitNone (events.js:72:20) at IncomingMessage.emit (events.js:166:7)
Lo que parece ser un error dentro de la biblioteca de openpay.
Encontré un post sobre esto aquí:
https://disqus.com/home/discussion/openpay/openpay_cargo_a_tarjeta_96/
Donde reportaron el mismo error, pero al parecer no han podido solucionarlo o se deba a algún otro problema.
Saludos
La devolución de comisiones no está implementada (https://www.openpay.mx/docs/api/?javascript#devolver-comisi-n):
openpay.fees.refund("trzjaozcik8msyqshka4", refundRequest, function(error, refund){
// ...
});
Código que se tiene:
function Fees(baseData){
var baseUrl = baseData.merchantId + '/fees';
this.create = function (data, callback) {
sendRequest(_.extend(baseData, {
apiUrl: baseUrl,
requestData: {method: 'POST', json: data},
callback: callback
}));
};
this.list = function (data, callback) {
var query = (data && _.isObject(data) && !_.isArray(data) && !_.isFunction(data) && !_.isEmpty(data)) ? stringifyParams(data) : '';
var callback = _.isFunction(callback) ? callback : _.isFunction(data) ? data : null;
sendRequest(_.extend(baseData, {
apiUrl: baseUrl + query,
requestData: {method: 'GET'},
callback: callback
}));
};
}
Otro problema es que el listado de tarjetas por cliente no distingue apropiadamente los parámetros de acuerdo a la documentación (https://www.openpay.mx/docs/api/?javascript#listado-de-tarjetas)
Hola buenas tardes este error persiste al momento de actualizar la informacion del cliente
Estoy tratando de hacer el cobro a una tarjeta utilizando el token, cuando lo pruebo en localhost el pago se realiza de manera correcta, sin embargo cuando subo mi API a un servidor en Heroku, al momento de ejecutar el método, me regresa el siguiente error "no auth mechanism defined"
Acabo de instalar la version para node y me dió este reporte. Hay algún arreglo ?
Gracias
Hi, i'm trying to create a charge with the following code:
`openpay.customers.charges.create(
{
source_id: paymentDetails['card_id'],
method: 'card',
amount: totalFinal,
description: description,
device_session_id: paymentDetails['device_session_id'],
customer: {
name: 'John',
last_name: 'Doe',
email: '[email protected]'
}
},
function(error, charge) {
if (error) {
// There was an error with the charge
console.error('Error processing card payment', error)
fResult.msg = 'Lo sentimos, no se pudo procesar el pago'
return reject(fResult)
} else {
// All was ok with carge
console.log('-> All ok charge', charge)
}
}
)`
But i'm getting the following error:
TypeError: data.callback is not a function
at Request._callback (/Users/gustavomanolo/Documents/webapps/uchiti/node_modules/openpay/lib/openpay.js:797:10)
Hello,
I wonder why you didn't publish a version 2.0.1, but only a tag. This would make it easier to use the library.
En la documentación sobre eliminar cliente dice:
Elimina un cliente permanentemente. Se cancelarán las suscripciones que tenga. Openpay mantiene los registros de las operaciones.
Sin embargo, al hacer la llamada para eliminar un cliente con suscripciones activas, el servidor me regresa un objeto de error:
{
category: "request",
description: "The customer has subscriptions that need to be cancelled before deletion",
error_code: 1013,
http_code: 412,
request_id: "b3fd8974-7fb5-4c59-8739-2c6b354f9102"
}
Por lo que dice la documentación, yo esperaría que se cancelen automáticamente sus suscripciones.
¿O cuál debería de ser el comportamiento esperado?
Gracias.
Hola,
Al empezar la integración con su librería NPM me lanzó lo siguiente:
=== npm audit security report ===
┌──────────────────────────────────────────────────────────────────────────────┐
│ Manual Review │
│ Some vulnerabilities require your attention to resolve │
│ │
│ Visit https://go.npm.me/audit-guide for additional guidance │
└──────────────────────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ High │ Denial-of-Service Extended Event Loop Blocking │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ qs │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >= 1.x │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ openpay │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ openpay > request > qs │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/28 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ High │ Denial-of-Service Memory Exhaustion │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ qs │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >= 1.x │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ openpay │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ openpay > request > qs │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/29 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Regular Expression Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ hawk │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >=3.1.3 < 4.0.0 || >=4.1.1 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ openpay │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ openpay > request > hawk │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/77 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ ReDoS via long string of semicolons │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ tough-cookie │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >=2.3.0 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ openpay │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ openpay > request > tough-cookie │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/130 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ High │ Regular Expression Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ tough-cookie │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >=2.3.3 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ openpay │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ openpay > request > tough-cookie │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/525 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Remote Memory Exposure │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ request │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >=2.68.0 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ openpay │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ openpay > request │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/309 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Regular Expression Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ mime │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >= 1.4.1 < 2.0.0 || >= 2.0.3 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ openpay │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ openpay > request > form-data > mime │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/535 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Regular Expression Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ mime │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >= 1.4.1 < 2.0.0 || >= 2.0.3 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ openpay │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ openpay > request > mime │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/535 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ hoek │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ > 4.2.0 < 5.0.0 || >= 5.0.3 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ openpay │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ openpay > request > hawk > boom > hoek │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/566 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ hoek │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ > 4.2.0 < 5.0.0 || >= 5.0.3 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ openpay │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ openpay > request > hawk > cryptiles > boom > hoek │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/566 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ hoek │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ > 4.2.0 < 5.0.0 || >= 5.0.3 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ openpay │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ openpay > request > hawk > hoek │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/566 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ hoek │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ > 4.2.0 < 5.0.0 || >= 5.0.3 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ openpay │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ openpay > request > hawk > sntp > hoek │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/566 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Memory Exposure │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ tunnel-agent │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >=0.6.0 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ openpay │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ openpay > request > tunnel-agent │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/598 │
└───────────────┴──────────────────────────────────────────────────────────────┘
found 13 vulnerabilities (10 moderate, 3 high) in 3642 scanned packages
13 vulnerabilities require manual review. See the full report for details.
Nos preocupa mucho la cantidad de vulnerabilidades que presenta el sistema que puede comprometer nuestra operación. ¿Están ustedes conscientes de estas y si es posible nos pueden compartir su opinión y planes respecto a cuando se pueden resolver?
Gracias
Hola. quisiera saber que tanto de las funcionalidades de openpay cubre su implementación de Node, y si está preparada para producción.
Viendo el github de la de ruby me doy cuenta que la otra tiene mucha más funcionalidad. Lo que me interesa concretamente es poder obtener todos los cargos que le he hecho a un cliente en específico.
Gracias.
Unable to resolve module `http`from `project-name/node_modules/openpay/node_modules/request/request.js`: Module `http`does not exist in the Haste module map.
Is there a way to solve this error, I just installed openpay-node for a react native project and as soon as I require the library I get that error
Please let me know which is causing this excetion.
Getting Exception after this
openPay.customers.create(customer, function (error, body)
Uncaught exception
TypeError: Cannot read property 'statusCode' of undefined
at Request._callback (/user_code/node_modules/openpay/lib/openpay.js:795:22)
at self.callback (/user_code/node_modules/openpay/node_modules/request/request.js:123:22)
at emitOne (events.js:96:13)
at Request.emit (events.js:188:7)
at ClientRequest.self.clientErrorHandler (/user_code/node_modules/openpay/node_modules/request/request.js:232:10)
at emitOne (events.js:96:13)
at ClientRequest.emit (events.js:188:7)
at TLSSocket.socketErrorListener (_http_client.js:310:9)
at emitOne (events.js:96:13)
at TLSSocket.emit (events.js:188:7)
Cuando liberaran la versión para integrarse a sandbox y producción en Colombia o de que forma se puede forzar a usar las url de Colombia
when is this going to be fixed? :'(
Estoy obteniendo el siguiente warning al instalar la librería.
npm i openpay
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN assets No description
Que tan graves son estas advertencias de node?
result.txt
Estoy tratando de crear un cargo con el siguiente objeto:
{ "method": "card", "customer" : { "name" : "Juan", "last_name" : "Vazquez Juarez", "phone_number" : "4423456723", "email" : "[email protected]" }, "card": { "card_number": "4111111111111111", "holder_name": "John Doe", "expiration_year": "20", "expiration_month": "12", "cvv2": "110" }, "device_session_id" : "00005", "source_id" : "00005", "amount" : 200.00, "description" : "Service Charge", "order_id" : "oid-00721" }
Pero al enviar los datos me regresa el siguiente mensaje:
{ "message": { "http_code": 400, "error_code": 1001, "category": "request", "description": "Please specify only one type of card", "request_id": "ce57b8f5-7ab3-430e-9df5-4238ab054146" } }
En el request agregue en el objeto de card
el atributo "type": "debit"
haciendo un poco de énfasis al mensaje del response pero aun así me sigue regresando lo mismo, no se si me puedan ayudar con este tema.
Gracias.
Hola. Necesito soportar que el cliente pueda actualizar su plan en cualquier momento. ¿Es posible actualizar una suscripción para cambiar de plan? No pude encontrar referencia a ello en la documentación.
También, ¿cómo me recomiendan lidiar con el cobro en ese caso? Me comentan que no manejan el cobro proporcional. ¿Qué estrategia recomiendan seguir en el caso de que alguien haga un upgrade?
Gracias
¿Tienen pensado publicar un paquete con los types @types/openpay
del paquete principal?
Ya que esto me generó bastantes problemas al desarrollar un api con node, express y typescript y la única forma de resolverlo fue desactivando la opción de noImplicitAny dentro de compilerOptions en el tsconfig.json. Pero al desactivar esta opción se pierde parte importante de las razones por las cuales uno prefiere ts que js.
Quiero poder realizar cargos recurrentes sin hacer uso de subscripciones, pero tengo la limitante de que cada cargo me pide un device_session_id el cual tengo entendido se genera desde el front, hay forma de hacer esto de otra manera?
Necesito hacer una api con express para poder utilizar openpay node.js
Segun su documentacion, para poder hacer un pago necesito el device_session_id
.
Como puedo obtenerlo usando NodeJS?
Solo encontre la funcion en Javascript normal pero necesito hacerlo por aqui
Buenas noches, tengo un servidor montado en node.js que a la hora de cobrar los pagos primero se crea el cargo de la siguiente forma
var chargeRequest = {
method: 'card',
source_id: source_id,
amount: amount,
description: description,
device_session_id: device_session_id,
capture: capture,
currency: 'MXN',
customer: {
name: customer_name,
last_name: customer_last_name,
phone_number: customer_phone_number,
email: customer_email
}
};
openpayApi.charges.create(chargeRequest, (error, resp)=>{
if(error){
return reject(error);
}
return resolve(resp);
});
y luego se confirma el mismo variando el monto y el mensaje de la siguiente manera
var captureRequest = {
amount: amount
}
openpayApi.charges.capture(transactionId, captureRequest, (err, resp)=>{
if(err) return reject(err);
resolve(resp);
});
Sin embargo existen situaciones en los que openpay devuelve lo siguiente y no sabemos que puede estar pasando
{ category: 'request',
description: 'The card charge is on a final status',
http_code: 422,
error_code: 1003,
request_id: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx' }
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.